Create an presentation for the pathology seminar in the topic of Benign prostatic hyperplasia include microscopy pathology etiology

Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Searching the Web

BPH benign prostatic hyperplasia histology microscopy pathology images corpora amylacea

Loading Image
Reading File
Running Command

mkdir -p /home/daytona/workspace/bph-seminar && ls /home/daytona/workspace/bph-s…

Writing File

~/bph-seminar/bph_presentation.js

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

// Fetch images using the helper script
const imageUrls = [
  "https://cdn.orris.care/cdss_images/2db33245f95991f1ce10cf933403a040f351d6ac8d385719defbc5fbcef4f3fa.png",
  "https://cdn.orris.care/cdss_images/83e49923722df6ae7223f45442a06bf50e99954c3879054eabf878b69b2bf306.png",
  "https://medicine.nus.edu.sg/pathweb/wp-content/uploads/2025/07/1221-2086-4011-1823.2-Prostate-BPH.png",
  "https://medicine.nus.edu.sg/pathweb/wp-content/uploads/2025/07/1221-2086-4011-1823.3-Prostate-BPH.png"
];

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

const robbinsImg = images[0]; // BPH gross + micro composite
const corporaImg = images[1]; // corpora amylacea
const nusImg1    = images[2]; // NUS pathweb BPH low power
const nusImg2    = images[3]; // NUS pathweb BPH high power

// ─── COLOR PALETTE ───────────────────────────────────────────
const DARK_BG   = "0D1B2A"; // deep navy - title/chapter slides
const MID_BG    = "1B3A5C"; // medium navy
const LIGHT_BG  = "F0F4F8"; // near-white content slides
const ACCENT1   = "E85D04"; // vivid orange accent
const ACCENT2   = "90E0EF"; // soft cyan
const WHITE     = "FFFFFF";
const BODY_TEXT = "1C2B3A";
const SUBTEXT   = "4A6380";

let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author  = "Pathology Seminar";
pres.title   = "Benign Prostatic Hyperplasia";

// ═══════════════════════════════════════════════════════════════
// HELPER FUNCTIONS
// ═══════════════════════════════════════════════════════════════
function darkSlide(title, subtitle) {
  let sl = pres.addSlide();
  sl.background = { color: DARK_BG };

  // Decorative bar left
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 5.625, fill: { color: ACCENT1 } });
  // Subtle grid lines
  sl.addShape(pres.ShapeType.rect, { x: 0.12, y: 0, w: 9.88, h: 5.625, fill: { color: DARK_BG }, line: { color: DARK_BG } });

  if (title) {
    sl.addText(title, {
      x: 0.5, y: 1.8, w: 9, h: 1.2,
      fontSize: 42, bold: true, color: WHITE, fontFace: "Calibri",
      align: "center"
    });
  }
  if (subtitle) {
    sl.addText(subtitle, {
      x: 0.5, y: 3.0, w: 9, h: 0.8,
      fontSize: 18, color: ACCENT2, fontFace: "Calibri Light",
      align: "center", italic: true
    });
  }
  return sl;
}

function contentSlide(title, accent) {
  let sl = pres.addSlide();
  sl.background = { color: LIGHT_BG };

  const bar = accent || ACCENT1;
  // Header bar
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.85, fill: { color: DARK_BG } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.85, w: 10, h: 0.06, fill: { color: bar } });

  sl.addText(title, {
    x: 0.3, y: 0.05, w: 9.4, h: 0.75,
    fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri",
    valign: "middle"
  });
  return sl;
}

function chapterSlide(chapter, title) {
  let sl = pres.addSlide();
  sl.background = { color: MID_BG };
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 2.2, w: 10, h: 1.2, fill: { color: ACCENT1 } });
  sl.addText(chapter, {
    x: 0.5, y: 0.5, w: 9, h: 1,
    fontSize: 14, color: ACCENT2, fontFace: "Calibri", align: "center", charSpacing: 6
  });
  sl.addText(title, {
    x: 0.5, y: 2.25, w: 9, h: 1.1,
    fontSize: 34, bold: true, color: WHITE, fontFace: "Calibri", align: "center"
  });
  return sl;
}

function bullet(text, level) {
  level = level || 0;
  return {
    text: text,
    options: {
      bullet: level === 0 ? { indent: 15 } : { indent: 30, code: "25E6" },
      color: level === 0 ? BODY_TEXT : SUBTEXT,
      fontSize: level === 0 ? 15 : 13,
      fontFace: "Calibri",
      breakLine: true,
      indentLevel: level,
      paraSpaceAfter: level === 0 ? 8 : 4
    }
  };
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 1 - TITLE
// ═══════════════════════════════════════════════════════════════
{
  let sl = pres.addSlide();
  sl.background = { color: DARK_BG };

  // Full-width gradient band
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 2.5, w: 10, h: 1.7, fill: { color: ACCENT1 } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.15, h: 5.625, fill: { color: ACCENT2 } });

  sl.addText("BENIGN PROSTATIC", {
    x: 0.4, y: 0.5, w: 9.2, h: 1,
    fontSize: 44, bold: true, color: WHITE, fontFace: "Calibri", align: "center", charSpacing: 2
  });
  sl.addText("HYPERPLASIA", {
    x: 0.4, y: 1.4, w: 9.2, h: 0.9,
    fontSize: 44, bold: true, color: ACCENT2, fontFace: "Calibri", align: "center", charSpacing: 2
  });
  sl.addText("Pathology Seminar", {
    x: 0.4, y: 2.55, w: 9.2, h: 0.5,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", align: "center"
  });
  sl.addText("Etiology  |  Morphology  |  Microscopy  |  Clinical Features  |  Management", {
    x: 0.4, y: 3.1, w: 9.2, h: 0.5,
    fontSize: 14, color: WHITE, fontFace: "Calibri Light", align: "center", italic: true
  });
  sl.addText("Source: Robbins & Kumar Basic Pathology, 10th Edition", {
    x: 0.4, y: 5.1, w: 9.2, h: 0.4,
    fontSize: 11, color: ACCENT2, fontFace: "Calibri", align: "center"
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 2 - OVERVIEW / OUTLINE
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Outline");
  const items = [
    ["01", "Introduction & Epidemiology"],
    ["02", "Etiology & Pathogenesis"],
    ["03", "Gross Morphology"],
    ["04", "Microscopic Pathology"],
    ["05", "Histological Images"],
    ["06", "Clinical Features & Complications"],
    ["07", "Management"],
    ["08", "Summary"],
  ];
  const cols = 2;
  items.forEach((item, i) => {
    const col = i % cols;
    const row = Math.floor(i / cols);
    const x = 0.4 + col * 5;
    const y = 1.15 + row * 0.95;
    sl.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 0.78, fill: { color: DARK_BG }, line: { color: ACCENT1, pt: 1 }, rounding: true });
    sl.addText(item[0], { x: x + 0.08, y: y + 0.05, w: 0.7, h: 0.68, fontSize: 22, bold: true, color: ACCENT1, fontFace: "Calibri", valign: "middle", align: "center" });
    sl.addText(item[1], { x: x + 0.85, y: y + 0.05, w: 3.6, h: 0.68, fontSize: 14, color: WHITE, fontFace: "Calibri", valign: "middle" });
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 3 - INTRODUCTION & EPIDEMIOLOGY
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 01", "Introduction & Epidemiology");

{
  let sl = contentSlide("Introduction & Epidemiology");
  sl.addText([
    bullet("BPH results from stromal and glandular proliferation - most common benign prostatic disease in men >50 years"),
    bullet("Frequency rises progressively with age, reaching 90% by the eighth decade of life"),
    bullet("Enlargement of the prostate in BPH is a major cause of urinary obstruction"),
    bullet("Not a pre-malignant condition - does NOT increase the risk of carcinoma"),
    bullet("Affects the transition zone and periurethral region of the prostate"),
  ], { x: 0.4, y: 1.05, w: 5.7, h: 4.2, valign: "top" });

  // Stat boxes on right
  const stats = [
    ["90%", "Prevalence by\n8th decade"],
    [">50 yrs", "Age of onset"],
    ["60-100g", "Enlarged weight\n(3-5x normal)"],
  ];
  stats.forEach((s, i) => {
    const y = 1.2 + i * 1.35;
    sl.addShape(pres.ShapeType.rect, { x: 6.4, y, w: 3.2, h: 1.05, fill: { color: DARK_BG }, line: { color: ACCENT1, pt: 2 }, rounding: true });
    sl.addText(s[0], { x: 6.4, y: y + 0.02, w: 3.2, h: 0.55, fontSize: 26, bold: true, color: ACCENT1, fontFace: "Calibri", align: "center", valign: "middle" });
    sl.addText(s[1], { x: 6.4, y: y + 0.53, w: 3.2, h: 0.48, fontSize: 11, color: ACCENT2, fontFace: "Calibri", align: "center" });
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 4 - ETIOLOGY chapter
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 02", "Etiology & Pathogenesis");

// ═══════════════════════════════════════════════════════════════
// SLIDE 5 - HORMONAL PATHOGENESIS
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Etiology: Hormonal Pathogenesis");

  // Pathway boxes: Testosterone -> 5a-reductase -> DHT -> AR -> Growth
  const steps = [
    { label: "Testosterone\n(Circulating)", color: "1B4F72" },
    { label: "5α-Reductase\n(Type 2)\nin Prostate", color: ACCENT1 },
    { label: "DHT\n(Dihydrotestosterone)\n10x more potent", color: "C0392B" },
    { label: "Nuclear Androgen\nReceptors (AR)", color: "6C3483" },
    { label: "Gene Expression\n→ Cell Proliferation\n& Survival", color: "145A32" },
  ];

  steps.forEach((s, i) => {
    const x = 0.3 + i * 1.88;
    sl.addShape(pres.ShapeType.rect, { x, y: 1.1, w: 1.75, h: 1.35, fill: { color: s.color }, line: { color: WHITE, pt: 1 }, rounding: true });
    sl.addText(s.label, { x, y: 1.1, w: 1.75, h: 1.35, fontSize: 11, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
    if (i < steps.length - 1) {
      sl.addShape(pres.ShapeType.rightArrow, { x: x + 1.75, y: 1.62, w: 0.13, h: 0.3, fill: { color: ACCENT1 } });
    }
  });

  sl.addText([
    bullet("BPH does NOT occur in males castrated before puberty or with androgen-insensitivity syndromes"),
    bullet("DHT-induced growth factors increase stromal cell proliferation and decrease epithelial cell apoptosis"),
    bullet("Estrogen role: With aging, testosterone levels decline while estrogen remains stable or rises"),
    { text: "Estrogens may act synergistically with DHT to drive growth of both epithelial and stromal cells", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    bullet("Alpha-1 adrenergic receptors in prostatic smooth muscle contribute to dynamic obstruction component"),
  ], { x: 0.4, y: 2.65, w: 9.2, h: 2.7, valign: "top" });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 6 - ZONE ANATOMY
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Anatomical Zones: Where BPH Originates");

  // Zone diagram using shapes
  const zones = [
    { label: "Transition Zone\n~5% of gland\nBPH ORIGIN", x: 2.2, y: 1.4, w: 2.2, h: 2.0, color: ACCENT1 },
    { label: "Central Zone\n~25% of gland", x: 4.5, y: 1.1, w: 2.2, h: 1.5, color: MID_BG },
    { label: "Peripheral Zone\n~70% of gland\nCa origin", x: 1.2, y: 3.5, w: 4.5, h: 1.3, color: "2E4057" },
  ];
  zones.forEach(z => {
    sl.addShape(pres.ShapeType.ellipse, { x: z.x, y: z.y, w: z.w, h: z.h, fill: { color: z.color }, line: { color: WHITE, pt: 1.5 } });
    sl.addText(z.label, { x: z.x, y: z.y, w: z.w, h: z.h, fontSize: 10, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
  });
  sl.addText("Urethra\n(compressed)", { x: 2.95, y: 2.1, w: 1.5, h: 0.8, fontSize: 11, color: ACCENT2, fontFace: "Calibri", align: "center", bold: true });

  sl.addText([
    bullet("BPH originates in the periurethral transition zone"),
    bullet("Hyperplastic nodules encroach on the urethra, compressing it to a slit-like orifice"),
    bullet("Distinct from prostatic carcinoma which arises in the peripheral zone"),
    bullet("Transition zone normally constitutes only ~5% of gland volume"),
    bullet("In BPH, the enlarged transition zone can account for >80% of total prostate volume"),
  ], { x: 6.6, y: 1.1, w: 3.15, h: 4.2, valign: "top" });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 7 - CHAPTER: MORPHOLOGY
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 03", "Gross Morphology");

// ═══════════════════════════════════════════════════════════════
// SLIDE 8 - GROSS PATHOLOGY WITH IMAGE
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Gross Morphology");

  if (robbinsImg && robbinsImg.base64) {
    sl.addImage({ data: robbinsImg.base64, x: 0.3, y: 1.05, w: 5.4, h: 3.5 });
    sl.addText("FIG. 16.11 — Robbins & Kumar Basic Pathology\n(A) Cross-section: nodules compressing urethra into slit-like lumen\n(B) Low-power: glandular nodules flanking urethra  (C) High-power: basal cells present (arrows)", {
      x: 0.3, y: 4.55, w: 5.4, h: 0.85,
      fontSize: 9, italic: true, color: SUBTEXT, fontFace: "Calibri"
    });
  }

  sl.addText([
    bullet("Weight increases 3-5 fold: 60-100 g or greater"),
    bullet("Affects the transition zone → encroaches on the urethra"),
    bullet("Urethra compressed to a slit-like orifice"),
    bullet("Cross-section: hyperplastic nodules of variable color and consistency"),
    bullet("Nodules may appear:"),
    { text: "Solid (predominantly stromal/fibromuscular)", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 12, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    { text: "Cystic (dilated glands) or mixed", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 12, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    bullet("7 MRI subtypes based on location of hyperplasia have been described"),
  ], { x: 5.9, y: 1.1, w: 3.85, h: 4.3, valign: "top" });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 9 - CHAPTER: MICROSCOPY
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 04", "Microscopic Pathology");

// ═══════════════════════════════════════════════════════════════
// SLIDE 10 - MICROSCOPY TEXT
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Microscopic Features of BPH");

  sl.addText([
    bullet("Hyperplastic nodules: variable proportions of glandular elements AND fibromuscular stroma"),
    bullet("Glandular (epithelial) component:"),
    { text: "Tall, columnar epithelial cells (inner layer)", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    { text: "Peripheral layer of flattened BASAL CELLS — KEY distinguishing feature", options: { bullet: { indent: 30, code: "25E6" }, color: ACCENT1, fontSize: 13, fontFace: "Calibri", bold: true, breakLine: true, indentLevel: 1 } },
    { text: "Two-cell layer: absent in prostatic adenocarcinoma (diagnostic importance!)", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    bullet("Papillary infoldings of glandular epithelium into the lumina"),
    bullet("Corpora amylacea: laminated proteinaceous secretory concretions within glandular lumina"),
    { text: "Pink, rounded, calcified bodies", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    { text: "Increase in number with age", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    bullet("Stromal component:"),
    { text: "Fibromuscular stroma with smooth muscle proliferation", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
    { text: "Alpha-1 adrenergic receptors mediate smooth muscle tone", options: { bullet: { indent: 30, code: "25E6" }, color: SUBTEXT, fontSize: 13, fontFace: "Calibri", breakLine: true, indentLevel: 1 } },
  ], { x: 0.4, y: 1.05, w: 9.2, h: 4.3, valign: "top" });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 11 - CHAPTER: HISTOLOGICAL IMAGES
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 05", "Histological Images");

// ═══════════════════════════════════════════════════════════════
// SLIDE 12 - MICROSCOPY IMAGE: COMPOSITE
// ═══════════════════════════════════════════════════════════════
{
  let sl = pres.addSlide();
  sl.background = { color: "0A1628" };
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.75, fill: { color: DARK_BG } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.75, w: 10, h: 0.06, fill: { color: ACCENT1 } });
  sl.addText("BPH Histopathology — Composite (Robbins & Kumar)", {
    x: 0.3, y: 0.05, w: 9.4, h: 0.68, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
  });

  if (robbinsImg && robbinsImg.base64) {
    sl.addImage({ data: robbinsImg.base64, x: 0.5, y: 0.9, w: 9, h: 3.6 });
  }

  sl.addShape(pres.ShapeType.rect, { x: 0, y: 4.6, w: 10, h: 1.0, fill: { color: DARK_BG } });
  sl.addText([
    { text: "A ", options: { bold: true, color: ACCENT1, fontSize: 13, fontFace: "Calibri" } },
    { text: "Cross-section: BPH nodules compressing urethra into slit-like lumen      ", options: { color: WHITE, fontSize: 13, fontFace: "Calibri" } },
    { text: "B ", options: { bold: true, color: ACCENT1, fontSize: 13, fontFace: "Calibri" } },
    { text: "Low-power: hyperplastic glandular nodules flanking urethra      ", options: { color: WHITE, fontSize: 13, fontFace: "Calibri" } },
    { text: "C ", options: { bold: true, color: ACCENT1, fontSize: 13, fontFace: "Calibri" } },
    { text: "High-power: tall columnar cells with BASAL CELLS present (arrows)", options: { color: ACCENT2, fontSize: 13, fontFace: "Calibri" } },
  ], { x: 0.3, y: 4.62, w: 9.4, h: 0.96, valign: "middle", align: "center" });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 13 - CORPORA AMYLACEA IMAGE
// ═══════════════════════════════════════════════════════════════
{
  let sl = pres.addSlide();
  sl.background = { color: "0A1628" };
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.75, fill: { color: DARK_BG } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.75, w: 10, h: 0.06, fill: { color: ACCENT1 } });
  sl.addText("Corpora Amylacea in BPH", {
    x: 0.3, y: 0.05, w: 9.4, h: 0.68, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
  });

  if (corporaImg && corporaImg.base64) {
    sl.addImage({ data: corporaImg.base64, x: 1.0, y: 0.92, w: 5.0, h: 3.7 });
  }

  sl.addShape(pres.ShapeType.rect, { x: 6.2, y: 0.92, w: 3.6, h: 3.7, fill: { color: DARK_BG }, line: { color: ACCENT1, pt: 1 }, rounding: true });
  sl.addText([
    { text: "Corpora Amylacea\n", options: { bold: true, color: ACCENT1, fontSize: 15, fontFace: "Calibri", breakLine: true } },
    bullet("Laminated, proteinaceous concretions in glandular lumina"),
    bullet("Appear as rounded, pink, calcified bodies on H&E"),
    bullet("Central radiating pattern surrounded by lamellar layers"),
    bullet("Amyloid-like composition"),
    bullet("Number increases with age"),
    bullet("Pathognomonic of BPH in context"),
    bullet("Arise adjacent to damaged prostate epithelium"),
  ], { x: 6.25, y: 1.0, w: 3.5, h: 3.5, valign: "top" });

  sl.addText("eFIG. 16.3 — Robbins & Kumar Basic Pathology (Elsevier)", {
    x: 1.0, y: 4.62, w: 5.0, h: 0.4, fontSize: 10, italic: true, color: ACCENT2, fontFace: "Calibri", align: "center"
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 14 - KEY MICROSCOPY COMPARISON TABLE
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Microscopy: BPH vs Prostatic Adenocarcinoma", "C0392B");

  const rows = [
    ["Feature", "BPH", "Adenocarcinoma"],
    ["Glandular Architecture", "Large, irregular glands with papillary infoldings", "Small, crowded, back-to-back glands"],
    ["Epithelial Layers", "Two layers (columnar + basal cells)", "Single layer — NO basal cells"],
    ["Basal Cell Layer", "Present (KEY feature)", "Absent (KEY feature)"],
    ["Nuclear Atypia", "Absent / minimal", "Present with prominent nucleoli"],
    ["Luminal Contents", "Corpora amylacea common", "Crystalloids / blue mucin"],
    ["Stromal Component", "Abundant fibromuscular stroma", "Reduced / desmoplastic"],
    ["Zone of Origin", "Transition zone (periurethral)", "Peripheral zone (~70%)"],
  ];

  const colWidths = [2.2, 3.6, 3.6];
  const rowH = 0.52;
  rows.forEach((row, ri) => {
    row.forEach((cell, ci) => {
      const x = 0.25 + colWidths.slice(0, ci).reduce((a, b) => a + b, 0);
      const y = 1.05 + ri * rowH;
      const bg = ri === 0 ? DARK_BG : (ri % 2 === 0 ? "E8EEF4" : WHITE);
      const fc = ri === 0 ? WHITE : (ci === 0 ? BODY_TEXT : BODY_TEXT);
      const fb = ri === 0 || ci === 0;
      sl.addShape(pres.ShapeType.rect, { x, y, w: colWidths[ci], h: rowH, fill: { color: bg }, line: { color: "CCCCCC", pt: 0.5 } });
      sl.addText(cell, { x: x + 0.05, y, w: colWidths[ci] - 0.1, h: rowH, fontSize: ri === 0 ? 12 : 10.5, bold: fb, color: fc, fontFace: "Calibri", valign: "middle", wrap: true });
    });
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 15 - CHAPTER: CLINICAL FEATURES
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 06", "Clinical Features & Complications");

// ═══════════════════════════════════════════════════════════════
// SLIDE 16 - CLINICAL FEATURES
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Clinical Features (LUTS)");

  const luts = [
    { title: "STORAGE SYMPTOMS", items: ["Urinary frequency", "Nocturia", "Urgency"], color: "1A5276" },
    { title: "VOIDING SYMPTOMS", items: ["Hesitancy (difficulty starting)", "Weak / intermittent stream", "Straining to void"], color: ACCENT1 },
    { title: "POST-MICTURITION", items: ["Overflow dribbling", "Incomplete emptying", "Residual urine"], color: "145A32" },
  ];

  luts.forEach((g, i) => {
    const x = 0.3 + i * 3.2;
    sl.addShape(pres.ShapeType.rect, { x, y: 1.05, w: 3.0, h: 0.5, fill: { color: g.color }, rounding: true });
    sl.addText(g.title, { x, y: 1.05, w: 3.0, h: 0.5, fontSize: 11, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
    g.items.forEach((item, j) => {
      sl.addShape(pres.ShapeType.rect, { x, y: 1.62 + j * 0.55, w: 3.0, h: 0.48, fill: { color: j % 2 === 0 ? LIGHT_BG : WHITE }, line: { color: g.color, pt: 0.5 } });
      sl.addText("• " + item, { x: x + 0.1, y: 1.62 + j * 0.55, w: 2.8, h: 0.48, fontSize: 12, color: BODY_TEXT, fontFace: "Calibri", valign: "middle" });
    });
  });

  sl.addText([
    bullet("Mechanism: Urinary obstruction from prostatic enlargement + smooth muscle contraction (dynamic component)"),
    bullet("Bladder hypertrophy and distention from increased resistance to outflow"),
    bullet("Residual urine acts as culture medium for bacteria — predisposes to recurrent UTIs (cystitis, pyelonephritis)"),
    bullet("Dysuria (painful micturition) may occur"),
    bullet("Complete obstruction can cause acute urinary retention, bladder distention, and hydronephrosis"),
  ], { x: 0.3, y: 3.35, w: 9.4, h: 2.1, valign: "top" });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 17 - CHAPTER: MANAGEMENT
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 07", "Management");

// ═══════════════════════════════════════════════════════════════
// SLIDE 18 - MANAGEMENT
// ═══════════════════════════════════════════════════════════════
{
  let sl = contentSlide("Management of BPH");

  const cats = [
    {
      title: "MEDICAL THERAPY",
      color: "1A5276",
      items: [
        "α1-Adrenergic Blockers — tamsulosin, terazosin, alfuzosin",
        "Relax prostatic smooth muscle (dynamic component)",
        "5α-Reductase Inhibitors — finasteride, dutasteride",
        "Block DHT synthesis from testosterone",
        "Combination therapy for larger glands",
        "PDE-5 Inhibitors — tadalafil (off-label for LUTS)"
      ]
    },
    {
      title: "SURGICAL THERAPY",
      color: ACCENT1,
      items: [
        "TURP — Transurethral Resection of Prostate (gold standard)",
        "HIFU — High-intensity focused ultrasound",
        "Laser therapy (HoLEP, GreenLight PVP)",
        "Transurethral electrovaporization",
        "Radiofrequency ablation (Rezum)",
        "Open prostatectomy for very large glands (>100g)"
      ]
    }
  ];

  cats.forEach((c, i) => {
    const x = 0.3 + i * 4.85;
    sl.addShape(pres.ShapeType.rect, { x, y: 1.05, w: 4.6, h: 0.5, fill: { color: c.color }, rounding: true });
    sl.addText(c.title, { x, y: 1.05, w: 4.6, h: 0.5, fontSize: 13, bold: true, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle" });
    c.items.forEach((item, j) => {
      sl.addShape(pres.ShapeType.rect, { x, y: 1.62 + j * 0.56, w: 4.6, h: 0.5, fill: { color: j % 2 === 0 ? LIGHT_BG : WHITE }, line: { color: c.color, pt: 0.5 } });
      sl.addText("• " + item, { x: x + 0.1, y: 1.62 + j * 0.56, w: 4.4, h: 0.5, fontSize: 10.5, color: BODY_TEXT, fontFace: "Calibri", valign: "middle" });
    });
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 19 - SUMMARY
// ═══════════════════════════════════════════════════════════════
chapterSlide("CHAPTER 08", "Summary");

{
  let sl = contentSlide("Key Takeaways");

  const points = [
    ["Epidemiology", "Most common benign prostatic disease; >50 yrs, 90% prevalence by 8th decade"],
    ["Etiology", "DHT (via 5α-reductase type 2) is the primary driver; estrogen has synergistic role"],
    ["Zone", "Transition zone (periurethral) — distinct from carcinoma which arises in peripheral zone"],
    ["Gross", "Prostate 60-100g (3-5x); nodules compressing urethra to slit-like orifice"],
    ["Microscopy", "Two-cell glandular layer (columnar + basal cells); corpora amylacea; fibromuscular stroma"],
    ["vs. Cancer", "Basal cells PRESENT in BPH; ABSENT in adenocarcinoma — key diagnostic distinction"],
    ["Clinical", "LUTS (frequency, nocturia, hesitancy, weak stream); risk of UTI, urinary retention"],
    ["Management", "α1-blockers + 5α-RI (medical); TURP or laser (surgical for refractory cases)"],
  ];

  points.forEach((p, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.3 + col * 4.85;
    const y = 1.1 + row * 1.05;
    sl.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 0.95, fill: { color: DARK_BG }, line: { color: ACCENT1, pt: 1 }, rounding: true });
    sl.addText(p[0], { x: x + 0.1, y: y + 0.04, w: 1.3, h: 0.87, fontSize: 11, bold: true, color: ACCENT1, fontFace: "Calibri", valign: "middle" });
    sl.addText(p[1], { x: x + 1.35, y: y + 0.04, w: 3.15, h: 0.87, fontSize: 11, color: WHITE, fontFace: "Calibri", valign: "middle" });
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE 20 - CLOSING
// ═══════════════════════════════════════════════════════════════
{
  let sl = pres.addSlide();
  sl.background = { color: DARK_BG };
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.15, h: 5.625, fill: { color: ACCENT1 } });
  sl.addShape(pres.ShapeType.rect, { x: 0.15, y: 2.4, w: 9.85, h: 0.08, fill: { color: ACCENT2 } });
  sl.addText("Thank You", {
    x: 0.5, y: 0.9, w: 9, h: 1.3,
    fontSize: 52, bold: true, color: WHITE, fontFace: "Calibri", align: "center"
  });
  sl.addText("Benign Prostatic Hyperplasia — Pathology Seminar", {
    x: 0.5, y: 2.6, w: 9, h: 0.6,
    fontSize: 18, color: ACCENT2, fontFace: "Calibri Light", align: "center", italic: true
  });
  sl.addText("References:\nRobbins & Kumar Basic Pathology, 10th Edition (Elsevier)\nRobbins, Cotran & Kumar Pathologic Basis of Disease, 10th Edition (Elsevier)\nCampbell-Walsh-Wein Urology, 12th Edition", {
    x: 1.5, y: 3.4, w: 7, h: 1.8,
    fontSize: 12, color: SUBTEXT, fontFace: "Calibri", align: "center"
  });
}

// ═══════════════════════════════════════════════════════════════
// WRITE FILE
// ═══════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/bph-seminar/BPH_Pathology_Seminar.pptx" })
  .then(() => console.log("SUCCESS: /home/daytona/workspace/bph-seminar/BPH_Pathology_Seminar.pptx"))
  .catch(err => { console.error("ERROR:", err); process.exit(1); });
Running Command

cd /home/daytona/workspace/bph-seminar && node bph_presentation.js 2>&1

Running Command

ls -lh /home/daytona/workspace/bph-seminar/BPH_Pathology_Seminar.pptx

Your presentation is ready! Download it here:

BPH Pathology Seminar

Presentation · PPTX


Presentation Overview (20 slides, 3.6 MB)
The deck uses a professional dark navy + orange accent color scheme designed for a pathology seminar setting. Here's what's included:
SlideContent
1Title slide
2Outline (8 chapters)
3-4Introduction & Epidemiology (90% by 8th decade; key stats)
5Chapter opener
6Etiology - DHT pathway diagram: Testosterone → 5α-Reductase → DHT → Androgen Receptor → Gene Expression; estrogen's synergistic role
7Zone Anatomy - Transition zone as BPH origin vs peripheral zone for carcinoma
8Chapter opener
9Gross Morphology - 60-100g weight; slit-like urethra; with Robbins FIG. 16.11 composite image
10Chapter opener
11Microscopic Features - Two-cell layer (columnar + basal cells), corpora amylacea, fibromuscular stroma
12Chapter opener
13Histopathology image slide - Robbins composite (gross cross-section + low/high power) with labeled callouts
14Corpora amylacea image slide with labeled description
15BPH vs Adenocarcinoma comparison table - 8 features side-by-side
16Chapter opener
17Clinical Features (LUTS) - storage, voiding, post-micturition symptoms + complications
18Chapter opener
19Management - Medical (α1-blockers, 5α-RI) vs Surgical (TURP, HIFU, laser, etc.)
20Key Takeaways summary grid
21Closing / Thank You with references
All content sourced from Robbins & Kumar Basic Pathology (10th Ed.) and Robbins, Cotran & Kumar Pathologic Basis of Disease with real textbook histology images embedded.
This is a shared conversation. Sign in to Orris to start your own chat.