Medicine for type 1 and 2 diabetes
"diabetes mellitus" AND "pharmacotherapy"
diabetes mellitus treatment drugs classification insulin oral hypoglycemic

This pathophysiology diagram illustrates the hypothetical mechanism for the hypoglycemic effect of Electroacupuncture (EA) in different types of Diabetes Mellitus (DM), utilizing a rat model for preclinical context. The central pathway shows EA (applied at ST-36 acupoints) stimulating the cholinergic nerve, which targets the adrenal gland (AG), specifically highlighting the cortex and medulla. In Type 1 (insulin-dependent) DM, a direct signaling pathway from the adrenal gland to target organs (e.g., muscle) facilitates glucose uptake. In Type 2 (non-insulin-dependent) DM, the adrenal gland triggers the release of endogenous opioid peptides (EOPs), which stimulate the pancreas ̠-cells to secrete insulin, subsequently enhancing glucose uptake in target organs. The diagram serves to differentiate between insulin-dependent and insulin-independent mechanisms of EA, highlighting the roles of the parasympathetic nervous system, the adrenal-pancreatic axis, and metabolic signaling in glucose regulation. Key anatomical structures depicted include the adrenal gland, pancreas, and representative target musculature.

Table 1. Classification of diabetes mellitus.ᵃ <table><thead><tr><th>I. Type 1 diabetes</th></tr><tr><th>A. Immune-mediated</th></tr><tr><th>B. Idiopathic</th></tr><tr><th>II. Type 2 diabetes</th></tr><tr><th>III. Other specific types</th></tr><tr><th>A. Genetic defects of β-cell function</th></tr><tr><th>B. Genetic defects in insulin action</th></tr><tr><th>C. Diseases of the exocrine pancreas</th></tr><tr><th>D. Endocrinopathies</th></tr><tr><th>E. Drug- or chemical-induced</th></tr><tr><th>F. Infections</th></tr><tr><th>G. Uncommon forms of immune-mediated diabetes</th></tr><tr><th>H. Other genetic syndromes sometimes associated with diabetes</th></tr><tr><th>IV. GDM</th></tr></thead></table> ᵃFrom the ADA (2).

This line graph illustrates simulated 3-day closed-loop blood glucose (BG) trajectories for Type 1 Diabetes Mellitus (T1DM) subjects under an adaptive control algorithm. The y-axis represents BG levels in mg/dL, while the x-axis shows time in minutes. The plot displays multiple overlapping trajectories reflecting glucose fluctuations in response to meal disturbances. Three critical clinical thresholds are demarcated by horizontal dashed lines: hyperglycemia (>180 mg/dL), a basal baseline (~80 mg/dL), and hypoglycemia (<50 mg/dL). The trajectories show post-prandial excursions reaching peaks of approximately 220 mg/dL, followed by a controlled descent back toward the basal level within approximately 120-150 minutes, demonstrating the efficacy of the automated insulin delivery system in preventing prolonged hyperglycemia. Notably, all trajectories remain well above the 50 mg/dL threshold, indicating the avoidance of hypoglycemic events. An inset provides a high-resolution view of the baseline stability between 3250 and 3350 minutes, showing tight clustering of glucose levels between 74 and 82 mg/dL. This visualization is used in biomedical engineering and endocrinology to evaluate the performance of glucose regulation algorithms.

Appendix 6 (Continued) A Summary of Major Studies on Diabetes Prevention and Treatment <table><thead><tr><th>Study</th><th>Background</th><th>Methods</th><th>Results</th></tr></thead><tbody><tr><td>Diabetes Control and Complications Trial (DCCT)<sup>10</sup> (1993), <sup>65</sup> (1995)</td><td>1. Does an intensive treatment regimen directed at maintaining blood glucose concentrations as close to normal as possible prevent or delay the appearance or progression of early vascular complications in patients with type 1 diabetes mellitus?</td><td>1,441 people with type 1 diabetes (726 with no retinopathy at base line and 715 with mild retinopathy) ages 13 to 40 years were randomly assigned to intensive therapy administered either with an external insulin pump or by three or more daily insulin injections and guided by frequent blood glucose monitoring or to conventional therapy with one or two daily insulin injections.</td><td>1. Although intensive therapy does not prevent retinopathy completely, the study, conducted over 6.5 years, found that diabetic retinopathy could be dramatically reduced by maintaining healthy blood sugar levels. Tight blood sugar control also reduced development of kidney disease and cardiovascular disease; however, patients with tight blood sugar control were more likely than others to have hypoglycemic events.</td></tr><tr><td>Epidemiology of Diabetes Interventions and Complications (EDIC)<sup>10</sup> (2015)</td><td>2. An observational follow-up study to the DCCT Study evaluated the durability of the DCCT effects on the more advanced stages of diabetes complications including cardiovascular disease (CVD).</td><td>1,394 people with type 1 diabetes (97% of the original DCCT cohort)</td><td>2. After 30 years of follow-up (EDIC Study), the group that had tightly controlled blood glucose levels from the beginning of the study had a 32% reduction in major cardiovascular events (nonfatal myocardial infarction, stroke or cardiovascular death) suggesting that better control early in type 1 diabetes can prevent cardiovascular disease.</td></tr><tr><td>Diabetes Prevention Program (DPP)<sup>111</sup> (2002), <sup>112</sup> (2015)</td><td>1. Does a lifestyle modification program with the goals of a minimum of 7% weight loss/weight maintenance and a minimum of 150 minutes of physical activity similar in intensity to brisk walking reduce the risk of diabetes? 2. Would taking metformin delay or prevent type 2 diabetes?</td><td>A randomized study of 3,234 middle-age adults with prediabetes comparing an intensive lifestyle intervention or masked metformin with a placebo. The lifestyle intervention included: individual case managers or "lifestyle coaches;" a 16-session curriculum that taught self-management strategies for weight loss and physical activity; supervised physical activity sessions; tailoring of materials and strategies to address ethnic diversity; and an extensive network of training, feedback, and clinical support.</td><td>1. Intensive lifestyle counseling (which included dietary changes and 150 minutes of exercise per week) was found to reduce the onset of diabetes by 58% compared to usual care. 2. Metformin treatment reduced the onset of diabetes by 31%. These benefits persisted throughout the study's 15-year follow-up period.</td></tr></tbody></table> Table Continued on next page
| Drug | Onset | Peak | Duration |
|---|---|---|---|
| Insulin lispro (Humalog) | 15-30 min | 30-90 min | 3-5 h |
| Insulin aspart (NovoLog) | 10-20 min | 40-50 min | 3-5 h |
| Insulin glulisine (Apidra) | 10-20 min | 55 min | 3-5 h |
| Inhaled insulin (Afrezza) | ~10 min | 10-20 min | ~3 h |
| Drug | Onset | Peak | Duration |
|---|---|---|---|
| Regular insulin (Humulin R, Novolin R) | 30 min | 50-120 min | 6-8 h |
Inject 30 minutes before meals. Also used IV in hospitals (e.g., DKA, hyperglycemic emergencies).
| Drug | Onset | Peak | Duration |
|---|---|---|---|
| NPH insulin (Humulin N) | 1-2 h | 4-8 h | 12-18 h |
| Drug | Onset | Duration |
|---|---|---|
| Insulin glargine (Lantus, Basaglar) | 1-2 h | ~24 h (peakless) |
| Insulin detemir (Levemir) | 1-2 h | 12-24 h |
| Insulin degludec (Tresiba) | 1-2 h | >42 h |

| Drug | Duration |
|---|---|
| Glipizide (Glucotrol) | 20 h |
| Glyburide (DiaBeta) | 18 h |
| Glimepiride (Amaryl) | 24 h |
| Drug | Duration |
|---|---|
| Repaglinide (Prandin) | 2 h |
| Nateglinide (Starlix) | ~4 h |
| Drug |
|---|
| Sitagliptin (Januvia) |
| Saxagliptin (Onglyza) |
| Linagliptin (Tradjenta) |
| Alogliptin (Nesina) |
| Drug | Dosing |
|---|---|
| Exenatide (Byetta) | Twice daily injection |
| Liraglutide (Victoza) | Once daily injection |
| Dulaglutide (Trulicity) | Weekly injection |
| Semaglutide (Ozempic, Rybelsus) | Weekly injection or daily oral |
| Albiglutide (Tanzeum) | Weekly injection |
| Drug |
|---|
| Canagliflozin (Invokana) |
| Dapagliflozin (Farxiga) |
| Empagliflozin (Jardiance) |
| Ertugliflozin (Steglatro) |
| Class | Example | HbA1c Reduction | Hypoglycemia | Weight | CV Benefit |
|---|---|---|---|---|---|
| Biguanide | Metformin | 1-2% | Very low | Neutral/↓ | Yes |
| Sulfonylurea | Glipizide | 1-2% | HIGH | ↑ | No |
| Meglitinide | Repaglinide | 0.5-1.5% | Low | ↑ | No |
| TZD | Pioglitazone | 0.5-1.4% | Very low | ↑ | Neutral |
| DPP-4i | Sitagliptin | 0.5-0.8% | Very low | Neutral | Neutral |
| GLP-1 RA | Semaglutide | 1-1.5% | Low | ↓↓ | Yes |
| SGLT2i | Empagliflozin | 0.5-1% | Very low | ↓ | Yes (HF/CKD) |
| Alpha-GI | Acarbose | 0.5-0.8% | None | Neutral | No |
Sources: Lippincott Illustrated Reviews: Pharmacology (9781975170561), Goldman-Cecil Medicine (9780323930345). Recent guideline: 2026 AACE Type 2 Diabetes Management Algorithm (PMID 41842862).This is for educational purposes. Clinical decisions should always be made by a qualified healthcare provider.
Create a quick reference PDF comparing all diabetes drug classes
ls -la /tmp/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /tmp/workspace/diabetes-pdf && python3 << 'PYEOF' from reportlab.lib.pagesizes import A4, landscape from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import (SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/diabetes-pdf/Diabetes_Drug_Classes_Quick_Reference.pdf" # ── Colour palette ────────────────────────────────────────────────────────── BLUE_DARK = colors.HexColor("#1A3A5C") # header bg BLUE_MID = colors.HexColor("#2E6DA4") # section header BLUE_LIGHT = colors.HexColor("#D6E8F7") # alt row TEAL = colors.HexColor("#0B7B8A") # T1 accent GREEN_DARK = colors.HexColor("#1A6B3A") # T2 accent ORANGE = colors.HexColor("#D95F02") # warning / high-risk YELLOW_LT = colors.HexColor("#FFF8E1") # caution bg WHITE = colors.white GREY_LT = colors.HexColor("#F5F5F5") GREY_MED = colors.HexColor("#CCCCCC") # ── Styles ─────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() def S(name, **kw): base = styles["Normal"] return ParagraphStyle(name, parent=base, **kw) title_style = S("Title", fontSize=20, textColor=WHITE, alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=2) subtitle_style= S("Sub", fontSize=10, textColor=BLUE_LIGHT, alignment=TA_CENTER, fontName="Helvetica") h1_style = S("H1", fontSize=13, textColor=WHITE, alignment=TA_LEFT, fontName="Helvetica-Bold", spaceAfter=2) h2_style = S("H2", fontSize=10, textColor=WHITE, alignment=TA_LEFT, fontName="Helvetica-Bold") body_style = S("Body", fontSize=8, textColor=colors.black, leading=11) body_bold = S("BodyB", fontSize=8, textColor=colors.black, leading=11, fontName="Helvetica-Bold") small_style = S("Small", fontSize=7, textColor=colors.HexColor("#444444"), leading=9) cell_style = S("Cell", fontSize=7.5, textColor=colors.black, leading=10) cell_bold = S("CellB", fontSize=7.5, textColor=BLUE_DARK, leading=10, fontName="Helvetica-Bold") warn_style = S("Warn", fontSize=7.5, textColor=ORANGE, leading=10, fontName="Helvetica-Bold") footer_style = S("Footer", fontSize=7, textColor=colors.HexColor("#888888"), alignment=TA_CENTER) PAGE_W, PAGE_H = landscape(A4) # 297 × 210 mm MARGIN = 1.2 * cm DOC_W = PAGE_W - 2 * MARGIN # ── Helper to make coloured header paragraphs ──────────────────────────────── def section_header(text, bg=BLUE_MID, fg=WHITE, size=11): p = Paragraph(f"<b>{text}</b>", ParagraphStyle("sh", parent=styles["Normal"], fontSize=size, textColor=fg, fontName="Helvetica-Bold", alignment=TA_LEFT)) t = Table([[p]], colWidths=[DOC_W]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("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 # ── Page header / footer callbacks ─────────────────────────────────────────── def on_page(canvas, doc): canvas.saveState() # top banner canvas.setFillColor(BLUE_DARK) canvas.rect(0, PAGE_H - 1.6*cm, PAGE_W, 1.6*cm, fill=1, stroke=0) canvas.setFillColor(WHITE) canvas.setFont("Helvetica-Bold", 14) canvas.drawString(MARGIN, PAGE_H - 1.1*cm, "DIABETES MELLITUS — Drug Classes Quick Reference") canvas.setFont("Helvetica", 8) canvas.setFillColor(BLUE_LIGHT) canvas.drawRightString(PAGE_W - MARGIN, PAGE_H - 1.1*cm, f"Page {doc.page} | Lippincott Pharmacology / Goldman-Cecil Medicine") # bottom rule + footer canvas.setStrokeColor(GREY_MED) canvas.setLineWidth(0.5) canvas.line(MARGIN, 1.0*cm, PAGE_W - MARGIN, 1.0*cm) canvas.setFillColor(colors.HexColor("#888888")) canvas.setFont("Helvetica", 6.5) canvas.drawCentredString(PAGE_W/2, 0.55*cm, "For educational purposes only. Clinical decisions require qualified medical supervision.") canvas.restoreState() # ── Build content ───────────────────────────────────────────────────────────── story = [] def spacer(h=0.25): story.append(Spacer(1, h*cm)) # ════════════════════════════════════════════════════════════════════════════ # PAGE 1: Cover intro + Insulin (Type 1) # ════════════════════════════════════════════════════════════════════════════ # Intro box intro_text = ( "<b>TYPE 1 DM</b>: Absolute insulin deficiency (autoimmune β-cell destruction). " "<b>Insulin is the ONLY treatment</b> — no oral agent can replace it.<br/>" "<b>TYPE 2 DM</b>: Insulin resistance + progressive β-cell failure. " "Start with <b>Metformin</b>, add agents guided by comorbidities, weight, renal function, and CV risk." ) intro_para = Paragraph(intro_text, ParagraphStyle("intro", parent=styles["Normal"], fontSize=8.5, textColor=BLUE_DARK, leading=12, backColor=BLUE_LIGHT, borderPad=8, borderColor=BLUE_MID, borderWidth=1)) story.append(intro_para) spacer(0.3) # ── INSULIN TABLE ───────────────────────────────────────────────────────────── story.append(section_header("● TYPE 1 DIABETES — INSULIN THERAPY", bg=TEAL)) spacer(0.15) ins_headers = [ Paragraph("<b>Category</b>", cell_bold), Paragraph("<b>Examples</b>", cell_bold), Paragraph("<b>Onset</b>", cell_bold), Paragraph("<b>Peak</b>", cell_bold), Paragraph("<b>Duration</b>", cell_bold), Paragraph("<b>Primary Use</b>", cell_bold), Paragraph("<b>Key Notes</b>", cell_bold), ] ins_data = [ ins_headers, [ Paragraph("<b>Rapid-Acting</b>", cell_bold), Paragraph("Lispro (Humalog)\nAspart (NovoLog)\nGlulisine (Apidra)\nInhaled (Afrezza)", cell_style), Paragraph("10–30 min", cell_style), Paragraph("30–90 min", cell_style), Paragraph("3–5 h", cell_style), Paragraph("Prandial (mealtime) bolus; postprandial glucose control", cell_style), Paragraph("Inject 15 min before meal or just after. Used in insulin pumps (CSII). Inhaled: peak ~10 min.", cell_style), ], [ Paragraph("<b>Short-Acting</b>", cell_bold), Paragraph("Regular insulin\n(Humulin R, Novolin R)", cell_style), Paragraph("30 min", cell_style), Paragraph("50–120 min", cell_style), Paragraph("6–8 h", cell_style), Paragraph("Prandial bolus; IV use in DKA / hospital", cell_style), Paragraph("Inject 30 min before meal. Only insulin suitable for IV infusion.", cell_style), ], [ Paragraph("<b>Intermediate-Acting</b>", cell_bold), Paragraph("NPH\n(Humulin N, Novolin N)", cell_style), Paragraph("1–2 h", cell_style), Paragraph("4–8 h", cell_style), Paragraph("12–18 h", cell_style), Paragraph("Basal coverage; often mixed with regular", cell_style), Paragraph("Pronounced peak → higher hypoglycemia risk. Never give IV.", cell_style), ], [ Paragraph("<b>Long-Acting (Basal)</b>", cell_bold), Paragraph("Glargine (Lantus)\nDetemir (Levemir)\nDegludec (Tresiba)", cell_style), Paragraph("1–2 h", cell_style), Paragraph("Peakless\n(flat profile)", cell_style), Paragraph("~24 h\n(Degludec >42 h)", cell_style), Paragraph("Once-daily basal; fasting glucose control", cell_style), Paragraph("Lower hypoglycemia risk vs NPH. Glargine: do NOT dilute/mix. Degludec: longest duration.", cell_style), ], [ Paragraph("<b>Premixed</b>", cell_bold), Paragraph("70/30 NPH+Regular\n75/25 Lispro protamine/Lispro", cell_style), Paragraph("Variable", cell_style), Paragraph("Dual peak", cell_style), Paragraph("10–16 h", cell_style), Paragraph("Simplified regimen (twice daily)", cell_style), Paragraph("Less flexible — difficult to fine-tune dosing. Not ideal for tight control.", cell_style), ], ] col_w = [2.8*cm, 3.5*cm, 1.5*cm, 2.0*cm, 2.2*cm, 3.8*cm, 4.4*cm] ins_table = Table(ins_data, colWidths=col_w, repeatRows=1) ins_table.setStyle(TableStyle([ # Header row ("BACKGROUND", (0,0), (-1,0), TEAL), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 8), ("ALIGN", (0,0), (-1,0), "CENTER"), # Alternating rows ("BACKGROUND", (0,1), (-1,1), GREY_LT), ("BACKGROUND", (0,2), (-1,2), WHITE), ("BACKGROUND", (0,3), (-1,3), GREY_LT), ("BACKGROUND", (0,4), (-1,4), WHITE), ("BACKGROUND", (0,5), (-1,5), GREY_LT), # Grid ("GRID", (0,0), (-1,-1), 0.4, GREY_MED), ("ROWBACKGROUND", (0,0), (-1, 0), TEAL), # Padding ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ])) story.append(ins_table) spacer(0.25) # Basal-bolus note bb_text = ( "<b>Basal-Bolus Regimen (Gold Standard for T1DM):</b> " "Long-acting insulin (e.g. glargine once nightly) for basal control + " "Rapid-acting insulin before each meal for prandial spikes. " "Target A1C <7% (ADA). Home CGM facilitates tighter control." ) story.append(Paragraph(bb_text, ParagraphStyle("bb", parent=styles["Normal"], fontSize=8, textColor=colors.black, leading=11, backColor=YELLOW_LT, borderPad=6, borderColor=colors.HexColor("#F9A825"), borderWidth=1))) story.append(PageBreak()) # ════════════════════════════════════════════════════════════════════════════ # PAGE 2: Oral & Injectable Agents (Type 2) # ════════════════════════════════════════════════════════════════════════════ story.append(section_header("● TYPE 2 DIABETES — ORAL & INJECTABLE AGENTS", bg=GREEN_DARK)) spacer(0.15) t2_headers = [ Paragraph("<b>Drug Class</b>", cell_bold), Paragraph("<b>Key Drugs</b>", cell_bold), Paragraph("<b>Mechanism</b>", cell_bold), Paragraph("<b>A1C ↓</b>", cell_bold), Paragraph("<b>Hypo Risk</b>", cell_bold), Paragraph("<b>Weight</b>", cell_bold), Paragraph("<b>CV / Renal Benefit</b>", cell_bold), Paragraph("<b>Main Adverse Effects</b>", cell_bold), Paragraph("<b>Key Cautions</b>", cell_bold), ] def R(drug, key, mech, a1c, hypo, wt, cv, ae, caution, bg=WHITE): hypo_p = Paragraph(hypo, warn_style if "HIGH" in hypo else cell_style) return [ Paragraph(f"<b>{drug}</b>", cell_bold), Paragraph(key, cell_style), Paragraph(mech, cell_style), Paragraph(a1c, cell_style), hypo_p, Paragraph(wt, cell_style), Paragraph(cv, cell_style), Paragraph(ae, cell_style), Paragraph(caution, cell_style), ] t2_data = [t2_headers, R("Biguanide\n(1st line)", "Metformin\n(Glucophage)", "↓ Hepatic gluconeogenesis\n↑ Peripheral insulin sensitivity\n↓ Intestinal glucose absorption", "1–2%", "Very Low", "Neutral / ↓", "Modest CV benefit\n(UKPDS)", "GI: nausea, diarrhea, vomiting\nRarely: lactic acidosis\nVitamin B12 ↓ (long-term)", "Hold if eGFR<30; caution 30–45\nHold before IV contrast\nAvoid in hepatic failure"), R("Sulfonylurea", "Glipizide, Glyburide,\nGlimepiride", "Close K-ATP channels on β-cells\n→ ↑ Insulin secretion\n(glucose-independent)", "1–2%", "HIGH ⚠", "↑ Gain", "None", "Hypoglycemia (most dangerous)\nWeight gain", "Avoid glyburide in elderly / CKD\n(highest hypo risk)\nSkipping meals → severe hypo"), R("Meglitinide", "Repaglinide (Prandin)\nNateglinide (Starlix)", "Close K-ATP channels\n(different binding site from SU)\nVery short-acting", "0.5–1.5%", "Low–Moderate", "↑ Mild", "None", "Hypoglycemia, weight gain\n(less than SU)", "Take with each meal; skip if skipping meal\nMultiple daily doses required"), R("Thiazolidinedione\n(TZD)", "Pioglitazone (Actos)\nRosiglitazone (Avandia)", "Activate PPAR-γ (nuclear receptor)\n→ ↑ Insulin sensitivity\n(muscle, fat, liver)", "0.5–1.4%", "Very Low", "↑ Gain + edema", "Pioglitazone: ↓ CV events\n(PROactive trial)", "Fluid retention / edema\nHeart failure exacerbation\nBone fractures (esp. women)\nBladder cancer risk (pioglitazone)", "Contraindicated: NYHA III–IV HF\nAvoid in osteoporosis\nSlow onset (weeks)"), R("DPP-4 Inhibitor\n(Gliptin)", "Sitagliptin (Januvia)\nSaxagliptin (Onglyza)\nLinagliptin (Tradjenta)\nAlogliptin (Nesina)", "Inhibit DPP-4 enzyme\n→ ↑ Endogenous GLP-1 & GIP\n→ Glucose-dependent ↑ insulin\n+ ↓ glucagon", "0.5–0.8%", "Very Low", "Neutral", "CV neutral (saxagliptin:\n↑ HF hospitalisation risk)", "Nasopharyngitis, headache\nPossible pancreatitis (rare)\nJoint pain (rare)", "Linagliptin: no renal dose adj.\nOthers: reduce dose if eGFR↓\nSaxagliptin: avoid in HF"), R("GLP-1 Receptor\nAgonist", "Semaglutide (Ozempic)\nLiraglutide (Victoza)\nDulaglutide (Trulicity)\nExenatide (Byetta)", "Mimic GLP-1 incretin\n→ Glucose-dep ↑ insulin\n→ ↓ Glucagon\n→ Slow gastric emptying\n→ ↑ Satiety (CNS)", "1–1.5%", "Low", "↓↓ Loss", "Liraglutide, semaglutide,\ndulaglutide: ↓ MACE\n(LEADER, SUSTAIN-6,\nREWIND trials)", "Nausea, vomiting, diarrhea\n(common; often transient)\nPancreatitis (rare)\nC-cell thyroid tumors (animal)", "Contraindicated: personal/family hx\nmedullary thyroid Ca or MEN2\nInjectable (except oral sema.)\nCaution in severe GI disease"), R("SGLT-2 Inhibitor\n(Flozin)", "Empagliflozin (Jardiance)\nDapagliflozin (Farxiga)\nCanagliflozin (Invokana)", "Block SGLT2 in proximal renal tubule\n→ ↑ Urinary glucose excretion\n(insulin-independent)", "0.5–1.0%", "Very Low", "↓ Mild", "↓ HF hospitalisation\n↓ CKD progression\n↓ CV death\n(EMPA-REG, DAPA-HF,\nCREDENCE trials)", "Genital mycotic infections ⚠\nUTI, polyuria, hypotension\nEuglycaemic DKA (rare)\nBone fractures\nFournier gangrene (rare)", "Avoid if eGFR<45 (glucose effect ↓)\nHold perioperatively (DKA risk)\nMonitor volume status"), R("α-Glucosidase\nInhibitor", "Acarbose (Precose)\nMiglitol (Glyset)", "Inhibit intestinal α-glucosidase\n→ Delay carbohydrate digestion\n→ ↓ Postprandial glucose", "0.5–0.8%", "None (mono)", "Neutral", "None", "Flatulence, diarrhea, bloating\n(common; limits use)\n", "Take at start of each meal\nHypo (if with SU/insulin):\ntreat with GLUCOSE not sucrose\nAvoid in IBD, bowel obstruction"), ] col_w2 = [2.2*cm, 2.8*cm, 3.5*cm, 1.3*cm, 1.5*cm, 1.5*cm, 3.2*cm, 3.5*cm, 3.2*cm] t2_table = Table(t2_data, colWidths=col_w2, repeatRows=1) row_colors = [GREY_LT, WHITE, GREY_LT, WHITE, GREY_LT, WHITE, GREY_LT, WHITE] ts = [ ("BACKGROUND", (0,0), (-1,0), GREEN_DARK), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 7.5), ("ALIGN", (0,0), (-1,0), "CENTER"), ("GRID", (0,0), (-1,-1), 0.4, GREY_MED), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ] for i, bg in enumerate(row_colors): ts.append(("BACKGROUND", (0, i+1), (-1, i+1), bg)) t2_table.setStyle(TableStyle(ts)) story.append(t2_table) spacer(0.2) # ── Clinical pearl box ───────────────────────────────────────────────────── pearls = [ "<b>1st line:</b> Metformin at diagnosis (unless eGFR <30 or contraindicated).", "<b>+ CVD / high CV risk:</b> Add GLP-1 RA (semaglutide/liraglutide) or SGLT2i (empagliflozin/canagliflozin).", "<b>+ Heart failure / CKD:</b> Prefer SGLT2i (dapagliflozin for CKD; empagliflozin for HFrEF).", "<b>Weight loss priority:</b> GLP-1 RA first choice.", "<b>Renal impairment, no dose adjustment:</b> Linagliptin (DPP-4i).", "<b>Highest hypoglycemia risk:</b> Sulfonylureas > Meglitinides > Insulin (when not titrated).", "<b>2026 AACE update (PMID 41842862):</b> Semaglutide now recommended for CV risk reduction and obesity management alongside T2DM.", ] pearl_text = " • ".join(pearls) story.append(Paragraph( "<b>⚑ Clinical Pearls:</b> " + " <br/> <b>•</b> ".join(pearls), ParagraphStyle("pearls", parent=styles["Normal"], fontSize=7.5, textColor=BLUE_DARK, leading=12, backColor=BLUE_LIGHT, borderPad=7, borderColor=BLUE_MID, borderWidth=1))) # ── BUILD ───────────────────────────────────────────────────────────────────── doc = SimpleDocTemplate( OUTPUT, pagesize=landscape(A4), topMargin=1.8*cm, bottomMargin=1.3*cm, leftMargin=MARGIN, rightMargin=MARGIN, ) doc.build(story, onFirstPage=on_page, onLaterPages=on_page) print("OK:", OUTPUT) PYEOF
Diabetes Drug Classes Quick Reference
PDF Document · PDF