I want you to make a ppt for mammography and birads for md radiology with mammography images with explanation for md radiodiagnosis according 2025 criteria

Reading File
Reading File
Reading File
Finding Sources
Searching the Web

ACR BIRADS 2013 2022 2025 mammography categories criteria update

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

mkdir -p /home/daytona/workspace/mammography-birads && ls /home/daytona/workspace/mammography-birads/

Writing File

~/mammography-birads/build.js

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

// ─── Fetch images as base64 ───────────────────────────────────────────────────
const imageUrls = [
  "https://cdn.orris.care/cdss_images/63ec402be6773d3bcbacfe0c2e03bd7177a03bdf5f72cd29a2242a470095dbe3.png", // CC+MLO screening mammogram
  "https://cdn.orris.care/cdss_images/6a99cca715592e5a6353178ceb0c7c4ffb2cdc0c58db90cfa00656c2cae7867d.png", // O'clock lesion localisation
  "https://cdn.orris.care/cdss_images/0c49d18a63e987617a125718f66e6edc3a3b5bc20a14c2c45d451c0ed1d96c7e.png", // Screening + US cyst BIRADS 2
  "https://cdn.orris.care/cdss_images/464ec36ed2f09b6a57ebea0eb71097cb040ac2a0fa40eb085c00445befc41228.png", // CESM CC+MLO architectural distortion
  "https://cdn.orris.care/cdss_images/3a80620441565bdc352639d87c074e4946f2cfafd944ca60653348d706209016.png", // CESM recombined IDC
  "https://cdn.orris.care/cdss_images/b0e7ac4dfaa8b903494b8a9a017b9b93ecb3dd39cfb73fa75af4c7e8e1dd39cf.png", // Breast density comparison
  "https://cdn.orris.care/cdss_images/3a50c239aefc37202d31437732e94d88069923f12bed284cb5a6b0dc7c9c30f9.png", // US BIRADS 5 irregular mass
  "https://cdn.orris.care/cdss_images/175a4ed28b76544aafae0d9fdb95fba7550e0f5f88b37418e36e6056c4cc4b60.png", // US malignant lesions 4-panel
];

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

const imgMap = {};
images.forEach(img => { imgMap[img.url] = img; });

function addImg(slide, url, x, y, w, h) {
  const img = imgMap[url];
  if (img && img.base64 && !img.error) {
    slide.addImage({ data: img.base64, x, y, w, h });
  }
}

// ─── Color palette (deep navy + teal accent + warm gold) ─────────────────────
const C = {
  navy:     "0D1B2A",
  teal:     "1B8CA3",
  tealDark: "136478",
  gold:     "E8A838",
  white:    "FFFFFF",
  offWhite: "F0F4F7",
  lightGray:"D8E4EC",
  text:     "1A2B3C",
  subText:  "4A6070",
};

const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5 in
pres.title  = "Mammography & BI-RADS – MD Radiodiagnosis 2025";
pres.author = "MD Radiology Lecture Series";

// ══════════════════════════════════════════════════════════════════════════════
// HELPER FUNCTIONS
// ══════════════════════════════════════════════════════════════════════════════

function titleSlide(title, subtitle) {
  const s = pres.addSlide();
  // Full dark background
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navy }, line: { color: C.navy } });
  // Teal accent strip
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.8, w: 13.3, h: 0.12, fill: { color: C.teal }, line: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.92, w: 13.3, h: 0.06, fill: { color: C.gold }, line: { color: C.gold } });
  // Title
  s.addText(title, {
    x: 0.8, y: 1.8, w: 11.7, h: 1.8,
    fontSize: 44, bold: true, color: C.white,
    fontFace: "Calibri", align: "center", valign: "middle",
  });
  // Subtitle
  s.addText(subtitle, {
    x: 0.8, y: 3.9, w: 11.7, h: 0.8,
    fontSize: 22, color: C.teal, fontFace: "Calibri",
    align: "center", valign: "middle",
  });
  // Footer
  s.addText("MD Radiodiagnosis  |  2025 ACR BI-RADS Criteria", {
    x: 0.5, y: 6.6, w: 12.3, h: 0.4,
    fontSize: 13, color: C.lightGray, fontFace: "Calibri", align: "center",
  });
  return s;
}

function sectionTitle(heading, colorBg) {
  const bg = colorBg || C.tealDark;
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: bg }, line: { color: bg } });
  s.addShape(pres.ShapeType.rect, { x: 0.6, y: 3.3, w: 12.1, h: 0.06, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText(heading, {
    x: 0.6, y: 1.8, w: 12.1, h: 2.6,
    fontSize: 38, bold: true, color: C.white,
    fontFace: "Calibri", align: "center", valign: "middle",
  });
  return s;
}

function contentSlide(title, bullets, opts = {}) {
  const s = pres.addSlide();
  // Light background
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite }, line: { color: C.offWhite } });
  // Top header bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: C.navy }, line: { color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 1.1, w: 13.3, h: 0.07, fill: { color: C.teal }, line: { color: C.teal } });
  // Title
  s.addText(title, {
    x: 0.4, y: 0.1, w: 12.5, h: 0.9,
    fontSize: 26, bold: true, color: C.white, fontFace: "Calibri",
    valign: "middle", margin: 0,
  });
  // Bullets
  const bItems = bullets.map((b, i) => ({
    text: b,
    options: {
      bullet: { code: "25CF", color: C.teal },
      breakLine: i < bullets.length - 1,
      fontSize: opts.fontSize || 18,
      color: C.text,
      fontFace: "Calibri",
      paraSpaceAfter: 4,
    }
  }));
  s.addText(bItems, {
    x: 0.5, y: 1.4, w: opts.imgUrl ? 7.1 : 12.3, h: 5.7,
    valign: "top",
  });
  if (opts.imgUrl) {
    addImg(s, opts.imgUrl, 7.8, 1.4, 5.1, 5.5);
    // Caption
    if (opts.caption) {
      s.addText(opts.caption, {
        x: 7.8, y: 6.95, w: 5.1, h: 0.35,
        fontSize: 10, color: C.subText, fontFace: "Calibri", italic: true, align: "center",
      });
    }
  }
  // Slide number strip
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.3, w: 13.3, h: 0.2, fill: { color: C.navy }, line: { color: C.navy } });
  return s;
}

function imageContentSlide(title, leftBullets, imgUrl, caption, imgUrl2) {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite }, line: { color: C.offWhite } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: C.navy }, line: { color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 1.1, w: 13.3, h: 0.07, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText(title, {
    x: 0.4, y: 0.1, w: 12.5, h: 0.9,
    fontSize: 26, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });

  const bItems = leftBullets.map((b, i) => ({
    text: b,
    options: {
      bullet: { code: "25CF", color: C.teal },
      breakLine: i < leftBullets.length - 1,
      fontSize: 17, color: C.text, fontFace: "Calibri", paraSpaceAfter: 5,
    }
  }));
  s.addText(bItems, { x: 0.4, y: 1.35, w: 5.9, h: 5.8, valign: "top" });

  if (imgUrl2) {
    addImg(s, imgUrl, 6.5, 1.35, 6.4, 2.6);
    addImg(s, imgUrl2, 6.5, 4.15, 6.4, 2.6);
    if (caption) {
      s.addText(caption, {
        x: 6.5, y: 7.1, w: 6.4, h: 0.3,
        fontSize: 10, color: C.subText, italic: true, align: "center",
      });
    }
  } else {
    addImg(s, imgUrl, 6.5, 1.35, 6.4, 5.8);
    if (caption) {
      s.addText(caption, {
        x: 6.5, y: 7.15, w: 6.4, h: 0.28,
        fontSize: 10, color: C.subText, italic: true, align: "center",
      });
    }
  }
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.3, w: 13.3, h: 0.2, fill: { color: C.navy }, line: { color: C.navy } });
  return s;
}

function tableSlide(title, headers, rows, note) {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite }, line: { color: C.offWhite } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: C.navy }, line: { color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 1.1, w: 13.3, h: 0.07, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText(title, {
    x: 0.4, y: 0.1, w: 12.5, h: 0.9, fontSize: 26, bold: true, color: C.white,
    fontFace: "Calibri", valign: "middle", margin: 0,
  });

  const tableData = [];
  tableData.push(headers.map(h => ({
    text: h,
    options: { bold: true, fontSize: 14, color: C.white, fill: C.tealDark, fontFace: "Calibri", align: "center", valign: "middle" }
  })));
  rows.forEach((row, ri) => {
    tableData.push(row.map((cell, ci) => ({
      text: cell,
      options: {
        fontSize: 13, fontFace: "Calibri", color: C.text,
        fill: ri % 2 === 0 ? "EEF4F7" : C.white,
        bold: ci === 0,
        align: ci === 0 ? "center" : "left",
        valign: "middle",
      }
    })));
  });

  s.addTable(tableData, {
    x: 0.4, y: 1.25, w: 12.5,
    rowH: 0.55,
    border: { type: "solid", color: C.lightGray, pt: 0.5 },
  });

  if (note) {
    s.addText(note, {
      x: 0.4, y: 7.05, w: 12.5, h: 0.3,
      fontSize: 11, italic: true, color: C.subText, fontFace: "Calibri",
    });
  }
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.3, w: 13.3, h: 0.2, fill: { color: C.navy }, line: { color: C.navy } });
  return s;
}

function biradsCategorySlide(cat, assessment, ppv, mgmt, color, detail) {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite }, line: { color: C.offWhite } });
  // Left accent panel
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 3.5, h: 7.5, fill: { color: color }, line: { color: color } });
  // Category number
  s.addText(cat, {
    x: 0, y: 1.8, w: 3.5, h: 2.8,
    fontSize: 80, bold: true, color: C.white, fontFace: "Calibri",
    align: "center", valign: "middle", margin: 0,
  });
  s.addText("BI-RADS", {
    x: 0, y: 4.4, w: 3.5, h: 0.5,
    fontSize: 16, color: C.white, fontFace: "Calibri", align: "center", margin: 0,
  });
  // Top bar
  s.addShape(pres.ShapeType.rect, { x: 3.5, y: 0, w: 9.8, h: 1.1, fill: { color: C.navy }, line: { color: C.navy } });
  s.addShape(pres.ShapeType.rect, { x: 3.5, y: 1.1, w: 9.8, h: 0.07, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText(assessment, {
    x: 3.7, y: 0.1, w: 9.4, h: 0.9,
    fontSize: 24, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
  });
  // PPV badge
  s.addShape(pres.ShapeType.roundRect, {
    x: 3.7, y: 1.3, w: 3.2, h: 0.65,
    fill: { color: color }, line: { color: color }, rectRadius: 0.1,
  });
  s.addText(`Malignancy: ${ppv}`, {
    x: 3.7, y: 1.3, w: 3.2, h: 0.65,
    fontSize: 14, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
  // Management box
  s.addShape(pres.ShapeType.roundRect, {
    x: 7.2, y: 1.3, w: 5.7, h: 0.65,
    fill: { color: C.navy }, line: { color: C.navy }, rectRadius: 0.1,
  });
  s.addText(`Management: ${mgmt}`, {
    x: 7.2, y: 1.3, w: 5.7, h: 0.65,
    fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
  // Detail bullets
  const dItems = detail.map((b, i) => ({
    text: b,
    options: {
      bullet: { code: "25B6", color: color },
      breakLine: i < detail.length - 1,
      fontSize: 17, color: C.text, fontFace: "Calibri", paraSpaceAfter: 6,
    }
  }));
  s.addText(dItems, { x: 3.7, y: 2.15, w: 9.2, h: 5.0, valign: "top" });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.3, w: 13.3, h: 0.2, fill: { color: C.navy }, line: { color: C.navy } });
  return s;
}

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════════════════════
titleSlide(
  "MAMMOGRAPHY & BI-RADS",
  "Principles • Technique • 2025 ACR Classification\nMD Radiodiagnosis Lecture Series"
);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — LEARNING OBJECTIVES
// ══════════════════════════════════════════════════════════════════════════════
contentSlide("Learning Objectives", [
  "Understand the physics and technique of mammography (FFDM, DBT, CESM)",
  "Describe standard mammographic projections and indications",
  "Apply the ACR BI-RADS breast composition categories (A–D)",
  "Recognise and describe masses, calcifications, asymmetries & architectural distortion using BI-RADS lexicon",
  "Assign correct BI-RADS final assessment categories (0–6) per 2025 ACR criteria",
  "Formulate appropriate management recommendations based on BI-RADS category",
  "Recognise imaging features of breast malignancy on mammography and ultrasound",
  "Know indications and role of supplemental imaging (US, MRI, CESM)",
]);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION: INTRODUCTION
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 1\nIntroduction to Mammography");

// SLIDE 3 — What is Mammography
contentSlide("What is Mammography?", [
  "Low-dose X-ray imaging of the breast — the primary modality for breast cancer screening",
  "Detects cancers 1–4 years before they are clinically palpable",
  "Reduces breast cancer mortality by ~20–40% in screened populations (RCT evidence)",
  "Two types:",
  "   Screening mammography: asymptomatic women, at least 2 views per breast (CC + MLO)",
  "   Diagnostic mammography: symptomatic patients or recalls from screening (BI-RADS 0)",
  "Standard views: Craniocaudal (CC) + Mediolateral Oblique (MLO)",
  "Compression paddle used to reduce thickness, decrease radiation dose, reduce blur",
  "Current standard: Full-Field Digital Mammography (FFDM) — superior image quality vs. film-screen",
],
{ imgUrl: "https://cdn.orris.care/cdss_images/63ec402be6773d3bcbacfe0c2e03bd7177a03bdf5f72cd29a2242a470095dbe3.png",
  caption: "Fig 1. Bilateral CC (left) and MLO (right) screening mammogram views" });

// SLIDE 4 — Indications
contentSlide("Indications for Mammography", [
  "SCREENING (asymptomatic):",
  "   Average risk: Annual from age 40 (ACR 2024 guidelines; ACS 40-44 optional, 45+ annual)",
  "   High risk (BRCA1/2, strong FH): Annual from age 30 + annual MRI",
  "   Women 40–49: Individualized decision-making; shared decision with clinician",
  "DIAGNOSTIC:",
  "   Palpable breast lump or thickening (age >30)",
  "   Nipple discharge (spontaneous, unilateral, blood-stained)",
  "   Skin or nipple changes (dimpling, retraction, Paget's disease)",
  "   Recalled from screening (BI-RADS 0) — needs further views or US",
  "   Post-treatment follow-up / monitoring implants",
  "CONTRAINDICATIONS: pregnancy is relative (low dose); use clinical judgment",
]);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 2: TECHNIQUE & PROJECTIONS
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 2\nTechnique & Mammographic Projections");

// SLIDE 5 — Standard Projections
imageContentSlide(
  "Standard & Special Mammographic Views",
  [
    "STANDARD VIEWS (all screening exams):",
    "CC (Craniocaudal): X-ray beam travels top to bottom; shows medial & lateral breast",
    "MLO (Mediolateral Oblique): ~45° angled; shows posterior tissue & axillary tail",
    "ADDITIONAL DIAGNOSTIC VIEWS:",
    "Spot compression: evaluates focal asymmetry / mass margins",
    "Magnification view: characterises microcalcifications (morphology & distribution)",
    "Lateral view (ML/LM): confirms lesion plane, distinguishes real lesion from overlap",
    "Rolled views: resolves asymmetric density (tissue superimposition vs. true lesion)",
    "Cleavage view: evaluates posteromedial lesions",
    "Tangential view: skin lesions, palpable areas",
  ],
  "https://cdn.orris.care/cdss_images/6a99cca715592e5a6353178ceb0c7c4ffb2cdc0c58db90cfa00656c2cae7867d.png",
  "Fig 2. Lesion localisation using o'clock notation (physician facing patient). Orange = left breast."
);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 3: MAMMOGRAPHIC MODALITIES
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 3\nAdvanced Mammographic Modalities");

// SLIDE 6 — DBT (Tomosynthesis)
contentSlide("Digital Breast Tomosynthesis (DBT)", [
  "X-ray tube moves in an arc (~15–50°) acquiring multiple low-dose images → reconstructed as 1 mm slices",
  "Dramatically reduces tissue superimposition — the main source of false positives and false negatives on 2D",
  "ADVANTAGES over FFDM:",
  "   Cancer detection rate: +1.2 cancers per 1,000 exams (retrospective studies)",
  "   Recall rate: reduced 15–65% (fewer false positives)",
  "   Architectural distortion: significantly better detected on DBT than FFDM",
  "   Asymmetries: recall rate lower for DBT vs. FFDM (13.3% vs. 32.3%)",
  "LIMITATIONS: increased acquisition time, longer reading time",
  "2025 status: Rapidly becoming standard of care — most new mammography installations are DBT-capable",
  "C-View / Synthesized 2D: reconstructed 2D image from DBT data — reduces total radiation dose",
]);

// SLIDE 7 — CESM
imageContentSlide(
  "Contrast-Enhanced Spectral Mammography (CESM)",
  [
    "Iodinated IV contrast + FFDM; leverages tumor angiogenesis (leaky vessels enhance)",
    "Two exposures per view: low-energy (like standard mammo) + high-energy → subtraction = recombined image",
    "Acquired at 2 minutes post-contrast injection; CC + MLO views bilaterally",
    "Sensitivity improvement: >20% in dense breasts vs. standard 2D",
    "Equal sensitivity to MRI; no significant difference in tumor sizing vs. MRI",
    "Faster: 6.5 minutes vs. 29+ minutes for MRI",
    "ADVANTAGES: detects lesions masked by dense tissue; useful when MRI contraindicated",
    "INDICATIONS: Dense breasts, discordant mammo/US, staging, neoadjuvant monitoring",
    "FALSE NEGATIVES: mucinous carcinomas, lobular (subtle enhancement); incomplete FOV",
  ],
  "https://cdn.orris.care/cdss_images/464ec36ed2f09b6a57ebea0eb71097cb040ac2a0fa40eb085c00445befc41228.png",
  "Fig 3A. Screening CC+MLO showing architectural distortion (circle). Fig 3B. CESM recombined images showing 1.6 cm spiculated enhancing mass — Grade 1 IDC.",
  "https://cdn.orris.care/cdss_images/3a80620441565bdc352639d87c074e4946f2cfafd944ca60653348d706209016.png"
);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 4: BI-RADS LEXICON
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 4\nACR BI-RADS Lexicon & Reporting");

// SLIDE 8 — What is BI-RADS
contentSlide("ACR BI-RADS: Overview", [
  "Breast Imaging Reporting and Data System (BI-RADS) — published by the American College of Radiology (ACR)",
  "Purpose: Standardise mammography interpretation, reduce variability, guide management",
  "Current edition: BI-RADS 5th Edition (2013); 2025 updates under ACR revision process",
  "BI-RADS Atlas covers: Mammography | Ultrasound | MRI",
  "Every mammogram report must include:",
  "   1. Breast composition/density category (A, B, C, D)",
  "   2. Description of any findings using BI-RADS lexicon",
  "   3. Comparison with prior studies",
  "   4. Final assessment category (0–6)",
  "   5. Management recommendation",
  "Standardised lexicon prevents ambiguous terms (e.g. 'probably benign' without category assignment)",
]);

// SLIDE 9 — BREAST DENSITY TABLE
tableSlide(
  "BI-RADS Breast Composition (Density) Categories",
  ["Category", "Description", "Masking Risk", "Clinical Significance"],
  [
    ["A", "Almost entirely fatty (< 25% glandular tissue)", "Very low", "Highest mammographic sensitivity (~98%)"],
    ["B", "Scattered areas of fibroglandular density (25–50%)", "Low", "Minor masking; good sensitivity"],
    ["C", "Heterogeneously dense (51–75%)\n— may obscure small masses", "Moderate", "Supplemental imaging considered in some guidelines"],
    ["D", "Extremely dense (> 75%)\n— lowers sensitivity of mammography", "High", "Many states mandate patient notification; consider US/MRI"],
  ],
  "Categories A & B: routine mammographic screening. Categories C & D: supplemental screening may be considered per 2024 ACR/SBI guidance."
);

// SLIDE 10 — MASSES
contentSlide("BI-RADS Lexicon: Masses", [
  "A MASS is a space-occupying 3-dimensional lesion seen on two different projections",
  "SHAPE:",
  "   Oval / Round → favours benign (fibroadenoma, cyst)",
  "   Irregular → increases suspicion for malignancy",
  "MARGIN:",
  "   Circumscribed (well-defined): low suspicion",
  "   Obscured: partially hidden by superimposed tissue",
  "   Microlobulated: mild suspicion",
  "   Indistinct (ill-defined): moderate suspicion",
  "   Spiculated: HIGH suspicion — classic for invasive carcinoma",
  "DENSITY:",
  "   High density > equal density > low density > fat-containing (lipoma, hamartoma, oil cyst)",
  "Typical benign: oval, circumscribed, equal/low density mass",
  "Classic malignant: irregular, spiculated, high-density mass",
],
{ imgUrl: "https://cdn.orris.care/cdss_images/0c49d18a63e987617a125718f66e6edc3a3b5bc20a14c2c45d451c0ed1d96c7e.png",
  caption: "Fig 4. Oval circumscribed mass on mammo; US confirmed simple cyst — BI-RADS 2",
  fontSize: 16 });

// SLIDE 11 — CALCIFICATIONS
contentSlide("BI-RADS Lexicon: Calcifications", [
  "TYPICALLY BENIGN (do NOT describe further or biopsy):",
  "   Skin | Vascular | Coarse/popcorn (fibroadenoma) | Large rod-like (secretory)",
  "   Round | Lucent-centred | Eggshell/rim | Milk of calcium | Suture | Dystrophic",
  "SUSPICIOUS MORPHOLOGY (BI-RADS 4/5):",
  "   Amorphous: small/indistinct — mildly suspicious (low-suspicion BI-RADS 4B)",
  "   Coarse heterogeneous: irregular >0.5 mm, intermediate suspicion",
  "   Fine pleomorphic: varying size/shape, no linear component — intermediate-high suspicion",
  "   Fine linear/branching (casting): irregular rod-like, branching — HIGH suspicion for high-grade DCIS",
  "DISTRIBUTION (from least to most suspicious):",
  "   Diffuse → Regional → Grouped/Clustered → Linear → Segmental",
  "Magnification views (0.1 mm pixel, 1.5-2× geometric magnification) essential for characterisation",
]);

// SLIDE 12 — ASYMMETRIES & ARCHITECTURAL DISTORTION
contentSlide("BI-RADS Lexicon: Asymmetries & Architectural Distortion", [
  "ASYMMETRY TYPES:",
  "   Asymmetry: one view only, no mass/distortion/calcification — usually summation artefact",
  "   Global asymmetry: > 1 quadrant, present on 2 views — usually benign (normal variant)",
  "   Focal asymmetry: < 1 quadrant on 2 views — requires additional workup",
  "   Developing asymmetry: NEW or enlarging focal asymmetry — HIGH suspicion (BI-RADS 4/5)",
  "ARCHITECTURAL DISTORTION:",
  "   Radiating lines or retraction without a central mass",
  "   Causes: post-surgical scar, fat necrosis, radial scar, invasive carcinoma (especially lobular)",
  "   On DBT: significantly improved detection vs. FFDM; PPV3 ~26% for biopsy",
  "   Any distortion — even on one DBT view only — warrants further workup",
  "   Workup: additional mammographic views (CC/MLO spot compression) + ultrasound",
  "   If no US correlate: tomosynthesis-guided biopsy may be required",
]);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 5: BI-RADS CATEGORIES
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 5\nBI-RADS Final Assessment Categories\n(ACR 2025)");

// SLIDE 13 — BIRADS OVERVIEW TABLE
tableSlide(
  "ACR BI-RADS Final Assessment — Quick Reference (2025)",
  ["Category", "Assessment", "Probability of Malignancy", "Management"],
  [
    ["0", "Incomplete", "N/A", "Additional imaging / prior films needed"],
    ["1", "Negative", "Essentially 0%", "Routine annual screening"],
    ["2", "Benign", "Essentially 0%", "Routine annual screening"],
    ["3", "Probably Benign", ">0% – ≤2%", "6-month short-interval follow-up"],
    ["4A", "Low Suspicion", ">2% – ≤10%", "Tissue biopsy"],
    ["4B", "Intermediate Suspicion", ">10% – ≤50%", "Tissue biopsy"],
    ["4C", "Moderate-High Suspicion", ">50% – <95%", "Tissue biopsy"],
    ["5", "Highly Suggestive of Malignancy", "≥95%", "Biopsy / surgical treatment"],
    ["6", "Known Biopsy-Proven Malignancy", "N/A", "Surgical excision / definitive therapy"],
  ],
  "Source: ACR BI-RADS Atlas 5th Ed (2013); category thresholds validated and retained in 2025 ACR guidelines."
);

// SLIDE 14 — BIRADS 0 & 1
biradsCategorySlide(
  "0 & 1",
  "Incomplete   |   Negative",
  "0%",
  "Additional imaging  OR  Routine screening",
  "4A7B8C",
  [
    "CATEGORY 0 — Incomplete Assessment:",
    "Assigned at END of screening — patient needs additional workup before a final category can be given",
    "Reasons: recall for spot views, additional projections, compare with prior films",
    "After diagnostic workup → reassign to Category 1–5",
    "Should NOT be used as a final assessment in diagnostic mammography",
    "",
    "CATEGORY 1 — Negative:",
    "No abnormality detected; breasts are symmetric; no mass, distortion, or calcification",
    "Recommendation: Continue routine annual screening",
    "Both BI-RADS 1 and 2 carry essentially 0% probability of malignancy",
  ]
);

// SLIDE 15 — BIRADS 2
biradsCategorySlide(
  "2",
  "Benign Finding",
  "Essentially 0%",
  "Routine Annual Screening",
  "27AE60",
  [
    "Positive finding that is definitely benign — important to document but no action required",
    "Examples of BI-RADS 2 findings:",
    "   Simple cysts (confirmed on US: anechoic, circumscribed, posterior enhancement)",
    "   Lymph nodes — intramammary with fatty hilum",
    "   Calcified fibroadenoma (coarse/popcorn calcifications)",
    "   Vascular calcifications, skin calcifications",
    "   Fat-containing lesions: lipoma, hamartoma, oil cysts, galactocele",
    "   Stable asymmetry unchanged over 3+ years",
    "   Post-surgical clips (after benign excision)",
    "Reporting: Describe finding + state 'BI-RADS 2: Benign' with routine recall",
  ]
);

// SLIDE 16 — BIRADS 3
biradsCategorySlide(
  "3",
  "Probably Benign",
  ">0% – ≤2%",
  "6-month Short-Interval Follow-Up",
  "F39C12",
  [
    "High probability of being benign; short-term surveillance to confirm stability",
    "CLASSIC BI-RADS 3 FINDINGS (validated in prospective studies):",
    "   Non-calcified circumscribed oval/round solid mass (likely fibroadenoma)",
    "   Focal asymmetry without associated features",
    "   Solitary group of punctate calcifications (round, <5, clustered)",
    "FOLLOW-UP PROTOCOL:",
    "   Initial 6-month unilateral short-interval follow-up",
    "   Then 12-month bilateral mammogram",
    "   If stable at 2–3 years: upgrade to BI-RADS 1 or 2",
    "   If changes (increases in size, develops margins): upgrade to BI-RADS 4",
    "NOTE: BI-RADS 3 should NOT be used on a first screening mammogram without diagnostic workup",
    "BI-RADS 3 should be avoided in patients requesting biopsy for reassurance",
  ]
);

// SLIDE 17 — BIRADS 4 (A, B, C)
biradsCategorySlide(
  "4",
  "Suspicious — Tissue Biopsy Required",
  ">2% – <95%",
  "Image-Guided Core Needle Biopsy",
  "E74C3C",
  [
    "Subcategories 4A / 4B / 4C allow refined communication of suspicion level:",
    "",
    "BI-RADS 4A — Low Suspicion (>2% – ≤10%):",
    "   Partially circumscribed oval mass, clustered amorphous calcs, focal asymmetry",
    "   Palpable mass with benign US features; biopsy expected to be benign",
    "",
    "BI-RADS 4B — Intermediate Suspicion (>10% – ≤50%):",
    "   Partially indistinct margins, coarse heterogeneous calcs, microlobulated mass",
    "   Equal probability of benign vs. malignant",
    "",
    "BI-RADS 4C — Moderate-High Suspicion (>50% – <95%):",
    "   Irregular, indistinct mass without spiculation; fine pleomorphic clustered calcs",
    "   Fine linear/branching calcs in segmental distribution (DCIS pattern)",
    "Biopsy method: Stereotactic, US-guided, or MRI-guided core needle biopsy preferred",
  ]
);

// SLIDE 18 — BIRADS 5
biradsCategorySlide(
  "5",
  "Highly Suggestive of Malignancy",
  "≥95%",
  "Tissue Biopsy / Surgical Treatment",
  "8E1A0E",
  [
    "Classic features of malignancy — biopsy mandatory even if clinical suspicion is low",
    "CHARACTERISTIC FEATURES (any combination):",
    "   Spiculated, irregular, high-density mass",
    "   Irregular mass with associated fine linear/branching calcifications",
    "   Architectural distortion + associated irregular mass",
    "   Fine linear/branching calcifications in a segmental distribution",
    "   Developing, irregular, spiculated mass on serial imaging",
    "US correlation: taller-than-wide, irregular, angular/spiculated margins, posterior shadowing",
    "MANAGEMENT:",
    "   Core needle biopsy (14G or vacuum-assisted) before any surgery",
    "   Pre-operative wire/clip localisation or radio-guided SNLB planning",
    "   Staging workup if malignancy confirmed (CT chest/abdomen/pelvis, bone scan if indicated)",
  ]
);

// SLIDE 19 — BIRADS 6
biradsCategorySlide(
  "6",
  "Known Biopsy-Proven Malignancy",
  "N/A",
  "Surgical Excision / Definitive Therapy",
  "5D2366",
  [
    "Reserved for lesions with biopsy-proven malignancy BEFORE definitive treatment",
    "Category is assigned when imaging is performed for treatment planning or monitoring",
    "CLINICAL SCENARIOS:",
    "   Pre-operative assessment: localisation of known cancer before surgery",
    "   Neoadjuvant chemotherapy monitoring: serial imaging to assess treatment response",
    "   Staging additional ipsilateral or contralateral disease",
    "   Post-biopsy clip placement confirmation",
    "IMPORTANT POINTS:",
    "   BI-RADS 6 does NOT apply to post-surgery surveillance of treated patients",
    "   After surgery/treatment: reassign to BI-RADS 1–5 based on post-treatment findings",
    "   CESM and MRI are useful for neoadjuvant response assessment in BI-RADS 6 patients",
  ]
);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 6: IMAGING FEATURES OF MALIGNANCY
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 6\nImaging Features of Breast Malignancy");

// SLIDE 20 — US features
imageContentSlide(
  "Ultrasound Features of Breast Malignancy",
  [
    "US is complementary to mammography — not a replacement for screening",
    "FEATURES SUSPICIOUS FOR MALIGNANCY:",
    "Taller-than-wide orientation (non-parallel to skin)",
    "Irregular shape with angular or spiculated margins",
    "Hypoechoic or heterogeneously hypoechoic echo pattern",
    "Posterior acoustic shadowing (desmoplastic reaction)",
    "Internal calcifications / micro-lobulations",
    "Disruption of surrounding tissue planes",
    "Associated skin thickening / nipple retraction",
    "Increased vascularity on Doppler (non-specific)",
    "BENIGN FEATURES (BI-RADS 3 on US):",
    "Oval, parallel, circumscribed, anechoic (simple cyst) or isoechoic mass",
  ],
  "https://cdn.orris.care/cdss_images/3a50c239aefc37202d31437732e94d88069923f12bed284cb5a6b0dc7c9c30f9.png",
  "Fig 5. US BI-RADS 5 — irregular, taller-than-wide mass with angular margins. BI-RADS 5 (malignant)."
);

// SLIDE 21 — Malignant lesion types
imageContentSlide(
  "Mammographic & US Features: Malignant Lesions",
  [
    "INVASIVE DUCTAL CARCINOMA (IDC) — most common (70-80%):",
    "Irregular, spiculated, high-density mass ± calcifications",
    "US: irregular, hypoechoic, posterior shadowing",
    "INVASIVE LOBULAR CARCINOMA (ILC):",
    "Architectural distortion without discrete mass (may be mammographically occult)",
    "MRI/CESM superior for detection",
    "DUCTAL CARCINOMA IN SITU (DCIS):",
    "Fine linear/branching or fine pleomorphic calcifications",
    "Segmental or linear distribution = high-grade DCIS",
    "MUCINOUS / MEDULLARY / PAPILLARY:",
    "May appear deceptively oval + circumscribed (low mammographic suspicion)",
    "US: heterogeneous internal echoes help distinguish from simple cyst",
  ],
  "https://cdn.orris.care/cdss_images/175a4ed28b76544aafae0d9fdb95fba7550e0f5f88b37418e36e6056c4cc4b60.png",
  "Fig 6. US — A: 25 mm irregular mass; B: 30 mm mass near implant; C: cancer with calcifications; D: 9 mm spiculated mass with posterior shadowing."
);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 7: SUPPLEMENTAL IMAGING
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 7\nSupplemental Imaging & Special Situations");

// SLIDE 22 — Supplemental screening
contentSlide("Supplemental Imaging: Indications & Role", [
  "BREAST ULTRASOUND:",
  "   Evaluate palpable masses (women >30 yrs or any symptomatic patient)",
  "   Distinguish cyst vs. solid mass on mammography",
  "   Guide biopsy procedures (US-guided CNB is preferred where US visible)",
  "   Supplemental screening in dense breasts (BI-RADS C/D) — detects ~3 additional cancers/1000",
  "",
  "BREAST MRI:",
  "   Gold standard for staging; superior sensitivity (~90%) but lower specificity",
  "   Indications: BRCA carriers, annual screening from age 30; dense breasts with strong FH",
  "   Pre-surgical staging: detect multifocal/multicentric disease, contralateral cancer (5.7%)",
  "   Evaluate response to neoadjuvant chemotherapy",
  "   Differentiate scar from recurrence post-breast-conserving surgery",
  "   Mandatory: dedicated breast coil; IV gadolinium; BI-RADS lexicon assigned",
  "",
  "NOTE: MRI has high false-positive rate (30-40%) → may increase mastectomy rates without improved outcomes",
]);

// ══════════════════════════════════════════════════════════════════════════════
// SECTION 8: KEY MNEMONICS & EXAM TIPS
// ══════════════════════════════════════════════════════════════════════════════
sectionTitle("SECTION 8\nKey Mnemonics & Exam Pearls");

// SLIDE 23 — Exam Pearls
contentSlide("High-Yield Exam Pearls for MD Radiodiagnosis", [
  "BI-RADS 0 is NEVER a final assessment — always resolve to 1–5 after diagnostic workup",
  "BI-RADS 3 requires PRIOR diagnostic workup — not assigned at first visit without full evaluation",
  "Spiculated mass = BI-RADS 5 (≥95% malignancy) — always biopsy first before surgery",
  "Developing asymmetry = most important soft tissue finding — high PPV, do NOT ignore",
  "Fine linear/branching calcs in segmental distribution = high-grade DCIS → BI-RADS 4C/5",
  "Oval, circumscribed, parallel mass on US + mammography = likely fibroadenoma → BI-RADS 3",
  "DBT significantly improves detection of architectural distortion vs. 2D mammography",
  "Breast density category C or D → consider supplemental US or MRI",
  "BI-RADS 4A/B/C subcategories aid communication but share the same management: BIOPSY",
  "Mucinous/ILC/papillary cancers may appear deceptively benign on mammography — US + MRI often needed",
  "CESM = MRI alternative when gadolinium contraindicated or MRI not feasible",
]);

// SLIDE 24 — FINAL SUMMARY TABLE
tableSlide(
  "Summary: BI-RADS at a Glance — 2025 ACR",
  ["BI-RADS", "Probability Malignancy", "Action", "Example Findings"],
  [
    ["0", "N/A — Incomplete", "Recall / compare priors", "Screening abnormality needing workup"],
    ["1", "~0%", "Annual screen", "Normal mammogram"],
    ["2", "~0%", "Annual screen", "Simple cyst, calcified fibroadenoma"],
    ["3", "0–2%", "6-month follow-up", "Oval circumscribed solid mass, punctate calcs"],
    ["4A", "2–10%", "Core biopsy", "Partially circumscribed mass, amorphous calcs"],
    ["4B", "10–50%", "Core biopsy", "Microlobulated mass, coarse heterogeneous calcs"],
    ["4C", "50–95%", "Core biopsy", "Fine pleomorphic calcs, irregular-indistinct mass"],
    ["5", "≥95%", "Biopsy + staging", "Spiculated mass, fine linear/branching calcs"],
    ["6", "Confirmed", "Definitive Rx", "Known cancer, neoadjuvant monitoring"],
  ],
  "ACR BI-RADS 5th Edition (2013); 2025 revisions maintain category thresholds. Source: Fischer's Mastery of Surgery 8e, Bailey & Love 28e."
);

// SLIDE 25 — CLOSING
titleSlide(
  "THANK YOU",
  "Mammography & BI-RADS — MD Radiodiagnosis 2025\nQuestions & Discussion"
);

// ─── Write file ───────────────────────────────────────────────────────────────
const outPath = "/home/daytona/workspace/mammography-birads/Mammography_BIRADS_MD_Radiology_2025.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("SUCCESS: " + outPath);
}).catch(err => {
  console.error("ERROR:", err);
});
Running Command

cd /home/daytona/workspace/mammography-birads && node build.js 2>&1

Running Command

node /home/daytona/skills/shared/scripts/fetch_images.js "https://cdn.orris.care/cdss_images/63ec402be6773d3bcbacfe0c2e03bd7177a03bdf5f72cd29a2242a470095dbe3.png" 2>&1 | head -c 200

Running Command

curl -s --max-time 15 -o /home/daytona/workspace/mammography-birads/img1.png "https://cdn.orris.care/cdss_images/63ec402be6773d3bcbacfe0c2e03bd7177a03bdf5f72cd29a2242a470095dbe3.png" && echo "OK img1" & curl -s --max-time 15 -o /home/daytona/workspace/mammography-birads/img2.png "https://cdn.orris.care/cdss_images/6a99cca715592e5a6353178ceb0c7c4ffb2cdc0c58db90cfa00656c2cae7867d.png" && echo "OK img2" & curl -s --max-time 15 -o /home/daytona/workspace/mammography-birads/img3.png "https://cdn.orris.care/cdss_images/0c49d18a63e987617a125718f66e6edc3a3b5bc20a14c2c45d451c0ed1d96c7e.png" && echo "OK img3" & curl -s --max-time 15 -o /home/daytona/workspace/mammography-birads/img4.png "https://cdn.orris.care/cdss_images/464ec36ed2f09b6a57ebea0eb71097cb040ac2a0fa40eb085c00445befc41228.png" && echo "OK img4" & wait ls -lh /home/daytona/workspace/mammography-birads/*.png 2>/dev/null || echo "No PNGs"

This is a shared conversation. Sign in to Orris to start your own chat.