Make a ppt abt uterine myoma

Reading File
Reading File
Reading File
Running Command

cd "/home/daytona/workspace/attachments/cf06f306-1ae8-4726-b092-51fb13b4efe0" && python -m markitdown "Uterine Myoma (Fibroid).pptx" 2>/dev/null | head -200

Running Command

cd "/home/daytona/workspace/attachments/cf06f306-1ae8-4726-b092-51fb13b4efe0" && python -m markitdown "fibroids1 pdf.pdf" 2>/dev/null | head -300

The markitdown extractions returned empty. Let me try a direct approach to read the existing pptx and pdf content.
Running Command

python -m markitdown "/home/daytona/workspace/attachments/cf06f306-1ae8-4726-b092-51fb13b4efe0/Uterine Myoma (Fibroid).pptx" 2>&1 | head -300

Running Command

python -m markitdown "/home/daytona/workspace/attachments/cf06f306-1ae8-4726-b092-51fb13b4efe0/fibroids1 pdf.pdf" 2>&1 | head -300

Running Command

ls /home/daytona/skills/pptx/scripts/ 2>/dev/null; ls /home/daytona/skills/ 2>/dev/null; which node; node --version

Running Command

python3 -c " from pptx import Presentation prs = Presentation('/home/daytona/workspace/attachments/cf06f306-1ae8-4726-b092-51fb13b4efe0/Uterine Myoma (Fibroid).pptx') for i, slide in enumerate(prs.slides): print(f'=== Slide {i+1} ===') for shape in slide.shapes: if hasattr(shape, 'text') and shape.text.strip(): print(shape.text[:500]) print() " 2>&1

Running Command

node /home/daytona/skills/pptx/scripts/thumbnail.py 2>/dev/null; ls /home/daytona/skills/pptx/scripts/; ls /home/daytona/skills/shared/scripts/

Running Command

node -e " const pptxgen = require('pptxgenjs'); console.log('pptxgenjs version:', require('/usr/local/share/nvm/current/lib/node_modules/pptxgenjs/package.json').version || 'ok'); " 2>&1 || node -e "const p = require('pptxgenjs'); console.log('ok')" 2>&1

Now let me search for medical images and build the presentation. I'll search for relevant images in parallel while also querying the medical library.
Searching Images

uterine fibroid myoma types classification diagram

Searching Images

uterine myoma ultrasound MRI imaging

Finding Sources
I have excellent medical images. Now let me build the comprehensive PPTX presentation.
Running Command

mkdir -p /home/daytona/workspace/uterine-myoma-ppt

Running Command

cat > /home/daytona/workspace/uterine-myoma-ppt/fetch_imgs.js << 'EOF' const urls = [ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c3790cd86d85f3cbd5ad67853864a1df84bb034550ab5ecedd6d5a3e2a96c146.jpg", "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_fa9565b5f9c6222e8558da0455425b6073baa605497c13e0629c01a11064c96c.jpg", "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_d9791548d6ea40cfdf8691f9c1c0844bca40531404690e2571d2efebe7bf2940.jpg", "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_38fc64d20243fcd2cb8417d8de5b840256153355a03b6e9ebb483f182d9ad1c1.jpg", "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_61afc9bc6549898fc0a160c290a8fcfdd2ee6d5735f6bc8d9bc87c9cb84d71d8.jpg" ]; const result = require("child_process").execSync( `node /home/daytona/skills/shared/scripts/fetch_images.js ${urls.map(u => `"${u}"`).join(" ")}`, { maxBuffer: 50 * 1024 * 1024 } ).toString(); const images = JSON.parse(result); images.forEach((img, i) => { if (img.error) console.log(`Image ${i}: ERROR - ${img.error}`); else console.log(`Image ${i}: OK (${img.base64.length} chars)`); }); EOF node /home/daytona/workspace/uterine-myoma-ppt/fetch_imgs.js

All 5 images downloaded. Now building the full presentation:
Writing File

~/uterine-myoma-ppt/build.js

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

// Fetch all images
const urls = [
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c3790cd86d85f3cbd5ad67853864a1df84bb034550ab5ecedd6d5a3e2a96c146.jpg",  // 0: SIS classification submucosal
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_fa9565b5f9c6222e8558da0455425b6073baa605497c13e0629c01a11064c96c.jpg",  // 1: MRI FIGO types
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_d9791548d6ea40cfdf8691f9c1c0844bca40531404690e2571d2efebe7bf2940.jpg",  // 2: myomectomy surgical
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_38fc64d20243fcd2cb8417d8de5b840256153355a03b6e9ebb483f182d9ad1c1.jpg",  // 3: ultrasound submucosal
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_61afc9bc6549898fc0a160c290a8fcfdd2ee6d5735f6bc8d9bc87c9cb84d71d8.jpg"   // 4: MRI large intramural
];

const images = JSON.parse(execSync(
  `node /home/daytona/skills/shared/scripts/fetch_images.js ${urls.map(u => `"${u}"`).join(" ")}`,
  { maxBuffer: 50 * 1024 * 1024 }
).toString());

// --- Color palette ---
const C = {
  deepPlum:    "3D1A5E",  // dominant dark bg
  medPurple:   "7B3FA0",  // supporting
  rosePink:    "C2456A",  // accent/header
  softLilac:   "D4A8E8",  // light text on dark
  offWhite:    "F5F0FB",  // body text
  white:       "FFFFFF",
  lightPink:   "F7D6E5",
  darkText:    "1A0A2E",
  accentGold:  "E8B84B",
  tealGreen:   "2DBEAA",
};

let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Uterine Myoma (Fibroid)";

// ============================
// HELPER: gradient-like bg via shape
// ============================
function addBg(slide) {
  slide.background = { color: C.deepPlum };
}

function addDecoStripe(slide) {
  // Top accent bar
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.rosePink }, line: { color: C.rosePink }
  });
  // Bottom accent bar
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.545, w: 10, h: 0.08, fill: { color: C.medPurple }, line: { color: C.medPurple }
  });
}

function sectionLabel(slide, label) {
  slide.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 0.15, w: 2.2, h: 0.38,
    fill: { color: C.rosePink }, line: { color: C.rosePink },
    rectRadius: 0.05
  });
  slide.addText(label.toUpperCase(), {
    x: 0.4, y: 0.15, w: 2.2, h: 0.38,
    fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle",
    charSpacing: 2, margin: 0
  });
}

// ============================
// SLIDE 1 — TITLE
// ============================
{
  let s = pres.addSlide();
  s.background = { color: C.deepPlum };

  // Large decorative circle bg
  s.addShape(pres.ShapeType.ellipse, {
    x: 6.2, y: -1.2, w: 5.5, h: 5.5,
    fill: { color: C.medPurple, transparency: 70 }, line: { color: C.medPurple, transparency: 70 }
  });
  s.addShape(pres.ShapeType.ellipse, {
    x: -1.5, y: 3.2, w: 4, h: 4,
    fill: { color: C.rosePink, transparency: 80 }, line: { color: C.rosePink, transparency: 80 }
  });

  // Top accent bar
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.1, fill: { color: C.rosePink }, line: { color: C.rosePink }
  });

  // Main title
  s.addText("Uterine Myoma", {
    x: 0.55, y: 1.1, w: 8.9, h: 1.2,
    fontSize: 52, bold: true, color: C.white,
    charSpacing: 1, align: "left"
  });
  s.addText("(Fibroid / Leiomyoma)", {
    x: 0.55, y: 2.2, w: 8.9, h: 0.7,
    fontSize: 26, bold: false, color: C.softLilac, align: "left", italic: true
  });

  // Divider line
  s.addShape(pres.ShapeType.line, {
    x: 0.55, y: 3.05, w: 5.5, h: 0,
    line: { color: C.accentGold, width: 2.5 }
  });

  // Sub info
  s.addText([
    { text: "Benign smooth muscle tumor of the uterus", options: { breakLine: true } },
    { text: "Most common pelvic tumor in women of reproductive age", options: { breakLine: false } }
  ], {
    x: 0.55, y: 3.25, w: 7.5, h: 1.0,
    fontSize: 14, color: C.softLilac, align: "left"
  });

  // Bottom bar
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.45, w: 10, h: 0.18, fill: { color: C.rosePink }, line: { color: C.rosePink }
  });
  s.addText("Gynecology  ·  Obstetrics", {
    x: 0, y: 5.45, w: 10, h: 0.18,
    fontSize: 9, color: C.white, align: "center", valign: "middle", bold: true, charSpacing: 3, margin: 0
  });
}

// ============================
// SLIDE 2 — OVERVIEW / OUTLINE
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);

  s.addText("Outline", {
    x: 0.5, y: 0.2, w: 9, h: 0.65,
    fontSize: 30, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 0.87, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  const topics = [
    ["01", "Definition & Epidemiology"],
    ["02", "Etiology & Risk Factors"],
    ["03", "Classification (FIGO)"],
    ["04", "Pathology & Pathogenesis"],
    ["05", "Clinical Features & Diagnosis"],
    ["06", "Imaging"],
    ["07", "Management"],
    ["08", "Surgical Options"],
    ["09", "Complications & Prognosis"],
  ];

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

  col1.forEach(([num, title], i) => {
    const y = 1.05 + i * 0.82;
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.4, y: y, w: 0.48, h: 0.48,
      fill: { color: C.rosePink }, line: { color: C.rosePink }, rectRadius: 0.06
    });
    s.addText(num, { x: 0.4, y: y, w: 0.48, h: 0.48, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
    s.addText(title, { x: 1.0, y: y + 0.04, w: 3.8, h: 0.4, fontSize: 13, color: C.offWhite, valign: "middle" });
  });

  col2.forEach(([num, title], i) => {
    const y = 1.05 + i * 0.82;
    s.addShape(pres.ShapeType.roundRect, {
      x: 5.2, y: y, w: 0.48, h: 0.48,
      fill: { color: C.tealGreen }, line: { color: C.tealGreen }, rectRadius: 0.06
    });
    s.addText(num, { x: 5.2, y: y, w: 0.48, h: 0.48, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
    s.addText(title, { x: 5.8, y: y + 0.04, w: 3.8, h: 0.4, fontSize: 13, color: C.offWhite, valign: "middle" });
  });
}

// ============================
// SLIDE 3 — DEFINITION & EPIDEMIOLOGY
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Definition");

  s.addText("Definition & Epidemiology", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Definition box
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.38, w: 9.2, h: 0.85,
    fill: { color: C.medPurple, transparency: 50 },
    line: { color: C.softLilac, width: 1 }, rectRadius: 0.1
  });
  s.addText("Uterine myomas (fibroids / leiomyomas) are benign monoclonal tumors arising from the smooth muscle cells of the myometrium, with varying amounts of fibrous connective tissue stroma.", {
    x: 0.55, y: 1.42, w: 9.0, h: 0.78,
    fontSize: 13, color: C.white, valign: "middle", italic: true
  });

  const epiData = [
    { icon: "🏥", stat: "20–40%", label: "of women of reproductive age affected" },
    { icon: "📈", stat: "70–80%", label: "lifetime prevalence by age 50" },
    { icon: "⚫", stat: "2–3×", label: "higher incidence in Black vs. White women" },
    { icon: "📅", stat: "Peak", label: "4th–5th decade; regress post-menopause" },
    { icon: "🔬", stat: "#1", label: "Most common pelvic tumor in women" },
  ];

  epiData.forEach((item, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.4 + col * 3.1;
    const y = 2.45 + row * 1.1;
    const w = 2.9;

    s.addShape(pres.ShapeType.roundRect, {
      x, y, w, h: 0.95,
      fill: { color: i < 3 ? C.rosePink : C.tealGreen, transparency: 60 },
      line: { color: C.white, transparency: 70, width: 1 }, rectRadius: 0.1
    });
    s.addText(item.stat, { x: x + 0.08, y: y + 0.04, w: w - 0.16, h: 0.38, fontSize: 22, bold: true, color: C.accentGold, align: "center", margin: 0 });
    s.addText(item.label, { x: x + 0.08, y: y + 0.42, w: w - 0.16, h: 0.46, fontSize: 10.5, color: C.offWhite, align: "center", margin: 0 });
  });
}

// ============================
// SLIDE 4 — ETIOLOGY & RISK FACTORS
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Etiology");

  s.addText("Etiology & Risk Factors", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Left column: Hormonal
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.4, w: 4.2, h: 3.8,
    fill: { color: C.medPurple, transparency: 70 },
    line: { color: C.softLilac, width: 1 }, rectRadius: 0.12
  });
  s.addText("HORMONAL FACTORS", { x: 0.5, y: 1.5, w: 4.0, h: 0.38, fontSize: 13, bold: true, color: C.accentGold, align: "center", charSpacing: 1, margin: 0 });

  const hormonal = [
    "Estrogen & progesterone dependent growth",
    "Express more estrogen receptors than normal myometrium",
    "Aromatase overexpression → local estrogen production",
    "Regress after menopause (↓ estrogen)",
    "Early menarche is a risk factor",
    "Nulliparity (no protective effect of pregnancy)",
  ];
  s.addText(hormonal.map(t => ({ text: t, options: { bullet: { code: "25B8", color: C.rosePink }, breakLine: true, color: C.offWhite } })),
    { x: 0.55, y: 1.98, w: 3.9, h: 3.1, fontSize: 12, color: C.offWhite });

  // Right column: Risk factors
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.2, y: 1.4, w: 4.2, h: 3.8,
    fill: { color: C.rosePink, transparency: 75 },
    line: { color: C.softLilac, width: 1 }, rectRadius: 0.12
  });
  s.addText("RISK FACTORS", { x: 5.3, y: 1.5, w: 4.0, h: 0.38, fontSize: 13, bold: true, color: C.accentGold, align: "center", charSpacing: 1, margin: 0 });

  const risks = [
    "African American ethnicity",
    "Obesity (↑ peripheral estrogen conversion)",
    "Family history (genetic predisposition)",
    "Hypertension",
    "Diet: red meat, fewer green vegetables",
    "Alcohol consumption",
    "Protective: multiparity, OCP use, smoking (↓ estrogen)",
  ];
  s.addText(risks.map(t => ({ text: t, options: { bullet: { code: "25B8", color: C.tealGreen }, breakLine: true, color: C.offWhite } })),
    { x: 5.35, y: 1.98, w: 3.9, h: 3.1, fontSize: 12, color: C.offWhite });
}

// ============================
// SLIDE 5 — CLASSIFICATION (FIGO) + Image
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Classification");

  s.addText("FIGO Classification of Uterine Myomas", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 26, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Classification table
  const classes = [
    { type: "SM — Submucosal", items: ["Type 0: Pedunculated intracavitary", "Type 1: <50% intramural", "Type 2: ≥50% intramural"] },
    { type: "O — Other", items: ["Type 3: Contacts endometrium (100% intramural)", "Type 4: Intramural", "Type 5: Subserosal ≥50% intramural"] },
    { type: "", items: ["Type 6: Subserosal <50% intramural", "Type 7: Subserosal pedunculated", "Type 8: Other (cervical, parasitic)"] },
    { type: "Hybrid", items: ["Two numbers (e.g., 2–5): span both sub- and serosal"] },
  ];

  classes.forEach((cls, i) => {
    const y = 1.45 + i * 0.95;
    if (cls.type) {
      s.addShape(pres.ShapeType.roundRect, {
        x: 0.4, y: y, w: 1.9, h: 0.38,
        fill: { color: i === 0 ? C.rosePink : i === 1 ? C.tealGreen : C.medPurple },
        line: { color: C.white, transparency: 40 }, rectRadius: 0.06
      });
      s.addText(cls.type, { x: 0.4, y: y, w: 1.9, h: 0.38, fontSize: 10.5, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
    }
    cls.items.forEach((item, j) => {
      s.addText(`• ${item}`, {
        x: cls.type ? 2.4 : 0.5, y: y + j * 0.3 - (j > 0 && cls.type ? 0.08 : 0), w: 4.8, h: 0.28,
        fontSize: 11.5, color: C.offWhite, valign: "middle"
      });
    });
  });

  // MRI image on right
  if (!images[1].error) {
    s.addImage({ data: images[1].base64, x: 5.55, y: 1.35, w: 4.1, h: 3.8 });
    s.addShape(pres.ShapeType.roundRect, {
      x: 5.55, y: 1.35, w: 4.1, h: 3.8,
      fill: { color: C.white, transparency: 100 },
      line: { color: C.softLilac, width: 1 }, rectRadius: 0.1
    });
    s.addText("MRI: FIGO fibroid types (T2-weighted)", {
      x: 5.55, y: 5.12, w: 4.1, h: 0.22,
      fontSize: 8.5, color: C.softLilac, align: "center", italic: true
    });
  }
}

// ============================
// SLIDE 6 — PATHOLOGY & PATHOGENESIS
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Pathology");

  s.addText("Pathology & Pathogenesis", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Gross pathology
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.38, w: 4.5, h: 1.65,
    fill: { color: C.medPurple, transparency: 65 },
    line: { color: C.softLilac, width: 0.8 }, rectRadius: 0.1
  });
  s.addText("GROSS PATHOLOGY", { x: 0.5, y: 1.45, w: 4.3, h: 0.3, fontSize: 12, bold: true, color: C.accentGold, charSpacing: 1.5, margin: 0 });
  const gross = ["Well-circumscribed, firm, whorled appearance", "Pseudocapsule of compressed myometrium", "Cut surface: white/grey, trabeculated", "Size: mm to >20 cm; may be multiple"];
  s.addText(gross.map(t => ({ text: t, options: { bullet: true, breakLine: true } })), {
    x: 0.5, y: 1.82, w: 4.3, h: 1.2, fontSize: 12, color: C.offWhite
  });

  // Microscopy
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.1, y: 1.38, w: 4.5, h: 1.65,
    fill: { color: C.rosePink, transparency: 70 },
    line: { color: C.softLilac, width: 0.8 }, rectRadius: 0.1
  });
  s.addText("MICROSCOPY", { x: 5.2, y: 1.45, w: 4.3, h: 0.3, fontSize: 12, bold: true, color: C.accentGold, charSpacing: 1.5, margin: 0 });
  const micro = ["Interlacing bundles of smooth muscle cells", "Sparse mitoses (<5/10 HPF in benign)", "Dense fibrous stroma", "Cellular variant: increased cellularity, rare mitoses"];
  s.addText(micro.map(t => ({ text: t, options: { bullet: true, breakLine: true } })), {
    x: 5.2, y: 1.82, w: 4.3, h: 1.2, fontSize: 12, color: C.offWhite
  });

  // Degenerations
  s.addText("DEGENERATION TYPES", { x: 0.5, y: 3.18, w: 9, h: 0.32, fontSize: 13, bold: true, color: C.tealGreen, charSpacing: 1.5, margin: 0 });

  const degens = [
    { type: "Hyaline", desc: "Most common (65%); replacement by collagen", color: C.rosePink },
    { type: "Cystic", desc: "Liquefaction of hyaline areas", color: C.medPurple },
    { type: "Calcific", desc: "Calcium deposition, 'womb stone'", color: C.tealGreen },
    { type: "Red (Carneous)", desc: "Hemorrhagic infarction; painful; common in pregnancy", color: "C4382A" },
    { type: "Sarcomatous", desc: "<0.5% malignant transformation to leiomyosarcoma", color: C.accentGold },
  ];

  degens.forEach((d, i) => {
    const x = 0.4 + (i % 3) * 3.1;
    const y = 3.58 + Math.floor(i / 3) * 0.98;
    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 2.9, h: 0.85,
      fill: { color: d.color, transparency: 65 },
      line: { color: d.color, transparency: 20, width: 1 }, rectRadius: 0.1
    });
    s.addText(d.type, { x: x + 0.08, y: y + 0.04, w: 2.74, h: 0.3, fontSize: 12, bold: true, color: C.white, align: "center", margin: 0 });
    s.addText(d.desc, { x: x + 0.08, y: y + 0.36, w: 2.74, h: 0.44, fontSize: 10, color: C.offWhite, align: "center", margin: 0 });
  });
}

// ============================
// SLIDE 7 — CLINICAL FEATURES
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Clinical Features");

  s.addText("Clinical Features", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Asymptomatic note
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.38, w: 9.2, h: 0.55,
    fill: { color: C.tealGreen, transparency: 70 },
    line: { color: C.tealGreen, width: 1 }, rectRadius: 0.08
  });
  s.addText("⚠  ~50% of myomas are asymptomatic and discovered incidentally. Symptoms correlate with size, number, and location.", {
    x: 0.55, y: 1.4, w: 9.0, h: 0.5,
    fontSize: 12, color: C.white, valign: "middle"
  });

  const symptomGroups = [
    {
      header: "MENSTRUAL (Submucosal most common)",
      color: C.rosePink,
      items: ["Menorrhagia — heavy menstrual bleeding (most common)", "Metrorrhagia — irregular bleeding", "Dysmenorrhea", "Iron-deficiency anemia"],
      x: 0.4, y: 2.1, w: 3.0
    },
    {
      header: "PRESSURE / BULK",
      color: C.medPurple,
      items: ["Pelvic pressure/heaviness", "Urinary frequency, urgency, retention", "Constipation, tenesmus", "Dyspareunia"],
      x: 3.6, y: 2.1, w: 3.0
    },
    {
      header: "REPRODUCTIVE",
      color: C.tealGreen,
      items: ["Subfertility/infertility", "Recurrent pregnancy loss", "Preterm labor", "Malpresentation, PPH"],
      x: 6.8, y: 2.1, w: 2.8
    }
  ];

  symptomGroups.forEach(({ header, color, items, x, y, w }) => {
    s.addShape(pres.ShapeType.roundRect, {
      x, y, w, h: 3.15,
      fill: { color, transparency: 72 },
      line: { color, transparency: 20, width: 1 }, rectRadius: 0.12
    });
    s.addText(header, { x: x + 0.08, y: y + 0.08, w: w - 0.16, h: 0.42, fontSize: 10.5, bold: true, color: C.accentGold, align: "center", margin: 0 });
    s.addText(items.map(t => ({ text: t, options: { bullet: { code: "25B8", color }, breakLine: true } })), {
      x: x + 0.12, y: y + 0.6, w: w - 0.2, h: 2.5, fontSize: 11, color: C.offWhite
    });
  });
}

// ============================
// SLIDE 8 — DIAGNOSIS
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Diagnosis");

  s.addText("Diagnosis", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Left: clinical + labs
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.38, w: 4.5, h: 3.8,
    fill: { color: C.medPurple, transparency: 68 },
    line: { color: C.softLilac, width: 0.8 }, rectRadius: 0.1
  });
  s.addText("CLINICAL EVALUATION", { x: 0.5, y: 1.48, w: 4.2, h: 0.3, fontSize: 12, bold: true, color: C.accentGold, charSpacing: 1.5, margin: 0 });
  const clinical = [
    "Bimanual pelvic exam: enlarged, irregular, non-tender uterus",
    "Uterine size reported in weeks of gestation",
    "Mass may be palpable abdominally if large",
  ];
  s.addText(clinical.map(t => ({ text: t, options: { bullet: true, breakLine: true } })), {
    x: 0.55, y: 1.85, w: 4.2, h: 0.95, fontSize: 11.5, color: C.offWhite
  });
  s.addText("LABORATORY", { x: 0.5, y: 2.92, w: 4.2, h: 0.3, fontSize: 12, bold: true, color: C.accentGold, charSpacing: 1.5, margin: 0 });
  const labs = ["CBC: hypochromic microcytic anemia", "Pregnancy test (rule out)", "LFT/RFT if surgical planning", "Pap smear, endometrial biopsy if indicated"];
  s.addText(labs.map(t => ({ text: t, options: { bullet: true, breakLine: true } })), {
    x: 0.55, y: 3.28, w: 4.2, h: 1.8, fontSize: 11.5, color: C.offWhite
  });

  // Right: imaging
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.1, y: 1.38, w: 4.5, h: 3.8,
    fill: { color: C.rosePink, transparency: 70 },
    line: { color: C.softLilac, width: 0.8 }, rectRadius: 0.1
  });
  s.addText("IMAGING", { x: 5.2, y: 1.48, w: 4.2, h: 0.3, fontSize: 12, bold: true, color: C.accentGold, charSpacing: 1.5, margin: 0 });
  const imaging = [
    { modality: "Ultrasound (1st line)", detail: "Hypoechoic, well-defined; TAS or TVS; SIS for submucosal" },
    { modality: "MRI (Gold standard)", detail: "Best for size, location, degeneration mapping; pre-surgical" },
    { modality: "Hysteroscopy", detail: "Direct visualization; therapeutic for SM types 0–2" },
    { modality: "HSG", detail: "Filling defect; evaluates tubal patency in infertility" },
    { modality: "CT", detail: "Limited; calcifications; excludes other pelvic masses" },
  ];
  imaging.forEach(({ modality, detail }, i) => {
    const y = 1.88 + i * 0.64;
    s.addText(modality, { x: 5.2, y, w: 4.3, h: 0.25, fontSize: 11.5, bold: true, color: C.tealGreen, margin: 0 });
    s.addText(detail, { x: 5.35, y: y + 0.24, w: 4.1, h: 0.3, fontSize: 10.5, color: C.offWhite, margin: 0 });
  });
}

// ============================
// SLIDE 9 — IMAGING (with images)
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Imaging");

  s.addText("Imaging of Uterine Myomas", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Image 3: Ultrasound submucosal
  if (!images[3].error) {
    s.addImage({ data: images[3].base64, x: 0.4, y: 1.38, w: 4.4, h: 3.7 });
  }
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 4.92, w: 4.4, h: 0.35,
    fill: { color: C.darkText, transparency: 40 }, line: { color: C.darkText }, rectRadius: 0.05
  });
  s.addText("Ultrasound: submucosal fibroid with endometrial distortion", {
    x: 0.4, y: 4.94, w: 4.4, h: 0.3,
    fontSize: 9, color: C.softLilac, align: "center", italic: true, margin: 0
  });

  // Image 4: MRI large intramural
  if (!images[4].error) {
    s.addImage({ data: images[4].base64, x: 5.1, y: 1.38, w: 4.5, h: 3.7 });
  }
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.1, y: 4.92, w: 4.5, h: 0.35,
    fill: { color: C.darkText, transparency: 40 }, line: { color: C.darkText }, rectRadius: 0.05
  });
  s.addText("MRI: large intramural-subserosal leiomyoma (T1+T2 multiplanar)", {
    x: 5.1, y: 4.94, w: 4.5, h: 0.3,
    fontSize: 9, color: C.softLilac, align: "center", italic: true, margin: 0
  });
}

// ============================
// SLIDE 10 — SIS / Submucosal classification image
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Imaging");

  s.addText("Submucosal Classification — 3D SIS", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 26, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  if (!images[0].error) {
    s.addImage({ data: images[0].base64, x: 0.4, y: 1.38, w: 5.4, h: 3.8 });
  }
  s.addText("3D saline-infusion sonohysterography (SIS): submucosal myoma types 0, I, II", {
    x: 0.4, y: 5.1, w: 5.4, h: 0.25,
    fontSize: 8.5, color: C.softLilac, italic: true, align: "center"
  });

  const sisTypes = [
    { type: "Type 0", desc: "Pedunculated\nFully intracavitary\n(α <20°)" },
    { type: "Type I", desc: ">50% protrudes\ninto cavity\n(α >20° ≤90°)" },
    { type: "Type II", desc: "<50% protrudes\n≥50% intramural\n(α >90°)" },
  ];

  sisTypes.forEach(({ type, desc }, i) => {
    const x = 5.95 + i * 1.32;
    s.addShape(pres.ShapeType.roundRect, {
      x: 5.95, y: 1.4 + i * 1.3, w: 3.6, h: 1.1,
      fill: { color: [C.rosePink, C.tealGreen, C.medPurple][i], transparency: 65 },
      line: { color: C.white, transparency: 50, width: 1 }, rectRadius: 0.1
    });
    s.addText(type, { x: 5.95, y: 1.4 + i * 1.3, w: 1.0, h: 1.1, fontSize: 14, bold: true, color: C.accentGold, align: "center", valign: "middle", margin: 0 });
    s.addText(desc, { x: 7.0, y: 1.43 + i * 1.3, w: 2.5, h: 1.05, fontSize: 11, color: C.offWhite, valign: "middle", margin: 0 });
  });

  // Surgical significance
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.95, y: 4.38, w: 3.6, h: 0.8,
    fill: { color: C.darkText, transparency: 30 },
    line: { color: C.accentGold, width: 1 }, rectRadius: 0.1
  });
  s.addText("Types 0 & I: hysteroscopic resection\nType II: may need combined approach", {
    x: 5.95, y: 4.43, w: 3.6, h: 0.7,
    fontSize: 11, color: C.accentGold, align: "center", valign: "middle", bold: true
  });
}

// ============================
// SLIDE 11 — MANAGEMENT OVERVIEW
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Management");

  s.addText("Management Overview", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  const mgmtCols = [
    {
      title: "EXPECTANT",
      icon: "👁",
      color: C.tealGreen,
      items: ["Asymptomatic fibroids", "Perimenopausal (await regression)", "Annual surveillance ultrasound", "Monitor for growth or symptoms"],
      x: 0.4
    },
    {
      title: "MEDICAL",
      icon: "💊",
      color: C.medPurple,
      items: ["NSAIDs: dysmenorrhea relief", "Combined OCP / Progestogens: ↓ bleeding", "GnRH agonists: ↓ size 30–50% (pre-op)", "Ulipristal acetate (SPRM)", "Levonorgestrel IUS (Mirena)", "Tranexamic acid: acute bleeding"],
      x: 3.55
    },
    {
      title: "INTERVENTIONAL",
      icon: "🏥",
      color: C.rosePink,
      items: ["Uterine Artery Embolization (UAE)", "MR-guided Focused Ultrasound (MRgFUS/HIFU)", "Endometrial ablation (small SM fibroids)", "Radiofrequency ablation"],
      x: 6.7
    }
  ];

  const colW = 2.9;
  mgmtCols.forEach(({ title, icon, color, items, x }) => {
    const h = 0.52 + items.length * 0.5;
    s.addShape(pres.ShapeType.roundRect, {
      x, y: 1.42, w: colW, h: 3.8,
      fill: { color, transparency: 70 },
      line: { color, transparency: 20, width: 1.2 }, rectRadius: 0.12
    });
    s.addText(`${icon}  ${title}`, { x: x + 0.1, y: 1.52, w: colW - 0.2, h: 0.42, fontSize: 12, bold: true, color: C.accentGold, align: "center", charSpacing: 0.5, margin: 0 });
    s.addShape(pres.ShapeType.line, {
      x: x + 0.2, y: 2.0, w: colW - 0.4, h: 0,
      line: { color: C.white, transparency: 60, width: 0.8 }
    });
    s.addText(items.map(t => ({ text: t, options: { bullet: { code: "25B8", color }, breakLine: true } })), {
      x: x + 0.12, y: 2.1, w: colW - 0.22, h: 3.1, fontSize: 11, color: C.offWhite
    });
  });
}

// ============================
// SLIDE 12 — MEDICAL MANAGEMENT DETAIL
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Medical Tx");

  s.addText("Medical Management — Key Drugs", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 26, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  const drugs = [
    { name: "GnRH Agonists", eg: "Leuprolide, Goserelin", moa: "↓ estrogen → hypoestrogenic state", use: "Preoperative downsizing (3–6 months); correct anemia", note: "SE: menopausal sx, bone loss; add-back therapy if >6 mo" },
    { name: "GnRH Antagonists", eg: "Elagolix, Relugolix", moa: "Direct GnRH receptor blockade, faster onset", use: "Symptomatic control; FDA-approved for fibroid bleeding", note: "No flare effect; oral administration" },
    { name: "Progestogens / LNG-IUS", eg: "NETA, MPA, Mirena IUS", moa: "Endometrial atrophy → ↓ menstrual flow", use: "Menorrhagia control (especially SM/IM)", note: "LNG-IUS expulsion risk if cavity distorted" },
    { name: "SPRMs", eg: "Ulipristal acetate", moa: "Selective progesterone receptor modulator", use: "Intermittent treatment; ↓ fibroid volume", note: "Hepatotoxicity concerns → limited availability" },
    { name: "Tranexamic Acid", eg: "1g TID during menses", moa: "Antifibrinolytic → ↓ blood loss ~50%", use: "Acute/heavy menstrual bleeding", note: "No effect on fibroid size" },
  ];

  drugs.forEach((d, i) => {
    const y = 1.38 + i * 0.83;
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.4, y, w: 9.2, h: 0.78,
      fill: { color: i % 2 === 0 ? C.medPurple : C.rosePink, transparency: 75 },
      line: { color: C.softLilac, transparency: 60, width: 0.7 }, rectRadius: 0.08
    });
    s.addText(d.name, { x: 0.52, y: y + 0.04, w: 2.0, h: 0.32, fontSize: 12, bold: true, color: C.accentGold, margin: 0 });
    s.addText(`(${d.eg})`, { x: 0.52, y: y + 0.37, w: 2.0, h: 0.3, fontSize: 10, color: C.softLilac, italic: true, margin: 0 });
    s.addText(`MOA: ${d.moa}`, { x: 2.65, y: y + 0.04, w: 3.5, h: 0.33, fontSize: 10.5, color: C.offWhite, margin: 0 });
    s.addText(`Use: ${d.use}`, { x: 2.65, y: y + 0.38, w: 3.5, h: 0.32, fontSize: 10, color: C.offWhite, margin: 0 });
    s.addText(d.note, { x: 6.3, y: y + 0.1, w: 3.1, h: 0.58, fontSize: 10, color: C.softLilac, italic: true, valign: "middle", margin: 0 });
  });
}

// ============================
// SLIDE 13 — SURGICAL OPTIONS + myomectomy image
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Surgery");

  s.addText("Surgical Management", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  // Myomectomy
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.38, w: 4.5, h: 3.8,
    fill: { color: C.medPurple, transparency: 65 },
    line: { color: C.softLilac, width: 0.8 }, rectRadius: 0.1
  });
  s.addText("MYOMECTOMY (uterus-preserving)", { x: 0.5, y: 1.48, w: 4.3, h: 0.32, fontSize: 11.5, bold: true, color: C.accentGold, charSpacing: 0.5, margin: 0 });

  const myomRoutes = [
    { route: "Hysteroscopic", crit: "SM types 0–2; ≤3 cm", best: "Best for cavity distortion & infertility" },
    { route: "Laparoscopic", crit: "≤4–6 fibroids, ≤8–10 cm", best: "Minimal access; faster recovery" },
    { route: "Robotic", crit: "Complex/deep intramural", best: "Precision closure; still expensive" },
    { route: "Open (Laparotomy)", crit: "Large/multiple/subserosal", best: "Most versatile; still gold standard for fertility" },
  ];
  myomRoutes.forEach(({ route, crit, best }, i) => {
    const y = 1.88 + i * 0.8;
    s.addText(route, { x: 0.55, y, w: 1.6, h: 0.28, fontSize: 11.5, bold: true, color: C.tealGreen, margin: 0 });
    s.addText(crit, { x: 0.55, y: y + 0.3, w: 4.2, h: 0.25, fontSize: 10.5, color: C.offWhite, italic: true, margin: 0 });
    s.addText(best, { x: 0.55, y: y + 0.54, w: 4.2, h: 0.22, fontSize: 10, color: C.softLilac, margin: 0 });
  });

  // Surgical image on right
  if (!images[2].error) {
    s.addImage({ data: images[2].base64, x: 5.1, y: 1.38, w: 4.5, h: 3.1 });
  }
  s.addText("Laparoscopic myomectomy: pseudocapsule-sparing technique", {
    x: 5.1, y: 4.42, w: 4.5, h: 0.22,
    fontSize: 8.5, color: C.softLilac, align: "center", italic: true
  });

  // Hysterectomy note
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.1, y: 4.7, w: 4.5, h: 0.98,
    fill: { color: C.rosePink, transparency: 68 },
    line: { color: C.rosePink, width: 1 }, rectRadius: 0.1
  });
  s.addText("HYSTERECTOMY (definitive treatment)", { x: 5.2, y: 4.76, w: 4.3, h: 0.28, fontSize: 11.5, bold: true, color: C.accentGold, margin: 0 });
  s.addText("Indications: failed medical tx, no desire for fertility, large symptomatic myomas, recurrent post-myomectomy. Routes: TAH, VH, TLH, LAVH.", {
    x: 5.2, y: 5.0, w: 4.3, h: 0.6,
    fontSize: 10, color: C.offWhite, margin: 0
  });
}

// ============================
// SLIDE 14 — MYOMA IN PREGNANCY
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Pregnancy");

  s.addText("Myoma in Pregnancy", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  const trimGroups = [
    {
      header: "1st TRIMESTER",
      color: C.tealGreen,
      items: ["Spontaneous abortion risk ↑ (submucosal)", "Red degeneration (Carneous) — acute pain, fever", "Sub-placental fibroids → implantation failure"],
      x: 0.4
    },
    {
      header: "2nd TRIMESTER",
      color: C.medPurple,
      items: ["Red degeneration most common (15–20 wks)", "Mechanical pressure effects", "Preterm labor risk", "Managed conservatively (analgesia, hydration)"],
      x: 3.55
    },
    {
      header: "3RD TRIMESTER & LABOUR",
      color: C.rosePink,
      items: ["Malpresentation (transverse, breech)", "Placenta previa (lower segment)", "Obstructed labour (lower segment / cervical)", "Postpartum haemorrhage (PPH)", "Caesarean section often required"],
      x: 6.7
    }
  ];

  trimGroups.forEach(({ header, color, items, x }) => {
    s.addShape(pres.ShapeType.roundRect, {
      x, y: 1.42, w: 2.95, h: 3.8,
      fill: { color, transparency: 72 },
      line: { color, transparency: 20, width: 1.2 }, rectRadius: 0.12
    });
    s.addText(header, { x: x + 0.1, y: 1.52, w: 2.75, h: 0.42, fontSize: 11.5, bold: true, color: C.accentGold, align: "center", charSpacing: 0.5, margin: 0 });
    s.addShape(pres.ShapeType.line, {
      x: x + 0.15, y: 2.0, w: 2.65, h: 0,
      line: { color: C.white, transparency: 55, width: 0.8 }
    });
    s.addText(items.map(t => ({ text: t, options: { bullet: { code: "25B8", color }, breakLine: true } })), {
      x: x + 0.12, y: 2.08, w: 2.7, h: 3.1, fontSize: 11, color: C.offWhite
    });
  });

  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 5.25, w: 9.2, h: 0.33,
    fill: { color: C.accentGold, transparency: 75 },
    line: { color: C.accentGold, width: 0.8 }, rectRadius: 0.06
  });
  s.addText("Key: Myomectomy during pregnancy generally avoided except for pedunculated torsion. Red degeneration managed conservatively.", {
    x: 0.5, y: 5.27, w: 9.0, h: 0.28,
    fontSize: 10.5, color: C.white, align: "center", italic: true, margin: 0
  });
}

// ============================
// SLIDE 15 — COMPLICATIONS & PROGNOSIS
// ============================
{
  let s = pres.addSlide();
  addBg(s);
  addDecoStripe(s);
  sectionLabel(s, "Complications");

  s.addText("Complications & Prognosis", {
    x: 0.5, y: 0.6, w: 9, h: 0.65,
    fontSize: 28, bold: true, color: C.white
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 1.27, w: 9, h: 0,
    line: { color: C.accentGold, width: 1.5 }
  });

  const comps = [
    { title: "Anemia", body: "Iron-deficiency from chronic menorrhagia; may be severe requiring transfusion or IV iron", color: C.rosePink },
    { title: "Torsion", body: "Pedunculated fibroids → acute abdomen; surgical emergency", color: "C4382A" },
    { title: "Infection", body: "Submucous fibroids → pyomyoma; post-UAE necrosis risk", color: C.medPurple },
    { title: "Sarcomatous Change", body: "Leiomyosarcoma in <0.5%; rapid growth, post-menopausal bleeding are warning signs", color: C.accentGold },
    { title: "Urinary Complications", body: "Hydronephrosis, urinary retention from large fibroids; ureteric injury at surgery", color: C.tealGreen },
    { title: "Recurrence", body: "20–30% recurrence at 5 yrs post-myomectomy; rare after hysterectomy", color: C.medPurple },
  ];

  comps.forEach(({ title, body, color }, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.4 + col * 4.75;
    const y = 1.38 + row * 1.35;
    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 4.45, h: 1.22,
      fill: { color, transparency: 72 },
      line: { color, transparency: 25, width: 1 }, rectRadius: 0.1
    });
    s.addText(title, { x: x + 0.12, y: y + 0.06, w: 4.25, h: 0.32, fontSize: 13, bold: true, color: C.white, margin: 0 });
    s.addText(body, { x: x + 0.12, y: y + 0.4, w: 4.25, h: 0.75, fontSize: 11, color: C.offWhite, margin: 0 });
  });

  // Prognosis footer
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 5.2, w: 9.2, h: 0.4,
    fill: { color: C.tealGreen, transparency: 70 },
    line: { color: C.tealGreen, width: 1 }, rectRadius: 0.08
  });
  s.addText("Prognosis: Excellent with appropriate management. Spontaneous regression post-menopause is expected. Fertility outcomes improved with timely myomectomy.", {
    x: 0.5, y: 5.22, w: 9.0, h: 0.36,
    fontSize: 11, color: C.white, align: "center", italic: true, valign: "middle"
  });
}

// ============================
// SLIDE 16 — SUMMARY / KEY POINTS
// ============================
{
  let s = pres.addSlide();
  s.background = { color: C.deepPlum };

  s.addShape(pres.ShapeType.ellipse, {
    x: 7, y: -0.5, w: 4.5, h: 4.5,
    fill: { color: C.rosePink, transparency: 82 }, line: { color: C.rosePink, transparency: 82 }
  });
  s.addShape(pres.ShapeType.ellipse, {
    x: -1, y: 3.5, w: 3.5, h: 3.5,
    fill: { color: C.medPurple, transparency: 82 }, line: { color: C.medPurple, transparency: 82 }
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.1, fill: { color: C.accentGold }, line: { color: C.accentGold }
  });

  s.addText("Key Takeaways", {
    x: 0.5, y: 0.2, w: 9, h: 0.65,
    fontSize: 32, bold: true, color: C.white, align: "left"
  });
  s.addShape(pres.ShapeType.line, {
    x: 0.5, y: 0.87, w: 4, h: 0,
    line: { color: C.accentGold, width: 2 }
  });

  const keys = [
    "Most common benign pelvic tumor; affects 20–40% of reproductive-age women",
    "Hormone-dependent growth — estrogen & progesterone drive proliferation",
    "FIGO classification (types 0–8) guides treatment strategy",
    "Ultrasound is first-line; MRI is gold standard for surgical planning",
    "Management depends on symptoms, size, fertility desires, and location",
    "GnRH agonists shrink fibroids preoperatively; not curative long-term",
    "Hysterectomy is the only definitive cure; myomectomy preserves fertility",
    "Malignant transformation (leiomyosarcoma) is rare (<0.5%)",
  ];

  keys.forEach((key, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.4 + col * 5.0;
    const y = 1.05 + row * 1.08;

    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 4.7, h: 0.9,
      fill: { color: i % 4 < 2 ? C.medPurple : C.rosePink, transparency: 72 },
      line: { color: C.softLilac, transparency: 60, width: 0.7 }, rectRadius: 0.1
    });
    s.addShape(pres.ShapeType.ellipse, {
      x: x + 0.12, y: y + 0.2, w: 0.32, h: 0.32,
      fill: { color: C.accentGold }, line: { color: C.accentGold }
    });
    s.addText(String(i + 1), { x: x + 0.12, y: y + 0.2, w: 0.32, h: 0.32, fontSize: 10, bold: true, color: C.darkText, align: "center", valign: "middle", margin: 0 });
    s.addText(key, { x: x + 0.52, y: y + 0.06, w: 4.1, h: 0.78, fontSize: 11.5, color: C.offWhite, valign: "middle" });
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.45, w: 10, h: 0.18, fill: { color: C.rosePink }, line: { color: C.rosePink }
  });
  s.addText("Uterine Myoma (Fibroid / Leiomyoma)  ·  Gynecology", {
    x: 0, y: 5.45, w: 10, h: 0.18,
    fontSize: 9, color: C.white, align: "center", valign: "middle", bold: true, charSpacing: 2, margin: 0
  });
}

// ============================
// SAVE
// ============================
const outPath = "/home/daytona/workspace/uterine-myoma-ppt/Uterine_Myoma_Fibroid.pptx";
pres.writeFile({ fileName: outPath })
  .then(() => console.log("Saved: " + outPath))
  .catch(e => { console.error(e); process.exit(1); });
Running Command

cd /home/daytona/workspace/uterine-myoma-ppt && node build.js 2>&1

You've run out of free credits. Sign up for a free account to continue using Orris.
This is a shared conversation. Sign in to Orris to start your own chat.