Make a presentation of Urinary tract infection with clinical history medical management of nursing student 2nd year of Pokhara academy of health of health sciences . Including nursing management like nursing assessment nursing diagnosis interventions and rationale and evaluation. With figures and explaining points .

Reading File
Reading File
Reading File
Finding Sources
Searching the Web

urinary tract infection anatomy diagram figures clinical presentation nursing management

Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Loading Image
Loading Image
Reading File
Running Command

ls /home/daytona/workspace/ && mkdir -p /home/daytona/workspace/uti-presentation

Writing File

~/uti-presentation/build_uti_pptx.js

const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");

// Fetch images as base64
const imageUrls = [
  "https://cdn.orris.care/cdss_images/d84b872e9c3821532caedd57a597ba486318b2f478b0d401e5a8e08ff47db866.png",
  "https://nurseslabs.com/wp-content/uploads/2016/12/CystitisCystitis-Infographic.png",
  "https://image.slidesharecdn.com/uti-180902103758/75/Urinary-Tract-Infection-with-Nursing-Management-1-2048.jpg"
];

let images = [];
try {
  images = JSON.parse(execSync(
    `node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`,
    { timeout: 30000 }
  ).toString());
} catch(e) {
  console.log("Image fetch error:", e.message);
  images = imageUrls.map(u => ({ url: u, base64: null, error: e.message }));
}

const pathwayImg = images[0];
const cystitisImg = images[1];
const nursingImg = images[2];

// ─── COLOR PALETTE ─────────────────────────────────────────────────────────
const C = {
  darkBlue:   "0B3D91",  // dominant – titles, header bars
  medBlue:    "1565C0",  // section bands
  accentTeal: "00897B",  // accent bullets / highlights
  accentOrange: "E65100", // warnings / alert boxes
  lightBg:    "EEF4FF",  // slide backgrounds
  white:      "FFFFFF",
  lightGray:  "F5F5F5",
  textDark:   "1A1A2E",
  textMid:    "37474F",
  gold:       "FFB300",
};

// ─── PPTX SETUP ───────────────────────────────────────────────────────────
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Urinary Tract Infection";
pres.author = "Pokhara Academy of Health Sciences";

// ─── HELPER FUNCTIONS ─────────────────────────────────────────────────────

function addHeaderBar(slide, title, subtitle) {
  // Full-width header bar
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: "100%", h: 1.0,
    fill: { color: C.darkBlue },
    line: { color: C.darkBlue }
  });
  slide.addText(title, {
    x: 0.3, y: 0.05, w: 9.4, h: 0.55,
    fontSize: 22, bold: true, color: C.white, fontFace: "Calibri",
    margin: 0, valign: "middle"
  });
  if (subtitle) {
    slide.addText(subtitle, {
      x: 0.3, y: 0.6, w: 9.4, h: 0.32,
      fontSize: 11, color: C.gold, fontFace: "Calibri",
      margin: 0, valign: "middle", italic: true
    });
  }
  // Bottom accent line
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 1.0, w: "100%", h: 0.06,
    fill: { color: C.accentTeal },
    line: { color: C.accentTeal }
  });
}

function addFooter(slide, pageNum, total) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: "100%", h: 0.375,
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  slide.addText("Pokhara Academy of Health Sciences  |  UTI – Nursing 2nd Year  |  2026", {
    x: 0.3, y: 5.25, w: 8.0, h: 0.375,
    fontSize: 8, color: C.white, fontFace: "Calibri",
    valign: "middle", margin: 0
  });
  slide.addText(`${pageNum} / ${total}`, {
    x: 9.3, y: 5.25, w: 0.6, h: 0.375,
    fontSize: 8, color: C.white, fontFace: "Calibri",
    align: "right", valign: "middle", margin: 0
  });
}

function addSlideBg(slide) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: "100%", h: "100%",
    fill: { color: C.lightBg }, line: { color: C.lightBg }
  });
}

function bulletList(slide, items, opts) {
  const { x, y, w, h, fontSize = 13, color = C.textDark } = opts;
  const textArr = items.map((item, i) => ({
    text: item,
    options: {
      bullet: { type: "bullet", code: "25BA", color: C.accentTeal },
      fontSize, color, fontFace: "Calibri",
      paraSpaceBefore: 4,
      breakLine: i < items.length - 1
    }
  }));
  slide.addText(textArr, { x, y, w, h, valign: "top" });
}

function addSectionDivider(slide, sectionTitle, icon) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: "100%", h: "100%",
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  // Decorative circle
  slide.addShape(pres.ShapeType.ellipse, {
    x: 3.5, y: 1.0, w: 3.0, h: 3.0,
    fill: { color: C.medBlue }, line: { color: C.accentTeal, w: 3 }
  });
  slide.addText(icon || "🏥", {
    x: 3.5, y: 1.6, w: 3.0, h: 1.6,
    fontSize: 48, align: "center", valign: "middle"
  });
  slide.addText(sectionTitle, {
    x: 0.5, y: 4.2, w: 9.0, h: 0.9,
    fontSize: 28, bold: true, color: C.white,
    fontFace: "Calibri", align: "center"
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 1 – TITLE SLIDE
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  // Deep gradient bg
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: "100%", h: "100%",
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  // Decorative teal bar left
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.25, h: "100%",
    fill: { color: C.accentTeal }, line: { color: C.accentTeal }
  });
  // White content area
  s.addShape(pres.ShapeType.rect, {
    x: 0.25, y: 1.2, w: 9.5, h: 3.3,
    fill: { color: C.white, transparency: 10 }, line: { color: C.accentTeal, w: 1 }
  });

  s.addText("URINARY TRACT INFECTION", {
    x: 0.5, y: 1.3, w: 9.0, h: 0.9,
    fontSize: 34, bold: true, color: C.darkBlue,
    fontFace: "Calibri", align: "center", charSpacing: 3
  });
  s.addText("UTI", {
    x: 0.5, y: 2.1, w: 9.0, h: 0.5,
    fontSize: 20, bold: true, color: C.accentOrange,
    fontFace: "Calibri", align: "center"
  });
  s.addText("Clinical Presentation, Medical Management & Nursing Care", {
    x: 0.5, y: 2.55, w: 9.0, h: 0.5,
    fontSize: 14, color: C.textMid, fontFace: "Calibri", align: "center", italic: true
  });
  s.addShape(pres.ShapeType.rect, {
    x: 3.5, y: 3.1, w: 3.0, h: 0.04,
    fill: { color: C.accentTeal }, line: { color: C.accentTeal }
  });
  s.addText([
    { text: "Pokhara Academy of Health Sciences", options: { breakLine: true, bold: true } },
    { text: "B.Sc. Nursing – 2nd Year  |  July 2026", options: { breakLine: false } }
  ], {
    x: 0.5, y: 3.25, w: 9.0, h: 0.7,
    fontSize: 12, color: C.white, fontFace: "Calibri", align: "center"
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.25, w: "100%", h: 0.375,
    fill: { color: C.accentTeal }, line: { color: C.accentTeal }
  });
  s.addText("Nursing Education Presentation  |  2026", {
    x: 0, y: 5.25, w: "100%", h: 0.375,
    fontSize: 9, color: C.white, align: "center", valign: "middle"
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 2 – TABLE OF CONTENTS
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Table of Contents", "Overview of Topics");
  addFooter(s, 2, 20);

  const topics = [
    ["1", "Introduction & Definition"],
    ["2", "Anatomy of Urinary System"],
    ["3", "Classification & Etiology"],
    ["4", "Pathophysiology"],
    ["5", "Clinical History & Symptoms"],
    ["6", "Investigations / Diagnosis"],
    ["7", "Medical Management"],
    ["8", "Complications"],
    ["9", "Nursing Assessment"],
    ["10", "Nursing Diagnosis, Interventions & Rationale"],
    ["11", "Evaluation & Patient Education"],
  ];

  const col1 = topics.slice(0, 6);
  const col2 = topics.slice(6);

  col1.forEach((t, i) => {
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y: 1.2 + i * 0.62, w: 0.45, h: 0.45,
      fill: { color: C.medBlue }, line: { color: C.medBlue }
    });
    s.addText(t[0], {
      x: 0.3, y: 1.2 + i * 0.62, w: 0.45, h: 0.45,
      fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle"
    });
    s.addText(t[1], {
      x: 0.85, y: 1.22 + i * 0.62, w: 4.0, h: 0.42,
      fontSize: 12, color: C.textDark, fontFace: "Calibri", valign: "middle"
    });
  });

  col2.forEach((t, i) => {
    s.addShape(pres.ShapeType.rect, {
      x: 5.3, y: 1.2 + i * 0.62, w: 0.45, h: 0.45,
      fill: { color: C.accentTeal }, line: { color: C.accentTeal }
    });
    s.addText(t[0], {
      x: 5.3, y: 1.2 + i * 0.62, w: 0.45, h: 0.45,
      fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle"
    });
    s.addText(t[1], {
      x: 5.85, y: 1.22 + i * 0.62, w: 4.0, h: 0.42,
      fontSize: 12, color: C.textDark, fontFace: "Calibri", valign: "middle"
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 3 – INTRODUCTION & DEFINITION
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Introduction & Definition", "Urinary Tract Infection");
  addFooter(s, 3, 20);

  // Definition box
  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 1.15, w: 9.4, h: 0.9,
    fill: { color: C.medBlue }, line: { color: C.medBlue }, rectRadius: 0.08
  });
  s.addText([
    { text: "Definition: ", options: { bold: true, color: C.gold } },
    { text: "A Urinary Tract Infection (UTI) is the presence of bacteria or other microorganisms in the urine or genitourinary tissues, causing symptomatic infection of any part of the urinary system — kidneys, ureters, bladder, or urethra.", options: { color: C.white } }
  ], {
    x: 0.4, y: 1.15, w: 9.2, h: 0.9,
    fontSize: 12, fontFace: "Calibri", valign: "middle"
  });

  bulletList(s, [
    "One of the MOST COMMON bacterial infections worldwide",
    "Affects all age groups — more prevalent in women (short urethra proximity to rectum)",
    "Can involve lower tract (cystitis, urethritis) or upper tract (pyelonephritis)",
    "Causative organism: E. coli accounts for ~80–85% of uncomplicated UTIs",
    "Annual incidence: ~150 million cases globally per year",
    "Risk groups: sexually active women, pregnant women, elderly, catheterized patients, diabetics"
  ], { x: 0.3, y: 2.2, w: 9.4, h: 2.85, fontSize: 12 });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 4 – ANATOMY OF URINARY SYSTEM
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Anatomy of the Urinary System", "Structures Involved in UTI");
  addFooter(s, 4, 20);

  // Left: anatomy points
  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 1.15, w: 4.5, h: 3.9,
    fill: { color: C.white }, line: { color: C.medBlue, w: 1 }
  });

  const organs = [
    ["Kidneys", "Paired organs; filter blood, produce urine, regulate electrolytes"],
    ["Ureters", "Transport urine from kidneys to bladder (25–30 cm long)"],
    ["Urinary Bladder", "Muscular sac that stores urine; capacity ~500 mL"],
    ["Urethra", "Tube carrying urine out of body. Female: ~4 cm; Male: ~20 cm"],
  ];

  organs.forEach((o, i) => {
    s.addShape(pres.ShapeType.rect, {
      x: 0.35, y: 1.2 + i * 0.95, w: 4.4, h: 0.88,
      fill: { color: i % 2 === 0 ? C.lightBg : C.white }, line: { color: C.lightBg }
    });
    s.addText(o[0], {
      x: 0.42, y: 1.22 + i * 0.95, w: 4.2, h: 0.3,
      fontSize: 13, bold: true, color: C.darkBlue, fontFace: "Calibri"
    });
    s.addText(o[1], {
      x: 0.42, y: 1.5 + i * 0.95, w: 4.2, h: 0.55,
      fontSize: 11, color: C.textMid, fontFace: "Calibri"
    });
  });

  // Right: Key anatomical facts
  s.addShape(pres.ShapeType.rect, {
    x: 5.0, y: 1.15, w: 4.7, h: 3.9,
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  s.addText("Why Women Get UTI More?", {
    x: 5.1, y: 1.2, w: 4.5, h: 0.4,
    fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri"
  });
  const womenFactors = [
    "Short urethra (~4 cm) — bacteria travel easily",
    "Urethral opening close to anus & vagina",
    "No prostate gland (prostatic secretions = antibacterial)",
    "Sexual intercourse causes urethral trauma",
    "Pregnancy: ureteral dilation + urinary stasis",
    "Post-menopausal: low estrogen → less Lactobacillus",
  ];
  womenFactors.forEach((f, i) => {
    s.addText(`• ${f}`, {
      x: 5.15, y: 1.7 + i * 0.53, w: 4.5, h: 0.48,
      fontSize: 11, color: C.white, fontFace: "Calibri"
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 5 – CLASSIFICATION
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Classification of UTI", "Types and Categories");
  addFooter(s, 5, 20);

  const types = [
    { label: "Lower UTI", color: C.medBlue, items: ["Cystitis (Bladder infection)", "Urethritis (Urethra infection)", "Most common; dysuria + frequency"] },
    { label: "Upper UTI", color: C.accentOrange, items: ["Pyelonephritis (Kidney infection)", "Perinephric abscess", "Fever, flank pain, systemic symptoms"] },
    { label: "Uncomplicated", color: C.accentTeal, items: ["Normal urinary tract anatomy", "Healthy non-pregnant women", "Community-acquired; responds to short-course antibiotics"] },
    { label: "Complicated", color: "6A1B9A", items: ["Structural/functional abnormality present", "Men, pregnant, diabetic, catheterized", "Requires prolonged treatment (7–14 days)"] },
    { label: "Recurrent UTI", color: "37474F", items: ["≥2 episodes in 6 months or ≥3 in 1 year", "Re-infection or relapse", "Requires prophylaxis evaluation"] },
    { label: "CAUTIs", color: "B71C1C", items: ["Catheter-Associated UTI", "Leading hospital-acquired infection", "Prevention: aseptic technique, early removal"] },
  ];

  types.forEach((t, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.3 + col * 3.2;
    const y = 1.15 + row * 2.0;

    s.addShape(pres.ShapeType.rect, {
      x, y, w: 3.05, h: 1.85,
      fill: { color: C.white }, line: { color: t.color, w: 2 }
    });
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 3.05, h: 0.4,
      fill: { color: t.color }, line: { color: t.color }
    });
    s.addText(t.label, {
      x: x + 0.1, y, w: 2.85, h: 0.4,
      fontSize: 12, bold: true, color: C.white, fontFace: "Calibri", valign: "middle"
    });
    t.items.forEach((item, j) => {
      s.addText(`• ${item}`, {
        x: x + 0.1, y: y + 0.45 + j * 0.43, w: 2.85, h: 0.42,
        fontSize: 10, color: C.textDark, fontFace: "Calibri"
      });
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 6 – ETIOLOGY / CAUSATIVE ORGANISMS
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Etiology – Causative Organisms", "Microbiology of UTI");
  addFooter(s, 6, 20);

  const organisms = [
    ["Escherichia coli", "80–85%", "Gram-negative; most common; fimbriae for adhesion", C.accentOrange],
    ["Klebsiella pneumoniae", "5–10%", "Gram-negative; hospital-acquired; mucoid capsule", C.medBlue],
    ["Staphylococcus saprophyticus", "5–10%", "Gram-positive; young sexually active women", C.accentTeal],
    ["Proteus mirabilis", "2–5%", "Urease-producing; forms struvite stones; alkaline urine", "7B1FA2"],
    ["Enterococcus faecalis", "2–5%", "Gram-positive; nosocomial; catheter-associated", "37474F"],
    ["Pseudomonas aeruginosa", "< 2%", "Gram-negative; hospital-acquired; MDR; serious", "B71C1C"],
  ];

  s.addText("Common Causative Bacteria:", {
    x: 0.3, y: 1.12, w: 5, h: 0.35,
    fontSize: 13, bold: true, color: C.darkBlue, fontFace: "Calibri"
  });

  organisms.forEach((org, i) => {
    const y = 1.5 + i * 0.63;
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y, w: 0.25, h: 0.55,
      fill: { color: org[3] }, line: { color: org[3] }
    });
    s.addShape(pres.ShapeType.rect, {
      x: 0.55, y, w: 9.15, h: 0.55,
      fill: { color: i % 2 === 0 ? C.white : C.lightGray }, line: { color: C.lightGray }
    });
    s.addText(org[0], {
      x: 0.62, y: y + 0.05, w: 2.5, h: 0.45,
      fontSize: 12, bold: true, color: C.textDark, fontFace: "Calibri", italic: true
    });
    s.addShape(pres.ShapeType.rect, {
      x: 3.2, y: y + 0.08, w: 0.7, h: 0.35,
      fill: { color: org[3] }, line: { color: org[3] }
    });
    s.addText(org[1], {
      x: 3.2, y: y + 0.08, w: 0.7, h: 0.35,
      fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle"
    });
    s.addText(org[2], {
      x: 4.05, y: y + 0.05, w: 5.5, h: 0.45,
      fontSize: 11, color: C.textMid, fontFace: "Calibri"
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 5.05, w: 9.4, h: 0.12,
    fill: { color: C.accentTeal }, line: { color: C.accentTeal }
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 7 – PATHOPHYSIOLOGY (with image)
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Pathophysiology", "How UTI Develops");
  addFooter(s, 7, 20);

  // Image on right
  if (pathwayImg && pathwayImg.base64) {
    s.addImage({ data: pathwayImg.base64, x: 5.0, y: 1.12, w: 4.7, h: 3.9 });
    s.addText("Source: Robbins Basic Pathology", {
      x: 5.0, y: 5.02, w: 4.7, h: 0.2,
      fontSize: 7, color: C.textMid, italic: true
    });
  }

  // Left: stepwise pathogenesis
  const steps = [
    ["Step 1", "Colonization", "Enteric bacteria (E. coli) colonize periurethral area / distal urethra"],
    ["Step 2", "Ascending Entry", "Bacteria ascend into bladder aided by fimbriae & virulence factors"],
    ["Step 3", "Bladder Infection", "Bacteria multiply in bladder → cystitis; inflammation of urothelium"],
    ["Step 4", "Urinary Stasis", "Incomplete voiding, obstruction, or reflux promotes bacterial growth"],
    ["Step 5", "Upper Tract", "Via vesicoureteral reflux / instrumentation → pyelonephritis"],
  ];

  steps.forEach((step, i) => {
    const y = 1.15 + i * 0.77;
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y, w: 0.85, h: 0.65,
      fill: { color: C.medBlue }, line: { color: C.medBlue }
    });
    s.addText(step[0], {
      x: 0.3, y, w: 0.85, h: 0.65,
      fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle"
    });
    s.addShape(pres.ShapeType.rect, {
      x: 1.2, y, w: 3.65, h: 0.65,
      fill: { color: C.white }, line: { color: C.lightGray }
    });
    s.addText(step[1], {
      x: 1.25, y: y + 0.02, w: 3.55, h: 0.28,
      fontSize: 12, bold: true, color: C.darkBlue, fontFace: "Calibri"
    });
    s.addText(step[2], {
      x: 1.25, y: y + 0.3, w: 3.55, h: 0.32,
      fontSize: 10, color: C.textMid, fontFace: "Calibri"
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 8 – CLINICAL HISTORY & SYMPTOMS
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Clinical History & Symptoms", "Patient Presentation");
  addFooter(s, 8, 20);

  // History taking box
  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 1.12, w: 4.5, h: 3.9,
    fill: { color: C.white }, line: { color: C.medBlue, w: 1.5 }
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 1.12, w: 4.5, h: 0.42,
    fill: { color: C.medBlue }, line: { color: C.medBlue }
  });
  s.addText("Clinical History Taking", {
    x: 0.35, y: 1.12, w: 4.4, h: 0.42,
    fontSize: 13, bold: true, color: C.white, valign: "middle"
  });

  const histItems = [
    "Chief Complaint: Burning urination, frequency",
    "Onset: Acute/Gradual? Duration?",
    "Dysuria (painful urination) – Yes/No",
    "Frequency & Urgency of urination",
    "Hematuria (blood in urine) – Yes/No",
    "Flank/Back pain – Right/Left/Bilateral",
    "Fever, chills, rigors, nausea/vomiting",
    "Urethral/Vaginal discharge",
    "Past history of UTI / kidney stones",
    "Obstetric history (pregnancy, menopausal status)",
    "Catheter use or recent urological procedure",
    "Diabetes, immunosuppression, HIV status",
  ];
  histItems.forEach((item, i) => {
    s.addText(`• ${item}`, {
      x: 0.38, y: 1.6 + i * 0.28, w: 4.3, h: 0.28,
      fontSize: 10.5, color: C.textDark, fontFace: "Calibri"
    });
  });

  // Symptoms column
  s.addShape(pres.ShapeType.rect, {
    x: 5.0, y: 1.12, w: 4.7, h: 1.75,
    fill: { color: C.accentOrange }, line: { color: C.accentOrange }
  });
  s.addText("LOWER UTI Symptoms", {
    x: 5.05, y: 1.12, w: 4.6, h: 0.4,
    fontSize: 13, bold: true, color: C.white, valign: "middle"
  });
  ["Dysuria (burning pain during urination)", "Frequency & urgency", "Suprapubic pain/tenderness", "Cloudy, foul-smelling urine", "Hematuria (gross or microscopic)", "Low-grade fever (<38°C)"].forEach((sym, i) => {
    s.addText(`• ${sym}`, {
      x: 5.05, y: 1.55 + i * 0.22, w: 4.55, h: 0.22,
      fontSize: 10.5, color: C.white, fontFace: "Calibri"
    });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 5.0, y: 2.95, w: 4.7, h: 2.1,
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  s.addText("UPPER UTI (Pyelonephritis) Symptoms", {
    x: 5.05, y: 2.95, w: 4.6, h: 0.4,
    fontSize: 13, bold: true, color: C.gold, valign: "middle"
  });
  ["High fever (>38.5°C), rigors, chills", "Flank pain (costovertebral angle tenderness)", "Nausea, vomiting, malaise", "Lower UTI symptoms may also present", "Sepsis in severe/untreated cases"].forEach((sym, i) => {
    s.addText(`• ${sym}`, {
      x: 5.05, y: 3.4 + i * 0.32, w: 4.55, h: 0.3,
      fontSize: 10.5, color: C.white, fontFace: "Calibri"
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 9 – CYSTITIS DIAGRAM
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Cystitis – Bladder Infection Mechanism", "Visual Explanation");
  addFooter(s, 9, 20);

  if (cystitisImg && cystitisImg.base64) {
    s.addImage({ data: cystitisImg.base64, x: 0.3, y: 1.12, w: 5.8, h: 3.9 });
  }

  s.addShape(pres.ShapeType.rect, {
    x: 6.3, y: 1.12, w: 3.4, h: 3.9,
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  s.addText("Key Points", {
    x: 6.4, y: 1.15, w: 3.2, h: 0.4,
    fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri"
  });
  const pts = [
    "E. coli from rectum migrates to urethra and bladder",
    "Short female urethra facilitates ascent",
    "Bacteria attach to urothelium via fimbriae",
    "Bladder inflammation causes dysuria & frequency",
    "Voiding flushes out bacteria — incomplete voiding worsens infection",
    "VUR (vesicoureteral reflux) allows ascending pyelonephritis",
  ];
  pts.forEach((p, i) => {
    s.addText(`${i + 1}. ${p}`, {
      x: 6.35, y: 1.6 + i * 0.54, w: 3.25, h: 0.5,
      fontSize: 10.5, color: C.white, fontFace: "Calibri"
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 10 – INVESTIGATIONS / DIAGNOSIS
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Investigations & Diagnosis", "Laboratory & Imaging Tests");
  addFooter(s, 10, 20);

  const tests = [
    {
      cat: "Urine Analysis (Routine)", color: C.medBlue,
      items: [
        "Mid-stream clean-catch urine specimen",
        "Turbid/cloudy appearance; Offensive odor",
        "pH >7 (alkaline in Proteus UTI)",
        "Positive Nitrite test (gram-negative bacteria)",
        "Positive Leukocyte esterase (WBCs in urine)",
        "Hematuria (RBCs present)",
      ]
    },
    {
      cat: "Urine Culture & Sensitivity", color: C.accentOrange,
      items: [
        "GOLD STANDARD for UTI diagnosis",
        "Significant bacteriuria: ≥10⁵ CFU/mL (voided)",
        "Symptomatic women: ≥10³ CFU/mL",
        "Identifies organism and antibiotic sensitivity",
        "Guides appropriate antibiotic selection",
        "Result in 24–48 hours",
      ]
    },
    {
      cat: "Blood Tests", color: C.accentTeal,
      items: [
        "CBC: Leukocytosis (elevated WBC count)",
        "ESR & CRP: Elevated (pyelonephritis)",
        "Blood culture: If sepsis suspected",
        "RFT (Renal Function Tests): BUN/Creatinine",
        "Blood glucose: Screen for diabetes",
      ]
    },
    {
      cat: "Imaging Studies", color: "6A1B9A",
      items: [
        "USG KUB: First-line imaging",
        "Detects hydronephrosis, stones, abscess",
        "CT Scan (non-contrast): Renal stones, abscesses",
        "MCU (Micturating Cystourethrogram): VUR detection",
        "IVP: Structural urinary tract abnormalities",
      ]
    }
  ];

  tests.forEach((t, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.3 + col * 4.85;
    const y = 1.12 + row * 2.08;

    s.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 1.98, fill: { color: C.white }, line: { color: t.color, w: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 0.38, fill: { color: t.color }, line: { color: t.color } });
    s.addText(t.cat, { x: x + 0.1, y, w: 4.4, h: 0.38, fontSize: 11, bold: true, color: C.white, valign: "middle" });
    t.items.forEach((item, j) => {
      s.addText(`• ${item}`, {
        x: x + 0.1, y: y + 0.4 + j * 0.255, w: 4.4, h: 0.25,
        fontSize: 10, color: C.textDark, fontFace: "Calibri"
      });
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 11 – MEDICAL MANAGEMENT
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Medical Management", "Treatment of UTI");
  addFooter(s, 11, 20);

  // Table header
  const tableData = [
    [{ text: "Type of UTI", options: { bold: true, color: C.white } },
     { text: "First-Line Antibiotics", options: { bold: true, color: C.white } },
     { text: "Duration", options: { bold: true, color: C.white } },
     { text: "Notes", options: { bold: true, color: C.white } }],
    ["Uncomplicated Cystitis (Women)", "Nitrofurantoin 100mg BD\nTrimethoprim-Sulfamethoxazole\nFosfomycin 3g single dose", "5–7 days\n3 days", "Avoid fluoroquinolones as first line"],
    ["Complicated UTI", "Ciprofloxacin 500mg BD\nCo-amoxiclav 625mg TDS\nCephalexin 500mg QDS", "7–14 days", "Culture-guided; treat underlying cause"],
    ["Pyelonephritis (Mild–Moderate)", "Ciprofloxacin 500mg BD\nCeftriaxone 1g IV OD\nCo-trimoxazole DS BD", "10–14 days", "IV to oral step-down if improving"],
    ["Pyelonephritis (Severe/Sepsis)", "Ceftriaxone 1–2g IV OD\nPiperacillin-Tazobactam\nMeropenem (MDR organisms)", "14 days", "IV antibiotics; hospital admission"],
    ["Recurrent UTI Prophylaxis", "Nitrofurantoin 50mg OD\nTrimethoprim 100mg OD", "3–6 months", "Post-coital prophylaxis option"],
  ];

  s.addTable(tableData, {
    x: 0.3, y: 1.12, w: 9.4, h: 4.0,
    fontSize: 10,
    fontFace: "Calibri",
    border: { pt: 0.5, color: "CCCCCC" },
    fill: C.white,
    rowH: 0.6,
    valign: "middle",
    color: C.textDark,
    autoPage: false,
    colW: [2.0, 2.8, 1.2, 3.4],
  });

  // Header row styling workaround - add colored bg header
  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 1.12, w: 9.4, h: 0.45,
    fill: { color: C.darkBlue }, line: { color: C.darkBlue }
  });
  ["Type of UTI", "First-Line Antibiotics", "Duration", "Notes"].forEach((h, i) => {
    const widths = [2.0, 2.8, 1.2, 3.4];
    let xPos = 0.3;
    for(let j = 0; j < i; j++) xPos += widths[j];
    s.addText(h, {
      x: xPos + 0.05, y: 1.12, w: widths[i] - 0.1, h: 0.45,
      fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", valign: "middle"
    });
  });

  // Table rows
  const rowColors = [C.lightBg, C.white];
  tableData.slice(1).forEach((row, i) => {
    const y = 1.57 + i * 0.6;
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y, w: 9.4, h: 0.58,
      fill: { color: rowColors[i % 2] }, line: { color: "DDDDDD" }
    });
    const widths = [2.0, 2.8, 1.2, 3.4];
    row.forEach((cell, j) => {
      let xPos = 0.3;
      for(let k = 0; k < j; k++) xPos += widths[k];
      s.addText(typeof cell === "string" ? cell : cell.text, {
        x: xPos + 0.05, y: y + 0.02, w: widths[j] - 0.1, h: 0.54,
        fontSize: 10, color: C.textDark, fontFace: "Calibri", valign: "middle"
      });
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 12 – ADDITIONAL MEDICAL MANAGEMENT (Supportive)
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Medical Management – Supportive Measures", "Beyond Antibiotics");
  addFooter(s, 12, 20);

  const cols = [
    {
      title: "General Supportive Care",
      color: C.medBlue,
      items: [
        "Adequate hydration: 2–3 L/day to flush bacteria",
        "Rest — especially in pyelonephritis",
        "Urinary alkalinizers (e.g. Ural sachets) for symptom relief",
        "Paracetamol/NSAIDs for pain and fever",
        "Antispasmodics (e.g. Oxybutynin) for bladder spasm",
        "Monitor vital signs regularly",
      ]
    },
    {
      title: "Catheter & Device Management",
      color: C.accentOrange,
      items: [
        "Remove indwelling catheters as soon as possible",
        "Aseptic technique for catheter insertion",
        "Closed drainage system maintenance",
        "Daily catheter care with soap and water",
        "Urine output monitoring (>0.5 mL/kg/hr)",
        "Avoid unnecessary catheterization",
      ]
    },
    {
      title: "Special Populations",
      color: C.accentTeal,
      items: [
        "Pregnancy: Cephalosporins, Nitrofurantoin (not 3rd trimester)",
        "Pediatrics: 7–10 day course; exclude VUR",
        "Elderly: Watch for atypical presentation (confusion)",
        "Diabetics: Treat promptly; longer courses",
        "Renal failure: Dose-adjust antibiotics",
        "IV antibiotics for hospitalized patients",
      ]
    }
  ];

  cols.forEach((col, i) => {
    const x = 0.3 + i * 3.2;
    s.addShape(pres.ShapeType.rect, { x, y: 1.12, w: 3.05, h: 0.42, fill: { color: col.color }, line: { color: col.color } });
    s.addText(col.title, { x: x + 0.05, y: 1.12, w: 2.95, h: 0.42, fontSize: 11, bold: true, color: C.white, valign: "middle" });
    s.addShape(pres.ShapeType.rect, { x, y: 1.54, w: 3.05, h: 3.5, fill: { color: C.white }, line: { color: col.color, w: 1 } });
    col.items.forEach((item, j) => {
      s.addText(`• ${item}`, {
        x: x + 0.1, y: 1.6 + j * 0.55, w: 2.85, h: 0.52,
        fontSize: 10.5, color: C.textDark, fontFace: "Calibri"
      });
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 13 – COMPLICATIONS
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Complications of UTI", "If Untreated or Recurrent");
  addFooter(s, 13, 20);

  const comps = [
    { comp: "Pyelonephritis", detail: "Ascending infection to kidneys; fever, flank pain, bacteremia", icon: "⚠️", color: C.accentOrange },
    { comp: "Urosepsis", detail: "Life-threatening systemic infection; fever, hypotension, organ dysfunction", icon: "🚨", color: "B71C1C" },
    { comp: "Renal Abscess", detail: "Collection of pus in kidney parenchyma; requires drainage", icon: "⚕️", color: "6A1B9A" },
    { comp: "Chronic Pyelonephritis", detail: "Recurrent infections → scarring → CKD (especially with VUR)", icon: "🔄", color: C.medBlue },
    { comp: "Urolithiasis", detail: "Urease-producing organisms (Proteus) → struvite calculi formation", icon: "💎", color: C.accentTeal },
    { comp: "Pregnancy Complications", detail: "Preterm birth, low birth weight, maternal sepsis if untreated", icon: "🤱", color: "37474F" },
  ];

  comps.forEach((c, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.3 + col * 4.85;
    const y = 1.12 + row * 1.32;

    s.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 1.22, fill: { color: C.white }, line: { color: c.color, w: 2 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 0.5, h: 1.22, fill: { color: c.color }, line: { color: c.color } });
    s.addText(c.icon, { x, y: y + 0.3, w: 0.5, h: 0.55, fontSize: 18, align: "center" });
    s.addText(c.comp, { x: x + 0.55, y: y + 0.05, w: 3.95, h: 0.38, fontSize: 13, bold: true, color: c.color, fontFace: "Calibri" });
    s.addText(c.detail, { x: x + 0.55, y: y + 0.42, w: 3.95, h: 0.72, fontSize: 10, color: C.textMid, fontFace: "Calibri" });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 14 – NURSING ASSESSMENT
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Nursing Assessment", "Systematic Patient Evaluation");
  addFooter(s, 14, 20);

  const assessments = [
    {
      heading: "Subjective Data (History)",
      color: C.medBlue,
      items: [
        "Onset, duration and character of dysuria",
        "Frequency, urgency, nocturia pattern",
        "Pain: location, severity (0–10 scale)",
        "Presence of hematuria – color of urine",
        "Fever, chills, nausea, vomiting",
        "Last normal void; urinary output pattern",
        "Relevant history: DM, pregnancy, catheter, stone",
        "Allergies and current medications",
      ]
    },
    {
      heading: "Objective Data (Physical Exam)",
      color: C.accentOrange,
      items: [
        "Vital signs: T, BP, P, RR, SpO2",
        "Temperature: Febrile? (>38°C suggests upper UTI)",
        "Suprapubic tenderness on palpation",
        "Costovertebral angle (CVA) tenderness",
        "Skin turgor and mucous membranes (hydration)",
        "Urine: color, clarity, odor, amount",
        "Catheter assessment (if present)",
        "Mental status in elderly patients",
      ]
    }
  ];

  assessments.forEach((a, i) => {
    const x = i === 0 ? 0.3 : 5.0;
    s.addShape(pres.ShapeType.rect, { x, y: 1.12, w: 4.6, h: 0.42, fill: { color: a.color }, line: { color: a.color } });
    s.addText(a.heading, { x: x + 0.1, y: 1.12, w: 4.4, h: 0.42, fontSize: 13, bold: true, color: C.white, valign: "middle" });
    s.addShape(pres.ShapeType.rect, { x, y: 1.54, w: 4.6, h: 3.5, fill: { color: C.white }, line: { color: a.color, w: 1 } });
    a.items.forEach((item, j) => {
      s.addText(`✓  ${item}`, {
        x: x + 0.15, y: 1.62 + j * 0.415, w: 4.3, h: 0.4,
        fontSize: 11, color: C.textDark, fontFace: "Calibri"
      });
    });
  });

  // Nursing assessment framework note
  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 5.05, w: 9.4, h: 0.14,
    fill: { color: C.accentTeal }, line: { color: C.accentTeal }
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 15 – NURSING DIAGNOSES
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Nursing Diagnoses", "NANDA-Based Diagnoses for UTI");
  addFooter(s, 15, 20);

  const nandas = [
    { num: "ND 1", diagnosis: "Acute Pain", related: "related to bladder inflammation and dysuria", evidence: "as evidenced by: verbal report of pain, facial grimacing, dysuria" },
    { num: "ND 2", diagnosis: "Impaired Urinary Elimination", related: "related to bladder irritation secondary to infection", evidence: "as evidenced by: urgency, frequency, dysuria, nocturia" },
    { num: "ND 3", diagnosis: "Hyperthermia", related: "related to infectious process (pyelonephritis)", evidence: "as evidenced by: elevated temperature, chills, warm skin" },
    { num: "ND 4", diagnosis: "Deficient Knowledge", related: "related to lack of information about UTI prevention", evidence: "as evidenced by: patient asking questions, recurrent infections" },
    { num: "ND 5", diagnosis: "Risk for Infection (Spread)", related: "related to inadequate primary defenses, catheter use", evidence: "Risk diagnosis — no defining characteristics" },
    { num: "ND 6", diagnosis: "Anxiety", related: "related to urinary symptoms, fear of recurrence", evidence: "as evidenced by: expressed concern, restlessness" },
  ];

  nandas.forEach((nd, i) => {
    const y = 1.15 + i * 0.68;
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y, w: 9.4, h: 0.62,
      fill: { color: i % 2 === 0 ? C.lightBg : C.white }, line: { color: "DDDDDD" }
    });
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 0.65, h: 0.62, fill: { color: C.medBlue }, line: { color: C.medBlue } });
    s.addText(nd.num, { x: 0.3, y, w: 0.65, h: 0.62, fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(nd.diagnosis, { x: 1.05, y: y + 0.04, w: 2.4, h: 0.3, fontSize: 12, bold: true, color: C.darkBlue, fontFace: "Calibri" });
    s.addText(nd.related, { x: 3.5, y: y + 0.04, w: 3.1, h: 0.55, fontSize: 10, color: C.accentOrange, fontFace: "Calibri", italic: true });
    s.addText(nd.evidence, { x: 6.7, y: y + 0.04, w: 3.0, h: 0.55, fontSize: 9, color: C.textMid, fontFace: "Calibri" });
  });

  // Column headers
  const headers = ["#", "Nursing Diagnosis", "Related To", "As Evidenced By"];
  const hx = [0.3, 1.05, 3.5, 6.7];
  const hw = [0.65, 2.4, 3.15, 3.0];
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.05, w: 9.4, h: 0.1, fill: { color: C.accentTeal }, line: { color: C.accentTeal } });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 16 – NURSING INTERVENTIONS & RATIONALE (ND 1 & 2)
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Nursing Interventions & Rationale", "ND 1: Acute Pain | ND 2: Impaired Urinary Elimination");
  addFooter(s, 16, 20);

  const nd1 = [
    ["Assess pain severity using 0–10 scale every 4 hrs", "Establishes baseline; monitors treatment effectiveness"],
    ["Administer prescribed analgesics (e.g. Paracetamol)", "Reduces pain, improves patient comfort and cooperation"],
    ["Apply warm compress to lower abdomen", "Heat relaxes bladder muscle spasm, reduces discomfort"],
    ["Encourage sitz bath (warm water)", "Relieves perineal discomfort and burning sensation"],
    ["Document pain characteristics and interventions", "Ensures continuity of care and outcome tracking"],
  ];

  const nd2 = [
    ["Monitor intake and output accurately every 8 hrs", "Evaluates hydration status and urinary function"],
    ["Encourage fluid intake 2–3 L/day (unless contraindicated)", "Increases urine flow, flushes bacteria from bladder"],
    ["Ensure timely voiding — avoid holding urine", "Prevents urinary stasis which promotes bacterial growth"],
    ["Catheter care: clean with soap/water twice daily", "Removes bacteria from catheter, prevents CAUTI"],
    ["Teach double voiding technique if residual urine", "Ensures complete bladder emptying; reduces risk"],
  ];

  // ND1 section
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.12, w: 9.4, h: 0.36, fill: { color: C.accentOrange }, line: { color: C.accentOrange } });
  s.addText("ND 1: Acute Pain — Interventions & Rationale", { x: 0.4, y: 1.12, w: 9.2, h: 0.36, fontSize: 12, bold: true, color: C.white, valign: "middle" });
  // Column headers
  ["Nursing Intervention", "Rationale"].forEach((h, i) => {
    s.addShape(pres.ShapeType.rect, { x: 0.3 + i * 5.0, y: 1.48, w: 4.7, h: 0.28, fill: { color: C.textMid }, line: { color: C.textMid } });
    s.addText(h, { x: 0.35 + i * 5.0, y: 1.48, w: 4.6, h: 0.28, fontSize: 10, bold: true, color: C.white, valign: "middle" });
  });
  nd1.forEach((row, i) => {
    const y = 1.78 + i * 0.28;
    const bg = i % 2 === 0 ? C.lightBg : C.white;
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 9.4, h: 0.27, fill: { color: bg }, line: { color: "DDDDDD" } });
    s.addText(`• ${row[0]}`, { x: 0.35, y, w: 4.85, h: 0.27, fontSize: 9.5, color: C.textDark, fontFace: "Calibri", valign: "middle" });
    s.addText(row[1], { x: 5.35, y, w: 4.3, h: 0.27, fontSize: 9.5, color: C.accentTeal, fontFace: "Calibri", italic: true, valign: "middle" });
  });

  // ND2 section
  const nd2Y = 1.78 + nd1.length * 0.28 + 0.1;
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: nd2Y, w: 9.4, h: 0.34, fill: { color: C.medBlue }, line: { color: C.medBlue } });
  s.addText("ND 2: Impaired Urinary Elimination — Interventions & Rationale", { x: 0.4, y: nd2Y, w: 9.2, h: 0.34, fontSize: 12, bold: true, color: C.white, valign: "middle" });
  nd2.forEach((row, i) => {
    const y = nd2Y + 0.36 + i * 0.27;
    const bg = i % 2 === 0 ? C.lightBg : C.white;
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 9.4, h: 0.26, fill: { color: bg }, line: { color: "DDDDDD" } });
    s.addText(`• ${row[0]}`, { x: 0.35, y, w: 4.85, h: 0.26, fontSize: 9.5, color: C.textDark, fontFace: "Calibri", valign: "middle" });
    s.addText(row[1], { x: 5.35, y, w: 4.3, h: 0.26, fontSize: 9.5, color: C.accentTeal, fontFace: "Calibri", italic: true, valign: "middle" });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 17 – NURSING INTERVENTIONS (ND 3, 4, 5)
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Nursing Interventions & Rationale", "ND 3: Hyperthermia | ND 4: Knowledge Deficit | ND 5: Risk for Spread");
  addFooter(s, 17, 20);

  const sections = [
    {
      title: "ND 3: Hyperthermia",
      color: C.accentOrange,
      rows: [
        ["Monitor temperature every 2–4 hours", "Detects fever patterns; guides intervention"],
        ["Administer antipyretics as prescribed", "Reduces fever, improves patient comfort"],
        ["Apply tepid sponging / cooling measures", "Promotes heat dissipation through evaporation"],
        ["Administer IV fluids as ordered", "Replaces insensible fluid loss due to fever"],
        ["Administer antibiotics on time as prescribed", "Treats underlying infection causing fever"],
      ]
    },
    {
      title: "ND 4: Deficient Knowledge",
      color: C.accentTeal,
      rows: [
        ["Teach proper perineal hygiene (front-to-back wiping)", "Prevents transfer of rectal bacteria to urethra"],
        ["Educate on importance of completing antibiotic course", "Prevents resistance and recurrence"],
        ["Advise to void after sexual intercourse", "Flushes bacteria from urethra, reduces UTI risk"],
        ["Teach signs of recurrence — when to seek care", "Promotes early recognition and treatment"],
        ["Advise adequate fluid intake (2–3 L/day)", "Dilutes urine and reduces bacterial concentration"],
      ]
    },
    {
      title: "ND 5: Risk for Infection Spread",
      color: "6A1B9A",
      rows: [
        ["Administer antibiotics as scheduled — no missed doses", "Maintains therapeutic drug levels to eradicate bacteria"],
        ["Maintain strict hand hygiene before catheter care", "Prevents cross-contamination (standard precaution)"],
        ["Monitor for signs of pyelonephritis/sepsis", "Early detection prevents systemic spread"],
        ["Ensure closed drainage system for catheterized patients", "Prevents retrograde bacterial contamination"],
        ["Collect urine for repeat culture after treatment", "Confirms eradication; detects resistant organisms"],
      ]
    }
  ];

  sections.forEach((sec, i) => {
    const y = 1.1 + i * 1.48;
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 9.4, h: 0.32, fill: { color: sec.color }, line: { color: sec.color } });
    s.addText(sec.title, { x: 0.4, y, w: 9.2, h: 0.32, fontSize: 11, bold: true, color: C.white, valign: "middle" });
    sec.rows.forEach((row, j) => {
      const ry = y + 0.33 + j * 0.23;
      s.addShape(pres.ShapeType.rect, { x: 0.3, y: ry, w: 9.4, h: 0.22, fill: { color: j % 2 === 0 ? C.lightBg : C.white }, line: { color: "DDDDDD" } });
      s.addText(`• ${row[0]}`, { x: 0.35, y: ry, w: 4.9, h: 0.22, fontSize: 9, color: C.textDark, fontFace: "Calibri", valign: "middle" });
      s.addText(row[1], { x: 5.3, y: ry, w: 4.35, h: 0.22, fontSize: 9, color: sec.color, fontFace: "Calibri", italic: true, valign: "middle" });
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 18 – EVALUATION CRITERIA
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Evaluation of Nursing Care", "Expected Outcomes & Criteria");
  addFooter(s, 18, 20);

  s.addShape(pres.ShapeType.rect, {
    x: 0.3, y: 1.12, w: 9.4, h: 0.4,
    fill: { color: C.medBlue }, line: { color: C.medBlue }
  });
  s.addText("Evaluation: Has the patient achieved expected outcomes?", {
    x: 0.4, y: 1.12, w: 9.2, h: 0.4, fontSize: 13, bold: true, color: C.white, valign: "middle"
  });

  const evals = [
    { nd: "ND 1 – Acute Pain", outcome: "Patient reports pain score ≤ 2/10 within 48 hours of treatment initiation. Able to void without significant discomfort.", met: "Met / Partially Met / Not Met" },
    { nd: "ND 2 – Urinary Elimination", outcome: "Patient voids at normal intervals (every 3–4 hrs), urine is clear yellow, no dysuria or urgency by discharge.", met: "Met / Partially Met / Not Met" },
    { nd: "ND 3 – Hyperthermia", outcome: "Temperature returns to normal range (36.5–37.5°C) within 48–72 hours of antibiotic therapy.", met: "Met / Partially Met / Not Met" },
    { nd: "ND 4 – Knowledge Deficit", outcome: "Patient demonstrates correct perineal hygiene, verbalizes importance of completing antibiotics and follow-up.", met: "Met / Partially Met / Not Met" },
    { nd: "ND 5 – Risk for Spread", outcome: "No signs of pyelonephritis or sepsis develop. Follow-up urine culture negative after treatment completion.", met: "Met / Partially Met / Not Met" },
    { nd: "ND 6 – Anxiety", outcome: "Patient expresses reduced anxiety, reports feeling informed about condition and management plan.", met: "Met / Partially Met / Not Met" },
  ];

  evals.forEach((ev, i) => {
    const y = 1.58 + i * 0.6;
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y, w: 9.4, h: 0.57,
      fill: { color: i % 2 === 0 ? C.lightBg : C.white }, line: { color: "DDDDDD" }
    });
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 2.2, h: 0.57, fill: { color: i % 2 === 0 ? C.medBlue : C.accentTeal }, line: { color: i % 2 === 0 ? C.medBlue : C.accentTeal } });
    s.addText(ev.nd, { x: 0.35, y, w: 2.1, h: 0.57, fontSize: 10, bold: true, color: C.white, valign: "middle", fontFace: "Calibri" });
    s.addText(ev.outcome, { x: 2.6, y: y + 0.03, w: 6.1, h: 0.51, fontSize: 10, color: C.textDark, fontFace: "Calibri", valign: "middle" });
    s.addShape(pres.ShapeType.rect, { x: 8.7, y, w: 1.0, h: 0.57, fill: { color: "E8F5E9" }, line: { color: "A5D6A7" } });
    s.addText("☑ Met", { x: 8.7, y, w: 1.0, h: 0.57, fontSize: 8, color: "2E7D32", align: "center", valign: "middle" });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 19 – PATIENT EDUCATION
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  addSlideBg(s);
  addHeaderBar(s, "Patient & Family Education", "Prevention & Health Teaching");
  addFooter(s, 19, 20);

  const educPoints = [
    { cat: "Hygiene", icon: "🧼", points: ["Wipe front to back after toileting", "Keep perineal area clean and dry", "Wear cotton, breathable underwear", "Avoid douching or perfumed products"] },
    { cat: "Hydration", icon: "💧", points: ["Drink 8–10 glasses of water daily", "Cranberry juice may reduce adhesion of bacteria", "Avoid caffeine, alcohol (bladder irritants)", "Do not withhold fluids to reduce frequency"] },
    { cat: "Voiding Habits", icon: "🚽", points: ["Void every 3–4 hours; do not delay urination", "Void before and after sexual intercourse", "Practice complete bladder emptying", "Avoid tight-fitting clothing"] },
    { cat: "Medication", icon: "💊", points: ["Complete FULL antibiotic course — never stop early", "Take medications on schedule", "Report side effects promptly to nurse/doctor", "Do not self-medicate for UTI symptoms"] },
    { cat: "Follow-up", icon: "📋", points: ["Return for urine culture after treatment", "Report recurrence: fever, pain, blood in urine", "Attend regular antenatal visits if pregnant", "Annual check-up for recurrent UTI patients"] },
    { cat: "Diet", icon: "🥗", points: ["Increase Vitamin C rich foods (acidifies urine)", "Avoid spicy foods during active infection", "Probiotics may help restore normal flora", "Maintain healthy body weight"] },
  ];

  educPoints.forEach((ep, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.3 + col * 3.2;
    const y = 1.12 + row * 2.05;

    s.addShape(pres.ShapeType.rect, { x, y, w: 3.05, h: 1.95, fill: { color: C.white }, line: { color: C.medBlue, w: 1 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.05, h: 0.42, fill: { color: C.darkBlue }, line: { color: C.darkBlue } });
    s.addText(`${ep.icon}  ${ep.cat}`, { x: x + 0.08, y, w: 2.9, h: 0.42, fontSize: 12, bold: true, color: C.white, valign: "middle" });
    ep.points.forEach((pt, j) => {
      s.addText(`• ${pt}`, { x: x + 0.1, y: y + 0.46 + j * 0.365, w: 2.85, h: 0.36, fontSize: 10, color: C.textDark, fontFace: "Calibri" });
    });
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SLIDE 20 – SUMMARY / CONCLUSION
// ──────────────────────────────────────────────────────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBlue }, line: { color: C.darkBlue } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.25, h: "100%", fill: { color: C.accentTeal }, line: { color: C.accentTeal } });
  s.addShape(pres.ShapeType.rect, { x: 9.75, y: 0, w: 0.25, h: "100%", fill: { color: C.gold }, line: { color: C.gold } });

  s.addText("Key Takeaways", {
    x: 0.4, y: 0.15, w: 9.2, h: 0.6,
    fontSize: 26, bold: true, color: C.white, align: "center", fontFace: "Calibri"
  });

  const summary = [
    "UTI is one of the most common bacterial infections; E. coli causes 80–85% of cases",
    "Women are more susceptible due to shorter urethra and proximity to rectum",
    "Classification: Lower (cystitis) vs Upper (pyelonephritis); Uncomplicated vs Complicated",
    "Clinical presentation: dysuria, frequency, urgency, hematuria ± fever & flank pain",
    "Diagnosis: Urine R/E + urine culture & sensitivity (≥10⁵ CFU/mL = significant bacteriuria)",
    "Treatment: Appropriate antibiotics based on culture; adequate hydration; pain management",
    "Nursing priorities: Pain relief, fluid balance, patient education, infection prevention",
    "Patient education on hygiene, fluid intake, voiding habits, and medication compliance is key",
    "Early treatment prevents spread to kidneys and life-threatening urosepsis",
  ];

  summary.forEach((item, i) => {
    s.addShape(pres.ShapeType.rect, {
      x: 0.4, y: 0.85 + i * 0.5, w: 0.4, h: 0.4,
      fill: { color: C.accentTeal }, line: { color: C.accentTeal }
    });
    s.addText(`${i + 1}`, { x: 0.4, y: 0.85 + i * 0.5, w: 0.4, h: 0.4, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(item, {
      x: 0.9, y: 0.87 + i * 0.5, w: 8.6, h: 0.38,
      fontSize: 11, color: C.white, fontFace: "Calibri", valign: "middle"
    });
  });

  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: "100%", h: 0.375, fill: { color: C.accentTeal }, line: { color: C.accentTeal } });
  s.addText("Pokhara Academy of Health Sciences  |  B.Sc. Nursing 2nd Year  |  Thank You", {
    x: 0, y: 5.25, w: "100%", h: 0.375, fontSize: 10, color: C.white, align: "center", valign: "middle"
  });
}

// ──────────────────────────────────────────────────────────────────────────
// SAVE
// ──────────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/uti-presentation/UTI_Nursing_Presentation_PAHS.pptx" })
  .then(() => console.log("PPTX created successfully!"))
  .catch(err => console.error("Error:", err));
Running Command

cd /home/daytona/workspace/uti-presentation && node build_uti_pptx.js 2>&1

Running Command

ls -lh /home/daytona/workspace/uti-presentation/

Your presentation is ready! Download it here:

UTI Nursing Presentation PAHS

Presentation · PPTX


What's Inside (20 Slides)

The presentation is built with a professional dark-blue and teal medical color palette, tailored for Pokhara Academy of Health Sciences, B.Sc. Nursing 2nd Year.
SlideContent
1Title Slide - Institutional branding, PAHS identity
2Table of Contents
3Introduction & Definition - UTI definition, epidemiology, global incidence
4Anatomy of Urinary System - Kidneys, ureters, bladder, urethra; why women are more susceptible
5Classification of UTI - Lower vs Upper, Uncomplicated vs Complicated, Recurrent, CAUTI
6Etiology / Causative Organisms - E. coli (80-85%), Klebsiella, Proteus, Enterococcus with frequency table
7Pathophysiology - 5-step ascending infection mechanism with the Robbins textbook diagram
8Clinical History & Symptoms - Full history-taking framework; lower vs upper UTI symptom comparison
9Cystitis Mechanism Diagram - Visual figure of bacterial bladder infection with explanatory notes
10Investigations & Diagnosis - Urine R/E, culture & sensitivity (gold standard), CBC, imaging
11Medical Management Table - Antibiotics by UTI type, dose, duration
12Supportive Management - Hydration, catheter care, special populations (pregnant, elderly, diabetic)
13Complications - Pyelonephritis, urosepsis, renal abscess, CKD, urolithiasis
14Nursing Assessment - Subjective data (history) + Objective data (physical exam)
15Nursing Diagnoses - 6 NANDA diagnoses with "related to" and "as evidenced by"
16Interventions & Rationale - ND 1 (Acute Pain) + ND 2 (Impaired Urinary Elimination)
17Interventions & Rationale - ND 3 (Hyperthermia) + ND 4 (Knowledge Deficit) + ND 5 (Risk for Spread)
18Evaluation - Expected outcomes with checkboxes for each nursing diagnosis
19Patient & Family Education - 6 categories: Hygiene, Hydration, Voiding, Medication, Follow-up, Diet
20Summary & Key Takeaways - 9-point summary on dark background
Medical content is sourced from Robbins Basic Pathology, Brenner & Rector's The Kidney, and ROSEN's Emergency Medicine.
This is a shared conversation. Sign in to Orris to start your own chat.