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 .
urinary tract infection anatomy diagram figures clinical presentation nursing management
ls /home/daytona/workspace/ && mkdir -p /home/daytona/workspace/uti-presentation
~/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));
cd /home/daytona/workspace/uti-presentation && node build_uti_pptx.js 2>&1
ls -lh /home/daytona/workspace/uti-presentation/
UTI Nursing Presentation PAHS
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title Slide - Institutional branding, PAHS identity |
| 2 | Table of Contents |
| 3 | Introduction & Definition - UTI definition, epidemiology, global incidence |
| 4 | Anatomy of Urinary System - Kidneys, ureters, bladder, urethra; why women are more susceptible |
| 5 | Classification of UTI - Lower vs Upper, Uncomplicated vs Complicated, Recurrent, CAUTI |
| 6 | Etiology / Causative Organisms - E. coli (80-85%), Klebsiella, Proteus, Enterococcus with frequency table |
| 7 | Pathophysiology - 5-step ascending infection mechanism with the Robbins textbook diagram |
| 8 | Clinical History & Symptoms - Full history-taking framework; lower vs upper UTI symptom comparison |
| 9 | Cystitis Mechanism Diagram - Visual figure of bacterial bladder infection with explanatory notes |
| 10 | Investigations & Diagnosis - Urine R/E, culture & sensitivity (gold standard), CBC, imaging |
| 11 | Medical Management Table - Antibiotics by UTI type, dose, duration |
| 12 | Supportive Management - Hydration, catheter care, special populations (pregnant, elderly, diabetic) |
| 13 | Complications - Pyelonephritis, urosepsis, renal abscess, CKD, urolithiasis |
| 14 | Nursing Assessment - Subjective data (history) + Objective data (physical exam) |
| 15 | Nursing Diagnoses - 6 NANDA diagnoses with "related to" and "as evidenced by" |
| 16 | Interventions & Rationale - ND 1 (Acute Pain) + ND 2 (Impaired Urinary Elimination) |
| 17 | Interventions & Rationale - ND 3 (Hyperthermia) + ND 4 (Knowledge Deficit) + ND 5 (Risk for Spread) |
| 18 | Evaluation - Expected outcomes with checkboxes for each nursing diagnosis |
| 19 | Patient & Family Education - 6 categories: Hygiene, Hydration, Voiding, Medication, Follow-up, Diet |
| 20 | Summary & Key Takeaways - 9-point summary on dark background |