What u can and cannot do

Here's a rundown of what I can and cannot do:

What I Can Do

Research & Knowledge

  • Answer questions across virtually all domains: science, history, math, law, philosophy, literature, technology, and more
  • Search the web for current, real-time information
  • Search PubMed for peer-reviewed medical literature
  • Access a library of medical textbooks for clinical and biomedical questions

Document & File Work

  • Word (.docx) - create, read, edit, format professional documents
  • PowerPoint (.pptx) - create, read, edit, or extract content from slide decks
  • Excel/Spreadsheets (.xlsx, .csv) - create, read, clean, and manipulate tabular data
  • PDF - read, extract text, merge, split, rotate, watermark, OCR scanned PDFs

Code & Computation

  • Write and execute code (Python, shell scripts, and more) in a sandboxed Linux environment
  • Run calculations, data analysis, and file processing tasks
  • Install packages locally when needed

Visual & Media

  • Generate original images, diagrams, posters, flashcards, and visual content
  • Analyze and describe images or videos you upload (OCR, visual Q&A, etc.)
  • Fetch and display images from URLs

Medical

  • Search authoritative medical textbooks and PubMed literature
  • Answer clinical, pharmacology, anatomy, pathology, and nursing questions with citations

What I Cannot Do

  • Browse the internet freely - I can search and extract from specific URLs, but I cannot log into websites, fill out forms, or browse interactively
  • Send emails, messages, or notifications on your behalf
  • Access your local files unless you upload them directly in our conversation
  • Remember past conversations - each session starts fresh with no memory of previous chats
  • Make phone calls or interact with external services like calendars, apps, or APIs outside this environment
  • Access real-time data by default (stock prices, live scores, breaking news) without a web search
  • Download or stream audio/video content
  • Execute code that requires a display/GUI - the sandbox is headless
  • Guarantee 100% accuracy - I can be wrong, especially on rapidly changing topics or niche areas. I flag uncertainty when I'm unsure

If there's a specific task you have in mind, just ask and I'll tell you whether I can handle it and how.

Create a ppt on gfr

Asking for Preferences
Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/gfr-ppt && ls /home/daytona/workspace/gfr-ppt

Writing File

~/gfr-ppt/gfr.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Glomerular Filtration Rate (GFR)";
pres.author = "Orris Medical Education";

// ── COLOR PALETTE ──────────────────────────────────────────────────────────
const C = {
  navy:    "0A1628",   // dominant dark bg
  teal:    "0D7A8A",   // accent / header bar
  tealLt:  "12A0B4",   // lighter teal
  gold:    "E8B84B",   // highlight accent
  white:   "FFFFFF",
  offWhite:"F0F4F8",
  gray:    "A8B8C8",
  darkCard:"112240",   // card background
  red:     "E05252",
  green:   "3DAA6B",
};

// ── HELPERS ────────────────────────────────────────────────────────────────
function addHeader(slide, title, sub) {
  // top navy bar
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.72, fill: { color: C.navy } });
  // teal left accent strip
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.08, h: 5.625, fill: { color: C.teal } });
  // title
  slide.addText(title, {
    x: 0.22, y: 0.08, w: 9.6, h: 0.56,
    fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", margin: 0,
  });
  if (sub) {
    slide.addText(sub, {
      x: 0.22, y: 0.62, w: 9.5, h: 0.32,
      fontSize: 11, color: C.tealLt, fontFace: "Calibri", italic: true, margin: 0,
    });
  }
}

function addFooter(slide, num, total) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 5.4, w: 10, h: 0.225, fill: { color: C.navy } });
  slide.addText(`Brenner & Rector's The Kidney | Comprehensive Clinical Nephrology 7e | NKF Primer on Kidney Diseases 8e`, {
    x: 0.2, y: 5.41, w: 8.5, h: 0.18, fontSize: 6.5, color: C.gray, fontFace: "Calibri", margin: 0,
  });
  slide.addText(`${num} / ${total}`, {
    x: 8.8, y: 5.41, w: 1.0, h: 0.18, fontSize: 7, color: C.gray, align: "right", fontFace: "Calibri", margin: 0,
  });
}

function card(slide, x, y, w, h, color) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: color || C.darkCard },
    line: { color: C.teal, width: 0.8 },
    rectRadius: 0.08,
  });
}

const TOTAL = 13;

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  // full dark bg
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy } });
  // decorative teal diagonal band
  s.addShape(pres.ShapeType.rect, { x: 0, y: 3.9, w: 10, h: 0.08, fill: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 3.98, w: 10, h: 1.645, fill: { color: C.darkCard } });
  // left accent bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.teal } });
  // gold accent line
  s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.06, h: 5.625, fill: { color: C.gold } });

  s.addText("GLOMERULAR FILTRATION RATE", {
    x: 0.5, y: 0.9, w: 9.2, h: 1.1,
    fontSize: 38, bold: true, color: C.white, fontFace: "Calibri",
    charSpacing: 2, align: "left",
  });
  s.addText("GFR", {
    x: 0.5, y: 1.95, w: 9.2, h: 0.65,
    fontSize: 52, bold: true, color: C.gold, fontFace: "Calibri", align: "left",
  });
  s.addText("Physiology  |  Measurement  |  Estimation  |  Clinical Staging  |  Regulation", {
    x: 0.5, y: 2.8, w: 9.2, h: 0.45,
    fontSize: 14, color: C.tealLt, fontFace: "Calibri", italic: true, align: "left",
  });
  s.addText("Advanced Clinical Review  ·  Medical Students", {
    x: 0.5, y: 4.05, w: 6, h: 0.32,
    fontSize: 11, color: C.gray, fontFace: "Calibri", align: "left",
  });
  s.addText("Sources: Comprehensive Clinical Nephrology 7e | Brenner & Rector's The Kidney | NKF Primer 8e | Tietz Lab Medicine 7e", {
    x: 0.5, y: 4.45, w: 9.2, h: 0.32,
    fontSize: 8.5, color: C.gray, fontFace: "Calibri", italic: true, align: "left",
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT IS GFR?
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "What is GFR?", "The gold-standard index of kidney function");
  addFooter(s, 2, TOTAL);

  // Definition card
  card(s, 0.22, 0.88, 9.56, 1.0, C.darkCard);
  s.addText("Definition", {
    x: 0.38, y: 0.9, w: 3, h: 0.28, fontSize: 10, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  s.addText(
    "GFR is the product of the average filtration rate of each single nephron multiplied by the total number of nephrons in both kidneys. " +
    "It is the most reliable measure of overall renal functional capacity and is considered the best index of the number of functioning nephrons.",
    { x: 0.38, y: 1.18, w: 9.2, h: 0.6, fontSize: 11, color: C.white, fontFace: "Calibri", margin: 0 }
  );

  // Key stats row
  const stats = [
    { label: "Normal (Male)", val: "~130 mL/min/1.73m²" },
    { label: "Normal (Female)", val: "~120 mL/min/1.73m²" },
    { label: "Daily filtrate", val: "~180 L/day" },
    { label: "Indexed to BSA", val: "1.73 m²" },
  ];
  stats.forEach((st, i) => {
    const x = 0.22 + i * 2.39;
    card(s, x, 2.02, 2.28, 1.05, C.teal);
    s.addText(st.val, {
      x: x + 0.08, y: 2.08, w: 2.12, h: 0.55,
      fontSize: 15, bold: true, color: C.white, fontFace: "Calibri", align: "center", margin: 0,
    });
    s.addText(st.label, {
      x: x + 0.08, y: 2.63, w: 2.12, h: 0.3,
      fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", align: "center", margin: 0,
    });
  });

  // Bottom bullets
  s.addText([
    { text: "GFR cannot be measured directly in humans — it is assessed via clearance techniques (mGFR) or estimating equations (eGFR).", options: { bullet: { type: "bullet" }, breakLine: true, color: C.navy } },
    { text: "Normal GFR varies significantly with age, sex, body size, diet, physical activity, and physiological states such as pregnancy.", options: { bullet: { type: "bullet" }, breakLine: true, color: C.navy } },
    { text: "GFR is indexed for body surface area to correct for differences in kidney size (kidney size is proportional to body size).", options: { bullet: { type: "bullet" }, color: C.navy } },
  ], { x: 0.28, y: 3.22, w: 9.4, h: 1.1, fontSize: 11, fontFace: "Calibri", lineSpacingMultiple: 1.25 });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – STARLING FORCES & SNGFR
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "Determinants of Glomerular Filtration", "Starling forces driving ultrafiltration");
  addFooter(s, 3, TOTAL);

  // Formula card
  card(s, 0.22, 0.88, 9.56, 1.25, C.darkCard);
  s.addText("SNGFR  =  Kf  ×  [(Pgc − Pbs) − (πgc − πbs)]", {
    x: 0.5, y: 0.96, w: 9.0, h: 0.5,
    fontSize: 17, bold: true, color: C.gold, fontFace: "Calibri", align: "center",
  });
  s.addText("Single-Nephron GFR = Ultrafiltration Coefficient × Net Ultrafiltration Pressure", {
    x: 0.5, y: 1.46, w: 9.0, h: 0.28,
    fontSize: 10, color: C.gray, fontFace: "Calibri", align: "center", italic: true,
  });

  // Variables table
  const vars = [
    { sym: "Kf", desc: "Ultrafiltration coefficient (hydraulic conductivity × filtration surface area)", val: "High — orders of magnitude above systemic capillaries" },
    { sym: "Pgc", desc: "Glomerular capillary hydrostatic pressure", val: "~45 mm Hg" },
    { sym: "Pbs", desc: "Bowman space hydrostatic pressure", val: "~10 mm Hg" },
    { sym: "πgc", desc: "Glomerular capillary oncotic pressure", val: "~25 mm Hg (rises along capillary)" },
    { sym: "πbs", desc: "Bowman space oncotic pressure", val: "≈ 0 mm Hg (protein-free filtrate)" },
  ];

  const ry = 2.26;
  s.addShape(pres.ShapeType.rect, { x: 0.22, y: ry, w: 9.56, h: 0.3, fill: { color: C.teal } });
  ["Symbol", "Description", "Normal Value"].forEach((h, i) => {
    s.addText(h, {
      x: 0.22 + [0, 1.1, 6.6][i], y: ry + 0.02, w: [1.05, 5.45, 2.9][i], h: 0.26,
      fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri", margin: 2,
    });
  });
  vars.forEach((v, i) => {
    const by = ry + 0.3 + i * 0.42;
    const bg = i % 2 === 0 ? "E4ECF4" : C.white;
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: by, w: 9.56, h: 0.41, fill: { color: bg } });
    s.addText(v.sym, { x: 0.26, y: by + 0.04, w: 1.0, h: 0.33, fontSize: 11, bold: true, color: C.teal, fontFace: "Calibri", margin: 1 });
    s.addText(v.desc, { x: 1.32, y: by + 0.04, w: 5.22, h: 0.33, fontSize: 9.5, color: C.navy, fontFace: "Calibri", margin: 1 });
    s.addText(v.val, { x: 6.6, y: by + 0.04, w: 3.1, h: 0.33, fontSize: 9.5, color: C.navy, fontFace: "Calibri", margin: 1 });
  });

  s.addText("Net ultrafiltration pressure ≈ 10 mm Hg at afferent end. Filtration equilibrium is NOT achieved in healthy glomeruli due to efferent arteriole resistance and progressive reduction in capillary endothelium permeability.", {
    x: 0.28, y: 5.18, w: 9.4, h: 0.28, fontSize: 9, color: C.navy, italic: true, fontFace: "Calibri",
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – SIZE & CHARGE BARRIER
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "Glomerular Filtration Barrier", "Size and charge selectivity");
  addFooter(s, 4, TOTAL);

  // Left: layers
  card(s, 0.22, 0.88, 4.6, 4.28, C.darkCard);
  s.addText("Three-Layer Barrier", {
    x: 0.38, y: 0.95, w: 4.2, h: 0.32, fontSize: 12, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  const layers = [
    { name: "1. Fenestrated Endothelium", detail: "Pores 70–100 nm. Prevents passage of blood cells. Negatively charged glycocalyx." },
    { name: "2. Glomerular Basement Membrane (GBM)", detail: "Type IV collagen + laminin + heparan sulfate. Main structural and charge barrier. Thickness: 320–340 nm." },
    { name: "3. Podocytes (Visceral Epithelial Cells)", detail: "Foot processes with filtration slits (25–65 nm). Nephrin forms slit diaphragm. Critical size and charge selectivity." },
  ];
  layers.forEach((l, i) => {
    const ly = 1.36 + i * 1.18;
    s.addShape(pres.ShapeType.rect, { x: 0.3, y: ly, w: 0.06, h: 0.9, fill: { color: C.teal } });
    s.addText(l.name, {
      x: 0.48, y: ly, w: 4.2, h: 0.32, fontSize: 10, bold: true, color: C.tealLt, fontFace: "Calibri", margin: 0,
    });
    s.addText(l.detail, {
      x: 0.48, y: ly + 0.3, w: 4.2, h: 0.6, fontSize: 9.5, color: C.white, fontFace: "Calibri", margin: 0,
    });
  });

  // Right: selectivity table
  card(s, 5.1, 0.88, 4.68, 2.4, "FFFFFF");
  s.addText("Filtration Selectivity by Molecular Size", {
    x: 5.2, y: 0.95, w: 4.4, h: 0.28, fontSize: 10.5, bold: true, color: C.navy, fontFace: "Calibri", margin: 0,
  });
  const selData = [
    ["Substance", "Mol. Radius", "Filterability"],
    ["Water / Ions", "< 1 nm", "Freely filtered"],
    ["Inulin", "1.5 nm", "Freely filtered"],
    ["Myoglobin", "1.9 nm", "Partially filtered"],
    ["Albumin", "3.6 nm", "< 1% (charge repelled)"],
    ["IgG", "5.5 nm", "Essentially none"],
  ];
  selData.forEach((row, ri) => {
    const ry2 = 1.26 + ri * 0.32;
    const bg = ri === 0 ? C.teal : ri % 2 === 0 ? "E4ECF4" : C.white;
    s.addShape(pres.ShapeType.rect, { x: 5.1, y: ry2, w: 4.68, h: 0.31, fill: { color: bg } });
    row.forEach((cell, ci) => {
      s.addText(cell, {
        x: 5.1 + [0, 1.6, 3.1][ci], y: ry2 + 0.02, w: [1.55, 1.45, 1.55][ci], h: 0.27,
        fontSize: ri === 0 ? 9 : 9.5, bold: ri === 0, color: ri === 0 ? C.white : C.navy,
        fontFace: "Calibri", margin: 2,
      });
    });
  });

  // Bottom note
  card(s, 5.1, 3.45, 4.68, 1.26, C.darkCard);
  s.addText("Charge Barrier", {
    x: 5.2, y: 3.5, w: 4.4, h: 0.28, fontSize: 10, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  s.addText(
    "The GBM and podocyte surface carry a strong negative charge (heparan sulfate proteoglycans). " +
    "This electrostatically repels albumin (also negatively charged), dramatically reducing its filtration even at its molecular size.",
    { x: 5.2, y: 3.82, w: 4.4, h: 0.8, fontSize: 9.5, color: C.white, fontFace: "Calibri", margin: 0 }
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – MEASUREMENT OF GFR (mGFR)
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "Measured GFR (mGFR)", "Clearance-based methods");
  addFooter(s, 5, TOTAL);

  s.addText("GFR = (Uy × V) / Py", {
    x: 2.5, y: 0.88, w: 5, h: 0.46,
    fontSize: 16, bold: true, color: C.teal, fontFace: "Calibri", align: "center",
  });
  s.addText("Uy = urine concentration | V = urine flow rate | Py = plasma concentration", {
    x: 1, y: 1.32, w: 8, h: 0.25, fontSize: 9.5, italic: true, color: C.navy, fontFace: "Calibri", align: "center",
  });

  // Ideal marker criteria
  card(s, 0.22, 1.68, 3.1, 3.0, C.darkCard);
  s.addText("Ideal Filtration Marker", {
    x: 0.35, y: 1.76, w: 2.8, h: 0.28, fontSize: 10, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  const criteria = [
    "Freely filtered at glomerulus",
    "Not secreted by tubules",
    "Not reabsorbed by tubules",
    "Not metabolized by kidney",
    "Not protein-bound",
    "Constant plasma level",
  ];
  s.addText(criteria.map(c => ({ text: c, options: { bullet: true, breakLine: true, color: C.white } })), {
    x: 0.35, y: 2.08, w: 2.8, h: 2.45, fontSize: 10, fontFace: "Calibri", lineSpacingMultiple: 1.3,
  });

  // Marker table
  card(s, 3.5, 1.68, 6.28, 3.0, "FFFFFF");
  s.addText("Exogenous & Endogenous Filtration Markers", {
    x: 3.62, y: 1.74, w: 6.0, h: 0.28, fontSize: 10, bold: true, color: C.navy, fontFace: "Calibri", margin: 0,
  });
  const markers = [
    ["Marker", "Type", "Gold Standard?", "Limitation"],
    ["Inulin", "Exogenous", "YES", "IV infusion required; cumbersome"],
    ["Iothalamate", "Exogenous", "Accepted", "Requires radiolabeling"],
    ["Iohexol", "Exogenous", "Accepted", "Plasma clearance used"],
    ["51Cr-EDTA / 99mTc-DTPA", "Exogenous", "Accepted", "Radioactive; specialist only"],
    ["Creatinine (24h Cl)", "Endogenous", "No", "Tubular secretion → overestimates GFR"],
    ["Cystatin C", "Endogenous", "Better than Cr", "Non-GFR determinants exist"],
  ];
  markers.forEach((row, ri) => {
    const ry2 = 2.06 + ri * 0.36;
    const bg = ri === 0 ? C.teal : ri % 2 === 0 ? "E4ECF4" : C.white;
    s.addShape(pres.ShapeType.rect, { x: 3.5, y: ry2, w: 6.28, h: 0.35, fill: { color: bg } });
    row.forEach((cell, ci) => {
      s.addText(cell, {
        x: 3.5 + [0, 1.55, 3.1, 4.3][ci], y: ry2 + 0.02, w: [1.5, 1.5, 1.15, 2][ci], h: 0.31,
        fontSize: ri === 0 ? 8.5 : 9, bold: ri === 0,
        color: ri === 0 ? C.white : (ci === 2 && row[ci] === "YES" ? C.green : C.navy),
        fontFace: "Calibri", margin: 2,
      });
    });
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – ESTIMATION OF GFR (eGFR)
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "Estimated GFR (eGFR)", "Equations & endogenous markers");
  addFooter(s, 6, TOTAL);

  // Creatinine info
  card(s, 0.22, 0.88, 4.6, 2.02, C.darkCard);
  s.addText("Serum Creatinine", {
    x: 0.38, y: 0.94, w: 4.2, h: 0.28, fontSize: 11, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  s.addText([
    { text: "Produced from muscle creatine metabolism at a constant rate", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Freely filtered + ~15% tubularly secreted → overestimates GFR", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Influenced by: muscle mass, age, sex, race, diet (meat intake)", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "GFR can fall ~50% before serum Cr significantly rises ('creatinine blind spot')", options: { bullet: true, color: C.white } },
  ], { x: 0.38, y: 1.26, w: 4.3, h: 1.5, fontSize: 9.5, fontFace: "Calibri", lineSpacingMultiple: 1.2 });

  // Cystatin C info
  card(s, 5.18, 0.88, 4.6, 2.02, C.darkCard);
  s.addText("Cystatin C", {
    x: 5.34, y: 0.94, w: 4.2, h: 0.28, fontSize: 11, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  s.addText([
    { text: "Cysteine protease inhibitor produced by all nucleated cells", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Freely filtered, completely reabsorbed + catabolized by tubules", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Less influenced by muscle mass → better in extremes of age/body composition", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Affected by: thyroid status, steroids, smoking, adiposity", options: { bullet: true, color: C.white } },
  ], { x: 5.34, y: 1.26, w: 4.3, h: 1.5, fontSize: 9.5, fontFace: "Calibri", lineSpacingMultiple: 1.2 });

  // Equations
  const eqs = [
    { name: "Cockcroft-Gault (1976)", formula: "(140 − age) × weight / (Cr × 72)  [× 0.85 if female]", note: "Original; estimates creatinine clearance, not true GFR. Overestimates due to tubular secretion.", color: C.navy },
    { name: "MDRD (1999)", formula: "175 × SCr⁻¹·¹⁵⁴ × age⁻⁰·²⁰³ × 0.742 (F) × 1.212 (Black)", note: "Less accurate at GFR > 60. No longer recommended as first-line.", color: C.navy },
    { name: "CKD-EPI Creatinine (2009)", formula: "141 × min(Scr/κ,1)ᵅ × max(Scr/κ,1)⁻¹·²⁰⁹ × 0.993ᵃᵍᵉ", note: "Current clinical standard. More accurate across full GFR range.", color: C.green },
    { name: "CKD-EPI Cystatin C / Combined (2012)", formula: "Uses ScysC alone or combined Cr + CysC for added precision", note: "Recommended when confirmatory testing needed, esp. in unusual body composition.", color: C.teal },
  ];
  eqs.forEach((eq, i) => {
    const ey = 3.08 + i * 0.55;
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: ey, w: 9.56, h: 0.52, fill: { color: i % 2 === 0 ? "E4ECF4" : C.white } });
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: ey, w: 0.06, h: 0.52, fill: { color: eq.color } });
    s.addText(eq.name, { x: 0.38, y: ey + 0.02, w: 2.6, h: 0.24, fontSize: 9, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
    s.addText(eq.formula, { x: 0.38, y: ey + 0.26, w: 4.2, h: 0.22, fontSize: 8.5, color: C.teal, fontFace: "Calibri", margin: 0, italic: true });
    s.addText(eq.note, { x: 4.78, y: ey + 0.04, w: 5.0, h: 0.44, fontSize: 8.5, color: C.navy, fontFace: "Calibri", margin: 0 });
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – CKD STAGING (KDIGO)
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "CKD Staging by GFR – KDIGO Classification", "GFR G-categories (KDIGO 2012 / 2024 update)");
  addFooter(s, 7, TOTAL);

  const stages = [
    { g: "G1", gfr: "≥ 90", label: "Normal or high", color: "2E8B57", note: "Normal GFR with other markers of kidney damage required for CKD diagnosis" },
    { g: "G2", gfr: "60–89", label: "Mildly decreased", color: "66BB6A", note: "Often asymptomatic; mild decrease may be normal in elderly" },
    { g: "G3a", gfr: "45–59", label: "Mildly to moderately decreased", color: "FFD54F", note: "Moderate CKD; monitor BP, anaemia, PTH, phosphate" },
    { g: "G3b", gfr: "30–44", label: "Moderately to severely decreased", color: "FFA726", note: "High risk of CKD progression and cardiovascular complications" },
    { g: "G4", gfr: "15–29", label: "Severely decreased", color: "EF5350", note: "Prepare for renal replacement therapy; manage uraemic complications" },
    { g: "G5", gfr: "< 15", label: "Kidney failure", color: "B71C1C", note: "Dialysis or transplant required; end-stage renal disease (ESRD)" },
  ];

  // Header row
  s.addShape(pres.ShapeType.rect, { x: 0.22, y: 0.88, w: 9.56, h: 0.32, fill: { color: C.teal } });
  ["G-Category", "GFR (mL/min/1.73m²)", "Description", "Clinical Action"].forEach((h, i) => {
    s.addText(h, {
      x: 0.22 + [0, 1.1, 2.8, 5.9][i], y: 0.9, w: [1.05, 1.65, 3.05, 3.85][i], h: 0.28,
      fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri", margin: 2,
    });
  });

  stages.forEach((st, i) => {
    const ry = 1.22 + i * 0.66;
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: ry, w: 9.56, h: 0.62, fill: { color: i % 2 === 0 ? "EAF0F8" : C.white } });
    // color swatch
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: ry, w: 1.05, h: 0.62, fill: { color: st.color } });
    s.addText(st.g, { x: 0.22, y: ry + 0.14, w: 1.05, h: 0.34, fontSize: 14, bold: true, color: C.white, fontFace: "Calibri", align: "center", margin: 0 });
    s.addText(st.gfr, { x: 1.3, y: ry + 0.1, w: 1.45, h: 0.42, fontSize: 14, bold: true, color: C.navy, fontFace: "Calibri", align: "center", margin: 0 });
    s.addText(st.label, { x: 2.82, y: ry + 0.08, w: 3.0, h: 0.46, fontSize: 10, color: C.navy, fontFace: "Calibri", margin: 2 });
    s.addText(st.note, { x: 5.92, y: ry + 0.04, w: 3.8, h: 0.54, fontSize: 9, color: C.navy, fontFace: "Calibri", margin: 2 });
  });

  s.addText("KDIGO 2012 also adds Albuminuria A-categories (A1 < 30, A2 30–300, A3 > 300 mg/g) for combined risk stratification.", {
    x: 0.28, y: 5.2, w: 9.4, h: 0.22, fontSize: 8.5, color: C.navy, italic: true, fontFace: "Calibri",
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – REGULATION OF GFR
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "Regulation of GFR", "Autoregulation and neurohumoral control");
  addFooter(s, 8, TOTAL);

  const mechanisms = [
    {
      title: "Myogenic Autoregulation",
      icon: "⚙",
      body: "Stretch of afferent arteriole smooth muscle (due to ↑ perfusion pressure) → vasoconstriction → maintains constant GFR.\nOperates over MAP 80–180 mmHg.",
    },
    {
      title: "Tubuloglomerular Feedback (TGF)",
      icon: "🔄",
      body: "↑ NaCl at macula densa → ATP/adenosine → afferent arteriole constriction → ↓ GFR.\nLimits excessive filtration when tubular reabsorption is overwhelmed.",
    },
    {
      title: "Renin-Angiotensin System (RAAS)",
      icon: "⬆",
      body: "Ang II → efferent arteriole constriction → ↑ Pgc → maintains GFR in low-flow states.\nACEi/ARBs → ↓ efferent resistance → ↓ GFR (but reduce hyperfiltration injury).",
    },
    {
      title: "Sympathetic Nervous System",
      icon: "⚡",
      body: "High sympathetic tone (haemorrhage, shock) → afferent arteriole constriction → ↓ RBF and ↓ GFR.\nMediated by α1-adrenoceptors.",
    },
    {
      title: "Prostaglandins",
      icon: "🔵",
      body: "PGE2 / PGI2 → vasodilate afferent arteriole → maintain GFR when RAAS is activated.\nNSAIDs block this → acute GFR decline in at-risk patients.",
    },
    {
      title: "Atrial Natriuretic Peptide (ANP)",
      icon: "💧",
      body: "Released by atria in response to volume expansion.\nDilates afferent + constricts efferent → ↑ GFR + ↑ Na⁺ excretion.",
    },
  ];

  const cols = 3, rows = 2;
  mechanisms.forEach((m, i) => {
    const col = i % cols;
    const row = Math.floor(i / cols);
    const cx = 0.22 + col * 3.22;
    const cy = 0.9 + row * 2.14;
    card(s, cx, cy, 3.1, 2.0, C.darkCard);
    s.addText(m.title, {
      x: cx + 0.12, y: cy + 0.08, w: 2.85, h: 0.35,
      fontSize: 9.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
    });
    s.addText(m.body, {
      x: cx + 0.12, y: cy + 0.45, w: 2.85, h: 1.45,
      fontSize: 9, color: C.white, fontFace: "Calibri", margin: 0, lineSpacingMultiple: 1.25,
    });
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – GFR AND AGE / SPECIAL POPULATIONS
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "GFR Across the Lifespan & Special Populations", "Physiological and pathological variation");
  addFooter(s, 9, TOTAL);

  // Age trajectory
  card(s, 0.22, 0.9, 5.7, 2.02, C.darkCard);
  s.addText("GFR & Aging", {
    x: 0.38, y: 0.96, w: 5.3, h: 0.28, fontSize: 11, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  s.addText([
    { text: "Neonates: GFR is low (~20 mL/min/1.73m²) due to incomplete glomerulogenesis at birth", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Peaks ~130/120 mL/min/1.73m² (male/female) in early adulthood", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Declines at ~1 mL/min/1.73m² per year after age 30–40", options: { bullet: true, breakLine: true, color: C.white } },
    { text: "Low birth weight: GFR lower by ~2.25 mL/min/1.73m² per 1 kg decrease in birth weight (tracks into adulthood)", options: { bullet: true, color: C.white } },
  ], { x: 0.38, y: 1.28, w: 5.3, h: 1.5, fontSize: 9.5, fontFace: "Calibri", lineSpacingMultiple: 1.2 });

  // Pregnancy
  card(s, 6.1, 0.9, 3.68, 2.02, C.darkCard);
  s.addText("Pregnancy", {
    x: 6.26, y: 0.96, w: 3.3, h: 0.28, fontSize: 11, bold: true, color: C.gold, fontFace: "Calibri", margin: 0,
  });
  s.addText(
    "GFR increases 40–65% by 2nd trimester due to ↑ cardiac output and ↓ renal vascular resistance.\n\n" +
    "Serum creatinine falls (normal < 0.8 mg/dL in pregnancy). Standard eGFR equations OVERESTIMATE GFR in pregnancy — use with caution.",
    { x: 6.26, y: 1.28, w: 3.3, h: 1.5, fontSize: 9.5, color: C.white, fontFace: "Calibri", margin: 0 }
  );

  // Conditions affecting GFR
  const conditions = [
    { title: "↑ GFR (Hyperfiltration)", items: ["Pregnancy (1st/2nd trimester)", "High protein diet", "Early diabetic nephropathy", "Volume expansion (IV fluids)"], color: C.green },
    { title: "↓ GFR", items: ["CKD (any cause)", "Acute kidney injury", "Dehydration / hypovolaemia", "NSAIDs, ACEi/ARBs, contrast", "Heart failure, liver cirrhosis"], color: C.red },
    { title: "Factitious changes in eGFR", items: ["High meat diet ↑ creatinine → ↓ eGFR", "Creatine supplements ↑ Cr → ↓ eGFR", "Hypothyroidism ↑ CysC → ↓ eCysC-GFR", "Muscle wasting ↓ Cr → overestimates eGFR"], color: C.gold },
  ];
  conditions.forEach((c, i) => {
    const cx = 0.22 + i * 3.26;
    card(s, cx, 3.06, 3.1, 2.24, C.white);
    s.addShape(pres.ShapeType.rect, { x: cx, y: 3.06, w: 3.1, h: 0.34, fill: { color: c.color } });
    s.addText(c.title, {
      x: cx + 0.08, y: 3.08, w: 2.94, h: 0.3, fontSize: 9.5, bold: true, color: C.white, fontFace: "Calibri", align: "center", margin: 0,
    });
    s.addText(c.items.map(it => ({ text: it, options: { bullet: true, breakLine: true, color: C.navy } })), {
      x: cx + 0.1, y: 3.44, w: 2.85, h: 1.75, fontSize: 9, fontFace: "Calibri", lineSpacingMultiple: 1.2,
    });
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – CLINICAL IMPLICATIONS OF GFR
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "Clinical Implications of GFR", "Drug dosing, diagnostics and complications");
  addFooter(s, 10, TOTAL);

  const topics = [
    {
      title: "Drug Dosing Adjustments",
      body: "Most renally-cleared drugs require dose reduction when GFR < 60 mL/min/1.73m².\n• Metformin: stop if eGFR < 30 (lactic acidosis risk)\n• Digoxin, aminoglycosides, vancomycin: accumulate and are nephrotoxic\n• Direct oral anticoagulants (DOACs): variable thresholds per agent\n• Contrast agents: risk of contrast-induced AKI ↑ when GFR < 45",
      color: C.teal,
    },
    {
      title: "Diagnosis of CKD",
      body: "CKD is defined as abnormalities of kidney structure or function for > 3 months.\nGFR < 60 mL/min/1.73m² or markers of kidney damage (albuminuria, haematuria, structural abnormality) for > 3 months = CKD.\nSingle eGFR reading is insufficient — must be confirmed.",
      color: C.gold,
    },
    {
      title: "Complications Threshold",
      body: "GFR < 60: ↑ risk of cardiovascular events, anaemia of CKD\nGFR < 45: Activate RRT planning; monitor PTH & bone metabolism\nGFR < 30: Erythropoiesis-stimulating agents (ESA) often needed\nGFR < 15: Initiate dialysis/transplant planning (Stage G5)",
      color: C.red,
    },
    {
      title: "AKI vs CKD",
      body: "Single low eGFR may represent AKI (rapid reversible decline) or CKD (sustained ≥ 3 months).\nTrend matters: serial creatinine values, prior eGFR records, and imaging (kidney size, echogenicity) help distinguish them.",
      color: C.navy,
    },
  ];

  topics.forEach((t, i) => {
    const row = Math.floor(i / 2);
    const col = i % 2;
    const cx = 0.22 + col * 4.9;
    const cy = 0.9 + row * 2.2;
    card(s, cx, cy, 4.68, 2.06, C.darkCard);
    s.addShape(pres.ShapeType.rect, { x: cx, y: cy, w: 4.68, h: 0.04, fill: { color: t.color } });
    s.addText(t.title, {
      x: cx + 0.12, y: cy + 0.1, w: 4.4, h: 0.32, fontSize: 11, bold: true, color: t.color, fontFace: "Calibri", margin: 0,
    });
    s.addText(t.body, {
      x: cx + 0.12, y: cy + 0.46, w: 4.4, h: 1.52, fontSize: 9.5, color: C.white, fontFace: "Calibri", margin: 0, lineSpacingMultiple: 1.2,
    });
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – GFR & CARDIOVASCULAR RISK
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.offWhite } });
  addHeader(s, "GFR, Albuminuria & Cardiovascular Risk", "The KDIGO heat map");
  addFooter(s, 11, TOTAL);

  // Intro
  s.addText(
    "Both reduced GFR and elevated albuminuria are independent risk factors for CKD progression AND cardiovascular mortality. " +
    "KDIGO 2012 introduced a combined GFR + albuminuria risk grid ('heat map') to stratify prognosis.",
    { x: 0.22, y: 0.9, w: 9.56, h: 0.6, fontSize: 11, color: C.navy, fontFace: "Calibri" }
  );

  // Heat map grid
  const gCats = ["G1 ≥90", "G2 60–89", "G3a 45–59", "G3b 30–44", "G4 15–29", "G5 <15"];
  const aCats = ["A1 <30\n(Normal)", "A2 30–300\n(Moderate)", "A3 >300\n(Severe)"];
  // risk grid [G1-G5][A1-A3]
  const riskColors = [
    ["93C47D", "FFE599", "EA9999"],
    ["93C47D", "FFE599", "E06666"],
    ["FFE599", "E06666", "CC0000"],
    ["FFE599", "CC0000", "CC0000"],
    ["E06666", "CC0000", "CC0000"],
    ["CC0000", "CC0000", "CC0000"],
  ];
  const riskLabels = [
    ["Low", "Moderate", "High"],
    ["Low", "Moderate", "V.High"],
    ["Moderate", "High", "V.High"],
    ["High", "V.High", "V.High"],
    ["V.High", "V.High", "V.High"],
    ["V.High", "V.High", "V.High"],
  ];

  const gx0 = 2.4, gy0 = 1.65, cw = 2.3, ch = 0.52;
  // Header A-cats
  aCats.forEach((a, ai) => {
    s.addShape(pres.ShapeType.rect, { x: gx0 + ai * cw, y: gy0 - 0.56, w: cw - 0.04, h: 0.52, fill: { color: C.teal } });
    s.addText(a, { x: gx0 + ai * cw, y: gy0 - 0.56, w: cw - 0.04, h: 0.52, fontSize: 8.5, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
  });
  // Header G-cats
  gCats.forEach((g, gi) => {
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: gy0 + gi * ch, w: 2.1, h: ch - 0.04, fill: { color: C.navy } });
    s.addText(g, { x: 0.22, y: gy0 + gi * ch, w: 2.1, h: ch - 0.04, fontSize: 8.5, bold: true, color: C.white, align: "center", fontFace: "Calibri", valign: "middle" });
  });
  // Grid
  gCats.forEach((_, gi) => {
    aCats.forEach((_, ai) => {
      s.addShape(pres.ShapeType.rect, { x: gx0 + ai * cw, y: gy0 + gi * ch, w: cw - 0.04, h: ch - 0.04, fill: { color: riskColors[gi][ai] } });
      s.addText(riskLabels[gi][ai], { x: gx0 + ai * cw, y: gy0 + gi * ch, w: cw - 0.04, h: ch - 0.04, fontSize: 9.5, bold: true, color: C.white, align: "center", fontFace: "Calibri", valign: "middle" });
    });
  });

  s.addText("Albuminuria Category (ACR mg/g Cr)", {
    x: gx0, y: gy0 - 0.78, w: 6.9, h: 0.24, fontSize: 8.5, bold: true, color: C.navy, fontFace: "Calibri", align: "center",
  });
  s.addText("GFR Category", {
    x: 0.22, y: gy0, w: 2.0, h: 3.1, fontSize: 8.5, bold: true, color: C.navy, fontFace: "Calibri", align: "center", valign: "middle", rotate: 270,
  });

  s.addText("Green = Low risk  |  Yellow = Moderate risk  |  Orange/Red = High to Very High risk for CKD progression & CV events", {
    x: 0.22, y: 5.18, w: 9.56, h: 0.2, fontSize: 8, italic: true, color: C.navy, fontFace: "Calibri", align: "center",
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – KEY FORMULAS SUMMARY
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy } });
  addHeader(s, "Key Formulas & Quick Reference", "High-yield summary for exams");
  addFooter(s, 12, TOTAL);

  const formulas = [
    { label: "SNGFR", eq: "Kf × [(Pgc − Pbs) − (πgc − πbs)]", note: "Net ultrafiltration pressure ≈ 10 mmHg" },
    { label: "Clearance", eq: "C = (U × V) / P", note: "Gold standard: inulin clearance = true GFR" },
    { label: "Cockcroft-Gault", eq: "(140 − age) × Wt / (Cr × 72) × 0.85 if F", note: "Estimates CrCl; widely used for drug dosing" },
    { label: "MDRD", eq: "175 × SCr⁻¹·¹⁵⁴ × age⁻⁰·²⁰³ × 0.742(F) × 1.212(B)", note: "Inaccurate when GFR > 60; replaced by CKD-EPI" },
    { label: "CKD-EPI Cr 2009", eq: "141 × min(Scr/κ,1)ᵅ × max(Scr/κ,1)⁻¹·²⁰⁹ × 0.993ᵃᵍᵉ", note: "Current standard; κ = 0.7 (F), 0.9 (M); α = −0.329 (F), −0.411 (M)" },
  ];

  formulas.forEach((f, i) => {
    const fy = 0.92 + i * 0.85;
    card(s, 0.22, fy, 9.56, 0.8, C.darkCard);
    s.addShape(pres.ShapeType.rect, { x: 0.22, y: fy, w: 1.6, h: 0.8, fill: { color: C.teal } });
    s.addText(f.label, { x: 0.22, y: fy, w: 1.6, h: 0.8, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
    s.addText(f.eq, { x: 1.9, y: fy + 0.04, w: 5.1, h: 0.42, fontSize: 10.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
    s.addText(f.note, { x: 1.9, y: fy + 0.46, w: 7.8, h: 0.28, fontSize: 9, color: C.gray, fontFace: "Calibri", italic: true, margin: 0 });
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – SUMMARY & TAKE-HOME MESSAGES
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy } });
  // bottom teal band
  s.addShape(pres.ShapeType.rect, { x: 0, y: 4.8, w: 10, h: 0.825, fill: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.gold } });

  s.addText("Take-Home Messages", {
    x: 0.35, y: 0.18, w: 9.3, h: 0.55, fontSize: 22, bold: true, color: C.gold, fontFace: "Calibri", charSpacing: 1,
  });

  const msgs = [
    { n: "01", msg: "GFR is the most reliable index of renal function — it reflects the total filtration capacity of all functioning nephrons." },
    { n: "02", msg: "SNGFR is driven by the net ultrafiltration pressure (Kf × ΔP − Δπ). Filtration equilibrium is NOT reached in healthy glomeruli." },
    { n: "03", msg: "True GFR cannot be measured directly in humans. Inulin clearance is the gold standard; eGFR equations (CKD-EPI) are used clinically." },
    { n: "04", msg: "CKD-EPI creatinine (2009) is the current first-line eGFR equation. Add cystatin C for confirmatory or high-stakes decisions." },
    { n: "05", msg: "KDIGO classifies CKD into G1–G5 by GFR and A1–A3 by albuminuria. Both independently predict progression and cardiovascular mortality." },
    { n: "06", msg: "GFR < 60 mL/min/1.73m² triggers drug dose adjustment reviews. NSAIDs, contrast, and aminoglycosides are high-risk in CKD." },
    { n: "07", msg: "GFR rises ~50% in pregnancy — normal serum Cr falls; standard eGFR equations are unreliable during pregnancy." },
  ];

  msgs.forEach((m, i) => {
    const col = i < 4 ? 0 : 1;
    const row = col === 0 ? i : i - 4;
    const cx = 0.28 + col * 5.0;
    const cy = 0.88 + row * 0.84;
    s.addShape(pres.ShapeType.rect, { x: cx, y: cy, w: 0.44, h: 0.7, fill: { color: C.teal } });
    s.addText(m.n, { x: cx, y: cy, w: 0.44, h: 0.7, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri" });
    s.addText(m.msg, { x: cx + 0.5, y: cy + 0.04, w: 4.3, h: 0.62, fontSize: 9.5, color: C.white, fontFace: "Calibri", margin: 0, lineSpacingMultiple: 1.15 });
  });

  s.addText("Sources: Comprehensive Clinical Nephrology 7e | Brenner & Rector's The Kidney | NKF Primer on Kidney Diseases 8e | Tietz Lab Medicine 7e", {
    x: 0.2, y: 4.84, w: 9.5, h: 0.3, fontSize: 8.5, color: C.white, fontFace: "Calibri", align: "center",
  });
}

// ── WRITE FILE ─────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/gfr-ppt/GFR_Presentation.pptx" })
  .then(() => console.log("Done: GFR_Presentation.pptx"))
  .catch(e => { console.error(e); process.exit(1); });
Running Command

cd /home/daytona/workspace/gfr-ppt && node gfr.js 2>&1

Running Command

ls -lh /home/daytona/workspace/gfr-ppt/GFR_Presentation.pptx

Your GFR presentation is ready. Download it here:

GFR Presentation

Presentation · PPTX


What's inside — 13 slides, advanced clinical depth:
#Slide
1Title slide
2What is GFR? — definition, normal values, key facts
3Starling Forces & SNGFR — Kf formula with all variables
4Glomerular Filtration Barrier — 3-layer barrier + size/charge selectivity table
5Measured GFR (mGFR) — ideal marker criteria + exogenous/endogenous marker comparison
6Estimated GFR (eGFR) — creatinine vs cystatin C + all equations (CG, MDRD, CKD-EPI)
7CKD Staging — full KDIGO G1–G5 color-coded table with clinical actions
8Regulation of GFR — 6 mechanisms (myogenic, TGF, RAAS, SNS, prostaglandins, ANP)
9GFR across the lifespan — aging, pregnancy, low birth weight, hyperfiltration states
10Clinical Implications — drug dosing, CKD diagnosis, complication thresholds
11GFR + Albuminuria Risk Heat Map — KDIGO combined prognosis grid
12Key Formulas Quick Reference — exam-ready cheat sheet
13Take-Home Messages — 7 high-yield bullets
Sources used: Comprehensive Clinical Nephrology 7e, Brenner & Rector's The Kidney, NKF Primer on Kidney Diseases 8e, Tietz Textbook of Laboratory Medicine 7e.
This is a shared conversation. Sign in to Orris to start your own chat.