Create a ppt on acute leukemia for 3rd year bds students explaining Introduction Pathology Etiology Clinical features Histopathology Treatment Ppt should be diagram based Please create the presentation

Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
Finding Sources
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace/

Running Command

mkdir -p /home/daytona/workspace/acute-leukemia-bds

Where is the ppt

Writing File

~/acute-leukemia-bds/build.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Acute Leukemia";
pres.author = "BDS 3rd Year Oral Pathology";

// ─── THEME ───────────────────────────────────────────────────────────────────
const C = {
  navy:   "0D1B4B",
  red:    "C0392B",
  gold:   "F4A300",
  teal:   "1A7A8A",
  light:  "EBF4F7",
  white:  "FFFFFF",
  dark:   "1A1A2E",
  grey:   "5D6D7E",
  lgrey:  "D5D8DC",
  green:  "1E8449",
  orange: "E67E22",
  purple: "7D3C98",
};

// ─── HELPERS ─────────────────────────────────────────────────────────────────
function addHeader(slide, title, sub) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.75, fill: { color: C.navy } });
  slide.addText(title, { x: 0.3, y: 0, w: 9.4, h: 0.75, fontSize: 24, bold: true, color: C.white, valign: "middle" });
  if (sub) slide.addText(sub, { x: 0.3, y: 0.75, w: 9.4, h: 0.35, fontSize: 12, color: C.grey, italic: true });
}

function addFooter(slide, num) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 5.35, w: 10, h: 0.275, fill: { color: C.navy } });
  slide.addText("Acute Leukemia | 3rd Year BDS", { x: 0.2, y: 5.35, w: 7, h: 0.275, fontSize: 8, color: C.lgrey, valign: "middle" });
  slide.addText(`${num}`, { x: 9.5, y: 5.35, w: 0.4, h: 0.275, fontSize: 8, color: C.lgrey, align: "right", valign: "middle" });
}

function box(slide, x, y, w, h, bg, label, value, labelColor, valueColor) {
  slide.addShape(pres.ShapeType.roundRect, { x, y, w, h, fill: { color: bg }, rectRadius: 0.08, line: { color: C.lgrey, width: 0.5 } });
  if (label) slide.addText(label, { x: x + 0.08, y: y + 0.05, w: w - 0.16, h: 0.3, fontSize: 9, bold: true, color: labelColor || C.white, align: "center" });
  if (value) slide.addText(value, { x: x + 0.08, y: y + 0.32, w: w - 0.16, h: h - 0.4, fontSize: 10, color: valueColor || C.dark, align: "center", valign: "middle", wrap: true });
}

function arrow(slide, x1, y1, x2, y2) {
  slide.addShape(pres.ShapeType.line, {
    x: x1, y: y1, w: x2 - x1, h: y2 - y1,
    line: { color: C.grey, width: 1.2, endArrowType: "arrow" }
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  // dark full background
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.dark } });
  // accent bar left
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.red } });
  // large circle decoration
  s.addShape(pres.ShapeType.ellipse, { x: 6.5, y: -0.8, w: 4.5, h: 4.5, fill: { color: "1B2A5A" }, line: { color: "253570", width: 1 } });
  s.addShape(pres.ShapeType.ellipse, { x: 7.2, y: 2.8, w: 3.2, h: 3.2, fill: { color: "162047" }, line: { color: "1E2F5C", width: 1 } });

  s.addText("ACUTE LEUKEMIA", { x: 0.5, y: 1.3, w: 6.5, h: 1.0, fontSize: 40, bold: true, color: C.white, charSpacing: 2 });
  s.addText("A Comprehensive Review for BDS Students", { x: 0.5, y: 2.35, w: 6.5, h: 0.4, fontSize: 15, color: C.gold, italic: true });

  // topic chips
  const topics = ["Introduction", "Pathology", "Etiology", "Clinical Features", "Histopathology", "Treatment"];
  topics.forEach((t, i) => {
    const col = i < 3 ? 0 : 1;
    const row = i % 3;
    s.addShape(pres.ShapeType.roundRect, { x: 0.5 + col * 3.0, y: 2.95 + row * 0.42, w: 2.7, h: 0.34, fill: { color: C.navy }, rectRadius: 0.05 });
    s.addText(`${i + 1}. ${t}`, { x: 0.5 + col * 3.0, y: 2.95 + row * 0.42, w: 2.7, h: 0.34, fontSize: 10, color: C.gold, bold: true, align: "center", valign: "middle" });
  });

  s.addText("Oral Pathology & Medicine  |  3rd Year BDS", { x: 0.5, y: 5.1, w: 6, h: 0.3, fontSize: 9, color: C.lgrey, italic: true });
  addFooter(s, 1);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — OVERVIEW / OUTLINE
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Lecture Outline");

  const items = [
    { n: "01", title: "Introduction", desc: "Definition, classification, epidemiology", color: C.navy },
    { n: "02", title: "Pathology", desc: "Pathogenesis, genetic mutations, blast biology", color: C.teal },
    { n: "03", title: "Etiology", desc: "Risk factors, environmental & genetic causes", color: C.green },
    { n: "04", title: "Clinical Features", desc: "Systemic & oral manifestations", color: C.orange },
    { n: "05", title: "Histopathology", desc: "Morphology, cytochemistry, immunophenotyping", color: C.purple },
    { n: "06", title: "Treatment", desc: "Induction, consolidation, transplant", color: C.red },
  ];

  items.forEach((item, i) => {
    const col = i < 3 ? 0 : 1;
    const row = i % 3;
    const x = 0.3 + col * 5.0;
    const y = 1.25 + row * 1.3;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.5, h: 1.1, fill: { color: C.white }, rectRadius: 0.1, line: { color: item.color, width: 2 } });
    s.addShape(pres.ShapeType.ellipse, { x: x + 0.1, y: y + 0.2, w: 0.65, h: 0.65, fill: { color: item.color } });
    s.addText(item.n, { x: x + 0.1, y: y + 0.2, w: 0.65, h: 0.65, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(item.title, { x: x + 0.85, y: y + 0.08, w: 3.5, h: 0.38, fontSize: 13, bold: true, color: item.color });
    s.addText(item.desc, { x: x + 0.85, y: y + 0.48, w: 3.5, h: 0.45, fontSize: 10, color: C.grey, wrap: true });
  });

  addFooter(s, 2);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — INTRODUCTION: DEFINITION
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Introduction", "What is Acute Leukemia?");

  // definition box
  s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.15, w: 9.4, h: 0.95, fill: { color: C.navy } });
  s.addText("Acute leukemia is a diverse group of neoplastic proliferations of immature hematopoietic cells (blasts) that replace normal marrow elements, causing marrow failure.", {
    x: 0.4, y: 1.18, w: 9.2, h: 0.88, fontSize: 12.5, color: C.white, valign: "middle", wrap: true, bold: false
  });

  // three column classification
  const cols = [
    { title: "B-ALL", sub: "B-cell Acute Lymphoblastic Leukemia", color: C.teal, pts: ["Most common childhood leukemia", "Peak age: 2-10 years", "Arises in bone marrow", "t(9;22) Philadelphia chromosome in adults"] },
    { title: "T-ALL", sub: "T-cell Acute Lymphoblastic Leukemia", color: C.purple, pts: ["Common in adolescents", "Often involves thymus", "Mediastinal mass in >50%", "T-cell receptor translocations"] },
    { title: "AML", sub: "Acute Myeloid Leukemia", color: C.red, pts: ["Most common in adults >60 yrs", "May arise from prior MDS/MPN", "Auer rods pathognomonic", "DIC risk in APL subtype"] },
  ];

  cols.forEach((c, i) => {
    const x = 0.25 + i * 3.18;
    s.addShape(pres.ShapeType.roundRect, { x, y: 2.25, w: 3.0, h: 2.9, fill: { color: C.light }, rectRadius: 0.1, line: { color: c.color, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y: 2.25, w: 3.0, h: 0.5, fill: { color: c.color } });
    s.addText(c.title, { x, y: 2.25, w: 3.0, h: 0.5, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(c.sub, { x: x + 0.1, y: 2.77, w: 2.8, h: 0.35, fontSize: 8.5, color: c.color, bold: true, align: "center" });
    c.pts.forEach((p, j) => {
      s.addText([{ text: "• ", options: { color: c.color, bold: true } }, { text: p, options: { color: C.dark } }],
        { x: x + 0.12, y: 3.15 + j * 0.44, w: 2.76, h: 0.4, fontSize: 9.5, wrap: true });
    });
  });

  addFooter(s, 3);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — EPIDEMIOLOGY + CLASSIFICATION TABLE
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Epidemiology & Classification");

  // stat boxes
  const stats = [
    { val: "~185,000", lbl: "New hematologic\nmalignancies/yr (USA)", color: C.navy },
    { val: "60 yrs", lbl: "Median age\nfor AML", color: C.red },
    { val: "2-10 yrs", lbl: "Peak age\nfor B-ALL", color: C.teal },
    { val: "~20%", lbl: "Blasts required\nfor diagnosis", color: C.green },
  ];
  stats.forEach((st, i) => {
    const x = 0.2 + i * 2.42;
    s.addShape(pres.ShapeType.roundRect, { x, y: 1.1, w: 2.22, h: 1.2, fill: { color: st.color }, rectRadius: 0.1 });
    s.addText(st.val, { x, y: 1.12, w: 2.22, h: 0.6, fontSize: 22, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(st.lbl, { x, y: 1.72, w: 2.22, h: 0.55, fontSize: 9, color: C.white, align: "center", valign: "top" });
  });

  // WHO Classification table
  s.addText("WHO Classification (Simplified)", { x: 0.2, y: 2.5, w: 9.6, h: 0.35, fontSize: 13, bold: true, color: C.navy });
  const tblData = [
    [
      { text: "Category", options: { bold: true, color: C.white, fill: C.navy } },
      { text: "Subtype", options: { bold: true, color: C.white, fill: C.navy } },
      { text: "Key Feature", options: { bold: true, color: C.white, fill: C.navy } },
      { text: "Prognosis", options: { bold: true, color: C.white, fill: C.navy } },
    ],
    ["B-ALL", "B-cell precursor ALL", "CD19+, TdT+, CD10+", "Favorable in children"],
    ["T-ALL", "T-cell precursor ALL", "CD3+, CD7+, TdT+", "Intermediate"],
    ["AML – APL", "M3: Acute Promyelocytic", "t(15;17), Auer rods, PML-RARA", "Favorable with ATRA"],
    ["AML – CBF", "M2: t(8;21) or inv(16)", "CD13+, CD33+, MPO+", "Favorable"],
    ["AML – NOS", "Other AML subtypes", "20%+ blasts, varied genetics", "Variable"],
  ];
  s.addTable(tblData, {
    x: 0.2, y: 2.88, w: 9.6, h: 2.4,
    fontSize: 9.5,
    color: C.dark,
    border: { type: "solid", color: C.lgrey, pt: 0.5 },
    align: "left",
    rowH: 0.38,
    autoPage: false,
  });

  addFooter(s, 4);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 5 — PATHOLOGY: NORMAL HAEMOPOIESIS → LEUKEMIA
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Pathology", "Normal Haemopoiesis vs Leukemic Transformation");

  // Flow diagram: HSC → normal vs leukemia
  // Row 1: HSC
  s.addShape(pres.ShapeType.ellipse, { x: 4.0, y: 1.1, w: 2.0, h: 0.65, fill: { color: C.navy } });
  s.addText("Hematopoietic\nStem Cell (HSC)", { x: 4.0, y: 1.1, w: 2.0, h: 0.65, fontSize: 8.5, bold: true, color: C.white, align: "center", valign: "middle" });

  // Arrows split
  s.addShape(pres.ShapeType.line, { x: 3.0, y: 1.75, w: 2.0, h: 0, line: { color: C.green, width: 1.5, endArrowType: "arrow" } });
  s.addShape(pres.ShapeType.line, { x: 5.0, y: 1.75, w: 2.0, h: 0, line: { color: C.red, width: 1.5, endArrowType: "arrow" } });

  s.addText("Normal", { x: 2.5, y: 1.62, w: 1.2, h: 0.24, fontSize: 8, color: C.green, bold: true, align: "center" });
  s.addText("Mutation", { x: 6.0, y: 1.62, w: 1.2, h: 0.24, fontSize: 8, color: C.red, bold: true, align: "center" });

  // Normal side
  s.addShape(pres.ShapeType.roundRect, { x: 0.2, y: 2.0, w: 2.6, h: 3.1, fill: { color: "E8F5E9" }, rectRadius: 0.1, line: { color: C.green, width: 1.5 } });
  s.addText("NORMAL DIFFERENTIATION", { x: 0.2, y: 2.05, w: 2.6, h: 0.35, fontSize: 8, bold: true, color: C.green, align: "center" });
  const normalCells = ["Myeloid Progenitor", "Lymphoid Progenitor", "RBCs", "Platelets", "Granulocytes", "Lymphocytes"];
  normalCells.forEach((c, i) => {
    s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 2.43 + i * 0.44, w: 2.4, h: 0.36, fill: { color: C.green }, rectRadius: 0.05 });
    s.addText(c, { x: 0.3, y: 2.43 + i * 0.44, w: 2.4, h: 0.36, fontSize: 9, color: C.white, align: "center", valign: "middle" });
  });

  // Leukemia side
  s.addShape(pres.ShapeType.roundRect, { x: 7.2, y: 2.0, w: 2.6, h: 3.1, fill: { color: "FDEDEC" }, rectRadius: 0.1, line: { color: C.red, width: 1.5 } });
  s.addText("LEUKEMIC TRANSFORMATION", { x: 7.2, y: 2.05, w: 2.6, h: 0.35, fontSize: 8, bold: true, color: C.red, align: "center" });
  const lukemia = ["Maturation Arrest", "Blast Accumulation", "Marrow Replaced", "Normal Cells ↓", "Pancytopenia", "Organ Infiltration"];
  lukemia.forEach((c, i) => {
    s.addShape(pres.ShapeType.roundRect, { x: 7.3, y: 2.43 + i * 0.44, w: 2.4, h: 0.36, fill: { color: C.red }, rectRadius: 0.05 });
    s.addText(c, { x: 7.3, y: 2.43 + i * 0.44, w: 2.4, h: 0.36, fontSize: 9, color: C.white, align: "center", valign: "middle" });
  });

  // Centre: key mutations
  s.addShape(pres.ShapeType.roundRect, { x: 3.5, y: 2.1, w: 3.0, h: 2.9, fill: { color: C.light }, rectRadius: 0.1, line: { color: C.teal, width: 1 } });
  s.addText("KEY DRIVER MUTATIONS", { x: 3.5, y: 2.15, w: 3.0, h: 0.3, fontSize: 8.5, bold: true, color: C.teal, align: "center" });
  const muts = ["t(9;22) BCR-ABL – B-ALL", "t(15;17) PML-RARA – APL", "t(8;21) RUNX1-RUNX1T1", "FLT3 / RAS mutations", "PAX5 mutations – B-ALL", "IDH1/IDH2 – AML"];
  muts.forEach((m, i) => {
    s.addText([{ text: "◆ ", options: { color: C.teal, bold: true } }, { text: m, options: { color: C.dark } }],
      { x: 3.55, y: 2.5 + i * 0.42, w: 2.9, h: 0.38, fontSize: 9, wrap: true });
  });

  addFooter(s, 5);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 6 — PATHOLOGY: MARROW FAILURE CONSEQUENCES
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Pathology", "Consequences of Marrow Failure");

  // Central "Marrow Failure" hub
  s.addShape(pres.ShapeType.ellipse, { x: 3.75, y: 2.2, w: 2.5, h: 1.3, fill: { color: C.navy } });
  s.addText("MARROW\nFAILURE", { x: 3.75, y: 2.2, w: 2.5, h: 1.3, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle" });

  // Spokes
  const spokes = [
    { x: 0.2, y: 1.05, w: 2.7, h: 0.9, color: C.red, title: "Anemia (↓RBC)", body: "Weakness, fatigue,\npallor, dyspnoea" },
    { x: 7.1, y: 1.05, w: 2.7, h: 0.9, color: C.orange, title: "Thrombocytopenia", body: "Petechiae, purpura,\nprolonged bleeding" },
    { x: 0.2, y: 2.35, w: 2.7, h: 0.9, color: C.purple, title: "Neutropenia", body: "Recurrent infections,\nfever, ulcers" },
    { x: 7.1, y: 2.35, w: 2.7, h: 0.9, color: C.teal, title: "Blast Infiltration", body: "Lymphadenopathy,\nhepatosplenomegaly" },
    { x: 0.2, y: 3.65, w: 2.7, h: 0.9, color: C.green, title: "Gingival Changes", body: "Gingival hyperplasia,\nulceration, bleeding" },
    { x: 7.1, y: 3.65, w: 2.7, h: 0.9, color: C.gold, title: "Metabolic", body: "Hyperuricemia,\ntumor lysis syndrome" },
  ];

  spokes.forEach(sp => {
    s.addShape(pres.ShapeType.roundRect, { x: sp.x, y: sp.y, w: sp.w, h: sp.h, fill: { color: C.white }, rectRadius: 0.1, line: { color: sp.color, width: 2 } });
    s.addShape(pres.ShapeType.rect, { x: sp.x, y: sp.y, w: sp.w, h: 0.3, fill: { color: sp.color } });
    s.addText(sp.title, { x: sp.x, y: sp.y, w: sp.w, h: 0.3, fontSize: 9.5, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(sp.body, { x: sp.x + 0.1, y: sp.y + 0.33, w: sp.w - 0.2, h: 0.55, fontSize: 9, color: C.dark, align: "center", wrap: true });
  });

  // Connecting lines
  [[3.75, 2.75, 2.9, 1.5], [6.25, 2.75, 7.1, 1.5], [3.75, 2.75, 2.9, 2.8], [6.25, 2.75, 7.1, 2.8],
   [3.75, 3.5, 2.9, 4.1], [6.25, 3.5, 7.1, 4.1]].forEach(([x1, y1, x2, y2]) => {
    s.addShape(pres.ShapeType.line, { x: x1, y: y1, w: x2 - x1, h: y2 - y1, line: { color: C.lgrey, width: 1.0 } });
  });

  addFooter(s, 6);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 7 — ETIOLOGY
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Etiology", "Risk Factors for Acute Leukemia");

  const cats = [
    {
      title: "Genetic / Chromosomal", icon: "🧬", color: C.navy,
      items: ["Down syndrome (trisomy 21) – 20× risk AML", "Bloom syndrome", "Fanconi anemia", "Ataxia telangiectasia", "Neurofibromatosis type 1"]
    },
    {
      title: "Radiation Exposure", icon: "☢", color: C.red,
      items: ["Atomic bomb survivors", "Therapeutic radiation", "Diagnostic X-rays (high dose)", "Nuclear fallout", "Occupational exposure"]
    },
    {
      title: "Chemical / Drug", icon: "⚗", color: C.orange,
      items: ["Benzene (occupational)", "Prior cytotoxic chemotherapy", "Alkylating agents → AML", "Topoisomerase II inhibitors", "Smoking (weak association)"]
    },
    {
      title: "Viral", icon: "🦠", color: C.teal,
      items: ["HTLV-1 → Adult T-cell leukemia", "Epstein-Barr virus (EBV)", "HIV (indirect)", "No direct virus for AML", "Immunosuppression ↑ risk"]
    },
  ];

  cats.forEach((c, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.2 + col * 5.0;
    const y = 1.1 + row * 2.2;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.6, h: 2.0, fill: { color: C.light }, rectRadius: 0.1, line: { color: c.color, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 0.45, fill: { color: c.color } });
    s.addText(`${c.icon}  ${c.title}`, { x: x + 0.1, y, w: 4.4, h: 0.45, fontSize: 11, bold: true, color: C.white, valign: "middle" });
    c.items.forEach((item, j) => {
      s.addText([{ text: "▸ ", options: { color: c.color, bold: true } }, { text: item, options: { color: C.dark } }],
        { x: x + 0.15, y: y + 0.5 + j * 0.29, w: 4.3, h: 0.27, fontSize: 9.5, wrap: true });
    });
  });

  addFooter(s, 7);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 8 — CLINICAL FEATURES: SYSTEMIC
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Clinical Features", "Systemic Manifestations");

  // Human figure silhouette using shapes
  // Body
  s.addShape(pres.ShapeType.ellipse, { x: 4.55, y: 1.05, w: 0.9, h: 0.9, fill: { color: C.lgrey }, line: { color: C.grey, width: 1 } }); // head
  s.addShape(pres.ShapeType.rect, { x: 4.65, y: 1.95, w: 0.7, h: 1.4, fill: { color: C.lgrey }, line: { color: C.grey, width: 1 } }); // torso
  s.addShape(pres.ShapeType.rect, { x: 4.1, y: 2.05, w: 0.55, h: 1.1, fill: { color: C.lgrey }, line: { color: C.grey, width: 1 } }); // L arm
  s.addShape(pres.ShapeType.rect, { x: 5.35, y: 2.05, w: 0.55, h: 1.1, fill: { color: C.lgrey }, line: { color: C.grey, width: 1 } }); // R arm
  s.addShape(pres.ShapeType.rect, { x: 4.62, y: 3.35, w: 0.35, h: 1.1, fill: { color: C.lgrey }, line: { color: C.grey, width: 1 } }); // L leg
  s.addShape(pres.ShapeType.rect, { x: 5.03, y: 3.35, w: 0.35, h: 1.1, fill: { color: C.lgrey }, line: { color: C.grey, width: 1 } }); // R leg

  // Labels left side
  const left = [
    { y: 1.15, lbl: "Pallor / Anaemia", color: C.red, cx: 4.55, cy: 1.5 },
    { y: 1.75, lbl: "Fever, Infections", color: C.orange, cx: 4.55, cy: 2.2 },
    { y: 2.35, lbl: "Hepatosplenomegaly", color: C.purple, cx: 4.65, cy: 2.8 },
    { y: 2.95, lbl: "Bone Pain", color: C.teal, cx: 4.62, cy: 3.5 },
  ];
  left.forEach(l => {
    s.addShape(pres.ShapeType.roundRect, { x: 0.15, y: l.y, w: 3.8, h: 0.48, fill: { color: l.color }, rectRadius: 0.07 });
    s.addText(l.lbl, { x: 0.15, y: l.y, w: 3.8, h: 0.48, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addShape(pres.ShapeType.line, { x: 3.95, y: l.y + 0.24, w: l.cx - 3.95, h: l.cy - l.y - 0.24, line: { color: l.color, width: 1, dashType: "dash" } });
  });

  const right = [
    { y: 1.15, lbl: "Lymphadenopathy", color: C.navy, cx: 5.55, cy: 1.6 },
    { y: 1.75, lbl: "Petechiae / Bruising", color: C.orange, cx: 5.55, cy: 2.2 },
    { y: 2.35, lbl: "CNS Involvement", color: C.teal, cx: 5.0, cy: 1.1 },
    { y: 2.95, lbl: "Weight Loss, Fatigue", color: C.green, cx: 5.03, cy: 3.5 },
  ];
  right.forEach(r => {
    s.addShape(pres.ShapeType.roundRect, { x: 6.05, y: r.y, w: 3.8, h: 0.48, fill: { color: r.color }, rectRadius: 0.07 });
    s.addText(r.lbl, { x: 6.05, y: r.y, w: 3.8, h: 0.48, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addShape(pres.ShapeType.line, { x: r.cx, y: r.cy, w: 6.05 - r.cx, h: r.y + 0.24 - r.cy, line: { color: r.color, width: 1, dashType: "dash" } });
  });

  // Lab findings bar at bottom
  s.addShape(pres.ShapeType.rect, { x: 0.15, y: 4.5, w: 9.7, h: 0.8, fill: { color: C.navy } });
  s.addText("Lab Findings:", { x: 0.25, y: 4.52, w: 1.4, h: 0.35, fontSize: 9.5, bold: true, color: C.gold });
  const labs = ["Anaemia (↓Hb)", "Thrombocytopenia", "WBC variable (↑ or ↓)", "Blasts in peripheral blood", "↑ LDH & Uric Acid"];
  labs.forEach((l, i) => {
    s.addText(`• ${l}`, { x: 1.6 + i * 1.7, y: 4.5, w: 1.65, h: 0.8, fontSize: 8.5, color: C.white, valign: "middle", wrap: true });
  });

  addFooter(s, 8);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 9 — ORAL MANIFESTATIONS (KEY FOR BDS)
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Clinical Features", "Oral Manifestations — Important for Dentistry");

  // Highlight box
  s.addShape(pres.ShapeType.roundRect, { x: 0.2, y: 0.9, w: 9.6, h: 0.55, fill: { color: "FFF3CD" }, rectRadius: 0.08, line: { color: C.gold, width: 1.5 } });
  s.addText("⚠  Oral manifestations may be the FIRST presenting sign of acute leukemia — the dentist plays a critical diagnostic role!", {
    x: 0.3, y: 0.9, w: 9.4, h: 0.55, fontSize: 11, bold: true, color: C.dark, valign: "middle"
  });

  const oralFeatures = [
    { title: "Gingival Enlargement", color: C.red, icon: "🦷",
      desc: "Diffuse hyperplasia due to blast infiltration. Most common in AML with monocytic differentiation (M4/M5). Spongy, reddish, bleeds easily." },
    { title: "Gingival Bleeding", color: C.orange, icon: "🩸",
      desc: "Spontaneous bleeding due to thrombocytopenia. Prolonged bleeding after extraction. May be the first complaint." },
    { title: "Oral Ulcerations", color: C.purple, icon: "🔴",
      desc: "Painful ulcers due to neutropenia and poor healing. Located on mucosa, gingiva, palate. May mimic ANUG or aphthous ulcers." },
    { title: "Mucosal Pallor", color: C.teal, icon: "⬜",
      desc: "Pallor of gingiva and oral mucosa reflects systemic anemia. Look for pale gingival color on examination." },
    { title: "Petechiae & Ecchymosis", color: C.navy, icon: "🟣",
      desc: "Small pinpoint bleeds (petechiae) or larger bruises on palate, buccal mucosa due to platelet dysfunction." },
    { title: "Infections / Candidiasis", color: C.green, icon: "🟡",
      desc: "Opportunistic infections due to neutropenia. Oral candidiasis, herpetic lesions, necrotizing stomatitis." },
  ];

  oralFeatures.forEach((f, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.2 + col * 3.23;
    const y = 1.58 + row * 1.9;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 3.08, h: 1.75, fill: { color: C.light }, rectRadius: 0.1, line: { color: f.color, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.08, h: 0.38, fill: { color: f.color } });
    s.addText(`${f.icon}  ${f.title}`, { x: x + 0.05, y, w: 2.98, h: 0.38, fontSize: 9.5, bold: true, color: C.white, valign: "middle" });
    s.addText(f.desc, { x: x + 0.1, y: y + 0.42, w: 2.88, h: 1.28, fontSize: 8.5, color: C.dark, wrap: true, valign: "top" });
  });

  addFooter(s, 9);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 10 — HISTOPATHOLOGY
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Histopathology", "Morphology, Cytochemistry & Immunophenotyping");

  // Left: ALL vs AML morphology comparison
  // ALL box
  s.addShape(pres.ShapeType.roundRect, { x: 0.2, y: 1.05, w: 4.5, h: 3.2, fill: { color: C.white }, rectRadius: 0.1, line: { color: C.teal, width: 1.5 } });
  s.addShape(pres.ShapeType.rect, { x: 0.2, y: 1.05, w: 4.5, h: 0.42, fill: { color: C.teal } });
  s.addText("ALL – Lymphoblast Morphology", { x: 0.2, y: 1.05, w: 4.5, h: 0.42, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });

  const allFeats = [
    ["Cell size", "Small to medium"],
    ["Nucleus", "Round, condensed chromatin"],
    ["Nucleoli", "Inconspicuous or small"],
    ["Cytoplasm", "Scant, basophilic"],
    ["Auer Rods", "ABSENT"],
    ["TdT", "POSITIVE"],
    ["MPO stain", "Negative"],
  ];
  allFeats.forEach(([k, v], i) => {
    const y = 1.55 + i * 0.38;
    const bg = i % 2 === 0 ? "F0F8FF" : C.white;
    s.addShape(pres.ShapeType.rect, { x: 0.2, y, w: 4.5, h: 0.36, fill: { color: bg } });
    s.addText(k, { x: 0.28, y, w: 1.5, h: 0.36, fontSize: 9, bold: true, color: C.teal, valign: "middle" });
    s.addText(v, { x: 1.9, y, w: 2.7, h: 0.36, fontSize: 9, color: v === "ABSENT" ? C.green : v === "POSITIVE" ? C.teal : C.dark, bold: ["ABSENT","POSITIVE"].includes(v), valign: "middle" });
  });

  // AML box
  s.addShape(pres.ShapeType.roundRect, { x: 5.3, y: 1.05, w: 4.5, h: 3.2, fill: { color: C.white }, rectRadius: 0.1, line: { color: C.red, width: 1.5 } });
  s.addShape(pres.ShapeType.rect, { x: 5.3, y: 1.05, w: 4.5, h: 0.42, fill: { color: C.red } });
  s.addText("AML – Myeloblast Morphology", { x: 5.3, y: 1.05, w: 4.5, h: 0.42, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });

  const amlFeats = [
    ["Cell size", "Large"],
    ["Nucleus", "Fine chromatin, prominent nucleoli"],
    ["Nucleoli", "3-5 prominent nucleoli"],
    ["Cytoplasm", "Moderate, azurophilic granules"],
    ["Auer Rods", "PRESENT (pathognomonic)"],
    ["TdT", "Usually negative"],
    ["MPO stain", "POSITIVE"],
  ];
  amlFeats.forEach(([k, v], i) => {
    const y = 1.55 + i * 0.38;
    const bg = i % 2 === 0 ? "FFF5F5" : C.white;
    s.addShape(pres.ShapeType.rect, { x: 5.3, y, w: 4.5, h: 0.36, fill: { color: bg } });
    s.addText(k, { x: 5.38, y, w: 1.5, h: 0.36, fontSize: 9, bold: true, color: C.red, valign: "middle" });
    s.addText(v, { x: 6.9, y, w: 2.8, h: 0.36, fontSize: 9, color: v.includes("PRESENT") ? C.red : v.includes("POSITIVE") ? C.red : C.dark, bold: v.includes("PRESENT") || v.includes("POSITIVE"), valign: "middle", wrap: true });
  });

  // Bottom immunophenotyping strip
  s.addShape(pres.ShapeType.rect, { x: 0.2, y: 4.35, w: 9.6, h: 0.95, fill: { color: C.navy } });
  s.addText("Immunophenotyping (Flow Cytometry):", { x: 0.3, y: 4.37, w: 3.0, h: 0.3, fontSize: 9.5, bold: true, color: C.gold });
  const markers = [
    { lbl: "B-ALL", val: "CD19, CD10, CD22, TdT+" },
    { lbl: "T-ALL", val: "CD3, CD7, CD5, TdT+" },
    { lbl: "AML", val: "CD13, CD33, CD117, MPO+" },
    { lbl: "APL", val: "CD13+, CD33+, CD34−" },
  ];
  markers.forEach((m, i) => {
    s.addText(`${m.lbl}: `, { x: 0.3 + i * 2.4, y: 4.7, w: 0.6, h: 0.28, fontSize: 8.5, bold: true, color: C.gold });
    s.addText(m.val, { x: 0.9 + i * 2.4, y: 4.7, w: 1.6, h: 0.28, fontSize: 8, color: C.white, wrap: true });
  });

  addFooter(s, 10);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 11 — FAB CLASSIFICATION DIAGRAM
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Histopathology", "FAB Classification of AML");

  const fab = [
    { type: "M0", name: "Undifferentiated AML", key: "No differentiation, MPO−", color: C.grey },
    { type: "M1", name: "AML minimal maturation", key: "Some blasts show MPO+", color: C.teal },
    { type: "M2", name: "AML with maturation", key: "t(8;21), Auer rods common", color: C.navy },
    { type: "M3", name: "Acute Promyelocytic (APL)", key: "t(15;17) PML-RARA, Auer bundles (faggots)", color: C.red },
    { type: "M4", name: "Acute Myelomonocytic", key: "Monocytic + granulocytic; ORAL LESIONS", color: C.orange },
    { type: "M5", name: "Acute Monocytic", key: "Gingival hyperplasia most common", color: C.purple },
    { type: "M6", name: "Acute Erythroid", key: "Erythroid precursors >50%", color: C.green },
    { type: "M7", name: "Acute Megakaryoblastic", key: "CD41/CD61+, marrow fibrosis", color: C.gold },
  ];

  fab.forEach((f, i) => {
    const col = i % 4;
    const row = Math.floor(i / 4);
    const x = 0.18 + col * 2.43;
    const y = 1.05 + row * 2.0;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 2.28, h: 1.8, fill: { color: C.light }, rectRadius: 0.1, line: { color: f.color, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 2.28, h: 0.42, fill: { color: f.color } });
    s.addText(f.type, { x, y, w: 0.55, h: 0.42, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(f.name, { x: x + 0.58, y, w: 1.68, h: 0.42, fontSize: 8.5, bold: true, color: C.white, valign: "middle", wrap: true });
    s.addText(f.key, { x: x + 0.1, y: y + 0.48, w: 2.08, h: 1.28, fontSize: 9, color: C.dark, wrap: true, valign: "top" });
    // highlight oral relevant
    if (f.type === "M4" || f.type === "M5") {
      s.addShape(pres.ShapeType.roundRect, { x: x + 0.08, y: y + 1.45, w: 2.12, h: 0.28, fill: { color: f.color }, rectRadius: 0.05 });
      s.addText("★ Dental relevance", { x: x + 0.08, y: y + 1.45, w: 2.12, h: 0.28, fontSize: 7.5, bold: true, color: C.white, align: "center", valign: "middle" });
    }
  });

  addFooter(s, 11);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 12 — DIAGNOSIS FLOWCHART
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Diagnosis", "Investigative Approach");

  const steps = [
    { label: "Clinical Suspicion\n(pallor, bleeding, fever, gingival swelling)", color: C.navy },
    { label: "CBC & Peripheral Blood Film\n(anaemia, thrombocytopenia, blasts)", color: C.teal },
    { label: "Bone Marrow Aspiration / Biopsy\n(≥20% blasts confirms leukemia)", color: C.orange },
    { label: "Cytochemistry\n(MPO, SBB, Esterase stains)", color: C.purple },
    { label: "Immunophenotyping\n(Flow cytometry — lineage assignment)", color: C.red },
    { label: "Cytogenetics / Molecular\n(FISH, PCR, karyotype — prognosis & treatment)", color: C.green },
  ];

  steps.forEach((step, i) => {
    const y = 1.1 + i * 0.72;
    s.addShape(pres.ShapeType.roundRect, { x: 1.2, y, w: 7.6, h: 0.58, fill: { color: step.color }, rectRadius: 0.08 });
    s.addText(`Step ${i + 1}:  ${step.label}`, { x: 1.3, y, w: 7.4, h: 0.58, fontSize: 10.5, bold: i < 3, color: C.white, valign: "middle", wrap: true });
    if (i < steps.length - 1) {
      s.addShape(pres.ShapeType.line, { x: 5.0, y: y + 0.58, w: 0, h: 0.14, line: { color: C.grey, width: 1.5, endArrowType: "arrow" } });
    }
  });

  // Side note
  s.addShape(pres.ShapeType.roundRect, { x: 0.15, y: 1.1, w: 0.9, h: 4.3, fill: { color: C.navy }, rectRadius: 0.1 });
  s.addText("D\nI\nA\nG\nN\nO\nS\nI\nS", { x: 0.15, y: 1.1, w: 0.9, h: 4.3, fontSize: 11, bold: true, color: C.gold, align: "center", valign: "middle" });

  addFooter(s, 12);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 13 — TREATMENT: OVERVIEW
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Treatment", "Overview of Treatment Strategy");

  // 3-phase horizontal flow
  const phases = [
    {
      n: "Phase 1", title: "INDUCTION", color: C.red,
      goal: "Achieve Complete Remission",
      drugs: ["ALL: Vincristine + Prednisone\n+ L-Asparaginase ± Daunorubicin", "AML: Cytarabine (7 days)\n+ Anthracycline (3 days)\n(\"7+3\" regimen)", "APL: ATRA + Arsenic trioxide\n(>90% cure rate)"],
      result: "≥20% blasts → <5% blasts"
    },
    {
      n: "Phase 2", title: "CONSOLIDATION", color: C.navy,
      goal: "Eliminate Residual Disease",
      drugs: ["High-dose Methotrexate", "High-dose Cytarabine", "Cyclophosphamide", "Rotating drug combinations", "6–8 intensive courses"],
      result: "Prevent relapse"
    },
    {
      n: "Phase 3", title: "MAINTENANCE", color: C.green,
      goal: "Sustain Remission (ALL)",
      drugs: ["6-Mercaptopurine (daily)", "Methotrexate (weekly)", "Duration: 2–3 years", "Outpatient basis", "CNS prophylaxis: IT MTX"],
      result: "Long-term disease-free survival"
    },
  ];

  phases.forEach((ph, i) => {
    const x = 0.2 + i * 3.27;
    s.addShape(pres.ShapeType.roundRect, { x, y: 1.05, w: 3.1, h: 4.25, fill: { color: C.light }, rectRadius: 0.1, line: { color: ph.color, width: 2 } });
    s.addShape(pres.ShapeType.rect, { x, y: 1.05, w: 3.1, h: 0.52, fill: { color: ph.color } });
    s.addText(ph.n, { x, y: 1.05, w: 3.1, h: 0.24, fontSize: 8.5, color: C.white, align: "center", valign: "middle", bold: false });
    s.addText(ph.title, { x, y: 1.29, w: 3.1, h: 0.28, fontSize: 13, bold: true, color: C.white, align: "center" });

    s.addShape(pres.ShapeType.roundRect, { x: x + 0.1, y: 1.63, w: 2.9, h: 0.32, fill: { color: ph.color }, rectRadius: 0.05 });
    s.addText(`Goal: ${ph.goal}`, { x: x + 0.1, y: 1.63, w: 2.9, h: 0.32, fontSize: 8.5, bold: true, color: C.white, align: "center", valign: "middle" });

    ph.drugs.forEach((d, j) => {
      s.addText([{ text: "▸ ", options: { color: ph.color, bold: true } }, { text: d, options: { color: C.dark } }],
        { x: x + 0.15, y: 2.02 + j * 0.54, w: 2.8, h: 0.5, fontSize: 9, wrap: true });
    });

    s.addShape(pres.ShapeType.roundRect, { x: x + 0.1, y: 4.88, w: 2.9, h: 0.3, fill: { color: "E8F5E9" }, rectRadius: 0.05, line: { color: ph.color, width: 0.5 } });
    s.addText(`✓ ${ph.result}`, { x: x + 0.1, y: 4.88, w: 2.9, h: 0.3, fontSize: 8, color: C.green, bold: true, align: "center", valign: "middle" });

    if (i < 2) {
      s.addShape(pres.ShapeType.line, { x: x + 3.1, y: 3.15, w: 0.17, h: 0, line: { color: ph.color, width: 2, endArrowType: "arrow" } });
    }
  });

  addFooter(s, 13);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 14 — TARGETED & TRANSPLANT TREATMENT
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.light } });
  addHeader(s, "Treatment", "Targeted Therapy & Stem Cell Transplantation");

  // Targeted therapies
  s.addText("Targeted Therapies", { x: 0.2, y: 0.95, w: 4.5, h: 0.35, fontSize: 13, bold: true, color: C.navy });
  const targeted = [
    { drug: "Imatinib / Dasatinib", target: "BCR-ABL tyrosine kinase", indication: "Ph+ B-ALL (t9;22)", color: C.teal },
    { drug: "ATRA + Arsenic Trioxide", target: "PML-RARA degradation", indication: "APL (M3 AML)", color: C.red },
    { drug: "Midostaurin / Gilteritinib", target: "FLT3 kinase", indication: "FLT3-mutated AML", color: C.orange },
    { drug: "Venetoclax", target: "BCL-2 anti-apoptotic", indication: "Older/unfit AML patients", color: C.purple },
    { drug: "Enasidenib / Ivosidenib", target: "IDH1/IDH2 mutations", indication: "IDH-mutated AML", color: C.green },
    { drug: "Rituximab", target: "CD20 B-cell antigen", indication: "CD20+ Ph-neg B-ALL", color: C.navy },
  ];

  targeted.forEach((t, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.2 + col * 4.6;
    const y = 1.38 + row * 0.78;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.4, h: 0.68, fill: { color: C.white }, rectRadius: 0.08, line: { color: t.color, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 0.08, h: 0.68, fill: { color: t.color } });
    s.addText(t.drug, { x: x + 0.18, y: y + 0.03, w: 4.1, h: 0.28, fontSize: 10, bold: true, color: t.color });
    s.addText(`Target: ${t.target}  |  Use: ${t.indication}`, { x: x + 0.18, y: y + 0.33, w: 4.1, h: 0.3, fontSize: 8.5, color: C.grey, wrap: true });
  });

  // SCT box
  s.addShape(pres.ShapeType.roundRect, { x: 0.2, y: 3.75, w: 9.6, h: 1.55, fill: { color: C.navy }, rectRadius: 0.1 });
  s.addText("🔬  Hematopoietic Stem Cell Transplantation (HSCT)", { x: 0.35, y: 3.8, w: 9.3, h: 0.38, fontSize: 12, bold: true, color: C.gold });
  const sctPts = [
    "Allogeneic SCT: donor marrow replaces patient's leukemic marrow — only curative option for high-risk AML",
    "Autologous SCT: patient's own cells collected in remission and reinfused — used for some ALL patients",
    "Indications: high-risk cytogenetics, relapsed/refractory disease, failure of first-line therapy",
    "Complications: Graft-vs-Host Disease (GvHD), infections, organ toxicity"
  ];
  sctPts.forEach((pt, i) => {
    s.addText(`• ${pt}`, { x: 0.35, y: 4.22 + i * 0.27, w: 9.3, h: 0.25, fontSize: 8.5, color: C.white, wrap: true });
  });

  addFooter(s, 14);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 15 — DENTAL MANAGEMENT OF LEUKEMIA PATIENTS
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.white } });
  addHeader(s, "Dental Considerations", "Management of Leukemia Patients in Dental Practice");

  const sections = [
    {
      title: "Before Treatment (Pre-chemo)", color: C.navy, icon: "📋",
      items: ["Complete oral prophylaxis & scaling", "Extract non-restorable teeth", "Remove sharp/fractured restorations", "Treat active infections urgently", "Patient/parent education on oral hygiene"]
    },
    {
      title: "During Treatment", color: C.red, icon: "⚕",
      items: ["Avoid elective procedures", "Emergency only — consult physician", "Platelet count >50,000 before procedures", "Antibiotic cover for invasive procedures", "Manage mucositis: chlorhexidine rinses"]
    },
    {
      title: "After Treatment (Remission)", color: C.green, icon: "✅",
      items: ["Regular 3-monthly recall visits", "Monitor for drug side effects on teeth", "Fluoride therapy for xerostomia", "Screen for secondary oral cancers", "Psychological support and follow-up"]
    },
  ];

  sections.forEach((sec, i) => {
    const x = 0.2 + i * 3.27;
    s.addShape(pres.ShapeType.roundRect, { x, y: 1.05, w: 3.1, h: 4.25, fill: { color: C.light }, rectRadius: 0.1, line: { color: sec.color, width: 2 } });
    s.addShape(pres.ShapeType.rect, { x, y: 1.05, w: 3.1, h: 0.5, fill: { color: sec.color } });
    s.addText(`${sec.icon}  ${sec.title}`, { x: x + 0.05, y: 1.05, w: 3.0, h: 0.5, fontSize: 9.5, bold: true, color: C.white, valign: "middle", wrap: true });
    sec.items.forEach((item, j) => {
      s.addShape(pres.ShapeType.roundRect, { x: x + 0.12, y: 1.65 + j * 0.7, w: 2.86, h: 0.58, fill: { color: C.white }, rectRadius: 0.07, line: { color: sec.color, width: 0.5 } });
      s.addText(item, { x: x + 0.2, y: 1.65 + j * 0.7, w: 2.7, h: 0.58, fontSize: 9, color: C.dark, wrap: true, valign: "middle" });
    });
  });

  addFooter(s, 15);
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 16 — SUMMARY
// ═══════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.dark } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.gold } });
  s.addShape(pres.ShapeType.ellipse, { x: 6.8, y: -0.5, w: 4.0, h: 4.0, fill: { color: "1B2A5A" }, line: { color: "253570", width: 1 } });

  s.addText("KEY TAKEAWAYS", { x: 0.4, y: 0.4, w: 6, h: 0.5, fontSize: 22, bold: true, color: C.gold, charSpacing: 2 });

  const takeaways = [
    { n: "1", txt: "Acute leukemia = clonal proliferation of immature hematopoietic blasts with maturation arrest" },
    { n: "2", txt: "B-ALL is most common in children; AML is most common in adults over 60 years" },
    { n: "3", txt: "Diagnosis requires ≥20% blasts in marrow, confirmed by morphology + immunophenotyping" },
    { n: "4", txt: "Oral signs (gingival hyperplasia, bleeding, ulcers) may be the FIRST presentation — dentist must recognize!" },
    { n: "5", txt: "M4/M5 AML subtypes most commonly produce oral/gingival manifestations" },
    { n: "6", txt: "Treatment: Induction → Consolidation → Maintenance ± HSCT for high-risk cases" },
    { n: "7", txt: "APL (M3) is treated with ATRA + arsenic trioxide — >90% cure rate" },
  ];

  takeaways.forEach((t, i) => {
    s.addShape(pres.ShapeType.ellipse, { x: 0.4, y: 1.05 + i * 0.62, w: 0.38, h: 0.38, fill: { color: C.gold } });
    s.addText(t.n, { x: 0.4, y: 1.05 + i * 0.62, w: 0.38, h: 0.38, fontSize: 11, bold: true, color: C.dark, align: "center", valign: "middle" });
    s.addText(t.txt, { x: 0.9, y: 1.07 + i * 0.62, w: 8.8, h: 0.5, fontSize: 10, color: C.white, wrap: true, valign: "middle" });
  });

  s.addText("Oral Pathology & Medicine  |  3rd Year BDS  |  Acute Leukemia", { x: 0.4, y: 5.28, w: 9.2, h: 0.25, fontSize: 8, color: C.lgrey, italic: true });
  addFooter(s, 16);
}

// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/acute-leukemia-bds/Acute_Leukemia_BDS.pptx" })
  .then(() => console.log("✅ Presentation saved successfully."))
  .catch(e => { console.error("Error:", e); process.exit(1); });
Running Command

cd /home/daytona/workspace/acute-leukemia-bds && node build.js 2>&1

Running Command

ls -lh /home/daytona/workspace/acute-leukemia-bds/Acute_Leukemia_BDS.pptx

Your presentation is ready! Here is the download link:

Acute Leukemia BDS

Presentation · PPTX


The deck has 16 diagram-rich slides with a dark navy/red/gold color theme:
SlideContent
1Title slide with topic chips
2Visual lecture outline (6 color-coded cards)
3Introduction - Definition + ALL vs AML vs B-ALL comparison columns
4Epidemiology stat boxes + simplified WHO classification table
5Pathology - Normal haemopoiesis vs leukemic transformation flowchart
6Marrow failure hub-and-spoke diagram (6 consequences)
7Etiology - 4-category grid (Genetic, Radiation, Chemical, Viral)
8Clinical features - body silhouette with labeled pointers + lab findings bar
9Oral manifestations - 6 cards (gingival hyperplasia, bleeding, ulcers, pallor, petechiae, candidiasis) with dental relevance warning
10Histopathology - ALL vs AML comparison table + immunophenotyping strip
11FAB classification M0-M7 with M4/M5 highlighted as dentally relevant
12Diagnosis flowchart (6-step ladder)
13Treatment - 3-phase flow (Induction → Consolidation → Maintenance)
14Targeted therapies + HSCT overview
15Dental management (pre/during/post chemotherapy columns)
16Key takeaways summary
This is a shared conversation. Sign in to Orris to start your own chat.