kindly give a detaled presentation on third nerve from basics to localisation in detail

Reading File
Reading File
Running Command

cd /tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86328f442/ && python3 -c " from pptx import Presentation import os files = [ 'neuro-ophthalmology-basics.pptx', 'oculomotor-nerve.pptx', 'seminar-ankur-nigam-new-presents-extraocular-muscle-and-motility.pptx', 'third-nerve-anatomy-and-applied-aspect.pptx' ] for fname in files: print(f'\n\n===== FILE: {fname} =====') prs = Presentation(fname) for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t: texts.append(t) if texts: print(f'--- Slide {i} ---') for t in texts: print(t) " 2>&1 | head -500

Finding Sources
Running Command

cd /tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86328f442/ && python3 -c " from pptx import Presentation from pptx.util import Pt import os files = [ 'neuro-ophthalmology-basics.pptx', 'oculomotor-nerve.pptx', 'seminar-ankur-nigam-new-presents-extraocular-muscle-and-motility.pptx', 'third-nerve-anatomy-and-applied-aspect.pptx' ] for fname in files: prs = Presentation(fname) print(f'\n===== FILE: {fname} =====') print(f'Slide count: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): print(f' Slide {i}: {len(slide.shapes)} shapes') for shape in slide.shapes: print(f' shape type={shape.shape_type}, name={shape.name}, has_text={shape.has_text_frame}') if shape.has_text_frame: for para in shape.text_frame.paragraphs: for run in para.runs: if run.text.strip(): print(f' RUN: {run.text[:100]}') if i > 3: print(' ...(truncated)') break " 2>&1

Running Command

mkdir -p /tmp/workspace/third_nerve_slides && python3 -c " from pptx import Presentation import os # Extract images from 'third-nerve-anatomy-and-applied-aspect.pptx' (most relevant) files = { 'third': '/tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86928f442/third-nerve-anatomy-and-applied-aspect.pptx', 'oculomotor': '/tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86928f442/oculomotor-nerve.pptx', } base = '/tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86928f442' fnames = [ ('third', 'third-nerve-anatomy-and-applied-aspect.pptx'), ('oculomotor', 'oculomotor-nerve.pptx'), ('neuro', 'neuro-ophthalmology-basics.pptx'), ] for prefix, fname in fnames: path = f'{base}/{fname}' prs = Presentation(path) for i, slide in enumerate(prs.slides, 1): for shape in slide.shapes: if shape.shape_type == 13: # PICTURE img = shape.image ext = img.ext outpath = f'/tmp/workspace/third_nerve_slides/{prefix}_slide{i}.{ext}' with open(outpath, 'wb') as f: f.write(img.blob) print('Done extracting') import os files = os.listdir('/tmp/workspace/third_nerve_slides/') print(f'Total files: {len(files)}') print(files[:10]) " 2>&1

Running Command

mkdir -p /tmp/workspace/third_nerve_slides && python3 -c " from pptx import Presentation import os base = '/tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86928f442' # correct UUID base = '/tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86928f442' import glob results = glob.glob('/tmp/workspace/attachments/**/*.pptx', recursive=True) print('Found files:', results) " 2>&1

Running Command

mkdir -p /tmp/workspace/third_nerve_slides && python3 -c " from pptx import Presentation import os base = '/tmp/workspace/attachments/d3b994a5-1cff-4a91-a085-ecb86328f442' fnames = [ ('third', 'third-nerve-anatomy-and-applied-aspect.pptx'), ('oculomotor', 'oculomotor-nerve.pptx'), ('neuro', 'neuro-ophthalmology-basics.pptx'), ('seminar', 'seminar-ankur-nigam-new-presents-extraocular-muscle-and-motility.pptx'), ] for prefix, fname in fnames: path = f'{base}/{fname}' prs = Presentation(path) for i, slide in enumerate(prs.slides, 1): for shape in slide.shapes: if shape.shape_type == 13: # PICTURE img = shape.image ext = img.ext outpath = f'/tmp/workspace/third_nerve_slides/{prefix}_slide{i:03d}.{ext}' with open(outpath, 'wb') as f: f.write(img.blob) print('Done extracting') files = os.listdir('/tmp/workspace/third_nerve_slides/') files.sort() print(f'Total files: {len(files)}') " 2>&1

Reading File
Finding Sources
Searching Images

third nerve oculomotor nerve anatomy course nucleus fascicle

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

mkdir -p /tmp/workspace/third_nerve_ppt && cat > /tmp/workspace/third_nerve_ppt/build.py << 'PYEOF' from pptx import Presentation from pptx.util import Inches, Pt, Emu from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.util import Inches, Pt import subprocess, json, base64 from io import BytesIO from copy import deepcopy import os prs = Presentation() prs.slide_width = Inches(13.333) prs.slide_height = Inches(7.5) blank = prs.slide_layouts[6] # Color palette NAVY = RGBColor(0x0D, 0x2B, 0x5E) # deep navy TEAL = RGBColor(0x00, 0x7A, 0x8A) # accent teal GOLD = RGBColor(0xF0, 0xA5, 0x00) # gold accent WHITE = RGBColor(0xFF, 0xFF, 0xFF) LGRAY = RGBColor(0xF2, 0xF4, 0xF7) DGRAY = RGBColor(0x33, 0x33, 0x33) RED = RGBColor(0xC0, 0x39, 0x2B) GREEN = RGBColor(0x1A, 0x73, 0x48) LBLUE = RGBColor(0xE8, 0xF4, 0xFD) LORANGE = RGBColor(0xFF, 0xF3, 0xE0) def add_rect(slide, x, y, w, h, color, transparency=0): shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h)) shape.fill.solid() shape.fill.fore_color.rgb = color shape.line.fill.background() return shape def add_textbox(slide, text, x, y, w, h, fontsize=14, bold=False, color=DGRAY, align=PP_ALIGN.LEFT, italic=False, wrap=True): tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) tf = tb.text_frame tf.word_wrap = wrap p = tf.paragraphs[0] p.alignment = align run = p.add_run() run.text = text run.font.size = Pt(fontsize) run.font.bold = bold run.font.italic = italic run.font.color.rgb = color run.font.name = "Calibri" return tb def add_multiline_textbox(slide, lines, x, y, w, h, fontsize=12, title_color=NAVY, body_color=DGRAY, wrap=True): """lines: list of (text, bold, color, size) tuples""" tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) tf = tb.text_frame tf.word_wrap = wrap first = True for (text, bold, color, size) in lines: if first: p = tf.paragraphs[0] first = False else: p = tf.add_paragraph() p.alignment = PP_ALIGN.LEFT run = p.add_run() run.text = text run.font.size = Pt(size) run.font.bold = bold run.font.color.rgb = color run.font.name = "Calibri" return tb def slide_title_bar(slide, title, subtitle=None): """Standard header bar""" add_rect(slide, 0, 0, 13.333, 1.1, NAVY) add_rect(slide, 0, 1.1, 13.333, 0.06, GOLD) add_textbox(slide, title, 0.3, 0.08, 12.5, 0.75, fontsize=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT) if subtitle: add_textbox(slide, subtitle, 0.3, 0.75, 12.5, 0.35, fontsize=14, bold=False, color=GOLD, align=PP_ALIGN.LEFT) def slide_footer(slide, text="Third (Oculomotor) Nerve | Comprehensive Review"): add_rect(slide, 0, 7.2, 13.333, 0.3, NAVY) add_textbox(slide, text, 0.3, 7.22, 10, 0.25, fontsize=9, color=WHITE) def bullet_box(slide, title, bullets, x, y, w, h, bg=LBLUE, title_color=NAVY, bullet_color=DGRAY, fontsize=12): add_rect(slide, x, y, w, 0.38, title_color) add_textbox(slide, title, x+0.08, y+0.03, w-0.16, 0.32, fontsize=13, bold=True, color=WHITE) add_rect(slide, x, y+0.38, w, h-0.38, bg) content = "\n".join(f" \u2022 {b}" for b in bullets) add_textbox(slide, content, x+0.1, y+0.42, w-0.2, h-0.5, fontsize=fontsize, color=bullet_color, wrap=True) def colored_box(slide, title, content, x, y, w, h, title_bg=TEAL, content_bg=LGRAY): add_rect(slide, x, y, w, 0.38, title_bg) add_textbox(slide, title, x+0.08, y+0.03, w-0.16, 0.32, fontsize=12, bold=True, color=WHITE) add_rect(slide, x, y+0.38, w, h-0.38, content_bg) add_textbox(slide, content, x+0.1, y+0.42, w-0.2, h-0.5, fontsize=11, color=DGRAY, wrap=True) # ============================================================ # SLIDE 1: TITLE SLIDE # ============================================================ s = prs.slides.add_slide(blank) add_rect(s, 0, 0, 13.333, 7.5, NAVY) add_rect(s, 0, 0, 0.2, 7.5, GOLD) add_rect(s, 0, 3.0, 13.333, 0.08, GOLD) add_rect(s, 0, 3.08, 13.333, 0.04, TEAL) add_textbox(s, "THE THIRD (OCULOMOTOR) NERVE", 0.5, 1.4, 12.3, 1.2, fontsize=38, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_textbox(s, "From Basics to Localization", 0.5, 2.5, 12.3, 0.6, fontsize=22, bold=False, color=GOLD, align=PP_ALIGN.CENTER) add_rect(s, 0, 3.12, 13.333, 2.88, RGBColor(0x0A, 0x1F, 0x44)) add_textbox(s, "Anatomy | Course | Subnuclear Organization | Localization | Clinical Syndromes", 0.5, 3.5, 12.3, 0.55, fontsize=15, color=TEAL, align=PP_ALIGN.CENTER) add_textbox(s, "Cranial Nerve III | Neuro-Ophthalmology", 0.5, 4.1, 12.3, 0.5, fontsize=13, color=RGBColor(0xAA, 0xCC, 0xFF), align=PP_ALIGN.CENTER) add_textbox(s, "Comprehensive Neurology & Ophthalmology Seminar", 0.5, 6.7, 12.3, 0.5, fontsize=11, color=RGBColor(0x88, 0x99, 0xBB), align=PP_ALIGN.CENTER) # ============================================================ # SLIDE 2: OVERVIEW / TABLE OF CONTENTS # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Overview", "Topics Covered in This Presentation") slide_footer(s) add_rect(s, 0.3, 1.25, 13.0, 5.85, LGRAY) topics = [ ("01", "Introduction & General Facts", "Classification, fiber types, clinical significance"), ("02", "Embryology & Development", "Origin, neural crest, developmental anomalies"), ("03", "Nucleus & Subnuclei", "Edinger-Westphal, subnuclear organization, crossed fibers"), ("04", "Fascicular Course (Brainstem)", "Through tegmentum, red nucleus, cerebral peduncle"), ("05", "Subarachnoid Space Course", "Between SCA & PCA, relation to PCOM aneurysm"), ("06", "Cavernous Sinus", "Position, divisions, relations to other CNs"), ("07", "Superior Orbital Fissure & Orbit", "Divisions, target muscles, ciliary ganglion"), ("08", "Complete CN III Palsy", "Clinical features, pupil involvement, ptosis"), ("09", "Localization of Lesions", "Nuclear, fascicular, subarachnoid, cavernous, orbital"), ("10", "Brainstem Syndromes", "Weber, Benedikt, Claude, Nothnagel, Plus-Minus"), ("11", "Pupil in CN III Palsy", "Surgical vs Medical pupil, PCOM aneurysm rule"), ("12", "Aberrant Regeneration", "Primary vs Secondary, signs, causes"), ] cols = [(0.4, 0.35), (6.8, 0.35)] # (x, col_offset_y) for idx, (num, title, desc) in enumerate(topics): col = idx % 2 row = idx // 2 x_base = 0.4 if col == 0 else 6.9 y_base = 1.35 + row * 0.5 add_rect(s, x_base, y_base+0.05, 0.42, 0.38, NAVY) add_textbox(s, num, x_base+0.01, y_base+0.06, 0.4, 0.32, fontsize=13, bold=True, color=GOLD, align=PP_ALIGN.CENTER) add_textbox(s, title, x_base+0.48, y_base+0.04, 5.4, 0.25, fontsize=12, bold=True, color=NAVY) add_textbox(s, desc, x_base+0.48, y_base+0.26, 5.4, 0.2, fontsize=9, color=DGRAY) # ============================================================ # SLIDE 3: INTRODUCTION # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Introduction to the Oculomotor Nerve", "Cranial Nerve III - Overview") slide_footer(s) bullet_box(s, "General Facts", [ "Largest of the three ocular motor cranial nerves", "Somatic efferent + visceral efferent (parasympathetic) components", "Innervates 4 of 6 extraocular muscles + levator palpebrae", "Carries preganglionic parasympathetic fibers to ciliary ganglion", "Exits brainstem at interpeduncular fossa (ventral midbrain)", "Classified as: GSE (general somatic efferent) + GVE (general visceral efferent)", ], 0.3, 1.3, 5.9, 3.0, bg=LBLUE) bullet_box(s, "Muscles Innervated (Mnemonic: SIR MED)", [ "Superior Rectus (SR) - elevation", "Inferior Rectus (IR) - depression", "Medial Rectus (MR) - adduction", "Inferior Oblique (IO) - extorsion, elevation in adduction", "Levator Palpebrae Superioris (LPS) - eyelid elevation", "Sphincter pupillae (via ciliary ganglion) - miosis", "Ciliary muscle (via ciliary ganglion) - accommodation", ], 6.4, 1.3, 6.6, 3.5, bg=LORANGE) bullet_box(s, "Key Clinical Significance", [ "Complete palsy: ptosis + down-and-out eye + dilated pupil", "Pupillary involvement = surgical (compressive) cause until proven otherwise", "PCOM aneurysm is the most feared compressive etiology", "Diabetic/ischemic: pupil-sparing, painful, self-resolving", "Aberrant regeneration indicates slow-growing/compressive cause", ], 0.3, 4.5, 12.7, 2.8, bg=RGBColor(0xE8, 0xF8, 0xEE), title_color=GREEN) # ============================================================ # SLIDE 4: EMBRYOLOGY # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Embryology & Development", "Origin and Development of CN III") slide_footer(s) bullet_box(s, "Neural Origin", [ "Nucleus develops from basal plate of mesencephalon", "Edinger-Westphal nucleus = visceral efferent component", "Somatic motor fibers arise from oculomotor nuclear complex", "Fibers grow toward their target muscles during week 5-6", "Ciliary ganglion derived from neural crest cells", ], 0.3, 1.3, 6.2, 3.2, bg=LBLUE) bullet_box(s, "Clinical Pearls in Development", [ "Congenital CN III palsy: most common congenital cranial nerve palsy", "May be due to birth trauma or developmental aplasia", "Aberrant regeneration is common in congenital palsy", "Duane syndrome type 3: co-innervation of LR by CN III fibers", "Cyclic oculomotor palsy: rare congenital - alternating palsy/spasm", ], 6.7, 1.3, 6.3, 3.2, bg=LORANGE) bullet_box(s, "Developmental Anomalies", [ "Congenital 3rd nerve palsy with or without aberrant regeneration", "Superior division isolated palsy (congenital) - ptosis + SR palsy", "Monocular elevation palsy (double elevator palsy) - SR + IO paresis", "Aplasia of oculomotor nucleus: extremely rare", ], 0.3, 4.65, 12.7, 2.65, bg=RGBColor(0xF3, 0xE5, 0xF5), title_color=RGBColor(0x6A, 0x1B, 0x9A)) # ============================================================ # SLIDE 5: NUCLEUS & SUBNUCLEAR ORGANIZATION # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Oculomotor Nucleus & Subnuclear Organization", "Location, Structure, Special Rules") slide_footer(s) add_rect(s, 0.3, 1.25, 12.73, 0.4, NAVY) add_textbox(s, "Location: Dorsal midbrain, ventral to periaqueductal gray (PAG), at level of superior colliculus", 0.4, 1.27, 12.5, 0.35, fontsize=13, bold=True, color=WHITE) # Subnuclei table headers = ["Subnucleus", "Innervation", "Special Feature"] rows = [ ["Superior Rectus (SR)", "Contralateral SR", "ONLY crossed subnucleus"], ["Inferior Rectus (IR)", "Ipsilateral IR", "Ipsilateral innervation"], ["Medial Rectus (MR)", "Ipsilateral MR", "Ipsilateral innervation"], ["Inferior Oblique (IO)", "Ipsilateral IO", "Ipsilateral innervation"], ["Central Caudal Nucleus (CCN)", "BILATERAL LPS", "Single midline nucleus - bilateral ptosis if damaged"], ["Edinger-Westphal (EW)", "Sphincter pupillae + Ciliary m.", "Visceral efferent, dorsal position, SURFACE fibers"], ] col_widths = [3.2, 4.8, 4.5] col_x = [0.3, 3.5, 8.3] # Header for ci, (hdr, cw, cx) in enumerate(zip(headers, col_widths, col_x)): add_rect(s, cx, 1.72, cw-0.05, 0.38, TEAL) add_textbox(s, hdr, cx+0.05, 1.74, cw-0.1, 0.32, fontsize=12, bold=True, color=WHITE) row_colors = [LGRAY, WHITE, LGRAY, WHITE, RGBColor(0xFF, 0xF0, 0xD0), RGBColor(0xE8, 0xF8, 0xEE)] for ri, (row_data, bg) in enumerate(zip(rows, row_colors)): y = 2.1 + ri * 0.42 for ci, (cell, cw, cx) in enumerate(zip(row_data, col_widths, col_x)): add_rect(s, cx, y, cw-0.05, 0.4, bg) fs = 10 if ri == 4 else 11 bold = ri in [4, 5] and ci == 0 add_textbox(s, cell, cx+0.05, y+0.02, cw-0.1, 0.36, fontsize=fs, bold=bold, color=DGRAY) # Key rules box add_rect(s, 0.3, 4.7, 12.73, 0.35, RED) add_textbox(s, "CRITICAL NUCLEAR RULES", 0.4, 4.72, 12.0, 0.28, fontsize=13, bold=True, color=WHITE) add_rect(s, 0.3, 5.05, 12.73, 2.2, RGBColor(0xFF, 0xEB, 0xEE)) rules = [ "1. SR subnucleus innervates the CONTRALATERAL superior rectus - so nuclear lesion causes BILATERAL SR palsy", "2. CCN is a SINGLE midline nucleus - unilateral nuclear lesion = BILATERAL ptosis (paradox in localization!)", "3. EW fibers travel on the DORSOMEDIAL SURFACE of the nerve - compressed FIRST by external compression (aneurysm)", "4. Fascicular fibers to EW lie near surface - compressive lesions cause pupil dilation EARLY", "5. Nuclear lesion cannot cause isolated complete unilateral CN III palsy (bilateral SR + bilateral ptosis expected)", ] for ri, rule in enumerate(rules): add_textbox(s, rule, 0.45, 5.08 + ri * 0.41, 12.4, 0.38, fontsize=11, color=RED if ri < 2 else DGRAY, bold=ri < 2) # ============================================================ # SLIDE 6: FASCICULAR COURSE # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Fascicular Course (Intra-Axial / Brainstem)", "Through Midbrain Tegmentum to Exit") slide_footer(s) add_rect(s, 0.3, 1.25, 12.73, 5.85, LGRAY) # Left column: pathway description bullet_box(s, "Course of the Fascicle", [ "Arises from ventral surface of oculomotor nuclear complex", "Passes VENTRALLY through midbrain tegmentum", "Traverses (or is adjacent to) the RED NUCLEUS (dentato-rubro-thalamic tract)", "Passes through the SUBSTANTIA NIGRA region", "Runs medial to / through CEREBRAL PEDUNCLE (corticospinal fibers)", "Emerges as 3-4 rootlets at the LATERAL INTERPEDUNCULAR FOSSA", "Rootlets coalesce into the CN III trunk in the cistern", "Total intra-axial course: approx 2 cm", ], 0.4, 1.35, 6.0, 3.8) # Right column: structures adjacent bullet_box(s, "Adjacent Structures (Clinically Important)", [ "Red nucleus: damage -> Benedikt / Claude syndrome", "Cerebral peduncle (corticospinal): damage -> Weber syndrome", "Substantia nigra: dopaminergic fibers, damage -> choreiform movements", "Periaqueductal gray: vertical gaze, consciousness", "MLF (medial longitudinal fasciculus): INO if involved", "Superior cerebellar peduncle (Dentato-rubro-thalamic): ataxia", ], 6.55, 1.35, 6.4, 3.8, bg=LORANGE) # Brainstem syndromes table add_rect(s, 0.3, 5.25, 12.73, 0.35, NAVY) add_textbox(s, "Brainstem Syndromes - Preview", 0.4, 5.27, 10, 0.28, fontsize=12, bold=True, color=WHITE) add_rect(s, 0.3, 5.6, 12.73, 1.45, RGBColor(0xF0, 0xF4, 0xFF)) syndromes = [ ("Weber", "Fascicle + Cerebral Peduncle", "CN III palsy + contralateral hemiplegia"), ("Benedikt", "Fascicle + Red Nucleus/SN", "CN III palsy + contralateral choreiform/tremor"), ("Claude", "Fascicle + Red Nuc + SCP", "CN III palsy + contralateral ataxia + tremor"), ] for ci, (name, struct, feat) in enumerate(syndromes): x = 0.4 + ci * 4.25 add_rect(s, x, 5.62, 4.1, 0.3, TEAL) add_textbox(s, name + " Syndrome", x+0.05, 5.64, 4.0, 0.25, fontsize=11, bold=True, color=WHITE) add_textbox(s, struct, x+0.05, 5.95, 4.0, 0.3, fontsize=10, bold=True, color=NAVY) add_textbox(s, feat, x+0.05, 6.25, 4.0, 0.75, fontsize=10, color=DGRAY, wrap=True) # ============================================================ # SLIDE 7: SUBARACHNOID COURSE # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Subarachnoid Space Course", "From Interpeduncular Fossa to Cavernous Sinus") slide_footer(s) colored_box(s, "Path Through Subarachnoid Space", "Exits brainstem at lateral interpeduncular fossa -> enters basal cistern -> travels anterolaterally -> passes BETWEEN SCA (superiorly) and PCA (posteriorly) -> courses PARALLEL to and lateral to the PCOM artery -> enters the dural sheath at the petroclinoid ligament -> enters cavernous sinus", 0.3, 1.25, 12.73, 1.55, TEAL, LGRAY) bullet_box(s, "Key Relations in Subarachnoid Space", [ "BETWEEN: Superior Cerebellar Artery (SCA) above and Posterior Cerebral Artery (PCA) below", "PCOM (Posterior Communicating Artery): runs parallel, CN III lies LATERAL to PCOM", "At PCOM-ICA junction: aneurysm at this site is the MOST FEARED cause of CN III palsy", "Tentorial edge (Kernohan notch): CN III compressed by uncal herniation here", "Distance from brainstem to cavernous sinus: ~40-50 mm", "The nerve is vulnerable to stretching during downward herniation", ], 0.3, 2.95, 8.0, 3.55, bg=LBLUE) # Red alert box for PCOM aneurysm add_rect(s, 8.5, 2.95, 4.53, 1.8, RED) add_textbox(s, "DANGER ZONE", 8.6, 3.0, 4.3, 0.4, fontsize=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_textbox(s, "PCOM Aneurysm", 8.6, 3.42, 4.3, 0.35, fontsize=13, bold=True, color=GOLD, align=PP_ALIGN.CENTER) add_textbox(s, "Pupil-INVOLVING CN III palsy\n= Compressive until proven otherwise\nRequire URGENT neuroimaging\n(CTA or MRA or DSA)", 8.6, 3.8, 4.3, 1.0, fontsize=11, color=WHITE, align=PP_ALIGN.CENTER) add_rect(s, 8.5, 4.9, 4.53, 1.6, RGBColor(0x1A, 0x5C, 0x3A)) add_textbox(s, "Pupil-SPARING Rule", 8.6, 4.95, 4.3, 0.38, fontsize=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_textbox(s, "Complete ptosis + complete EOM palsy + NORMAL pupil\n= Ischemic/diabetic etiology likely\n(BUT: image if any doubt!)", 8.6, 5.35, 4.3, 1.1, fontsize=11, color=WHITE, align=PP_ALIGN.CENTER) bullet_box(s, "Causes at Subarachnoid Level", [ "Aneurysm (PCOM, ICA, basilar tip, SCA)", "Uncal herniation compressing against tentorial edge", "Meningitis (TB, sarcoid, carcinomatous, fungal)", "Trauma (dural tearing, stretching)", "Ophthalmoplegic migraine (recurrent CN III palsy)", "Neurosarcoidosis, CNS vasculitis, SLE", "Subarachnoid hemorrhage", ], 0.3, 6.56, 8.0, 0.85, bg=RGBColor(0xE8, 0xF4, 0xFD), fontsize=10) # ============================================================ # SLIDE 8: CAVERNOUS SINUS # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Cavernous Sinus Segment", "Anatomy, Relations & Clinical Significance") slide_footer(s) colored_box(s, "Position in Cavernous Sinus", "CN III travels in the SUPERIOR PART of the lateral dural wall of the cavernous sinus. It is the HIGHEST of the cranial nerves in the cavernous sinus. The nerve DIVIDES into Superior and Inferior Divisions in the ANTERIOR cavernous sinus, just before the Superior Orbital Fissure.", 0.3, 1.25, 12.73, 1.35, NAVY, LBLUE) # CS contents table add_rect(s, 0.3, 2.7, 12.73, 0.38, TEAL) add_textbox(s, "Contents of Cavernous Sinus (Lateral Wall, Superior to Inferior)", 0.4, 2.72, 12.0, 0.32, fontsize=13, bold=True, color=WHITE) cs_contents = [ ("CN III", "Highest", "Superior lateral wall", "Most superior - affected first by mass"), ("CN IV", "2nd", "Lateral wall below CN III", "Small nerve, often spared initially"), ("CN V1", "3rd", "Lateral wall below CN IV", "Pain from lesions, Herpes zoster"), ("CN V2", "4th", "Lateral wall (most inferior)", "Maxillary branch"), ("CN VI", "Medial", "WITHIN the sinus (not in wall!)", "Most susceptible to pressure changes"), ("ICA", "Central", "Runs through sinus", "With sympathetic fibers (Horner if damaged)"), ] headers2 = ["Nerve", "Position", "Location in CS", "Clinical Note"] col_w2 = [1.5, 1.8, 4.8, 4.5] col_x2 = [0.3, 1.85, 3.7, 8.55] for ci, (hdr, cw, cx) in enumerate(zip(headers2, col_w2, col_x2)): add_rect(s, cx, 3.08, cw-0.04, 0.35, NAVY) add_textbox(s, hdr, cx+0.04, 3.1, cw-0.08, 0.28, fontsize=11, bold=True, color=WHITE) for ri, (row_data, bg) in enumerate(zip(cs_contents, [LGRAY, WHITE]*3)): y = 3.43 + ri * 0.38 for ci, (cell, cw, cx) in enumerate(zip(row_data, col_w2, col_x2)): col = RED if ri == 0 and ci == 0 else DGRAY add_rect(s, cx, y, cw-0.04, 0.36, bg) add_textbox(s, cell, cx+0.04, y+0.02, cw-0.08, 0.3, fontsize=10, color=col, bold=(ri==0 and ci==0)) bullet_box(s, "Causes of Lesions at Cavernous Sinus", [ "Cavernous sinus thrombosis (painful, all nerves involved)", "Pituitary apoplexy (sudden onset, bilateral)", "Pituitary adenoma (slow growing, may spare pupil initially)", "Meningioma (progressive painless)", "Nasopharyngeal carcinoma / skull base metastases", "Carotid-cavernous fistula (CCF): pulsatile exophthalmos, bruit", "Tolosa-Hunt syndrome (painful ophthalmoplegia, steroid-responsive)", "Herpes zoster (V1 distribution + ophthalmoplegia)", "Internal carotid artery aneurysm within sinus", ], 0.3, 5.72, 12.73, 1.5, bg=RGBColor(0xFFF3E0), title_color=RGBColor(0xE65100), fontsize=10) # ============================================================ # SLIDE 9: SUPERIOR ORBITAL FISSURE & ORBIT # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Superior Orbital Fissure & Orbital Segment", "Divisions and Target Muscles") slide_footer(s) colored_box(s, "Division into Superior and Inferior Divisions", "The nerve DIVIDES just before entering the superior orbital fissure (anatomically) or in the anterior cavernous sinus. Within the annulus of Zinn at the SOF, both divisions pass INSIDE the annulus.", 0.3, 1.25, 12.73, 1.1, NAVY, LBLUE) bullet_box(s, "Superior Division (Upper)", [ "Enters orbit via SOF WITHIN the annulus of Zinn", "Innervates: Superior Rectus (SR)", "Innervates: Levator Palpebrae Superioris (LPS)", "Selective damage -> Ptosis + Inability to elevate eye", "Clinical: Congenital or post-traumatic superior divisional palsy", ], 0.3, 2.45, 6.2, 3.0, bg=LBLUE) bullet_box(s, "Inferior Division (Lower)", [ "Enters orbit via SOF WITHIN the annulus of Zinn", "Innervates: Medial Rectus (MR) - adduction", "Innervates: Inferior Rectus (IR) - depression", "Innervates: Inferior Oblique (IO) - elevation in adduction", "Carries PARASYMPATHETIC fibers -> Ciliary Ganglion", "Ciliary ganglion -> short ciliary nerves -> sphincter & ciliary m.", "Clinical: Inferior division palsy -> multiple EOM loss + dilated pupil", ], 6.7, 2.45, 6.3, 3.0, bg=LORANGE) bullet_box(s, "Contents Through SOF (Mnemonic: LFT + 3456)", [ "Within annulus (ring of Zinn): CN III (sup+inf div), CN VI, Nasociliary nerve (CN V1 branch)", "Outside annulus: CN IV, Frontal nerve (CN V1), Lacrimal nerve (CN V1), Superior ophthalmic vein", "Orbital apex syndrome: ALL structures affected (CN III, IV, V1, VI + optic nerve = orbital apex syndrome)", ], 0.3, 5.55, 12.73, 1.9, bg=RGBColor(0xE8, 0xF8, 0xEE), title_color=GREEN, fontsize=11) # ============================================================ # SLIDE 10: CLINICAL FEATURES OF COMPLETE CN III PALSY # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Complete CN III Palsy - Clinical Features", "Signs, Symptoms, Examination") slide_footer(s) # Main features features = [ ("PTOSIS", "Complete (total)\nLevator palpebrae paralysis\nPatient cannot elevate lid", RED), ("DOWN AND OUT\nPOSITION", "Eye in infraducted +\nabducted position\n(action of SO & LR only)", NAVY), ("DIPLOPIA", "Vertical + horizontal\nImage from affected eye:\nup & medially projected", TEAL), ("MYDRIASIS", "Dilated, non-reactive pupil\n(iridoplegia + cycloplegia)\nParasympathetic fibers involved", RGBColor(0x8B, 0x00, 0x00)), ] for ci, (title, desc, color) in enumerate(features): x = 0.3 + ci * 3.25 add_rect(s, x, 1.25, 3.15, 0.55, color) add_textbox(s, title, x+0.08, 1.28, 3.0, 0.45, fontsize=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_rect(s, x, 1.8, 3.15, 1.5, LGRAY) add_textbox(s, desc, x+0.08, 1.85, 3.0, 1.4, fontsize=11, color=DGRAY, wrap=True, align=PP_ALIGN.CENTER) # Specific EOM losses add_rect(s, 0.3, 3.4, 12.73, 0.38, NAVY) add_textbox(s, "Loss of Eye Movements - Direction by Direction", 0.4, 3.42, 12.0, 0.3, fontsize=13, bold=True, color=WHITE) eom_data = [ ("Adduction (in)", "Medial Rectus", "Eye cannot turn in"), ("Elevation (up)", "Superior Rectus + IO", "Eye cannot look up"), ("Depression (down)", "Inferior Rectus", "Eye cannot look down (except by SO)"), ("Intorsion", "PRESERVED (by SO/CN IV)", "Superior oblique intact - intorts on down gaze"), ("Abduction (out)", "PRESERVED (by LR/CN VI)", "Lateral rectus intact - eye abducts"), ("Extorsion", "Inferior Oblique - LOST", "No extorsion"), ] for ri, (direction, muscle, note) in enumerate(eom_data): y = 3.82 + ri * 0.38 bg = LGRAY if ri % 2 == 0 else WHITE add_rect(s, 0.3, y, 3.5, 0.36, bg) add_rect(s, 3.85, y, 4.5, 0.36, bg) add_rect(s, 8.4, y, 4.63, 0.36, bg) add_textbox(s, direction, 0.35, y+0.02, 3.4, 0.3, fontsize=11, bold=True, color=NAVY) add_textbox(s, muscle, 3.9, y+0.02, 4.4, 0.3, fontsize=11, color=DGRAY) add_textbox(s, note, 8.45, y+0.02, 4.5, 0.3, fontsize=10, color=DGRAY) add_textbox(s, "Key: The remaining SO (CN IV) + LR (CN VI) give the 'DOWN AND OUT' position", 0.3, 6.2, 12.73, 0.35, fontsize=11, bold=True, color=RED) bullet_box(s, "Mnemonic: DPMD", [ "D - Diplopia (vertical+horizontal)", "P - Ptosis (complete)", "M - Mydriasis (dilated non-reactive pupil)", "D - Deviation (down and out position)", ], 0.3, 6.55, 12.73, 0.82, bg=RGBColor(0xE8, 0xF8, 0xEE), title_color=GREEN, fontsize=10) # ============================================================ # SLIDE 11: LOCALIZATION OVERVIEW TABLE # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Localization of CN III Lesions", "Segment-by-Segment Approach") slide_footer(s) add_rect(s, 0.3, 1.25, 12.73, 0.38, NAVY) add_textbox(s, "Five Anatomical Sites Where CN III Can Be Damaged", 0.4, 1.27, 12.0, 0.32, fontsize=13, bold=True, color=WHITE) loc_data = [ ("1. NUCLEAR\n(Brainstem)", "- Bilateral ptosis (CCN midline)\n- CONTRALATERAL SR palsy\n- Cannot cause isolated unilateral CN III palsy\n- Associated with other CN/long tract signs", "Infarct, demyelination, tumor, hemorrhage, Wernicke's"), ("2. FASCICULAR\n(Intra-axial)", "- Ipsilateral CN III palsy +/- pupil\n- Associated crossed signs\n- Weber (+ hemiplegia), Benedikt (+ tremor)\n- Claude (+ ataxia), Nothnagel (+ cerebellar)", "Infarct, AVM, MS plaque, tumor (brainstem glioma), Wernicke's"), ("3. SUBARACHNOID\nSpace", "- PUPIL INVOLVED (outer fibers compressed first)\n- PAINFUL typically\n- No crossed signs\n- Complete or divisional palsy", "PCOM aneurysm, uncal herniation, trauma, meningitis, SAH, ophthalmoplegic migraine"), ("4. CAVERNOUS\nSINUS", "- CN III + IV + V1 + VI palsy\n- Horner syndrome (ICA involvement)\n- Primary aberrant regeneration possible\n- Painful or painless", "CS thrombosis, ICA aneurysm, pituitary apoplexy, meningioma, CCF, Tolosa-Hunt"), ("5. SUPERIOR\nORBITAL FISSURE\n/ ORBIT", "- Superior or inferior divisional palsy\n- Proptosis if orbital lesion\n- Optic nerve may be involved (orbital apex)\n- CN III + IV + V1 + VI (SOF)", "Thyroid eye disease, orbital pseudotumor, metastases, primary orbital tumor, trauma, lymphoma"), ] colors = [RGBColor(0xD3, 0x00, 0x00), RGBColor(0xE6, 0x5C, 0x00), TEAL, NAVY, RGBColor(0x1A, 0x73, 0x48)] for ri, ((loc, features, causes), color) in enumerate(zip(loc_data, colors)): y = 1.7 + ri * 1.05 add_rect(s, 0.3, y, 2.6, 1.0, color) add_textbox(s, loc, 0.35, y+0.05, 2.5, 0.9, fontsize=11, bold=True, color=WHITE, wrap=True) add_rect(s, 2.95, y, 5.85, 1.0, LGRAY if ri % 2 == 0 else WHITE) add_textbox(s, features, 3.0, y+0.03, 5.75, 0.93, fontsize=9.5, color=DGRAY, wrap=True) add_rect(s, 8.85, y, 4.2, 1.0, RGBColor(0xF8, 0xF9, 0xFA) if ri % 2 == 0 else LGRAY) add_textbox(s, causes, 8.9, y+0.03, 4.1, 0.93, fontsize=9, color=DGRAY, italic=True, wrap=True) add_rect(s, 2.95, 1.7, 5.85, 0, WHITE) add_rect(s, 0.3, 1.66, 2.6, 0.06, GOLD) add_textbox(s, "LOCATION", 0.35, 1.27, 2.5, 0.32, fontsize=11, bold=True, color=WHITE) add_textbox(s, "LOCALIZING FEATURES", 3.0, 1.27, 5.75, 0.32, fontsize=11, bold=True, color=WHITE) add_textbox(s, "COMMON CAUSES", 8.9, 1.27, 4.0, 0.32, fontsize=11, bold=True, color=WHITE) # ============================================================ # SLIDE 12: BRAINSTEM SYNDROMES # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Brainstem Syndromes Involving CN III", "Fascicular Lesions & Crossed Syndromes") slide_footer(s) syndromes_detail = [ ("Weber Syndrome", "Fascicle + Cerebral Peduncle\n(Corticospinal tract)", "Ipsilateral CN III palsy\n+ Contralateral HEMIPLEGIA\n(corticospinal tract - arm, face, leg)", "Stroke (PCA or basilar perforators)\nTumor, AVM, demyelination", RED), ("Benedikt Syndrome", "Fascicle + Red Nucleus\n+ Substantia Nigra", "Ipsilateral CN III palsy\n+ Contralateral CHOREIFORM movements / rubral tremor\n(or hemiataxia)", "Infarction (paramedian midbrain)\nCavernoma, AVM, tumor", TEAL), ("Claude Syndrome", "Fascicle + Red Nucleus\n+ Superior Cerebellar Peduncle", "Ipsilateral CN III palsy\n+ Contralateral CEREBELLAR ATAXIA\n+ Contralateral tremor (less marked)", "Paramedian midbrain infarct\nSimilar to Benedikt with more cerebellar", NAVY), ("Nothnagel Syndrome", "Fascicle + Superior\nCerebellar Peduncle (unilateral)", "Ipsilateral CN III palsy\n+ Ipsilateral CEREBELLAR ATAXIA\n(classic but rare)", "Dorsal midbrain lesion\nTumor of quadrigeminal plate region", RGBColor(0x6A, 0x1B, 0x9A)), ("Plus-Minus Syndrome", "Paramedian mesencephalon\n(near CCN and EW)", "Ipsilateral PTOSIS\n+ Contralateral LID RETRACTION\n(no full CN III palsy)", "Paramedian midbrain lesion\n(between CCN and ION of CN III nucleus)", GREEN), ] for ri, (name, structure, features, causes, color) in enumerate(syndromes_detail): col = ri % 2 row = ri // 2 if ri == 4: # last one, center it x = 4.5 y = 1.3 + row * 2.8 else: x = 0.3 + col * 6.6 y = 1.3 + row * 2.75 add_rect(s, x, y, 6.3, 0.4, color) add_textbox(s, name, x+0.08, y+0.05, 6.15, 0.32, fontsize=14, bold=True, color=WHITE) add_rect(s, x, y+0.4, 2.5, 2.28, LGRAY) add_textbox(s, "Structure:", x+0.08, y+0.42, 2.35, 0.25, fontsize=10, bold=True, color=color) add_textbox(s, structure, x+0.08, y+0.66, 2.35, 1.3, fontsize=10, color=DGRAY, wrap=True) add_rect(s, x+2.55, y+0.4, 2.0, 2.28, WHITE) add_textbox(s, "Features:", x+2.6, y+0.42, 1.9, 0.25, fontsize=10, bold=True, color=color) add_textbox(s, features, x+2.6, y+0.66, 1.9, 1.3, fontsize=10, color=DGRAY, wrap=True) add_rect(s, x+4.6, y+0.4, 1.65, 2.28, LORANGE) add_textbox(s, "Cause:", x+4.65, y+0.42, 1.55, 0.25, fontsize=10, bold=True, color=RGBColor(0xE6, 0x5C, 0x00)) add_textbox(s, causes, x+4.65, y+0.66, 1.55, 1.3, fontsize=9.5, color=DGRAY, wrap=True) # ============================================================ # SLIDE 13: PUPIL IN CN III PALSY # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "The Pupil in CN III Palsy", "Surgical vs Medical Pupil - Critical Decision Making") slide_footer(s) # Two main boxes add_rect(s, 0.3, 1.25, 6.2, 4.5, RGBColor(0xFF, 0xEB, 0xEE)) add_rect(s, 0.3, 1.25, 6.2, 0.5, RED) add_textbox(s, "SURGICAL PUPIL (Pupil INVOLVED)", 0.4, 1.3, 6.0, 0.38, fontsize=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER) surgical_points = [ "Pupil DILATED and NON-REACTIVE", "Compressive / surgical cause", "MOST FEARED: PCOM aneurysm", "Other: tumors, uncal herniation", "EW fibers on SURFACE - compressed FIRST", "EMERGENCY: urgent CTA/MRA/DSA", "Even partial pupil dilation is suspicious", "Rule: Pupil involved = aneurysm until proven otherwise", ] for ri, point in enumerate(surgical_points): y = 1.82 + ri * 0.36 add_textbox(s, f"• {point}", 0.4, y, 6.0, 0.32, fontsize=11, color=RED if ri in [0,1,2,7] else DGRAY, bold=ri in [0,1,2,7]) add_rect(s, 6.7, 1.25, 6.3, 4.5, RGBColor(0xE8, 0xF8, 0xEE)) add_rect(s, 6.7, 1.25, 6.3, 0.5, GREEN) add_textbox(s, "MEDICAL PUPIL (Pupil SPARING)", 6.8, 1.3, 6.1, 0.38, fontsize=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER) medical_points = [ "Pupil NORMAL size and REACTIVE", "Ischemic / microvascular cause", "Risk factors: DM, HTN, atherosclerosis", "EW fibers spared (central ischemia)", "Typically PAINFUL (ipsilateral)", "Spontaneous resolution in 8-12 weeks", "Common in elderly diabetics", "BUT: anisocoria >2mm warrants imaging", ] for ri, point in enumerate(medical_points): y = 1.82 + ri * 0.36 add_textbox(s, f"• {point}", 6.8, y, 6.1, 0.32, fontsize=11, color=GREEN if ri in [0,1,2,3] else DGRAY, bold=ri in [0,1,2,3]) # Critical algorithm add_rect(s, 0.3, 5.85, 12.7, 0.38, NAVY) add_textbox(s, "CLINICAL ALGORITHM: When to image urgently", 0.4, 5.87, 12.0, 0.3, fontsize=13, bold=True, color=WHITE) add_rect(s, 0.3, 6.23, 12.7, 1.0, RGBColor(0xF0, 0xF4, 0xFF)) add_textbox(s, "Image URGENTLY if: (1) Pupil involved (dilated >2mm) | (2) Incomplete/partial palsy | (3) Progressive palsy | (4) No vascular risk factors | (5) Age <50 | (6) Pain alone (PCOM aneurysm can present with pain before palsy) | (7) Failure to resolve at 12 weeks", 0.4, 6.26, 12.5, 0.92, fontsize=11, color=DGRAY, wrap=True) # ============================================================ # SLIDE 14: ABERRANT REGENERATION # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Aberrant Regeneration of CN III", "Types, Signs, Clinical Significance") slide_footer(s) bullet_box(s, "What is Aberrant Regeneration?", [ "Misdirected regrowth of CN III axons after injury to incorrect target muscles", "Fibers originally meant for one muscle re-innervate another muscle or the iris", "Result: synkinetic movements - eyelid or pupil move with unintended eye movements", "Develops over months after an acute CN III palsy", ], 0.3, 1.25, 12.73, 1.7, bg=LBLUE) bullet_box(s, "Classic Signs of Aberrant Regeneration", [ "Pseudo-Graefe sign: eyelid elevates on ADDuction or DEPression (not on upgaze)", "Pupillary constriction on ADDuction (misdirected pupilloconstrictor fibers)", "Monocular vertical nystagmus on attempted vertical gaze (rare)", "Lid elevation on downward gaze (reverse Graefe)", "Inability to depress eye in adduction (inferior rectus fibers rerouted to LPS)", "Fixed mid-dilated pupil with eye movement (light-near dissociation possible)", ], 0.3, 3.1, 12.73, 2.7, bg=LORANGE, title_color=RGBColor(0xE6, 0x5C, 0x00)) # Primary vs Secondary add_rect(s, 0.3, 5.9, 6.1, 0.38, NAVY) add_textbox(s, "PRIMARY (Spontaneous)", 0.4, 5.92, 5.9, 0.3, fontsize=12, bold=True, color=WHITE) add_rect(s, 0.3, 6.28, 6.1, 1.05, LGRAY) add_textbox(s, "No preceding acute palsy\nCauses: Cavernous sinus meningioma, ICA aneurysm (intracavernous)\nNEVER from ischemia\nRequires URGENT workup", 0.4, 6.3, 5.9, 0.95, fontsize=11, color=RED, wrap=True) add_rect(s, 6.7, 5.9, 6.3, 0.38, TEAL) add_textbox(s, "SECONDARY (Post-Palsy)", 6.8, 5.92, 6.1, 0.3, fontsize=12, bold=True, color=WHITE) add_rect(s, 6.7, 6.28, 6.3, 1.05, LGRAY) add_textbox(s, "After acute CN III palsy\nCauses: PCOM aneurysm, trauma, idiopathic\nNEVER after ischemic/diabetic palsy\nPCOM aneurysm most common secondary cause", 6.8, 6.3, 6.1, 0.95, fontsize=11, color=DGRAY, wrap=True) # ============================================================ # SLIDE 15: CLINICAL APPROACH # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Clinical Approach to CN III Palsy", "Step-by-Step Evaluation") slide_footer(s) steps = [ ("STEP 1", "Confirm CN III Palsy", "Ptosis (partial/complete?) | EOM: which muscles? Complete or divisional? | Pupil: dilated/reactive? | Pain?", NAVY), ("STEP 2", "Classify: Complete vs Divisional", "Superior div: SR + LPS palsy | Inferior div: IR + MR + IO + pupil | Isolated muscle palsy (check for myasthenia)", TEAL), ("STEP 3", "Assess the PUPIL", "Pupil involved -> SURGICAL (aneurysm until proven otherwise) -> URGENT imaging\nPupil sparing + complete palsy + vascular RF -> medical/ischemic -> observe", RED), ("STEP 4", "Look for Associated Signs", "Crossed signs (hemiplegia, ataxia) -> brainstem | Multiple CN -> cavernous sinus | Proptosis -> orbital | Fever/meningism -> meningitis", RGBColor(0x6A, 0x1B, 0x9A)), ("STEP 5", "Imaging & Workup", "All patients: MRI brain | Pupil involved/aneurysm suspected: CTA or MRA; if negative DSA | Bloods: FBS, HbA1c, ESR, CRP, CBC", GREEN), ("STEP 6", "Monitor & Follow Up", "Ischemic: reassess q4 weeks, full recovery in 8-12 weeks | No recovery at 3 months -> re-image | Aberrant regeneration -> consider cavernous cause", RGBColor(0xE6, 0x5C, 0x00)), ] for ri, (step, title, desc, color) in enumerate(steps): col = ri % 2 row = ri // 2 x = 0.3 + col * 6.55 y = 1.3 + row * 1.9 add_rect(s, x, y, 6.3, 0.42, color) add_textbox(s, step, x+0.07, y+0.07, 1.0, 0.28, fontsize=11, bold=True, color=GOLD) add_textbox(s, title, x+1.1, y+0.07, 5.1, 0.28, fontsize=12, bold=True, color=WHITE) add_rect(s, x, y+0.42, 6.3, 1.45, RGBColor(0xF7, 0xF8, 0xFA)) add_textbox(s, desc, x+0.1, y+0.47, 6.1, 1.35, fontsize=10.5, color=DGRAY, wrap=True) # ============================================================ # SLIDE 16: SUMMARY # ============================================================ s = prs.slides.add_slide(blank) slide_title_bar(s, "Summary: CN III Localization at a Glance", "Key Teaching Points") slide_footer(s) add_rect(s, 0.3, 1.25, 12.73, 0.38, NAVY) add_textbox(s, "The 'Rule of 5 Segments' for CN III Localization", 0.4, 1.27, 12.0, 0.32, fontsize=14, bold=True, color=WHITE) summary_rows = [ ("NUCLEAR", "Bilateral ptosis + Contralateral SR paresis + ipsilateral CN III palsy", "Cannot cause isolated unilateral CN III palsy!", RED), ("FASCICULAR", "Ipsilateral CN III + crossed signs (hemiplegia/ataxia/tremor)", "Weber, Benedikt, Claude, Nothnagel, Plus-Minus", TEAL), ("SUBARACHNOID", "Pupil involved + painful + no crossed signs", "PCOM aneurysm = most feared cause", NAVY), ("CAVERNOUS SINUS", "Multiple CN (III+IV+V1+VI) + possible Horner's + aberrant regen", "Pituitary apoplexy, thrombosis, meningioma, Tolosa-Hunt", RGBColor(0x6A, 0x1B, 0x9A)), ("ORBITAL/SOF", "Divisional palsy ± proptosis ± optic nerve (apex)", "Tumor, thyroid, trauma, lymphoma", GREEN), ] for ri, (loc, features, clue, color) in enumerate(summary_rows): y = 1.7 + ri * 0.98 add_rect(s, 0.3, y, 2.4, 0.9, color) add_textbox(s, loc, 0.35, y+0.18, 2.3, 0.55, fontsize=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_rect(s, 2.75, y, 5.8, 0.9, LGRAY if ri % 2 == 0 else WHITE) add_textbox(s, features, 2.82, y+0.05, 5.65, 0.8, fontsize=11, color=DGRAY, wrap=True) add_rect(s, 8.6, y, 4.43, 0.9, LORANGE if ri % 2 == 0 else RGBColor(0xE8, 0xF8, 0xEE)) add_textbox(s, f"KEY: {clue}", 8.65, y+0.05, 4.33, 0.8, fontsize=10.5, color=color, italic=True, wrap=True) add_rect(s, 0.3, 6.67, 12.73, 0.72, NAVY) add_textbox(s, "GOLDEN RULE: Pupil involvement = SURGICAL cause (compressive, usually aneurysmal) until proven otherwise. ANY pupil-involving CN III palsy needs URGENT vascular imaging (CTA/MRA; if negative, DSA).", 0.4, 6.7, 12.5, 0.65, fontsize=12, bold=True, color=GOLD, wrap=True) # Save outpath = "/tmp/workspace/third_nerve_ppt/Third_Nerve_Comprehensive.pptx" prs.save(outpath) print(f"Saved: {outpath}") PYEOF python3 /tmp/workspace/third_nerve_ppt/build.py

Running Command

sed -i 's/RGBColor(0xFFF3E0)/RGBColor(0xFF, 0xF3, 0xE0)/g; s/RGBColor(0xE65100)/RGBColor(0xE6, 0x51, 0x00)/g' /tmp/workspace/third_nerve_ppt/build.py && python3 /tmp/workspace/third_nerve_ppt/build.py

Running Command

python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/third_nerve_ppt/Third_Nerve_Comprehensive.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t and len(t) > 3: texts.append(t[:60]) if texts: print(f'Slide {i}: {texts[0]}') " 2>&1

Your comprehensive 16-slide presentation on the Third (Oculomotor) Nerve is ready:

Third Nerve Comprehensive

Presentation · PPTX


What's Inside - Slide by Slide

#Slide TitleKey Content
1Title SlideProfessional title design
2Overview / TOCNumbered index of all 12 major topics
3IntroductionFiber types (GSE+GVE), muscles innervated (mnemonic: SIR MED), clinical significance
4EmbryologyNeural origin (basal plate), ciliary ganglion (neural crest), congenital palsy, cyclic oculomotor palsy
5Nucleus & Subnuclear OrganizationEW nucleus, SR subnucleus (crossed), CCN (bilateral LPS), 5 critical nuclear rules
6Fascicular CourseThrough tegmentum -> red nucleus -> substantia nigra -> cerebral peduncle; brainstem syndrome preview
7Subarachnoid SpaceBetween SCA & PCA, PCOM relation, surgical vs medical pupil alert box, causes
8Cavernous SinusPosition (highest in lateral wall), all CN contents table, causes including CCF/Tolosa-Hunt
9SOF & OrbitSuperior vs inferior divisions, contents within/outside annulus of Zinn, orbital apex syndrome
10Complete CN III PalsyDPMD mnemonic, EOM loss table, down-and-out position explained
11Localization TableAll 5 segments - features vs causes side-by-side (most exam-relevant slide)
12Brainstem SyndromesWeber, Benedikt, Claude, Nothnagel, Plus-Minus - structure/features/cause for each
13Pupil in CN III PalsySurgical vs Medical pupil boxes, clinical algorithm for urgent imaging
14Aberrant RegenerationPseudo-Graefe sign, pupil constriction on adduction, primary vs secondary - causes
15Clinical Approach6-step evaluation algorithm (confirm -> classify -> pupil -> associated signs -> imaging -> follow-up)
16SummaryRule of 5 Segments, golden rule box (pupil = surgical)

Key Teaching Points Covered

Anatomy:
  • The EW nucleus fibers are on the dorsomedial surface - compressed first by external lesions (aneurysm causes pupil dilation early)
  • The SR subnucleus has completely crossed innervation - nuclear lesions give contralateral SR palsy
  • The CCN is a single midline nucleus - unilateral nuclear lesion causes bilateral ptosis (a classic trap!)
Localization Rules:
  • Nuclear: Cannot cause isolated unilateral CN III palsy (bilateral ptosis + contralateral SR palsy expected)
  • Fascicular: Ipsilateral CN III + crossed signs (Weber/Benedikt/Claude)
  • Subarachnoid: Pupil involved + painful - PCOM aneurysm
  • Cavernous sinus: Multiple CN (III+IV+V1+VI) +/- Horner
  • Orbit/SOF: Divisional palsy +/- proptosis
Golden Rule: Pupil-involving CN III palsy = surgical/compressive cause until proven otherwise - urgent CTA/MRA/DSA required.
This is a shared conversation. Sign in to Orris to start your own chat.