Create a ppt on acute lymphocytic leukaemia including histological features and clinical features add images of the same make a presentation for 3rd bds students

Reading File
Reading File
Reading File
Finding Sources
Searching the Web

acute lymphoblastic leukemia histology microscopy images ALL pathology

Reading File
Reading File
Loading Image
Loading Image
Reading File
Loading Image
Loading Image
Reading File
Searching the Web

acute lymphoblastic leukemia clinical features child petechiae lymphadenopathy image site:wikipedia.org OR site:wikimedia.org

Reading File
Loading Image
Loading Image
Finding Sources
Reading File
Running Command

mkdir -p /home/daytona/workspace/ALL-presentation && ls /home/daytona/workspace/…

Writing File

~/ALL-presentation/create_ppt.js

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

// ── colour palette (deep navy + crimson accent + white) ──────────────────────
const NAVY     = "0D2B55";
const NAVY_MID = "16407A";
const CRIMSON  = "C0392B";
const GOLD     = "E8A838";
const LIGHT_BG = "EBF2FA";
const WHITE    = "FFFFFF";
const DARK_TXT = "1A1A2E";
const GREY_TXT = "4A4A6A";

// ── download images as base64 ────────────────────────────────────────────────
const imgUrls = [
  "https://www.rarediseaseadvisor.com/wp-content/uploads/sites/25/2024/03/Acute-lymphoblastic-leukemia-histology_G_1394232965.jpg",
  "https://www.pathologyoutlines.com/imgau/lymphnodesALLTsang12.jpg",
  "https://www.pathologyoutlines.com/imgau/lymphnodesALLTsang02.jpg",
  "https://www.pathologyoutlines.com/imgau/lymphnodesALLTsang10.jpg",
  "https://cdn.orris.care/cdss_images/fdb5c8fe71e065c39b004c65cbed67f5cf283716771ad3ff5c3803b9d3115fb5.png"
];

console.log("Fetching images...");
const imgs = JSON.parse(
  execSync(
    `node /home/daytona/skills/shared/scripts/fetch_images.js ${imgUrls.map(u => `"${u}"`).join(" ")}`,
    { maxBuffer: 50 * 1024 * 1024 }
  ).toString()
);
console.log("Image fetch results:", imgs.map(i => ({ url: i.url.slice(-40), error: i.error, hasData: !!i.base64 })));

const [imgBloodSmearColor, imgHistoHE, imgHistoLN, imgBloodSmearMono, imgDiagram] = imgs;

// ── helpers ──────────────────────────────────────────────────────────────────
function navBar(slide, title) {
  // top accent bar
  slide.addShape("rect", { x: 0, y: 0, w: 10, h: 0.12, fill: { color: CRIMSON }, line: { color: CRIMSON } });
  // navy header band
  slide.addShape("rect", { x: 0, y: 0.12, w: 10, h: 0.72, fill: { color: NAVY }, line: { color: NAVY } });
  slide.addText(title, {
    x: 0.3, y: 0.12, w: 9.4, h: 0.72,
    fontSize: 18, bold: true, color: WHITE,
    fontFace: "Calibri", valign: "middle", margin: 0
  });
}

function footerBar(slide, tag) {
  slide.addShape("rect", { x: 0, y: 5.37, w: 10, h: 0.25, fill: { color: NAVY }, line: { color: NAVY } });
  slide.addText(`Acute Lymphocytic Leukaemia  |  3rd BDS  |  ${tag}`, {
    x: 0.2, y: 5.37, w: 9.6, h: 0.25,
    fontSize: 7.5, color: "AABBDD", fontFace: "Calibri", valign: "middle", margin: 0
  });
}

function sectionCard(slide, x, y, w, h, titleText, bullets, accentColor = CRIMSON) {
  slide.addShape("rect", { x, y, w, h, fill: { color: WHITE }, line: { color: accentColor, pt: 1.5 },
    shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 }
  });
  slide.addShape("rect", { x, y, w, h: 0.34, fill: { color: accentColor }, line: { color: accentColor } });
  slide.addText(titleText, {
    x: x + 0.1, y, w: w - 0.2, h: 0.34,
    fontSize: 9.5, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0
  });
  const bulletItems = bullets.map((b, i) => ({
    text: b,
    options: { bullet: { type: "bullet" }, breakLine: i < bullets.length - 1, fontSize: 8.5, color: DARK_TXT, fontFace: "Calibri" }
  }));
  slide.addText(bulletItems, { x: x + 0.12, y: y + 0.38, w: w - 0.24, h: h - 0.44, valign: "top" });
}

// ── presentation ─────────────────────────────────────────────────────────────
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author  = "3rd BDS Oral Pathology";
pres.title   = "Acute Lymphocytic Leukaemia";

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — Title slide
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:NAVY }, line:{ color:NAVY } });
  // diagonal crimson accent
  s.addShape("rect", { x:6.8, y:0, w:3.2, h:5.625, fill:{ color:NAVY_MID }, line:{ color:NAVY_MID } });
  // gold top bar
  s.addShape("rect", { x:0, y:0, w:10, h:0.1, fill:{ color:GOLD }, line:{ color:GOLD } });
  // crimson vertical accent
  s.addShape("rect", { x:6.75, y:0.1, w:0.06, h:5.525, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });

  // blood smear image on the right half
  if (imgBloodSmearColor.base64) {
    s.addImage({ data: imgBloodSmearColor.base64, x:6.85, y:0.15, w:3.05, h:5.45, transparency:25 });
  }

  // main text block
  s.addText("ACUTE LYMPHOCYTIC", {
    x:0.5, y:1.1, w:6.0, h:0.75,
    fontSize:30, bold:true, color:WHITE, fontFace:"Calibri", charSpacing:2
  });
  s.addText("LEUKAEMIA", {
    x:0.5, y:1.85, w:6.0, h:0.75,
    fontSize:36, bold:true, color:GOLD, fontFace:"Calibri", charSpacing:3
  });
  s.addShape("rect", { x:0.5, y:2.65, w:3.5, h:0.05, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  s.addText("(ALL / Acute Lymphoblastic Leukemia)", {
    x:0.5, y:2.75, w:6.0, h:0.4,
    fontSize:12, italic:true, color:"AABBDD", fontFace:"Calibri"
  });
  s.addText([
    { text:"Presented for: ", options:{ bold:false } },
    { text:"3rd BDS Students", options:{ bold:true } }
  ], { x:0.5, y:3.3, w:6.0, h:0.35, fontSize:12, color:WHITE, fontFace:"Calibri" });
  s.addText("Oral & General Pathology", {
    x:0.5, y:3.7, w:6.0, h:0.35,
    fontSize:11, italic:true, color:"88AACC", fontFace:"Calibri"
  });

  // badge
  s.addShape("rect", { x:0.5, y:4.6, w:2.2, h:0.6, fill:{ color:CRIMSON }, line:{ color:CRIMSON },
    shadow:{ type:"outer", color:"000000", blur:6, offset:2, angle:135, opacity:0.3 }
  });
  s.addText("ORAL PATHOLOGY", { x:0.5, y:4.6, w:2.2, h:0.6,
    fontSize:9, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle"
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — Overview / Introduction
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:LIGHT_BG }, line:{ color:LIGHT_BG } });
  navBar(s, "Overview & Introduction");
  footerBar(s, "Introduction");

  // left big text block
  s.addShape("rect", { x:0.3, y:1.0, w:5.6, h:4.1, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 },
    shadow:{ type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.08 }
  });
  s.addShape("rect", { x:0.3, y:1.0, w:5.6, h:0.4, fill:{ color:NAVY }, line:{ color:NAVY } });
  s.addText("What is ALL?", { x:0.4, y:1.0, w:5.4, h:0.4,
    fontSize:13, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });

  const defBullets = [
    "Neoplasm of immature B (pre-B) or T (pre-T) lymphoid cells called LYMPHOBLASTS",
    "Most common cancer of children — ~2500 new cases/year in USA",
    "85% are B-ALL; 15% are T-ALL",
    "B-ALL peaks at ~3 years of age; T-ALL peaks in adolescence",
    "Slightly more frequent in boys; highest incidence in Hispanic/Latino children",
    "Diagnosis requires ≥20% blasts of lymphoid origin in bone marrow",
    "Classified as Acute Lymphoblastic Leukemia/Lymphoma (ALL/LBL)"
  ];
  const defItems = defBullets.map((b,i) => ({
    text: b,
    options: { bullet:{ type:"bullet" }, breakLine: i < defBullets.length-1,
               fontSize:9, color:DARK_TXT, fontFace:"Calibri" }
  }));
  s.addText(defItems, { x:0.45, y:1.45, w:5.35, h:3.5, valign:"top" });

  // right: 3 stat cards
  const cards = [
    { label:"Most Common\nChildhood Cancer", val:"#1", col:CRIMSON },
    { label:"5-year Survival\n(Children)", val:"~90%", col:NAVY },
    { label:"B-ALL\nProportion", val:"85%", col:"1E7A4C" }
  ];
  cards.forEach((c,i) => {
    const cx = 6.2, cy = 1.0 + i*1.35;
    s.addShape("rect", { x:cx, y:cy, w:3.5, h:1.2, fill:{ color:c.col }, line:{ color:c.col },
      shadow:{ type:"outer", color:"000000", blur:6, offset:2, angle:135, opacity:0.2 }
    });
    s.addText(c.val, { x:cx, y:cy+0.05, w:3.5, h:0.65,
      fontSize:26, bold:true, color:GOLD, fontFace:"Calibri", align:"center", valign:"bottom"
    });
    s.addText(c.label, { x:cx, y:cy+0.7, w:3.5, h:0.45,
      fontSize:9, color:WHITE, fontFace:"Calibri", align:"center", valign:"top"
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — Classification (FAB + Immunophenotypic)
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:"F5F8FC" }, line:{ color:"F5F8FC" } });
  navBar(s, "Classification of ALL");
  footerBar(s, "Classification");

  // FAB table card
  s.addShape("rect", { x:0.3, y:1.0, w:4.5, h:4.1, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
  s.addShape("rect", { x:0.3, y:1.0, w:4.5, h:0.38, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  s.addText("FAB Morphological Classification", { x:0.4, y:1.0, w:4.3, h:0.38,
    fontSize:11, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });

  const fabRows = [
    ["Type","Cell Size","Nucleus","Nucleoli","Cytoplasm"],
    ["L1","Small","Regular","Indistinct","Scant"],
    ["L2","Large","Irregular","Prominent","Moderate"],
    ["L3\n(Burkitt)","Large","Oval","Prominent","Vacuolated"]
  ];
  const colW = [0.6, 0.9, 0.9, 0.9, 0.9];
  fabRows.forEach((row, ri) => {
    const ry = 1.42 + ri * 0.7;
    const isHeader = ri === 0;
    row.forEach((cell, ci) => {
      const cx = 0.35 + colW.slice(0,ci).reduce((a,b)=>a+b,0);
      if(isHeader){
        s.addShape("rect", { x:cx, y:ry-0.04, w:colW[ci]-0.02, h:0.36,
          fill:{ color:NAVY }, line:{ color:NAVY }
        });
      }
      s.addText(cell, { x:cx+0.02, y:ry, w:colW[ci]-0.06, h:0.28,
        fontSize: isHeader ? 7.5 : 8, bold: isHeader, color: isHeader ? WHITE : DARK_TXT,
        fontFace:"Calibri", align:"center", valign:"middle"
      });
    });
  });

  s.addText("* L1 is most common in children\n* L2 is most common in adults\n* L3 is Burkitt-type (rare)", {
    x:0.35, y:4.3, w:4.3, h:0.7,
    fontSize:7.5, italic:true, color:GREY_TXT, fontFace:"Calibri"
  });

  // Immunophenotypic card
  s.addShape("rect", { x:5.1, y:1.0, w:4.6, h:4.1, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
  s.addShape("rect", { x:5.1, y:1.0, w:4.6, h:0.38, fill:{ color:NAVY }, line:{ color:NAVY } });
  s.addText("Immunophenotypic Classification", { x:5.2, y:1.0, w:4.4, h:0.38,
    fontSize:11, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });

  const immunoBlocks = [
    { type:"Pre-B ALL (B-ALL)", color:CRIMSON, markers:"TdT+, HLA-DR+, CD19+, CD10+/-, CD34+\nSurface Ig absent" },
    { type:"T-ALL", color:"1E6B8C", markers:"TdT+, CD7+, CD3+\nHLA-DR-, CD19-, CD10-" },
    { type:"Common ALL", color:"1E7A4C", markers:"CD10+ (CALLA)\nMost favorable prognosis in children" }
  ];
  immunoBlocks.forEach((blk, i) => {
    const by = 1.48 + i * 1.2;
    s.addShape("rect", { x:5.2, y:by, w:4.3, h:1.1, fill:{ color:blk.color+"22" }, line:{ color:blk.color, pt:1.5 } });
    s.addShape("rect", { x:5.2, y:by, w:0.08, h:1.1, fill:{ color:blk.color }, line:{ color:blk.color } });
    s.addText(blk.type, { x:5.35, y:by+0.05, w:4.0, h:0.28,
      fontSize:9.5, bold:true, color:blk.color, fontFace:"Calibri"
    });
    s.addText(blk.markers, { x:5.35, y:by+0.35, w:4.0, h:0.68,
      fontSize:8, color:DARK_TXT, fontFace:"Calibri"
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — Etiology & Pathogenesis
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:LIGHT_BG }, line:{ color:LIGHT_BG } });
  navBar(s, "Etiology & Pathogenesis");
  footerBar(s, "Etiology & Pathogenesis");

  // Diagram image on right
  if (imgDiagram.base64) {
    s.addShape("rect", { x:5.7, y:0.95, w:4.0, h:3.8, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data: imgDiagram.base64, x:5.75, y:1.0, w:3.9, h:3.7 });
    s.addText("Origin of lymphoid neoplasms (Robbins, 2024)", {
      x:5.7, y:4.75, w:4.0, h:0.28,
      fontSize:6.5, italic:true, color:GREY_TXT, fontFace:"Calibri", align:"center"
    });
  }

  sectionCard(s, 0.3, 1.0, 5.1, 1.65, "Predisposing Factors", [
    "Ionizing radiation (prenatal X-ray exposure, nuclear fallout)",
    "Chemical exposure — benzene, alkylating agents",
    "Viral association — HTLV-1 (T-ALL)",
    "Immunodeficiency syndromes (Wiskott-Aldrich, ataxia-telangiectasia)",
    "Down syndrome — 20x increased risk"
  ], CRIMSON);

  sectionCard(s, 0.3, 2.75, 5.1, 1.65, "Key Molecular Mechanisms", [
    "B-ALL: mutations in PAX5, TCF3, ETV6, RUNX1 (transcription factors)",
    "T-ALL: NOTCH1 mutations (50-70% of cases)",
    "t(9;22) Philadelphia chromosome → BCR-ABL fusion (25% adults, 3% children)",
    "t(12;21) ETV6-RUNX1 — most common translocation in children (25%), GOOD prognosis",
    "Hyperdiploidy (>50 chr) — good prognosis; Hypodiploidy — poor prognosis",
    "Mutations cause maturation arrest + increased self-renewal of blast cells"
  ], NAVY);

  s.addShape("rect", { x:0.3, y:4.5, w:5.1, h:0.7, fill:{ color:GOLD+"33" }, line:{ color:GOLD, pt:1 } });
  s.addText("Key concept: <10 mutations are sufficient to produce full-blown ALL (deep sequencing data)", {
    x:0.4, y:4.5, w:4.9, h:0.7,
    fontSize:8.5, italic:true, color:"6A4000", fontFace:"Calibri", valign:"middle"
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 5 — Clinical Features
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:"F5F8FC" }, line:{ color:"F5F8FC" } });
  navBar(s, "Clinical Features");
  footerBar(s, "Clinical Features");

  // Blood smear image on left
  if (imgBloodSmearMono.base64) {
    s.addShape("rect", { x:0.3, y:1.0, w:3.2, h:2.6,
      fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 },
      shadow:{ type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.1 }
    });
    s.addImage({ data: imgBloodSmearMono.base64, x:0.35, y:1.05, w:3.1, h:2.3 });
    s.addText("Peripheral blood smear — lymphoblasts (Giemsa)", {
      x:0.3, y:3.32, w:3.2, h:0.28, fontSize:6.5, italic:true, color:GREY_TXT,
      fontFace:"Calibri", align:"center"
    });
  }

  // Feature cards
  const features = [
    {
      title:"Due to Bone Marrow Failure",
      items:["Anaemia → pallor, fatigue, exertional dyspnoea","Thrombocytopenia → petechiae, purpura, bleeding","Neutropenia → recurrent infections, fever","Pancytopenia on CBC"]
    },
    {
      title:"Organ Infiltration Signs",
      items:["Lymphadenopathy (generalised, non-tender)","Hepatosplenomegaly","Bone pain & tenderness (expansion of marrow)","Thymic enlargement/mediastinal mass (T-ALL)"]
    },
    {
      title:"CNS Involvement",
      items:["Headache, nausea, vomiting","Cranial nerve palsies","CNS is a sanctuary site — needs prophylaxis","Meningeal infiltration on CSF exam"]
    },
    {
      title:"Other Features",
      items:["Testicular enlargement (boys) — another sanctuary site","Weight loss, malaise, night sweats","Oral manifestations: gingival bleeding, mucosal pallor","Hyperleukocytosis → leucostasis in severe cases"]
    }
  ];

  const startX = [3.7, 6.85, 3.7, 6.85];
  const startY = [1.0, 1.0, 3.05, 3.05];
  const colors = [CRIMSON, NAVY, "1E7A4C", "7B3FA0"];
  features.forEach((f, i) => {
    sectionCard(s, startX[i], startY[i], 2.9, 1.95, f.title, f.items, colors[i]);
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 6 — Histological Features (MAIN SLIDE)
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:LIGHT_BG }, line:{ color:LIGHT_BG } });
  navBar(s, "Histological & Morphological Features");
  footerBar(s, "Histology");

  // Left: histology images stacked
  if (imgHistoHE.base64) {
    s.addShape("rect", { x:0.25, y:1.0, w:3.2, h:2.5, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data: imgHistoHE.base64, x:0.3, y:1.05, w:3.1, h:2.2 });
    s.addText("H&E: Bone marrow — sheets of lymphoblasts (small, uniform)", {
      x:0.25, y:3.25, w:3.2, h:0.28, fontSize:6.5, italic:true, color:GREY_TXT,
      fontFace:"Calibri", align:"center"
    });
  }
  if (imgHistoLN.base64) {
    s.addShape("rect", { x:0.25, y:3.6, w:3.2, h:1.7, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data: imgHistoLN.base64, x:0.3, y:3.65, w:3.1, h:1.4 });
    s.addText("H&E: Lymph node — diffuse infiltration by blasts", {
      x:0.25, y:5.07, w:3.2, h:0.25, fontSize:6.5, italic:true, color:GREY_TXT,
      fontFace:"Calibri", align:"center"
    });
  }

  // Right: histological features text blocks
  const histo1 = [
    "Small to medium-sized cells (10-20 μm)",
    "HIGH nuclear-to-cytoplasmic (N:C) ratio",
    "Round to slightly irregular nuclear contour",
    "Finely stippled (salt-and-pepper) chromatin",
    "Nucleoli: absent/indistinct (L1) or prominent (L2/L3)",
    "Scant pale cytoplasm — NO granules",
    "Delicate nuclear membrane"
  ];
  const histo2 = [
    "Bone marrow: hypercellular — blasts >20% nucleated cells",
    "Diffuse effacement of normal marrow architecture",
    "Starry-sky pattern may occur (like Burkitt lymphoma in L3)",
    "Lymph nodes: diffuse paracortical/cortical obliteration",
    "Spleen: diffuse white pulp expansion",
    "Thymus: cortical infiltration (T-ALL)",
    "Mitotic figures frequently seen"
  ];

  sectionCard(s, 3.7, 1.0, 2.95, 2.6, "Lymphoblast Cytology", histo1, CRIMSON);
  sectionCard(s, 6.75, 1.0, 2.95, 2.6, "Tissue Architecture", histo2, NAVY);

  // Special stains bar
  s.addShape("rect", { x:3.7, y:3.7, w:6.0, h:1.6, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
  s.addShape("rect", { x:3.7, y:3.7, w:6.0, h:0.36, fill:{ color:"7B3FA0" }, line:{ color:"7B3FA0" } });
  s.addText("Special Stains & Immunohistochemistry", { x:3.8, y:3.7, w:5.8, h:0.36,
    fontSize:10, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });
  const stainRows = [
    ["PAS (Periodic Acid-Schiff)", "Coarse block positivity (CHARACTERISTIC of ALL)"],
    ["Sudan Black B / MPO", "NEGATIVE (distinguishes from AML)"],
    ["TdT (Terminal Deoxynucleotidyl Transferase)", "Nuclear positivity — hallmark marker"],
    ["CD10 (CALLA)", "Positive in most B-ALL — good prognostic marker"],
    ["CD19, CD22 (B-ALL) | CD7, CD3 (T-ALL)", "Lineage-specific markers on flow cytometry"]
  ];
  stainRows.forEach((row, i) => {
    const ry = 4.1 + i * 0.22;
    s.addText("• " + row[0], { x:3.8, y:ry, w:3.1, h:0.2, fontSize:7.5, bold:true, color:DARK_TXT, fontFace:"Calibri" });
    s.addText(row[1], { x:6.95, y:ry, w:2.7, h:0.2, fontSize:7.5, color:GREY_TXT, fontFace:"Calibri" });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 7 — Peripheral Blood Smear (dedicated image slide)
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:DARK_TXT }, line:{ color:DARK_TXT } });
  navBar(s, "Peripheral Blood Smear — Microscopic Appearance");
  footerBar(s, "Peripheral Blood Smear");

  if (imgBloodSmearColor.base64) {
    s.addImage({ data: imgBloodSmearColor.base64, x:0.3, y:0.95, w:5.5, h:4.3,
      shadow:{ type:"outer", color:"000000", blur:8, offset:3, angle:135, opacity:0.5 }
    });
  }

  // annotation callouts
  const callouts = [
    { label:"Large lymphoblast", desc:"High N:C ratio, irregular nucleus", y:1.15 },
    { label:"Small lymphoblast", desc:"Round nucleus, scant cytoplasm", y:1.95 },
    { label:"Normal neutrophil", desc:"For size comparison — multilobed", y:2.75 },
    { label:"Erythrocytes", desc:"Normal red cells — anemia evident", y:3.55 },
    { label:"PAS positivity", desc:"Not shown here — see bone marrow", y:4.35 }
  ];
  callouts.forEach(c => {
    s.addShape("rect", { x:6.0, y:c.y, w:3.7, h:0.68, fill:{ color:WHITE+"22" }, line:{ color:WHITE+"55", pt:0.5 } });
    s.addText(c.label, { x:6.1, y:c.y+0.04, w:3.5, h:0.24,
      fontSize:9.5, bold:true, color:GOLD, fontFace:"Calibri"
    });
    s.addText(c.desc, { x:6.1, y:c.y+0.3, w:3.5, h:0.32,
      fontSize:8, color:WHITE, fontFace:"Calibri"
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 8 — Investigations & Diagnosis
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:"F5F8FC" }, line:{ color:"F5F8FC" } });
  navBar(s, "Investigations & Diagnosis");
  footerBar(s, "Investigations");

  const invGroups = [
    {
      title:"Complete Blood Count (CBC)",
      col:CRIMSON,
      items:["WBC: variable (may be very high, normal or low)","Anaemia (normocytic, normochromic)","Thrombocytopenia (<100,000/μL in most)","Peripheral smear: lymphoblasts present"]
    },
    {
      title:"Bone Marrow Aspiration & Biopsy",
      col:NAVY,
      items:["GOLD STANDARD for diagnosis","Blasts ≥20% of nucleated cells (WHO 2022)","Hypercellular marrow with sheets of blasts","Trephine biopsy for architecture"]
    },
    {
      title:"Immunophenotyping (Flow Cytometry)",
      col:"1E7A4C",
      items:["Distinguishes B-ALL from T-ALL","Panel: TdT, CD19, CD10, CD7, CD3","Essential for lineage assignment","Identifies aberrant antigen expression"]
    },
    {
      title:"Cytogenetics & Molecular Studies",
      col:"7B3FA0",
      items:["Karyotype: hyperdiploidy / hypodiploidy / translocations","FISH / PCR: detect t(9;22), t(12;21), KMT2A","Minimal residual disease (MRD) monitoring","Next generation sequencing in select cases"]
    },
    {
      title:"CSF Analysis (Lumbar Puncture)",
      col:"B05A00",
      items:["CNS involvement in ~5% at diagnosis","Blasts in CSF = CNS leukemia","Performed after platelet correction","Intrathecal chemotherapy given prophylactically"]
    },
    {
      title:"Imaging Studies",
      col:"1E5E7A",
      items:["CXR / CT chest: mediastinal widening (T-ALL)","Ultrasound abdomen: hepatosplenomegaly","Skeletal survey: osteopenia, lytic lesions","MRI: CNS / spinal cord involvement"]
    }
  ];

  const colX = [0.25, 3.45, 6.65];
  const rowY = [1.0, 3.1];
  invGroups.forEach((g, i) => {
    const xi = i % 3, yi = Math.floor(i / 3);
    sectionCard(s, colX[xi], rowY[yi], 2.95, 1.95, g.title, g.items, g.col);
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 9 — Treatment & Prognosis
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:LIGHT_BG }, line:{ color:LIGHT_BG } });
  navBar(s, "Treatment & Prognosis");
  footerBar(s, "Treatment & Prognosis");

  sectionCard(s, 0.25, 1.0, 3.0, 2.7, "Chemotherapy Phases", [
    "1. INDUCTION (4-6 weeks): VCR + Pred + Asparaginase ± Daunorubicin → CR in >95% children",
    "2. CNS PROPHYLAXIS: Intrathecal MTX / CNS irradiation",
    "3. CONSOLIDATION: High-dose MTX, 6-MP",
    "4. MAINTENANCE (2-3 years): Daily 6-MP + weekly MTX",
    "Total duration: ~2-3 years"
  ], NAVY);

  sectionCard(s, 0.25, 3.8, 3.0, 1.5, "Targeted Therapy", [
    "Imatinib / Dasatinib: BCR-ABL+ (Ph+ ALL)",
    "CD19-directed CAR-T cell therapy (Tisagenlecleucel)",
    "Blinatumomab: bispecific T-cell engager (anti-CD3/CD19)"
  ], CRIMSON);

  // Prognostic factors table
  s.addShape("rect", { x:3.5, y:1.0, w:6.2, h:4.3, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
  s.addShape("rect", { x:3.5, y:1.0, w:6.2, h:0.38, fill:{ color:"1E7A4C" }, line:{ color:"1E7A4C" } });
  s.addText("Prognostic Factors", { x:3.6, y:1.0, w:6.0, h:0.38,
    fontSize:12, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });

  const progTable = [
    ["Factor","Favorable","Unfavorable"],
    ["Age","1-10 years","<1 yr or >10 yrs"],
    ["WBC at diagnosis","<50,000/μL",">50,000/μL"],
    ["Cytogenetics","Hyperdiploidy, t(12;21)","Hypodiploidy, t(9;22)"],
    ["Response to Rx","Early CR","Slow/no response"],
    ["MRD at end induction","MRD negative","MRD positive"],
    ["Immunophenotype","B-ALL (common)","T-ALL, Pro-B ALL"],
    ["5-yr survival (children)","~90%","~40-60%"]
  ];

  progTable.forEach((row, ri) => {
    const ry = 1.43 + ri * 0.43;
    const isH = ri === 0;
    const fills = ["F0F8FF","E8F5E9","FFF3E0"];
    const bgCol = isH ? "E8F0FB" : fills[(ri-1)%3];
    s.addShape("rect", { x:3.55, y:ry-0.02, w:6.0, h:0.42, fill:{ color:bgCol }, line:{ color:"DDDDDD", pt:0.5 } });
    const cws = [1.8, 2.0, 2.1];
    const cxs = [3.6, 5.45, 7.5];
    row.forEach((cell, ci) => {
      s.addText(cell, { x:cxs[ci], y:ry, w:cws[ci], h:0.38,
        fontSize: isH ? 8.5 : 8,
        bold: isH || ci===0,
        color: isH ? NAVY : (ci===1 ? "1E7A4C" : (ci===2 ? CRIMSON : DARK_TXT)),
        fontFace:"Calibri", valign:"middle"
      });
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 10 — Dental / Oral Significance for BDS Students
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:"F5F8FC" }, line:{ color:"F5F8FC" } });
  navBar(s, "Oral & Dental Significance — BDS Perspective");
  footerBar(s, "Dental Significance");

  // Left column
  sectionCard(s, 0.25, 1.0, 4.7, 2.0, "Oral Manifestations of ALL", [
    "Gingival bleeding — due to thrombocytopenia",
    "Mucosal pallor — due to anaemia",
    "Oral ulceration / mucositis — post-chemotherapy",
    "Gingival hypertrophy / infiltration by leukemic cells",
    "Petechiae on oral mucosa and soft palate",
    "Opportunistic infections: candidiasis, HSV, CMV",
    "Toothache / bone pain — marrow infiltration"
  ], CRIMSON);

  sectionCard(s, 0.25, 3.1, 4.7, 2.2, "Dental Management Considerations", [
    "Medical clearance BEFORE any dental procedure",
    "Check CBC: delay if platelets <50,000/μL or ANC <1000/μL",
    "Avoid elective extractions during active leukemia",
    "Antibiotic prophylaxis for invasive procedures if immunocompromised",
    "Fluoride supplements — prevent rampant caries during chemo",
    "Coordinate with haematologist for timing of dental work",
    "Patient/parent counselling on oral hygiene during chemotherapy"
  ], NAVY);

  // Right: high yield facts for exam
  s.addShape("rect", { x:5.2, y:1.0, w:4.5, h:4.3, fill:{ color:NAVY }, line:{ color:NAVY },
    shadow:{ type:"outer", color:"000000", blur:6, offset:2, angle:135, opacity:0.3 }
  });
  s.addShape("rect", { x:5.2, y:1.0, w:4.5, h:0.42, fill:{ color:GOLD }, line:{ color:GOLD } });
  s.addText("HIGH YIELD EXAM POINTS", { x:5.3, y:1.0, w:4.3, h:0.42,
    fontSize:11, bold:true, color:NAVY, fontFace:"Calibri", valign:"middle", align:"center", margin:0
  });
  const examPoints = [
    "ALL = most common childhood cancer",
    "85% B-ALL | 15% T-ALL",
    "PAS: coarse block positivity (ALL)",
    "TdT: nuclear+, hallmark of ALL",
    "MPO / Sudan Black B: NEGATIVE (vs AML)",
    "t(12;21) = best prognosis in children",
    "t(9;22) = Ph chromosome, worst prognosis",
    "Diagnosis: ≥20% blasts in bone marrow",
    "Starry-sky pattern: ALL-L3 (Burkitt type)",
    "CR rate in children: >95%",
    "CNS + testes = sanctuary sites",
    "CAR-T (Tisagenlecleucel) approved for B-ALL"
  ];
  const examItems = examPoints.map((p,i) => ({
    text: p,
    options: { bullet:{ type:"bullet" }, breakLine: i < examPoints.length-1,
               fontSize:8.5, color:i%2===0 ? WHITE : GOLD, fontFace:"Calibri" }
  }));
  s.addText(examItems, { x:5.3, y:1.48, w:4.2, h:3.7, valign:"top" });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 11 — Summary & Thank You
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:NAVY }, line:{ color:NAVY } });
  s.addShape("rect", { x:0, y:0, w:10, h:0.12, fill:{ color:GOLD }, line:{ color:GOLD } });
  s.addShape("rect", { x:0, y:5.5, w:10, h:0.125, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });

  // Big summary grid
  const summaryItems = [
    { icon:"🔬", head:"Definition", body:"Neoplasm of immature B/T lymphoblasts\n#1 childhood cancer" },
    { icon:"🧬", head:"Pathogenesis", body:"Transcription factor mutations\nChromosomal translocations" },
    { icon:"🩺", head:"Clinical", body:"Pallor, petechiae, lymphadenopathy\nHepatosplenomegaly, bone pain" },
    { icon:"🔎", head:"Histology", body:"High N:C ratio, scant cytoplasm\nFine chromatin, PAS+ blocks" },
    { icon:"💉", head:"Diagnosis", body:"BM biopsy ≥20% blasts\nTdT+, flow cytometry" },
    { icon:"💊", head:"Treatment", body:"Induction → CNS prophylaxis\n→ Consolidation → Maintenance" }
  ];
  summaryItems.forEach((item, i) => {
    const xi = (i % 3) * 3.2 + 0.2;
    const yi = Math.floor(i / 3) * 2.1 + 0.7;
    s.addShape("rect", { x:xi, y:yi, w:3.0, h:1.9, fill:{ color:NAVY_MID }, line:{ color:WHITE+"44", pt:1 } });
    s.addShape("rect", { x:xi, y:yi, w:3.0, h:0.45, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
    s.addText(item.icon + "  " + item.head, { x:xi+0.05, y:yi, w:2.9, h:0.45,
      fontSize:11, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
    });
    s.addText(item.body, { x:xi+0.1, y:yi+0.5, w:2.8, h:1.3,
      fontSize:9, color:"CCDDFF", fontFace:"Calibri"
    });
  });

  s.addShape("rect", { x:1.5, y:5.1, w:7.0, h:0.38, fill:{ color:GOLD+"44" }, line:{ color:GOLD, pt:1 } });
  s.addText("Thank You — Questions Welcome", {
    x:1.5, y:5.1, w:7.0, h:0.38,
    fontSize:12, bold:true, color:GOLD, fontFace:"Calibri", align:"center", valign:"middle"
  });
}

// ── write file ──────────────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/ALL-presentation/Acute_Lymphocytic_Leukaemia_3BDS.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("✅  PPTX written to:", outPath);
}).catch(err => {
  console.error("❌  Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/ALL-presentation && node create_ppt.js 2>&1

Running Command

sed -i \ 's/"C0392B22"/"FDECEA"/g; s/"1E6B8C22"/"E3F2FD"/g; s/"1E7A4C22"/"E8F5…

Running Command

ls -lh /home/daytona/workspace/ALL-presentation/Acute_Lymphocytic_Leukaemia_3BDS…

Your presentation is ready! Here's the download link:

Acute Lymphocytic Leukaemia 3BDS

Presentation · PPTX


What's Inside - 11 Slides

The presentation uses a deep navy + crimson + gold colour scheme and is designed specifically for 3rd BDS students. Here's the slide breakdown:
SlideContent
1Title slide - with blood smear image as background
2Overview & Introduction - definition, epidemiology, stat cards
3Classification - FAB (L1/L2/L3) table + Immunophenotypic (Pre-B, T-ALL, Common ALL)
4Etiology & Pathogenesis - predisposing factors, molecular mechanisms, B/T-cell origin diagram from Robbins
5Clinical Features - bone marrow failure, organ infiltration, CNS involvement, other features (4 cards)
6Histological Features (MAIN) - lymphoblast cytology, tissue architecture, special stains table (PAS, Sudan Black, TdT, CD10, etc.) with H&E images
7Peripheral Blood Smear - full-screen microscopy image with annotated callouts
8Investigations & Diagnosis - CBC, BM biopsy, flow cytometry, cytogenetics, CSF, imaging
9Treatment & Prognosis - chemotherapy phases, targeted therapy, prognostic factors table
10Oral & Dental Significance - oral manifestations, dental management, high-yield exam points
11Summary & Thank You - 6-point summary grid

Images embedded:

  • H&E bone marrow histology (sheets of lymphoblasts)
  • H&E lymph node histology (diffuse blast infiltration)
  • Peripheral blood smear (lymphoblasts - Giemsa stain)
  • Robbins lymphoid neoplasm origin diagram (B-cell/T-cell differentiation)
Sources: Robbins & Cotran Pathologic Basis of Disease (2024), Quick Compendium of Clinical Pathology 5th ed., Goldman-Cecil Medicine.

Crest the ppt in 4 slides

Writing File

~/ALL-presentation/create_ppt_4slides.js

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

const NAVY     = "0D2B55";
const NAVY_MID = "16407A";
const CRIMSON  = "C0392B";
const GOLD     = "E8A838";
const LIGHT_BG = "EBF2FA";
const WHITE    = "FFFFFF";
const DARK_TXT = "1A1A2E";
const GREY_TXT = "4A4A6A";

// Fetch images
const imgUrls = [
  "https://www.pathologyoutlines.com/imgau/lymphnodesALLTsang12.jpg",
  "https://www.pathologyoutlines.com/imgau/lymphnodesALLTsang02.jpg",
  "https://www.pathologyoutlines.com/imgau/lymphnodesALLTsang10.jpg",
  "https://cdn.orris.care/cdss_images/fdb5c8fe71e065c39b004c65cbed67f5cf283716771ad3ff5c3803b9d3115fb5.png"
];

console.log("Fetching images...");
const imgs = JSON.parse(
  execSync(
    `node /home/daytona/skills/shared/scripts/fetch_images.js ${imgUrls.map(u => `"${u}"`).join(" ")}`,
    { maxBuffer: 50 * 1024 * 1024 }
  ).toString()
);
console.log("Images:", imgs.map(i => ({ ok: !!i.base64, err: i.error })));

const [imgHistoHE, imgHistoLN, imgBloodSmear, imgDiagram] = imgs;

// ── helpers ──────────────────────────────────────────────────────────────────
function navBar(slide, title) {
  slide.addShape("rect", { x:0, y:0, w:10, h:0.1, fill:{ color:GOLD }, line:{ color:GOLD } });
  slide.addShape("rect", { x:0, y:0.1, w:10, h:0.68, fill:{ color:NAVY }, line:{ color:NAVY } });
  slide.addShape("rect", { x:0, y:0.1, w:0.06, h:0.68, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  slide.addText(title, {
    x:0.18, y:0.1, w:9.6, h:0.68,
    fontSize:18, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });
}

function footer(slide, pg) {
  slide.addShape("rect", { x:0, y:5.38, w:10, h:0.245, fill:{ color:NAVY }, line:{ color:NAVY } });
  slide.addText(`Acute Lymphocytic Leukaemia  |  3rd BDS  |  ${pg}  |  Oral Pathology`, {
    x:0.2, y:5.38, w:9.6, h:0.245,
    fontSize:7, color:"AABBDD", fontFace:"Calibri", valign:"middle", margin:0
  });
}

function card(slide, x, y, w, h, title, bullets, accentCol) {
  slide.addShape("rect", { x, y, w, h, fill:{ color:WHITE }, line:{ color:accentCol, pt:1.5 },
    shadow:{ type:"outer", color:"888888", blur:5, offset:2, angle:135, opacity:0.12 }
  });
  slide.addShape("rect", { x, y, w, h:0.33, fill:{ color:accentCol }, line:{ color:accentCol } });
  slide.addText(title, { x:x+0.1, y, w:w-0.2, h:0.33,
    fontSize:9, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0
  });
  const items = bullets.map((b,i) => ({
    text: b,
    options:{ bullet:{ type:"bullet" }, breakLine: i < bullets.length-1,
              fontSize:8, color:DARK_TXT, fontFace:"Calibri" }
  }));
  slide.addText(items, { x:x+0.12, y:y+0.36, w:w-0.24, h:h-0.42, valign:"top" });
}

// ── build presentation ────────────────────────────────────────────────────────
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title  = "Acute Lymphocytic Leukaemia — 3rd BDS";

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — Title + Overview
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  // Full navy bg
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:NAVY }, line:{ color:NAVY } });
  // Right panel lighter
  s.addShape("rect", { x:5.8, y:0, w:4.2, h:5.625, fill:{ color:NAVY_MID }, line:{ color:NAVY_MID } });
  // Gold top bar
  s.addShape("rect", { x:0, y:0, w:10, h:0.09, fill:{ color:GOLD }, line:{ color:GOLD } });
  // Crimson divider
  s.addShape("rect", { x:5.75, y:0, w:0.06, h:5.625, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  // Bottom bar
  s.addShape("rect", { x:0, y:5.53, w:10, h:0.095, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });

  // Image on right
  if (imgHistoHE.base64) {
    s.addImage({ data:imgHistoHE.base64, x:5.85, y:0.12, w:4.05, h:5.35, transparency:20 });
  }

  // Left: Title text
  s.addText("ACUTE", { x:0.5, y:0.7, w:5.1, h:0.65, fontSize:34, bold:true, color:WHITE, fontFace:"Calibri", charSpacing:5 });
  s.addText("LYMPHOCYTIC", { x:0.5, y:1.35, w:5.1, h:0.65, fontSize:34, bold:true, color:GOLD, fontFace:"Calibri", charSpacing:3 });
  s.addText("LEUKAEMIA", { x:0.5, y:2.0, w:5.1, h:0.65, fontSize:34, bold:true, color:WHITE, fontFace:"Calibri", charSpacing:3 });
  s.addShape("rect", { x:0.5, y:2.72, w:4.0, h:0.05, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  s.addText("(ALL / Acute Lymphoblastic Leukemia)", { x:0.5, y:2.82, w:5.0, h:0.35, fontSize:11, italic:true, color:"AABBDD", fontFace:"Calibri" });

  // Quick facts
  const facts = ["Most common childhood cancer", "85% B-ALL | 15% T-ALL", "Peak age: 3 years (B-ALL)", "5-yr survival: ~90% in children"];
  facts.forEach((f, i) => {
    s.addShape("rect", { x:0.5, y:3.35+i*0.47, w:0.06, h:0.28, fill:{ color:GOLD }, line:{ color:GOLD } });
    s.addText(f, { x:0.68, y:3.35+i*0.47, w:4.8, h:0.3, fontSize:10, color:WHITE, fontFace:"Calibri", valign:"middle" });
  });

  // Presented for badge
  s.addShape("rect", { x:0.5, y:5.1, w:3.5, h:0.38, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  s.addText("Presented for: 3rd BDS  |  Oral Pathology", { x:0.5, y:5.1, w:3.5, h:0.38,
    fontSize:9, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle"
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — Clinical Features + Etiology
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:LIGHT_BG }, line:{ color:LIGHT_BG } });
  navBar(s, "Etiology & Clinical Features");
  footer(s, "Slide 2/4");

  // Image (diagram) top right
  if (imgDiagram.base64) {
    s.addShape("rect", { x:6.9, y:0.9, w:2.85, h:2.5, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data:imgDiagram.base64, x:6.95, y:0.95, w:2.75, h:2.25 });
    s.addText("Origin of lymphoid neoplasms (Robbins, 2024)", { x:6.9, y:3.22, w:2.85, h:0.22, fontSize:5.5, italic:true, color:GREY_TXT, fontFace:"Calibri", align:"center" });
  }

  // Etiology card — left top
  card(s, 0.25, 0.9, 3.3, 2.0, "Etiology / Predisposing Factors", [
    "Ionizing radiation (prenatal X-rays, fallout)",
    "Chemical exposure: benzene, alkylating agents",
    "HTLV-1 virus (T-ALL association)",
    "Down syndrome — 20x increased risk",
    "Immunodeficiency: Wiskott-Aldrich, AT",
    "t(9;22) Ph chromosome — 25% adults, 3% children"
  ], CRIMSON);

  // Pathogenesis card — left bottom
  card(s, 0.25, 2.98, 3.3, 2.0, "Pathogenesis (Key Mutations)", [
    "B-ALL: PAX5, TCF3, ETV6, RUNX1 mutations",
    "T-ALL: NOTCH1 mutations (50-70%)",
    "t(12;21) ETV6-RUNX1: best prognosis (25% children)",
    "Hyperdiploidy (>50 chr): good prognosis",
    "Hypodiploidy: poor prognosis",
    "Maturation arrest + increased self-renewal"
  ], NAVY);

  // Clinical features — middle
  card(s, 3.75, 0.9, 2.9, 2.0, "Due to Bone Marrow Failure", [
    "Anaemia → pallor, fatigue, dyspnoea",
    "Thrombocytopenia → petechiae, purpura",
    "Neutropenia → infections, fever",
    "Pancytopenia on CBC"
  ], "1E7A4C");

  card(s, 3.75, 2.98, 2.9, 2.0, "Organ Infiltration Signs", [
    "Generalised lymphadenopathy",
    "Hepatosplenomegaly",
    "Bone pain & tenderness",
    "Mediastinal mass (T-ALL)",
    "CNS: headache, cranial nerve palsies",
    "Testicular enlargement (boys)"
  ], "7B3FA0");
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — Histological Features (with images)
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:"F5F8FC" }, line:{ color:"F5F8FC" } });
  navBar(s, "Histological Features");
  footer(s, "Slide 3/4");

  // Image 1: bone marrow H&E
  if (imgHistoHE.base64) {
    s.addShape("rect", { x:0.25, y:0.9, w:3.0, h:2.2, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data:imgHistoHE.base64, x:0.3, y:0.95, w:2.9, h:1.95 });
    s.addShape("rect", { x:0.25, y:2.9, w:3.0, h:0.3, fill:{ color:NAVY }, line:{ color:NAVY } });
    s.addText("H&E — Bone marrow: sheets of lymphoblasts", { x:0.3, y:2.91, w:2.9, h:0.28, fontSize:6.5, color:WHITE, fontFace:"Calibri", valign:"middle" });
  }

  // Image 2: lymph node
  if (imgHistoLN.base64) {
    s.addShape("rect", { x:0.25, y:3.28, w:3.0, h:1.85, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data:imgHistoLN.base64, x:0.3, y:3.33, w:2.9, h:1.6 });
    s.addShape("rect", { x:0.25, y:4.93, w:3.0, h:0.3, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
    s.addText("H&E — Lymph node: diffuse blast infiltration", { x:0.3, y:4.94, w:2.9, h:0.28, fontSize:6.5, color:WHITE, fontFace:"Calibri", valign:"middle" });
  }

  // Image 3: blood smear
  if (imgBloodSmear.base64) {
    s.addShape("rect", { x:3.45, y:0.9, w:2.8, h:2.2, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
    s.addImage({ data:imgBloodSmear.base64, x:3.5, y:0.95, w:2.7, h:1.95 });
    s.addShape("rect", { x:3.45, y:2.9, w:2.8, h:0.3, fill:{ color:"1E7A4C" }, line:{ color:"1E7A4C" } });
    s.addText("Peripheral smear — lymphoblasts circulating", { x:3.5, y:2.91, w:2.7, h:0.28, fontSize:6.5, color:WHITE, fontFace:"Calibri", valign:"middle" });
  }

  // Histological features text — right
  s.addShape("rect", { x:3.45, y:3.28, w:6.3, h:1.95, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
  s.addShape("rect", { x:3.45, y:3.28, w:6.3, h:0.33, fill:{ color:"7B3FA0" }, line:{ color:"7B3FA0" } });
  s.addText("Special Stains & Markers", { x:3.55, y:3.28, w:6.1, h:0.33, fontSize:9.5, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0 });
  const stains = [
    ["PAS stain","Coarse block positivity — CHARACTERISTIC of ALL"],
    ["Sudan Black B / MPO","NEGATIVE — distinguishes ALL from AML"],
    ["TdT (nuclear)","POSITIVE — hallmark marker of ALL (immature lymphoblasts)"],
    ["CD10 / CALLA","Positive in B-ALL — favourable prognostic marker"],
    ["CD19, CD22","B-ALL lineage | CD7, CD3 — T-ALL lineage (flow cytometry)"]
  ];
  stains.forEach((row, i) => {
    const ry = 3.65 + i * 0.3;
    s.addShape("rect", { x:3.55, y:ry, w:1.5, h:0.27, fill:{ color:"7B3FA022" }, line:{ color:"7B3FA0", pt:0.5 } });
    s.addText(row[0], { x:3.58, y:ry+0.03, w:1.44, h:0.22, fontSize:7.5, bold:true, color:"7B3FA0", fontFace:"Calibri", valign:"middle" });
    s.addText(row[1], { x:5.1, y:ry+0.03, w:4.55, h:0.22, fontSize:7.5, color:DARK_TXT, fontFace:"Calibri", valign:"middle" });
  });

  // Cytology features card — top right
  s.addShape("rect", { x:6.45, y:0.9, w:3.3, h:2.2, fill:{ color:WHITE }, line:{ color:CRIMSON, pt:1.5 } });
  s.addShape("rect", { x:6.45, y:0.9, w:3.3, h:0.33, fill:{ color:CRIMSON }, line:{ color:CRIMSON } });
  s.addText("Lymphoblast Cytology", { x:6.55, y:0.9, w:3.1, h:0.33, fontSize:9.5, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0 });
  const cytoItems = [
    "Small–medium cells (10–20 μm)",
    "HIGH nuclear-to-cytoplasmic ratio",
    "Round/irregular nuclear contour",
    "Finely stippled (salt-and-pepper) chromatin",
    "Nucleoli: indistinct (L1) / prominent (L2)",
    "Scant pale cytoplasm — NO granules",
    "Frequent mitotic figures"
  ].map((b,i) => ({ text:b, options:{ bullet:{ type:"bullet" }, breakLine: i<6, fontSize:7.5, color:DARK_TXT, fontFace:"Calibri" } }));
  s.addText(cytoItems, { x:6.58, y:1.27, w:3.1, h:1.78, valign:"top" });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — Investigations, Treatment & Dental Significance
// ════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape("rect", { x:0, y:0, w:10, h:5.625, fill:{ color:LIGHT_BG }, line:{ color:LIGHT_BG } });
  navBar(s, "Diagnosis, Treatment & Dental Significance");
  footer(s, "Slide 4/4");

  // Investigations
  card(s, 0.25, 0.9, 3.0, 2.35, "Investigations", [
    "CBC: anaemia, thrombocytopenia, variable WBC",
    "Peripheral smear: circulating blasts",
    "Bone marrow biopsy: GOLD STANDARD (≥20% blasts)",
    "Flow cytometry: TdT+, lineage markers",
    "Cytogenetics: t(9;22), t(12;21), hyperdiploidy",
    "CSF analysis: CNS involvement",
    "CXR/CT: mediastinal mass (T-ALL)"
  ], NAVY);

  // Treatment
  card(s, 0.25, 3.33, 3.0, 1.95, "Treatment", [
    "Induction: VCR + Pred + Asparaginase (CR >95%)",
    "CNS prophylaxis: intrathecal methotrexate",
    "Consolidation: high-dose MTX, 6-MP",
    "Maintenance: 2–3 years (6-MP + MTX)",
    "Ph+ ALL: imatinib/dasatinib added",
    "CAR-T (CD19): relapsed/refractory B-ALL"
  ], CRIMSON);

  // Prognosis table
  s.addShape("rect", { x:3.45, y:0.9, w:3.3, h:2.35, fill:{ color:WHITE }, line:{ color:"CCDDEE", pt:1 } });
  s.addShape("rect", { x:3.45, y:0.9, w:3.3, h:0.33, fill:{ color:"1E7A4C" }, line:{ color:"1E7A4C" } });
  s.addText("Prognostic Factors", { x:3.55, y:0.9, w:3.1, h:0.33, fontSize:9.5, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0 });
  const progRows = [
    ["Factor","Favorable","Unfavorable"],
    ["Age","1–10 yrs","<1 or >10 yrs"],
    ["WBC","<50,000","≥50,000/μL"],
    ["Cytogenetics","Hyperdiploidy\nt(12;21)","Hypodiploidy\nt(9;22)"],
    ["5-yr survival","~90% (child)","~40–60%"]
  ];
  progRows.forEach((row, ri) => {
    const ry = 1.27 + ri * 0.38;
    const isH = ri === 0;
    const bg = isH ? "E8F0FB" : (ri%2===0 ? "F7FBFF" : "FFFFFF");
    s.addShape("rect", { x:3.5, y:ry-0.02, w:3.2, h:0.38, fill:{ color:bg }, line:{ color:"DDDDDD", pt:0.5 } });
    const cws = [0.95, 1.0, 1.0]; const cxs = [3.55, 4.55, 5.6];
    row.forEach((cell, ci) => {
      s.addText(cell, { x:cxs[ci], y:ry, w:cws[ci], h:0.34,
        fontSize: isH ? 7.5 : 7, bold: isH || ci===0,
        color: isH ? NAVY : (ci===1 ? "1E7A4C" : (ci===2 ? CRIMSON : DARK_TXT)),
        fontFace:"Calibri", valign:"middle"
      });
    });
  });

  // Dental significance — high yield card (right)
  s.addShape("rect", { x:6.95, y:0.9, w:2.8, h:4.38, fill:{ color:NAVY }, line:{ color:NAVY },
    shadow:{ type:"outer", color:"333333", blur:6, offset:2, angle:135, opacity:0.3 }
  });
  s.addShape("rect", { x:6.95, y:0.9, w:2.8, h:0.38, fill:{ color:GOLD }, line:{ color:GOLD } });
  s.addText("HIGH YIELD — BDS", { x:6.95, y:0.9, w:2.8, h:0.38, fontSize:10, bold:true, color:NAVY, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
  const hySections = [
    { head:"Oral Manifestations", col:CRIMSON, pts:["Gingival bleeding (thrombocytopenia)","Mucosal pallor (anaemia)","Petechiae on soft palate","Gingival infiltration by blasts","Oral candidiasis (immunosuppressed)"] },
    { head:"Dental Management", col:GOLD, pts:["Check CBC before any procedure","Delay if plt <50,000 or ANC <1000","Antibiotic prophylaxis if neutropenic","Coordinate with haematologist","Fluoride for caries prevention"] }
  ];
  let ty = 1.35;
  hySections.forEach(sec => {
    s.addShape("rect", { x:7.05, y:ty, w:2.6, h:0.26, fill:{ color:sec.col }, line:{ color:sec.col } });
    s.addText(sec.head, { x:7.05, y:ty, w:2.6, h:0.26, fontSize:8, bold:true, color:NAVY, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
    ty += 0.28;
    sec.pts.forEach(p => {
      s.addText("• " + p, { x:7.08, y:ty, w:2.55, h:0.28, fontSize:7, color:WHITE, fontFace:"Calibri", valign:"middle" });
      ty += 0.28;
    });
    ty += 0.1;
  });

  // Oral significance card below prognosis
  card(s, 3.45, 3.33, 3.3, 1.95, "Classification (FAB)", [
    "L1 — Small uniform blasts; most common in children",
    "L2 — Large irregular blasts; most common in adults",
    "L3 — Large vacuolated blasts; Burkitt-type (rare)",
    "WHO 2022: classification by immunophenotype preferred",
    "TdT+ (nuclear) differentiates ALL from mature NHL"
  ], "7B3FA0");
}

// ── write ─────────────────────────────────────────────────────────────────────
const out = "/home/daytona/workspace/ALL-presentation/ALL_4Slides_3BDS.pptx";
pres.writeFile({ fileName: out }).then(() => {
  console.log("✅  Written:", out);
}).catch(err => {
  console.error("❌", err); process.exit(1);
});
Running Command

cd /home/daytona/workspace/ALL-presentation && node create_ppt_4slides.js 2>&1

Running Command

ls -lh /home/daytona/workspace/ALL-presentation/ALL_4Slides_3BDS.pptx

All 4 images loaded successfully. Your 4-slide presentation is ready:

ALL 4Slides 3BDS

Presentation · PPTX


4 Slides — What's Covered

SlideTitleContent
1Title + OverviewDefinition, quick facts (most common childhood cancer, 85% B-ALL, peak age, survival), bold navy/gold title design with histology image
2Etiology & Clinical FeaturesPredisposing factors, key mutations (PAX5, NOTCH1, translocations), bone marrow failure signs, organ infiltration signs — with Robbins lymphoid origin diagram
3Histological Features3 embedded images (H&E bone marrow, H&E lymph node, peripheral smear) + lymphoblast cytology table + special stains (PAS, Sudan Black, TdT, CD10, CD19/CD7)
4Diagnosis, Treatment & Dental SignificanceInvestigations, FAB classification, prognostic factors table, treatment phases (induction → maintenance), BDS High-Yield panel (oral manifestations + dental management)
Every slide has a consistent navy/crimson/gold theme with a footer showing slide number and department.
This is a shared conversation. Sign in to Orris to start your own chat.