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
ACR BIRADS 2013 2022 2025 mammography categories criteria update
mkdir -p /home/daytona/workspace/mammography-birads && ls /home/daytona/workspace/mammography-birads/
~/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);
});
cd /home/daytona/workspace/mammography-birads && node build.js 2>&1
node /home/daytona/skills/shared/scripts/fetch_images.js "https://cdn.orris.care/cdss_images/63ec402be6773d3bcbacfe0c2e03bd7177a03bdf5f72cd29a2242a470095dbe3.png" 2>&1 | head -c 200
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"