Make ppt of MRI knee joint anatomy detailed with images
MRI knee joint anatomy sagittal coronal axial
knee MRI meniscus ligament anatomy labeled structures
knee MRI cartilage patella cruciate ligament normal anatomy
Create a detailed PowerPoint presentation on "MRI Knee Joint Anatomy" using Python (python-pptx library). Save the file to /home/daytona/MRI_Knee_Joint_Anatomy.pptx The presentation should have the following slides with professional medical design (dark navy/blue theme, white text, professional fonts): SLIDE 1 - TITLE SLIDE Title: "MRI Knee Joint Anatomy" Subtitle: "A Comprehensive Radiological Guide" Include a subtitle line: "Sagittal • Coronal • Axial Planes" Background color: Dark navy (#0D1B2A) Title text color: White Accent color: Cyan/teal (#00B4D8) SLIDE 2 - INTRODUCTION TO KNEE MRI Title: "Introduction to Knee MRI" Bullet points: • MRI is the gold standard for soft tissue evaluation of the knee • Superior contrast resolution for cartilage, ligaments, menisci, and tendons • No ionizing radiation — safe for repeated studies • Standard protocol: T1W, T2W, PD-FS, STIR sequences • Three standard imaging planes: Sagittal, Coronal, Axial Include an image from URL: https://cdn.orris.care/cdss_images/pmc_clinical_VQA_7d66a07c9ef7548f5027bd3c5a8422e44d66574d1a747d0b1e3d7c4b02f89fc9.jpg (Place image on right side of slide) Image caption: "Multi-plane MRI: Sagittal, Coronal & Axial views" SLIDE 3 - OSSEOUS STRUCTURES Title: "Osseous Structures on MRI" Bullet points: • Distal Femur: Medial & lateral condyles; intercondylar notch • Proximal Tibia: Medial & lateral plateaus; tibial spines • Patella: Sesamoid bone in quadriceps tendon; medial & lateral facets • Fibula: Proximal fibula visible in coronal views • Cortical bone: Low signal (dark) on all sequences • Medullary cavity: High signal on T1W (fat); variable on T2W • Articular cartilage: Intermediate-high signal on PD-FS (1.5–4 mm thick) Include an image from URL: https://cdn.orris.care/cdss_images/pmc_clinical_VQA_23ae367efae8d8321a32f1b546f2566fa3b56e8b95a7619e97f62c027cfddc45.jpg (Place image on right side) Image caption: "Sagittal MRI — normal osseous anatomy" SLIDE 4 - MENISCI Title: "Menisci" Bullet points: • Two C-shaped fibrocartilaginous discs: medial & lateral • Medial meniscus: Larger, C-shaped; more fixed (more injuries) • Lateral meniscus: Smaller, more circular; greater mobility • Normal MRI signal: Uniformly low (dark/black) on all sequences • Each meniscus has: Anterior horn, Body, Posterior horn • Posterior horn of medial meniscus is most commonly injured • Grading: Grade 1 (intrameniscal signal), Grade 2 (linear, non-articular), Grade 3 (articular surface tear) • Blood supply: Peripheral red-red zone (vascular), central white-white zone (avascular) Include an image from URL: https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3986b7994efcdbcf9e20f6f6b71ca0aecc9a515d79da246e4ba16c2c2f42e5c6.jpg (Place image on right side) Image caption: "Meniscal zones: Red-Red, Red-White, White-White" SLIDE 5 - CRUCIATE LIGAMENTS Title: "Cruciate Ligaments" Left column (ACL): • Anterior Cruciate Ligament (ACL) • Origin: Posteromedial lateral femoral condyle • Insertion: Anterior intercondylar area of tibia • Function: Resists anterior tibial translation & internal rotation • MRI: Best seen on sagittal plane; low signal band at 45° • Two bundles: Anteromedial (AM) & Posterolateral (PL) Right column (PCL): • Posterior Cruciate Ligament (PCL) • Origin: Anterolateral medial femoral condyle • Insertion: Posterior intercondylar area of tibia • Function: Resists posterior tibial translation • MRI: Continuous low-signal curved band on sagittal view • Stronger than ACL (twice the tensile strength) Include an image from URL: https://cdn.orris.care/cdss_images/roco_radiology_ROCO_68412_1766649854466.png (Place image on right side) Image caption: "Sagittal MRI — ACL & PCL normal anatomy" SLIDE 6 - COLLATERAL LIGAMENTS Title: "Collateral Ligaments" Bullet points: • Medial Collateral Ligament (MCL): - Superficial layer: Femur to tibia (most important) - Deep layer (capsular): Meniscofemoral & meniscotibial ligaments - Function: Resists valgus stress - MRI: Low-signal band on coronal images • Lateral Collateral Ligament (LCL) / Fibular Collateral Ligament: - Cord-like structure from lateral femoral condyle to fibular head - Function: Resists varus stress - MRI: Thin, low-signal structure on coronal images • Posterolateral Corner (PLC): LCL + popliteus tendon + popliteofibular ligament Include an image from URL: https://cdn.orris.care/cdss_images/pmc_clinical_VQA_a8f0f7d09cb735b694ec49b64440b99ecaf2be28729ce863028b4fd92a611b38.jpg (Place image on right side) Image caption: "Coronal PD MRI — medial collateral & meniscocapsular ligaments" SLIDE 7 - EXTENSOR MECHANISM & TENDONS Title: "Extensor Mechanism & Tendons" Bullet points: • Quadriceps Tendon: - Multi-layered; inserts into superior pole of patella - Low signal on all sequences; thickness ~5–8 mm • Patellar Tendon / Ligament: - Inferior pole of patella → tibial tuberosity - Uniformly low signal; thickness ~4–6 mm - Best seen on sagittal images • Iliotibial Band (ITB): - Thickening of fascia lata; lateral stabilizer - Inserts onto Gerdy's tubercle • Popliteus Tendon: - Intra-articular; lateral femoral condyle → posterior tibia - Part of posterolateral corner Include an image from URL: https://cdn.orris.care/cdss_images/pmc_clinical_VQA_955be6241a5eb802138bd71a9fa1bc7bd32ff4025397ed7941a833238472fc66.jpg (Place image on right side) Image caption: "Axial & sagittal PD-FS MRI — patellar & extensor mechanism" SLIDE 8 - BURSAE & FAT PADS Title: "Bursae & Fat Pads" Bullet points: Bursae: • Suprapatellar bursa: Extension of joint cavity; anterior to distal femur • Prepatellar bursa: Anterior to patella (housemaid's knee) • Infrapatellar bursa: Deep (intra-articular) & superficial (subcutaneous) • Pes anserine bursa: Medial, deep to pes anserine tendons • Baker's cyst (popliteal cyst): Between medial gastrocnemius & semimembranosus Fat Pads: • Hoffa's infrapatellar fat pad: Posterior to patellar tendon; hyperintense on T1/T2 • Prefemoral fat pad: Anterior to distal femur • Suprapatellar fat pad: Posterior to quadriceps tendon • Clinical significance: Impingement syndromes affect fat pads SLIDE 9 - MRI SEQUENCES & SIGNAL CHARACTERISTICS Title: "MRI Sequences & Signal Characteristics" Create a table with 4 columns: Structure | T1W | T2W | PD-FS Rows: Cortical bone | Dark | Dark | Dark Medullary fat | Bright | Intermediate | Dark (suppressed) Hyaline cartilage | Intermediate | Intermediate-high | Bright Ligaments/Tendons | Dark | Dark | Dark Menisci (normal) | Dark | Dark | Dark Joint fluid/Effusion | Dark | Bright | Bright Acute hemorrhage | Intermediate | Bright | Bright Muscle | Intermediate | Intermediate | Intermediate Include an image from URL: https://cdn.orris.care/cdss_images/pmc_clinical_VQA_8d657d8e21b8af85d10f103f2467f6cb883a55572e888d75004aa42e133e0dbe.jpg (Place image below the table or to the right) Image caption: "Multi-sequence MRI knee — axial, coronal, sagittal planes" SLIDE 10 - IMAGING PLANES: WHAT EACH SHOWS Title: "Imaging Planes: What Each Shows" Three columns: SAGITTAL: • ACL & PCL integrity • Meniscal horns (anterior/posterior) • Cartilage thickness (femoral & tibial) • Hoffa's fat pad • Patellar & quadriceps tendons • Bone contusions CORONAL: • Collateral ligaments (MCL/LCL) • Meniscal body • Tibial plateau assessment • Posterolateral corner structures • Articular cartilage — weight-bearing surface • Subchondral bone edema AXIAL: • Patellofemoral joint tracking • Lateral retinaculum & medial patellofemoral ligament • Patellar tilt & subluxation • Meniscal roots • Transverse (intermeniscal) ligament • Popliteal vessels & Baker's cyst SLIDE 11 - ARTICULAR CARTILAGE Title: "Articular Cartilage" Bullet points: • Hyaline cartilage covers all articular surfaces • Thickness: Femoral condyle 2–4 mm; Tibial plateau 2–3 mm; Patella up to 6 mm (thickest) • MRI appearance: Intermediate signal T1W; bright signal PD-FS • Cartilage zones (deep to superficial): Calcified zone → Radial → Transitional → Superficial • ICRS Grading on MRI: Grade 0: Normal Grade 1: Signal change, surface intact Grade 2: <50% thickness loss Grade 3: >50% thickness loss Grade 4: Full-thickness defect (bone exposed) • Best sequences: 3D GRE, PD-FS, dGEMRIC, T2 mapping SLIDE 12 - CLINICAL PEARLS & KEY POINTS Title: "Clinical Pearls & Key Points" Bullet points: • ACL best evaluated on sagittal images; fibers at ~45° to tibial plateau • PCL is a reliable "no-tear" landmark — buckling = ACL tear • Bucket-handle meniscal tear: "Double PCL sign" on sagittal MRI • Medial meniscus posterior horn: Most common site of degenerative tear • Bone bruise pattern after ACL tear: Lateral femoral condyle + posterolateral tibia • MCL tears: Coronal images; edema deep to MCL = grade 1; fiber disruption = grade 3 • Segond fracture (lateral capsule avulsion) = pathognomonic for ACL tear • Hoffa's fat pad bright on PD-FS = impingement syndrome • Normal meniscal variants: Discoid lateral meniscus (more common in Asians) • MRI protocol: 3T preferred; slice thickness ≤3 mm for ligaments SLIDE 13 - SUMMARY Title: "Summary" Bullet points: • MRI is the modality of choice for knee soft tissue anatomy • Key structures: Menisci, ACL/PCL, MCL/LCL, articular cartilage, bursae • Three planes (sagittal, coronal, axial) are complementary — never interpret a single plane alone • Sequence selection tailored to clinical question • Normal MRI anatomy knowledge is prerequisite for pathology recognition • Systematic approach: Bones → Cartilage → Menisci → Ligaments → Tendons → Bursa → Soft tissues Add a final line: "Thank You" Subtitle: "Questions?" Include an image from URL: https://cdn.orris.care/cdss_images/BAILY_1760541033912_7b187248-9ac6-43bc-b1e3-cb9b69fb20b9.png (Place image on right side) Image caption: "Knee joint: Bones, ligaments & menisci" --- DESIGN INSTRUCTIONS: - Use python-pptx - Slide size: 13.33 x 7.5 inches (widescreen 16:9) - Theme: Dark medical/professional - Background: #0D1B2A (very dark navy) - Title text: White (#FFFFFF) - Body text: Light gray (#E0E0E0) - Accent/highlight color: Cyan (#00B4D8) - Table header: #00B4D8 background with white text - Table body rows: alternating #1A2B3C and #152236 - Font: Calibri or Arial - Title font size: 36pt bold - Body text: 14-16pt - For slides with images: text occupies left 55% of slide, image occupies right 40% - Add slide numbers at bottom right - For the title slide: center everything, large title 48pt DOWNLOAD IMAGES: For each image URL, use requests.get() to download the image bytes, save to a temporary file (use tempfile or /tmp/), then use pptx to add the picture from that file path. Handle any download errors gracefully (skip image if download fails). IMPORTANT: Use proper error handling. If a package is missing, install it with pip first. Save the final file to /home/daytona/MRI_Knee_Joint_Anatomy.pptx Return: The absolute path to the saved file and confirmation that it was created successfully.
/home/daytona/build_knee_ppt.py
#!/usr/bin/env python3
import subprocess, sys
# Install dependencies
subprocess.run([sys.executable, "-m", "pip", "install", "python-pptx", "requests", "-q"], check=True)
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.util import Inches, Pt
import requests, tempfile, os
# ── Colours ────────────────────────────────────────────────────────────────
BG = RGBColor(0x0D, 0x1B, 0x2A)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
CYAN = RGBColor(0x00, 0xB4, 0xD8)
LIGHTGRAY = RGBColor(0xE0, 0xE0, 0xE0)
DARKROW = RGBColor(0x15, 0x22, 0x36)
MIDROW = RGBColor(0x1A, 0x2B, 0x3C)
TEAL_HDR = RGBColor(0x00, 0x7A, 0x9E)
ACCENT = RGBColor(0x00, 0xB4, 0xD8)
W = Inches(13.33)
H = Inches(7.5)
# ── Helper: download image to tmp file ─────────────────────────────────────
def dl(url):
try:
r = requests.get(url, timeout=15)
r.raise_for_status()
ext = ".jpg" if url.endswith(".jpg") else ".png"
tmp = tempfile.NamedTemporaryFile(suffix=ext, delete=False)
tmp.write(r.content); tmp.close()
return tmp.name
except Exception as e:
print(f" [WARN] Could not download {url}: {e}")
return None
# ── Helper: set slide background ───────────────────────────────────────────
def set_bg(slide, color):
from pptx.oxml.ns import qn
from lxml import etree
fill = slide.background.fill
fill.solid()
fill.fore_color.rgb = color
# ── Helper: add text box ────────────────────────────────────────────────────
def txbox(slide, text, l, t, w, h, size=14, bold=False, color=LIGHTGRAY, align=PP_ALIGN.LEFT, italic=False):
tb = slide.shapes.add_textbox(l, t, w, h)
tf = tb.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.size = Pt(size)
run.font.bold = bold
run.font.italic = italic
run.font.color.rgb = color
return tb
# ── Helper: add title bar ──────────────────────────────────────────────────
def add_title_bar(slide, title_text):
# Coloured accent bar at top
bar = slide.shapes.add_shape(
1, # MSO_SHAPE_TYPE.RECTANGLE
Inches(0), Inches(0), W, Inches(1.1)
)
bar.fill.solid(); bar.fill.fore_color.rgb = RGBColor(0x00, 0x4E, 0x70)
bar.line.fill.background()
# Cyan accent line
line = slide.shapes.add_shape(1, Inches(0), Inches(1.05), W, Inches(0.06))
line.fill.solid(); line.fill.fore_color.rgb = CYAN
line.line.fill.background()
txbox(slide, title_text, Inches(0.3), Inches(0.08), Inches(12.5), Inches(0.95),
size=32, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
# ── Helper: add image with caption ────────────────────────────────────────
def add_image(slide, url, l, t, w, h, caption=""):
path = dl(url)
if path:
try:
slide.shapes.add_picture(path, l, t, w, h)
os.unlink(path)
except Exception as e:
print(f" [WARN] Could not add picture: {e}")
if caption:
txbox(slide, caption, l, t + h + Inches(0.05), w, Inches(0.35),
size=10, italic=True, color=CYAN, align=PP_ALIGN.CENTER)
# ── Helper: bullet text block ──────────────────────────────────────────────
def add_bullets(slide, lines, l, t, w, h, size=13):
from pptx.oxml.ns import qn
from lxml import etree
tb = slide.shapes.add_textbox(l, t, w, h)
tf = tb.text_frame
tf.word_wrap = True
first = True
for line in lines:
if first:
p = tf.paragraphs[0]; first = False
else:
p = tf.add_paragraph()
p.alignment = PP_ALIGN.LEFT
# Determine indent level
stripped = line.lstrip()
indent = len(line) - len(stripped)
level = 0
if indent >= 4: level = 2
elif indent >= 2: level = 1
if stripped.startswith("•"):
stripped = stripped # keep bullet
else:
stripped = (" " * level) + stripped
run = p.add_run()
run.text = stripped
run.font.size = Pt(size - level * 1)
run.font.color.rgb = LIGHTGRAY
# Section headers (no bullet, bigger, cyan)
if not stripped.strip().startswith("•") and not stripped.strip().startswith("-") and stripped.strip().endswith(":"):
run.font.color.rgb = CYAN
run.font.bold = True
run.font.size = Pt(size)
p.space_before = Pt(2)
# ── Helper: add slide number ───────────────────────────────────────────────
def slide_num(slide, n, total):
txbox(slide, f"{n}/{total}", Inches(12.5), Inches(7.1), Inches(0.7), Inches(0.3),
size=9, color=RGBColor(0x80, 0x80, 0x80), align=PP_ALIGN.RIGHT)
# ══════════════════════════════════════════════════════════════════════════
prs = Presentation()
prs.slide_width = W
prs.slide_height = H
blank = prs.slide_layouts[6] # completely blank
IMAGE_URLS = {
"multi_plane": "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_7d66a07c9ef7548f5027bd3c5a8422e44d66574d1a747d0b1e3d7c4b02f89fc9.jpg",
"sagittal_norm":"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_23ae367efae8d8321a32f1b546f2566fa3b56e8b95a7619e97f62c027cfddc45.jpg",
"meniscus": "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3986b7994efcdbcf9e20f6f6b71ca0aecc9a515d79da246e4ba16c2c2f42e5c6.jpg",
"cruciate": "https://cdn.orris.care/cdss_images/roco_radiology_ROCO_68412_1766649854466.png",
"mcl": "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_a8f0f7d09cb735b694ec49b64440b99ecaf2be28729ce863028b4fd92a611b38.jpg",
"patella": "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_955be6241a5eb802138bd71a9fa1bc7bd32ff4025397ed7941a833238472fc66.jpg",
"axcorsar": "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_8d657d8e21b8af85d10f103f2467f6cb883a55572e888d75004aa42e133e0dbe.jpg",
"anatomy_illus":"https://cdn.orris.care/cdss_images/BAILY_1760541033912_7b187248-9ac6-43bc-b1e3-cb9b69fb20b9.png",
"mcl_coronal": "https://cdn.orris.care/cdss_images/roco_radiology_ROCO_32335_1766647924636.png",
}
TOTAL = 13
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 1 — TITLE
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
# Top cyan bar decoration
bar = s.shapes.add_shape(1, Inches(0), Inches(0), W, Inches(0.12))
bar.fill.solid(); bar.fill.fore_color.rgb = CYAN; bar.line.fill.background()
bar2 = s.shapes.add_shape(1, Inches(0), Inches(7.38), W, Inches(0.12))
bar2.fill.solid(); bar2.fill.fore_color.rgb = CYAN; bar2.line.fill.background()
# Central glow box
glow = s.shapes.add_shape(1, Inches(1.5), Inches(1.5), Inches(10.33), Inches(4.5))
glow.fill.solid(); glow.fill.fore_color.rgb = RGBColor(0x00, 0x4E, 0x70)
glow.line.color.rgb = CYAN; glow.line.width = Pt(2)
txbox(s, "MRI KNEE JOINT ANATOMY", Inches(1.7), Inches(1.9), Inches(10), Inches(1.4),
size=44, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
txbox(s, "A Comprehensive Radiological Guide", Inches(1.7), Inches(3.2), Inches(10), Inches(0.7),
size=22, color=CYAN, align=PP_ALIGN.CENTER)
txbox(s, "Sagittal • Coronal • Axial Planes", Inches(1.7), Inches(3.9), Inches(10), Inches(0.6),
size=16, color=LIGHTGRAY, align=PP_ALIGN.CENTER)
txbox(s, "Musculoskeletal Radiology", Inches(1.7), Inches(4.6), Inches(10), Inches(0.5),
size=13, italic=True, color=RGBColor(0xA0,0xA0,0xA0), align=PP_ALIGN.CENTER)
slide_num(s, 1, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 2 — INTRODUCTION
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Introduction to Knee MRI")
bullets = [
"• MRI is the gold standard for soft tissue evaluation of the knee",
"• Superior contrast resolution for cartilage, ligaments, menisci & tendons",
"• No ionising radiation — safe for repeated studies",
"• Standard protocol sequences:",
" - T1-weighted (T1W): Anatomy, fat, bone marrow",
" - T2-weighted (T2W): Fluid detection, oedema",
" - Proton Density Fat-Suppressed (PD-FS): Cartilage & soft tissue",
" - STIR: Bone marrow oedema, highly sensitive",
"• Three standard imaging planes: Sagittal, Coronal, Axial",
"• Field strength: 1.5T (standard) or 3T (higher resolution)",
"• Slice thickness: ≤3 mm for ligaments and menisci",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=13)
add_image(s, IMAGE_URLS["multi_plane"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.5),
"Multi-plane MRI: Sagittal, Coronal & Axial views")
slide_num(s, 2, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 3 — OSSEOUS STRUCTURES
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Osseous Structures on MRI")
bullets = [
"Distal Femur:",
"• Medial & lateral condyles separated by intercondylar notch",
"• Trochlear groove articulates with patella",
"Proximal Tibia:",
"• Medial & lateral plateaus; medial plateau is larger & concave",
"• Anterior & posterior tibial spines (intercondylar eminence)",
"Patella:",
"• Sesamoid bone within quadriceps tendon",
"• Medial & lateral facets; odd facet medially",
"• Thickest articular cartilage in the body (up to 6 mm)",
"MRI Signal Characteristics:",
"• Cortical bone: Low signal (dark) on all sequences",
"• Medullary cavity: Bright on T1W (fat marrow)",
"• Articular cartilage: Intermediate-high signal on PD-FS",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=13)
add_image(s, IMAGE_URLS["sagittal_norm"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Sagittal MRI — normal osseous anatomy")
slide_num(s, 3, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 4 — MENISCI
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Menisci")
bullets = [
"• Two C-shaped fibrocartilaginous discs between femur & tibia",
"Medial Meniscus:",
"• Larger, C-shaped, more fixed to capsule",
"• Attached to deep MCL → less mobile → more prone to injury",
"• Posterior horn most commonly injured",
"Lateral Meniscus:",
"• Smaller, more circular; greater mobility",
"• Not attached to LCL; popliteus tendon creates hiatus",
"Normal MRI Appearance:",
"• Uniformly low (dark/black) signal on ALL sequences",
"• Triangular on coronal; bow-tie appearance on sagittal",
"Tear Grading:",
"• Grade 1: Intrameniscal signal, no surface contact",
"• Grade 2: Linear signal, no articular surface contact",
"• Grade 3: Signal reaching articular surface = TRUE TEAR",
"• Blood supply: Peripheral red-red zone (vascular) / central white-white (avascular)",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=12)
add_image(s, IMAGE_URLS["meniscus"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Meniscal vascular zones & anatomy")
slide_num(s, 4, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 5 — CRUCIATE LIGAMENTS
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Cruciate Ligaments")
# ACL column
txbox(s, "Anterior Cruciate Ligament (ACL)", Inches(0.3), Inches(1.2), Inches(3.6), Inches(0.5),
size=14, bold=True, color=CYAN)
acl = [
"• Origin: Posteromedial lateral femoral condyle",
"• Insertion: Anterior intercondylar area of tibia",
"• Function: Resists anterior tibial translation & internal rotation",
"• MRI: Best on sagittal; low-signal band at ~45° to tibial plateau",
"• Two bundles: Anteromedial (AM) & Posterolateral (PL)",
"• AM bundle: Tight in flexion; PL bundle: Tight in extension",
"• Most commonly injured ligament in the knee",
]
add_bullets(s, acl, Inches(0.3), Inches(1.7), Inches(3.6), Inches(3.8), size=12)
# PCL column
txbox(s, "Posterior Cruciate Ligament (PCL)", Inches(4.0), Inches(1.2), Inches(3.6), Inches(0.5),
size=14, bold=True, color=CYAN)
pcl = [
"• Origin: Anterolateral surface of medial femoral condyle",
"• Insertion: Posterior intercondylar area of tibia",
"• Function: Resists posterior tibial translation",
"• MRI: Continuous low-signal curved arc on sagittal view",
"• Larger & stronger than ACL (2× tensile strength)",
"• Meniscofemoral ligaments (Humphrey & Wrisberg) accompany it",
"• Reliable intact landmark — 'PCL buckle sign' = ACL tear",
]
add_bullets(s, pcl, Inches(4.0), Inches(1.7), Inches(3.6), Inches(3.8), size=12)
add_image(s, IMAGE_URLS["cruciate"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.9),
"Sagittal MRI — ACL & PCL normal anatomy")
slide_num(s, 5, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 6 — COLLATERAL LIGAMENTS
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Collateral Ligaments")
bullets = [
"Medial Collateral Ligament (MCL):",
"• Superficial layer: Medial femoral condyle → medial tibia (main stabiliser)",
"• Deep layer (capsular): Meniscofemoral & meniscotibial fibres",
"• Function: Primary restraint to valgus stress",
"• MRI: Low-signal band parallel to joint line on coronal images",
"• Grading: Grade 1 (oedema, fibres intact) → Grade 3 (complete tear)",
"Lateral Collateral Ligament (LCL) / Fibular Collateral Ligament:",
"• Cord-like structure from lateral femoral condyle → fibular head",
"• NOT attached to lateral meniscus (unlike MCL & medial meniscus)",
"• Function: Primary restraint to varus stress",
"• MRI: Thin, low-signal structure on posterior coronal images",
"Posterolateral Corner (PLC):",
"• LCL + popliteus tendon + popliteofibular ligament + arcuate ligament",
"• Critical for rotational stability of the knee",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=12)
add_image(s, IMAGE_URLS["mcl"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Coronal PD MRI — MCL & meniscocapsular ligaments")
slide_num(s, 6, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 7 — EXTENSOR MECHANISM & TENDONS
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Extensor Mechanism & Tendons")
bullets = [
"Quadriceps Tendon:",
"• Formed by rectus femoris, vastus medialis/lateralis/intermedius",
"• Multi-layered structure; inserts into superior pole of patella",
"• Normal: Uniformly low signal; thickness ~5–8 mm",
"Patellar Tendon / Ligament:",
"• Inferior pole of patella → tibial tuberosity (Osgood-Schlatter site)",
"• Uniformly low signal; thickness ~4–6 mm",
"• Best evaluated on sagittal images",
"Iliotibial Band (ITB):",
"• Thickening of fascia lata; lateral stabiliser of the knee",
"• Inserts onto Gerdy's tubercle (anterolateral tibia)",
"• Friction syndrome at lateral femoral epicondyle",
"Popliteus Tendon:",
"• Intra-articular component from lateral femoral condyle",
"• Exits via popliteal hiatus in lateral meniscus",
"• Key component of posterolateral corner",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=12)
add_image(s, IMAGE_URLS["patella"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Axial & sagittal MRI — extensor mechanism")
slide_num(s, 7, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 8 — BURSAE & FAT PADS
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Bursae & Fat Pads")
# Left column: Bursae
txbox(s, "Bursae", Inches(0.3), Inches(1.2), Inches(3.8), Inches(0.4),
size=15, bold=True, color=CYAN)
bursae = [
"• Suprapatellar bursa: Extension of joint cavity; anterior to distal femur",
"• Prepatellar bursa: Anterior to patella (housemaid's knee)",
"• Deep infrapatellar bursa: Deep to patellar tendon",
"• Superficial infrapatellar bursa: Anterior to tibial tuberosity",
"• Pes anserine bursa: Medial, deep to pes anserine tendons (sartorius, gracilis, semitendinosus)",
"• Baker's cyst (popliteal cyst): Between medial gastrocnemius & semimembranosus tendons",
"• MRI: Fluid = dark T1, bright T2",
]
add_bullets(s, bursae, Inches(0.3), Inches(1.65), Inches(3.8), Inches(4.0), size=12)
# Right column: Fat Pads
txbox(s, "Fat Pads", Inches(4.2), Inches(1.2), Inches(3.4), Inches(0.4),
size=15, bold=True, color=CYAN)
fat = [
"• Hoffa's infrapatellar fat pad:",
" - Posterior to patellar tendon",
" - Hyperintense (bright) on T1W & T2W",
" - Impingement → bright signal on PD-FS",
"• Prefemoral fat pad:",
" - Anterior to distal femur",
" - Landmark for suprapatellar effusion",
"• Suprapatellar fat pad:",
" - Posterior to quadriceps tendon",
"• Clinical significance:",
" - Fat pad impingement syndromes",
" - Hoffa's disease",
]
add_bullets(s, fat, Inches(4.2), Inches(1.65), Inches(3.4), Inches(4.5), size=12)
add_image(s, IMAGE_URLS["axcorsar"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Multi-sequence MRI: Axial, coronal & sagittal planes")
slide_num(s, 8, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 9 — MRI SEQUENCES & SIGNAL TABLE
# ──────────────────────────────────────────────────────────────────────────
from pptx.util import Inches, Pt
from pptx.oxml.ns import qn
from lxml import etree
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "MRI Sequences & Signal Characteristics")
# Table
col_w = [Inches(2.1), Inches(1.1), Inches(1.1), Inches(1.1)]
rows_data = [
["Structure", "T1W", "T2W", "PD-FS"],
["Cortical bone", "Dark ◼", "Dark ◼", "Dark ◼"],
["Medullary fat", "Bright ◻", "Intermediate", "Dark (suppressed)"],
["Hyaline cartilage", "Intermediate", "Int-high", "Bright ◻"],
["Ligaments/Tendons", "Dark ◼", "Dark ◼", "Dark ◼"],
["Menisci (normal)", "Dark ◼", "Dark ◼", "Dark ◼"],
["Joint effusion", "Dark ◼", "Bright ◻", "Bright ◻"],
["Muscle", "Intermediate", "Intermediate", "Intermediate"],
["Bone marrow oedema", "Low/Dark", "High/Bright", "Bright ◻"],
]
tbl_top = Inches(1.2)
tbl_left = Inches(0.2)
tbl_h = Inches(5.0)
tbl_w = sum(col_w)
table = s.shapes.add_table(len(rows_data), 4, tbl_left, tbl_top, int(tbl_w), int(tbl_h)).table
for ci, w in enumerate(col_w):
table.columns[ci].width = int(w)
for ri, row in enumerate(rows_data):
for ci, cell_text in enumerate(row):
cell = table.cell(ri, ci)
cell.text = cell_text
tf = cell.text_frame
tf.paragraphs[0].alignment = PP_ALIGN.CENTER
run = tf.paragraphs[0].runs[0] if tf.paragraphs[0].runs else tf.paragraphs[0].add_run()
run.text = cell_text
run.font.size = Pt(12)
if ri == 0:
run.font.bold = True
run.font.color.rgb = WHITE
cell.fill.solid()
cell.fill.fore_color.rgb = TEAL_HDR
else:
run.font.color.rgb = LIGHTGRAY
cell.fill.solid()
cell.fill.fore_color.rgb = MIDROW if ri % 2 == 0 else DARKROW
add_image(s, IMAGE_URLS["axcorsar"], Inches(7.9), Inches(1.3), Inches(5.0), Inches(4.4),
"Multi-plane MRI — sequence comparison")
slide_num(s, 9, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 10 — IMAGING PLANES
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Imaging Planes: What Each Shows")
# Three column headers
col_w3 = Inches(4.2)
for i, (title, col) in enumerate([
("SAGITTAL", Inches(0.2)),
("CORONAL", Inches(4.55)),
("AXIAL", Inches(8.9)),
]):
box = s.shapes.add_shape(1, col, Inches(1.15), col_w3, Inches(0.45))
box.fill.solid()
box.fill.fore_color.rgb = TEAL_HDR
box.line.fill.background()
txbox(s, title, col + Inches(0.05), Inches(1.2), col_w3 - Inches(0.1), Inches(0.4),
size=15, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
sag = [
"• ACL & PCL integrity",
"• Meniscal horns (anterior/posterior)",
"• Cartilage thickness",
"• Hoffa's infrapatellar fat pad",
"• Patellar & quadriceps tendons",
"• Bone contusions",
"• Osgood-Schlatter changes",
"• Popliteal cysts",
]
cor = [
"• Collateral ligaments (MCL/LCL)",
"• Meniscal body evaluation",
"• Tibial plateau assessment",
"• Posterolateral corner structures",
"• Articular cartilage — weight-bearing",
"• Subchondral bone oedema",
"• Varus/valgus alignment",
"• Tibial spine avulsions",
]
axl = [
"• Patellofemoral joint tracking",
"• Patellar tilt & subluxation",
"• Medial patellofemoral ligament (MPFL)",
"• Lateral retinaculum",
"• Meniscal roots (anterior/posterior)",
"• Transverse intermeniscal ligament",
"• Popliteal vessels & nerves",
"• Baker's cyst",
]
for bullets, col in [(sag, Inches(0.2)), (cor, Inches(4.55)), (axl, Inches(8.9))]:
add_bullets(s, bullets, col, Inches(1.65), col_w3, Inches(5.5), size=12)
slide_num(s, 10, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 11 — ARTICULAR CARTILAGE
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Articular Cartilage")
bullets = [
"• Hyaline cartilage covers all articular surfaces of the knee",
"Thickness by location:",
" - Femoral condyle: 2–4 mm",
" - Tibial plateau: 2–3 mm",
" - Patella: up to 6 mm (thickest articular cartilage in the body)",
"MRI Appearance:",
" - T1W: Intermediate signal (grey layer)",
" - PD-FS: Bright / high signal (best sequence for cartilage)",
" - 3D GRE sequences: Multiplanar reconstruction",
"Cartilage Zones (deep → superficial):",
" Calcified zone → Radial zone → Transitional zone → Superficial zone",
"ICRS Grading on MRI:",
" • Grade 0: Normal cartilage",
" • Grade 1: Signal change, surface intact",
" • Grade 2: <50% partial thickness loss",
" • Grade 3: ≥50% partial thickness loss",
" • Grade 4: Full-thickness defect (bone exposed)",
"Advanced techniques: dGEMRIC, T2 mapping, T1ρ — detect early degeneration",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=12)
add_image(s, IMAGE_URLS["sagittal_norm"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Sagittal MRI — normal articular cartilage")
slide_num(s, 11, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 12 — CLINICAL PEARLS
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Clinical Pearls & Key Points")
bullets = [
"• ACL: Best on sagittal; fibres at ~45° to tibial plateau; 2 bundles (AM & PL)",
"• PCL 'buckle sign': Posterior bowing of PCL on sagittal = sign of ACL tear",
"• Bucket-handle tear: 'Double PCL sign' on sagittal — flipped meniscal fragment",
"• Medial meniscus posterior horn: Most common site of degenerative tear",
"• Bone bruise pattern after ACL tear: Lateral femoral condyle + posterolateral tibia (pivot-shift)",
"• Segond fracture (lateral capsule/IT band avulsion off tibia): Pathognomonic for ACL tear",
"• MCL grading: Oedema around intact fibres = Grade 1; partial fibre disruption = Grade 2; complete = Grade 3",
"• Hoffa's fat pad bright on PD-FS = infrapatellar fat pad impingement syndrome",
"• Discoid lateral meniscus: Normal variant (more common in Asian populations); entire tibial plateau covered",
"• Meniscal root tears = extrusion of meniscus → accelerated cartilage loss",
"• Normal meniscal signal on MRI is uniformly dark — ANY intrameniscal signal is abnormal",
"• 3T MRI preferred for small structures (ACL bundles, cartilage mapping, root tears)",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=12)
add_image(s, IMAGE_URLS["mcl_coronal"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.6),
"Coronal MRI — MCL & meniscocapsular anatomy")
slide_num(s, 12, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
# SLIDE 13 — SUMMARY
# ──────────────────────────────────────────────────────────────────────────
s = prs.slides.add_slide(blank); set_bg(s, BG)
add_title_bar(s, "Summary")
bullets = [
"• MRI is the modality of choice for knee soft tissue anatomy & pathology",
"• Key structures: Menisci, ACL/PCL, MCL/LCL, articular cartilage, bursae & fat pads",
"• Three planes (sagittal, coronal, axial) are complementary — never interpret a single plane alone",
"• Sequence selection is tailored to clinical question (T1W, T2W, PD-FS, STIR, 3D GRE)",
"• Normal MRI anatomy knowledge is an absolute prerequisite for pathology recognition",
"Systematic Approach:",
" 1. Bones & cortex",
" 2. Articular cartilage",
" 3. Menisci (anterior horn, body, posterior horn)",
" 4. Cruciate ligaments (ACL then PCL)",
" 5. Collateral ligaments (MCL then LCL/PLC)",
" 6. Tendons (patellar, quadriceps, popliteus, ITB)",
" 7. Bursae & fat pads",
" 8. Soft tissues & vasculature",
]
add_bullets(s, bullets, Inches(0.3), Inches(1.25), Inches(7.4), Inches(5.8), size=12)
add_image(s, IMAGE_URLS["anatomy_illus"], Inches(7.9), Inches(1.2), Inches(5.1), Inches(4.5),
"Knee joint: Bones, ligaments & menisci")
# Thank You
txbox(s, "Thank You | Questions?", Inches(0.3), Inches(6.85), Inches(7.4), Inches(0.5),
size=16, bold=True, color=CYAN, align=PP_ALIGN.LEFT)
slide_num(s, 13, TOTAL)
# ──────────────────────────────────────────────────────────────────────────
out = "/home/daytona/MRI_Knee_Joint_Anatomy.pptx"
prs.save(out)
print(f"SUCCESS: Saved to {out}")
*.py in /home/daytona
/home/daytona/build_knee_ppt.py. Run it with:python3 /home/daytona/build_knee_ppt.py
python-pptx and requests automatically, download all medical images, and save the final file to:/home/daytona/MRI_Knee_Joint_Anatomy.pptx
| Slide | Topic |
|---|---|
| 1 | Title Slide — dark navy medical theme |
| 2 | Introduction to Knee MRI — sequences, planes, field strength |
| 3 | Osseous Structures — femur, tibia, patella, signal characteristics |
| 4 | Menisci — medial vs lateral, MRI signal, tear grading (Grades 1–3), vascular zones |
| 5 | Cruciate Ligaments — ACL & PCL origin/insertion/function/MRI appearance |
| 6 | Collateral Ligaments — MCL layers, LCL, posterolateral corner (PLC) |
| 7 | Extensor Mechanism & Tendons — quadriceps, patellar tendon, ITB, popliteus |
| 8 | Bursae & Fat Pads — suprapatellar, prepatellar, Baker's cyst, Hoffa's fat pad |
| 9 | MRI Sequences & Signal Table — T1W / T2W / PD-FS comparison table |
| 10 | Imaging Planes — 3-column breakdown of sagittal / coronal / axial |
| 11 | Articular Cartilage — thickness, zones, ICRS grading, advanced techniques |
| 12 | Clinical Pearls — Double PCL sign, Segond fracture, pivot-shift bruise pattern |
| 13 | Summary — 8-step systematic approach + Thank You |
Where is ppt
*.pptx in /home/daytona
Execute the Python script at /home/daytona/build_knee_ppt.py by running it with Python. Steps: 1. First read the file at /home/daytona/build_knee_ppt.py to understand what it does 2. Install required packages: run `pip install python-pptx requests lxml` using subprocess 3. Execute the script by importing and running it, OR replicate its logic directly to create the PPTX file at /home/daytona/MRI_Knee_Joint_Anatomy.pptx The script creates a 13-slide PowerPoint presentation on MRI Knee Joint Anatomy. It uses python-pptx to build slides with dark navy theme and downloads medical images from CDN URLs. If running the script directly fails, read it carefully and execute the same logic step by step to produce the output file /home/daytona/MRI_Knee_Joint_Anatomy.pptx After completion, confirm: - The file exists at /home/daytona/MRI_Knee_Joint_Anatomy.pptx - Its file size in bytes - Number of slides created Return the absolute path of the created file and its size.
python3 /home/daytona/build_knee_ppt.py
/home/daytona/MRI_Knee_Joint_Anatomy.pptx
pip install python-pptx requests lxml
python3 /home/daytona/build_knee_ppt.py
python-pptx and requests automatically.pptx file to /home/daytona/MRI_Knee_Joint_Anatomy.pptx.pptx file in Microsoft PowerPoint or LibreOffice Impress.Make ppt of MRI knee joint anatomy detailed with images
MRI knee joint anatomy sagittal coronal axial planes labeled
knee MRI meniscus ACL PCL cruciate ligament anatomy normal
knee MRI articular cartilage collateral ligament MCL patella anatomy
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"; ls…
mkdir -p /home/daytona/workspace/knee-mri-ppt && ls /home/daytona/skills/shared/…
cd /home/daytona/workspace/knee-mri-ppt && node /home/daytona/skills/shared/scri…
~/knee-mri-ppt/build_ppt.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
const fs = require("fs");
// ── Download images ──────────────────────────────────────────────────────────
const IMAGE_URLS = {
multi_plane: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_7d66a07c9ef7548f5027bd3c5a8422e44d66574d1a747d0b1e3d7c4b02f89fc9.jpg",
sagittal_norm: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_23ae367efae8d8321a32f1b546f2566fa3b56e8b95a7619e97f62c027cfddc45.jpg",
meniscus: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_3986b7994efcdbcf9e20f6f6b71ca0aecc9a515d79da246e4ba16c2c2f42e5c6.jpg",
cruciate: "https://cdn.orris.care/cdss_images/roco_radiology_ROCO_68412_1766649854466.png",
mcl: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_a8f0f7d09cb735b694ec49b64440b99ecaf2be28729ce863028b4fd92a611b38.jpg",
patella: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_955be6241a5eb802138bd71a9fa1bc7bd32ff4025397ed7941a833238472fc66.jpg",
axcorsar: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_8d657d8e21b8af85d10f103f2467f6cb883a55572e888d75004aa42e133e0dbe.jpg",
anatomy_illus: "https://cdn.orris.care/cdss_images/BAILY_1760541033912_7b187248-9ac6-43bc-b1e3-cb9b69fb20b9.png",
mcl_coronal: "https://cdn.orris.care/cdss_images/roco_radiology_ROCO_32335_1766647924636.png",
// additional slides
kinematics: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_48cd0142972397ec5a290a9c1995c3d8f2fe6409603f092790925cafc8175775.jpg",
cruciate_path: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_5e64a5ad7e61d385be7e32e7ceb1b1b4966f7be5b6ab583c81d495636fa179ae.jpg",
mcl_coronal2: "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_d87f401c3af0653b1aef7ffc2702e562abf66991237a42fde3593366b33a1cf7.jpg",
};
console.log("Downloading images...");
let images = {};
try {
const urls = Object.values(IMAGE_URLS);
const result = execSync(`node /home/daytona/skills/shared/scripts/fetch_images.js ${urls.map(u => `"${u}"`).join(" ")}`, { maxBuffer: 100*1024*1024 });
const arr = JSON.parse(result.toString());
const keys = Object.keys(IMAGE_URLS);
arr.forEach((item, i) => {
if (item.base64 && !item.error) {
images[keys[i]] = item.base64;
} else {
console.warn(` WARN: Could not download ${keys[i]}: ${item.error}`);
}
});
} catch (e) {
console.warn("Image download failed:", e.message);
}
console.log(`Downloaded ${Object.keys(images).length} images`);
// ── Presentation setup ───────────────────────────────────────────────────────
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "MRI Knee Joint Anatomy";
pres.author = "Orris Medical Education";
// Theme colours
const C = {
BG: "0D1B2A",
HDR: "004E70",
CYAN: "00B4D8",
WHITE: "FFFFFF",
LGRAY: "E0E0E0",
TEAL: "007A9E",
DROW: "152236",
MROW: "1A2B3C",
};
const TOTAL = 13;
// ── Helper: add slide with dark bg ───────────────────────────────────────────
function addSlide() {
const s = pres.addSlide();
s.background = { color: C.BG };
return s;
}
// ── Helper: slide number ─────────────────────────────────────────────────────
function addNum(s, n) {
s.addText(`${n}/${TOTAL}`, {
x: 12.0, y: 7.1, w: 1.1, h: 0.3,
fontSize: 9, color: "808080", align: "right",
});
}
// ── Helper: title bar ────────────────────────────────────────────────────────
function addTitleBar(s, title) {
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: C.HDR }, line: { type: "none" } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.05, w: 13.3, h: 0.06, fill: { color: C.CYAN }, line: { type: "none" } });
s.addText(title, {
x: 0.3, y: 0.08, w: 12.5, h: 0.95,
fontSize: 30, bold: true, color: C.WHITE, valign: "middle",
});
}
// ── Helper: add image ────────────────────────────────────────────────────────
function addImg(s, key, x, y, w, h, caption) {
if (images[key]) {
s.addImage({ data: images[key], x, y, w, h });
}
if (caption) {
s.addText(caption, {
x, y: y + h + 0.05, w, h: 0.35,
fontSize: 9, italic: true, color: C.CYAN, align: "center",
});
}
}
// ── Helper: bullet block ─────────────────────────────────────────────────────
function addBullets(s, lines, x, y, w, h, sz = 12) {
const opts = { x, y, w, h, fontSize: sz, color: C.LGRAY, valign: "top", wrap: true };
const arr = lines.map((line, i) => {
const isHdr = !line.trim().startsWith("•") && !line.trim().startsWith("-") && line.trim().endsWith(":");
return {
text: line + (i < lines.length - 1 ? "\n" : ""),
options: isHdr ? { bold: true, color: C.CYAN } : {},
};
});
s.addText(arr, opts);
}
// ── SLIDE 1 ── TITLE ─────────────────────────────────────────────────────────
{
const s = addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 0.12, fill: { color: C.CYAN }, line: { type: "none" } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 7.38, w: 13.3, h: 0.12, fill: { color: C.CYAN }, line: { type: "none" } });
s.addShape(pres.ShapeType.rect, { x: 1.5, y: 1.5, w: 10.33, h: 4.5, fill: { color: C.HDR }, line: { color: C.CYAN, pt: 2 } });
s.addText("MRI KNEE JOINT ANATOMY", { x: 1.7, y: 1.9, w: 10, h: 1.2, fontSize: 44, bold: true, color: C.WHITE, align: "center" });
s.addText("A Comprehensive Radiological Guide", { x: 1.7, y: 3.15, w: 10, h: 0.65, fontSize: 22, color: C.CYAN, align: "center" });
s.addText("Sagittal • Coronal • Axial Planes", { x: 1.7, y: 3.85, w: 10, h: 0.5, fontSize: 16, color: C.LGRAY, align: "center" });
s.addText("Musculoskeletal Radiology", { x: 1.7, y: 4.5, w: 10, h: 0.45, fontSize: 13, italic: true, color: "A0A0A0", align: "center" });
addNum(s, 1);
}
// ── SLIDE 2 ── INTRODUCTION ──────────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Introduction to Knee MRI");
const bullets = [
"• MRI is the gold standard for knee soft tissue evaluation",
"• Superior contrast resolution — cartilage, ligaments, menisci & tendons",
"• No ionising radiation — safe for repeated studies",
"Standard protocol sequences:",
" • T1-weighted (T1W): Anatomy, fat, bone marrow",
" • T2-weighted (T2W): Fluid detection, oedema",
" • Proton Density Fat-Suppressed (PD-FS): Cartilage & soft tissue",
" • STIR: Bone marrow oedema, highly sensitive",
"• Three imaging planes: Sagittal, Coronal, Axial",
"• Field strength: 1.5T (standard) or 3T (higher resolution)",
"• Slice thickness: ≤3 mm for ligaments & menisci",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8);
addImg(s, "multi_plane", 7.9, 1.2, 5.1, 4.5, "Multi-plane MRI: Sagittal, Coronal & Axial");
addNum(s, 2);
}
// ── SLIDE 3 ── OSSEOUS STRUCTURES ────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Osseous Structures on MRI");
const bullets = [
"Distal Femur:",
"• Medial & lateral condyles — separated by intercondylar notch",
"• Trochlear groove articulates with patella",
"Proximal Tibia:",
"• Medial & lateral plateaus (medial is larger & concave)",
"• Anterior & posterior tibial spines (intercondylar eminence)",
"Patella:",
"• Sesamoid bone within quadriceps tendon",
"• Medial, lateral & odd facets",
"• Thickest articular cartilage in the body (up to 6 mm)",
"MRI Signal:",
"• Cortical bone: Dark on all sequences",
"• Medullary cavity: Bright on T1W (fat marrow)",
"• Articular cartilage: Intermediate-high on PD-FS",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8);
addImg(s, "sagittal_norm", 7.9, 1.2, 5.1, 4.6, "Sagittal MRI — normal osseous anatomy");
addNum(s, 3);
}
// ── SLIDE 4 ── MENISCI ───────────────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Menisci");
const bullets = [
"• Two C-shaped fibrocartilaginous discs between femur & tibia",
"Medial Meniscus:",
"• Larger, C-shaped; attached to deep MCL → less mobile → more injuries",
"• Posterior horn most commonly injured",
"Lateral Meniscus:",
"• Smaller, more circular; greater mobility",
"• Not attached to LCL; popliteus tendon creates hiatus",
"Normal MRI Appearance:",
"• Uniformly dark/black signal on ALL sequences",
"• Triangular on coronal; bow-tie on sagittal",
"Tear Grading:",
"• Grade 1: Intrameniscal signal, no surface contact",
"• Grade 2: Linear signal, no articular surface contact",
"• Grade 3: Signal reaching articular surface = TRUE TEAR",
"• Blood supply: Peripheral red-red (vascular) / central white-white (avascular)",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8, 11);
addImg(s, "meniscus", 7.9, 1.2, 5.1, 4.6, "Meniscal vascular zones & anatomy");
addNum(s, 4);
}
// ── SLIDE 5 ── CRUCIATE LIGAMENTS ────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Cruciate Ligaments");
s.addText("Anterior Cruciate Ligament (ACL)", { x: 0.3, y: 1.2, w: 3.6, h: 0.45, fontSize: 13, bold: true, color: C.CYAN });
const acl = [
"• Origin: Posteromedial lateral femoral condyle",
"• Insertion: Anterior intercondylar area of tibia",
"• Resists anterior tibial translation & internal rotation",
"• Best on sagittal; low-signal band at ~45°",
"• Two bundles: Anteromedial (AM) & Posterolateral (PL)",
"• Most commonly injured knee ligament",
];
addBullets(s, acl, 0.3, 1.7, 3.6, 3.8, 11);
s.addText("Posterior Cruciate Ligament (PCL)", { x: 4.0, y: 1.2, w: 3.6, h: 0.45, fontSize: 13, bold: true, color: C.CYAN });
const pcl = [
"• Origin: Anterolateral medial femoral condyle",
"• Insertion: Posterior intercondylar area of tibia",
"• Resists posterior tibial translation",
"• Continuous low-signal arc on sagittal",
"• 2× tensile strength of ACL",
"• Meniscofemoral ligaments (Humphrey & Wrisberg)",
"• PCL buckle sign = ACL tear indicator",
];
addBullets(s, pcl, 4.0, 1.7, 3.6, 3.8, 11);
addImg(s, "cruciate", 7.9, 1.2, 5.1, 4.9, "Sagittal MRI — ACL & PCL normal anatomy");
addNum(s, 5);
}
// ── SLIDE 6 ── COLLATERAL LIGAMENTS ─────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Collateral Ligaments");
const bullets = [
"Medial Collateral Ligament (MCL):",
"• Superficial layer: Medial femoral condyle → medial tibia",
"• Deep layer (capsular): Meniscofemoral & meniscotibial fibres",
"• Primary restraint to valgus stress",
"• MRI: Low-signal band on coronal images",
"• Grading: Grade 1 (oedema) → Grade 3 (complete tear)",
"Lateral Collateral Ligament (LCL) / Fibular Collateral Ligament:",
"• Cord-like structure — lateral femoral condyle → fibular head",
"• NOT attached to lateral meniscus",
"• Primary restraint to varus stress",
"• Thin, low-signal on posterior coronal images",
"Posterolateral Corner (PLC):",
"• LCL + popliteus tendon + popliteofibular ligament + arcuate ligament",
"• Critical for rotational stability",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8, 11);
addImg(s, "mcl", 7.9, 1.2, 5.1, 4.6, "Coronal MRI — MCL & meniscocapsular ligaments");
addNum(s, 6);
}
// ── SLIDE 7 ── EXTENSOR MECHANISM ───────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Extensor Mechanism & Tendons");
const bullets = [
"Quadriceps Tendon:",
"• Multi-layered; inserts into superior pole of patella",
"• Uniformly low signal; thickness ~5–8 mm",
"Patellar Tendon / Ligament:",
"• Inferior pole of patella → tibial tuberosity",
"• Uniformly low signal; thickness ~4–6 mm",
"• Best on sagittal images",
"Iliotibial Band (ITB):",
"• Thickening of fascia lata; lateral stabiliser",
"• Inserts onto Gerdy's tubercle (anterolateral tibia)",
"• Friction syndrome at lateral femoral epicondyle",
"Popliteus Tendon:",
"• Intra-articular; lateral femoral condyle → posterior tibia",
"• Exits via popliteal hiatus in lateral meniscus",
"• Key component of posterolateral corner (PLC)",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8, 11);
addImg(s, "patella", 7.9, 1.2, 5.1, 4.6, "Axial & sagittal MRI — extensor mechanism");
addNum(s, 7);
}
// ── SLIDE 8 ── BURSAE & FAT PADS ────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Bursae & Fat Pads");
s.addText("Bursae", { x: 0.3, y: 1.2, w: 3.8, h: 0.4, fontSize: 14, bold: true, color: C.CYAN });
const bursae = [
"• Suprapatellar: Extension of joint cavity",
"• Prepatellar: Anterior to patella (housemaid's knee)",
"• Deep infrapatellar: Deep to patellar tendon",
"• Superficial infrapatellar: Anterior to tibial tuberosity",
"• Pes anserine: Medial, deep to pes anserine tendons",
"• Baker's cyst (popliteal): Between medial gastrocnemius & semimembranosus",
"• MRI: Dark T1, bright T2",
];
addBullets(s, bursae, 0.3, 1.65, 3.8, 4.0, 11);
s.addText("Fat Pads", { x: 4.2, y: 1.2, w: 3.4, h: 0.4, fontSize: 14, bold: true, color: C.CYAN });
const fat = [
"Hoffa's infrapatellar fat pad:",
"• Posterior to patellar tendon",
"• Bright T1W & T2W",
"• Impingement → bright on PD-FS",
"Prefemoral fat pad:",
"• Anterior to distal femur",
"Suprapatellar fat pad:",
"• Posterior to quadriceps tendon",
"Clinical significance:",
"• Fat pad impingement syndromes",
"• Hoffa's disease",
];
addBullets(s, fat, 4.2, 1.65, 3.4, 4.5, 11);
addImg(s, "axcorsar", 7.9, 1.2, 5.1, 4.6, "Multi-sequence MRI: Axial, coronal & sagittal");
addNum(s, 8);
}
// ── SLIDE 9 ── MRI SEQUENCES TABLE ───────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "MRI Sequences & Signal Characteristics");
const rows = [
["Structure", "T1W", "T2W", "PD-FS"],
["Cortical bone", "Dark ◼", "Dark ◼", "Dark ◼"],
["Medullary fat", "Bright ◻", "Intermediate", "Dark (suppressed)"],
["Hyaline cartilage", "Intermediate","Int-high", "Bright ◻"],
["Ligaments/Tendons", "Dark ◼", "Dark ◼", "Dark ◼"],
["Menisci (normal)", "Dark ◼", "Dark ◼", "Dark ◼"],
["Joint effusion", "Dark ◼", "Bright ◻", "Bright ◻"],
["Muscle", "Intermediate","Intermediate","Intermediate"],
["Bone marrow oedema","Low/Dark", "High/Bright", "Bright ◻"],
];
const colW = [2.1, 1.2, 1.2, 1.7];
const tableRows = rows.map((row, ri) =>
row.map((cell, ci) => ({
text: cell,
options: {
bold: ri === 0,
color: ri === 0 ? C.WHITE : C.LGRAY,
fill: ri === 0 ? C.TEAL : (ri % 2 === 0 ? C.MROW : C.DROW),
align: "center",
fontSize: 11,
},
}))
);
s.addTable(tableRows, { x: 0.2, y: 1.2, w: 6.5, h: 5.0, colW, border: { type: "none" } });
addImg(s, "kinematics", 7.9, 1.3, 5.0, 4.4, "Multi-plane MRI — coronal, sagittal, axial");
addNum(s, 9);
}
// ── SLIDE 10 ── IMAGING PLANES ───────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Imaging Planes: What Each Shows");
const colW3 = 4.1;
[
["SAGITTAL", 0.2],
["CORONAL", 4.45],
["AXIAL", 8.7],
].forEach(([title, x]) => {
s.addShape(pres.ShapeType.rect, { x, y: 1.15, w: colW3, h: 0.42, fill: { color: C.TEAL }, line: { type: "none" } });
s.addText(title, { x: x+0.05, y: 1.18, w: colW3-0.1, h: 0.38, fontSize: 14, bold: true, color: C.WHITE, align: "center" });
});
const sag = [
"• ACL & PCL integrity",
"• Meniscal horns (anterior/posterior)",
"• Cartilage thickness",
"• Hoffa's fat pad",
"• Patellar & quadriceps tendons",
"• Bone contusions",
"• Popliteal cysts",
"• Osgood-Schlatter changes",
];
const cor = [
"• Collateral ligaments (MCL/LCL)",
"• Meniscal body evaluation",
"• Tibial plateau assessment",
"• Posterolateral corner structures",
"• Articular cartilage (weight-bearing)",
"• Subchondral bone oedema",
"• Varus/valgus alignment",
"• Tibial spine avulsions",
];
const axl = [
"• Patellofemoral joint tracking",
"• Patellar tilt & subluxation",
"• MPFL (medial patellofemoral ligament)",
"• Lateral retinaculum",
"• Meniscal roots (anterior/posterior)",
"• Transverse intermeniscal ligament",
"• Popliteal vessels & nerves",
"• Baker's cyst",
];
[[sag, 0.2], [cor, 4.45], [axl, 8.7]].forEach(([lines, x]) => {
addBullets(s, lines, x, 1.65, colW3, 5.5, 11);
});
addNum(s, 10);
}
// ── SLIDE 11 ── ARTICULAR CARTILAGE ─────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Articular Cartilage");
const bullets = [
"• Hyaline cartilage covers all articular surfaces",
"Thickness by location:",
" • Femoral condyle: 2–4 mm",
" • Tibial plateau: 2–3 mm",
" • Patella: up to 6 mm (thickest in the body)",
"MRI Appearance:",
" • T1W: Intermediate signal",
" • PD-FS: Bright / high signal (best sequence)",
" • 3D GRE sequences: Multiplanar reconstruction",
"Cartilage Zones (deep → superficial):",
" Calcified → Radial → Transitional → Superficial zone",
"ICRS Grading on MRI:",
" • Grade 0: Normal | Grade 1: Signal change, surface intact",
" • Grade 2: <50% thickness loss | Grade 3: ≥50% loss",
" • Grade 4: Full-thickness defect (bone exposed)",
"Advanced: dGEMRIC, T2 mapping, T1ρ — early degeneration",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8, 11);
addImg(s, "sagittal_norm", 7.9, 1.2, 5.1, 4.6, "Sagittal MRI — normal articular cartilage");
addNum(s, 11);
}
// ── SLIDE 12 ── CLINICAL PEARLS ──────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Clinical Pearls & Key Points");
const bullets = [
"• ACL: Sagittal plane; fibres at ~45° to tibial plateau; AM & PL bundles",
"• PCL 'buckle sign': Posterior bowing of PCL = indirect sign of ACL tear",
"• Bucket-handle tear: 'Double PCL sign' — flipped meniscal fragment in notch",
"• Medial meniscus posterior horn: Most common site of degenerative tear",
"• Bone bruise pattern after ACL tear: Lateral femoral condyle + posterolateral tibia",
"• Segond fracture (lateral capsule avulsion): Pathognomonic for ACL tear",
"• MCL grading: Oedema = Grade 1; partial disruption = Grade 2; complete = Grade 3",
"• Hoffa's fat pad bright on PD-FS = infrapatellar fat pad impingement syndrome",
"• Discoid lateral meniscus: Normal variant; entire tibial plateau covered",
"• Meniscal root tears → extrusion of meniscus → accelerated cartilage loss",
"• Normal meniscal signal = uniformly dark — ANY signal is abnormal",
"• 3T MRI preferred for ACL bundles, cartilage mapping & root tears",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8, 11);
addImg(s, "cruciate_path", 7.9, 1.2, 5.1, 4.6, "Sagittal MRI — ACL/PCL/meniscus pathology");
addNum(s, 12);
}
// ── SLIDE 13 ── SUMMARY ──────────────────────────────────────────────────────
{
const s = addSlide();
addTitleBar(s, "Summary");
const bullets = [
"• MRI = gold standard for knee soft tissue anatomy & pathology",
"• Key structures: Menisci, ACL/PCL, MCL/LCL, articular cartilage, bursae",
"• Three planes (sagittal, coronal, axial) are complementary — never interpret alone",
"• Sequence selection tailored to clinical question (T1W, T2W, PD-FS, STIR, 3D GRE)",
"• Normal anatomy knowledge is prerequisite for pathology recognition",
"Systematic Approach:",
" 1. Bones & cortex",
" 2. Articular cartilage",
" 3. Menisci (anterior horn, body, posterior horn)",
" 4. Cruciate ligaments (ACL then PCL)",
" 5. Collateral ligaments (MCL then LCL/PLC)",
" 6. Tendons (patellar, quadriceps, popliteus, ITB)",
" 7. Bursae & fat pads",
" 8. Soft tissues & vasculature",
];
addBullets(s, bullets, 0.3, 1.25, 7.4, 5.8, 11);
addImg(s, "anatomy_illus", 7.9, 1.2, 5.1, 4.5, "Knee joint: Bones, ligaments & menisci");
s.addText("Thank You | Questions?", {
x: 0.3, y: 6.85, w: 7.4, h: 0.45,
fontSize: 16, bold: true, color: C.CYAN,
});
addNum(s, 13);
}
// ── Save ──────────────────────────────────────────────────────────────────────
const OUT = "/home/daytona/workspace/knee-mri-ppt/MRI_Knee_Joint_Anatomy.pptx";
pres.writeFile({ fileName: OUT }).then(() => {
const stat = fs.statSync(OUT);
console.log(`\nSUCCESS! Saved to: ${OUT}`);
console.log(`File size: ${(stat.size / 1024).toFixed(1)} KB`);
});
cd /home/daytona/workspace/knee-mri-ppt && node build_ppt.js 2>&1
MRI Knee Joint Anatomy
Presentation · PPTX
| Slide | Topic | Image |
|---|---|---|
| 1 | Title slide — dark navy theme | — |
| 2 | Introduction to Knee MRI — sequences, planes, field strength | Multi-plane MRI |
| 3 | Osseous Structures — femur, tibia, patella, MRI signals | Sagittal normal anatomy |
| 4 | Menisci — medial vs lateral, grading (1–3), vascular zones | Meniscal zones diagram |
| 5 | Cruciate Ligaments — ACL & PCL origin/insertion/function/MRI | Sagittal ACL/PCL |
| 6 | Collateral Ligaments — MCL layers, LCL, PLC | Coronal MCL MRI |
| 7 | Extensor Mechanism & Tendons — quads, patellar, ITB, popliteus | Patellofemoral MRI |
| 8 | Bursae & Fat Pads — Baker's cyst, Hoffa's, suprapatellar | Multi-sequence MRI |
| 9 | Signal Characteristics Table — T1W / T2W / PD-FS | Multi-plane kinematics MRI |
| 10 | Imaging Planes — 3-column sagittal / coronal / axial breakdown | — |
| 11 | Articular Cartilage — thickness, zones, ICRS grading (0–4) | Sagittal normal cartilage |
| 12 | Clinical Pearls — Double PCL sign, Segond fracture, root tears | ACL/PCL pathology MRI |
| 13 | Summary — 8-step systematic approach + Thank You | Knee anatomy illustration |