लाव, लाव, लाव। Latest guidelines for diabetes में latest type 2। लाव।
"type 2 diabetes" AND "management guidelines"
ADA Standards of Care diabetes 2025 2026 type 2 guidelines latest
https://diabetesonthenet.com/diabetes-primary-care/factsheet…
"type 2 diabetes" AND "GLP-1" AND "SGLT2"
ADA 2026 type 2 diabetes glucose lowering algorithm metformin GLP-1 SGLT2 HbA1c targets cardiovascular
| Test | Diabetes | Prediabetes |
|---|---|---|
| FPG | ≥126 mg/dL | 100-125 mg/dL |
| 2h OGTT | ≥200 mg/dL | 140-199 mg/dL |
| HbA1c | ≥6.5% | 5.7-6.4% |
| Random PG + symptoms | ≥200 mg/dL | - |
2026 Update: CGM अब diabetes diagnosis के समय से ही recommend किया जाता है - insulin, oral agents जो hypoglycemia cause करें, या जहां CGM management में help करे।
Step 1: Metformin (still preferred initial agent)
↓ (यदि HbA1c target नहीं मिला, 3 months में)
Step 2: Add second agent based on:
• Hypoglycemia risk → SGLT2i, GLP-1 RA, DPP4i, TZD
• Cost concern → SU (sulfonylurea), TZD
• Weight → GLP-1 RA, SGLT2i (weight loss), avoid SU/insulin
Step 3: Triple therapy
Step 4: Injectable combo (GLP-1 RA + basal insulin, या AID)
Important 2026 Shift: Metformin अब "always first" नहीं है। यदि patient को ASCVD, HF, या CKD है तो SGLT2i या GLP-1 RA directly शुरू करो - metformin के बिना भी।
| Population | Target |
|---|---|
| High CV/renal risk | <120 mmHg systolic (New!) |
| Most older adults | <130/80 mmHg |
| Frail/limited life expectancy | <140/90 mmHg |
| Drug Class | Examples | Key Benefit | ADA Grade |
|---|---|---|---|
| SGLT2i | Empagliflozin, Dapagliflozin, Canagliflozin | CV + Kidney + HF | A |
| GLP-1 RA | Semaglutide, Liraglutide, Dulaglutide | CV + Weight + MASH | A |
| GIP/GLP-1 RA | Tirzepatide | Weight + HFpEF + MASH | A/B |
| Metformin | Metformin | Glycemia, cost-effective | A |
| DPP4i | Sitagliptin, Vildagliptin | Glucose, low hypo risk | A |
| TZD | Pioglitazone | MASLD/MASH | B |
| SU | Glipizide, Gliclazide | Glycemia, cheap | B |
| Non-steroidal MRA | Finerenone | HF + CKD | A (2026 new) |
क्या आप इन सबको latest version को जो आपने मुझे दिया है, इन सबको एक PDF बनाकर दे सकते हैं? और वो सब English में हो।
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not foun…
mkdir -p /home/daytona/workspace/diabetes-guidelines && python3 -c "from reportl…
~/diabetes-guidelines/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
import datetime
OUTPUT_PATH = "/home/daytona/workspace/diabetes-guidelines/T2D_Guidelines_ADA_2026.pdf"
# --- Color Palette ---
DARK_BLUE = colors.HexColor("#1A3A5C")
MED_BLUE = colors.HexColor("#1E6FA0")
LIGHT_BLUE = colors.HexColor("#D6EAF8")
ACCENT_RED = colors.HexColor("#C0392B")
ACCENT_GREEN= colors.HexColor("#1E8449")
ACCENT_AMBER= colors.HexColor("#D4AC0D")
BG_GRAY = colors.HexColor("#F4F6F7")
BG_YELLOW = colors.HexColor("#FDFEFE")
WHITE = colors.white
BLACK = colors.HexColor("#1A1A1A")
BORDER_GRAY = colors.HexColor("#BDC3C7")
doc = SimpleDocTemplate(
OUTPUT_PATH,
pagesize=A4,
rightMargin=2*cm,
leftMargin=2*cm,
topMargin=2.2*cm,
bottomMargin=2*cm,
title="Type 2 Diabetes - Latest Guidelines 2026",
author="ADA Standards of Care 2026 | AACE 2026"
)
styles = getSampleStyleSheet()
W = A4[0] - 4*cm # usable width
# Custom styles
def make_style(name, parent='Normal', **kwargs):
s = ParagraphStyle(name, parent=styles[parent], **kwargs)
return s
title_style = make_style('DocTitle', fontSize=22, fontName='Helvetica-Bold',
textColor=WHITE, alignment=TA_CENTER, spaceAfter=4, spaceBefore=4)
subtitle_style = make_style('DocSubtitle', fontSize=11, fontName='Helvetica',
textColor=colors.HexColor("#D6EAF8"), alignment=TA_CENTER, spaceAfter=2)
datestamp_style = make_style('DateStamp', fontSize=9, fontName='Helvetica',
textColor=colors.HexColor("#AED6F1"), alignment=TA_CENTER, spaceAfter=2)
h1_style = make_style('H1', fontSize=14, fontName='Helvetica-Bold',
textColor=WHITE, spaceBefore=14, spaceAfter=4, leftIndent=0)
h2_style = make_style('H2', fontSize=11, fontName='Helvetica-Bold',
textColor=DARK_BLUE, spaceBefore=10, spaceAfter=4, leftIndent=0)
h3_style = make_style('H3', fontSize=10, fontName='Helvetica-Bold',
textColor=MED_BLUE, spaceBefore=7, spaceAfter=3, leftIndent=0)
body_style = make_style('Body', fontSize=9.5, fontName='Helvetica',
textColor=BLACK, spaceBefore=3, spaceAfter=3, leading=14, alignment=TA_JUSTIFY)
bullet_style = make_style('Bullet', fontSize=9.5, fontName='Helvetica',
textColor=BLACK, spaceBefore=2, spaceAfter=2, leading=13,
leftIndent=14, firstLineIndent=-10)
bold_bullet = make_style('BoldBullet', fontSize=9.5, fontName='Helvetica-Bold',
textColor=DARK_BLUE, spaceBefore=2, spaceAfter=2, leading=13,
leftIndent=14, firstLineIndent=-10)
note_style = make_style('Note', fontSize=8.5, fontName='Helvetica-Oblique',
textColor=colors.HexColor("#555555"), spaceBefore=3, spaceAfter=3, leading=12)
source_style = make_style('Source', fontSize=8, fontName='Helvetica',
textColor=colors.HexColor("#777777"), spaceBefore=2, spaceAfter=2)
highlight_style = make_style('Highlight', fontSize=9.5, fontName='Helvetica-Bold',
textColor=ACCENT_RED, spaceBefore=3, spaceAfter=3)
def header_block(title, color=DARK_BLUE):
"""Returns a colored header paragraph in a table for full-width background."""
data = [[Paragraph(title, h1_style)]]
t = Table(data, colWidths=[W])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), color),
('ROUNDEDCORNERS', [4]),
('TOPPADDING', (0,0), (-1,-1), 7),
('BOTTOMPADDING', (0,0), (-1,-1), 7),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
]))
return t
def subheader_block(title):
data = [[Paragraph(title, ParagraphStyle('SH', fontName='Helvetica-Bold',
fontSize=11, textColor=WHITE, spaceBefore=0, spaceAfter=0))]]
t = Table(data, colWidths=[W])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), MED_BLUE),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 8),
('RIGHTPADDING', (0,0), (-1,-1), 8),
]))
return t
def highlight_box(text, bg=LIGHT_BLUE, text_color=DARK_BLUE, bold=True):
font = 'Helvetica-Bold' if bold else 'Helvetica'
st = ParagraphStyle('HB', fontName=font, fontSize=9.5, textColor=text_color,
leading=13, spaceBefore=0, spaceAfter=0)
data = [[Paragraph(text, st)]]
t = Table(data, colWidths=[W])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), bg),
('TOPPADDING', (0,0), (-1,-1), 7),
('BOTTOMPADDING', (0,0), (-1,-1), 7),
('LEFTPADDING', (0,0), (-1,-1), 10),
('RIGHTPADDING', (0,0), (-1,-1), 10),
('BOX', (0,0), (-1,-1), 0.5, MED_BLUE),
]))
return t
def make_table(headers, rows, col_widths=None, header_bg=DARK_BLUE):
if col_widths is None:
col_widths = [W/len(headers)] * len(headers)
header_st = ParagraphStyle('TH', fontName='Helvetica-Bold', fontSize=9,
textColor=WHITE, alignment=TA_CENTER, leading=12)
cell_st = ParagraphStyle('TD', fontName='Helvetica', fontSize=8.8,
textColor=BLACK, alignment=TA_LEFT, leading=12)
table_data = [[Paragraph(h, header_st) for h in headers]]
for row in rows:
table_data.append([Paragraph(str(c), cell_st) for c in row])
t = Table(table_data, colWidths=col_widths, repeatRows=1)
style = [
('BACKGROUND', (0,0), (-1,0), header_bg),
('GRID', (0,0), (-1,-1), 0.4, BORDER_GRAY),
('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, BG_GRAY]),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]
t.setStyle(TableStyle(style))
return t
def bp(text):
return Paragraph(f"• {text}", bullet_style)
def bb(text):
return Paragraph(f"• <b>{text}</b>", bullet_style)
def bpn(label, text):
return Paragraph(f"• <b>{label}:</b> {text}", bullet_style)
# ============================
# Build Story
# ============================
story = []
# ---- COVER HEADER ----
cover_data = [[
Paragraph("TYPE 2 DIABETES MELLITUS", title_style),
Paragraph("Latest Clinical Management Guidelines", subtitle_style),
Paragraph("ADA Standards of Care 2026 | AACE 2026 | Evidence-Based", subtitle_style),
Paragraph(f"Compiled: {datetime.date.today().strftime('%B %d, %Y')}", datestamp_style),
]]
cover_table = Table([[
Paragraph("TYPE 2 DIABETES MELLITUS", title_style),
]], colWidths=[W])
# Use a multi-row header
header_rows = [
[Paragraph("TYPE 2 DIABETES MELLITUS", title_style)],
[Paragraph("Latest Clinical Management Guidelines", subtitle_style)],
[Paragraph("Based on: ADA Standards of Care 2026 | AACE 2026 | Recent Evidence", subtitle_style)],
[Paragraph(f"Compiled: {datetime.date.today().strftime('%B %d, %Y')}", datestamp_style)],
]
cover_t = Table(header_rows, colWidths=[W])
cover_t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 16),
('RIGHTPADDING', (0,0), (-1,-1), 16),
]))
story.append(cover_t)
story.append(Spacer(1, 0.4*cm))
# ---- SECTION 1: DIAGNOSTIC CRITERIA ----
story.append(header_block("1. DIAGNOSTIC CRITERIA"))
story.append(Spacer(1, 0.2*cm))
diag_headers = ["Test", "Diabetes", "Prediabetes"]
diag_rows = [
["Fasting Plasma Glucose (FPG)", "≥ 126 mg/dL", "100–125 mg/dL"],
["2-hour OGTT", "≥ 200 mg/dL", "140–199 mg/dL"],
["HbA1c", "≥ 6.5%", "5.7–6.4%"],
["Random PG + symptoms", "≥ 200 mg/dL", "—"],
]
story.append(make_table(diag_headers, diag_rows, col_widths=[W*0.45, W*0.28, W*0.27]))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("Note: Diagnosis requires confirmation with repeat testing on a different day (except random PG with symptoms).", note_style))
# ---- SECTION 2: GLYCEMIC TARGETS ----
story.append(Spacer(1, 0.3*cm))
story.append(header_block("2. GLYCEMIC TARGETS (ADA 2026)"))
story.append(Spacer(1, 0.2*cm))
story.append(subheader_block("HbA1c Targets"))
story.append(Spacer(1, 0.1*cm))
glyc_headers = ["Population", "HbA1c Target", "Rationale"]
glyc_rows = [
["Most non-pregnant adults (general)", "< 7.0%", "Reduces microvascular complications"],
["Young, short duration, no CVD, low hypo risk", "< 6.5%", "Tighter control beneficial"],
["Elderly, frail, limited life expectancy", "< 8.0%", "Avoid hypoglycemia risk"],
["Hypoglycemia-prone patients", "< 8.0%", "Safety-first approach"],
]
story.append(make_table(glyc_headers, glyc_rows, col_widths=[W*0.38, W*0.22, W*0.40]))
story.append(Spacer(1, 0.2*cm))
story.append(subheader_block("CGM Metrics (2026 Update)"))
story.append(Spacer(1, 0.1*cm))
cgm_headers = ["CGM Metric", "Target"]
cgm_rows = [
["Time in Range (TIR) — 70–180 mg/dL", "> 70%"],
["Time Below Range (< 70 mg/dL)", "< 4%"],
["Glucose Management Indicator (GMI)", "Used as HbA1c surrogate"],
]
story.append(make_table(cgm_headers, cgm_rows, col_widths=[W*0.60, W*0.40]))
story.append(Spacer(1, 0.15*cm))
story.append(highlight_box(
"2026 KEY UPDATE: CGM is now recommended from diabetes onset and any time thereafter "
"for adults on insulin, oral agents that cause hypoglycemia, or where CGM aids management.",
bg=LIGHT_BLUE, text_color=DARK_BLUE
))
# ---- SECTION 3: TREATMENT ALGORITHM ----
story.append(Spacer(1, 0.35*cm))
story.append(header_block("3. GLUCOSE-LOWERING THERAPY ALGORITHM (ADA 2026)"))
story.append(Spacer(1, 0.2*cm))
story.append(highlight_box(
"FOUNDATION FOR ALL PATIENTS: Healthy lifestyle + DSMES (Diabetes Self-Management Education & Support) "
"+ Address Social Determinants of Health (SDOH) | Weight loss target: 5–7% baseline body weight",
bg=colors.HexColor("#EBF5FB"), text_color=DARK_BLUE
))
story.append(Spacer(1, 0.2*cm))
# Priority 1
story.append(subheader_block("PRIORITY 1 — Cardiovascular & Kidney Risk Reduction (Condition-Driven)"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("<b><font color='#C0392B'>A. Established ASCVD or High CVD Risk:</font></b>", body_style))
story.append(bpn("1st Choice", "GLP-1 RA with proven CV benefit (semaglutide, liraglutide, dulaglutide)"))
story.append(bpn("Alternative / Add-on", "SGLT2i with proven CV benefit (empagliflozin, canagliflozin, dapagliflozin)"))
story.append(bpn("Combination Therapy", "SGLT2i + GLP-1 RA — additive CV + kidney benefit (Grade B)"))
story.append(bp("Recommended INDEPENDENT of HbA1c level and metformin use (Grade A)"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b><font color='#C0392B'>B. Heart Failure (HFrEF + HFpEF):</font></b>", body_style))
story.append(bpn("SGLT2 inhibitor", "Recommended irrespective of A1C (Grade A) — empagliflozin, dapagliflozin"))
story.append(bpn("HFpEF specifically", "GIP/GLP-1 RA (tirzepatide) or GLP-1 RA with proven HF benefit"))
story.append(bpn("2026 NEW", "Non-steroidal MRA (finerenone) recommended in symptomatic Stage C HF with EF > 40%"))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b><font color='#C0392B'>C. Chronic Kidney Disease (CKD):</font></b>", body_style))
story.append(bpn("1st Line", "SGLT2 inhibitor (canagliflozin, empagliflozin, dapagliflozin) — irrespective of A1C"))
story.append(bp("Note: Glucose-lowering effect reduced at eGFR < 45, but cardiorenal protection continues"))
story.append(bpn("2026 NEW", "GLP-1 RA (semaglutide) can now be considered in patients with CKD"))
story.append(bpn("2026 NEW", "Simultaneous initiation of RAS blocker + SGLT2i + non-steroidal MRA can be considered if uACR ≥ 100 mg/g + eGFR 30–90"))
story.append(Spacer(1, 0.2*cm))
# Priority 2
story.append(subheader_block("PRIORITY 2 — Weight Management"))
story.append(Spacer(1, 0.1*cm))
story.append(bpn("Obesity / Overweight", "GLP-1 RA or dual GIP/GLP-1 RA (tirzepatide) strongly preferred"))
story.append(bpn("MASLD / MASH", "GLP-1 RA with MASH benefit + pioglitazone or tirzepatide recommended"))
story.append(bpn("2026 NEW", "Semaglutide has demonstrated proven benefit in MASLD — now formally recommended"))
story.append(Spacer(1, 0.2*cm))
# Priority 3
story.append(subheader_block("PRIORITY 3 — Glycemic Control (Glucose-Centric Path)"))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("For patients without specific cardiorenal or metabolic comorbidities:", body_style))
glyc_algo_headers = ["Step", "Agent", "Notes"]
glyc_algo_rows = [
["Step 1", "Metformin (preferred initial agent)", "Cost-effective, weight-neutral, well-tolerated"],
["Step 2", "Add 2nd agent (if HbA1c not at target at 3 months)", "Choose based on hypoglycemia risk, weight, cost"],
["Step 3", "Triple therapy", "SGLT2i + GLP-1 RA + Metformin most evidence-based combo"],
["Step 4", "Injectable combination or AID", "GLP-1 RA + Basal Insulin, or Automated Insulin Delivery"],
]
story.append(make_table(glyc_algo_headers, glyc_algo_rows, col_widths=[W*0.12, W*0.38, W*0.50]))
story.append(Spacer(1, 0.15*cm))
story.append(highlight_box(
"IMPORTANT 2026 SHIFT: Metformin is no longer mandatory as first step for ALL patients. "
"If patient has ASCVD, HF, or CKD — start SGLT2i or GLP-1 RA DIRECTLY, with or without metformin.",
bg=colors.HexColor("#FDEDEC"), text_color=ACCENT_RED
))
# ---- SECTION 4: INSULIN THERAPY ----
story.append(Spacer(1, 0.35*cm))
story.append(header_block("4. INSULIN THERAPY (ADA 2026 Updates)"))
story.append(Spacer(1, 0.2*cm))
story.append(bpn("Automated Insulin Delivery (AID)", "Now the PREFERRED insulin delivery method for T2D on insulin — highest-grade recommendation (first-ever for T2D)"))
story.append(bpn("Basal insulin patients", "Consider AID if individualized glycemic goals are not being met"))
story.append(bpn("New Algorithm", "A dedicated insulin management algorithm for T1D has been added; T2D insulin guidance also updated"))
story.append(bp("AID recommendation applies to BOTH T1D and T2D patients on insulin"))
# ---- SECTION 5: DRUG CLASS REFERENCE ----
story.append(PageBreak())
story.append(header_block("5. DRUG CLASS QUICK REFERENCE"))
story.append(Spacer(1, 0.2*cm))
drug_headers = ["Drug Class", "Examples", "Key Benefit", "ADA Grade"]
drug_rows = [
["SGLT2 Inhibitors", "Empagliflozin\nDapagliflozin\nCanagliflozin", "CV protection + Kidney + Heart Failure", "A"],
["GLP-1 Receptor Agonists", "Semaglutide\nLiraglutide\nDulaglutide", "CV benefit + Weight loss + MASH", "A"],
["Dual GIP/GLP-1 RA", "Tirzepatide", "Weight + HFpEF + MASH + CV", "A/B"],
["Metformin", "Metformin IR/XR", "Glycemia, cost-effective, established safety", "A"],
["DPP-4 Inhibitors", "Sitagliptin\nVildagliptin\nSaxagliptin", "Glycemia, low hypoglycemia risk, CV-neutral", "A"],
["Thiazolidinediones (TZD)", "Pioglitazone", "MASLD/MASH benefit, insulin sensitizer", "B"],
["Sulfonylureas (SU)", "Glipizide\nGliclazide\nGlimepiride", "Glycemia, cost-effective", "B"],
["Non-steroidal MRA", "Finerenone", "Heart Failure + CKD protection (2026 NEW)", "A"],
["Insulin (Basal)", "Glargine\nDetemir\nDegludec", "Glucose lowering, progressive disease", "A"],
]
story.append(make_table(drug_headers, drug_rows,
col_widths=[W*0.22, W*0.25, W*0.38, W*0.15]))
# ---- SECTION 6: COMORBIDITY MANAGEMENT ----
story.append(Spacer(1, 0.35*cm))
story.append(header_block("6. COMORBIDITY MANAGEMENT"))
story.append(Spacer(1, 0.2*cm))
story.append(subheader_block("Blood Pressure Targets (ADA 2026 — Updated)"))
story.append(Spacer(1, 0.1*cm))
bp_headers = ["Population", "BP Target"]
bp_rows = [
["High cardiovascular or renal risk", "< 120 mmHg systolic (2026 NEW)"],
["Most older adults", "< 130/80 mmHg"],
["Frail / Limited life expectancy / High adverse effect risk", "< 140/90 mmHg"],
]
story.append(make_table(bp_headers, bp_rows, col_widths=[W*0.55, W*0.45]))
story.append(Spacer(1, 0.2*cm))
story.append(subheader_block("Dyslipidemia Management"))
story.append(Spacer(1, 0.1*cm))
story.append(bpn("Step 1", "High-intensity statin in all patients with established ASCVD"))
story.append(bpn("Step 2 (if LDL ≥ 70 mg/dL on max statin)", "Add ezetimibe"))
story.append(bpn("Step 3 (if LDL still not at goal)", "Add PCSK9 inhibitor"))
story.append(Spacer(1, 0.15*cm))
story.append(subheader_block("MASH / MASLD (2026 Update)"))
story.append(Spacer(1, 0.1*cm))
story.append(bp("In T2D + MASLD + obesity/overweight: Consider GLP-1 RA with demonstrated MASH benefit"))
story.append(bpn("For biopsy-proven MASH or high fibrosis risk", "GLP-1 RA + pioglitazone or tirzepatide (GIP/GLP-1 RA)"))
story.append(bpn("Semaglutide", "Now formally recommended for MASLD based on proven trial data"))
# ---- SECTION 7: OLDER ADULTS ----
story.append(Spacer(1, 0.3*cm))
story.append(header_block("7. OLDER ADULTS (ADA 2026 — New Framework)"))
story.append(Spacer(1, 0.2*cm))
story.append(bpn("New stepwise framework", "Includes specific guidance on deintensifying and simplifying treatment"))
story.append(bpn("Protein intake", "Specific protein intake recommendations added for older adults with diabetes"))
story.append(bpn("Geriatric syndromes screening", "Validated screening tools and sample questions now included"))
story.append(bpn("BP targets", "Population-specific targets clearly defined (see Section 6)"))
story.append(bpn("HbA1c target", "< 8.0% acceptable; individualize based on frailty, life expectancy, and hypoglycemia risk"))
# ---- SECTION 8: TOP 7 CHANGES 2026 ----
story.append(Spacer(1, 0.3*cm))
story.append(header_block("8. TOP 7 KEY CHANGES IN ADA 2026", color=ACCENT_GREEN))
story.append(Spacer(1, 0.15*cm))
changes = [
("1", "Automated Insulin Delivery (AID)", "Now the preferred insulin delivery method in T2D on insulin — first-ever highest-grade recommendation for T2D."),
("2", "GLP-1 RA in CKD", "GLP-1 receptor agonists (especially semaglutide) can now be considered even in patients with chronic kidney disease."),
("3", "Finerenone (Non-steroidal MRA)", "New recommendation for symptomatic Stage C HF with EF > 40%, and in CKD with high proteinuria alongside SGLT2i."),
("4", "BP Target < 120 mmHg", "Aggressive new systolic BP target for patients with high cardiovascular or renal risk."),
("5", "Weight Loss Target 5–7%", "More aggressive lifestyle weight loss target than previous guidelines."),
("6", "CGM at Diagnosis", "CGM recommended from the time of diagnosis, not just when insulin is initiated."),
("7", "Tirzepatide in Algorithm", "GIP/GLP-1 RA (tirzepatide) formally added to the treatment algorithm for HFpEF, MASH, and obesity."),
]
change_headers = ["#", "Change", "Detail"]
change_rows = [(c[0], f"<b>{c[1]}</b>", c[2]) for c in changes]
# Rebuild with bold for 2nd column
ch_style_b = ParagraphStyle('CHB', fontName='Helvetica-Bold', fontSize=8.8, textColor=DARK_BLUE, leading=12)
ch_style_n = ParagraphStyle('CHN', fontName='Helvetica', fontSize=8.8, textColor=BLACK, leading=12)
ch_style_h = ParagraphStyle('CHH', fontName='Helvetica-Bold', fontSize=9, textColor=WHITE, alignment=TA_CENTER, leading=12)
change_table_data = [[Paragraph(h, ch_style_h) for h in ["#", "Key Change", "Detail / Impact"]]]
for i, c in enumerate(changes):
bg = LIGHT_BLUE if i % 2 == 0 else WHITE
change_table_data.append([
Paragraph(c[0], ch_style_b),
Paragraph(c[1], ch_style_b),
Paragraph(c[2], ch_style_n),
])
ct = Table(change_table_data, colWidths=[W*0.06, W*0.28, W*0.66], repeatRows=1)
ct.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), ACCENT_GREEN),
('GRID', (0,0), (-1,-1), 0.4, BORDER_GRAY),
('ROWBACKGROUNDS', (0,1), (-1,-1), [LIGHT_BLUE, WHITE]),
('TOPPADDING', (0,0), (-1,-1), 5),
('BOTTOMPADDING', (0,0), (-1,-1), 5),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
story.append(ct)
# ---- SECTION 9: KEY EVIDENCE ----
story.append(Spacer(1, 0.3*cm))
story.append(header_block("9. KEY SUPPORTING EVIDENCE (2024–2026)"))
story.append(Spacer(1, 0.15*cm))
ev_headers = ["Study / Source", "Finding", "PMID / Reference"]
ev_rows = [
["Neuen et al., Circulation 2024\n(Systematic Review + Meta-Analysis)",
"GLP-1 RA + SGLT2i combination provides ADDITIVE cardiovascular and kidney benefit in T2D",
"PMID: 39210781"],
["Hespanhol et al., Diabetes Care 2026\n(Systematic Review + Meta-Analysis)",
"Automated Insulin Delivery (AID) systems demonstrate meaningful benefit in T2D — supports ADA recommendation",
"PMID: 41940799"],
["ADA Standards of Care 2026\n(Diabetes Care, Jan 2026 Supplement)",
"Comprehensive annual update: new algorithms for HFpEF, MASH, CKD, older adults, CGM, AID",
"PMID: 41358893"],
["AACE Consensus Algorithm 2026",
"Condition-centric approach: SGLT2i (dapagliflozin/empagliflozin) first-line in HF; GLP-1 RA first-line in ASCVD",
"Endocrinol Advisor 2026"],
]
story.append(make_table(ev_headers, ev_rows, col_widths=[W*0.28, W*0.45, W*0.27]))
# ---- FOOTER / DISCLAIMER ----
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width=W, thickness=0.5, color=BORDER_GRAY))
story.append(Spacer(1, 0.1*cm))
disclaimer_st = ParagraphStyle('Disc', fontName='Helvetica-Oblique', fontSize=7.5,
textColor=colors.HexColor("#888888"), leading=11, alignment=TA_CENTER)
story.append(Paragraph(
"Sources: ADA Standards of Care in Diabetes 2026 (Diabetes Care, January 2026 Supplement) | "
"AACE Type 2 Diabetes Algorithm 2026 | PubMed evidence (PMIDs cited above) | "
"Lippincott Illustrated Reviews Pharmacology | Goodman & Gilman's Pharmacological Basis of Therapeutics",
disclaimer_st))
story.append(Paragraph(
"This document is compiled for educational and clinical reference purposes. "
"Always verify dosing and recommendations against current institutional guidelines and individual patient factors.",
disclaimer_st))
# ---- BUILD ----
doc.build(story)
print(f"PDF generated: {OUTPUT_PATH}")
cd /home/daytona/workspace/diabetes-guidelines && python3 generate_pdf.py
ls -lh /home/daytona/workspace/diabetes-guidelines/T2D_Guidelines_ADA_2026.pdf
T2D Guidelines ADA 2026
PDF Document · PDF