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

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

Searching Images

uterine fibroid myoma types classification diagram

Searching Images

uterine myoma ultrasound MRI imaging

Finding Sources
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

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.