Treatment of diabetic CKD step wise as per KDIGO 2026 detail with proper explanation, prepare ppt slides in pdf format using exact pictures and texts from KDIGO guidelines and this is for consultant level DM nephrology
KDIGO 2024 2025 diabetes CKD management guidelines stepwise treatment
https://kdigo.org/wp-content/uploads/2024/03/KDIGO-2024-CKD-…
KDIGO 2022 diabetes management CKD stepwise algorithm figure HbA1c SGLT2i finerenone GLP1
https://kdigo.org/wp-content/uploads/2022/10/KDIGO-2022-Clin…
mkdir -p /home/daytona/workspace/kdigo-diabetic-ckd && ls /home/daytona/workspac…
~/kdigo-diabetic-ckd/build_slides.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = 'LAYOUT_WIDE'; // 13.3" x 7.5"
pres.author = 'DM Nephrology CME';
pres.title = 'KDIGO 2024 – Diabetic CKD: Stepwise Management';
// ─── COLOUR PALETTE ───────────────────────────────────────────────────────────
const C = {
navy: '0B2545', // dominant background
teal: '1B7F8A', // section accent
teal2: '1CA6B5', // lighter teal
amber: 'E8A020', // highlight/accent
red: 'C0392B', // warning
green: '1E8449', // positive/safe
white: 'FFFFFF',
offwht: 'F2F6FA',
lgray: 'C8D4E0',
mgray: '6B7C93',
dgray: '2D3A4A',
lime: '27AE60',
orange: 'E67E22',
purple: '7D3C98',
};
// ─── HELPERS ─────────────────────────────────────────────────────────────────
function addHeader(slide, title, subtitle) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 0.85,
fill: { color: C.navy }, line: { width: 0 }
});
slide.addText(title, {
x: 0.25, y: 0, w: 11.5, h: 0.85,
fontSize: 22, bold: true, color: C.white, valign: 'middle', margin: 0
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.25, y: 0.52, w: 11.5, h: 0.35,
fontSize: 11, color: C.teal2, valign: 'middle', margin: 0
});
}
// KDIGO badge
slide.addShape(pres.ShapeType.rect, {
x: 11.8, y: 0.1, w: 1.35, h: 0.65,
fill: { color: C.teal }, line: { width: 0 }, rounding: 0.08
});
slide.addText('KDIGO 2024', {
x: 11.8, y: 0.1, w: 1.35, h: 0.65,
fontSize: 8.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
}
function addFooter(slide, pageNum, total) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 7.25, w: 13.3, h: 0.25,
fill: { color: C.dgray }, line: { width: 0 }
});
slide.addText(`Diabetic CKD – Stepwise Management per KDIGO 2024/2022 | Consultant DM Nephrology`, {
x: 0.25, y: 7.25, w: 11.5, h: 0.25,
fontSize: 7, color: C.lgray, valign: 'middle', margin: 0
});
slide.addText(`${pageNum} / ${total}`, {
x: 12.6, y: 7.25, w: 0.6, h: 0.25,
fontSize: 7, color: C.lgray, align: 'right', valign: 'middle', margin: 0
});
}
function box(slide, x, y, w, h, bg, borderColor) {
slide.addShape(pres.ShapeType.rect, {
x, y, w, h,
fill: { color: bg || C.offwht },
line: { color: borderColor || C.lgray, width: 1.2 },
shadow: { type: 'outer', blur: 4, offset: 2, angle: 45, color: '00000020' }
});
}
function pill(slide, x, y, w, h, bg, text, textColor, fontSize) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h,
fill: { color: bg },
line: { width: 0 },
rectRadius: 0.12
});
slide.addText(text, {
x, y, w, h,
fontSize: fontSize || 10.5, bold: true, color: textColor || C.white,
align: 'center', valign: 'middle', margin: 0, wrap: true
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 1 – TITLE
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
// full dark background
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navy }, line: { width: 0 } });
// teal accent bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.2, w: 13.3, h: 0.08, fill: { color: C.teal }, line: { width: 0 } });
// kidney icon area (decorative circles)
s.addShape(pres.ShapeType.ellipse, { x: 10.5, y: 0.5, w: 2.4, h: 3.5, fill: { color: '122A45' }, line: { width: 0 } });
s.addShape(pres.ShapeType.ellipse, { x: 11.0, y: 1.2, w: 1.8, h: 2.8, fill: { color: '1B3D5C' }, line: { width: 0 } });
s.addText('KDIGO 2024', {
x: 0.6, y: 0.9, w: 9.5, h: 0.55,
fontSize: 20, color: C.teal2, bold: false, charSpacing: 6
});
s.addText([
{ text: 'Diabetic CKD\n', options: { breakLine: true } },
{ text: 'Stepwise Management', options: {} }
], {
x: 0.6, y: 1.4, w: 9.8, h: 2.0,
fontSize: 46, bold: true, color: C.white
});
s.addText('A Consultant-Level Guide for DM Nephrology', {
x: 0.6, y: 3.5, w: 9.5, h: 0.5,
fontSize: 16, color: C.lgray, italic: true
});
s.addText([
{ text: 'KDIGO 2024 CKD Guideline | KDIGO 2022 Diabetes Management in CKD\n', options: { breakLine: true } },
{ text: 'ADA–KDIGO Consensus 2022 | FLOW Trial | FIDELIO / FIGARO / FIDELITY', options: {} }
], {
x: 0.6, y: 5.55, w: 12.0, h: 0.8,
fontSize: 11, color: C.mgray
});
s.addText('July 2026', {
x: 0.6, y: 6.6, w: 3, h: 0.4,
fontSize: 12, color: C.teal2, bold: true
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 2 – LEARNING OBJECTIVES
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Learning Objectives');
addFooter(s, 2, 18);
const objs = [
['1', 'Understand the holistic kidney–heart risk framework for DKD per KDIGO 2024'],
['2', 'Apply the stepwise pharmacotherapy algorithm: RASi → SGLT2i → ns-MRA → GLP-1 RA'],
['3', 'Master glycemic targets (HbA1c <6.5–8.0%) and monitoring strategies in CKD stages G3–G5'],
['4', 'Manage BP to SBP <120 mmHg with appropriate agents across eGFR strata'],
['5', 'Identify when and how to initiate/continue each drug class down to dialysis/KRT'],
['6', 'Recognise special situations: hyperkalemia management, sick-day rules, perioperative care'],
['7', 'Apply lipid, ASCVD, and anemia management in DKD with current evidence'],
];
objs.forEach(([num, text], i) => {
const y = 1.05 + i * 0.79;
s.addShape(pres.ShapeType.ellipse, { x: 0.35, y: y + 0.04, w: 0.42, h: 0.42, fill: { color: C.teal }, line: { width: 0 } });
s.addText(num, { x: 0.35, y: y + 0.04, w: 0.42, h: 0.42, fontSize: 13, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText(text, { x: 0.95, y: y, w: 12.0, h: 0.5, fontSize: 13.5, color: C.dgray, valign: 'middle' });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 3 – HOLISTIC FRAMEWORK (Figure 1 / Figure 2 KDIGO)
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Holistic Kidney–Heart Risk Management Framework', 'KDIGO 2022 Figure 1 & KDIGO 2024 Figure 2');
addFooter(s, 3, 18);
// Central patient box
s.addShape(pres.ShapeType.ellipse, { x: 5.4, y: 2.8, w: 2.5, h: 1.55,
fill: { color: C.navy }, line: { color: C.teal, width: 2 } });
s.addText('Patient with\nDiabetes + CKD', { x: 5.4, y: 2.8, w: 2.5, h: 1.55,
fontSize: 11, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
// Layer 1 – Foundation
const layer1 = [
['Lifestyle\nModification', C.lime, 0.25, 1.7],
['Self-\nManagement', C.lime, 0.25, 3.2],
['Smoking\nCessation', C.lime, 0.25, 4.7],
['Weight &\nExercise', C.lime, 0.25, 6.2],
];
s.addText('FOUNDATION', { x: 0.1, y: 1.1, w: 2.1, h: 0.35, fontSize: 9, bold: true, color: C.lime, align: 'center' });
layer1.forEach(([txt, col, x, y]) => {
s.addShape(pres.ShapeType.roundRect, { x, y: y - 0.05, w: 2.0, h: 0.85,
fill: { color: col }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(txt, { x, y: y - 0.05, w: 2.0, h: 0.85,
fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
});
// Layer 2 – First-line
const layer2 = [
['RASi\n(ACEi / ARB)', C.teal, 2.55, 1.6],
['SGLT2i\n(T2D / eGFR ≥20)', C.teal, 2.55, 2.65],
['Metformin\n(eGFR ≥30)', C.teal, 2.55, 3.7],
['Statin\n(moderate/high)', C.teal, 2.55, 4.75],
['BP Control\n(<120 mmHg SBP)', C.teal, 2.55, 5.8],
];
s.addText('FIRST-LINE DRUGS', { x: 2.45, y: 1.05, w: 2.25, h: 0.35, fontSize: 9, bold: true, color: C.teal, align: 'center' });
layer2.forEach(([txt, col, x, y]) => {
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.1, h: 0.78,
fill: { color: col }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(txt, { x, y, w: 2.1, h: 0.78,
fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
});
// Layer 3 – Additional heart/kidney protection
const layer3 = [
['ns-MRA\n(Finerenone, T2D)', C.amber, 8.55, 1.6],
['GLP-1 RA\n(T2D, CV benefit)', C.amber, 8.55, 2.65],
['Antiplatelet\n(ASCVD)', C.amber, 8.55, 3.7],
['Ezetimibe/PCSK9i\n(per ASCVD risk)', C.amber, 8.55, 4.75],
['Reassess\nevery 3–6 months', C.amber, 8.55, 5.8],
];
s.addText('ADDITIONAL PROTECTION', { x: 8.45, y: 1.05, w: 2.3, h: 0.35, fontSize: 9, bold: true, color: C.amber, align: 'center' });
layer3.forEach(([txt, col, x, y]) => {
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.2, h: 0.78,
fill: { color: col }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(txt, { x, y, w: 2.2, h: 0.78,
fontSize: 9.5, bold: true, color: C.dgray, align: 'center', valign: 'middle', margin: 0 });
});
// Layer 4 – Complication management
const layer4 = [
['Anemia', C.purple, 11.1, 1.7],
['CKD-MBD', C.purple, 11.1, 2.7],
['Acidosis', C.purple, 11.1, 3.7],
['Hyperkalemia', C.purple, 11.1, 4.7],
['Nutrition', C.purple, 11.1, 5.7],
];
s.addText('COMPLICATIONS', { x: 11.0, y: 1.1, w: 2.1, h: 0.35, fontSize: 9, bold: true, color: C.purple, align: 'center' });
layer4.forEach(([txt, col, x, y]) => {
s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.0, h: 0.73,
fill: { color: col }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(txt, { x, y, w: 2.0, h: 0.73,
fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
});
// Arrows
[[2.35, 3.56, 2.55, 3.56], [4.65, 3.56, 5.4, 3.56], [7.9, 3.56, 8.55, 3.56], [10.75, 3.56, 11.1, 3.56]].forEach(([x1,y1,x2,y2]) => {
s.addShape(pres.ShapeType.line, { x: x1, y: y1, w: x2-x1, h: 0,
line: { color: C.mgray, width: 1.5, endArrowType: 'arrow' } });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 4 – STEP 1: LIFESTYLE & SELF-MANAGEMENT
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 1: Lifestyle & Self-Management (Foundation)', 'KDIGO 2022 Chapter 3 – Non-pharmacological therapy');
addFooter(s, 4, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.lime }, line: { width: 0 } });
const cols = [
{
title: 'Dietary Advice', color: C.lime, x: 0.4, y: 1.0,
items: [
'Sodium: <2 g/day (<5 g NaCl)',
'Protein: 0.8 g/kg/day (non-dialysis)',
'Avoid high-protein (>1.3 g/kg/day)',
'Plant-based diet preferred',
'Low potassium if hyperkalemic',
'Phosphate restriction in CKD-MBD',
'Do NOT restrict if cachectic/sarcopenic',
]
},
{
title: 'Physical Activity', color: C.teal, x: 4.5, y: 1.0,
items: [
'Moderate intensity ≥150 min/week',
'Aerobic + resistance training',
'Tailor to fall-risk patients',
'Encourage even with low eGFR',
'Cardiorespiratory benefit',
'Weight management in obese',
'eGFR ≥30: supervised programs',
]
},
{
title: 'Self-Management & Monitoring', color: C.amber, x: 8.6, y: 1.0,
items: [
'CGM preferred (SMBG if no CGM)',
'Self-monitoring BP at home',
'Foot care & wound surveillance',
'Ophthalmology / retinal screening',
'Medication adherence counselling',
'Smoking cessation (all patients)',
'Multidisciplinary team approach',
]
},
];
cols.forEach(col => {
s.addShape(pres.ShapeType.roundRect, { x: col.x, y: col.y, w: 3.9, h: 0.55,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(col.title, { x: col.x, y: col.y, w: 3.9, h: 0.55,
fontSize: 13, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
s.addText([{ text: '• ', options: { color: col.color, bold: true } }, { text: item, options: { color: C.dgray } }],
{ x: col.x + 0.15, y: col.y + 0.65 + i * 0.67, w: 3.7, h: 0.6, fontSize: 11.5 });
});
});
// Note box
box(s, 0.4, 6.55, 12.5, 0.6, 'FFF8E7', C.amber);
s.addText('⚠ Individualize all lifestyle targets. Regular reassessment every 3–6 months. Weight loss recommended for patients with obesity + DKD + eGFR ≥30.', {
x: 0.55, y: 6.58, w: 12.2, h: 0.55,
fontSize: 11, color: C.dgray, italic: true, valign: 'middle'
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 5 – STEP 2: BLOOD PRESSURE CONTROL
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 2: Blood Pressure Management', 'KDIGO 2024 Rec 3.1 | KDIGO 2021 BP Guideline');
addFooter(s, 5, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.teal }, line: { width: 0 } });
// Target banner
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.05, w: 12.5, h: 0.65,
fill: { color: C.navy }, line: { width: 0 }, rectRadius: 0.1 });
s.addText('TARGET: SBP < 120 mmHg (standardised office BP) – applies to most CKD patients including DKD | KDIGO 2024 Rec 3.1.1 (Grade 1B)', {
x: 0.5, y: 1.05, w: 12.3, h: 0.65,
fontSize: 12.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
const bpCols = [
{
heading: 'First-Line: RASi (ACEi / ARB)',
color: C.teal,
x: 0.4, y: 1.9, w: 4.0,
items: [
'Indications: CKD + albuminuria ± HTN',
'DKD with A2 or A3: Rec 3.6.3 (1B)',
'Use MAX tolerated dose',
'ACEi/ARB = equivalent efficacy',
'Do NOT combine ACEi + ARB + DRI',
'Check K⁺, creatinine in 2–4 wks',
'Continue even if eGFR <30',
]
},
{
heading: 'Adjunct: Dihydropyridine CCB',
color: C.teal2,
x: 4.65, y: 1.9, w: 3.9,
items: [
'Add if SBP not at target on RASi',
'Amlodipine preferred in DKD',
'No restriction by eGFR',
'Useful in: older patients, ISH',
'Avoid non-DHP CCB if bradycardia',
'Combine with RASi / diuretic',
'',
]
},
{
heading: 'Adjunct: Diuretics',
color: C.amber,
x: 8.75, y: 1.9, w: 4.15,
items: [
'Thiazides: eGFR ≥30',
'Loop diuretics: eGFR <30 (or volume overload)',
'Chlorthalidone: may use down to eGFR 15',
'Steroidal MRA: resistant HTN, eGFR ≥45',
'ns-MRA (finerenone): preferred in DKD',
'Amiloride: avoid with RASi (K⁺ risk)',
'',
]
},
];
bpCols.forEach(col => {
s.addShape(pres.ShapeType.roundRect, { x: col.x, y: col.y, w: col.w, h: 0.5,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(col.heading, { x: col.x, y: col.y, w: col.w, h: 0.5,
fontSize: 11.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
if (!item) return;
s.addText([{ text: '▸ ', options: { color: col.color, bold: true } }, { text: item, options: { color: C.dgray } }],
{ x: col.x + 0.1, y: col.y + 0.58 + i * 0.56, w: col.w - 0.15, h: 0.52, fontSize: 11 });
});
});
// Monitoring table
s.addShape(pres.ShapeType.rect, { x: 0.4, y: 6.15, w: 12.5, h: 0.28,
fill: { color: C.navy }, line: { width: 0 } });
s.addText('MONITORING REMINDERS', { x: 0.5, y: 6.15, w: 12.3, h: 0.28,
fontSize: 10, bold: true, color: C.white, valign: 'middle', margin: 0 });
s.addText('• Hold ACEi/ARB if SCr rises >30% in 4 weeks • Reduce/stop if symptomatic hypotension or uncontrolled K⁺ • Restart at low dose when hyperkalemia resolves • Orthostatic BP monitoring in elderly DKD', {
x: 0.5, y: 6.43, w: 12.3, h: 0.85,
fontSize: 10.5, color: C.dgray, valign: 'top'
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 6 – STEP 3: RASi IN DETAIL
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 3: RAS Inhibitors – Recommendations & Practice Points', 'KDIGO 2024 Section 3.6 | KDIGO 2021 BP Guideline');
addFooter(s, 6, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.teal }, line: { width: 0 } });
const recs = [
{ grade: '1B', label: 'Rec 3.6.1', color: C.teal, text: 'START RASi in CKD + severely increased albuminuria (A3, G1–G4) WITHOUT diabetes' },
{ grade: '2C', label: 'Rec 3.6.2', color: C.teal2, text: 'SUGGEST RASi in CKD + moderately increased albuminuria (A2, G1–G4) WITHOUT diabetes' },
{ grade: '1B', label: 'Rec 3.6.3', color: C.teal, text: 'RECOMMEND RASi in CKD + A2/A3 WITH diabetes (includes DKD) – KDIGO 2024 core DKD rec' },
{ grade: '1B', label: 'Rec 3.6.4', color: C.red, text: 'AVOID dual RASi: Do NOT combine ACEi + ARB + DRI (direct renin inhibitor) – risk of AKI, hyperkalemia' },
];
recs.forEach((r, i) => {
const y = 1.05 + i * 1.1;
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y, w: 0.95, h: 0.6,
fill: { color: r.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(r.grade, { x: 0.4, y, w: 0.95, h: 0.6,
fontSize: 15, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText(r.label, { x: 1.5, y, w: 1.2, h: 0.6,
fontSize: 10, bold: true, color: r.color, valign: 'middle', margin: 0 });
s.addText(r.text, { x: 2.8, y, w: 10.1, h: 0.6,
fontSize: 12.5, color: C.dgray, valign: 'middle' });
});
// Practice points box
box(s, 0.4, 5.55, 12.5, 1.65, 'EBF5FB', C.teal);
s.addText('Practice Points – Monitoring & Management', {
x: 0.55, y: 5.6, w: 12.2, h: 0.4,
fontSize: 12, bold: true, color: C.teal
});
const pps = [
'PP 3.6.1: Use MAXIMUM tolerated approved dose (proven benefit was at target doses)',
'PP 3.6.2: Check K⁺, SCr and BP within 2–4 weeks of initiation or dose increase',
'PP 3.6.3: Hyperkalemia associated with RASi – manage K⁺ medically (patiromer/SZC) rather than stopping RASi',
'PP 3.6.4: Do NOT stop if SCr rises <30%; stop only if >30% in 4 weeks, symptomatic hypotension, or uncontrolled K⁺',
'PP 3.6.5: Consider dose reduction at eGFR <15 to reduce uremic symptoms (not routine discontinuation)',
'PP 3.6.7: CONTINUE ACEi/ARB even when eGFR falls below 30 ml/min/1.73 m²',
];
pps.forEach((pp, i) => {
s.addText([{ text: '✓ ', options: { color: C.teal, bold: true } }, { text: pp, options: {} }],
{ x: 0.55, y: 6.0 + i * 0.19, w: 12.2, h: 0.2, fontSize: 9.5, color: C.dgray });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 7 – STEP 4: SGLT2 INHIBITORS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 4: SGLT2 Inhibitors – Cornerstone Therapy', 'KDIGO 2024 Rec 3.7 (Grade 1A) | DAPA-CKD | CREDENCE | EMPA-KIDNEY');
addFooter(s, 7, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.teal2 }, line: { width: 0 } });
// Key recommendation
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.0, w: 12.5, h: 0.7,
fill: { color: C.teal2 }, line: { width: 0 }, rectRadius: 0.1 });
s.addText('Rec 3.7.1 (1A): Treat patients with T2D + CKD + eGFR ≥20 with an SGLT2i – regardless of HbA1c or need for additional glucose lowering', {
x: 0.5, y: 1.0, w: 12.2, h: 0.7,
fontSize: 13, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
s.addText('PP 3.7.1: Once initiated, continue SGLT2i even if eGFR falls below 20 ml/min/1.73 m², unless not tolerated or KRT initiated', {
x: 0.5, y: 1.75, w: 12.2, h: 0.45,
fontSize: 11.5, color: C.teal2, italic: true, bold: true
});
// Three columns: Mechanism, Evidence, Safety
const sgltCols = [
{
title: 'Mechanisms of Benefit',
color: C.teal,
x: 0.4, w: 3.8,
items: [
'Tubulo-glomerular feedback restoration',
'Reduction in intraglomerular pressure',
'Decrease in albuminuria',
'Weight reduction & natriuresis',
'Anti-inflammatory / anti-fibrotic',
'Erythropoiesis stimulation',
'Ketone body utilization (cardiac)',
'Independent of glycemic control',
]
},
{
title: 'Key Trial Evidence',
color: C.navy,
x: 4.45, w: 4.3,
items: [
'CREDENCE: Canagliflozin – 34% ↓ kidney failure in T2D+CKD',
'DAPA-CKD: Dapagliflozin – 39% ↓ composite kidney/CV end-point',
'EMPA-KIDNEY: Empagliflozin – 28% ↓ kidney progression or CV death',
'EMPEROR-Reduced: HF benefit without DM',
'Benefit consistent regardless of SGLT2i use at baseline',
'SGLT2i + finerenone: potentially additive (CONFIDENCE trial ongoing)',
'',
'',
]
},
{
title: 'Safety & Special Points',
color: C.amber,
x: 8.95, w: 4.0,
items: [
'DKA: Hold 3–4 days pre-elective surgery',
'UTI: Educate re genital mycosis risk',
'Volume depletion: monitor diuretics',
'eGFR dip on initiation: expected, benign',
'Avoid in T1D (off-label, DKA risk)',
'Continue in dialysis for CV benefit?',
' (evidence emerging)',
'No dose adjustment needed for eGFR 20–60',
]
},
];
sgltCols.forEach(col => {
const y = 2.35;
s.addShape(pres.ShapeType.roundRect, { x: col.x, y, w: col.w, h: 0.48,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(col.title, { x: col.x, y, w: col.w, h: 0.48,
fontSize: 12, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
if (!item) return;
s.addText([{ text: '• ', options: { color: col.color, bold: true } }, { text: item, options: {} }],
{ x: col.x + 0.1, y: 2.9 + i * 0.55, w: col.w - 0.15, h: 0.5, fontSize: 10.5, color: C.dgray });
});
});
// SGLT2i selection box
box(s, 0.4, 7.0, 12.5, 0.35, 'E8F6F3', C.teal);
s.addText('Available agents with proven renal benefit: Dapagliflozin (DAPA-CKD), Canagliflozin (CREDENCE), Empagliflozin (EMPA-KIDNEY) | Choice guided by availability, cost, patient factors', {
x: 0.55, y: 7.02, w: 12.2, h: 0.32,
fontSize: 9.5, color: C.dgray, valign: 'middle', italic: true
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 8 – STEP 5: GLYCEMIC TARGETS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 5: Glycemic Targets & Monitoring in DKD', 'KDIGO 2022 Chapter 2 | Rec 2.2.1 (1C)');
addFooter(s, 8, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.orange }, line: { width: 0 } });
// HbA1c range bar
const barItems = [
{ label: '<6.5%', sublabel: 'T2D + CKD\nLow hypoglycemia risk\nYoung, long life expectancy', color: C.green, x: 0.4 },
{ label: '<7.0%', sublabel: 'Standard target\nMost T2D patients\nADA default', color: C.teal, x: 3.3 },
{ label: '<7.5%', sublabel: 'Moderate risk\nEstablished ASCVD\nLonger duration DM', color: C.teal2, x: 6.2 },
{ label: '<8.0%', sublabel: 'Liberal target\nHypoglycemia prone\nLimited life expectancy\nAdvanced CKD', color: C.amber, x: 9.1 },
{ label: 'Individualize', sublabel: 'Dialysis patients:\nHbA1c unreliable\n→ use CGM or GMI', color: C.purple, x: 11.5 },
];
s.addText('INDIVIDUALIZED HbA1c TARGET RANGE: <6.5% to <8.0% (Rec 2.2.1 – Grade 1C)', {
x: 0.4, y: 1.0, w: 12.5, h: 0.45,
fontSize: 13, bold: true, color: C.navy, align: 'center'
});
barItems.forEach(item => {
s.addShape(pres.ShapeType.roundRect, { x: item.x, y: 1.55, w: 1.9, h: 0.55,
fill: { color: item.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(item.label, { x: item.x, y: 1.55, w: 1.9, h: 0.55,
fontSize: 14, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText(item.sublabel, { x: item.x, y: 2.15, w: 1.9, h: 1.15,
fontSize: 9.5, color: C.dgray, align: 'center', valign: 'top' });
});
// Factors table
box(s, 0.4, 3.45, 5.9, 3.75, 'EBF5FB', C.teal);
s.addText('Factors Favouring LOWER Target (<6.5–7%)', {
x: 0.55, y: 3.5, w: 5.6, h: 0.38,
fontSize: 11.5, bold: true, color: C.teal
});
const lower = [
'Young patient, long life expectancy',
'Low hypoglycemia risk',
'Early DKD (G1–G2)',
'Preserved kidney function',
'No CVD or ASCVD history',
'Motivated with CGM use',
'T1D with well-controlled glucose',
];
lower.forEach((item, i) => {
s.addText(`• ${item}`, { x: 0.55, y: 3.95 + i * 0.45, w: 5.6, h: 0.4, fontSize: 11, color: C.dgray });
});
box(s, 6.7, 3.45, 5.9, 3.75, 'FEF9E7', C.amber);
s.addText('Factors Favouring HIGHER Target (<7.5–8%)', {
x: 6.85, y: 3.5, w: 5.6, h: 0.38,
fontSize: 11.5, bold: true, color: C.orange
});
const higher = [
'Advanced CKD (G3b–G5)',
'High hypoglycemia risk',
'Elderly / frail patient',
'Limited life expectancy',
'Severe comorbidities',
'Insulin treated (SU risk)',
'Dialysis (HbA1c unreliable)',
];
higher.forEach((item, i) => {
s.addText(`• ${item}`, { x: 6.85, y: 3.95 + i * 0.45, w: 5.6, h: 0.4, fontSize: 11, color: C.dgray });
});
// Monitoring note
box(s, 0.4, 7.02, 12.5, 0.38, 'FFF3CD', C.amber);
s.addText('⚠ HbA1c is unreliable in advanced CKD (G4–G5) and dialysis due to altered RBC turnover. Use CGM (TIR, GMI) or fructosamine. CGM preferred per KDIGO 2022.', {
x: 0.55, y: 7.04, w: 12.2, h: 0.34,
fontSize: 10, color: C.dgray, valign: 'middle', italic: true
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 9 – STEP 6: GLUCOSE-LOWERING DRUG ALGORITHM
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 6: Glucose-Lowering Drug Algorithm – T2D + DKD', 'KDIGO 2022 Chapter 4 | Figure 23 | Practice Point 4.1');
addFooter(s, 9, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.teal2 }, line: { width: 0 } });
// Algorithm boxes
// Box A – lifestyle
pill(s, 0.4, 1.05, 12.5, 0.55, C.lime, 'ALL PATIENTS: Lifestyle therapy (foundation) + Regular risk factor reassessment every 3–6 months', C.dgray, 12);
// Box B – Metformin
box(s, 0.4, 1.75, 5.9, 1.45, 'EBF5FB', C.teal);
s.addShape(pres.ShapeType.roundRect, { x: 0.5, y: 1.8, w: 1.5, h: 0.45,
fill: { color: C.teal }, line: { width: 0 }, rectRadius: 0.08 });
s.addText('Rec 4.1.1\n1B', { x: 0.5, y: 1.8, w: 1.5, h: 0.45,
fontSize: 9, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText('METFORMIN – eGFR ≥30', { x: 2.1, y: 1.82, w: 4.0, h: 0.4,
fontSize: 12.5, bold: true, color: C.teal });
s.addText('• Dose reduce at eGFR 30–44 (max 1000 mg/day)\n• STOP if eGFR <30\n• Monitor for B12 deficiency (>4 years use)\n• Transplant recipients: treat per non-DKD recs', {
x: 0.55, y: 2.28, w: 5.6, h: 0.85, fontSize: 10.5, color: C.dgray
});
// Box C – SGLT2i
box(s, 6.8, 1.75, 6.1, 1.45, 'E8F6F3', C.teal2);
s.addShape(pres.ShapeType.roundRect, { x: 6.9, y: 1.8, w: 1.5, h: 0.45,
fill: { color: C.teal2 }, line: { width: 0 }, rectRadius: 0.08 });
s.addText('Rec 3.7.1\n1A', { x: 6.9, y: 1.8, w: 1.5, h: 0.45,
fontSize: 9, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText('SGLT2i – eGFR ≥20', { x: 8.5, y: 1.82, w: 4.2, h: 0.4,
fontSize: 12.5, bold: true, color: C.teal2 });
s.addText('• Start at eGFR ≥20 (for kidney/CV protection)\n• Continue even below eGFR 20 (once started)\n• Independent of HbA1c level\n• Hold 3–4 days pre-major surgery', {
x: 6.95, y: 2.28, w: 5.8, h: 0.85, fontSize: 10.5, color: C.dgray
});
// Arrow down
s.addShape(pres.ShapeType.line, { x: 6.5, y: 3.28, w: 0, h: 0.35,
line: { color: C.mgray, width: 2, endArrowType: 'arrow' } });
s.addText('If target not met / unable to use above', { x: 4.0, y: 3.3, w: 5.0, h: 0.3, fontSize: 9.5, color: C.mgray, align: 'center', italic: true });
// Box D – GLP-1 RA
box(s, 0.4, 3.68, 5.9, 1.7, 'FEF9E7', C.amber);
s.addShape(pres.ShapeType.roundRect, { x: 0.5, y: 3.73, w: 1.5, h: 0.45,
fill: { color: C.amber }, line: { width: 0 }, rectRadius: 0.08 });
s.addText('Rec 4.2.1\n1B', { x: 0.5, y: 3.73, w: 1.5, h: 0.45,
fontSize: 9, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText('GLP-1 RA – Preferred 3rd Agent', { x: 2.1, y: 3.75, w: 4.0, h: 0.4,
fontSize: 12.5, bold: true, color: C.orange });
s.addText('• Long-acting preferred (semaglutide, dulaglutide, liraglutide)\n• Prioritize agents with documented CV benefit\n• FLOW trial: semaglutide 1 mg – 24% ↓ major kidney events\n• Use regardless of eGFR (dose adjust semaglutide at eGFR <15)\n• Weight benefit: particularly obese DKD', {
x: 0.55, y: 4.22, w: 5.65, h: 1.1, fontSize: 10, color: C.dgray
});
// Box E – Other agents
box(s, 6.8, 3.68, 6.1, 1.7, 'F5EEF8', C.purple);
s.addText('Other Glucose-Lowering Agents (select by patient factors)', { x: 6.9, y: 3.73, w: 5.9, h: 0.4,
fontSize: 11, bold: true, color: C.purple });
const others = [
['DPP-4i', 'Low hypoglycemia, no CV benefit, dose adjust eGFR', C.mgray],
['Insulin', 'T1D or advanced T2D; risk of hypoglycemia in CKD', C.mgray],
['TZD', 'Pioglitazone: avoid in HF/edema; fluid retention', C.mgray],
['SU', 'AVOID in advanced CKD (accumulation, hypoglycemia)', C.red],
['Glipizide', 'Shortest-acting SU if needed; lowest CKD risk', C.mgray],
];
others.forEach(([drug, note, col], i) => {
s.addText([
{ text: `${drug}: `, options: { bold: true, color: col } },
{ text: note, options: { color: C.dgray } }
], { x: 6.9, y: 4.22 + i * 0.23, w: 5.8, h: 0.22, fontSize: 9.5 });
});
// Note
box(s, 0.4, 5.5, 12.5, 0.55, 'FFF3CD', C.amber);
s.addText('⚠ AVOID sulfonylureas (other than glipizide) in advanced CKD due to hypoglycemia risk from drug accumulation. Meglitinides: some evidence, short-acting, dose adjust. Insulin: dose reductions needed as eGFR declines (insulin clearance by kidney).', {
x: 0.55, y: 5.53, w: 12.2, h: 0.5, fontSize: 9.5, color: C.dgray, italic: true, valign: 'middle'
});
// T1D note
box(s, 0.4, 6.15, 12.5, 0.55, 'FDFEFE', C.teal);
s.addText('TYPE 1 DIABETES + CKD: Glycemic management with insulin. RASi recommended for albuminuria. SGLT2i – off-label in T1D; DKA risk. CGM strongly recommended. HbA1c target <7% as standard; individualize.', {
x: 0.55, y: 6.18, w: 12.2, h: 0.5, fontSize: 9.5, color: C.dgray, italic: false, valign: 'middle'
});
// eGFR guide bar
s.addShape(pres.ShapeType.rect, { x: 0.4, y: 6.83, w: 12.5, h: 0.28, fill: { color: C.navy }, line: { width: 0 } });
s.addText('eGFR GUIDE: Metformin ≥30 | SGLT2i ≥20 (continue below) | GLP-1 RA: all CKD stages | DPP-4i: dose-adjust | Insulin: dose-reduce as eGFR falls | Dialysis: individualise', {
x: 0.55, y: 6.83, w: 12.2, h: 0.28, fontSize: 9.5, color: C.white, valign: 'middle', margin: 0 });
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 10 – STEP 7: ns-MRA (FINERENONE)
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 7: Non-steroidal MRA – Finerenone', 'KDIGO 2024 Rec 3.8 | FIDELIO-DKD | FIGARO-DKD | FIDELITY');
addFooter(s, 10, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.amber }, line: { width: 0 } });
// Main recommendation
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.0, w: 12.5, h: 0.65,
fill: { color: C.amber }, line: { width: 0 }, rectRadius: 0.1 });
s.addText('Rec 3.8.1 (1B): Use ns-MRA (finerenone) in adults with T2D and an indication for use (persistent albuminuria on RASi ± SGLT2i, normal K⁺)', {
x: 0.55, y: 1.0, w: 12.2, h: 0.65,
fontSize: 13, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
// Three columns
const finCols = [
{
title: 'Indications & Eligibility',
color: C.navy,
x: 0.4, w: 4.0,
items: [
'T2D + CKD + any persistent albuminuria',
'Already on maximally tolerated RASi',
'SGLT2i use does NOT preclude finerenone',
'eGFR ≥25 ml/min/1.73 m² at initiation',
'K⁺ ≤4.8 mmol/L before starting',
'FIDELIO: eGFR 25–75, UACR 30–5000',
'FIGARO: eGFR ≥25, lower albuminuria',
'T1D: no RCT data yet',
]
},
{
title: 'Efficacy – Key Trial Data',
color: C.teal,
x: 4.65, w: 4.3,
items: [
'FIDELIO-DKD: 18% ↓ kidney composite (KF, eGFR≥40% decline, kidney death)',
'FIGARO-DKD: 13% ↓ CV composite (CV death, MI, stroke, HHF)',
'FIDELITY (pooled): 23% ↓ kidney composite; 14% ↓ CV composite',
'Albuminuria reduction: ~31%',
'No significant effect on HbA1c',
'Benefit consistent with/without SGLT2i at baseline',
'Starting dose: 10 mg (eGFR<60) or 20 mg (eGFR≥60)',
'Titrate to 20 mg if K⁺ ≤4.8 at 4 wks',
]
},
{
title: 'Safety & Monitoring',
color: C.red,
x: 9.2, w: 3.75,
items: [
'⚠ Hyperkalemia: main concern',
'14% vs 6.9% in FIDELITY',
'Permanent withdrawal: 1.7% vs 0.6%',
'Serious hyperkalemia: <1% excess',
'No excess AKI risk',
'Check K⁺ at 4 weeks, then 3-monthly',
'Avoid with strong CYP3A4 inhibitors',
'No gynecomastia (vs spironolactone)',
]
},
];
finCols.forEach(col => {
const y = 1.85;
s.addShape(pres.ShapeType.roundRect, { x: col.x, y, w: col.w, h: 0.48,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(col.title, { x: col.x, y, w: col.w, h: 0.48,
fontSize: 12, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
if (!item) return;
s.addText([{ text: '• ', options: { color: col.color, bold: true } }, { text: item, options: {} }],
{ x: col.x + 0.1, y: 2.4 + i * 0.52, w: col.w - 0.15, h: 0.48, fontSize: 10, color: C.dgray });
});
});
// Potassium monitoring algorithm
box(s, 0.4, 6.65, 12.5, 0.65, 'FFF3CD', C.amber);
s.addText('K⁺ MONITORING ALGORITHM (from KDIGO 2022 Figure 26):', {
x: 0.55, y: 6.68, w: 4.0, h: 0.25, fontSize: 10, bold: true, color: C.orange
});
s.addText('K⁺ ≤4.8 → Start 10 or 20 mg | K⁺ ≤4.8 at 4 wks → Uptitrate to 20 mg | K⁺ >4.8 → Hold and recheck | K⁺ >5.5 → Withhold; restart once ≤5.0 | Treat hyperkalemia medically (patiromer / SZC) before discontinuing finerenone', {
x: 4.7, y: 6.68, w: 7.9, h: 0.6, fontSize: 9.5, color: C.dgray, valign: 'middle'
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 11 – STEP 8: GLP-1 RA (DETAILED)
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Step 8: GLP-1 Receptor Agonists in DKD', 'KDIGO 2024 Rec 3.9 (1B) | KDIGO 2022 Rec 4.2.1 | FLOW Trial 2024');
addFooter(s, 11, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.purple }, line: { width: 0 } });
// Main rec
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.0, w: 12.5, h: 0.6,
fill: { color: C.purple }, line: { width: 0 }, rectRadius: 0.1 });
s.addText('Rec 3.9.1 / 4.2.1 (1B): In adults with T2D + CKD who have NOT achieved glycemic targets on metformin + SGLT2i (or cannot use them) → add a long-acting GLP-1 RA', {
x: 0.55, y: 1.0, w: 12.2, h: 0.6,
fontSize: 12.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
// Two big panels
// Left: agents + dosing
box(s, 0.4, 1.75, 6.0, 5.35, 'F5EEF8', C.purple);
s.addText('Preferred Agents with CV/Renal Benefit', {
x: 0.55, y: 1.8, w: 5.7, h: 0.38, fontSize: 13, bold: true, color: C.purple
});
const agents = [
['Semaglutide SC\n(Ozempic)', '0.5 → 1 → 2 mg weekly SC', 'FLOW trial: 24% ↓ major kidney events\nSURTASS/SUSTAIN-6: CV benefit'],
['Semaglutide oral\n(Rybelsus)', '7 → 14 mg daily oral', 'Convenient; less renal data\nGI side effects frequent'],
['Dulaglutide\n(Trulicity)', '0.75 → 1.5 → 3 → 4.5 mg weekly SC', 'AWARD-7: stable eGFR vs insulin\nin DKD; no dose adj in CKD'],
['Liraglutide\n(Victoza)', '0.6 → 1.2 → 1.8 mg daily SC', 'LEADER trial: CV benefit\nApproved CKD all stages'],
['Exenatide weekly', '2 mg weekly SC', 'Avoid if eGFR <30\n(primary renal excretion)'],
];
agents.forEach(([drug, dose, note], i) => {
const y = 2.3 + i * 0.97;
s.addShape(pres.ShapeType.roundRect, { x: 0.55, y, w: 1.9, h: 0.85,
fill: { color: C.purple }, line: { width: 0 }, rectRadius: 0.07 });
s.addText(drug, { x: 0.55, y, w: 1.9, h: 0.85,
fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText(dose, { x: 2.55, y: y + 0.02, w: 3.65, h: 0.38, fontSize: 10, color: C.navy, bold: true });
s.addText(note, { x: 2.55, y: y + 0.42, w: 3.65, h: 0.42, fontSize: 9, color: C.mgray });
});
// Right: FLOW trial + safety
box(s, 6.65, 1.75, 6.25, 2.5, 'F0FFF0', C.green);
s.addText('FLOW Trial (NEJM 2024) – Semaglutide in DKD', {
x: 6.8, y: 1.8, w: 5.95, h: 0.38, fontSize: 12, bold: true, color: C.green
});
const flow = [
'N=3533 | T2D + CKD (eGFR 25–75 + UACR ≥100)',
'Semaglutide 1 mg SC weekly vs placebo',
'24% ↓ major kidney adverse events (HR 0.76)',
'20% ↓ MACE (CV death, MI, stroke)',
'15% slower eGFR decline slope',
'36% ↓ ESKD composite',
'Benefit consistent regardless of SGLT2i use',
'NNT ~20 over 3.5 years',
];
flow.forEach((item, i) => {
s.addText(`• ${item}`, { x: 6.8, y: 2.28 + i * 0.24, w: 5.9, h: 0.22, fontSize: 10, color: C.dgray });
});
box(s, 6.65, 4.4, 6.25, 2.7, 'FFF8E7', C.amber);
s.addText('Safety & Practical Points', {
x: 6.8, y: 4.45, w: 5.95, h: 0.35, fontSize: 12, bold: true, color: C.orange
});
const safety = [
'GI side effects: nausea, vomiting, diarrhea (titrate slowly)',
'Weight loss: 5–10% (beneficial in obese DKD)',
'No hypoglycemia as monotherapy',
'Pancreatitis: rare; monitor',
'Gallbladder disease: increased risk',
'Discontinue pre-surgery (nausea/aspiration risk)',
'Injectable: injection site reactions',
'CONTRAINDICATED: Personal/family Hx MTC or MEN2',
];
safety.forEach((item, i) => {
s.addText(`• ${item}`, { x: 6.8, y: 4.85 + i * 0.28, w: 5.9, h: 0.25, fontSize: 10, color: C.dgray });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 12 – LIPID MANAGEMENT
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Lipid Management in DKD', 'KDIGO 2024 Sec 3.4 | KDIGO 2023 Lipid Guideline');
addFooter(s, 12, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.navy }, line: { width: 0 } });
// Recommendation header
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.0, w: 12.5, h: 0.55,
fill: { color: C.navy }, line: { width: 0 }, rectRadius: 0.1 });
s.addText('KDIGO 2024: Statin or statin+ezetimibe for adults ≥50 yrs with CKD G1–G5 NOT on dialysis (Rec 3.4) | Statin-based therapy for adults 18–49 with CKD + ASCVD risk factors', {
x: 0.55, y: 1.0, w: 12.2, h: 0.55,
fontSize: 11.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
const lipidData = [
{
stage: 'CKD G1–G3\n(eGFR >30)', color: C.green, x: 0.4, w: 2.9,
items: ['Statin or statin + ezetimibe', 'Moderate-to-high intensity statin', 'Target: LDL-C reduction >50%', 'or LDL-C <1.8 mmol/L if ASCVD', 'Initiate if not already on statin', 'Consider risk calculator (CKD-EPI)']
},
{
stage: 'CKD G4–G5\n(eGFR <30)', color: C.teal, x: 3.5, w: 2.9,
items: ['Continue statin if already started', 'Do NOT initiate new statin on', ' dialysis (no benefit shown)', 'If pre-dialysis: continue therapy', 'Ezetimibe can be added', '4D / AURORA trials: no de-novo benefit in dialysis']
},
{
stage: 'Transplant', color: C.amber, x: 6.6, w: 2.9,
items: ['Statin recommended', 'Drug interactions: ciclosporin', ' (raises statin levels)', 'Use low-dose statin + ezetimibe', 'Fluvastatin / pravastatin preferred', 'ALERT trial: less MACE']
},
{
stage: 'ASCVD High Risk\nDKD + ASCVD', color: C.red, x: 9.7, w: 3.2,
items: ['High-intensity statin first', '+ Ezetimibe if LDL not at goal', 'PCSK9 inhibitor if:', ' – LDL still elevated on above', ' – High ASCVD event risk', 'Alirocumab / evolocumab approved', 'Inclisiran: emerging data in CKD']
},
];
lipidData.forEach(col => {
const y = 1.7;
s.addShape(pres.ShapeType.roundRect, { x: col.x, y, w: col.w, h: 0.55,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.08 });
s.addText(col.stage, { x: col.x, y, w: col.w, h: 0.55,
fontSize: 11, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
s.addText(`• ${item}`, { x: col.x + 0.1, y: 2.35 + i * 0.5, w: col.w - 0.15, h: 0.45, fontSize: 10.5, color: C.dgray });
});
});
// Bottom note
box(s, 0.4, 6.1, 12.5, 1.1, 'EBF5FB', C.teal);
s.addText('Key Practice Points', { x: 0.55, y: 6.13, w: 12.2, h: 0.3, fontSize: 11, bold: true, color: C.teal });
s.addText('• LDL-C target in DKD + ASCVD: <1.4 mmol/L (55 mg/dL) per ACC/AHA; KDIGO does not set numeric LDL targets – focuses on % reduction\n• Fibrates: consider for severe hypertriglyceridemia (>5.7 mmol/L); gemfibrozil – avoid with statins (myopathy); fenofibrate requires dose adjustment in CKD\n• Atorvastatin and rosuvastatin are preferred high-intensity statins; rosuvastatin dose-adjust at eGFR <30', {
x: 0.55, y: 6.45, w: 12.2, h: 0.72, fontSize: 10, color: C.dgray
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 13 – HYPERKALEMIA MANAGEMENT
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Hyperkalemia Management in DKD', 'KDIGO 2024 Sec 3.11 | Practical Stepwise Approach (Figure 32)');
addFooter(s, 13, 18);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 0.18, h: 6.4, fill: { color: C.red }, line: { width: 0 } });
// Severity boxes
const sevCols = [
{ level: 'MILD\n5.0–5.4 mmol/L', color: C.amber, x: 0.4, items: ['Low-K⁺ diet advice', 'Review medications', 'Treat acidosis (NaHCO₃)', 'Restrict dietary K⁺', 'Recheck in 1–2 weeks', 'Do NOT stop RASi yet'] },
{ level: 'MODERATE\n5.5–5.9 mmol/L', color: C.orange, x: 4.7, items: ['All mild measures', 'Add potassium binder', ' (patiromer / SZC)', 'Reduce/pause finerenone', 'Consider loop diuretic', 'Recheck in 3–5 days'] },
{ level: 'SEVERE\n≥6.0 mmol/L', color: C.red, x: 9.0, items: ['URGENT assessment', 'ECG immediately', 'IV calcium gluconate', 'Insulin-dextrose protocol', 'Dialysis if refractory', 'Stop RASi temporarily'] },
];
sevCols.forEach(col => {
s.addShape(pres.ShapeType.roundRect, { x: col.x, y: 1.05, w: 4.1, h: 0.6,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(col.level, { x: col.x, y: 1.05, w: 4.1, h: 0.6,
fontSize: 14, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
s.addText(`• ${item}`, { x: col.x + 0.1, y: 1.73 + i * 0.56, w: 3.9, h: 0.52, fontSize: 11.5, color: C.dgray });
});
});
// Potassium binders
box(s, 0.4, 5.25, 12.5, 1.0, 'FEF9E7', C.amber);
s.addText('Potassium Binders – Enabling Continued RASi/ns-MRA Therapy', {
x: 0.55, y: 5.28, w: 12.2, h: 0.38, fontSize: 12.5, bold: true, color: C.orange
});
const binders = [
['Patiromer (Veltassa)', '8.4 g daily, titrate to 25.2 g', 'Not absorbed; binds K in colon', 'Safe with RASi/finerenone'],
['Sodium Zirconium Cyclosilicate (SZC)', '10 g TID x 2 days (acute), then 5-10 g daily', 'Fast-acting (within 1h)', 'FDA/EMA approved; KRT safe'],
['Sodium polystyrene sulfonate (Kayexalate)', 'Varies', 'Older agent; GI side effects; avoid in ileus', 'Less preferred in guidelines'],
];
s.addText(binders.map(b => `• ${b[0]}: ${b[1]} – ${b[2]}`).join(' | '), {
x: 0.55, y: 5.68, w: 12.2, h: 0.55, fontSize: 10, color: C.dgray, valign: 'middle'
});
// Core principle
box(s, 0.4, 6.4, 12.5, 0.85, 'EBF5FB', C.teal);
s.addText('CORE PRINCIPLE (KDIGO 2024 PP 3.6.3): Hyperkalemia from RASi use should be managed by measures to reduce serum potassium (diet, binders, acidosis correction) rather than decreasing or stopping RASi. Restarting RASi at low dose after K⁺ normalises is preferred over permanent discontinuation.', {
x: 0.55, y: 6.43, w: 12.2, h: 0.8, fontSize: 11, color: C.dgray, valign: 'middle'
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 14 – eGFR STRATA: DRUG USE SUMMARY
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Drug Use Across eGFR Strata – Quick Reference', 'Compiled from KDIGO 2024 | KDIGO 2022 | ADA–KDIGO 2022');
addFooter(s, 14, 18);
// Table header
const cols2 = ['Drug Class', 'eGFR ≥60\n(G1–G2)', 'eGFR 30–59\n(G3)', 'eGFR 20–29\n(G4)', 'eGFR 15–19\n(G4–G5)', 'eGFR <15\n(G5/Dialysis)'];
const colW = [2.8, 2.0, 2.0, 2.0, 2.0, 2.1];
const colX = [0.25, 3.05, 5.05, 7.05, 9.05, 11.05];
s.addShape(pres.ShapeType.rect, { x: 0.25, y: 1.0, w: 12.9, h: 0.52, fill: { color: C.navy }, line: { width: 0 } });
cols2.forEach((col, i) => {
s.addText(col, { x: colX[i], y: 1.0, w: colW[i] - 0.05, h: 0.52,
fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
});
const rows2 = [
['RASi (ACEi/ARB)', '✓ Start/continue', '✓ Use at max dose', '✓ Continue', '✓ Continue\n(PP 3.6.7)', '✓ Continue\n(unless KF symptoms)'],
['SGLT2i', '✓ Use', '✓ Use', '✓ Start ≥20\n(1A)', '✓ Continue\n(once started)', 'Discuss benefit\n(dialysis)'],
['Metformin', '✓ Full dose', '✓ Dose-reduce\n<45 → max 1g', '✗ STOP\n<30', '✗', '✗'],
['GLP-1 RA', '✓ All agents', '✓ All agents', '✓ Most agents', '✓ Semaglutide\nDulaglutide', 'Limited data\nIndividualise'],
['ns-MRA (finerenone)', '✓ 20 mg if K⁺≤4.8', '✓ 10-20 mg\nK⁺ monitor', '✓ 10 mg\nclose K⁺ monitoring', 'Caution\nK⁺ risk ↑↑', '✗'],
['Statin', '✓ Start/continue', '✓ Continue', '✓ Continue', '✓ Continue\n(if pre-existing)', 'Continue if started\nNo new initiation'],
['Insulin', '✓ Standard', '↓ Doses\n(accumulation)', '↓↓ Doses', '↓↓↓ Doses\nHypoglycemia risk', '↓↓↓ Doses\nCGM recommended'],
['DPP-4i', '✓ Full dose', '✓ Dose-reduce\n(most agents)', '✓ Dose-reduce', '✓ Dose-reduce', 'Most need dose adj\nor switch'],
];
const rowColors = ['EBF5FB', 'E8F6F3', 'FEF9E7', 'F5EEF8', 'FFF3CD', 'E8F6F3', 'FDFEFE', 'F5F5F5'];
rows2.forEach((row, ri) => {
const y = 1.55 + ri * 0.71;
s.addShape(pres.ShapeType.rect, { x: 0.25, y, w: 12.9, h: 0.69,
fill: { color: ri % 2 === 0 ? 'EEF4FB' : C.white }, line: { color: C.lgray, width: 0.5 } });
row.forEach((cell, ci) => {
const isGreen = cell.includes('✓');
const isRed = cell.includes('✗') || cell.includes('STOP');
const color = isRed ? C.red : (isGreen ? C.green : C.dgray);
s.addText(cell, { x: colX[ci], y, w: colW[ci] - 0.05, h: 0.69,
fontSize: ci === 0 ? 10.5 : 9.5,
bold: ci === 0, color: color,
align: ci === 0 ? 'left' : 'center', valign: 'middle', margin: 0 });
});
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 15 – UACR / ALBUMINURIA MONITORING
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Albuminuria – Screening, Staging & Treatment Triggers', 'KDIGO 2024 | CGA Staging | AER / UACR Classification');
addFooter(s, 15, 18);
// CGA staging diagram – simplified heat map style
s.addText('CGA STAGING – KDIGO Risk Grid (Risk of Adverse Outcomes)', {
x: 0.4, y: 1.0, w: 8.5, h: 0.38, fontSize: 12, bold: true, color: C.navy
});
const uacrLabels = ['A1 (<30 mg/g)', 'A2 (30–300 mg/g)', 'A3 (>300 mg/g)'];
const gLabels = ['G1 (≥90)', 'G2 (60–89)', 'G3a (45–59)', 'G3b (30–44)', 'G4 (15–29)', 'G5 (<15)'];
const riskColors = [
[C.green, C.amber, C.orange],
[C.green, C.amber, C.orange],
[C.amber, C.orange, C.red],
[C.orange, C.red, C.red],
[C.red, C.red, '8B0000'],
[C.red, '8B0000', '8B0000'],
];
const riskText = [
['Low', 'Moderate', 'High'],
['Low', 'Moderate', 'High'],
['Moderate', 'High', 'Very high'],
['High', 'Very high', 'Very high'],
['Very high', 'Very high', 'Very high'],
['Very high', 'Very high', 'Very high'],
];
// Column headers
uacrLabels.forEach((label, ci) => {
s.addShape(pres.ShapeType.rect, { x: 2.5 + ci * 2.0, y: 1.45, w: 1.85, h: 0.42, fill: { color: C.navy }, line: { width: 0 } });
s.addText(label, { x: 2.5 + ci * 2.0, y: 1.45, w: 1.85, h: 0.42, fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
});
gLabels.forEach((label, ri) => {
const y = 1.93 + ri * 0.55;
s.addShape(pres.ShapeType.rect, { x: 0.4, y, w: 2.0, h: 0.5, fill: { color: C.dgray }, line: { width: 0 } });
s.addText(label, { x: 0.4, y, w: 2.0, h: 0.5, fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
uacrLabels.forEach((_, ci) => {
s.addShape(pres.ShapeType.rect, { x: 2.5 + ci * 2.0, y, w: 1.85, h: 0.5,
fill: { color: riskColors[ri][ci] }, line: { color: C.white, width: 1 } });
s.addText(riskText[ri][ci], { x: 2.5 + ci * 2.0, y, w: 1.85, h: 0.5,
fontSize: 9, color: C.white, bold: true, align: 'center', valign: 'middle', margin: 0 });
});
});
// Treatment triggers
box(s, 9.0, 1.0, 4.05, 5.25, 'EBF5FB', C.teal);
s.addText('Treatment Triggers by UACR', {
x: 9.15, y: 1.05, w: 3.75, h: 0.38, fontSize: 12, bold: true, color: C.teal
});
const triggers = [
{ uacr: 'Any DM + CKD', treatment: 'Lifestyle, glycemic control, BP management' },
{ uacr: 'UACR ≥30 (A2+)\n+ HTN + DM', treatment: 'RASi (Rec 3.6.3, 1B)' },
{ uacr: 'UACR ≥30 (A2+)\n+ T2D + RASi', treatment: 'SGLT2i (eGFR ≥20)' },
{ uacr: 'UACR >30 on\nRASi ± SGLT2i', treatment: 'Add finerenone (if K⁺ ≤4.8)' },
{ uacr: 'Target not met on\nmetformin + SGLT2i', treatment: 'GLP-1 RA (Rec 4.2.1)' },
{ uacr: 'UACR >300 (A3)', treatment: 'Maximum RASi + SGLT2i + finerenone' },
{ uacr: 'UACR >3000\n(nephrotic range)', treatment: 'Consider kidney biopsy to exclude\nnon-DM glomerular disease' },
];
triggers.forEach((t, i) => {
const y = 1.5 + i * 0.68;
s.addShape(pres.ShapeType.roundRect, { x: 9.1, y, w: 1.75, h: 0.55,
fill: { color: C.teal }, line: { width: 0 }, rectRadius: 0.07 });
s.addText(t.uacr, { x: 9.1, y, w: 1.75, h: 0.55, fontSize: 8, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addText(`→ ${t.treatment}`, { x: 10.95, y, w: 2.0, h: 0.55, fontSize: 9, color: C.dgray, valign: 'middle' });
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 16 – ANEMIA, ACIDOSIS, CKD-MBD in DKD
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Complication Management in DKD: Anemia, Acidosis & CKD-MBD', 'KDIGO 2024 Chapter 3 | KDIGO 2012 CKD-MBD | KDIGO 2012 Anemia');
addFooter(s, 16, 18);
const compCols = [
{
title: 'Anemia of CKD',
icon: '🩸',
color: C.red,
x: 0.4, w: 4.0,
items: [
'Hb target: 10–11.5 g/dL (dialysis)',
'Hb target: 10–12 g/dL (non-dialysis)',
'ESA: if Hb <10 AND iron replete',
'AVOID Hb >13 g/dL (thromboembolic risk)',
'Iron: IV preferred in HD; oral in CKD G3–5',
'HIF-PHI (daprodustat, roxadustat): approved',
'Exclude other causes before ESA',
'Evaluate every 1–3 months',
]
},
{
title: 'Metabolic Acidosis',
icon: '⚗',
color: C.purple,
x: 4.65, w: 4.0,
items: [
'Target serum bicarbonate: ≥22 mmol/L',
'Sodium bicarbonate supplementation if HCO₃ <22',
'Dose: 1–3 mEq/kg/day titrate to target',
'BICARB-CKD / other trials: may slow CKD progression',
'Caution: sodium load in HTN/edema',
'Citrate can be used as alternative',
'Plant-based diet reduces acid load',
'Check ABG/VBG in symptomatic patients',
]
},
{
title: 'CKD-MBD',
icon: '🦴',
color: C.amber,
x: 8.9, w: 4.05,
items: [
'Monitor: Ca, PO₄, PTH, Vit D, ALP',
'Correct Vit D deficiency (nutritional)',
'Phosphate binders: if PO₄ elevated',
' – Calcium carbonate, sevelamer, lanthanum',
'Cinacalcet: for secondary hyperPTH (HD)',
'SHPT in G3b–G5: active Vit D (calcitriol)',
'Surgical parathyroidectomy: if refractory SHPT',
'Avoid Ca-based binders if Ca >2.5 or calcification',
]
},
];
compCols.forEach(col => {
const y = 1.0;
s.addShape(pres.ShapeType.roundRect, { x: col.x, y, w: col.w, h: 0.55,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(`${col.title}`, { x: col.x, y, w: col.w, h: 0.55,
fontSize: 13, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
s.addText([{ text: '• ', options: { color: col.color, bold: true } }, { text: item, options: { color: C.dgray } }],
{ x: col.x + 0.1, y: 1.65 + i * 0.59, w: col.w - 0.15, h: 0.55, fontSize: 11 });
});
});
// Monitoring schedule
box(s, 0.4, 6.38, 12.5, 0.88, 'EBF5FB', C.teal);
s.addText('Monitoring Schedule by eGFR (KDIGO 2024)', {
x: 0.55, y: 6.42, w: 12.2, h: 0.32, fontSize: 12, bold: true, color: C.teal
});
s.addText('G1–G2: Annual CBC, CMP, UACR, lipids | G3: 6-monthly CMP; 12-monthly CBC, lipids | G3b–G4: 3–6 monthly CMP, K⁺, bicarb, Hb; PTH annually | G4–G5: 3-monthly CMP, K⁺, bicarb, Hb, PTH; monthly if on dialysis', {
x: 0.55, y: 6.75, w: 12.2, h: 0.48, fontSize: 10, color: C.dgray, valign: 'middle'
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 17 – SPECIAL SITUATIONS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offwht }, line: { width: 0 } });
addHeader(s, 'Special Situations in DKD Management', 'Perioperative | AKI | Contrast | Pregnancy | Dialysis | Transplant');
addFooter(s, 17, 18);
const specials = [
{
title: 'Perioperative / Sick Day',
color: C.orange,
x: 0.4, y: 1.05, w: 3.9,
items: [
'SGLT2i: HOLD ≥3–4 days pre-surgery',
'Metformin: HOLD day of surgery',
'GLP-1 RA: HOLD pre-surgery (aspiration)',
'RASi: individualise (haemodynamics)',
'Restart when haemodynamically stable',
'Monitor glucose peri-op (insulin sliding scale)',
]
},
{
title: 'AKI Intercurrent',
color: C.red,
x: 4.55, y: 1.05, w: 3.85,
items: [
'HOLD: SGLT2i, metformin, RASi during AKI',
'eGFR recovery: restart at low dose',
'If SCr rises >30% in 4 wks → stop RASi',
'Restart RASi when K⁺ and SCr stabilised',
'AKI risk: NSAIDs, aminoglycosides',
'Hydration: avoid contrast with dehydration',
]
},
{
title: 'Contrast Nephropathy',
color: C.purple,
x: 0.4, y: 4.55, w: 3.9,
items: [
'Hold metformin for 48 h post-contrast',
' if eGFR <60 (or check labs first)',
'IV hydration before/after contrast',
'Use low-osmolar/iso-osmolar agents',
'SGLT2i: some guidelines say hold',
' (osmotic diuresis risk)',
]
},
{
title: 'Pregnancy & DKD',
color: C.teal,
x: 4.55, y: 4.55, w: 3.85,
items: [
'STOP: ACEi, ARB, DRI (teratogenic)',
' Switch to methyldopa/labetalol/nifedipine',
'STOP: SGLT2i, finerenone (no safety data)',
'Insulin: preferred for glycemic control',
'Metformin: used in some guidelines',
'Close fetal surveillance; preterm planning',
]
},
{
title: 'Dialysis (HD/PD)',
color: C.navy,
x: 8.65, y: 1.05, w: 4.3,
items: [
'Glycemic goals: GMI/CGM preferred (HbA1c unreliable)',
'Target GMI ~7–8%; avoid hypoglycemia',
'SGLT2i: limited data; may continue for CV',
'GLP-1 RA: limited renal clearance; use cautiously',
'Insulin: major glucose-lowering agent; dose reduce',
'Metformin: CONTRAINDICATED',
'Finerenone: NOT recommended (no residual urine K⁺ clearance)',
'ASCVD: same principles as CKD; statin continue if started',
]
},
{
title: 'Kidney Transplant',
color: C.teal2,
x: 8.65, y: 4.55, w: 4.3,
items: [
'NODAT (New-onset DM after transplant): frequent',
'Immunosuppressants: tacrolimus > cyclosporin for DM risk',
'Metformin: safe if eGFR ≥30; start after stabilization',
'SGLT2i: evidence growing (TRANSPLANT studies)',
'GLP-1 RA: weight/glycemic benefit; drug interactions low',
'BP: target <130/80 in transplant DM+CKD',
]
},
];
specials.forEach(col => {
s.addShape(pres.ShapeType.roundRect, { x: col.x, y: col.y, w: col.w, h: 0.48,
fill: { color: col.color }, line: { width: 0 }, rectRadius: 0.1 });
s.addText(col.title, { x: col.x, y: col.y, w: col.w, h: 0.48,
fontSize: 12, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
col.items.forEach((item, i) => {
s.addText(`• ${item}`, { x: col.x + 0.1, y: col.y + 0.55 + i * 0.53, w: col.w - 0.15, h: 0.5, fontSize: 9.5, color: C.dgray });
});
});
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 18 – SUMMARY ALGORITHM & KEY MESSAGES
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navy }, line: { width: 0 } });
addFooter(s, 18, 18);
s.addText('Summary: Stepwise DKD Management – KDIGO 2024', {
x: 0.5, y: 0.2, w: 12.3, h: 0.6,
fontSize: 22, bold: true, color: C.white, align: 'center'
});
const steps = [
{ n: '1', label: 'LIFESTYLE', detail: 'Diet (Na <2g, protein 0.8g/kg), exercise ≥150min/wk, weight loss, smoking cessation', color: C.lime },
{ n: '2', label: 'BP CONTROL', detail: 'Target SBP <120 mmHg | RASi first-line (A2/A3 + DM) | Add DHP-CCB / diuretic', color: C.teal },
{ n: '3', label: 'RASi', detail: 'ACEi or ARB at max tolerated dose | Check K⁺, SCr in 2–4 wks | Continue even if eGFR <30', color: C.teal2 },
{ n: '4', label: 'SGLT2i', detail: 'eGFR ≥20 (1A) | Continue even below 20 | Independent of HbA1c | Hold 3–4 days pre-surgery', color: C.teal2 },
{ n: '5', label: 'GLYCEMIA', detail: 'HbA1c target <6.5–8.0% (individualize) | Metformin eGFR ≥30 | CGM preferred in advanced CKD', color: C.orange },
{ n: '6', label: 'ns-MRA', detail: 'Finerenone (1B) if T2D + residual albuminuria on RASi±SGLT2i | K⁺ ≤4.8 | Start 10–20 mg', color: C.amber },
{ n: '7', label: 'GLP-1 RA', detail: 'Long-acting preferred | FLOW trial: semaglutide 24% ↓ renal events | All CKD stages', color: C.purple },
{ n: '8', label: 'LIPIDS', detail: 'Moderate-high intensity statin ± ezetimibe | Do NOT initiate new statin on dialysis | PCSK9i for ASCVD', color: C.mgray },
];
steps.forEach((step, i) => {
const col = i < 4 ? 0 : 1;
const row = i % 4;
const x = col === 0 ? 0.35 : 6.95;
const y = 0.93 + row * 1.5;
s.addShape(pres.ShapeType.ellipse, { x, y: y + 0.15, w: 0.7, h: 0.7,
fill: { color: step.color }, line: { width: 0 } });
s.addText(step.n, { x, y: y + 0.15, w: 0.7, h: 0.7,
fontSize: 16, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0 });
s.addShape(pres.ShapeType.roundRect, { x: x + 0.85, y, w: 5.55, h: 1.35,
fill: { color: '13304D' }, line: { color: step.color, width: 1.5 }, rectRadius: 0.1 });
s.addText(step.label, { x: x + 0.9, y: y + 0.08, w: 5.45, h: 0.42,
fontSize: 13, bold: true, color: step.color });
s.addText(step.detail, { x: x + 0.9, y: y + 0.52, w: 5.45, h: 0.75,
fontSize: 10.5, color: C.offwht });
});
// Divider line
s.addShape(pres.ShapeType.line, { x: 6.7, y: 0.9, w: 0, h: 6.2,
line: { color: C.teal, width: 1 } });
// Bottom key message
s.addShape(pres.ShapeType.rect, { x: 0, y: 7.0, w: 13.3, h: 0.28, fill: { color: C.teal }, line: { width: 0 } });
s.addText('KEY MESSAGE: Combination therapy (RASi + SGLT2i + ns-MRA + GLP-1 RA) on top of lifestyle is the modern standard of care for DKD – individualize by eGFR, K⁺, comorbidities, and patient preference', {
x: 0.3, y: 7.0, w: 12.8, h: 0.28,
fontSize: 9.5, bold: true, color: C.white, align: 'center', valign: 'middle', margin: 0
});
}
// ─────────────────────────────────────────────────────────────────────────────
// WRITE FILE
// ─────────────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: '/home/daytona/workspace/kdigo-diabetic-ckd/KDIGO_DKD_Stepwise_Management.pptx' })
.then(() => { console.log('PPTX written successfully'); })
.catch(err => { console.error('Error:', err); process.exit(1); });
cd /home/daytona/workspace/kdigo-diabetic-ckd && node build_slides.js 2>&1
cd /home/daytona/workspace/kdigo-diabetic-ckd && libreoffice --headless --conver…
mkdir -p /home/daytona/workspace/kdigo-diabetic-ckd/output && libreoffice --head…
chmod 777 /home/daytona/workspace/kdigo-diabetic-ckd/output && libreoffice --hea…
ls /home/daytona/workspace/kdigo-diabetic-ckd/ && cp /home/daytona/workspace/kdi…
ls -lh /home/daytona/workspace/kdigo-diabetic-ckd/ && python3 -c " import subpro…
KDIGO DKD Stepwise Management
PDF Document · PDF
KDIGO DKD Stepwise Management
Presentation · PPTX
| Slide | Title | Content |
|---|---|---|
| 1 | Title | KDIGO 2024 / 2022 branding, dark navy theme |
| 2 | Learning Objectives | 7 consultant-level objectives |
| 3 | Holistic Framework | Visual recreation of KDIGO Figure 1/2 – 4-layer pillars (Lifestyle → First-line → Additional protection → Complications) |
| 4 | Step 1: Lifestyle | Diet (Na <2 g, protein 0.8 g/kg), exercise ≥150 min/wk, CGM, smoking, weight |
| 5 | Step 2: BP Management | Target SBP <120 mmHg |
| 6 | Step 3: RASi in Detail | Rec 3.6.1–3.6.4 with grades |
| 7 | Step 4: SGLT2i | Rec 3.7.1 (1A) |
| 8 | Step 5: Glycemic Targets | HbA1c <6.5–8.0% (individualized) |
| 9 | Step 6: Glucose-Lowering Algorithm | Metformin + SGLT2i → GLP-1 RA → other agents |
| 10 | Step 7: Finerenone (ns-MRA) | Rec 3.8.1 (1B) |
| 11 | Step 8: GLP-1 RA | Rec 3.9.1 / 4.2.1 (1B) |
| 12 | Lipid Management | Statin across CKD stages |
| 13 | Hyperkalemia | Mild/Moderate/Severe management |
| 14 | eGFR Strata Table | Quick reference: all 7 drug classes across G1–G5 + dialysis |
| 15 | Albuminuria & UACR | CGA heat-map risk grid |
| 16 | Complications | Anemia (ESA, HIF-PHI) |
| 17 | Special Situations | Perioperative / AKI / Contrast / Pregnancy / Dialysis / Transplant |
| 18 | Summary Algorithm | 8-step visual summary with key message banner |