Make 10 ppt on MRI Radiology teaching cover all subjects
Done
mkdir -p /home/daytona/workspace/mri-radiology-teaching && ls /home/daytona/workspace/mri-radiology-teaching
Create 10 professional MRI Radiology teaching PowerPoint presentations using PptxGenJS. Save all files to /home/daytona/workspace/mri-radiology-teaching/ ## TECHNICAL REQUIREMENTS - Use pptxgenjs (already installed, use `require("pptxgenjs")`) - Layout: LAYOUT_16x9 (10" x 5.625") - Each file: run as `node filename.js` to generate the .pptx - Save each .pptx to /home/daytona/workspace/mri-radiology-teaching/ ## DESIGN THEME (apply to ALL 10 presentations) - Dark navy background (#0D1B2A) for title slides and section dividers - White/light content slides (#F5F7FA background) - Accent color: Cyan/teal (#00B4D8) for headings and highlights - Secondary accent: Amber (#F4A261) for key points/call-outs - Font: Calibri throughout - Each slide must have a colored left-bar accent (0.15" wide, full height, cyan) - Title slide: full dark navy background, large white title, cyan subtitle line - Content slides: white bg, navy header bar at top (full width, 0.7" tall), white title text in header, cyan left accent bar - Use tables, colored boxes, and structured layouts - NOT just bullet lists ## SLIDE STRUCTURE FOR EACH PRESENTATION Each presentation should have 18-22 slides: 1. Title slide (dark navy) 2. Table of Contents 3-20+: Content slides (varied layouts) Last slide: Summary / Key Takeaways (dark navy) --- ## PRESENTATION 1: MRI Physics & Basic Principles File: 01_MRI_Physics.js → 01_MRI_Physics.pptx Topics to cover (18-20 slides): - What is MRI? History and clinical relevance - Nuclear Magnetic Resonance - proton spin concept - Magnetic field strength (T1, 1.5T, 3T, 7T) - Larmor frequency and precession - RF pulses - excitation and relaxation - T1 relaxation (longitudinal) - tissue values table - T2 relaxation (transverse) - tissue values table - T2* relaxation and susceptibility - Signal equation: TR, TE, flip angle - Slice selection, frequency encoding, phase encoding - K-space concept - what it is, how it's filled - Image reconstruction (Fourier transform) - SNR factors: field strength, voxel size, NEX - Spatial resolution vs SNR tradeoffs - MRI vs CT comparison table - Contraindications overview - Key takeaways --- ## PRESENTATION 2: MRI Sequences & Protocols File: 02_MRI_Sequences.js → 02_MRI_Sequences.pptx Topics (18-20 slides): - Overview of sequence families - Spin Echo (SE) - TR/TE, T1W vs T2W - Fast/Turbo Spin Echo (FSE/TSE) - Gradient Echo (GRE) - in-phase/out-of-phase - Inversion Recovery: STIR, FLAIR, FSPGR - EPI - Echo Planar Imaging - Diffusion Weighted Imaging (DWI) - ADC maps - Perfusion MRI - MRCP sequence details - MR Spectroscopy basics - Fat saturation techniques: ChemSat, STIR, Dixon - Parallel imaging: SENSE, GRAPPA - Compressed sensing - 3D sequences: VIBE, SPACE, CUBE, VISTA - Functional MRI (fMRI) basics - Standard organ protocol table (brain/spine/abdomen/MSK) - Key takeaways --- ## PRESENTATION 3: Brain & Neuro MRI File: 03_Brain_Neuro_MRI.js → 03_Brain_Neuro_MRI.pptx Topics (20 slides): - Brain MRI indications - Normal brain anatomy on MRI (axial, sagittal, coronal landmarks) - White matter vs grey matter signal characteristics - Standard brain MRI protocol - Acute stroke: DWI/ADC patterns - Chronic stroke appearances - Brain tumors: Glioma grades, GBM, meningioma, metastases - Demyelinating disease: Multiple Sclerosis (McDonald criteria lesions) - Infections: abscess, encephalitis, meningitis - Hydrocephalus types - Traumatic brain injury (TBI) on MRI - Epilepsy MRI protocol - Cerebrovascular malformations (AVM, cavernoma) - Posterior fossa lesions - Pituitary MRI - Pediatric brain - normal variants vs pathology - MRI of cranial nerves - Key takeaways --- ## PRESENTATION 4: Spine MRI File: 04_Spine_MRI.js → 04_Spine_MRI.pptx Topics (18-20 slides): - Spine MRI indications - Normal spine anatomy: vertebral body, disc, cord, CSF - Disc nomenclature: bulge vs protrusion vs extrusion vs sequestration - Cervical spine MRI - cord compression - Lumbar spine MRI - disc herniation grading - Thoracic spine pathology - Spinal stenosis grading - Modic changes (Types 1, 2, 3) with signal table - Spondylolisthesis grading - Spinal cord pathology: myelopathy, MS, AVM - Spinal infections: discitis, osteomyelitis, epidural abscess - Spinal tumors: intradural-extramedullary, intramedullary, extradural - Post-operative spine MRI - Sacrum and coccyx - Cauda equina syndrome - TLICS and ASIA scoring (brief) - Key takeaways --- ## PRESENTATION 5: MSK & Joint MRI File: 05_MSK_Joint_MRI.js → 05_MSK_Joint_MRI.pptx Topics (20 slides): - MSK MRI indications - Normal joint anatomy on MRI - Knee MRI: meniscus, ACL, PCL, cartilage - Meniscal tear classification (Grade 1, 2, 3) - Ligament injuries: ACL tear signs - Cartilage assessment: ICRS grading - Shoulder MRI: rotator cuff, labrum - Rotator cuff tear classification - SLAP lesions and Bankart lesions - Hip MRI: FAI, labral tears, AVN - Ankle & foot MRI: tendons, ligaments - Wrist MRI: TFCC, scaphoid - Bone marrow signal - normal vs edema vs infiltration - Soft tissue tumors: benign vs malignant features - Bone tumors on MRI - Muscle injuries: strain grading - Key takeaways --- ## PRESENTATION 6: Cardiac MRI File: 06_Cardiac_MRI.js → 06_Cardiac_MRI.pptx Topics (18-20 slides): - Cardiac MRI indications - Cardiac gating: ECG-gated vs free breathing - Standard cardiac planes: 4-chamber, 2-chamber, short axis, LVOT - Normal cardiac anatomy on MRI - Myocardial function assessment (EF, volumes) - Late gadolinium enhancement (LGE) - ischemic vs non-ischemic patterns - Acute myocardial infarction - Chronic infarction and viability - Cardiomyopathy: DCM, HCM, ARVC - Myocarditis - Lake Louise criteria - Cardiac masses and thrombus - Pericardial disease: pericarditis, effusion, constriction - Congenital heart disease overview - Valvular disease assessment - Aortic pathology: dissection, aneurysm - T1 and T2 mapping - Key takeaways --- ## PRESENTATION 7: Abdominal & Pelvic MRI File: 07_Abdomen_Pelvis_MRI.js → 07_Abdomen_Pelvis_MRI.pptx Topics (20 slides): - Abdominal MRI indications - Liver MRI protocol (LIRADS overview) - Normal liver signal - segments - Focal liver lesions: cyst, hemangioma, FNH, HCC, metastases - HCC and LIRADS classification - Biliary system: MRCP indications and anatomy - Choledocholithiasis, PSC, cholangiocarcinoma - Pancreas MRI: normal anatomy, pancreatitis, IPMN, adenocarcinoma - Spleen and adrenal MRI - Renal MRI: cysts (Bosniak), RCC, AML - Adrenal MRI: adenoma vs phaechromocytoma - Prostate MRI: PI-RADS scoring - Female pelvis: uterus, ovaries, endometriosis - Rectal MRI: staging rectal cancer (TME plane) - Pelvic floor MRI - Bowel MRI: Crohn's disease - Key takeaways --- ## PRESENTATION 8: Breast MRI File: 08_Breast_MRI.js → 08_Breast_MRI.pptx Topics (18-20 slides): - Breast MRI indications - Breast MRI technique and protocol - Normal breast anatomy on MRI - BI-RADS MRI lexicon overview - Background parenchymal enhancement (BPE) - Kinetic curve analysis: washout, plateau, progressive - Morphology: mass vs non-mass enhancement - Benign lesions: fibroadenoma, cyst - Malignant lesions: IDC, ILC, DCIS appearance - High-risk screening (BRCA1/2) - Staging breast cancer with MRI - Axillary lymph node assessment - Post-treatment MRI: response assessment - MRI-guided biopsy - Implant MRI: rupture signs (linguine sign, snowstorm) - Pitfalls and limitations - Key takeaways --- ## PRESENTATION 9: Vascular MRI & MRA File: 09_Vascular_MRI_MRA.js → 09_Vascular_MRI_MRA.pptx Topics (18-20 slides): - MRA indications and advantages over CTA - Time-of-Flight (TOF) MRA - 2D vs 3D - Phase Contrast (PC) MRA - velocity encoding - Contrast-Enhanced MRA (CE-MRA) - Non-contrast MRA techniques: QISS, NATIVE, bSSFP - Brain MRA: circle of Willis, aneurysm detection - Carotid MRA and atherosclerosis - Aortic MRA: dissection classification (DeBakey, Stanford) - Renal artery stenosis - Peripheral MRA: run-off studies - Portal venous MR venography - Cerebral venous sinus thrombosis - Pulmonary MRA - Vessel wall imaging - Flow quantification with PC-MRI - MRA vs DSA comparison - Key takeaways --- ## PRESENTATION 10: MRI Artifacts, Contrast Agents & Safety File: 10_Artifacts_Contrast_Safety.js → 10_Artifacts_Contrast_Safety.pptx Topics (20 slides): - Overview of MRI artifacts - Motion artifacts - solutions - Gibbs/truncation artifact - Chemical shift artifact (1st and 2nd order) - Susceptibility artifact (metal, air) - Aliasing/wraparound artifact - Magic angle artifact - Dielectric effect artifact - Zipper artifact - Gadolinium-based contrast agents (GBCAs) - 9 agents table (linear vs macrocyclic) - Mechanism of enhancement - Nephrogenic Systemic Fibrosis (NSF) - Gadolinium retention in brain - ACR contrast guidelines - GFR thresholds - MRI safety zones (Zone I-IV) - Implant safety: pacemakers, cochlear implants - Ferromagnetic projectile risk - Pregnancy and MRI safety - Specific Absorption Rate (SAR) and heating - Emergency protocols in MRI suite - Key takeaways --- ## JAVASCRIPT CODE APPROACH Write ONE JavaScript file per presentation. Here's the template structure to follow: ```javascript const pptxgen = require("pptxgenjs"); const prs = new pptxgen(); prs.layout = "LAYOUT_16x9"; // Color palette const NAVY = "0D1B2A"; const WHITE = "FFFFFF"; const CYAN = "00B4D8"; const AMBER = "F4A261"; const LIGHT_BG = "F5F7FA"; const DARK_TEXT = "1A2B3C"; // Helper: add standard content slide with navy header function addContentSlide(title) { const slide = prs.addSlide(); slide.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: NAVY } }); slide.addText(title, { x: 0.2, y: 0, w: 9.6, h: 0.7, fontSize: 22, bold: true, color: WHITE, valign: "middle" }); slide.addShape(prs.ShapeType.rect, { x: 0, y: 0.7, w: 0.15, h: 4.925, fill: { color: CYAN } }); slide.background = { color: LIGHT_BG }; return slide; } // Helper: add dark divider slide function addDividerSlide(title, subtitle) { const slide = prs.addSlide(); slide.background = { color: NAVY }; slide.addShape(prs.ShapeType.rect, { x: 0, y: 2.3, w: 10, h: 0.06, fill: { color: CYAN } }); slide.addText(title, { x: 0.5, y: 1.0, w: 9, h: 1.2, fontSize: 36, bold: true, color: WHITE, align: "center" }); if (subtitle) slide.addText(subtitle, { x: 0.5, y: 2.5, w: 9, h: 0.8, fontSize: 20, color: CYAN, align: "center" }); return slide; } // SLIDE 1: Title const titleSlide = prs.addSlide(); titleSlide.background = { color: NAVY }; titleSlide.addShape(prs.ShapeType.rect, { x: 0, y: 2.8, w: 10, h: 0.08, fill: { color: CYAN } }); titleSlide.addText("PRESENTATION TITLE", { x: 0.5, y: 1.2, w: 9, h: 1.5, fontSize: 40, bold: true, color: WHITE, align: "center" }); titleSlide.addText("MRI Radiology Teaching Series", { x: 0.5, y: 3.0, w: 9, h: 0.6, fontSize: 20, color: CYAN, align: "center" }); titleSlide.addText("Radiology Department | 2026", { x: 0.5, y: 3.7, w: 9, h: 0.5, fontSize: 14, color: "8ECAE6", align: "center" }); // ... add all slides ... prs.writeFile({ fileName: "/home/daytona/workspace/mri-radiology-teaching/01_MRI_Physics.pptx" }) .then(() => console.log("DONE: 01_MRI_Physics.pptx")) .catch(err => console.error(err)); ``` ## INSTRUCTIONS: 1. Write all 10 JS files to /home/daytona/workspace/mri-radiology-teaching/ 2. Each file should produce 18-22 well-designed slides 3. Use tables for comparison data (addTable), colored boxes for key points, varied layouts 4. For bullet lists use addText with array of bullet items 5. Execute each JS file with `node filename.js` 6. Verify each .pptx file was created 7. Report back the full list of created files with their paths Make the slides EDUCATIONAL and CONTENT-RICH. Include actual radiology facts, values, and clinical information - not placeholder text. Use the medical knowledge about MRI to fill slides with real content. When done, report: the list of all 10 .pptx file paths that were successfully created.
mkdir -p /home/daytona/workspace/mri-radiology-teaching && echo "Directory created" && node -e "require('pptxgenjs'); console.log('pptxgenjs OK')"
~/mri-radiology-teaching/01_MRI_Physics.js
const pptxgen = require("pptxgenjs");
const prs = new pptxgen();
prs.layout = "LAYOUT_16x9";
prs.title = "MRI Physics & Basic Principles";
const NAVY = "0D1B2A";
const WHITE = "FFFFFF";
const CYAN = "00B4D8";
const AMBER = "F4A261";
const LIGHT_BG = "F5F7FA";
const DARK_TEXT = "1A2B3C";
const MID_GRAY = "4A5568";
const LIGHT_CYAN = "E0F7FA";
const DARK_CYAN = "0077A8";
function addContentSlide(title) {
const slide = prs.addSlide();
slide.background = { color: LIGHT_BG };
slide.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: NAVY }, line: { color: NAVY } });
slide.addText(title, { x: 0.25, y: 0, w: 9.5, h: 0.7, fontSize: 22, bold: true, color: WHITE, valign: "middle", margin: 0 });
slide.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0.7, w: 0.15, h: 4.925, fill: { color: CYAN }, line: { color: CYAN } });
return slide;
}
function addDividerSlide(title, subtitle) {
const slide = prs.addSlide();
slide.background = { color: NAVY };
slide.addShape(prs.shapes.RECTANGLE, { x: 1, y: 2.55, w: 8, h: 0.06, fill: { color: CYAN }, line: { color: CYAN } });
slide.addText(title, { x: 0.5, y: 1.1, w: 9, h: 1.2, fontSize: 36, bold: true, color: WHITE, align: "center" });
if (subtitle) slide.addText(subtitle, { x: 0.5, y: 2.7, w: 9, h: 0.8, fontSize: 20, color: CYAN, align: "center" });
return slide;
}
function addAmberBox(slide, text, x, y, w, h, fontSize) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: AMBER }, line: { color: AMBER } });
slide.addText(text, { x, y, w, h, fontSize: fontSize || 13, bold: true, color: NAVY, align: "center", valign: "middle" });
}
function addCyanBox(slide, text, x, y, w, h, fontSize) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: CYAN }, line: { color: CYAN } });
slide.addText(text, { x, y, w, h, fontSize: fontSize || 13, bold: true, color: WHITE, align: "center", valign: "middle" });
}
function addNavyBox(slide, text, x, y, w, h, fontSize) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: NAVY }, line: { color: NAVY } });
slide.addText(text, { x, y, w, h, fontSize: fontSize || 13, bold: true, color: WHITE, align: "center", valign: "middle" });
}
// ── SLIDE 1: Title ──────────────────────────────────────────────────────────
const s1 = prs.addSlide();
s1.background = { color: NAVY };
s1.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN }, line: { color: CYAN } });
s1.addShape(prs.shapes.RECTANGLE, { x: 0.5, y: 2.5, w: 9.5, h: 0.08, fill: { color: CYAN }, line: { color: CYAN } });
s1.addText("MRI PHYSICS &\nBASIC PRINCIPLES", { x: 0.9, y: 0.8, w: 8.6, h: 1.8, fontSize: 42, bold: true, color: WHITE, align: "left" });
s1.addText("MRI Radiology Teaching Series — Module 1", { x: 0.9, y: 2.7, w: 8.6, h: 0.6, fontSize: 18, color: CYAN, align: "left" });
s1.addText("Radiology Department | 2026", { x: 0.9, y: 3.4, w: 8.6, h: 0.5, fontSize: 13, color: "8ECAE6", align: "left" });
s1.addText("From proton spin to diagnostic image", { x: 0.9, y: 4.1, w: 8.6, h: 0.5, fontSize: 14, color: "8ECAE6", italic: true, align: "left" });
// ── SLIDE 2: Table of Contents ───────────────────────────────────────────────
const s2 = addContentSlide("Table of Contents");
const tocItems = [
["01", "What is MRI? History & Clinical Relevance"],
["02", "Nuclear Magnetic Resonance — Proton Spin"],
["03", "Magnetic Field Strengths"],
["04", "Larmor Frequency & Precession"],
["05", "RF Pulses — Excitation & Relaxation"],
["06", "T1 Relaxation (Longitudinal)"],
["07", "T2 & T2* Relaxation (Transverse)"],
["08", "Signal Equation: TR, TE, Flip Angle"],
["09", "Spatial Encoding — Gradients & K-space"],
["10", "Image Reconstruction & SNR"],
["11", "MRI vs CT Comparison"],
["12", "Contraindications Overview"],
["13", "Key Takeaways"],
];
const col1 = tocItems.slice(0, 7);
const col2 = tocItems.slice(7);
col1.forEach((item, i) => {
addCyanBox(s2, item[0], 0.3, 0.85 + i * 0.55, 0.38, 0.38, 12);
s2.addText(item[1], { x: 0.75, y: 0.85 + i * 0.55, w: 4.1, h: 0.38, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
col2.forEach((item, i) => {
addCyanBox(s2, item[0], 5.1, 0.85 + i * 0.55, 0.38, 0.38, 12);
s2.addText(item[1], { x: 5.55, y: 0.85 + i * 0.55, w: 4.1, h: 0.38, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// ── SLIDE 3: What is MRI? ────────────────────────────────────────────────────
const s3 = addContentSlide("What is MRI? History & Clinical Relevance");
s3.addText("Magnetic Resonance Imaging (MRI) uses a strong magnetic field and radiofrequency (RF) pulses to generate detailed anatomical images without ionizing radiation.", { x: 0.25, y: 0.85, w: 9.5, h: 0.7, fontSize: 14, color: DARK_TEXT });
const histData = [
[{ text: "Year", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Milestone", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
["1946", "Bloch & Purcell describe Nuclear Magnetic Resonance (NMR) — Nobel Prize 1952"],
["1971", "Damadian shows tumor tissue has longer T1/T2 than normal tissue"],
["1973", "Lauterbur uses field gradients to create first 2D NMR image"],
["1977", "Mansfield & Garroway develop EPI; first human body image"],
["2003", "Lauterbur & Mansfield awarded Nobel Prize in Physiology or Medicine"],
["Today", "Standard of care for brain, spine, MSK, cardiac, abdominal imaging"],
];
s3.addTable(histData, { x: 0.25, y: 1.6, w: 9.5, h: 3.4, colW: [1.2, 8.3], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.48 });
// ── SLIDE 4: NMR — Proton Spin ───────────────────────────────────────────────
const s4 = addContentSlide("Nuclear Magnetic Resonance — Proton Spin");
s4.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 4.5, h: 1.1, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s4.addText("Core Principle", { x: 0.25, y: 0.85, w: 4.5, h: 0.35, fontSize: 13, bold: true, color: DARK_CYAN, align: "center", valign: "middle" });
s4.addText("Hydrogen nuclei (protons) have spin → act as tiny magnets (magnetic dipoles)", { x: 0.3, y: 1.18, w: 4.4, h: 0.7, fontSize: 12, color: DARK_TEXT, valign: "top" });
const steps = [
["1", "WITHOUT B0 field", "Proton spins are randomly oriented → net magnetization = 0"],
["2", "WITH B0 field applied", "Protons align parallel or antiparallel to B0 → net longitudinal magnetization (Mz) develops"],
["3", "RF pulse applied", "Protons absorb energy and tip into transverse plane → transverse magnetization (Mxy) created"],
["4", "RF pulse off", "Protons relax back → emit RF signal detected by receiver coil → MRI signal"],
];
steps.forEach((step, i) => {
const yy = 2.1 + i * 0.82;
addCyanBox(s4, step[0], 0.25, yy, 0.35, 0.35, 14);
addAmberBox(s4, step[1], 0.65, yy, 2.5, 0.35, 11);
s4.addText(step[2], { x: 3.2, y: yy, w: 6.55, h: 0.35, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// ── SLIDE 5: Field Strengths ─────────────────────────────────────────────────
const s5 = addContentSlide("Magnetic Field Strength");
const fsData = [
[
{ text: "Field Strength", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "Clinical Use", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "SNR", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "Notes", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
],
["0.3 T (Low)", "Open MRI; claustrophobic patients", "Low", "Limited soft-tissue contrast"],
["1.0 T (Mid)", "General purpose (less common now)", "Moderate", "Cost-effective"],
[{ text: "1.5 T (Standard)", options: { bold: true, color: DARK_CYAN } }, "Routine clinical imaging", "Good", "Workhorse scanner worldwide"],
[{ text: "3 T (High)", options: { bold: true, color: DARK_CYAN } }, "Neuroimaging, functional MRI, MSK", "Very High (2× vs 1.5T)", "More SAR, susceptibility artefacts"],
["7 T (Ultra-high)", "Research; cortical architecture", "Exceptional", "Inhomogeneity challenges; limited clinical approval"],
["≥10 T", "Preclinical / research only", "—", "Not for human use"],
];
s5.addTable(fsData, { x: 0.25, y: 0.85, w: 9.5, h: 4.5, colW: [2.0, 2.8, 1.8, 2.9], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.62 });
// ── SLIDE 6: Larmor Frequency ────────────────────────────────────────────────
const s6 = addContentSlide("Larmor Frequency & Precession");
s6.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.9, fill: { color: NAVY }, line: { color: NAVY } });
s6.addText("Larmor Equation: ω₀ = γ × B₀", { x: 0.25, y: 0.85, w: 9.5, h: 0.9, fontSize: 24, bold: true, color: CYAN, align: "center", valign: "middle" });
const larmorData = [
[{ text: "Parameter", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Symbol", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Value / Units", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }],
["Precession frequency", "ω₀", "Depends on B₀ (MHz)"],
["Gyromagnetic ratio (¹H)", "γ", "42.58 MHz/T"],
["Field strength at 1.5T", "B₀", "63.87 MHz"],
["Field strength at 3T", "B₀", "127.74 MHz"],
["Field strength at 7T", "B₀", "298.1 MHz"],
];
s6.addTable(larmorData, { x: 0.25, y: 1.85, w: 5.5, h: 3.2, colW: [2.5, 1.5, 1.5], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 13, color: DARK_TEXT, rowH: 0.52 });
s6.addShape(prs.shapes.RECTANGLE, { x: 6.0, y: 1.85, w: 3.7, h: 3.2, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s6.addText("Clinical Relevance", { x: 6.0, y: 1.85, w: 3.7, h: 0.4, fontSize: 13, bold: true, color: DARK_CYAN, align: "center", valign: "middle" });
s6.addText([
{ text: "• RF pulses must match ω₀ to cause resonance\n", options: { breakLine: false } },
{ text: "• Larmor freq varies by tissue via chemical shift\n", options: { breakLine: false } },
{ text: "• Fat resonates ~220 Hz lower than water at 1.5T (~440 Hz at 3T)\n", options: { breakLine: false } },
{ text: "• Basis for fat suppression techniques\n", options: { breakLine: false } },
{ text: "• Shimming corrects local B₀ inhomogeneity", options: {} },
], { x: 6.05, y: 2.3, w: 3.6, h: 2.6, fontSize: 12, color: DARK_TEXT, valign: "top" });
// ── SLIDE 7: RF Pulses ───────────────────────────────────────────────────────
const s7 = addContentSlide("RF Pulses — Excitation & Relaxation");
const rfItems = [
{ title: "90° Excitation Pulse", color: CYAN, text: "Tips net magnetization (Mz) fully into transverse plane (Mxy). Maximum signal generated." },
{ title: "180° Refocusing Pulse", color: AMBER, text: "Inverts spins. Used in Spin Echo to rephase T2* dephasing. Also used in Inversion Recovery." },
{ title: "Variable Flip Angle", color: DARK_CYAN, text: "Small flip angles (15-35°) used in GRE sequences → preserve longitudinal Mz for faster repetition (short TR)." },
];
rfItems.forEach((item, i) => {
const yy = 0.85 + i * 1.5;
slide_addColorBox(s7, item.title, item.color, 0.25, yy, 2.8, 0.45);
s7.addText(item.text, { x: 3.2, y: yy, w: 6.6, h: 0.45, fontSize: 13, color: DARK_TEXT, valign: "middle" });
s7.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: yy + 0.48, w: 9.5, h: 0.9, fill: { color: WHITE }, line: { color: "C8D6E5" } });
s7.addText("• After RF pulse ends, protons undergo Relaxation\n• Two independent processes occur simultaneously: T1 (longitudinal) and T2 (transverse)\n• Signal detected as Free Induction Decay (FID) in receiver coil", { x: 0.35, y: yy + 0.52, w: 9.3, h: 0.8, fontSize: 11, color: MID_GRAY });
});
function slide_addColorBox(slide, text, color, x, y, w, h) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color }, line: { color } });
slide.addText(text, { x, y, w, h, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
}
// ── SLIDE 8: T1 Relaxation ───────────────────────────────────────────────────
const s8 = addContentSlide("T1 Relaxation — Longitudinal Recovery");
s8.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.5, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s8.addText("T1 = time for Mz to recover to 63% of equilibrium after 90° RF pulse. Reflects spin-lattice interactions.", { x: 0.3, y: 0.85, w: 9.4, h: 0.5, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const t1Data = [
[
{ text: "Tissue", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "T1 at 1.5T (ms)", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "T1 at 3T (ms)", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "MRI Appearance (T1W)", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
],
["Fat", "260", "370", { text: "BRIGHT (short T1)", options: { bold: true, color: "E67E22" } }],
["White Matter", "780", "1080", { text: "Bright", options: { color: "27AE60" } }],
["Grey Matter", "900", "1330", "Intermediate"],
["Muscle", "870", "1420", "Intermediate"],
["CSF", "3000–4000", "3500+", { text: "DARK (very long T1)", options: { bold: true, color: "2980B9" } }],
["Blood (arterial)", "1200", "1600", "Variable (flow effects)"],
["Gadolinium-enhanced", "~50–200", "~50–200", { text: "VERY BRIGHT", options: { bold: true, color: "C0392B" } }],
];
s8.addTable(t1Data, { x: 0.25, y: 1.45, w: 9.5, h: 3.8, colW: [2.5, 2.0, 1.8, 3.2], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
addAmberBox(s8, "Short T1 → Bright on T1W Long T1 → Dark on T1W", 0.25, 5.25, 9.5, 0.35, 13);
// ── SLIDE 9: T2 & T2* Relaxation ────────────────────────────────────────────
const s9 = addContentSlide("T2 & T2* Relaxation — Transverse Decay");
s9.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 4.6, h: 0.5, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s9.addText("T2 = 63% loss of Mxy. Spin-spin interactions.", { x: 0.3, y: 0.85, w: 4.5, h: 0.5, fontSize: 12, color: DARK_TEXT, valign: "middle" });
s9.addShape(prs.shapes.RECTANGLE, { x: 5.1, y: 0.85, w: 4.65, h: 0.5, fill: { color: "FFF3E0" }, line: { color: AMBER } });
s9.addText("T2* includes B₀ inhomogeneity (faster decay)", { x: 5.15, y: 0.85, w: 4.55, h: 0.5, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const t2Data = [
[
{ text: "Tissue", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "T2 at 1.5T (ms)", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "T2* (ms)", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "T2W Appearance", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
],
["Fat", "80", "40–50", "Intermediate–Bright"],
["White Matter", "90", "65", "Intermediate"],
["Grey Matter", "100", "66", { text: "Slightly Brighter", options: { color: "27AE60" } }],
["CSF", "2000–3000", "200", { text: "VERY BRIGHT", options: { bold: true, color: "2980B9" } }],
["Muscle", "50", "28", "Dark"],
["Deoxyhemoglobin", "~5–10", "~3–5", { text: "VERY DARK (T2*)", options: { bold: true, color: "C0392B" } }],
["Cartilage (deep)", "30–40", "~12", "Dark"],
];
s9.addTable(t2Data, { x: 0.25, y: 1.45, w: 9.5, h: 3.6, colW: [2.5, 2.0, 1.8, 3.2], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.47 });
addAmberBox(s9, "T2* decay always faster than T2. Susceptibility agents (iron, air, metal) shorten T2*.", 0.25, 5.15, 9.5, 0.35, 12);
// ── SLIDE 10: Signal Equation ────────────────────────────────────────────────
const s10 = addContentSlide("Signal Equation: TR, TE & Flip Angle");
s10.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.7, fill: { color: NAVY }, line: { color: NAVY } });
s10.addText("S ∝ ρ(H) × (1 − e^(−TR/T1)) × e^(−TE/T2) [Spin Echo Signal Equation]", { x: 0.25, y: 0.85, w: 9.5, h: 0.7, fontSize: 16, bold: true, color: CYAN, align: "center", valign: "middle" });
const params = [
["TR (Repetition Time)", "Time between successive RF excitations", "Short TR → T1 weighting\nLong TR → PD/T2 weighting"],
["TE (Echo Time)", "Time from RF pulse to signal readout", "Short TE → PD/T1 weighting\nLong TE → T2 weighting"],
["Flip Angle (α)", "Angle of magnetization tipping", "90° → full SE signal\n<90° → GRE (faster TR possible)"],
];
params.forEach((p, i) => {
const yy = 1.7 + i * 1.2;
addCyanBox(s10, p[0], 0.25, yy, 3.0, 0.4, 12);
s10.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: yy + 0.42, w: 3.0, h: 0.65, fill: { color: WHITE }, line: { color: "C8D6E5" } });
s10.addText(p[1], { x: 0.3, y: yy + 0.44, w: 2.9, h: 0.6, fontSize: 11, color: MID_GRAY, valign: "middle" });
s10.addShape(prs.shapes.RECTANGLE, { x: 3.4, y: yy, w: 6.35, h: 1.07, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s10.addText(p[2], { x: 3.45, y: yy, w: 6.25, h: 1.07, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// ── SLIDE 11: Contrast weighting table ───────────────────────────────────────
const s11 = addContentSlide("Contrast Weighting: TR & TE Combinations");
s11.addText("Selecting TR and TE determines tissue contrast. These combinations are fundamental to MRI sequence design.", { x: 0.25, y: 0.82, w: 9.5, h: 0.5, fontSize: 13, color: DARK_TEXT });
const contrastData = [
[
{ text: "Contrast", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "TR", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "TE", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "Fat Signal", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "CSF Signal", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
{ text: "Common Uses", options: { bold: true, fill: { color: NAVY }, color: WHITE, align: "center" } },
],
[{ text: "T1-Weighted", options: { bold: true, color: "E67E22" } }, "Short (<700ms)", "Short (<30ms)", "Bright", "Dark", "Anatomy, post-contrast, fat"],
[{ text: "T2-Weighted", options: { bold: true, color: "2980B9" } }, "Long (>2000ms)", "Long (>80ms)", "Intermediate", "Bright", "Pathology (oedema), CSF"],
[{ text: "PD-Weighted", options: { bold: true, color: "27AE60" } }, "Long (>2000ms)", "Short (<30ms)", "Bright", "Intermediate", "Cartilage, menisci"],
[{ text: "T2*-Weighted", options: { bold: true, color: "8E44AD" } }, "Variable", "Long (GRE)", "Dark", "Bright", "Haemorrhage, iron, SWI"],
[{ text: "FLAIR", options: { bold: true, color: "C0392B" } }, "Very long (9000ms)", "Long + TI=2500ms", "Bright", { text: "NULLED (dark)", options: { bold: true } }, "MS plaques, periventricular lesions"],
];
s11.addTable(contrastData, { x: 0.25, y: 1.4, w: 9.5, h: 3.95, colW: [1.8, 1.4, 1.4, 1.2, 1.2, 2.5], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 11, color: DARK_TEXT, rowH: 0.62 });
// ── SLIDE 12: Spatial Encoding ───────────────────────────────────────────────
const s12 = addContentSlide("Spatial Encoding — Gradients");
const encSteps = [
{ n: "1", title: "Slice Selection Gradient (Gz)", desc: "Applied along z-axis during RF pulse. Determines which slice is excited by matching RF frequency to slice position via Larmor equation." },
{ n: "2", title: "Phase Encoding Gradient (Gy)", desc: "Applied after excitation. Protons at different y-positions accumulate different phase shifts. Each repetition uses a different phase-encode step." },
{ n: "3", title: "Frequency Encoding Gradient (Gx)", desc: "Applied during readout. Protons at different x-positions resonate at different frequencies, enabling spatial localisation along x-axis." },
];
encSteps.forEach((step, i) => {
const yy = 0.85 + i * 1.52;
addNavyBox(s12, step.n, 0.25, yy, 0.4, 1.35, 16);
addCyanBox(s12, step.title, 0.7, yy, 3.5, 0.45, 12);
s12.addShape(prs.shapes.RECTANGLE, { x: 0.7, y: yy + 0.48, w: 9.05, h: 0.82, fill: { color: WHITE }, line: { color: "C8D6E5" } });
s12.addText(step.desc, { x: 0.8, y: yy + 0.52, w: 8.9, h: 0.74, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// ── SLIDE 13: K-space ────────────────────────────────────────────────────────
const s13 = addContentSlide("K-space — The Raw MRI Data Domain");
s13.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.55, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s13.addText("K-space is the Fourier (frequency) domain representation of the MRI image. It stores raw signal data before reconstruction.", { x: 0.3, y: 0.87, w: 9.4, h: 0.5, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const kData = [
[{ text: "K-space Region", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Contains", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Clinical Impact", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
[{ text: "Centre (low spatial frequencies)", options: { bold: true } }, "Image contrast, brightness, gross tissue boundaries", "Determines overall image contrast — most diagnostic information here"],
[{ text: "Periphery (high spatial frequencies)", options: { bold: true } }, "Edge detail, fine structure, sharp interfaces", "Determines spatial resolution — edges and fine detail"],
["Full k-space", "Complete image information (contrast + detail)", "Standard full acquisition"],
["Partial Fourier", "~60–75% of k-space acquired; rest synthesised", "Shorter TE, faster scan; slight SNR penalty"],
["Radial/Spiral filling", "Non-Cartesian k-space trajectories", "Motion robustness (radial GRASP, PROPELLER)"],
];
s13.addTable(kData, { x: 0.25, y: 1.5, w: 9.5, h: 3.9, colW: [3.0, 3.5, 3.0], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.66 });
// ── SLIDE 14: Image Reconstruction ──────────────────────────────────────────
const s14 = addContentSlide("Image Reconstruction & SNR Factors");
s14.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: NAVY }, line: { color: NAVY } });
s14.addText("2D Fourier Transform of k-space → Greyscale MRI image", { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fontSize: 16, bold: true, color: CYAN, align: "center", valign: "middle" });
const snrFactors = [
["Field Strength (B₀)", "SNR ∝ B₀ (linear; 3T ≈ 2× SNR vs 1.5T)"],
["Voxel Volume", "SNR ∝ voxel size (FOV²×slice thickness / matrix²)"],
["Number of Excitations (NEX/NSA)", "SNR ∝ √NEX (doubling NEX → √2 SNR gain)"],
["Receiver Bandwidth (rBW)", "SNR ∝ 1/√rBW (narrow BW → higher SNR, more CS artefact)"],
["Coil Type", "Surface coils > volume coils for SNR at given region"],
["TR (T1-weighted)", "Longer TR → more T1 recovery → higher SNR"],
["TE", "Shorter TE → less T2 decay → higher SNR (but less T2 contrast)"],
];
const snrData = [[
{ text: "Factor", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } },
{ text: "SNR Effect", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } },
], ...snrFactors.map(r => [r[0], r[1]])];
s14.addTable(snrData, { x: 0.25, y: 1.4, w: 9.5, h: 4.0, colW: [3.5, 6.0], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
// ── SLIDE 15: SNR vs Resolution Tradeoffs ────────────────────────────────────
const s15 = addContentSlide("SNR vs Spatial Resolution — Tradeoffs");
const tradeoffs = [
{ param: "Increase Matrix Size", snr: "↓ (smaller voxels)", resolution: "↑ (finer detail)", time: "↑ (more phase encodes)" },
{ param: "Reduce FOV", snr: "↓ (smaller voxels)", resolution: "↑", time: "Same" },
{ param: "Thinner Slices", snr: "↓ (less tissue per voxel)", resolution: "↑ (z-axis)", time: "Same (more slices for coverage)" },
{ param: "Increase NEX/NSA", snr: "↑ (√NEX)", resolution: "No change", time: "↑ (proportional)" },
{ param: "Wider Bandwidth", snr: "↓", resolution: "Less CS artefact", time: "↓ (faster readout)" },
{ param: "Parallel Imaging (SENSE/GRAPPA)", snr: "↓ (g-factor penalty)", resolution: "Same", time: "↓ (faster)" },
];
const tradeData = [
[
{ text: "Parameter Change", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "SNR Effect", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "Resolution Effect", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "Scan Time", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
],
...tradeoffs.map(t => [t.param, t.snr, t.resolution, t.time]),
];
s15.addTable(tradeData, { x: 0.25, y: 0.85, w: 9.5, h: 4.6, colW: [3.0, 2.0, 2.5, 2.0], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.61 });
// ── SLIDE 16: MRI vs CT ──────────────────────────────────────────────────────
const s16 = addContentSlide("MRI vs CT — Comparison");
const vsData = [
[
{ text: "Feature", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "MRI", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } },
{ text: "CT", options: { bold: true, fill: { color: "C0392B" }, color: WHITE } },
],
["Radiation", { text: "None (RF + magnetic fields)", options: { color: "27AE60", bold: true } }, { text: "Ionising (X-rays)", options: { color: "C0392B" } }],
["Soft tissue contrast", { text: "Excellent", options: { bold: true } }, "Good (limited without contrast)"],
["Bone cortex visualisation", "Poor (signal void)", { text: "Excellent", options: { bold: true } }],
["Scan speed", "Minutes to >1 hour", { text: "Seconds", options: { bold: true } }],
["Acute haemorrhage detection", "Good (varies by sequence)", { text: "Excellent (hyperdense)", options: { bold: true } }],
["Implant safety", { text: "Ferromagnetic implants — risk", options: { color: "C0392B" } }, "Generally safe (artefact)"],
["Claustrophobia", "Significant issue", "Less problematic"],
["Contrast agent", "Gadolinium (low nephrotox.)", "Iodine (nephrotoxic at high dose)"],
["Cost", "High", "Moderate"],
["Best for", "Brain, spine, MSK, liver, pelvic organs", "Trauma, chest, acute abdomen, bones"],
];
s16.addTable(vsData, { x: 0.25, y: 0.85, w: 9.5, h: 4.75, colW: [2.8, 3.35, 3.35], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.43 });
// ── SLIDE 17: Contraindications ───────────────────────────────────────────────
const s17 = addContentSlide("MRI Contraindications Overview");
s17.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 4.55, h: 0.4, fill: { color: "C0392B" }, line: { color: "C0392B" } });
s17.addText("ABSOLUTE CONTRAINDICATIONS", { x: 0.25, y: 0.85, w: 4.55, h: 0.4, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
s17.addShape(prs.shapes.RECTANGLE, { x: 5.0, y: 0.85, w: 4.75, h: 0.4, fill: { color: AMBER }, line: { color: AMBER } });
s17.addText("RELATIVE CONTRAINDICATIONS", { x: 5.0, y: 0.85, w: 4.75, h: 0.4, fontSize: 13, bold: true, color: NAVY, align: "center", valign: "middle" });
const absCI = ["Non-MR-conditional cardiac pacemaker/ICD", "Cochlear implants (most older models)", "Ferromagnetic cerebral aneurysm clips", "Intraorbital metallic foreign bodies", "Ferromagnetic vascular stents (< 6 weeks)"];
const relCI = ["Pregnancy (1st trimester — caution)", "Renal impairment (gadolinium — NSF risk)", "Severe claustrophobia", "MR-conditional implants (check field strength)", "Tattoos (rarely thermal injury)", "Neurostimulators (conditional devices exist)"];
absCI.forEach((item, i) => {
s17.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 1.35 + i * 0.68, w: 0.3, h: 0.3, fill: { color: "C0392B" }, line: { color: "C0392B" } });
s17.addText(item, { x: 0.65, y: 1.35 + i * 0.68, w: 3.9, h: 0.6, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
relCI.forEach((item, i) => {
s17.addShape(prs.shapes.RECTANGLE, { x: 5.0, y: 1.35 + i * 0.68, w: 0.3, h: 0.3, fill: { color: AMBER }, line: { color: AMBER } });
s17.addText(item, { x: 5.4, y: 1.35 + i * 0.68, w: 4.3, h: 0.6, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// ── SLIDE 18: Key Takeaways (dark) ───────────────────────────────────────────
const s18 = prs.addSlide();
s18.background = { color: NAVY };
s18.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN }, line: { color: CYAN } });
s18.addText("Key Takeaways", { x: 0.7, y: 0.3, w: 9.0, h: 0.8, fontSize: 32, bold: true, color: WHITE });
const takeaways = [
"MRI exploits proton spin in magnetic fields — NO ionising radiation",
"T1 relaxation is longitudinal (spin-lattice); T2 is transverse (spin-spin)",
"Short T1 = bright on T1W; Long T2 = bright on T2W (e.g. CSF, oedema)",
"Larmor frequency ω₀ = γ × B₀ (42.58 MHz/T for ¹H)",
"SNR ∝ B₀, voxel size, and √NEX — always a tradeoff with resolution",
"K-space centre = contrast; periphery = detail (spatial resolution)",
"TR and TE selection drives image contrast weighting",
"Check contraindications: metallic implants, pacemakers, foreign bodies",
];
takeaways.forEach((t, i) => {
addCyanBox(s18, `${i + 1}`, 0.7, 1.2 + i * 0.55, 0.38, 0.38, 13);
s18.addText(t, { x: 1.15, y: 1.2 + i * 0.55, w: 8.6, h: 0.38, fontSize: 12, color: WHITE, valign: "middle" });
});
prs.writeFile({ fileName: "/home/daytona/workspace/mri-radiology-teaching/01_MRI_Physics.pptx" })
.then(() => console.log("DONE: 01_MRI_Physics.pptx"))
.catch(err => console.error("ERROR:", err));
cd /home/daytona/workspace/mri-radiology-teaching && node 01_MRI_Physics.js 2>&1
~/mri-radiology-teaching/02_MRI_Sequences.js
const pptxgen = require("pptxgenjs");
const prs = new pptxgen();
prs.layout = "LAYOUT_16x9";
prs.title = "MRI Sequences & Protocols";
const NAVY = "0D1B2A";
const WHITE = "FFFFFF";
const CYAN = "00B4D8";
const AMBER = "F4A261";
const LIGHT_BG = "F5F7FA";
const DARK_TEXT = "1A2B3C";
const MID_GRAY = "4A5568";
const LIGHT_CYAN = "E0F7FA";
const DARK_CYAN = "0077A8";
const GREEN = "27AE60";
function addContentSlide(title) {
const slide = prs.addSlide();
slide.background = { color: LIGHT_BG };
slide.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: NAVY }, line: { color: NAVY } });
slide.addText(title, { x: 0.25, y: 0, w: 9.5, h: 0.7, fontSize: 22, bold: true, color: WHITE, valign: "middle", margin: 0 });
slide.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0.7, w: 0.15, h: 4.925, fill: { color: CYAN }, line: { color: CYAN } });
return slide;
}
function addCyanBox(slide, text, x, y, w, h, fs) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: CYAN }, line: { color: CYAN } });
slide.addText(text, { x, y, w, h, fontSize: fs || 13, bold: true, color: WHITE, align: "center", valign: "middle" });
}
function addAmberBox(slide, text, x, y, w, h, fs) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: AMBER }, line: { color: AMBER } });
slide.addText(text, { x, y, w, h, fontSize: fs || 13, bold: true, color: NAVY, align: "center", valign: "middle" });
}
function addNavyBox(slide, text, x, y, w, h, fs) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: NAVY }, line: { color: NAVY } });
slide.addText(text, { x, y, w, h, fontSize: fs || 13, bold: true, color: WHITE, align: "center", valign: "middle" });
}
// SLIDE 1 Title
const s1 = prs.addSlide();
s1.background = { color: NAVY };
s1.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN }, line: { color: CYAN } });
s1.addShape(prs.shapes.RECTANGLE, { x: 0.5, y: 2.5, w: 9.5, h: 0.08, fill: { color: CYAN }, line: { color: CYAN } });
s1.addText("MRI SEQUENCES\n& PROTOCOLS", { x: 0.9, y: 0.7, w: 8.6, h: 1.8, fontSize: 42, bold: true, color: WHITE, align: "left" });
s1.addText("MRI Radiology Teaching Series — Module 2", { x: 0.9, y: 2.7, w: 8.6, h: 0.6, fontSize: 18, color: CYAN, align: "left" });
s1.addText("Radiology Department | 2026", { x: 0.9, y: 3.4, w: 8.6, h: 0.5, fontSize: 13, color: "8ECAE6", align: "left" });
s1.addText("Spin Echo to EPI — understanding the full sequence toolkit", { x: 0.9, y: 4.1, w: 8.6, h: 0.5, fontSize: 14, color: "8ECAE6", italic: true, align: "left" });
// SLIDE 2 TOC
const s2 = addContentSlide("Table of Contents");
const toc = [
["01","Sequence Family Overview"],["02","Spin Echo (SE)"],["03","Fast/Turbo Spin Echo (FSE/TSE)"],
["04","Gradient Echo (GRE)"],["05","Inversion Recovery: STIR, FLAIR"],["06","Echo Planar Imaging (EPI)"],
["07","Diffusion Weighted Imaging (DWI)"],["08","Perfusion MRI"],["09","MRCP Sequence"],
["10","Fat Saturation Techniques"],["11","Parallel Imaging: SENSE & GRAPPA"],
["12","3D Sequences: VIBE, SPACE, CUBE"],["13","fMRI Basics"],["14","Standard Protocol Table"],["15","Key Takeaways"],
];
toc.slice(0,8).forEach((item,i)=>{
addCyanBox(s2, item[0], 0.3, 0.85+i*0.56, 0.38, 0.38, 12);
s2.addText(item[1], { x: 0.75, y: 0.85+i*0.56, w: 4.05, h: 0.38, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
toc.slice(8).forEach((item,i)=>{
addCyanBox(s2, item[0], 5.1, 0.85+i*0.56, 0.38, 0.38, 12);
s2.addText(item[1], { x: 5.55, y: 0.85+i*0.56, w: 4.1, h: 0.38, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// SLIDE 3 Sequence Family Overview
const s3 = addContentSlide("Sequence Family Overview");
const families = [
{ name: "Spin Echo", color: DARK_CYAN, examples: "SE, FSE/TSE, RARE", note: "90°+180° pulses; T1W, T2W, PD" },
{ name: "Gradient Echo", color: "8E44AD", examples: "FLASH, FISP, SPGR, bSSFP", note: "Flip angle <90°; T1W, T2*W, dynamic" },
{ name: "Inversion Recovery", color: "C0392B", examples: "STIR, FLAIR, MP-RAGE, TI varies", note: "180° prep pulse to null tissue" },
{ name: "Echo Planar (EPI)", color: GREEN, examples: "DWI, fMRI, perfusion", note: "Entire k-space in one shot; very fast" },
{ name: "Steady-State", color: AMBER, examples: "bSSFP, TrueFISP, FIESTA, BALANCE", note: "Bright fluid; cardiac, MR myelography" },
{ name: "Spectroscopy", color: MID_GRAY, examples: "PRESS, STEAM, CSI", note: "Metabolite peaks (NAA, Cho, Cr, Lac)" },
];
families.forEach((f, i) => {
const col = i < 3 ? 0 : 1;
const row = i % 3;
const x = col === 0 ? 0.25 : 5.1;
const y = 0.85 + row * 1.55;
slide_coloredCard(s3, f, x, y, 4.7, 1.4);
});
function slide_coloredCard(slide, f, x, y, w, h) {
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h, fill: { color: WHITE }, line: { color: f.color } });
slide.addShape(prs.shapes.RECTANGLE, { x, y, w, h: 0.38, fill: { color: f.color }, line: { color: f.color } });
slide.addText(f.name, { x, y, w, h: 0.38, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
slide.addText(`Examples: ${f.examples}`, { x: x+0.1, y: y+0.42, w: w-0.2, h: 0.38, fontSize: 11, color: DARK_TEXT, bold: true });
slide.addText(f.note, { x: x+0.1, y: y+0.78, w: w-0.2, h: 0.5, fontSize: 11, color: MID_GRAY });
}
// SLIDE 4 Spin Echo
const s4 = addContentSlide("Spin Echo (SE) — Classic Sequence");
s4.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.5, fill: { color: NAVY }, line: { color: NAVY } });
s4.addText("Sequence: 90° RF → TE/2 delay → 180° refocusing → Echo readout at TE", { x: 0.25, y: 0.85, w: 9.5, h: 0.5, fontSize: 14, bold: true, color: CYAN, align: "center", valign: "middle" });
const seData = [
[{ text: "Parameter", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "T1-Weighted", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "T2-Weighted", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "PD-Weighted", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }],
["TR", "Short (300–700ms)", "Long (2000–5000ms)", "Long (2000–5000ms)"],
["TE", "Short (10–30ms)", "Long (80–120ms)", "Short (10–30ms)"],
["Fat appearance", "Bright", "Intermediate", "Bright"],
["CSF appearance", "Dark", "Bright (white)", "Intermediate"],
["Scan time (brain)", "3–5 min", "5–10 min", "4–6 min"],
["Main use", "Anatomy, post-Gd, liver", "Pathology, oedema", "Cartilage (knee), brain PD"],
];
s4.addTable(seData, { x: 0.25, y: 1.45, w: 9.5, h: 3.8, colW: [2.0, 2.5, 2.5, 2.5], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
addAmberBox(s4, "SE T1W: best post-contrast; T2W SE replaced by FSE in most protocols", 0.25, 5.3, 9.5, 0.3, 12);
// SLIDE 5 FSE/TSE
const s5 = addContentSlide("Fast/Turbo Spin Echo (FSE/TSE) — Workhorse Sequence");
s5.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s5.addText("Multiple 180° pulses per TR → multiple echoes at different TE values → fills multiple k-space lines per repetition", { x: 0.3, y: 0.85, w: 9.4, h: 0.45, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const fseData = [
[{ text: "Concept", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Description", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
["Echo Train Length (ETL)", "Number of echoes per TR. ETL = 16–32 typical; shortens scan time proportionally"],
["Effective TE", "The echo filling the centre of k-space determines image contrast"],
["Fat appearance in T2 FSE", "Fat appears BRIGHT in T2 FSE (J-coupling suppression) — different from conventional SE"],
["RARE sequence", "Rapid Acquisition with Relaxation Enhancement — extreme ETL (256+) for single-shot"],
["HASTE / SS-FSE", "Single-shot FSE — acquires entire image in one TR; motion robust; used for MRCP, abdomen"],
["T2 SPACE/CUBE/VISTA", "3D TSE variants; isotropic voxels; multi-planar reformatting; spine, brain"],
["SAR consideration", "High ETL → high SAR (specific absorption rate) — reduce with hyperecho or variable flip angles"],
];
s5.addTable(fseData, { x: 0.25, y: 1.4, w: 9.5, h: 4.0, colW: [3.2, 6.3], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
// SLIDE 6 GRE
const s6 = addContentSlide("Gradient Echo (GRE) — Speed & Versatility");
s6.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: NAVY }, line: { color: NAVY } });
s6.addText("No 180° refocusing pulse — uses gradient reversal; susceptible to T2* effects; allows very short TR with small flip angles", { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fontSize: 13, bold: true, color: CYAN, align: "center", valign: "middle" });
const greData = [
[{ text: "GRE Type", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Vendor Names", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Key Feature", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Clinical Use", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }],
["Spoiled GRE", "FLASH (Siemens), SPGR (GE), T1-FFE (Philips)", "T1-contrast, spoiled residual Mxy", "Dynamic liver, post-contrast, VIBE"],
["Coherent GRE (bSSFP)", "TrueFISP (Siemens), FIESTA (GE), Balance FFE", "Steady-state; bright fluid", "Cardiac cine, MR myelography"],
["In-Phase/Opposed-Phase", "DUAL echo GRE", "Fat-water signal addition/subtraction", "Liver fat, adrenal adenoma"],
["3D VIBE", "VIBE (Siemens), LAVA (GE), THRIVE (Philips)", "Volumetric interpolated breath-hold", "Dynamic liver, abdomen"],
["Ultrashort TE (UTE)", "UTE, ZTE", "TE < 0.1ms; sees cortical bone/calcification", "MSK, lung, calcium imaging"],
];
s6.addTable(greData, { x: 0.25, y: 1.4, w: 9.5, h: 3.9, colW: [2.2, 2.8, 2.5, 2.0], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.62 });
// SLIDE 7 Inversion Recovery
const s7 = addContentSlide("Inversion Recovery: STIR, FLAIR, FSPGR");
s7.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s7.addText("180° inversion pulse → Inversion Time (TI) → 90° excitation. At TI = T1×ln2, the selected tissue signal = 0 (nulled).", { x: 0.3, y: 0.85, w: 9.4, h: 0.45, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const irData = [
[{ text: "Sequence", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "TI at 1.5T", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Tissue Nulled", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Weighting", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Clinical Use", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
[{ text: "STIR", options: { bold: true } }, "150–175ms", "Fat", "T2 (fat suppressed)", "Bone marrow oedema, soft tissue, spine"],
[{ text: "FLAIR", options: { bold: true } }, "2200–2500ms", "CSF (free water)", "T2", "MS plaques, periventricular lesions, SAH"],
[{ text: "FLAIR (3T)", options: { bold: true } }, "2400–2800ms", "CSF", "T2", "Better grey-white differentiation"],
[{ text: "MP-RAGE", options: { bold: true } }, "800–1000ms", "Partial fat/CSF", "T1", "High-res 3D brain anatomy, cortical thickness"],
[{ text: "DDIR (Double IR)", options: { bold: true } }, "Dual TI", "CSF + White matter", "T1", "Cortical lesion detection (MS)"],
];
s7.addTable(irData, { x: 0.25, y: 1.4, w: 9.5, h: 3.8, colW: [1.8, 1.5, 2.0, 1.8, 2.4], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.6 });
addAmberBox(s7, "STIR: robust fat suppression even with field inhomogeneity — preferred over fat-sat in extremities", 0.25, 5.28, 9.5, 0.3, 12);
// SLIDE 8 EPI
const s8 = addContentSlide("Echo Planar Imaging (EPI) — Fastest MRI");
s8.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: NAVY }, line: { color: NAVY } });
s8.addText("Entire k-space filled after single RF excitation using rapidly oscillating readout gradients — scan time ~50–100ms per slice", { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fontSize: 13, bold: true, color: CYAN, align: "center", valign: "middle" });
const epiItems = [
{ title: "DWI", desc: "Diffusion sensitising gradients added to EPI; b-values 0–1000+ s/mm²; detects acute ischaemia within minutes" },
{ title: "fMRI (BOLD)", desc: "T2*-weighted EPI; detects BOLD signal changes (deoxyHb/oxyHb ratio); temporal resolution ~1–2s" },
{ title: "DSC Perfusion", desc: "Dynamic susceptibility contrast; Gd bolus tracked; CBV, CBF, MTT maps; stroke, tumour" },
{ title: "SWI", desc: "Susceptibility Weighted Imaging; magnitude × phase image; detects microhaemorrhage, iron, calcification" },
];
epiItems.forEach((item, i) => {
const yy = 1.45 + i * 1.0;
addCyanBox(s8, item.title, 0.25, yy, 1.4, 0.8, 13);
s8.addShape(prs.shapes.RECTANGLE, { x: 1.75, y: yy, w: 8.0, h: 0.8, fill: { color: WHITE }, line: { color: "C8D6E5" } });
s8.addText(item.desc, { x: 1.85, y: yy, w: 7.8, h: 0.8, fontSize: 13, color: DARK_TEXT, valign: "middle" });
});
addAmberBox(s8, "EPI limitations: geometric distortion (susceptibility), N/2 ghost artefact, low spatial resolution", 0.25, 5.5, 9.5, 0.1, 12);
// SLIDE 9 DWI
const s9 = addContentSlide("Diffusion Weighted Imaging (DWI) & ADC Maps");
s9.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s9.addText("DWI measures Brownian motion of water molecules. Restricted diffusion → high DWI signal, low ADC value.", { x: 0.3, y: 0.85, w: 9.4, h: 0.45, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const dwiData = [
[{ text: "Finding", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "DWI (high b)", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "ADC Map", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Interpretation", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
["Acute infarct (< 6h)", { text: "BRIGHT", options: { bold: true, color: GREEN } }, { text: "DARK (low ADC)", options: { bold: true, color: "C0392B" } }, "True restricted diffusion (cytotoxic oedema)"],
["Abscess (pyogenic)", "Bright", "Dark", "Thick pus with restricted diffusion"],
["Epidermoid cyst", "Bright", "Dark", "Keratin — key differentiator from arachnoid cyst"],
["High-grade tumour", "Bright", "Dark/low", "Hypercellularity restricts diffusion"],
["Necrosis / CSF", "Dark", "Bright (high ADC)", "Free diffusion — 'T2 shine-through' reversed"],
["T2 shine-through", "Bright (high T2)", "Normal/High ADC", "Not true restriction — check ADC map always"],
["b-values used", "b=0, b=1000 (DWI)", "ADC = −ln(S1/S0)/(b1−b0)", "ADC in units of 10⁻³ mm²/s"],
];
s9.addTable(dwiData, { x: 0.25, y: 1.4, w: 9.5, h: 4.05, colW: [2.5, 1.6, 2.0, 3.4], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 11.5, color: DARK_TEXT, rowH: 0.5 });
// SLIDE 10 Perfusion MRI
const s10 = addContentSlide("Perfusion MRI — Brain & Body");
const perfItems = [
{ head: "DSC (Dynamic Susceptibility Contrast)", color: DARK_CYAN, body: "T2*-EPI; Gd bolus tracking; generates rCBV, rCBF, MTT, Tmax maps. Primary use: brain tumour grading (high rCBV = high grade), stroke penumbra." },
{ head: "DCE (Dynamic Contrast Enhanced)", color: "8E44AD", body: "T1-GRE; Gd enhancement kinetics; Ktrans, Ve, Vp parameters. Use: prostate PI-RADS, breast BI-RADS kinetics, rectal cancer staging, liver LI-RADS." },
{ head: "ASL (Arterial Spin Labelling)", color: GREEN, body: "Non-contrast; magnetically labels arterial blood as endogenous tracer. Measures CBF (ml/100g/min). Use: paediatric, renal function, dementia, repeat scans." },
];
perfItems.forEach((item, i) => {
const yy = 0.9 + i * 1.55;
s10.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: yy, w: 9.5, h: 1.4, fill: { color: WHITE }, line: { color: item.color } });
s10.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: yy, w: 9.5, h: 0.42, fill: { color: item.color }, line: { color: item.color } });
s10.addText(item.head, { x: 0.3, y: yy, w: 9.4, h: 0.42, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
s10.addText(item.body, { x: 0.35, y: yy + 0.45, w: 9.2, h: 0.88, fontSize: 12, color: DARK_TEXT, valign: "middle" });
});
// SLIDE 11 MRCP
const s11 = addContentSlide("MRCP — MR Cholangiopancreatography");
s11.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s11.addText("MRCP exploits the very long T2 of bile/pancreatic juice — heavily T2-weighted sequence nulls background solid organs.", { x: 0.3, y: 0.85, w: 9.4, h: 0.45, fontSize: 12, color: DARK_TEXT, valign: "middle" });
const mrcpData = [
[{ text: "Aspect", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Detail", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
["Sequences", "3D TSE (SPACE/CUBE/VISTA) ± 2D thick-slab SS-MRCP (30–70mm)"],
["TR/TE", "TR 2000–4000ms / TE 500–1000ms (heavily T2W)"],
["Bile duct diameter", "CBD normal < 6mm (up to 8mm post-cholecystectomy)"],
["Pancreatic duct", "Main PD normal ≤ 3mm in head, ≤ 2mm in body/tail"],
["Indications", "Suspected CBD stones, PSC, cholangiocarcinoma, IPMN, post-ERCP"],
["Stones appearance", "Low signal (dark) filling defects in bright bile — classic 'dark stone in bright duct'"],
["Secretin MRCP", "IV secretin (1 CU/kg) stimulates pancreatic exocrine function; quantifies PD distensibility"],
["Limitations", "Cannot detect microlithiasis (<3mm); peristalsis artefact; no therapeutic capability"],
];
s11.addTable(mrcpData, { x: 0.25, y: 1.4, w: 9.5, h: 4.1, colW: [2.8, 6.7], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
// SLIDE 12 Fat Saturation
const s12 = addContentSlide("Fat Saturation Techniques");
const fatData = [
[{ text: "Technique", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Mechanism", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Pros", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }, { text: "Cons", options: { bold: true, fill: { color: DARK_CYAN }, color: WHITE } }],
["Chemical Sat (ChemSat/FATSAT)", "Frequency-selective RF pre-pulse at fat freq (63.5 MHz at 1.5T)", "Fast; good at 1.5T/3T", "Fails with B0 inhomogeneity; poor at 0.3T"],
["STIR", "IR with TI 150–175ms nulls fat signal", "Robust at any field strength; inhomogeneity-insensitive", "Gadolinium enhancement nulled; reduced SNR"],
["Dixon Method (2-point, 3-point)", "Acquires in-phase + opposed-phase; maths separates fat/water", "Quantitative fat fraction; homogeneous suppression", "Longer scan time; requires post-processing"],
["SPAIR / SPIR", "Adiabatic spectral inversion recovery pre-pulse", "Better than ChemSat at 3T; robust", "Moderate SAR"],
["Water excitation (Proset/PASTA)", "Only excites water protons via binomial pulses", "No extra SAR; fast", "Not for areas with strong susceptibility effects"],
];
s12.addTable(fatData, { x: 0.25, y: 0.85, w: 9.5, h: 4.7, colW: [2.3, 3.0, 2.2, 2.0], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.68 });
// SLIDE 13 Parallel Imaging
const s13 = addContentSlide("Parallel Imaging: SENSE & GRAPPA");
s13.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fill: { color: NAVY }, line: { color: NAVY } });
s13.addText("Undersamples k-space using multiple receiver coil elements; reconstruction uses coil sensitivity maps to reduce scan time", { x: 0.25, y: 0.85, w: 9.5, h: 0.45, fontSize: 13, bold: true, color: CYAN, align: "center", valign: "middle" });
const piData = [
[{ text: "Feature", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "SENSE (Philips/GE)", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "GRAPPA (Siemens)", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
["Domain", "Image domain (unfolding aliased images)", "K-space domain (kernel-based synthesis)"],
["Auto-calibration", "Separate ACS scan required", "ACS lines embedded in same acquisition"],
["Acceleration factor (R)", "Typically 2–3×", "Typically 2–4×"],
["SNR penalty", "SNR ∝ 1/(g-factor × √R)", "SNR ∝ 1/(g-factor × √R)"],
["g-factor", "Geometry-dependent noise amplification; depends on coil array quality", "Similar g-factor dependency"],
["2D PI", "SENSE-2D, mSENSE", "GRAPPA-2D"],
["3D PI", "CAIPIRINHA — shifts aliasing pattern in 2 directions", "Same CAIPIRINHA principle"],
];
s13.addTable(piData, { x: 0.25, y: 1.4, w: 9.5, h: 4.0, colW: [2.2, 3.65, 3.65], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
// SLIDE 14 3D Sequences
const s14 = addContentSlide("3D Sequences: VIBE, SPACE, CUBE, VISTA");
const seqCards = [
{ name: "VIBE\n(Siemens)", equiv: "LAVA (GE), THRIVE (Philips)", type: "3D Spoiled GRE", use: "Dynamic liver, multiphasic abdominal enhancement, post-contrast", feat: "Breath-hold; fat saturation; isotropic voxels 2–3mm" },
{ name: "SPACE\n(Siemens)", equiv: "CUBE (GE), VISTA (Philips)", type: "3D TSE with variable flip angles", use: "Brain (FLAIR, T2), spine, MRCP, joints", feat: "Isotropic 1mm³; MPR in any plane; reduces blurring vs standard 3D TSE" },
{ name: "MP-RAGE\n(Siemens)", equiv: "BRAVO (GE), TFE (Philips)", type: "3D IR-prepared GRE", use: "High-res brain anatomy; cortical thickness; white/grey differentiation", feat: "1mm isotropic; TI ~900ms at 3T; standard neuro protocol" },
];
seqCards.forEach((c, i) => {
const x = 0.25 + i * 3.25;
s14.addShape(prs.shapes.RECTANGLE, { x, y: 0.85, w: 3.1, h: 4.7, fill: { color: WHITE }, line: { color: CYAN } });
addNavyBox(s14, c.name, x, 0.85, 3.1, 0.85, 14);
s14.addText("Equivalents:", { x: x + 0.1, y: 1.75, w: 2.9, h: 0.3, fontSize: 11, bold: true, color: DARK_CYAN });
s14.addText(c.equiv, { x: x + 0.1, y: 2.02, w: 2.9, h: 0.4, fontSize: 11, color: MID_GRAY });
s14.addText("Type:", { x: x + 0.1, y: 2.47, w: 2.9, h: 0.25, fontSize: 11, bold: true, color: DARK_CYAN });
s14.addText(c.type, { x: x + 0.1, y: 2.68, w: 2.9, h: 0.4, fontSize: 11, color: DARK_TEXT });
s14.addText("Use:", { x: x + 0.1, y: 3.1, w: 2.9, h: 0.25, fontSize: 11, bold: true, color: DARK_CYAN });
s14.addText(c.use, { x: x + 0.1, y: 3.32, w: 2.9, h: 0.6, fontSize: 11, color: DARK_TEXT });
s14.addText("Key feature:", { x: x + 0.1, y: 3.97, w: 2.9, h: 0.25, fontSize: 11, bold: true, color: DARK_CYAN });
s14.addText(c.feat, { x: x + 0.1, y: 4.18, w: 2.9, h: 0.6, fontSize: 11, color: DARK_TEXT });
});
// SLIDE 15 fMRI
const s15 = addContentSlide("Functional MRI (fMRI) — BOLD Imaging");
s15.addShape(prs.shapes.RECTANGLE, { x: 0.25, y: 0.85, w: 9.5, h: 0.5, fill: { color: LIGHT_CYAN }, line: { color: CYAN } });
s15.addText("BOLD = Blood Oxygenation Level Dependent. Neural activity → increased CBF → oxyHb↑ / deoxyHb↓ → T2* signal ↑ (~1–5%). Detected with T2*-EPI.", { x: 0.3, y: 0.87, w: 9.4, h: 0.46, fontSize: 12, color: DARK_TEXT });
const fmriData = [
[{ text: "Aspect", options: { bold: true, fill: { color: NAVY }, color: WHITE } }, { text: "Details", options: { bold: true, fill: { color: NAVY }, color: WHITE } }],
["Haemodynamic response function (HRF)", "~5–6s delay from neural event to BOLD peak; lasts ~12–15s"],
["Task-based fMRI", "Block or event-related paradigms; language, motor, visual cortex mapping"],
["Pre-surgical planning", "Motor strip, Broca/Wernicke areas before tumour resection; reduces deficits"],
["Resting-state fMRI (rs-fMRI)", "No task; measures spontaneous low-frequency BOLD fluctuations; 'default mode network'"],
["Connectivity analysis", "ICA, seed-based correlation; used in Alzheimer's, depression, epilepsy research"],
["Limitations", "Indirect measure of neural activity; neurovascular uncoupling; motion artefact; low spatial resolution"],
["Typical parameters (3T)", "TR 2s, TE 30ms, flip 77°, 3mm isotropic, 200–300 volumes per run"],
];
s15.addTable(fmriData, { x: 0.25, y: 1.45, w: 9.5, h: 3.9, colW: [3.5, 6.0], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 12, color: DARK_TEXT, rowH: 0.5 });
// SLIDE 16 Protocol Table
const s16 = addContentSlide("Standard Organ Protocol Reference Table");
const protData = [
[
{ text: "Body Region", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "Key Sequences", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "Planes", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
{ text: "Field Strength", options: { bold: true, fill: { color: NAVY }, color: WHITE } },
],
["Brain (routine)", "Axial FLAIR, T1 (MP-RAGE), DWI, T2; ± post-Gd T1", "Axial, coronal, sagittal", "1.5T or 3T"],
["Spine (cervical)", "Sagittal T1, T2; Axial T2 at disc levels; ± STIR", "Sagittal, Axial", "1.5T or 3T"],
["Liver (dynamic)", "Pre/art/portal/delayed VIBE; DWI; MRCP; T1 in/opp-phase", "Axial ± coronal", "1.5T or 3T"],
["Prostate (mpMRI)", "Axial T2, DWI (b50/b400/b800/b1400), DCE; ± MRS", "Axial, coronal, sagittal", "3T (preferred)"],
["Knee", "Sagittal PD FS, Sagittal T1, Coronal T2 FS, Axial PD", "Sag, Cor, Ax", "1.5T or 3T"],
["Shoulder", "Coronal T2 FS, PD FS, Axial T2; ± arthrogram STIR", "Cor, Ax, Sag oblique", "1.5T or 3T"],
["Cardiac (CMR)", "Cine SSFP, LGE, T1/T2 mapping; ± stress perfusion", "SA, 4CH, 2CH, LVOT", "1.5T or 3T"],
["Pelvis (female)", "Axial/Sag/Cor T2; DWI; T1 FS post-Gd", "Axial, sagittal, coronal", "1.5T or 3T"],
];
s16.addTable(protData, { x: 0.25, y: 0.85, w: 9.5, h: 4.75, colW: [2.2, 3.8, 1.9, 1.6], border: { pt: 0.5, color: "C8D6E5" }, fill: { color: WHITE }, fontSize: 11.5, color: DARK_TEXT, rowH: 0.53 });
// SLIDE 17 Key Takeaways
const s17 = prs.addSlide();
s17.background = { color: NAVY };
s17.addShape(prs.shapes.RECTANGLE, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN }, line: { color: CYAN } });
s17.addText("Key Takeaways", { x: 0.7, y: 0.3, w: 9.0, h: 0.7, fontSize: 32, bold: true, color: WHITE });
const tks = [
"SE sequences: use TR & TE to select T1W, T2W, or PD weighting",
"FSE/TSE: multiple echoes per TR → faster; fat appears bright in T2 FSE",
"GRE: no 180° pulse; susceptible to T2* effects; enables dynamic & cardiac imaging",
"IR sequences: STIR nulls fat (robust fat suppression); FLAIR nulls CSF (MS plaques)",
"DWI: high DWI + low ADC = true restricted diffusion (stroke, abscess, lymphoma)",
"Parallel imaging (SENSE/GRAPPA) accelerates acquisition but reduces SNR (g-factor)",
"3D sequences (VIBE, SPACE, MP-RAGE) provide isotropic voxels for multi-planar reformat",
"Always match sequence choice to clinical question: speed, contrast, and resolution tradeoffs",
];
tks.forEach((t, i) => {
addCyanBox(s17, `${i+1}`, 0.7, 1.1+i*0.56, 0.38, 0.38, 13);
s17.addText(t, { x: 1.15, y: 1.1+i*0.56, w: 8.6, h: 0.38, fontSize: 12, color: WHITE, valign: "middle" });
});
prs.writeFile({ fileName: "/home/daytona/workspace/mri-radiology-teaching/02_MRI_Sequences.pptx" })
.then(() => console.log("DONE: 02_MRI_Sequences.pptx"))
.catch(err => console.error("ERROR:", err));
cd /home/daytona/workspace/mri-radiology-teaching && node 02_MRI_Sequences.js 2>&1
Continue
mkdir -p /home/daytona/workspace/mri-radiology-teaching && ls /home/daytona/workspace/mri-radiology-teaching
~/mri-radiology-teaching/03_Brain_Neuro_MRI.js
const pptxgen = require("pptxgenjs");
const prs = new pptxgen();
prs.layout = "LAYOUT_16x9";
prs.title = "Brain & Neuro MRI";
const NAVY = "0D1B2A";
const WHITE = "FFFFFF";
const CYAN = "00B4D8";
const AMBER = "F4A261";
const LIGHT_BG = "F5F7FA";
const GREEN = "2EC4B6";
const RED = "E63946";
function addContentSlide(prs, title) {
const slide = prs.addSlide();
slide.background = { color: LIGHT_BG };
slide.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: NAVY } });
slide.addText(title, { x: 0.25, y: 0, w: 9.5, h: 0.7, fontSize: 22, bold: true, color: WHITE, valign: "middle" });
slide.addShape(prs.ShapeType.rect, { x: 0, y: 0.7, w: 0.12, h: 4.925, fill: { color: CYAN } });
return slide;
}
function addDivider(prs, title, subtitle) {
const slide = prs.addSlide();
slide.background = { color: NAVY };
slide.addShape(prs.ShapeType.rect, { x: 1, y: 2.55, w: 8, h: 0.07, fill: { color: CYAN } });
slide.addText(title, { x: 0.5, y: 1.1, w: 9, h: 1.3, fontSize: 38, bold: true, color: WHITE, align: "center" });
if (subtitle) slide.addText(subtitle, { x: 0.5, y: 2.7, w: 9, h: 0.7, fontSize: 18, color: CYAN, align: "center", italic: true });
return slide;
}
// SLIDE 1 - Title
const t = prs.addSlide();
t.background = { color: NAVY };
t.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN } });
t.addShape(prs.ShapeType.rect, { x: 0.5, y: 2.9, w: 9.5, h: 0.07, fill: { color: AMBER } });
t.addText("Brain & Neuro MRI", { x: 0.8, y: 0.9, w: 8.8, h: 1.6, fontSize: 44, bold: true, color: WHITE });
t.addText("MRI Radiology Teaching Series — Module 3", { x: 0.8, y: 3.1, w: 8.8, h: 0.6, fontSize: 18, color: CYAN });
t.addText("Covering: Stroke • Tumors • Demyelination • Infection • Trauma • Epilepsy", { x: 0.8, y: 3.8, w: 8.8, h: 0.5, fontSize: 13, color: "8ECAE6" });
t.addText("Radiology Department | 2026", { x: 0.8, y: 4.7, w: 8.8, h: 0.4, fontSize: 12, color: "4A7A9B" });
// SLIDE 2 - Table of Contents
const toc = addContentSlide(prs, "Table of Contents");
toc.addText([
{ text: "1. Brain MRI Indications & Protocol", options: { breakLine: true } },
{ text: "2. Normal Brain Anatomy on MRI", options: { breakLine: true } },
{ text: "3. Signal Characteristics: WM vs GM", options: { breakLine: true } },
{ text: "4. Acute Stroke — DWI/ADC Pattern", options: { breakLine: true } },
{ text: "5. Brain Tumors — Classification", options: { breakLine: true } },
{ text: "6. Glioma Grading & GBM", options: { breakLine: true } },
{ text: "7. Meningioma & Metastases", options: { breakLine: true } },
{ text: "8. Multiple Sclerosis", options: { breakLine: true } },
{ text: "9. Intracranial Infections", options: { breakLine: true } },
{ text: "10. Hydrocephalus", options: { breakLine: true } },
{ text: "11. Traumatic Brain Injury (TBI)", options: { breakLine: true } },
{ text: "12. Epilepsy MRI", options: { breakLine: true } },
{ text: "13. Cerebrovascular Malformations", options: { breakLine: true } },
{ text: "14. Pituitary MRI", options: { breakLine: true } },
{ text: "15. Posterior Fossa & Pediatric Brain", options: { breakLine: true } },
{ text: "16. Key Takeaways" }
], { x: 0.4, y: 0.85, w: 4.5, h: 4.6, fontSize: 11, color: DARK_TEXT = "1A2B3C", lineSpacingMultiple: 1.3 });
toc.addShape(prs.ShapeType.rect, { x: 5.1, y: 0.85, w: 4.6, h: 4.6, fill: { color: NAVY }, line: { color: CYAN, width: 1.5 } });
toc.addText("Module 3 Focus Areas", { x: 5.2, y: 0.95, w: 4.4, h: 0.5, fontSize: 14, bold: true, color: CYAN });
toc.addText([
{ text: "• Neurological emergencies\n", options: {} },
{ text: "• Oncological brain MRI\n", options: {} },
{ text: "• White matter diseases\n", options: {} },
{ text: "• CNS infections\n", options: {} },
{ text: "• Functional & specialized MRI\n", options: {} },
{ text: "• Pediatric considerations", options: {} }
], { x: 5.2, y: 1.55, w: 4.3, h: 3.5, fontSize: 12, color: WHITE, lineSpacingMultiple: 1.5 });
// SLIDE 3 - Indications
const s3 = addContentSlide(prs, "Brain MRI — Indications & Standard Protocol");
s3.addTable([
[{ text: "Category", options: { bold: true, color: WHITE, fill: NAVY } }, { text: "Indications", options: { bold: true, color: WHITE, fill: NAVY } }],
["Vascular", "Stroke/TIA, hemorrhage, venous thrombosis, vasculitis"],
["Neoplastic", "Primary brain tumors, metastases, meningeal disease"],
["Demyelinating", "Multiple sclerosis, NMOSD, ADEM"],
["Infectious", "Abscess, meningitis, encephalitis, HIV-related"],
["Trauma", "Diffuse axonal injury, contusion, post-traumatic changes"],
["Epilepsy", "Hippocampal sclerosis, cortical dysplasia, tumor"],
["Degenerative", "Dementia workup, Parkinson's, atrophy patterns"],
["Congenital", "Malformations, phakomatoses, migration anomalies"],
], { x: 0.25, y: 0.85, w: 9.5, h: 3.8,
colW: [2.2, 7.3],
rowH: [0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 11, color: "1A2B3C",
align: "left",
autoPage: false,
});
s3.addShape(prs.ShapeType.rect, { x: 0.25, y: 4.8, w: 9.5, h: 0.55, fill: { color: CYAN } });
s3.addText("Standard Protocol: Axial DWI + ADC | Axial FLAIR | Axial T2 | Axial T1 | Sagittal T1 | Coronal T2/FLAIR | Post-Gd T1 (axial/coronal/sagittal)", { x: 0.3, y: 4.82, w: 9.3, h: 0.5, fontSize: 10, color: WHITE, bold: true });
// SLIDE 4 - Normal Anatomy
const s4 = addContentSlide(prs, "Normal Brain Anatomy on MRI");
s4.addText("Key Anatomical Landmarks", { x: 0.25, y: 0.8, w: 4.5, h: 0.4, fontSize: 14, bold: true, color: NAVY });
s4.addText([
{ text: "Axial Plane:\n", options: { bold: true, color: CYAN } },
{ text: "• Basal ganglia: caudate, putamen, globus pallidus\n• Thalamus: central relay station\n• Internal capsule: anterior & posterior limb\n• Corpus callosum: genu, body, splenium\n• Cerebellum & brainstem: pons, medulla\n• Sylvian fissure, interhemispheric fissure", options: {} }
], { x: 0.25, y: 1.25, w: 4.5, h: 3.9, fontSize: 11, color: "1A2B3C", lineSpacingMultiple: 1.4 });
s4.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.8, w: 4.7, h: 4.55, fill: { color: NAVY }, line: { color: CYAN, width: 1 } });
s4.addText("Signal Intensities — Normal Brain", { x: 5.1, y: 0.9, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: CYAN });
s4.addTable([
[{ text: "Structure", options: { bold: true, color: WHITE } }, { text: "T1W", options: { bold: true, color: WHITE } }, { text: "T2W", options: { bold: true, color: WHITE } }, { text: "FLAIR", options: { bold: true, color: WHITE } }],
["Grey Matter", "Isointense", "Slightly ↑", "Intermediate"],
["White Matter", "Slightly ↑", "Slightly ↓", "Low"],
["CSF", "Dark (low)", "Bright (high)", "Dark (nulled)"],
["Fat (marrow)", "Bright", "Intermediate", "Bright"],
["Blood (acute)", "Isointense", "↓ (T2*)", "Variable"],
["Myelination", "↑ T1 with age", "↓ T2 with age", "Changes with age"],
], { x: 5.1, y: 1.35, w: 4.5, h: 3.7,
colW: [1.9, 0.9, 0.9, 0.9],
rowH: [0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42],
border: { pt: 0.5, color: "2E4A6A" },
fontSize: 10, color: WHITE, fill: "1A3050",
autoPage: false,
});
// SLIDE 5 - Stroke DWI
const s5 = addContentSlide(prs, "Acute Stroke — DWI/ADC Pattern (Ischemic)");
s5.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.85, w: 4.4, h: 1.8, fill: { color: RED }, line: { color: "B02030", width: 1 } });
s5.addText("Acute Ischemic Stroke", { x: 0.35, y: 0.9, w: 4.2, h: 0.45, fontSize: 14, bold: true, color: WHITE });
s5.addText("DWI: Bright (restricted diffusion)\nADC: Dark (low ADC value)\nFLAIR: May be normal in first 6h\nT2: Subtle hyperintensity after 6-12h\nT1: Normal or subtle hypointensity", { x: 0.35, y: 1.4, w: 4.2, h: 1.15, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
s5.addShape(prs.ShapeType.rect, { x: 0.25, y: 2.8, w: 4.4, h: 1.8, fill: { color: "1A3050" }, line: { color: CYAN, width: 1 } });
s5.addText("Chronic Infarct", { x: 0.35, y: 2.85, w: 4.2, h: 0.45, fontSize: 14, bold: true, color: CYAN });
s5.addText("T2/FLAIR: Hyperintense encephalomalacia\nDWI: No restriction (T2 shine-through)\nT1: Hypointense (CSF-like)\nVolume loss and gliosis present\nEx vacuo dilatation of ventricles", { x: 0.35, y: 3.35, w: 4.2, h: 1.15, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
s5.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.85, w: 4.7, h: 4.55, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s5.addText("Time-Signal Evolution", { x: 5.1, y: 0.95, w: 4.5, h: 0.4, fontSize: 14, bold: true, color: NAVY });
s5.addTable([
[{ text: "Time", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "DWI", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "ADC", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "FLAIR", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T1", options: { bold: true, fill: NAVY, color: WHITE } }],
["0–6h", "↑↑ Bright", "↓↓ Dark", "Normal", "Normal"],
["6–24h", "↑↑ Bright", "↓↓ Dark", "↑ Bright", "Subtle ↓"],
["1–7d", "↑ Bright", "↓ Dark", "↑↑ Bright", "↓ Dark"],
["1–4wk", "Fading", "Normalizing", "↑ Bright", "↓ Dark"],
[">4wk", "Normal/↓", "↑ (T2 shine)", "↑ FLAIR halo", "CSF-like ↓"],
], { x: 5.1, y: 1.4, w: 4.5, h: 3.0,
colW: [0.9, 0.9, 0.9, 0.9, 0.9],
rowH: [0.42, 0.42, 0.42, 0.42, 0.42, 0.42],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
s5.addShape(prs.ShapeType.rect, { x: 5.1, y: 4.5, w: 4.5, h: 0.65, fill: { color: AMBER } });
s5.addText("DWI-FLAIR mismatch: DWI bright + FLAIR normal → symptom onset <4.5h → thrombolysis candidate!", { x: 5.15, y: 4.52, w: 4.4, h: 0.6, fontSize: 10, bold: true, color: NAVY });
// SLIDE 6 - Brain Tumors Classification
const s6 = addContentSlide(prs, "Brain Tumors — WHO 2021 Classification Overview");
s6.addTable([
[{ text: "Tumor Type", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "WHO Grade", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T1 (Post-Gd)", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T2/FLAIR", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Key Feature", options: { bold: true, fill: NAVY, color: WHITE } }],
["Astrocytoma (IDH-mut)", "2–3", "No/minimal enhancement", "↑ T2", "IDH mutation, slow growth"],
["Glioblastoma (GBM)", "4", "Rim enhancement", "↑↑ T2", "Necrosis, mass effect, EDH"],
["Oligodendroglioma", "2–3", "Variable", "↑ T2", "1p/19q co-deletion, Ca²⁺"],
["Meningioma", "1–3", "Homogeneous enhance", "Iso-↑", "Dural tail, extra-axial"],
["Metastasis", "—", "Ring/solid enhance", "↑ T2 edema", "Multiple, corticomedullary junction"],
["Lymphoma (PCNSL)", "—", "Homogeneous, periventricle", "↑", "Restricted diffusion, DWI bright"],
["Ependymoma", "2–3", "Variable enhance", "↑ T2", "4th ventricle, CSF seeding"],
["Medulloblastoma", "4", "Enhance", "Variable", "Posterior fossa child, DWI bright"],
["Pituitary adenoma", "—", "Enhances (macroadenoma)", "Iso", "Sellar mass, suprasellar extension"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.6,
colW: [2.2, 1.1, 1.9, 1.4, 2.9],
rowH: [0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
// SLIDE 7 - GBM
const s7 = addContentSlide(prs, "Glioblastoma (GBM) — WHO Grade 4");
s7.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: NAVY } });
s7.addText("MRI Hallmarks of GBM", { x: 0.35, y: 0.92, w: 4.3, h: 0.5, fontSize: 14, bold: true, color: CYAN });
s7.addText([
{ text: "• Heterogeneous ring-enhancing mass on post-Gd T1\n", options: {} },
{ text: "• Central necrosis (T1 dark, T2 bright core)\n", options: {} },
{ text: "• Vasogenic edema: extensive T2/FLAIR hyperintensity\n", options: {} },
{ text: "• Hemorrhagic foci (T2* GRE / SWI blooming)\n", options: {} },
{ text: "• Corpus callosum crossing → 'Butterfly GBM'\n", options: {} },
{ text: "• MR Spectroscopy: ↑ Choline, ↓ NAA, ↑ Cho/Cr ratio\n", options: {} },
{ text: "• MR Perfusion (DSC): ↑ rCBV in enhancing rim\n", options: {} },
{ text: "• DWI: Restricted diffusion in cellular areas\n", options: {} },
{ text: "• Multifocal in 5–10%; crosses midline\n", options: {} },
], { x: 0.35, y: 1.5, w: 4.3, h: 3.7, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.35 });
s7.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 2.1, fill: { color: RED } });
s7.addText("Diagnosis & Prognosis", { x: 5.1, y: 0.9, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: WHITE });
s7.addText("Median survival: 14–16 months (MGMT-methylated) vs 9–12 months (unmethylated)\nIDH-wildtype = most aggressive; IDH-mutant = slightly better prognosis\nTERMBP criteria for pseudoprogression vs true progression", { x: 5.1, y: 1.35, w: 4.5, h: 1.4, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
s7.addShape(prs.ShapeType.rect, { x: 5.0, y: 3.1, w: 4.7, h: 2.27, fill: { color: "1A3050" }, line: { color: CYAN, width: 1 } });
s7.addText("RANO Criteria — Response Assessment", { x: 5.1, y: 3.18, w: 4.5, h: 0.4, fontSize: 12, bold: true, color: CYAN });
s7.addText("Complete Response: No enhancement, no FLAIR change, off steroids\nPartial Response: ≥50% ↓ enhancement\nStable Disease: <50% ↓ to <25% ↑\nProgression: ≥25% ↑ enhancement or new lesion\nPseudoprogression: ↑ enhancement at 1–3mo post-RT (treatment effect)", { x: 5.1, y: 3.65, w: 4.5, h: 1.55, fontSize: 10, color: WHITE, lineSpacingMultiple: 1.3 });
// SLIDE 8 - Meningioma & Metastases
const s8 = addContentSlide(prs, "Meningioma & Brain Metastases");
s8.addText("Meningioma", { x: 0.25, y: 0.82, w: 4.4, h: 0.4, fontSize: 15, bold: true, color: NAVY });
s8.addText([
{ text: "• Extra-axial dural-based mass\n", options: {} },
{ text: "• T1: Isointense to grey matter\n", options: {} },
{ text: "• T2: Iso to slightly hyperintense\n", options: {} },
{ text: "• Post-Gd: Intense homogeneous enhancement\n", options: {} },
{ text: "• DURAL TAIL: pathognomonic\n", options: { bold: true } },
{ text: "• Calcification: T2*/SWI blooming\n", options: {} },
{ text: "• WHO Grade 1 (benign) — most common\n", options: {} },
{ text: "• Grade 2 (atypical) / Grade 3 (anaplastic): invasion\n", options: {} },
{ text: "• Sites: parasagittal, sphenoid wing, olfactory groove, CPA\n", options: {} },
], { x: 0.25, y: 1.3, w: 4.4, h: 3.8, fontSize: 11, color: "1A2B3C", lineSpacingMultiple: 1.35 });
s8.addShape(prs.ShapeType.rect, { x: 4.85, y: 0.82, w: 4.9, h: 4.55, fill: { color: "1A2030" } });
s8.addText("Brain Metastases", { x: 4.95, y: 0.92, w: 4.7, h: 0.4, fontSize: 15, bold: true, color: AMBER });
s8.addText([
{ text: "• Most common adult brain tumors\n", options: {} },
{ text: "• Location: corticomedullary junction (junction zone)\n", options: {} },
{ text: "• T2: Hyperintense with surrounding vasogenic edema\n", options: {} },
{ text: "• Post-Gd T1: Ring or solid enhancement\n", options: {} },
{ text: "• DWI: Variable (high in lymphoma, variable in mets)\n", options: {} },
{ text: "• SWI: Hemorrhagic mets (melanoma, RCC, thyroid, choriocarcinoma)\n", options: {} },
], { x: 4.95, y: 1.45, w: 4.7, h: 2.0, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.35 });
s8.addTable([
[{ text: "Primary", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "% Brain Mets", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Appearance", options: { bold: true, fill: NAVY, color: WHITE } }],
["Lung (NSCLC)", "~40%", "Solid/ring, multiple"],
["Breast", "~15%", "Leptomeningeal spread"],
["Melanoma", "~10%", "Hemorrhagic, T1 bright"],
["RCC", "~7%", "Vascular, hemorrhagic"],
["Colorectal", "~5%", "Cystic ring-enhancing"],
], { x: 4.95, y: 3.55, w: 4.7, h: 1.75,
colW: [1.5, 1.3, 1.9],
rowH: [0.32, 0.32, 0.32, 0.32, 0.32, 0.32],
border: { pt: 0.5, color: "2E4A6A" },
fontSize: 10, color: WHITE, fill: "1A3050",
autoPage: false,
});
// SLIDE 9 - Multiple Sclerosis
const s9 = addContentSlide(prs, "Multiple Sclerosis — MRI Criteria");
s9.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 9.5, h: 0.5, fill: { color: CYAN } });
s9.addText("McDonald 2017 Criteria: DIS = Dissemination in Space | DIT = Dissemination in Time", { x: 0.3, y: 0.87, w: 9.4, h: 0.4, fontSize: 12, bold: true, color: NAVY });
s9.addTable([
[{ text: "Location", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Min Lesions for DIS", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "MRI Characteristics", options: { bold: true, fill: NAVY, color: WHITE } }],
["Periventricular", "≥1 lesion", "Dawson fingers: perpendicular to ventricles on sagittal FLAIR"],
["Cortical / Juxtacortical", "≥1 lesion", "Leukocortical, intracortical lesions; best on DIR"],
["Infratentorial", "≥1 lesion", "Brainstem, cerebellum, middle cerebellar peduncle"],
["Spinal cord", "≥1 lesion", "<2 vertebral segments, peripheral, partial cord involvement"],
["Optic nerve", "≥1 lesion", "T2 hyperintense optic nerve; seen in 70% of MS patients"],
], { x: 0.25, y: 1.4, w: 9.5, h: 2.5,
colW: [2.2, 2.2, 5.1],
rowH: [0.42, 0.42, 0.42, 0.42, 0.42, 0.42],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
s9.addShape(prs.ShapeType.rect, { x: 0.25, y: 4.0, w: 4.6, h: 1.4, fill: { color: NAVY }, line: { color: AMBER, width: 1.5 } });
s9.addText("Active Lesion (DIT)", { x: 0.35, y: 4.08, w: 4.4, h: 0.4, fontSize: 12, bold: true, color: AMBER });
s9.addText("Post-Gd enhancing lesion OR new T2 lesion compared to prior scan (without need for Gd if prior scan exists)", { x: 0.35, y: 4.55, w: 4.4, h: 0.75, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
s9.addShape(prs.ShapeType.rect, { x: 5.1, y: 4.0, w: 4.6, h: 1.4, fill: { color: NAVY }, line: { color: GREEN, width: 1.5 } });
s9.addText("Black Holes (T1 Hypointense)", { x: 5.2, y: 4.08, w: 4.4, h: 0.4, fontSize: 12, bold: true, color: GREEN });
s9.addText("Chronic irreversible axonal loss. T1 dark lesions correlate with disability. More common in progressive MS forms.", { x: 5.2, y: 4.55, w: 4.4, h: 0.75, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
// SLIDE 10 - CNS Infections
const s10 = addContentSlide(prs, "CNS Infections — Brain Abscess, Encephalitis & Meningitis");
s10.addTable([
[{ text: "Condition", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T1 Post-Gd", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T2/FLAIR", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "DWI", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Key Feature", options: { bold: true, fill: NAVY, color: WHITE } }],
["Pyogenic Abscess", "Rim enhancement (thin, smooth)", "↑↑ surrounding edema", "Bright centre (restricted)", "Low ADC in pus cavity"],
["Toxoplasma", "Ring enhance; target sign", "↑ edema", "Variable", "Eccentric nodule (HIV)"],
["Viral Encephalitis (HSV)", "No/late enhancement", "↑ temporal/insular FLAIR", "Restricted early", "Temporal lobe involvement"],
["Tuberculous", "Thick ring/nodular enhance", "↑ T2, basilar meningitis", "Variable", "Basal meningeal enhance"],
["Cryptococcus", "Gelatinous pseudocysts", "↑ T2 basal ganglia", "Normal", "Perivascular (Virchow-Robin) dilation"],
["Bacterial Meningitis", "Leptomeningeal enhance", "↑ subarachnoid FLAIR", "Cortical ribbon DWI", "Post-Gd FLAIR most sensitive"],
["PML (JC virus)", "No enhancement", "↑↑ T2 white matter", "Variable centre", "No mass effect, HIV/immunosuppressed"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.6,
colW: [2.0, 2.1, 1.8, 1.5, 2.1],
rowH: [0.42, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
// SLIDE 11 - Hydrocephalus
const s11 = addContentSlide(prs, "Hydrocephalus — MRI Classification & Features");
s11.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s11.addText("Types of Hydrocephalus", { x: 0.35, y: 0.9, w: 4.3, h: 0.4, fontSize: 14, bold: true, color: NAVY });
s11.addText([
{ text: "Obstructive (Non-communicating):\n", options: { bold: true, color: CYAN } },
{ text: "• Aqueduct stenosis (Sylvian)\n• Tectal plate glioma\n• Colloid cyst (3rd ventricle)\n• Dandy-Walker malformation\n\n", options: { color: "1A2B3C" } },
{ text: "Communicating:\n", options: { bold: true, color: CYAN } },
{ text: "• Post-SAH / meningitis (adhesions)\n• Normal Pressure Hydrocephalus (NPH)\n• Choroid plexus papilloma (↑ CSF)\n\n", options: { color: "1A2B3C" } },
{ text: "Ex Vacuo Dilatation:\n", options: { bold: true, color: AMBER } },
{ text: "• Parenchymal loss, NOT true hydrocephalus", options: { color: "1A2B3C" } },
], { x: 0.35, y: 1.35, w: 4.3, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.35 });
s11.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 4.55, fill: { color: NAVY } });
s11.addText("MRI Signs of Hydrocephalus", { x: 5.1, y: 0.92, w: 4.5, h: 0.4, fontSize: 14, bold: true, color: CYAN });
s11.addText([
{ text: "• Enlarged ventricles (Evan's index >0.3)\n", options: {} },
{ text: "• Periventricular FLAIR hyperintensity (transependymal oedema)\n", options: {} },
{ text: "• Dilated temporal horns (early and sensitive)\n", options: {} },
{ text: "• Upward bowing of corpus callosum\n", options: {} },
{ text: "• Third ventricle rounding and expansion\n", options: {} },
{ text: "• Aqueductal flow void on T2 (normal CSF jet)\n", options: {} },
{ text: "• PC-MRI: CSF flow quantification at aqueduct\n", options: {} },
{ text: "\nNPH Triad: Gait apraxia, urinary incontinence, dementia\n", options: { bold: true, color: AMBER } },
{ text: "MRI: Dilated ventricles, tight sulci at vertex, DESH pattern", options: { color: "8ECAE6" } },
], { x: 5.1, y: 1.4, w: 4.5, h: 3.8, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.35 });
// SLIDE 12 - TBI
const s12 = addContentSlide(prs, "Traumatic Brain Injury (TBI) on MRI");
s12.addTable([
[{ text: "Injury Type", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Location", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T2/FLAIR", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "SWI/T2*", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "DWI", options: { bold: true, fill: NAVY, color: WHITE } }],
["Cortical Contusion", "Frontotemporal (coup-contrecoup)", "↑ T2", "Blooming hemorrhage", "Restricted edges"],
["DAI (Grade 1)", "WM at grey-white junction", "↑ T2/FLAIR", "No hemorrhage", "Restricted diffusion"],
["DAI (Grade 2)", "Corpus callosum splenium", "↑ T2/FLAIR", "+/- hemorrhage", "Restricted diffusion"],
["DAI (Grade 3)", "Dorsal brainstem", "↑ T2/FLAIR", "Hemorrhagic", "Restricted diffusion"],
["Epidural Hematoma", "Biconvex, temporal", "Variable", "Hypointense acute blood", "N/A"],
["Subdural Hematoma", "Crescent, mixed stages", "Variable age", "Mixed signal", "N/A"],
["Subarachnoid Hemorrhage", "Cisterns, sulci", "FLAIR bright", "T2* blooming", "N/A"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.2,
colW: [2.2, 2.0, 1.7, 1.9, 1.7],
rowH: [0.42, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48, 0.48],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
s12.addShape(prs.ShapeType.rect, { x: 0.25, y: 5.1, w: 9.5, h: 0.35, fill: { color: CYAN } });
s12.addText("SWI is the most sensitive sequence for DAI detection — identifies microhemorrhages invisible on CT and conventional MRI", { x: 0.3, y: 5.12, w: 9.4, h: 0.3, fontSize: 10, bold: true, color: NAVY });
// SLIDE 13 - Epilepsy
const s13 = addContentSlide(prs, "Epilepsy MRI — Protocol & Key Findings");
s13.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: NAVY } });
s13.addText("Epilepsy MRI Protocol", { x: 0.35, y: 0.92, w: 4.3, h: 0.4, fontSize: 14, bold: true, color: CYAN });
s13.addText([
{ text: "3T preferred over 1.5T\n\n", options: { color: AMBER } },
{ text: "Sequences:\n", options: { bold: true, color: CYAN } },
{ text: "• Axial FLAIR (3mm)\n• Coronal T2 perpendicular to hippocampus\n• Coronal FLAIR (3mm)\n• 3D T1 MPRAGE (1mm isotropic)\n• Axial DWI (post-ictal)\n• Axial SWI/GRE (cavernoma)\n• Post-Gd T1 (tumor/FCD)\n\n", options: { color: WHITE } },
{ text: "Volumetry & VBM for subtle MCD", options: { color: "8ECAE6" } },
], { x: 0.35, y: 1.4, w: 4.3, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.35 });
s13.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 4.55, fill: { color: LIGHT_BG }, line: { color: CYAN, width: 1 } });
s13.addText("Hippocampal Sclerosis (HS) — Most Common", { x: 5.1, y: 0.9, w: 4.5, h: 0.45, fontSize: 12, bold: true, color: NAVY });
s13.addText([
{ text: "MRI Signs:\n", options: { bold: true, color: NAVY } },
{ text: "• T2/FLAIR hyperintensity in hippocampus\n• Hippocampal atrophy (volume loss)\n• Loss of internal architecture (striation)\n• Ipsilateral temporal lobe atrophy\n• Contralateral compensatory hypertrophy\n\n", options: { color: "1A2B3C" } },
{ text: "Other Causes:\n", options: { bold: true, color: NAVY } },
{ text: "• Focal cortical dysplasia (FCD): blurring of grey-white junction, FLAIR bright\n• Cortical tubers (TSC): T2 bright, calcify with age\n• Cavernoma: SWI blooming (popcorn)\n• DNET / ganglioglioma: T2 cystic, cortical", options: { color: "1A2B3C" } },
], { x: 5.1, y: 1.4, w: 4.5, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.35 });
// SLIDE 14 - Cerebrovascular Malformations
const s14 = addContentSlide(prs, "Cerebrovascular Malformations");
s14.addTable([
[{ text: "Type", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T1", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T2", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "T2*/SWI", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Post-Gd", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Key Point", options: { bold: true, fill: NAVY, color: WHITE } }],
["AVM", "Flow voids", "Flow voids ('bag of worms')", "Prominent vessels", "Yes", "Arterial feeders, venous drainage, nidus"],
["Cavernoma", "Mixed (blood products)", "Popcorn: mixed core", "↓↓ Blooming halo (hemosiderin)", "None", "Epilepsy, best seen on SWI"],
["DVA (Developmental Venous Anomaly)", "Normal", "Normal or subtle", "+/- Cavernoma", "Caput medusae sign", "Benign, do not resect"],
["Capillary Telangiectasia", "Normal", "Normal", "Subtle blooming", "Faint brush-like", "Pontine, benign, incidental"],
["DAVF (Dural AV Fistula)", "Engorged veins", "Flow voids in WM", "Cortical veins", "Arterial feeders", "Cortical venous HTN, Cognard/Borden"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.6,
colW: [1.8, 1.1, 1.7, 1.9, 1.2, 1.8],
rowH: [0.42, 0.52, 0.52, 0.52, 0.42, 0.52],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
// SLIDE 15 - Pituitary MRI
const s15 = addContentSlide(prs, "Pituitary MRI — Anatomy & Pathology");
s15.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s15.addText("Normal Pituitary MRI", { x: 0.35, y: 0.9, w: 4.3, h: 0.4, fontSize: 14, bold: true, color: NAVY });
s15.addText([
{ text: "• Adenohypophysis (anterior): isointense T1\n• Neurohypophysis (posterior): T1 bright spot (normal)\n• Height: <8mm women, <6mm men (10mm in adolescence/pregnancy)\n• Enhancement: homogeneous and early\n• Infundibulum: midline, <3mm thick at base\n• Pituitary stalk deviation: suggests microadenoma\n\nDynamic MRI Protocol (microadenoma):\n• Rapid coronal T1 post-Gd at 30s, 60s, 90s, 120s\n• Adenoma: hypoenhancing early, fills in late\n• Cut-off: <1cm micro, ≥1cm macro", options: { color: "1A2B3C" } }
], { x: 0.35, y: 1.35, w: 4.3, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.4 });
s15.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 4.55, fill: { color: NAVY } });
s15.addText("Pituitary & Sellar Pathology", { x: 5.1, y: 0.92, w: 4.5, h: 0.4, fontSize: 14, bold: true, color: CYAN });
s15.addTable([
[{ text: "Lesion", options: { bold: true, fill: "1A3A5C", color: WHITE } }, { text: "T1/T2", options: { bold: true, fill: "1A3A5C", color: WHITE } }, { text: "Enhancement", options: { bold: true, fill: "1A3A5C", color: WHITE } }],
["Microadenoma", "Iso/hypo T1", "Hypo early, fills late"],
["Macroadenoma", "Iso T1, ↑ T2", "Heterogeneous"],
["Craniopharyngioma", "T1 bright cyst (cholesterol)", "Rim + solid"],
["Rathke's cleft cyst", "T1 bright (proteinaceous)", "None"],
["Meningioma (sellar)", "Iso T1/T2", "Homogeneous, dural tail"],
["Germinoma", "Iso", "Homogeneous"],
["Pituitary apoplexy", "T1 bright (blood)", "Peripheral ring"],
], { x: 5.1, y: 1.4, w: 4.5, h: 3.75,
colW: [1.8, 1.4, 1.3],
rowH: [0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38],
border: { pt: 0.5, color: "2E4A6A" },
fontSize: 10, color: WHITE, fill: "1A3050",
autoPage: false,
});
// SLIDE 16 - Posterior Fossa & Pediatric
const s16 = addContentSlide(prs, "Posterior Fossa & Pediatric Brain MRI");
s16.addText("Posterior Fossa Tumors (Adults vs Children)", { x: 0.25, y: 0.82, w: 9.5, h: 0.4, fontSize: 14, bold: true, color: NAVY });
s16.addTable([
[{ text: "Tumor", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Age Group", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "Location", options: { bold: true, fill: NAVY, color: WHITE } }, { text: "MRI Characteristic", options: { bold: true, fill: NAVY, color: WHITE } }],
["Medulloblastoma", "Children (<10y)", "Midline cerebellum / 4th V", "DWI bright, homogeneous enhance"],
["Pilocytic Astrocytoma", "Children", "Cerebellar hemisphere", "Cyst + mural nodule, T2 bright"],
["Ependymoma", "Children (4th V) / Adults (lateral)", "4th ventricle, plastic", "Heterogeneous; CSF seeding"],
["Hemangioblastoma", "Adults (VHL)", "Cerebellar hemisphere", "Cyst + vascular nodule; prominent flow voids"],
["Metastasis", "Adults (>45y)", "Cerebellar hemisphere", "Multiple, ring enhance, junction zone"],
["DNET/Ganglioglioma", "Young adults", "Cortical temporal/cerebellum", "T2 cystic cortical lesion, no oedema"],
], { x: 0.25, y: 1.28, w: 9.5, h: 3.2,
colW: [2.2, 1.6, 2.2, 3.5],
rowH: [0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42],
border: { pt: 0.5, color: "D0D8E4" },
fontSize: 10, color: "1A2B3C",
autoPage: false,
});
s16.addShape(prs.ShapeType.rect, { x: 0.25, y: 4.55, w: 9.5, h: 0.8, fill: { color: CYAN } });
s16.addText("Pediatric Brain MRI Note: Myelination progresses from posterior→anterior, inferior→superior. T1 bright myelination by 12 months in most regions. Unmyelinated white matter appears T2 bright — do not mistake for pathology in neonates.", { x: 0.3, y: 4.57, w: 9.4, h: 0.76, fontSize: 10, color: NAVY });
// SLIDE 17 - Key Takeaways
const last = prs.addSlide();
last.background = { color: NAVY };
last.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN } });
last.addShape(prs.ShapeType.rect, { x: 0.5, y: 1.55, w: 9.5, h: 0.06, fill: { color: AMBER } });
last.addText("Key Takeaways", { x: 0.7, y: 0.3, w: 9, h: 1.1, fontSize: 36, bold: true, color: WHITE });
last.addText([
{ text: "1. DWI-FLAIR mismatch is the key MRI marker for thrombolysis eligibility in wake-up stroke\n", options: {} },
{ text: "2. GBM: ring enhancement + necrosis + T2 edema + crossingCC = butterfly pattern\n", options: {} },
{ text: "3. MS lesions: Dawson fingers on sagittal FLAIR; periventricular, juxtacortical, infratentorial, cord\n", options: {} },
{ text: "4. Brain abscess: DWI bright (restricted pus) differentiates from necrotic tumor (not restricted)\n", options: {} },
{ text: "5. SWI is the most sensitive sequence for DAI microhemorrhages in TBI\n", options: {} },
{ text: "6. Hippocampal sclerosis: T2 bright + volume loss + loss of striation on coronal MRI\n", options: {} },
{ text: "7. Cavernoma: popcorn on T2, hemosiderin halo on SWI — best appreciated at high field", options: {} },
], { x: 0.7, y: 1.75, w: 9.0, h: 3.65, fontSize: 13, color: WHITE, lineSpacingMultiple: 1.45 });
prs.writeFile({ fileName: "/home/daytona/workspace/mri-radiology-teaching/03_Brain_Neuro_MRI.pptx" })
.then(() => console.log("DONE: 03_Brain_Neuro_MRI.pptx"))
.catch(err => console.error("ERROR:", err));
~/mri-radiology-teaching/04_Spine_MRI.js
const pptxgen = require("pptxgenjs");
const prs = new pptxgen();
prs.layout = "LAYOUT_16x9";
prs.title = "Spine MRI";
const NAVY = "0D1B2A"; const WHITE = "FFFFFF"; const CYAN = "00B4D8";
const AMBER = "F4A261"; const LIGHT_BG = "F5F7FA"; const GREEN = "2EC4B6"; const RED = "E63946";
function cs(prs, title) {
const slide = prs.addSlide();
slide.background = { color: LIGHT_BG };
slide.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.7, fill: { color: NAVY } });
slide.addText(title, { x: 0.25, y: 0, w: 9.5, h: 0.7, fontSize: 21, bold: true, color: WHITE, valign: "middle" });
slide.addShape(prs.ShapeType.rect, { x: 0, y: 0.7, w: 0.12, h: 4.925, fill: { color: CYAN } });
return slide;
}
// SLIDE 1 - Title
const t = prs.addSlide();
t.background = { color: NAVY };
t.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN } });
t.addShape(prs.ShapeType.rect, { x: 0.5, y: 2.9, w: 9.5, h: 0.07, fill: { color: AMBER } });
t.addText("Spine MRI", { x: 0.8, y: 0.9, w: 8.8, h: 1.6, fontSize: 48, bold: true, color: WHITE });
t.addText("MRI Radiology Teaching Series — Module 4", { x: 0.8, y: 3.1, w: 8.8, h: 0.6, fontSize: 18, color: CYAN });
t.addText("Disc Disease • Cord Pathology • Infections • Tumors • Post-Op", { x: 0.8, y: 3.8, w: 8.8, h: 0.5, fontSize: 13, color: "8ECAE6" });
t.addText("Radiology Department | 2026", { x: 0.8, y: 4.7, w: 8.8, h: 0.4, fontSize: 12, color: "4A7A9B" });
// SLIDE 2 - TOC
const toc = cs(prs, "Table of Contents");
toc.addText([
{text:"1. Indications & Standard Protocol",options:{breakLine:true}},
{text:"2. Normal Spine Anatomy on MRI",options:{breakLine:true}},
{text:"3. Disc Nomenclature & Herniation Types",options:{breakLine:true}},
{text:"4. Cervical Spine — Cord Compression",options:{breakLine:true}},
{text:"5. Lumbar Spine — Disc Disease",options:{breakLine:true}},
{text:"6. Spinal Stenosis Grading",options:{breakLine:true}},
{text:"7. Modic Changes",options:{breakLine:true}},
{text:"8. Spondylolisthesis",options:{breakLine:true}},
{text:"9. Spinal Cord Pathology",options:{breakLine:true}},
{text:"10. Spinal Infections",options:{breakLine:true}},
{text:"11. Spinal Tumors",options:{breakLine:true}},
{text:"12. Post-Operative Spine MRI",options:{breakLine:true}},
{text:"13. Cauda Equina Syndrome",options:{breakLine:true}},
{text:"14. Key Takeaways"}
], { x: 0.3, y: 0.85, w: 4.5, h: 4.6, fontSize: 11.5, color: "1A2B3C", lineSpacingMultiple: 1.35 });
toc.addShape(prs.ShapeType.rect, { x: 5.1, y: 0.85, w: 4.6, h: 4.6, fill: { color: NAVY } });
toc.addText("Spine MRI at a Glance", { x: 5.2, y: 0.95, w: 4.4, h: 0.5, fontSize: 14, bold: true, color: CYAN });
toc.addText("Most common clinical indication for MRI worldwide\n\n3 regions: Cervical (C) / Thoracic (T) / Lumbar (L)\n\nKey sequences:\n• Sagittal T1, Sagittal T2, Axial T2\n• STIR for marrow edema / infection\n• Post-Gd T1 for tumor / infection\n• DWI for cord ischemia\n• GRE/SWI for hemorrhage",
{ x: 5.2, y: 1.55, w: 4.4, h: 3.7, fontSize: 11.5, color: WHITE, lineSpacingMultiple: 1.4 });
// SLIDE 3 - Normal Anatomy
const s3 = cs(prs, "Normal Spine Anatomy on MRI");
s3.addTable([
[{text:"Structure",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T1 Signal",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T2 Signal",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Notes",options:{bold:true,fill:NAVY,color:WHITE}}],
["Vertebral body (adult)","Bright (fatty marrow)","Intermediate","Marrow fat replaces red marrow in adults"],
["Cortical bone","Dark","Dark","Signal void on all sequences"],
["Intervertebral disc — Nucleus","Iso","Bright (hydrated)","T2 bright from water; lost in degeneration"],
["Intervertebral disc — Annulus","Iso","Dark","Fibrocartilagenous, low water content"],
["Spinal cord","Iso (grey>white)","Slightly ↑","Grey matter butterfly; central canal"],
["CSF","Dark","Bright","T2 myelographic effect"],
["Conus medullaris","Iso","Iso","Ends at L1-L2 in adults"],
["Cauda equina nerve roots","Iso","Iso","Floating in bright CSF on T2"],
["Ligamentum flavum","Dark","Dark","Thickens in stenosis (>5mm)"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.6,
colW: [2.8, 1.7, 1.7, 3.3],
rowH: [0.42, 0.42, 0.38, 0.42, 0.42, 0.38, 0.38, 0.38, 0.38, 0.38],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10, color: "1A2B3C", autoPage: false });
// SLIDE 4 - Disc Nomenclature
const s4 = cs(prs, "Disc Pathology — Nomenclature & Herniation Classification");
s4.addTable([
[{text:"Term",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Definition",options:{bold:true,fill:NAVY,color:WHITE}},{text:"MRI Appearance",options:{bold:true,fill:NAVY,color:WHITE}}],
["Disc Bulge","Generalised disc extension >50% circumference (not herniation)","Diffuse symmetric contour beyond disc margin"],
["Protrusion","Focal herniation; base > dome width; annulus intact","Focal disc material, base wider than height"],
["Extrusion","Base < dome; annulus disrupted; nucleus through AF","Sub-ligamentous or trans-ligamentous displacement"],
["Sequestration (Free Fragment)","Extruded disc loses continuity with parent disc","Migrated fragment, may be distant from disc level"],
["Disc Degeneration","Loss of T2 signal in nucleus (desiccation)","Dark nucleus on T2 (Pfirrmann grading I-V)"],
["Schmorl's Node","Intravertebral herniation through end plate","T2 bright disc material within vertebral body"],
], { x: 0.25, y: 0.82, w: 9.5, h: 3.5,
colW: [2.3, 3.8, 3.4],
rowH: [0.42, 0.48, 0.48, 0.52, 0.52, 0.48, 0.42],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10.5, color: "1A2B3C", autoPage: false });
s4.addShape(prs.ShapeType.rect, { x: 0.25, y: 4.4, w: 9.5, h: 0.95, fill: { color: CYAN } });
s4.addText("Location Classification: Central | Paracentral (most common) | Foraminal | Far-lateral (extraforaminal)\nLeft vs Right: Document side, affected nerve root, level (e.g. L4/5 right paracentral — L5 root compression)",
{ x: 0.3, y: 4.42, w: 9.4, h: 0.9, fontSize: 10.5, color: NAVY, bold: false });
// SLIDE 5 - Cervical Spine
const s5 = cs(prs, "Cervical Spine MRI — Myelopathy & Cord Compression");
s5.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: NAVY } });
s5.addText("Cervical Myelopathy Signs", { x: 0.35, y: 0.92, w: 4.3, h: 0.4, fontSize: 14, bold: true, color: CYAN });
s5.addText([
{text:"CORD COMPRESSION:\n",options:{bold:true,color:AMBER}},
{text:"• Canal diameter <10mm = critical stenosis\n• Cord flattened / deformed on axial T2\n• Cord signal change: T2 hyperintensity = myelopathy\n• T1 hypointense cord signal = myelomalacia (irreversible)\n\n",options:{color:WHITE}},
{text:"CAUSATIVE PATHOLOGY:\n",options:{bold:true,color:CYAN}},
{text:"• Disc herniation: C5/6 most common\n• Spondylotic osteophyte bars\n• Ossification of PLL (OPLL): T1 dark, behind vertebral body\n• Ligamentum flavum hypertrophy\n• Atlantoaxial instability (RA): ADI >3mm\n• Epidural hematoma / abscess",options:{color:WHITE}},
], { x: 0.35, y: 1.4, w: 4.3, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.35 });
s5.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 4.55, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s5.addText("Cord Signal Change — Grading", { x: 5.1, y: 0.9, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: NAVY });
s5.addTable([
[{text:"Grade",options:{bold:true,fill:NAVY,color:WHITE}},{text:"MRI Finding",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Prognosis",options:{bold:true,fill:NAVY,color:WHITE}}],
["0 — Normal","No cord signal change","Excellent post-op recovery"],
["1 — T2 only","T2 hyperintense only","Good recovery"],
["2 — T2+T1","T2 hyper + T1 hypointense","Moderate; irreversible component"],
["3 — Cavitation","Syrinx / cystic change","Poor; permanent deficit"],
], { x: 5.1, y: 1.35, w: 4.5, h: 2.0,
colW: [1.6, 1.8, 1.1],
rowH: [0.4, 0.4, 0.4, 0.4, 0.4],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10, color: "1A2B3C", autoPage: false });
s5.addText("Important levels:\nC3/4 — Phrenic nerve (diaphragm)\nC5/6 — Most common disc herniation\nC6/7 — Second most common\nAtlanto-axial: C1/2 — Dens fractures, RA pannus",
{ x: 5.1, y: 3.45, w: 4.5, h: 1.75, fontSize: 11, color: "1A2B3C", lineSpacingMultiple: 1.4 });
// SLIDE 6 - Lumbar Spine
const s6 = cs(prs, "Lumbar Spine MRI — Disc Disease & Radiculopathy");
s6.addText("Most common levels: L4/5 and L5/S1", { x: 0.25, y: 0.82, w: 9.5, h: 0.4, fontSize: 12, bold: true, color: NAVY });
s6.addTable([
[{text:"Level",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Root",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Pain Distribution",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Motor Deficit",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Reflex",options:{bold:true,fill:NAVY,color:WHITE}}],
["L3/4","L4","Anterior thigh, medial leg","Quadriceps weakness","↓ Knee jerk"],
["L4/5","L5","Posterior thigh, lateral leg, dorsum foot","EHL weakness (dorsiflexion)","None usually"],
["L5/S1","S1","Posterior thigh, leg, lateral foot","Plantar flexion weakness","↓ Ankle jerk"],
], { x: 0.25, y: 1.3, w: 9.5, h: 2.0,
colW: [1.2, 0.8, 2.8, 2.8, 1.9],
rowH: [0.42, 0.46, 0.46, 0.46],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 11, color: "1A2B3C", autoPage: false });
s6.addShape(prs.ShapeType.rect, { x: 0.25, y: 3.4, w: 4.5, h: 1.95, fill: { color: NAVY } });
s6.addText("Pfirrmann Disc Grading (T2 Signal)", { x: 0.35, y: 3.48, w: 4.3, h: 0.4, fontSize: 12, bold: true, color: CYAN });
s6.addText("I: Bright white nucleus, clear AF boundary\nII: Inhomogeneous nucleus, clear AF boundary\nIII: Grey nucleus, unclear AF boundary\nIV: Dark grey nucleus, annulus loss\nV: Black disc, no nucleus/annulus distinction",
{ x: 0.35, y: 3.95, w: 4.3, h: 1.3, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
s6.addShape(prs.ShapeType.rect, { x: 5.0, y: 3.4, w: 4.7, h: 1.95, fill: { color: "1A3050" }, line: { color: AMBER, width: 1 } });
s6.addText("Red Flags — Surgical Emergency", { x: 5.1, y: 3.48, w: 4.5, h: 0.4, fontSize: 12, bold: true, color: AMBER });
s6.addText("• Cauda equina syndrome: bilateral radiculopathy + sphincter dysfunction\n• Saddle anaesthesia\n• Progressive neurological deficit\n→ URGENT MRI within 4 hours",
{ x: 5.1, y: 3.95, w: 4.5, h: 1.3, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
// SLIDE 7 - Stenosis
const s7 = cs(prs, "Spinal Stenosis — MRI Grading");
s7.addTable([
[{text:"Grade",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Description",options:{bold:true,fill:NAVY,color:WHITE}},{text:"CSF on T2",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Canal Area (ap) / Notes",options:{bold:true,fill:NAVY,color:WHITE}}],
["0 — Normal","No stenosis","CSF visible all around cord",">10mm AP diameter (cervical)"],
["1 — Mild","Slight reduction","CSF visible around roots","<10% reduction in cross-sectional area"],
["2 — Moderate","Significant reduction","CSF partially absent","Obliteration of part of thecal sac"],
["3 — Severe","Critical stenosis","No CSF visible","Complete obliteration; cord deformed"],
], { x: 0.25, y: 0.85, w: 9.5, h: 2.2,
colW: [2.0, 2.5, 2.0, 3.0],
rowH: [0.42, 0.48, 0.48, 0.48, 0.48],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 11, color: "1A2B3C", autoPage: false });
s7.addShape(prs.ShapeType.rect, { x: 0.25, y: 3.15, w: 4.5, h: 2.2, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s7.addText("Causes of Stenosis", { x: 0.35, y: 3.23, w: 4.3, h: 0.4, fontSize: 13, bold: true, color: NAVY });
s7.addText("• Disc herniation / osteophytes (central)\n• Facet joint hypertrophy\n• Ligamentum flavum thickening\n• Spondylolisthesis\n• Congenital (short pedicles)\n• Post-operative epidural fibrosis",
{ x: 0.35, y: 3.7, w: 4.3, h: 1.55, fontSize: 11, color: "1A2B3C", lineSpacingMultiple: 1.3 });
s7.addShape(prs.ShapeType.rect, { x: 5.0, y: 3.15, w: 4.7, h: 2.2, fill: { color: NAVY } });
s7.addText("Lateral Recess & Foraminal Stenosis", { x: 5.1, y: 3.23, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: CYAN });
s7.addText("Lateral Recess Stenosis:\n• Normal height >3mm; stenotic <2mm\n• Axial T2: nerve root compressed by facet / disc\n\nForaminal Stenosis:\n• Parasagittal T2 shows nerve root compression\n• Grade 0–3 on sagittal images (Lee classification)\n• Far lateral disc herniations affect exiting root",
{ x: 5.1, y: 3.7, w: 4.5, h: 1.55, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.3 });
// SLIDE 8 - Modic Changes
const s8 = cs(prs, "Modic Changes — Vertebral End Plate Signal Patterns");
s8.addTable([
[{text:"Type",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T1 Signal",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T2 Signal",options:{bold:true,fill:NAVY,color:WHITE}},{text:"STIR",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Pathology",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Clinical",options:{bold:true,fill:NAVY,color:WHITE}}],
["Type 1","↓ Hypointense","↑ Hyperintense","↑ Bright","Vascular fibrous tissue, inflammation, oedema","Active, painful; may respond to treatment"],
["Type 2","↑ Hyperintense","↑ Hyperintense","Normal/↓","Fatty marrow replacement of end plate","Chronic, stable; often asymptomatic"],
["Type 3","↓ Hypointense","↓ Hypointense","↓","Subchondral bone sclerosis","Chronic, quiescent; correlates with osteosclerosis"],
], { x: 0.25, y: 0.85, w: 9.5, h: 2.5,
colW: [1.1, 1.4, 1.4, 1.0, 2.7, 1.9],
rowH: [0.42, 0.6, 0.6, 0.6],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10.5, color: "1A2B3C", autoPage: false });
s8.addShape(prs.ShapeType.rect, { x: 0.25, y: 3.5, w: 9.5, h: 1.85, fill: { color: CYAN } });
s8.addText("Clinical Significance & Differential Diagnosis", { x: 0.35, y: 3.58, w: 9.3, h: 0.4, fontSize: 13, bold: true, color: NAVY });
s8.addText("Type 1 Modic: can mimic discitis/osteomyelitis — KEY DIFFERENTIATOR: infection has disc T2 signal loss + disc height loss + clinical fever + elevated CRP/ESR\nMixed types occur; Type 1→2 conversion over time common. Type 1 associated with axial low back pain and Modic-targeted therapy trials.",
{ x: 0.35, y: 4.05, w: 9.3, h: 1.2, fontSize: 11, color: NAVY, lineSpacingMultiple: 1.35 });
// SLIDE 9 - Spondylolisthesis
const s9 = cs(prs, "Spondylolisthesis — Classification & MRI Grading");
s9.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s9.addText("Meyerding Grading (Slip %)", { x: 0.35, y: 0.9, w: 4.3, h: 0.4, fontSize: 13, bold: true, color: NAVY });
s9.addTable([
[{text:"Grade",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Slip",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Management",options:{bold:true,fill:NAVY,color:WHITE}}],
["I","<25%","Conservative"],
["II","25–50%","Conservative/surgical"],
["III","50–75%","Surgical"],
["IV",">75%","Surgical"],
["V (Spondyloptosis)","100% (complete)","Surgical emergency"],
], { x: 0.35, y: 1.35, w: 4.3, h: 2.3,
colW: [1.1, 1.1, 2.1],
rowH: [0.38, 0.38, 0.38, 0.38, 0.38, 0.38],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10.5, color: "1A2B3C", autoPage: false });
s9.addText("MRI Findings:\n• Anterior displacement of vertebral body\n• Sagittal T2: step deformity at affected level\n• Associated disc degeneration\n• Posterior element: pars defect (T1, STIR)\n• Secondary stenosis at affected level",
{ x: 0.35, y: 3.75, w: 4.3, h: 1.55, fontSize: 11, color: "1A2B3C", lineSpacingMultiple: 1.35 });
s9.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 4.55, fill: { color: NAVY } });
s9.addText("Etiological Classification (Wiltse)", { x: 5.1, y: 0.92, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: CYAN });
s9.addText([
{text:"Type I — Dysplastic:\n",options:{bold:true,color:AMBER}},
{text:"Congenital deficiency of sacral facets\n\n",options:{color:WHITE}},
{text:"Type II — Isthmic (MOST COMMON):\n",options:{bold:true,color:AMBER}},
{text:"Pars interarticularis fracture/elongation (L5/S1)\n\n",options:{color:WHITE}},
{text:"Type III — Degenerative:\n",options:{bold:true,color:AMBER}},
{text:"Disc + facet degeneration (common in adults, L4/5)\n\n",options:{color:WHITE}},
{text:"Type IV — Traumatic / Type V — Pathologic\n",options:{bold:true,color:CYAN}},
{text:"(Lytic lesion, fracture)\n\nIsthmic: STIR/T1 fat-sat for pars oedema",options:{color:WHITE}},
], { x: 5.1, y: 1.4, w: 4.5, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.35 });
// SLIDE 10 - Cord Pathology
const s10 = cs(prs, "Spinal Cord Pathology — Myelopathy Differential");
s10.addTable([
[{text:"Condition",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T1",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T2",options:{bold:true,fill:NAVY,color:WHITE}},{text:"STIR",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Post-Gd",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Key Feature",options:{bold:true,fill:NAVY,color:WHITE}}],
["MS Cord Lesion","Iso","Focal ↑ T2, peripheral, <2 segments","↑","Transient Gd enhance","<50% cord cross-section; dorsal columns"],
["NMOSD (Neuromyelitis Optica)","Iso","↑ T2, central, ≥3 segments","↑↑","Yes, ring/central","Central cord, H-sign on axial, bright spot on T1"],
["Spondylotic Myelopathy","Iso","↑ T2, pencil-like, at compression","↑","Absent","Adjacent disc/osteophyte; T1 hypo = myelomalacia"],
["Spinal Cord Infarction","Iso","↑ T2 anterior cord","↑","Variable","DWI restricted (owl eyes on axial); vascular distribution"],
["Syringomyelia","Dark (CSF)","Bright, central cavity","CSF-like","None","Associated with Chiari, tethered cord, post-traumatic"],
["Ependymoma (cord)","Iso","↑ T2, central, sausage-shaped","↑","Homogeneous","Cap sign (hemosiderin); widening cord"],
["Astrocytoma (cord)","Iso/↓","↑ T2, infiltrative, eccentric","↑","Heterogeneous","Infiltrative, no clear margin, children"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.6,
colW: [2.1, 0.6, 1.7, 0.7, 0.9, 3.5],
rowH: [0.42, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52, 0.52],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 9.5, color: "1A2B3C", autoPage: false });
// SLIDE 11 - Spinal Infections
const s11 = cs(prs, "Spinal Infections — Discitis, Osteomyelitis & Epidural Abscess");
s11.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 9.5, h: 0.45, fill: { color: RED } });
s11.addText("KEY: MRI is the gold standard for early diagnosis — changes precede X-ray and CT by 2–3 weeks", { x: 0.3, y: 0.85, w: 9.4, h: 0.38, fontSize: 11, bold: true, color: WHITE });
s11.addTable([
[{text:"Feature",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Discitis/Osteomyelitis",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Epidural Abscess",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Tuberculous (Pott's)",options:{bold:true,fill:NAVY,color:WHITE}}],
["T1","↓ Disc + endplates (loss of normal T1)","Iso to ↓","↓ Vertebral bodies (may span disc)"],
["T2","↑ Disc + endplates (bright)","↑ (fluid/phlegmon)","↑ Vertebral, discs relatively preserved early"],
["STIR","↑↑ Bright endplates","↑↑","↑↑"],
["Post-Gd T1","Diffuse disc + endplate enhancement","Rim-enhancing collection","Rim-enhance; paraspinal abscess"],
["Disc Height","Reduced or lost","Preserved","Preserved until late (disc spared early)"],
["Location","Any level","Posterior epidural space","Thoracic most common; skip lesions possible"],
["Organism","S. aureus (pyogenic)","S. aureus","Mycobacterium tuberculosis"],
], { x: 0.25, y: 1.35, w: 9.5, h: 3.55,
colW: [1.5, 2.8, 2.5, 2.7],
rowH: [0.42, 0.42, 0.42, 0.38, 0.48, 0.42, 0.4, 0.38],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10, color: "1A2B3C", autoPage: false });
s11.addShape(prs.ShapeType.rect, { x: 0.25, y: 4.98, w: 9.5, h: 0.42, fill: { color: AMBER } });
s11.addText("Epidural abscess: SURGICAL EMERGENCY if neurological deficit — requires urgent decompression within 24 hours", { x: 0.3, y: 5.0, w: 9.4, h: 0.38, fontSize: 10.5, bold: true, color: NAVY });
// SLIDE 12 - Spinal Tumors
const s12 = cs(prs, "Spinal Tumors — Classification by Compartment");
s12.addTable([
[{text:"Compartment",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Common Tumors",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T1",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T2",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Enhancement",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Clue",options:{bold:true,fill:NAVY,color:WHITE}}],
["Extradural","Metastasis (most common), lymphoma, plasmacytoma","↓ (replaces marrow)","↑ STIR","Avid","Pedicular destruction; skip lesions"],
["Extradural","Chordoma (clivus/sacrum)","↓/iso","↑↑","Heterogeneous","Midline sacral destructive lesion"],
["Intradural-Extramedullary","Meningioma (thoracic)","Iso","Iso","Homogeneous","Dural attachment, calcify"],
["Intradural-Extramedullary","Schwannoma / Neurofibroma","Iso","↑","Homogeneous, may have cyst","Dumbbell shape through foramen"],
["Intradural-Extramedullary","Myxopapillary ependymoma","Iso/↓","↑↑","Homogeneous","Conus/filum terminale"],
["Intramedullary","Ependymoma (adult)","Iso","↑↑ central","Homogeneous","Cap sign, expands cord, central"],
["Intramedullary","Astrocytoma (child/young)","↓","↑↑ eccentric","Heterogeneous","Infiltrative, no cap sign"],
["Intramedullary","Hemangioblastoma (VHL)","Iso","Cyst + nodule","Vivid nodule","Associated syrinx, VHL syndrome"],
], { x: 0.25, y: 0.82, w: 9.5, h: 4.6,
colW: [2.1, 2.2, 0.7, 0.8, 1.4, 2.3],
rowH: [0.42, 0.48, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42],
border: { pt: 0.5, color: "D0D8E4" }, fontSize: 10, color: "1A2B3C", autoPage: false });
// SLIDE 13 - Post-Op Spine
const s13 = cs(prs, "Post-Operative Spine MRI");
s13.addShape(prs.ShapeType.rect, { x: 0.25, y: 0.82, w: 4.5, h: 4.55, fill: { color: NAVY } });
s13.addText("Normal Post-Op Changes", { x: 0.35, y: 0.92, w: 4.3, h: 0.4, fontSize: 13, bold: true, color: CYAN });
s13.addText("Within 6 months of surgery:\n• Epidural enhancement (granulation tissue) — normal\n• Disc space enhancement — normal up to 6 months\n• Scar tissue: T1 iso, T2 variable, enhances\n\nPost-Op Protocol (Gd-enhanced MRI):\n• T1 pre and post Gd mandatory\n• Fat-saturated T1 post-Gd\n\nScar vs Residual Disc:\n• Scar: enhances homogeneously, immediate post-Gd\n• Disc fragment: NO enhancement on early post-Gd\n (peripheral enhancement on delayed 30-min scan)\n — Gold standard: early + late T1 post-Gd",
{ x: 0.35, y: 1.4, w: 4.3, h: 3.8, fontSize: 11, color: WHITE, lineSpacingMultiple: 1.35 });
s13.addShape(prs.ShapeType.rect, { x: 5.0, y: 0.82, w: 4.7, h: 4.55, fill: { color: LIGHT_BG }, line: { color: NAVY, width: 1 } });
s13.addText("Post-Op Complications", { x: 5.1, y: 0.9, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: NAVY });
s13.addText([
{text:"Adjacent Segment Disease:\n",options:{bold:true,color:NAVY}},
{text:"• Accelerated degeneration at level above/below fusion\n• T2 disc signal loss, new herniation\n\n",options:{color:"1A2B3C"}},
{text:"Pseudomeningocele:\n",options:{bold:true,color:NAVY}},
{text:"• CSF leak post-dural tear; T2 bright paravertebral collection\n\n",options:{color:"1A2B3C"}},
{text:"Epidural Hematoma / Abscess:\n",options:{bold:true,color:RED}},
{text:"• Post-op ring-enhancing collection, cord compression\n\n",options:{color:"1A2B3C"}},
{text:"Hardware Assessment:\n",options:{bold:true,color:NAVY}},
{text:"• Use metal artifact reduction sequences (MARS, SEMAC, MAVRIC)\n• T1: screw loosening = halo around pedicle screw",options:{color:"1A2B3C"}},
], { x: 5.1, y: 1.4, w: 4.5, h: 3.8, fontSize: 11, lineSpacingMultiple: 1.35 });
// SLIDE 14 - Key Takeaways
const last = prs.addSlide();
last.background = { color: NAVY };
last.addShape(prs.ShapeType.rect, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: CYAN } });
last.addShape(prs.ShapeType.rect, { x: 0.5, y: 1.55, w: 9.5, h: 0.06, fill: { color: AMBER } });
last.addText("Key Takeaways", { x: 0.7, y: 0.3, w: 9, h: 1.1, fontSize: 36, bold: true, color: WHITE });
last.addText([
{text:"1. Extrusion/sequestration: annulus disrupted; base < dome — requires urgent clinical correlation\n",options:{}},
{text:"2. Modic Type 1 (T1↓ / T2↑) mimics infection — use clinical + lab context to differentiate\n",options:{}},
{text:"3. Cord signal change: T2 only = reversible; T1 hypo = myelomalacia = irreversible damage\n",options:{}},
{text:"4. Spinal infection MRI: disc T2 bright + endplate T1 dark + enhancement = discitis/osteomyelitis\n",options:{}},
{text:"5. Post-op: early Gd enhancement = scar (no enhancement = residual disc fragment)\n",options:{}},
{text:"6. Intramedullary tumors: ependymoma (adult, central, cap sign) vs astrocytoma (child, eccentric)\n",options:{}},
{text:"7. Cauda equina syndrome: bilateral radiculopathy + sphincter dysfunction → EMERGENCY MRI",options:{}},
], { x: 0.7, y: 1.75, w: 9.0, h: 3.65, fontSize: 13, color: WHITE, lineSpacingMultiple: 1.45 });
prs.writeFile({ fileName: "/home/daytona/workspace/mri-radiology-teaching/04_Spine_MRI.pptx" })
.then(() => console.log("DONE: 04_Spine_MRI.pptx"))
.catch(err => console.error("ERROR:", err));
~/mri-radiology-teaching/05_MSK_Joint_MRI.js
const pptxgen = require("pptxgenjs");
const prs = new pptxgen();
prs.layout = "LAYOUT_16x9";
prs.title = "MSK & Joint MRI";
const NAVY="0D1B2A",WHITE="FFFFFF",CYAN="00B4D8",AMBER="F4A261",LIGHT_BG="F5F7FA",GREEN="2EC4B6",RED="E63946";
function cs(prs,title){const s=prs.addSlide();s.background={color:LIGHT_BG};s.addShape(prs.ShapeType.rect,{x:0,y:0,w:10,h:0.7,fill:{color:NAVY}});s.addText(title,{x:0.25,y:0,w:9.5,h:0.7,fontSize:21,bold:true,color:WHITE,valign:"middle"});s.addShape(prs.ShapeType.rect,{x:0,y:0.7,w:0.12,h:4.925,fill:{color:CYAN}});return s;}
const t=prs.addSlide();t.background={color:NAVY};
t.addShape(prs.ShapeType.rect,{x:0,y:0,w:0.5,h:5.625,fill:{color:CYAN}});
t.addShape(prs.ShapeType.rect,{x:0.5,y:2.9,w:9.5,h:0.07,fill:{color:AMBER}});
t.addText("MSK & Joint MRI",{x:0.8,y:0.9,w:8.8,h:1.6,fontSize:44,bold:true,color:WHITE});
t.addText("MRI Radiology Teaching Series — Module 5",{x:0.8,y:3.1,w:8.8,h:0.6,fontSize:18,color:CYAN});
t.addText("Knee • Shoulder • Hip • Ankle • Wrist • Bone Tumors",{x:0.8,y:3.8,w:8.8,h:0.5,fontSize:13,color:"8ECAE6"});
t.addText("Radiology Department | 2026",{x:0.8,y:4.7,w:8.8,h:0.4,fontSize:12,color:"4A7A9B"});
// Slide 2 TOC
const toc=cs(prs,"Table of Contents");
toc.addText([{text:"1. MSK MRI Protocol Overview",options:{breakLine:true}},{text:"2. Knee MRI — Meniscus",options:{breakLine:true}},{text:"3. Knee MRI — Ligaments & Cartilage",options:{breakLine:true}},{text:"4. Shoulder MRI — Rotator Cuff",options:{breakLine:true}},{text:"5. Shoulder MRI — Labrum",options:{breakLine:true}},{text:"6. Hip MRI — FAI & Labral Tears",options:{breakLine:true}},{text:"7. Hip MRI — AVN",options:{breakLine:true}},{text:"8. Ankle & Foot MRI",options:{breakLine:true}},{text:"9. Wrist MRI — TFCC & Scaphoid",options:{breakLine:true}},{text:"10. Bone Marrow & Soft Tissue Tumors",options:{breakLine:true}},{text:"11. Muscle Injuries",options:{breakLine:true}},{text:"12. Key Takeaways"}],{x:0.3,y:0.85,w:4.5,h:4.6,fontSize:11.5,color:"1A2B3C",lineSpacingMultiple:1.35});
toc.addShape(prs.ShapeType.rect,{x:5.1,y:0.85,w:4.6,h:4.6,fill:{color:NAVY}});
toc.addText("MSK MRI Protocols",{x:5.2,y:0.95,w:4.4,h:0.5,fontSize:14,bold:true,color:CYAN});
toc.addText("Standard Knee Protocol:\n• Sagittal PD fat-sat (meniscus/ligaments)\n• Coronal PD fat-sat (medial/lateral structures)\n• Axial PD fat-sat (patellofemoral)\n• Sagittal T1 (bone marrow)\n• Optional: 3D WATSc for cartilage\n\nMRI Arthrography (MR-A):\nDilute Gd intra-articular injection\n→ Best for labral tears (hip/shoulder)\n→ Improves labral detachment detection",{x:5.2,y:1.55,w:4.4,h:3.7,fontSize:11,color:WHITE,lineSpacingMultiple:1.35});
// Slide 3 - Meniscus
const s3=cs(prs,"Knee MRI — Meniscal Tears");
s3.addTable([
[{text:"Grade",options:{bold:true,fill:NAVY,color:WHITE}},{text:"MRI Finding",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Pathology",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Clinical",options:{bold:true,fill:NAVY,color:WHITE}}],
["Grade 1","Globular intrameniscal T2/PD signal, NOT reaching surface","Mucoid degeneration, intact","Asymptomatic, no surgery"],
["Grade 2","Linear intrameniscal signal, NOT reaching surface","Intrasubstance degeneration","Asymptomatic variant, conservative"],
["Grade 3","Signal reaching articular surface","True tear — surgical significance","Meniscectomy / repair"],
["Complex","Multiple orientations, fragmented","Maceration","Partial/total meniscectomy"],
],[{x:0.25,y:0.85,w:9.5,h:2.1,colW:[1.1,3.0,2.8,2.6],rowH:[0.4,0.45,0.45,0.45,0.45],border:{pt:0.5,color:"D0D8E4"},fontSize:10.5,color:"1A2B3C",autoPage:false}]);
s3.addText("Tear Patterns",{x:0.25,y:3.05,w:4.5,h:0.4,fontSize:13,bold:true,color:NAVY});
s3.addText("• Vertical longitudinal (bucket-handle): flipped fragment in intercondylar notch\n• Horizontal (cleavage): older patients, degenerative\n• Radial: perpendicular to long axis; disrupts circumferential fibers\n• Root tear: posterior horn insertion; key on coronal MRI\n• Oblique (flap/parrot beak): combination",{x:0.25,y:3.5,w:4.5,h:1.85,fontSize:11,color:"1A2B3C",lineSpacingMultiple:1.35});
s3.addShape(prs.ShapeType.rect,{x:5.0,y:3.0,w:4.7,h:2.35,fill:{color:NAVY}});
s3.addText("Bucket-Handle Tear Signs",{x:5.1,y:3.08,w:4.5,h:0.4,fontSize:13,bold:true,color:CYAN});
s3.addText("• Double PCL sign: flipped fragment anterior to PCL on sagittal\n• Fragment in intercondylar notch on coronal\n• Absent bow-tie (only 1 bow-tie on sagittal instead of 2)\n• Truncated 'blunted' posterior horn on sagittal",{x:5.1,y:3.55,w:4.5,h:1.65,fontSize:11,color:WHITE,lineSpacingMultiple:1.35});
// Slide 4 - Ligaments & Cartilage
const s4=cs(prs,"Knee MRI — Ligaments & Cartilage");
s4.addShape(prs.ShapeType.rect,{x:0.25,y:0.82,w:4.5,h:4.55,fill:{color:NAVY}});
s4.addText("ACL Tear MRI Signs",{x:0.35,y:0.92,w:4.3,h:0.4,fontSize:14,bold:true,color:CYAN});
s4.addText("Primary Signs:\n• Non-visualization / disrupted ACL fibers\n• Abnormal ACL orientation (>45° = lax/torn)\n• Wavy, irregular ACL signal on sagittal PD\n\nSecondary Signs (bone bruise pattern):\n• Lateral femoral condyle posterolateral bruise\n• Posterior tibial plateau anterolateral bruise\n• 'Kissing contusions' — pivot-shift mechanism\n\nAssociated Injuries:\n• PCL laxity/avulsion (posterior capsule)\n• Lateral compartment bone bruise\n• Medial meniscus tears (O'Donoghue triad)\n• MCL sprain (medial collateral)\n• Segond fracture (avulsion lateral tibial plateau)",{x:0.35,y:1.4,w:4.3,h:3.8,fontSize:10.5,color:WHITE,lineSpacingMultiple:1.35});
s4.addShape(prs.ShapeType.rect,{x:5.0,y:0.82,w:4.7,h:4.55,fill:{color:LIGHT_BG},line:{color:NAVY,width:1}});
s4.addText("Cartilage — ICRS Grading",{x:5.1,y:0.9,w:4.5,h:0.4,fontSize:13,bold:true,color:NAVY});
s4.addTable([
[{text:"Grade",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Description",options:{bold:true,fill:NAVY,color:WHITE}},{text:"MRI Finding",options:{bold:true,fill:NAVY,color:WHITE}}],
["0 — Normal","Intact","Normal cartilage"],
["1 — Softening","Superficial defect <50% depth","T2 bright zone in cartilage"],
["2 — Partial","Defect 50–75% depth","Focal thinning, surface irregularity"],
["3 — Deep","Defect >75% depth","Near full-thickness loss"],
["4 — Full-thickness","Down to bone","Exposed subchondral bone, bone edema"],
],[{x:5.1,y:1.35,w:4.5,h:2.2,colW:[1.4,1.5,1.6],rowH:[0.38,0.38,0.38,0.38,0.38,0.38],border:{pt:0.5,color:"D0D8E4"},fontSize:10,color:"1A2B3C",autoPage:false}]);
s4.addText("Best Cartilage Sequences:\n• 3D GRE (VIBE/DESS/WATSc) — isotropic 1mm\n• dGEMRIC: delayed Gd-enhanced — proteoglycan mapping\n• T2 mapping: collagen integrity, early OA detection\n• T1-rho: early degeneration before structural loss",{x:5.1,y:3.65,w:4.5,h:1.65,fontSize:11,color:"1A2B3C",lineSpacingMultiple:1.35});
// Slide 5 - Rotator Cuff
const s5=cs(prs,"Shoulder MRI — Rotator Cuff Tears");
s5.addTable([
[{text:"Tear Type",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Definition",options:{bold:true,fill:NAVY,color:WHITE}},{text:"MRI Finding",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Management",options:{bold:true,fill:NAVY,color:WHITE}}],
["Partial Articular (PASTA)","<50% thickness, articular surface","T2 bright focal defect, articular side","Conservative/arthroscopic debridement"],
["Partial Bursal","Bursal surface involvement","T2 bright, bursal side","Conservative"],
["Full Thickness","Complete tendon discontinuity","Fluid gap through tendon on coronal PD","Surgical repair"],
["Massive Tear","≥2 tendons torn","Large fluid-filled defect, retraction, atrophy","Complex repair / tendon transfer"],
],[{x:0.25,y:0.82,w:9.5,h:2.1,colW:[2.0,2.5,2.7,2.3],rowH:[0.42,0.48,0.42,0.42,0.42],border:{pt:0.5,color:"D0D8E4"},fontSize:10.5,color:"1A2B3C",autoPage:false}]);
s5.addShape(prs.ShapeType.rect,{x:0.25,y:3.05,w:4.5,h:2.3,fill:{color:NAVY}});
s5.addText("Supraspinatus Tear Assessment",{x:0.35,y:3.13,w:4.3,h:0.4,fontSize:12,bold:true,color:CYAN});
s5.addText("• Coronal PD fat-sat: primary plane\n• Gap in tendon substance = full-thickness\n• Retraction: measured from footprint to torn end\n• Critical zone: 1cm from insertion (avascular)\n• Fatty infiltration: Goutallier grade 0–4 (MRI equivalent)\n• Grade 3–4: poor surgical outcome",{x:0.35,y:3.6,w:4.3,h:1.6,fontSize:11,color:WHITE,lineSpacingMultiple:1.35});
s5.addShape(prs.ShapeType.rect,{x:5.0,y:3.05,w:4.7,h:2.3,fill:{color:LIGHT_BG},line:{color:CYAN,width:1}});
s5.addText("Rotator Cuff Muscles",{x:5.1,y:3.13,w:4.5,h:0.4,fontSize:12,bold:true,color:NAVY});
s5.addText("SItS — Supraspinatus, Infraspinatus, teres minor, Subscapularis\n\n• Supraspinatus: abduction (most commonly torn)\n• Infraspinatus: external rotation (posterior tears)\n• Subscapularis: internal rotation; tear = Lesser tuberosity avulsion, biceps instability\n• Teres minor: least commonly torn",{x:5.1,y:3.6,w:4.5,h:1.6,fontSize:11,color:"1A2B3C",lineSpacingMultiple:1.35});
// Slide 6 - Shoulder Labrum
const s6=cs(prs,"Shoulder MRI — Labral Tears (SLAP & Bankart)");
s6.addShape(prs.ShapeType.rect,{x:0.25,y:0.82,w:4.5,h:4.55,fill:{color:LIGHT_BG},line:{color:NAVY,width:1}});
s6.addText("SLAP Lesions (Superior Labrum Anterior-Posterior)",{x:0.35,y:0.9,w:4.3,h:0.5,fontSize:12,bold:true,color:NAVY});
s6.addTable([
[{text:"Type",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Description",options:{bold:true,fill:NAVY,color:WHITE}}],
["I","Fraying of superior labrum, intact biceps anchor"],
["II (Most common)","Detachment of superior labrum + biceps anchor"],
["III","Bucket-handle superior labrum tear, biceps intact"],
["IV","Bucket-handle + biceps tendon involvement"],
],[{x:0.35,y:1.45,w:4.3,h:1.8,colW:[0.7,3.6],rowH:[0.38,0.42,0.42,0.42,0.42],border:{pt:0.5,color:"D0D8E4"},fontSize:10.5,color:"1A2B3C",autoPage:false}]);
s6.addText("MRI-Arthrography (MR-A):\n• Best for labral pathology\n• Intra-articular Gd distends capsule\n• SLAP II: contrast undermining superior labrum\n• Pitfall: sublabral recess (normal variant at 11-1 o'clock)",{x:0.35,y:3.35,w:4.3,h:1.9,fontSize:11,color:"1A2B3C",lineSpacingMultiple:1.35});
s6.addShape(prs.ShapeType.rect,{x:5.0,y:0.82,w:4.7,h:4.55,fill:{color:NAVY}});
s6.addText("Bankart Lesions (Anterior Instability)",{x:5.1,y:0.92,w:4.5,h:0.4,fontSize:13,bold:true,color:CYAN});
s6.addText([
{text:"Classic Bankart:\n",options:{bold:true,color:AMBER}},
{text:"Avulsion of anterior-inferior labrum from glenoid rim\nMRI: detached/absent anterior-inferior labrum, J-sign\nAssociated: anterior capsular laxity, Hill-Sachs (posterior humeral head impression)\n\n",options:{color:WHITE}},
{text:"Bony Bankart:\n",options:{bold:true,color:AMBER}},
{text:"Glenoid rim fracture + labral detachment\nCT more sensitive for bone loss\n\n",options:{color:WHITE}},
{text:"Hill-Sachs Lesion:\n",options:{bold:true,color:CYAN}},
{text:"Posterolateral humeral head impaction fracture\nGolf-club deformity on axial imaging\nEngaging vs non-engaging — surgical significance",options:{color:WHITE}},
],{x:5.1,y:1.4,w:4.5,h:3.8,fontSize:11,lineSpacingMultiple:1.35});
// Slide 7 - Hip MRI
const s7=cs(prs,"Hip MRI — FAI, Labral Tears & AVN");
s7.addShape(prs.ShapeType.rect,{x:0.25,y:0.82,w:4.5,h:4.55,fill:{color:NAVY}});
s7.addText("Femoroacetabular Impingement (FAI)",{x:0.35,y:0.92,w:4.3,h:0.45,fontSize:13,bold:true,color:CYAN});
s7.addText([
{text:"Cam-type FAI:\n",options:{bold:true,color:AMBER}},
{text:"• Abnormal femoral head-neck junction\n• Alpha angle >55° on radial MRI\n• Asphericity of femoral head\n• Labral tear: anterosuperior labrum\n\n",options:{color:WHITE}},
{text:"Pincer-type FAI:\n",options:{bold:true,color:AMBER}},
{text:"• Overcoverage of acetabulum\n• Coxa profunda / protrusio acetabuli\n• Lateral CEA >40° (normal 25–35°)\n• Labral crush + ossification\n\n",options:{color:WHITE}},
{text:"MR Arthrography (1.5ml Gd dilute):\n",options:{bold:true,color:CYAN}},
{text:"Best for labral tears — 87% sensitivity\nRadial imaging: 12 orientations around femoral neck",options:{color:WHITE}},
],{x:0.35,y:1.45,w:4.3,h:3.8,fontSize:11,lineSpacingMultiple:1.35});
s7.addShape(prs.ShapeType.rect,{x:5.0,y:0.82,w:4.7,h:4.55,fill:{color:LIGHT_BG},line:{color:NAVY,width:1}});
s7.addText("Avascular Necrosis (AVN) — Ficat Staging",{x:5.1,y:0.9,w:4.5,h:0.45,fontSize:13,bold:true,color:NAVY});
s7.addTable([
[{text:"Stage",options:{bold:true,fill:NAVY,color:WHITE}},{text:"MRI",options:{bold:true,fill:NAVY,color:WHITE}},{text:"X-Ray",options:{bold:true,fill:NAVY,color:WHITE}}],
["0","Normal or subtle marrow edema","Normal"],
["I","T1 dark band / T2 double line (pathognomonic)","Normal"],
["II","Sclerosis/cystic, no collapse","Sclerosis/cysts"],
["III","Subchondral fracture (crescent sign)","Crescent on X-ray"],
["IV","Articular collapse, secondary OA","Collapse, OA"],
],[{x:5.1,y:1.4,w:4.5,h:2.2,colW:[0.9,2.3,1.3],rowH:[0.38,0.38,0.38,0.38,0.38,0.38],border:{pt:0.5,color:"D0D8E4"},fontSize:10.5,color:"1A2B3C",autoPage:false}]);
s7.addText("Double Line Sign (AVN):\nOuter low T2 signal (sclerosis) + inner high T2 signal (granulation tissue/hyperemia)\nPathognomonic for AVN on MRI\n\nRisk Factors: Steroids, alcohol, trauma, sickle cell, Gaucher's, diving (dysbarism), HIV therapy",{x:5.1,y:3.7,w:4.5,h:1.55,fontSize:11,color:"1A2B3C",lineSpacingMultiple:1.35});
// Slide 8 - Ankle & Foot
const s8=cs(prs,"Ankle & Foot MRI — Tendons & Ligaments");
s8.addTable([
[{text:"Structure",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Normal MRI",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Pathology",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Key Features",options:{bold:true,fill:NAVY,color:WHITE}}],
["Achilles tendon","Dark T1/T2, 6mm","Tendinopathy → T2 bright intratendinous","Critical zone 2-6cm above insertion; partial vs complete tear"],
["Posterior tibial (PT)","Dark, posteromedial","PT tendinopathy / tear — flatfoot","Type I: partial; II: longitudinal split; III: complete"],
["Peroneal tendons","Dark, lateral ankle","Peroneal split tear; subluxation","SPR injury; os peroneum fracture"],
["Anterior talofibular (ATFL)","Thin band, anterolateral","Sprain vs complete tear","Most commonly injured ankle ligament (inversion)"],
["Spring ligament","Medial arch support","Tear → acquired flatfoot deformity","Associated with PT tendon tears"],
["Plantar fascia","Thick band at calcaneus","Plantar fasciitis: T2 bright thickening",">4mm at origin; T2 edema at calcaneal insertion"],
],[{x:0.25,y:0.82,w:9.5,h:4.6,colW:[2.0,1.9,2.4,3.2],rowH:[0.42,0.52,0.52,0.52,0.42,0.52,0.52],border:{pt:0.5,color:"D0D8E4"},fontSize:10,color:"1A2B3C",autoPage:false}]);
// Slide 9 - Wrist
const s9=cs(prs,"Wrist MRI — TFCC & Scaphoid");
s9.addShape(prs.ShapeType.rect,{x:0.25,y:0.82,w:4.5,h:4.55,fill:{color:NAVY}});
s9.addText("TFCC — Triangular Fibrocartilage Complex",{x:0.35,y:0.92,w:4.3,h:0.45,fontSize:13,bold:true,color:CYAN});
s9.addText("Components:\n• Articular disc (central)\n• Dorsal & volar radioulnar ligaments\n• Ulnocarpal ligaments (meniscus homolog)\n• Extensor carpi ulnaris tendon sheath\n\nPalmer Classification:\nType 1 Traumatic: 1A (central disc), 1B (ulnar avulsion — most common), 1C (distal avulsion), 1D (radial avulsion)\nType 2 Degenerative: 2A–2E (progressive ulnar impaction)\n\nMRI: 3T preferred; 3D PD fat-sat; 1mm coronal\nTear: T2 bright defect in disc; fluid through disc on MR-A",{x:0.35,y:1.45,w:4.3,h:3.8,fontSize:11,color:WHITE,lineSpacingMultiple:1.35});
s9.addShape(prs.ShapeType.rect,{x:5.0,y:0.82,w:4.7,h:4.55,fill:{color:LIGHT_BG},line:{color:CYAN,width:1}});
s9.addText("Scaphoid Fractures on MRI",{x:5.1,y:0.9,w:4.5,h:0.4,fontSize:13,bold:true,color:NAVY});
s9.addText([
{text:"Why MRI?\n",options:{bold:true,color:NAVY}},
{text:"X-ray: 20% false negative for occult fractures\nMRI: 100% sensitivity at 24-48h post-injury\n\n",options:{color:"1A2B3C"}},
{text:"MRI Findings:\n",options:{bold:true,color:NAVY}},
{text:"• T1: linear hypointense fracture line\n• STIR/T2 fat-sat: bone marrow edema (bright)\n• Identify incomplete vs complete fracture\n• Assess for AVN: proximal pole T1 signal\n\n",options:{color:"1A2B3C"}},
{text:"AVN of Scaphoid:\n",options:{bold:true,color:RED}},
{text:"• Proximal pole T1 hypointense (absent marrow fat signal)\n• Poor blood supply from distal to proximal\n• Occurs in 30-40% of untreated fractures",options:{color:"1A2B3C"}},
],{x:5.1,y:1.4,w:4.5,h:3.8,fontSize:11,lineSpacingMultiple:1.35});
// Slide 10 - Bone & Soft Tissue Tumors
const s10=cs(prs,"Bone Marrow, Soft Tissue & Bone Tumors on MRI");
s10.addTable([
[{text:"Feature",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Benign",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Malignant",options:{bold:true,fill:NAVY,color:WHITE}}],
["Margins","Well-defined, sclerotic rim","Ill-defined, permeative"],
["T2 signal","Bright (lipoma, cyst, hemangioma)","Heterogeneous intermediate"],
["Peritumoral edema","Absent or minimal","Present and extensive"],
["Enhancement pattern","None or peripheral (cyst)","Avid, heterogeneous, nodular"],
["Size","<5cm usually benign",">5cm, deep to fascia = suspicious"],
["Cortical involvement","None","Cortical destruction, periosteal reaction"],
["Bone marrow","Normal adjacent marrow","T1 dark replacement, STIR bright"],
],[{x:0.25,y:0.82,w:9.5,h:3.6,colW:[2.5,3.4,3.6],rowH:[0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42],border:{pt:0.5,color:"D0D8E4"},fontSize:10.5,color:"1A2B3C",autoPage:false}]);
s10.addShape(prs.ShapeType.rect,{x:0.25,y:4.52,w:4.5,h:0.82,fill:{color:CYAN}});
s10.addText("Lipoma: T1 bright, follows fat on all sequences, loss of signal on fat-sat — no enhancement (benign)",{x:0.3,y:4.55,w:4.4,h:0.76,fontSize:10.5,color:NAVY,bold:true});
s10.addShape(prs.ShapeType.rect,{x:5.0,y:4.52,w:4.7,h:0.82,fill:{color:RED}});
s10.addText("Rule: Deep, >5cm, intermediate T2, heterogeneous enhancement → BIOPSY (MRI-guided or US-guided)",{x:5.05,y:4.55,w:4.6,h:0.76,fontSize:10.5,color:WHITE,bold:true});
// Slide 11 - Muscle Injuries
const s11=cs(prs,"Muscle Injuries — MRI Grading & Classification");
s11.addTable([
[{text:"Grade",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Severity",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T2/STIR MRI",options:{bold:true,fill:NAVY,color:WHITE}},{text:"T1 MRI",options:{bold:true,fill:NAVY,color:WHITE}},{text:"Return to Play",options:{bold:true,fill:NAVY,color:WHITE}}],
["Grade 0","Normal (neural — not MRI visible)","Normal","Normal","Variable"],
["Grade 1 (Mild)","Micro-tears, <10% fibers","T2 bright edema, feathery pattern","Normal","Days–2 weeks"],
["Grade 2 (Moderate)","Partial tear (10–50%)","T2 bright + fluid gap partial","T1 normal","3–6 weeks"],
["Grade 3 (Severe)","Partial tear (>50%)","Extensive fluid + hematoma","T1 dark (hematoma)","6–12 weeks"],
["Grade 4 (Complete)","Complete rupture","Full muscle discontinuity","Retracted muscle belly","Surgery/months"],
],[{x:0.25,y:0.82,w:9.5,h:2.7,colW:[1.4,2.0,2.5,1.7,1.9],rowH:[0.42,0.42,0.42,0.42,0.42,0.42],border:{pt:0.5,color:"D0D8E4"},fontSize:10.5,color:"1A2B3C",autoPage:false}]);
s11.addShape(prs.ShapeType.rect,{x:0.25,y:3.65,w:9.5,h:1.7,fill:{color:NAVY}});
s11.addText("Important Muscle Injury Patterns",{x:0.35,y:3.73,w:9.3,h:0.4,fontSize:13,bold:true,color:CYAN});
s11.addText("• Proximal hamstring avulsion: complete avulsion from ischial tuberosity — T2 bright hematoma at ischium\n• Myositis ossificans: T1 bright peripheral rim 4-6 weeks (maturing ossification); NOT to be confused with sarcoma\n• Compartment syndrome: post-injury compartment diffusely T2 bright, muscular swelling; clinical correlation essential\n• Denervation oedema: increased T2 signal in muscle supplied by compressed nerve — helps localise compression level",{x:0.35,y:4.2,w:9.3,h:1.05,fontSize:10.5,color:WHITE,lineSpacingMultiple:1.3});
// Slide 12 - Key Takeaways
const last=prs.addSlide();
last.background={color:NAVY};
last.addShape(prs.ShapeType.rect,{x:0,y:0,w:0.5,h:5.625,fill:{color:CYAN}});
last.addShape(prs.ShapeType.rect,{x:0.5,y:1.55,w:9.5,h:0.06,fill:{color:AMBER}});
last.addText("Key Takeaways",{x:0.7,y:0.3,w:9,h:1.1,fontSize:36,bold:true,color:WHITE});
last.addText([
{text:"1. Meniscal Grade 3 signal (reaching surface) = true tear; Grades 1–2 are intrasubstance and NOT surgically significant\n",options:{}},
{text:"2. ACL tear: look for pivot-shift bone bruise pattern — lateral femoral condyle + posterolateral tibial plateau\n",options:{}},
{text:"3. AVN hip: Double-line sign on T2 is pathognomonic; T1 dark proximal pole scaphoid = proximal AVN\n",options:{}},
{text:"4. Cam FAI: alpha angle >55° + anterosuperior labral tear on radial MR arthrography\n",options:{}},
{text:"5. Soft tissue rule: deep location + >5cm + intermediate T2 = assume malignant until proven otherwise\n",options:{}},
{text:"6. Muscle injury: feathery T2 edema = Grade 1; fluid gap = Grade 2+; retraction = complete rupture\n",options:{}},
{text:"7. Post-op MRI: use MARS (metal artifact reduction) sequences for implant assessment",options:{}},
],{x:0.7,y:1.75,w:9.0,h:3.65,fontSize:13,color:WHITE,lineSpacingMultiple:1.45});
prs.writeFile({fileName:"/home/daytona/workspace/mri-radiology-teaching/05_MSK_Joint_MRI.pptx"})
.then(()=>console.log("DONE: 05_MSK_Joint_MRI.pptx"))
.catch(err=>console.error("ERROR:",err));