explain me 93rd chapter of campbell in simple language all points. management of upper urinary tract obstruction
Campbell Walsh Urology chapter 93 upper urinary tract obstruction management
| Test | What It Shows | When Used |
|---|---|---|
| Ultrasound (US) | Dilated kidney (hydronephrosis), cysts, stones | First test - quick, no radiation, cheap |
| CT scan (non-contrast) | Stones - gold standard | Best for suspected stones |
| CT with contrast (CT urogram) | Full detail of urinary tract, tumors, anatomy | When cause unclear |
| Nuclear Renography (MAG-3 scan) | Split kidney function + drainage | Best for assessing functional significance of obstruction |
| MRI Urography | Detailed anatomy without radiation | Useful in pregnancy, children |
| Excretory Urography (IVP) | Old standard - now largely replaced by CT | Rarely used now |
| Whitaker Test | Pressure-flow measurement via nephrostomy | When nuclear scan is equivocal - invasive |
| Retrograde Pyelography | Fills ureter/pelvis from below (cystoscopy) | When endoscopic intervention also planned |
| Antegrade Pyelography | Fills ureter from above (nephrostomy) | After percutaneous access |
| Factor | Role |
|---|---|
| TGF-β1 (Transforming Growth Factor-beta 1) | The main driver of fibrosis - stimulates scar tissue formation |
| TNF-α (Tumor Necrosis Factor-alpha) | Promotes inflammation and tubular cell death |
| Interleukin-18 (IL-18) | Promotes inflammation; elevated in urine = marker of injury |
| Angiotensin II | Causes vasoconstriction AND stimulates TGF-β production |
| Time Phase | Blood Flow Change |
|---|---|
| 0-2 hours | INCREASES (prostaglandin E2 and nitric oxide dilate afferent arterioles) |
| 3-4 hours | Starts to DECREASE |
| >5 hours | Markedly DECLINES |
| Topic | Key Point |
|---|---|
| Obstruction definition | Blockage that damages kidney function - dilation alone is NOT obstruction |
| Most common site | UPJ (ureteropelvic junction) |
| First imaging test | Ultrasound |
| Best functional test | MAG-3 diuretic renography |
| Renal blood flow in UUO | Increases first 1-2 hrs, then decreases after 3-5 hrs |
| Renal blood flow in BUO | Modest increase for 2 hrs then profound fall |
| Post-obstructive diuresis | Replace ~half urine output; monitor electrolytes |
| Main cause of fibrosis | TGF-β1 |
| Infected obstruction | Urological emergency - drain immediately |
| Gold standard for UPJ repair | Dismembered pyeloplasty (laparoscopic/robotic) |
| Stent vs. PCN | PCN preferred in sepsis; stent for stable patients |
| Tamsulosin (alpha-blocker) | Helps stones ≤10mm pass spontaneously |
Make a summary presentation (PPTX) on upper urinary tract obstruction
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty"
mkdir -p /home/daytona/workspace/uut-obstruction-pptx
~/uut-obstruction-pptx/create_pptx.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Management of Upper Urinary Tract Obstruction";
pres.author = "Campbell Walsh Wein Urology";
// ── PALETTE ──────────────────────────────────────────────────────────────
const DARK_BG = "0D2137"; // deep navy – title / section dividers
const MID_BG = "102A4C"; // medium navy – content slides bg
const ACCENT = "2E86DE"; // vivid blue – headings, accents
const ACCENT2 = "1ABC9C"; // teal – highlights, icons
const LIGHT_BG = "F0F4F8"; // very light blue-grey – content area
const WHITE = "FFFFFF";
const DARK_TEXT = "1A2C42";
const BODY_TEXT = "2C3E50";
const ORANGE = "E67E22"; // for warnings / emergencies
const RED = "C0392B"; // emergency
const LIGHT_ACCENT = "D6EAF8"; // soft blue fill for cards
// ── HELPER FUNCTIONS ─────────────────────────────────────────────────────
function addSlideBg(slide, color) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: color }, line: { color: color }
});
}
function addTopBar(slide, color) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: "100%", h: 0.08,
fill: { color: color }, line: { color: color }
});
}
function addBottomBar(slide, label) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.35, w: "100%", h: 0.28,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
slide.addText(label, {
x: 0.3, y: 5.35, w: 9.4, h: 0.28,
fontSize: 8, color: "AABBCC", align: "left", valign: "middle", margin: 0
});
slide.addText("Campbell Walsh Wein Urology – Ch. 93", {
x: 0.3, y: 5.35, w: 9.4, h: 0.28,
fontSize: 8, color: "AABBCC", align: "right", valign: "middle", margin: 0
});
}
function addSectionHeading(slide, text) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y: 0.18, w: 4.5, h: 0.06,
fill: { color: ACCENT2 }, line: { color: ACCENT2 }
});
slide.addText(text, {
x: 0.4, y: 0.26, w: 9.2, h: 0.55,
fontSize: 22, bold: true, color: ACCENT, fontFace: "Calibri",
margin: 0
});
}
function bulletItem(text, indent, bold) {
return {
text: text,
options: {
bullet: { indent: indent || 15 },
breakLine: true,
bold: bold || false,
fontSize: 13,
color: BODY_TEXT
}
};
}
function subBullet(text) {
return {
text: text,
options: {
bullet: { indent: 30 },
breakLine: true,
fontSize: 11.5,
color: "4A6785"
}
};
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, DARK_BG);
// Decorative diagonal band
s.addShape(pres.shapes.RECTANGLE, {
x: 7.2, y: 0, w: 2.8, h: 5.625,
fill: { color: "0A1B2E", transparency: 0 }, line: { color: "0A1B2E" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 4.9, w: "100%", h: 0.725,
fill: { color: ACCENT }, line: { color: ACCENT }
});
// Kidney icon (text emoji as visual placeholder)
s.addText("🫘", {
x: 7.4, y: 0.6, w: 2.3, h: 2.5,
fontSize: 90, align: "center", valign: "middle"
});
s.addText("MANAGEMENT OF", {
x: 0.5, y: 0.8, w: 6.6, h: 0.5,
fontSize: 14, bold: false, color: ACCENT2, charSpacing: 5,
fontFace: "Calibri", margin: 0
});
s.addText("Upper Urinary\nTract Obstruction", {
x: 0.5, y: 1.2, w: 6.5, h: 2.0,
fontSize: 38, bold: true, color: WHITE, fontFace: "Calibri",
lineSpacingMultiple: 1.1
});
s.addText("Campbell Walsh Wein Urology | Chapter 93", {
x: 0.5, y: 3.3, w: 6.5, h: 0.4,
fontSize: 13, color: "8AAFC8", fontFace: "Calibri"
});
s.addText("Pathophysiology · Diagnosis · Management", {
x: 0.5, y: 4.92, w: 9, h: 0.72,
fontSize: 15, bold: false, color: WHITE, align: "left",
valign: "middle", fontFace: "Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – OVERVIEW / AGENDA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, LIGHT_BG);
addTopBar(s, ACCENT);
s.addText("Chapter Overview", {
x: 0.4, y: 0.2, w: 9.2, h: 0.55,
fontSize: 24, bold: true, color: DARK_TEXT, fontFace: "Calibri", margin: 0
});
const topics = [
["1", "Definition & Prevalence"],
["2", "Clinical Presentation"],
["3", "Diagnosis & Imaging"],
["4", "Pathological Changes"],
["5", "Hemodynamic Changes"],
["6", "Tubular Function & Recovery"],
["7", "Causes of Obstruction"],
["8", "Management Principles"],
["9", "UPJ Obstruction Treatment"],
["10", "Special Situations"],
];
const cols = [topics.slice(0, 5), topics.slice(5)];
cols.forEach((col, ci) => {
col.forEach((item, ri) => {
const x = 0.5 + ci * 4.7;
const y = 0.95 + ri * 0.84;
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 4.3, h: 0.72,
fill: { color: WHITE },
line: { color: "C5D8EC", pt: 1 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.08 }
});
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 0.38, h: 0.72,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText(item[0], {
x, y, w: 0.38, h: 0.72,
fontSize: 13, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText(item[1], {
x: x + 0.44, y, w: 3.8, h: 0.72,
fontSize: 12.5, color: DARK_TEXT,
align: "left", valign: "middle", margin: 0
});
});
});
addBottomBar(s, "Overview");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – DEFINITION & PREVALENCE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Definition & Prevalence");
// Left column – definition box
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.95, w: 4.5, h: 2.35,
fill: { color: DARK_BG }, line: { color: DARK_BG },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.2 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.95, w: 4.5, h: 0.45,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("DEFINITION", {
x: 0.35, y: 0.95, w: 4.5, h: 0.45,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 3, margin: 0
});
s.addText([
{ text: "A blockage that impairs urine drainage ", options: { color: WHITE, fontSize: 12, breakLine: false } },
{ text: "AND causes / is likely to cause kidney damage", options: { color: ACCENT2, fontSize: 12, bold: true, breakLine: true } },
{ text: " ", options: { breakLine: true, fontSize: 8 } },
{ text: "⚠ Hydronephrosis ≠ Obstruction", options: { color: ORANGE, fontSize: 12.5, bold: true, breakLine: true } },
{ text: "Dilation alone does not confirm obstruction", options: { color: "AABBCC", fontSize: 11, breakLine: false } },
], {
x: 0.5, y: 1.45, w: 4.2, h: 1.75, valign: "top"
});
// Right column – prevalence
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.95, w: 4.5, h: 2.35,
fill: { color: LIGHT_ACCENT }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.95, w: 4.5, h: 0.45,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("PREVALENCE", {
x: 5.15, y: 0.95, w: 4.5, h: 0.45,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 3, margin: 0
});
s.addText([
bulletItem("Detected more commonly due to routine prenatal ultrasound"),
bulletItem("UPJ obstruction = most common cause of hydronephrosis in children"),
bulletItem("Can be congenital or acquired"),
bulletItem("Often asymptomatic – risk of silent kidney loss"),
], { x: 5.3, y: 1.48, w: 4.2, h: 1.75, valign: "top" });
// Bottom row – UPJ anatomy note
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 3.42, w: 9.3, h: 1.7,
fill: { color: "EBF5FB" }, line: { color: "C5D8EC" }
});
s.addText("Most Common Sites of Obstruction", {
x: 0.5, y: 3.48, w: 9, h: 0.38,
fontSize: 13, bold: true, color: ACCENT, margin: 0
});
const sites = [
["UPJ\n(Ureteropelvic Jn.)", "Most common\ncongenital site"],
["Mid-ureter\n(Crossing vessels)", "Aberrant renal\nartery compression"],
["UVJ\n(Ureterovesical Jn.)", "Common in ureterocele\nor ureter reimplant"],
["Intraureteral\n(Stones / Stricture)", "Most common\nacquired cause"],
];
sites.forEach((item, i) => {
const x = 0.5 + i * 2.35;
s.addShape(pres.shapes.RECTANGLE, {
x, y: 3.9, w: 2.1, h: 1.05,
fill: { color: WHITE }, line: { color: ACCENT, pt: 1.5 }
});
s.addShape(pres.shapes.RECTANGLE, {
x, y: 3.9, w: 2.1, h: 0.28,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText(item[0], {
x, y: 3.9, w: 2.1, h: 0.28,
fontSize: 9, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText(item[1], {
x, y: 4.18, w: 2.1, h: 0.77,
fontSize: 10, color: DARK_TEXT,
align: "center", valign: "middle"
});
});
addBottomBar(s, "Definition & Prevalence");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – CLINICAL PRESENTATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Clinical Presentation");
// Adults box
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.92, w: 4.5, h: 3.3,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.92, w: 4.5, h: 0.42,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("IN ADULTS", {
x: 0.35, y: 0.92, w: 4.5, h: 0.42,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Flank / colicky pain (comes in waves, radiates to groin)", 18),
bulletItem("Nausea & vomiting with pain", 18),
bulletItem("Hematuria – especially with stones", 18),
bulletItem("Recurrent UTIs", 18),
bulletItem("Hypertension", 18),
bulletItem("Silent obstruction – no pain but progressive renal loss", 18, true),
], { x: 0.5, y: 1.4, w: 4.2, h: 2.75, valign: "top" });
// Children box
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.92, w: 4.5, h: 3.3,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.92, w: 4.5, h: 0.42,
fill: { color: ACCENT2 }, line: { color: ACCENT2 }
});
s.addText("IN CHILDREN", {
x: 5.15, y: 0.92, w: 4.5, h: 0.42,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Palpable abdominal / flank mass", 18),
bulletItem("Failure to thrive", 18),
bulletItem("Recurrent UTIs", 18),
bulletItem("Detected on prenatal ultrasound (before symptoms)", 18, true),
subBullet("Most common presentation today"),
bulletItem("Progressive hydronephrosis on follow-up scans", 18),
], { x: 5.3, y: 1.4, w: 4.2, h: 2.75, valign: "top" });
// Warning banner
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 4.35, w: 9.3, h: 0.85,
fill: { color: "FEF9E7" }, line: { color: ORANGE, pt: 1.5 }
});
s.addText([
{ text: "⚠ KEY POINT: ", options: { bold: true, color: ORANGE, fontSize: 13 } },
{ text: "Progressive renal dysfunction can occur silently. Obstruction must be evaluated even without symptoms because irreversible kidney damage may develop without any pain.", options: { color: BODY_TEXT, fontSize: 12 } }
], { x: 0.55, y: 4.35, w: 9.0, h: 0.85, valign: "middle" });
addBottomBar(s, "Clinical Presentation");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – DIAGNOSIS & IMAGING
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Diagnosis & Imaging");
// Lab studies
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 3.0, h: 2.5,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 3.0, h: 0.38,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("LAB STUDIES", {
x: 0.35, y: 0.88, w: 3.0, h: 0.38,
fontSize: 11, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Serum Cr / BUN / eGFR", 14),
subBullet("Overall kidney function"),
bulletItem("Urinalysis", 14),
subBullet("Blood, WBC, casts"),
bulletItem("FENa", 14),
subBullet("<1% = pre-renal / obstruction"),
subBullet(">1% = tubular injury"),
bulletItem("NGAL, KIM-1, Cystatin C", 14),
subBullet("Novel biomarkers (research stage)"),
], { x: 0.45, y: 1.3, w: 2.8, h: 2.05, valign: "top" });
// Imaging table
const imgRows = [
["Ultrasound (US)", "First-line test – finds hydronephrosis, stones, cysts. No radiation.", ACCENT2],
["Non-contrast CT", "Gold standard for stones. Detects size & location.", ACCENT],
["CT Urogram", "Full anatomy, tumors, cause unclear cases.", ACCENT],
["MAG-3 Renography", "Split renal function + drainage curves. t½ >20 min = obstructed.", "8E44AD"],
["MRI Urography", "No radiation. For pregnancy, children, contrast allergy.", "16A085"],
["Whitaker Test", "Pressure-flow via nephrostomy. Invasive – when renogram equivocal.", ORANGE],
["Retrograde Pyelo.", "Via cystoscopy – when endoscopic intervention also planned.", "2E86DE"],
];
s.addShape(pres.shapes.RECTANGLE, {
x: 3.6, y: 0.88, w: 6.05, h: 0.38,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
s.addText("IMAGING MODALITY", {
x: 3.65, y: 0.88, w: 2.9, h: 0.38,
fontSize: 10, bold: true, color: WHITE,
align: "left", valign: "middle", margin: 0
});
s.addText("KEY ROLE", {
x: 6.55, y: 0.88, w: 3.05, h: 0.38,
fontSize: 10, bold: true, color: WHITE,
align: "left", valign: "middle", margin: 0
});
imgRows.forEach((row, i) => {
const y = 1.3 + i * 0.48;
const bg = i % 2 === 0 ? LIGHT_BG : WHITE;
s.addShape(pres.shapes.RECTANGLE, {
x: 3.6, y, w: 6.05, h: 0.46,
fill: { color: bg }, line: { color: "D5E8F5", pt: 0.5 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 3.6, y, w: 0.06, h: 0.46,
fill: { color: row[2] }, line: { color: row[2] }
});
s.addText(row[0], {
x: 3.72, y, w: 2.78, h: 0.46,
fontSize: 10.5, bold: true, color: DARK_TEXT,
align: "left", valign: "middle", margin: 0
});
s.addText(row[1], {
x: 6.55, y, w: 3.05, h: 0.46,
fontSize: 9.5, color: BODY_TEXT,
align: "left", valign: "middle", margin: 0
});
});
// Workflow note
s.addShape(pres.shapes.RECTANGLE, {
x: 3.6, y: 4.66, w: 6.05, h: 0.6,
fill: { color: "EAF2FF" }, line: { color: ACCENT }
});
s.addText([
{ text: "Imaging Workflow: ", options: { bold: true, color: ACCENT, fontSize: 11 } },
{ text: "Ultrasound → CT (stone?) → MAG-3 Renography (functional significance?)", options: { color: BODY_TEXT, fontSize: 11 } }
], { x: 3.72, y: 4.66, w: 5.85, h: 0.6, valign: "middle" });
addBottomBar(s, "Diagnosis & Imaging");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – PATHOLOGICAL CHANGES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Pathological Changes of Obstruction");
// Left – mature kidney
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 4.5, h: 3.6,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 4.5, h: 0.42,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("MATURE (ADULT) KIDNEY", {
x: 0.35, y: 0.88, w: 4.5, h: 0.42,
fontSize: 11, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
const matureSteps = [
"Tubular dilation – tubules fill & stretch",
"Tubular atrophy – cells die off",
"Glomerular damage – filters impaired",
"Interstitial fibrosis – irreversible scar tissue",
"Nephron loss – kidney shrinks",
];
matureSteps.forEach((text, i) => {
const y = 1.42 + i * 0.6;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.48, y, w: 0.4, h: 0.4,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText(String(i + 1), {
x: 0.48, y, w: 0.4, h: 0.4,
fontSize: 13, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText(text, {
x: 0.98, y, w: 3.75, h: 0.4,
fontSize: 11.5, color: DARK_TEXT,
align: "left", valign: "middle", margin: 0
});
});
// Right – developing kidney
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.88, w: 4.5, h: 3.6,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.88, w: 4.5, h: 0.42,
fill: { color: "8E44AD" }, line: { color: "8E44AD" }
});
s.addText("DEVELOPING (FETAL) KIDNEY", {
x: 5.15, y: 0.88, w: 4.5, h: 0.42,
fontSize: 11, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Far more vulnerable than adult kidney", 18, true),
bulletItem("Disrupts normal growth & differentiation", 18),
bulletItem("Can lead to renal dysplasia (abnormal development)", 18),
bulletItem("Earlier the obstruction → worse the outcome", 18, true),
bulletItem("Key mediator: TGF-β1 drives fibrosis", 18),
], { x: 5.3, y: 1.38, w: 4.2, h: 3.0, valign: "top" });
// Bottom fibrosis key
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 4.6, w: 9.3, h: 0.7,
fill: { color: "FDFEFE" }, line: { color: RED, pt: 1.5 }
});
s.addText([
{ text: "❗ Tubulointerstitial Fibrosis: ", options: { bold: true, color: RED, fontSize: 12 } },
{ text: "Once fibrosis sets in, relief of obstruction may NOT reverse kidney damage. Key drivers: ", options: { color: BODY_TEXT, fontSize: 11.5 } },
{ text: "TGF-β1, TNF-α, Angiotensin II, IL-18", options: { bold: true, color: ACCENT, fontSize: 11.5 } }
], { x: 0.5, y: 4.6, w: 9.1, h: 0.7, valign: "middle" });
addBottomBar(s, "Pathological Changes");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – HEMODYNAMIC CHANGES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Hemodynamic & Tubular Changes");
// UUO timeline
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 9.3, h: 0.38,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
s.addText("UNILATERAL URETERAL OBSTRUCTION (UUO) – Blood Flow Timeline", {
x: 0.35, y: 0.88, w: 9.3, h: 0.38,
fontSize: 11, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
const phases = [
{ label: "0–2 hrs", desc: "INCREASES\n(PGE2 & NO\ndilate arterioles)", color: ACCENT2 },
{ label: "3–4 hrs", desc: "Starts to\nDECREASE", color: ORANGE },
{ label: ">5 hrs", desc: "MARKEDLY\nDECLINES\n(RAS activated)", color: RED },
{ label: "Chronic", desc: "Afferent arteriole\nvasoconstriction\n↓ GFR", color: "8B0000" },
];
phases.forEach((p, i) => {
const x = 0.45 + i * 2.35;
s.addShape(pres.shapes.RECTANGLE, {
x, y: 1.32, w: 2.15, h: 1.4,
fill: { color: p.color }, line: { color: p.color }
});
s.addText(p.label, {
x, y: 1.32, w: 2.15, h: 0.38,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText(p.desc, {
x, y: 1.7, w: 2.15, h: 1.02,
fontSize: 11, color: WHITE,
align: "center", valign: "top"
});
});
// BUO row
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 2.84, w: 9.3, h: 0.35,
fill: { color: "4A235A" }, line: { color: "4A235A" }
});
s.addText("BILATERAL URETERAL OBSTRUCTION (BUO)", {
x: 0.35, y: 2.84, w: 9.3, h: 0.35,
fontSize: 11, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText([
bulletItem("Modest increase in RBF for ~2 hours, then PROFOUND & RAPID DECLINE", 18, true),
bulletItem("More clinically dangerous – both kidneys failing simultaneously", 18),
bulletItem("Blood flow shifts toward OUTER cortex (opposite of UUO)", 18),
bulletItem("Presents as acute kidney injury (AKI) – urgent intervention required", 18, true),
], { x: 0.5, y: 3.24, w: 9.0, h: 1.05, valign: "top" });
// Post-obstructive diuresis
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 4.36, w: 9.3, h: 0.9,
fill: { color: "EAF2FF" }, line: { color: ACCENT }
});
s.addText([
{ text: "Post-Obstructive Diuresis (after BUO relief): ", options: { bold: true, color: ACCENT, fontSize: 12 } },
{ text: "Large urine output after obstruction is relieved. Usually physiological. Management: replace ", options: { color: BODY_TEXT, fontSize: 11.5 } },
{ text: "~half the urine output per hour", options: { bold: true, color: ACCENT, fontSize: 11.5 } },
{ text: " with 0.45% NS. Monitor Na⁺, K⁺, HCO₃⁻ closely.", options: { color: BODY_TEXT, fontSize: 11.5 } }
], { x: 0.5, y: 4.36, w: 9.1, h: 0.9, valign: "middle" });
addBottomBar(s, "Hemodynamic Changes");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – RENAL FUNCTION RECOVERY
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Recovery of Renal Function");
// Recovery timeline bars
const recoveryData = [
{ dur: "1 week", pct: 90, label: "~90% recovery" },
{ dur: "2 weeks", pct: 70, label: "~70% recovery" },
{ dur: "4 weeks", pct: 30, label: "~30% recovery" },
{ dur: "6 weeks", pct: 10, label: "<10% recovery" },
];
s.addText("Expected Recovery After COMPLETE Obstruction Relief", {
x: 0.4, y: 0.9, w: 9.2, h: 0.38,
fontSize: 14, bold: true, color: DARK_TEXT, margin: 0
});
const barColors = [ACCENT2, ACCENT, ORANGE, RED];
recoveryData.forEach((d, i) => {
const y = 1.38 + i * 0.7;
const barW = 5.5 * (d.pct / 100);
s.addShape(pres.shapes.RECTANGLE, {
x: 2.2, y, w: 5.5, h: 0.5,
fill: { color: "EBF5FB" }, line: { color: "D5E8F5" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 2.2, y, w: barW, h: 0.5,
fill: { color: barColors[i] }, line: { color: barColors[i] }
});
s.addText(d.dur, {
x: 0.4, y, w: 1.75, h: 0.5,
fontSize: 12, bold: true, color: DARK_TEXT,
align: "right", valign: "middle", margin: 0
});
s.addText(d.label, {
x: 7.82, y, w: 1.8, h: 0.5,
fontSize: 12, bold: true, color: barColors[i],
align: "left", valign: "middle", margin: 0
});
});
// Factors affecting recovery
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 4.2, w: 9.3, h: 1.05,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addText("Factors Affecting Recovery:", {
x: 0.5, y: 4.23, w: 3, h: 0.35,
fontSize: 12, bold: true, color: ACCENT, margin: 0
});
const factors = [
"Duration of obstruction",
"Degree (partial vs. complete)",
"Presence of infection",
"Patient age",
"Pre-existing kidney disease",
];
factors.forEach((f, i) => {
const col = i < 3 ? 0 : 1;
const row = i < 3 ? i : i - 3;
s.addText("• " + f, {
x: 0.5 + col * 4.6, y: 4.6 + row * 0.22,
w: 4.5, h: 0.22,
fontSize: 11.5, color: BODY_TEXT
});
});
addBottomBar(s, "Recovery of Renal Function");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – CAUSES OF OBSTRUCTION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Causes of Upper Urinary Tract Obstruction");
// Intrinsic
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 4.5, h: 3.65,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 4.5, h: 0.42,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("INTRINSIC CAUSES", {
x: 0.35, y: 0.88, w: 4.5, h: 0.42,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Urinary stones (calculi) – most common acute cause", 18, true),
bulletItem("UPJ obstruction (congenital)", 18),
bulletItem("Urothelial carcinoma (TCC) of ureter/pelvis", 18),
bulletItem("Blood clots – post-trauma or procedure", 18),
bulletItem("Fungal bezoars – immunocompromised patients", 18),
bulletItem("Ureteral stricture – from:", 18),
subBullet("Previous stone passage / instrumentation"),
subBullet("Radiation therapy"),
subBullet("TB / schistosomiasis"),
subBullet("Post-surgical scarring"),
], { x: 0.5, y: 1.38, w: 4.2, h: 3.1, valign: "top" });
// Extrinsic
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.88, w: 4.5, h: 3.65,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.15, y: 0.88, w: 4.5, h: 0.42,
fill: { color: "8E44AD" }, line: { color: "8E44AD" }
});
s.addText("EXTRINSIC CAUSES", {
x: 5.15, y: 0.88, w: 4.5, h: 0.42,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Retroperitoneal fibrosis – wraps & compresses ureter", 18),
bulletItem("Pelvic malignancy:", 18, true),
subBullet("Cervical, ovarian, prostate, colorectal cancer"),
bulletItem("Lymphoma / lymph node metastases", 18),
bulletItem("Aberrant crossing vessels at UPJ", 18),
bulletItem("Pregnancy – right-sided physiological hydronephrosis", 18),
bulletItem("Aortic aneurysm", 18),
bulletItem("Pelvic inflammatory disease / abscess", 18),
], { x: 5.3, y: 1.38, w: 4.2, h: 3.1, valign: "top" });
// Bottom callout
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 4.65, w: 9.3, h: 0.6,
fill: { color: "EBF5FB" }, line: { color: ACCENT }
});
s.addText([
{ text: "Most common cause of ACUTE obstruction: ", options: { bold: true, color: ACCENT, fontSize: 12 } },
{ text: "Urinary stones | ", options: { color: BODY_TEXT, fontSize: 12 } },
{ text: "Most common cause of CHRONIC obstruction: ", options: { bold: true, color: "8E44AD", fontSize: 12 } },
{ text: "Stricture / Malignancy", options: { color: BODY_TEXT, fontSize: 12 } }
], { x: 0.5, y: 4.65, w: 9.1, h: 0.6, valign: "middle" });
addBottomBar(s, "Causes of Obstruction");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – MANAGEMENT PRINCIPLES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Management Principles");
// Goals
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 9.3, h: 0.88,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
s.addText("TREATMENT GOALS", {
x: 0.45, y: 0.88, w: 2, h: 0.88,
fontSize: 11, bold: true, color: ACCENT2,
charSpacing: 1, align: "left", valign: "middle", margin: 0
});
const goals = ["Relieve obstruction", "Preserve/recover kidney function", "Treat underlying cause", "Prevent complications (sepsis, fibrosis)"];
goals.forEach((g, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: 2.45 + i * 1.78, y: 0.95, w: 1.6, h: 0.74,
fill: { color: ACCENT }, line: { color: "1A6DAA" }
});
s.addText(g, {
x: 2.45 + i * 1.78, y: 0.95, w: 1.6, h: 0.74,
fontSize: 10, color: WHITE, align: "center", valign: "middle"
});
});
// Emergency section
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 1.9, w: 9.3, h: 0.36,
fill: { color: RED }, line: { color: RED }
});
s.addText("🚨 URGENT DECOMPRESSION REQUIRED WHEN:", {
x: 0.45, y: 1.9, w: 9.1, h: 0.36,
fontSize: 12, bold: true, color: WHITE,
align: "left", valign: "middle", margin: 0
});
const emergency = [
"Infected obstructed system (PYONEPHROSIS)",
"Bilateral obstruction with AKI",
"Solitary kidney obstruction",
"Urosepsis",
"Uncontrolled pain",
];
emergency.forEach((item, i) => {
const col = i < 3 ? 0 : 1;
const row = i < 3 ? i : i - 3;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.4 + col * 4.85, y: 2.3 + row * 0.38, w: 4.5, h: 0.34,
fill: { color: "FEF9E7" }, line: { color: ORANGE, pt: 0.8 }
});
s.addText("⚠ " + item, {
x: 0.5 + col * 4.85, y: 2.3 + row * 0.38, w: 4.3, h: 0.34,
fontSize: 11, color: DARK_TEXT, bold: i === 0,
align: "left", valign: "middle", margin: 0
});
});
// Two decompression methods
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 3.45, w: 9.3, h: 0.34,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("DECOMPRESSION METHODS", {
x: 0.35, y: 3.45, w: 9.3, h: 0.34,
fontSize: 11, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
const methods = [
{
title: "JJ (Double-J) Ureteral Stent",
pros: "Internal, no external bag, patient mobile",
cons: "Bladder irritation, stent colic, needs replacement q3-6mo",
best: "Stable patients, stones <10mm, strictures, malignant obstruction"
},
{
title: "Percutaneous Nephrostomy (PCN)",
pros: "Rapid, local anesthesia, excellent drainage",
cons: "External tube, dislodgment risk, discomfort",
best: "Septic/unstable patients, failed stenting, infected obstruction"
},
];
methods.forEach((m, i) => {
const x = 0.4 + i * 4.85;
s.addShape(pres.shapes.RECTANGLE, {
x, y: 3.84, w: 4.5, h: 1.4,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addText(m.title, {
x, y: 3.84, w: 4.5, h: 0.36,
fontSize: 11, bold: true, color: DARK_TEXT,
align: "center", valign: "middle", margin: 0
});
s.addText([
{ text: "✅ ", options: { color: ACCENT2, fontSize: 11 } },
{ text: m.pros, options: { color: BODY_TEXT, fontSize: 10.5, breakLine: true } },
{ text: "❌ ", options: { color: RED, fontSize: 11 } },
{ text: m.cons, options: { color: BODY_TEXT, fontSize: 10.5, breakLine: true } },
{ text: "★ Best for: ", options: { bold: true, color: ACCENT, fontSize: 10.5 } },
{ text: m.best, options: { color: BODY_TEXT, fontSize: 10.5 } },
], { x: x + 0.1, y: 4.22, w: 4.3, h: 1.0, valign: "top" });
});
addBottomBar(s, "Management Principles");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – UPJ OBSTRUCTION TREATMENT
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "UPJ Obstruction – Specific Treatment");
// Observation
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 9.3, h: 0.92,
fill: { color: "EBF5FB" }, line: { color: ACCENT }
});
s.addText([
{ text: "OBSERVATION (Conservative): ", options: { bold: true, color: ACCENT, fontSize: 13 } },
{ text: "Asymptomatic UPJ obstruction + preserved split function >40% + no complications → watchful waiting with serial ultrasound + renography every 6–12 months", options: { color: BODY_TEXT, fontSize: 12 } }
], { x: 0.5, y: 0.88, w: 9.1, h: 0.92, valign: "middle" });
// Pyeloplasty – main box
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 1.9, w: 5.5, h: 2.85,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 1.9, w: 5.5, h: 0.42,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText("PYELOPLASTY (Gold Standard)", {
x: 0.35, y: 1.9, w: 5.5, h: 0.42,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Anderson-Hynes dismembered pyeloplasty", 18, true),
bulletItem("Laparoscopic or robotic approach (open rarely done now)", 18),
bulletItem("Success rate: ~90–95%", 18, true),
bulletItem("Narrowed segment excised, ureter reconnected widely", 18),
bulletItem("Crossing vessels transposed if causing obstruction", 18),
bulletItem("Best for: Primary UPJ obstruction, crossing vessels present", 18),
], { x: 0.5, y: 2.38, w: 5.2, h: 2.3, valign: "top" });
// Endopyelotomy box
s.addShape(pres.shapes.RECTANGLE, {
x: 6.05, y: 1.9, w: 3.6, h: 2.85,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 6.05, y: 1.9, w: 3.6, h: 0.42,
fill: { color: "E67E22" }, line: { color: "E67E22" }
});
s.addText("ENDOPYELOTOMY", {
x: 6.05, y: 1.9, w: 3.6, h: 0.42,
fontSize: 12, bold: true, color: WHITE,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText([
bulletItem("Endoscopic incision of UPJ stricture", 18),
bulletItem("Retrograde (ureteroscopy) or antegrade (percutaneous)", 18),
bulletItem("Success: ~65–75% (lower than pyeloplasty)", 18, true),
bulletItem("Best for: Secondary UPJ obstruction / recurrence after pyeloplasty, NO crossing vessels", 18),
], { x: 6.18, y: 2.38, w: 3.35, h: 2.3, valign: "top" });
// Stone MET row
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 4.87, w: 9.3, h: 0.42,
fill: { color: ACCENT2 }, line: { color: ACCENT2 }
});
s.addText("MEDICAL EXPULSIVE THERAPY (Stones ≤10mm): Tamsulosin 0.4mg OD → relaxes ureteral smooth muscle → helps stone pass spontaneously within 4–6 weeks", {
x: 0.5, y: 4.87, w: 9.1, h: 0.42,
fontSize: 11, color: WHITE, align: "left", valign: "middle", margin: 0
});
addBottomBar(s, "UPJ Obstruction Treatment");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – MANAGEMENT BY CAUSE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Management by Specific Cause");
const rows = [
{ cause: "Stone <10mm\n(distal ureter)", tx: "Medical expulsive therapy (tamsulosin). Observe up to 4–6 wks. NSAIDs for pain.", color: ACCENT2 },
{ cause: "Stone >10mm\nor proximal", tx: "Ureteroscopy + holmium laser lithotripsy (break up stone).", color: ACCENT },
{ cause: "Large renal\nstones >2cm", tx: "PCNL (Percutaneous Nephrolithotomy) – go directly into kidney.", color: "8E44AD" },
{ cause: "Infected + obstructed\nstone", tx: "EMERGENCY: Drain first (PCN or stent) + IV antibiotics. Elective stone removal later.", color: RED },
{ cause: "Ureteral stricture\n(<1–2cm)", tx: "Endoscopic balloon dilation or endoureterotomy (incision).", color: ORANGE },
{ cause: "Long ureteral\nstricture", tx: "Ureteral reimplant / Boari flap / ileal ureter / autotransplantation.", color: "D35400" },
{ cause: "Retroperitoneal\nfibrosis", tx: "Steroids (prednisolone) + ureteral stenting. Ureterolysis + omentum wrapping if needed.", color: "16A085" },
{ cause: "Malignant\nobstruction", tx: "Metal ureteral stent (longer patency) or PCN. Treat underlying cancer.", color: "2C3E50" },
{ cause: "Pregnancy\n(symptomatic)", tx: "Hydration + safe analgesia first. JJ stent or PCN if fails. Avoid CT – use US.", color: "2980B9" },
];
rows.forEach((row, i) => {
const col = i % 3;
const r = Math.floor(i / 3);
const x = 0.35 + col * 3.2;
const y = 0.9 + r * 1.5;
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 3.0, h: 1.4,
fill: { color: LIGHT_BG }, line: { color: "C5D8EC" },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.08 }
});
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 3.0, h: 0.38,
fill: { color: row.color }, line: { color: row.color }
});
s.addText(row.cause, {
x, y, w: 3.0, h: 0.38,
fontSize: 10, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText(row.tx, {
x: x + 0.1, y: y + 0.42, w: 2.8, h: 0.95,
fontSize: 10, color: DARK_TEXT,
align: "left", valign: "top"
});
});
addBottomBar(s, "Management by Cause");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – KEY POINTS SUMMARY TABLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, WHITE);
addTopBar(s, ACCENT);
addSectionHeading(s, "Key Points Summary");
const kp = [
["Obstruction definition", "Blockage that HARMS kidney function – dilation alone is NOT obstruction"],
["Most common site", "UPJ (Ureteropelvic Junction) – most common congenital site"],
["First imaging test", "Ultrasound – quick, no radiation, detects hydronephrosis"],
["Best functional test", "MAG-3 diuretic renography – t½ >20 min = obstructed"],
["UUO blood flow", "Increases 0–2 hrs (PGE2/NO), markedly declines after 5 hrs"],
["BUO blood flow", "Modest increase 2 hrs then PROFOUND fall – urgent risk"],
["Post-obstructive diuresis", "Replace ~half urine output/hr with 0.45% NS; monitor electrolytes"],
["Main fibrosis driver", "TGF-β1 (also: TNF-α, Angiotensin II, IL-18)"],
["Infected obstruction", "UROLOGICAL EMERGENCY – drain immediately (PCN preferred)"],
["Gold standard UPJ repair", "Dismembered pyeloplasty (laparoscopic/robotic) – success ~95%"],
["Stent vs. PCN", "PCN preferred in sepsis/unstable; stent for stable patients"],
["MET for stones", "Tamsulosin for stones ≤10mm – helps pass spontaneously"],
];
// header
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 0.88, w: 4.6, h: 0.36,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.05, y: 0.88, w: 4.6, h: 0.36,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
s.addText("TOPIC", {
x: 0.35, y: 0.88, w: 4.6, h: 0.36,
fontSize: 10, bold: true, color: ACCENT2,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
s.addText("KEY POINT", {
x: 5.05, y: 0.88, w: 4.6, h: 0.36,
fontSize: 10, bold: true, color: ACCENT2,
align: "center", valign: "middle", charSpacing: 2, margin: 0
});
kp.forEach((row, i) => {
const y = 1.28 + i * 0.355;
const bg = i % 2 === 0 ? LIGHT_BG : WHITE;
const highlight = [8].includes(i); // emergency row
s.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y, w: 4.6, h: 0.34,
fill: { color: highlight ? "FEF9E7" : bg }, line: { color: "D5E8F5", pt: 0.5 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.05, y, w: 4.6, h: 0.34,
fill: { color: highlight ? "FEF9E7" : bg }, line: { color: "D5E8F5", pt: 0.5 }
});
s.addText(row[0], {
x: 0.5, y, w: 4.3, h: 0.34,
fontSize: 10.5, bold: true, color: highlight ? RED : ACCENT,
align: "left", valign: "middle", margin: 0
});
s.addText(row[1], {
x: 5.15, y, w: 4.4, h: 0.34,
fontSize: 10, color: highlight ? RED : BODY_TEXT,
align: "left", valign: "middle", margin: 0
});
});
addBottomBar(s, "Key Points Summary");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – CLOSING
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addSlideBg(s, DARK_BG);
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: "100%", h: 0.55,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.08, w: "100%", h: 0.545,
fill: { color: ACCENT2 }, line: { color: ACCENT2 }
});
s.addText("Management of Upper Urinary Tract Obstruction", {
x: 0.5, y: 0.7, w: 9, h: 0.6,
fontSize: 20, bold: true, color: WHITE, align: "center"
});
s.addText("Chapter 93 – Campbell Walsh Wein Urology", {
x: 0.5, y: 1.3, w: 9, h: 0.4,
fontSize: 13, color: ACCENT2, align: "center"
});
const takeaways = [
"True obstruction = impaired drainage that damages kidney function",
"Imaging: US → CT → MAG-3 renography for functional assessment",
"Infected obstruction = urological emergency: drain FIRST",
"Anderson-Hynes pyeloplasty is gold standard for UPJ obstruction",
"Post-obstructive diuresis: replace ~50% urine output/hr",
"Duration & completeness of obstruction determine recovery potential",
];
s.addText("Take-Home Messages", {
x: 1.5, y: 1.85, w: 7, h: 0.4,
fontSize: 15, bold: true, color: ACCENT2, align: "center"
});
takeaways.forEach((t, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: 1.0, y: 2.32 + i * 0.42, w: 8.0, h: 0.38,
fill: { color: "0A1B2E" }, line: { color: ACCENT, pt: 0.5 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 1.0, y: 2.32 + i * 0.42, w: 0.28, h: 0.38,
fill: { color: ACCENT }, line: { color: ACCENT }
});
s.addText(String(i + 1), {
x: 1.0, y: 2.32 + i * 0.42, w: 0.28, h: 0.38,
fontSize: 10, bold: true, color: WHITE,
align: "center", valign: "middle", margin: 0
});
s.addText(t, {
x: 1.34, y: 2.32 + i * 0.42, w: 7.55, h: 0.38,
fontSize: 11, color: "C8DCF0",
align: "left", valign: "middle", margin: 0
});
});
s.addText("Source: Campbell Walsh Wein Urology, 12th Ed.", {
x: 0, y: 5.08, w: 10, h: 0.545,
fontSize: 12, bold: false, color: WHITE,
align: "center", valign: "middle"
});
}
// ── WRITE FILE ────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/uut-obstruction-pptx/UUT_Obstruction_Campbell_Ch93.pptx" })
.then(() => console.log("SUCCESS: File written"))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/uut-obstruction-pptx && node create_pptx.js 2>&1
ls -lh /home/daytona/workspace/uut-obstruction-pptx/
UUT Obstruction Campbell Ch93
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide |
| 2 | Chapter overview / agenda |
| 3 | Definition & Prevalence + 4 common obstruction sites |
| 4 | Clinical Presentation – Adults vs. Children |
| 5 | Diagnosis & Imaging (lab studies + imaging table with workflow) |
| 6 | Pathological Changes – mature vs. developing kidney + fibrosis mediators |
| 7 | Hemodynamic changes (UUO timeline, BUO, post-obstructive diuresis) |
| 8 | Recovery of Renal Function (visual bar chart by duration) |
| 9 | Causes – Intrinsic vs. Extrinsic |
| 10 | Management Principles – goals, emergency criteria, stent vs. PCN |
| 11 | UPJ Obstruction – Observation, Pyeloplasty, Endopyelotomy, MET |
| 12 | Management by specific cause (9 condition cards) |
| 13 | Key Points Summary table (12 rows) |
| 14 | Closing slide with 6 take-home messages |