Make a ppt on anatomy of brachial plexus, subarachnoid space and epidural space. Just take form one source, grey’s anatomy for students. And generate the images

Reading File
Reading File
Reading File
Finding Sources
Good — Gray's Anatomy for Students is in the library (ISBN 9780323934237). Now I'll search for all three topics simultaneously.
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
I can see the epidural space is described as "extradural space" in the text. Let me now read more content and search for epidural/extradural content.
Reading File
Reading File
Finding Sources
Excellent! Now I have the extradural space section location. Let me read it and also get the remaining brachial plexus content and the subarachnoid visualization section.
Reading File
Reading File
Reading File
I now have rich content from Gray's Anatomy for Students. Let me also read the brachial plexus branches section and fetch the key images, then build the presentation.
Reading File
Reading File
I now have all the content I need. Let me now read the pptxgenjs.md for full instructions, then generate images and build the presentation.
Reading File
Generating Image

Anatomy diagram of brachial plexus showing roots C5-T1, three trunks (superior, middle, inferior), anterior and posterior divisions, lateral cord, medial cord, and posterior cord, with labels for major terminal branches: musculocutaneous nerve, median nerve, ulnar nerve, radial nerve, axillary nerve. Clean medical illustration style with white background.

Generating Image

Cross-sectional anatomy diagram of the spinal cord showing subarachnoid space filled with CSF, arachnoid mater, pia mater, dura mater, denticulate ligament, and surrounding vertebral structures. Medical illustration style, labeled, white background.

Generating Image

Sagittal section diagram of lumbar vertebral canal showing epidural (extradural) space with fat and venous plexus between dura mater and bone, supraspinous ligament, interspinous ligament, ligamentum flavum, subarachnoid space, cauda equina, with needle placement for epidural anesthesia. Medical illustration style, labeled, white background.

I now have all the content I need. Let me now read the pptxgenjs.md for full instructions, then generate images and build the presentation.Images generated. Now let me fetch them as base64 and build the PPTX.
Running Command

node /home/daytona/skills/shared/scripts/fetch_images.js "https://cdn.orris.care/image-gen/d472a5d4643e4c5c80c9a244c3016e11.png" "https://cdn.orris.care/image-gen/7ed6b70042904f8a8dabf0e64ee204b8.png" "https://cdn.orris.care/image-gen/c6b6aefb160b4bc8a10771f525e73bad.png" "https://cdn.orris.care/cdss_images/42e3982ca738d0e6877cc67f524d1fbfcf9d635fdfed6e0372f6519623416ef7.png" "https://cdn.orris.care/cdss_images/e86b3797e2a43e429bc205e0a4cbf82668c184881aa0cab5cb2ca86c02d919f7.png" "https://cdn.orris.care/cdss_images/907d9e52bed28ca35c4aa090342e9c685c9eeefa8fa9d6ba7880e7fde4d2d385.png" 2>/dev/null | node -e "const d=require('fs').readFileSync('/dev/stdin','utf8'); const arr=JSON.parse(d); arr.forEach((x,i)=>{ if(x.error) console.log(i+': ERROR '+x.error); else console.log(i+': OK len='+x.base64.length); });"

All images fetched successfully. Now building the PPTX:
Running Command

mkdir -p /home/daytona/workspace/anatomy-ppt && cat > /home/daytona/workspace/anatomy-ppt/build.js << 'JSEOF' const pptxgen = require("pptxgenjs"); const { execSync } = require("child_process"); // Fetch all images as base64 const imageUrls = [ "https://cdn.orris.care/image-gen/d472a5d4643e4c5c80c9a244c3016e11.png", // 0: generated brachial plexus "https://cdn.orris.care/image-gen/7ed6b70042904f8a8dabf0e64ee204b8.png", // 1: generated subarachnoid cross-section "https://cdn.orris.care/image-gen/c6b6aefb160b4bc8a10771f525e73bad.png", // 2: generated epidural space "https://cdn.orris.care/cdss_images/42e3982ca738d0e6877cc67f524d1fbfcf9d635fdfed6e0372f6519623416ef7.png", // 3: textbook brachial plexus diagram "https://cdn.orris.care/cdss_images/e86b3797e2a43e429bc205e0a4cbf82668c184881aa0cab5cb2ca86c02d919f7.png", // 4: textbook meninges diagram "https://cdn.orris.care/cdss_images/907d9e52bed28ca35c4aa090342e9c685c9eeefa8fa9d6ba7880e7fde4d2d385.png", // 5: textbook vertebral canal ]; const imgs = JSON.parse( execSync(`node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`).toString() ); const pres = new pptxgen(); pres.layout = "LAYOUT_WIDE"; pres.title = "Anatomy: Brachial Plexus, Subarachnoid Space & Epidural Space"; pres.author = "Gray's Anatomy for Students"; // ─── COLORS ──────────────────────────────────────────────── const C = { navy: "0A1F44", blue: "1A3A6E", accent: "2E86C1", gold: "F0B429", white: "FFFFFF", light: "EAF4FB", mid: "BFD9EF", dark: "091530", text: "1A2B3C", sub: "4A6785", }; // ─── HELPERS ─────────────────────────────────────────────── function addSlideHeader(slide, title) { // Top navy bar slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:1.0, fill:{color:C.navy}, line:{color:C.navy} }); // Gold accent bar slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0.92, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); // Title slide.addText(title, { x:0.4, y:0.1, w:12.5, h:0.8, fontSize:26, bold:true, color:C.white, fontFace:"Calibri", valign:"middle" }); // Source badge slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:10.7, y:0.12, w:2.3, h:0.4, fill:{color:C.accent}, line:{color:C.accent}, rectRadius:0.05 }); slide.addText("Gray's Anatomy for Students", { x:10.7, y:0.12, w:2.3, h:0.4, fontSize:7, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); } function addBullets(slide, items, x, y, w, h, fontSize=13) { const textArr = items.map((item, i) => ({ text: item, options: { bullet: { code:"2022" }, breakLine: i < items.length-1, fontSize, color:C.text, fontFace:"Calibri", paraSpaceAfter:3 } })); slide.addText(textArr, { x, y, w, h, valign:"top" }); } // ═══════════════════════════════════════════════════════════ // SLIDE 1 — TITLE SLIDE // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); // Full dark gradient background s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.navy}, line:{color:C.navy} }); // Decorative diagonal stripe s.addShape(pres.shapes.RECTANGLE, { x:8.0, y:0, w:5.3, h:7.5, fill:{color:C.blue}, line:{color:C.blue} }); // Gold accent lines s.addShape(pres.shapes.RECTANGLE, { x:0, y:2.5, w:7.5, h:0.06, fill:{color:C.gold}, line:{color:C.gold} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:4.7, w:7.5, h:0.06, fill:{color:C.gold}, line:{color:C.gold} }); // Main title s.addText("Human Anatomy", { x:0.6, y:1.1, w:7.0, h:0.8, fontSize:22, color:C.mid, bold:false, fontFace:"Calibri", charSpacing:4 }); s.addText("Brachial Plexus\nSubarachnoid Space\nEpidural Space", { x:0.6, y:1.9, w:7.2, h:2.5, fontSize:34, bold:true, color:C.white, fontFace:"Calibri" }); // Source s.addText("Source: Gray's Anatomy for Students", { x:0.6, y:4.8, w:7.0, h:0.4, fontSize:14, color:C.gold, fontFace:"Calibri", italic:true }); // Image right panel if (!imgs[0].error) { s.addImage({ data: imgs[0].base64, x:8.2, y:0.4, w:4.8, h:6.6, altText:"Brachial Plexus" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 2 — SECTION DIVIDER: BRACHIAL PLEXUS // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.blue}, line:{color:C.blue} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.5, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Part 1", { x:1, y:2.0, w:11, h:0.6, fontSize:18, color:C.mid, fontFace:"Calibri", align:"center", charSpacing:6 }); s.addText("Brachial Plexus", { x:1, y:2.6, w:11, h:1.2, fontSize:48, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Roots • Trunks • Divisions • Cords • Branches", { x:1, y:3.85, w:11, h:0.7, fontSize:16, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); } // ═══════════════════════════════════════════════════════════ // SLIDE 3 — BRACHIAL PLEXUS: OVERVIEW // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Overview"); // Left text panel s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.0, h:5.9, fill:{color:C.white}, line:{color:C.mid}, shadow:{type:"outer",color:"000000",blur:4,offset:2,angle:135,opacity:0.1} }); s.addText("Definition & Formation", { x:0.5, y:1.25, w:5.6, h:0.45, fontSize:14, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Somatic nerve plexus formed by anterior rami of C5–C8 and most of T1", "Originates in the neck; passes laterally over rib I; enters the axilla", "Parts (medial → lateral): Roots → Trunks → Divisions → Cords", "All major nerves of the upper limb originate from the brachial plexus", "Proximal parts lie posterior to the subclavian artery in the neck", "Distal parts surround the axillary artery in the axilla", ], 0.5, 1.75, 5.6, 5.0, 12); // Right image if (!imgs[3].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.6, y:1.15, w:6.4, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: imgs[3].base64, x:6.7, y:1.2, w:6.2, h:5.2, altText:"Brachial Plexus Diagram" }); s.addText("Fig. 7.52 — Brachial Plexus (Gray's Anatomy for Students)", { x:6.6, y:6.4, w:6.4, h:0.5, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 4 — ROOTS & TRUNKS // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Roots & Trunks"); // Roots card s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:2.9, fill:{color:C.white}, line:{color:C.mid}, shadow:{type:"outer",color:"000000",blur:4,offset:2,angle:135,opacity:0.1} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:0.12, h:2.9, fill:{color:C.accent}, line:{color:C.accent} }); s.addText("ROOTS", { x:0.55, y:1.2, w:5.7, h:0.4, fontSize:13, bold:true, color:C.accent, fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Anterior rami of C5, C6, C7, C8 and most of T1", "Receive gray rami communicantes from the sympathetic trunk (postganglionic sympathetic fibers)", "Pass between anterior scalene and middle scalene muscles", "Lie superior and posterior to the subclavian artery", ], 0.55, 1.65, 5.7, 2.35, 11.5); // Trunks card s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:4.15, w:6.1, h:3.0, fill:{color:C.white}, line:{color:C.mid}, shadow:{type:"outer",color:"000000",blur:4,offset:2,angle:135,opacity:0.1} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:4.15, w:0.12, h:3.0, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("TRUNKS", { x:0.55, y:4.2, w:5.7, h:0.4, fontSize:13, bold:true, color:"B8860B", fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Superior trunk — union of C5 & C6 roots", "Middle trunk — continuation of C7 root", "Inferior trunk — union of C8 & T1 roots", "Pass laterally over rib I and enter the axilla", "Inferior trunk lies on rib I posterior to the subclavian artery", ], 0.55, 4.65, 5.7, 2.45, 11.5); // Generated image right if (!imgs[0].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.6, y:1.15, w:6.4, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: imgs[0].base64, x:6.7, y:1.2, w:6.2, h:5.4, altText:"Brachial Plexus Generated" }); s.addText("Schematic — Brachial Plexus", { x:6.6, y:6.55, w:6.4, h:0.4, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 5 — DIVISIONS & CORDS // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Divisions & Cords"); // Divisions s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:2.7, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:0.12, h:2.7, fill:{color:"6C3483"}, line:{color:"6C3483"} }); s.addText("DIVISIONS", { x:0.55, y:1.2, w:5.7, h:0.4, fontSize:13, bold:true, color:"6C3483", fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Each trunk divides into an anterior and posterior division (6 divisions total)", "Anterior divisions → nerves for anterior (flexor) compartments", "Posterior divisions → nerves for posterior (extensor) compartments", "No peripheral nerves arise directly from the divisions", ], 0.55, 1.65, 5.7, 2.15, 11.5); // Cords s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:3.95, w:6.1, h:3.2, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:3.95, w:0.12, h:3.2, fill:{color:"1A7A4A"}, line:{color:"1A7A4A"} }); s.addText("CORDS", { x:0.55, y:4.0, w:5.7, h:0.4, fontSize:13, bold:true, color:"1A7A4A", fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Named by their position relative to the 2nd part of the axillary artery", "Lateral cord — union of anterior divisions of superior & middle trunks (C5–C7) — lateral to artery", "Medial cord — continuation of anterior division of inferior trunk (C8–T1) — medial to artery", "Posterior cord — union of all 3 posterior divisions (C5–T1) — posterior to artery", "Most major peripheral nerves originate from the cords", ], 0.55, 4.45, 5.7, 2.65, 11.5); // Right panel — text summary s.addShape(pres.shapes.RECTANGLE, { x:6.6, y:1.15, w:6.4, h:5.9, fill:{color:C.navy}, line:{color:C.navy} }); s.addText("Memory Aid", { x:6.8, y:1.3, w:6.0, h:0.5, fontSize:14, bold:true, color:C.gold, fontFace:"Calibri", align:"center" }); s.addText("Robert Taylor Drinks Cold Beer", { x:6.8, y:1.9, w:6.0, h:0.6, fontSize:16, bold:true, color:C.white, fontFace:"Calibri", align:"center", italic:true }); const mnemArr = [ ["R", "Roots"], ["T", "Trunks"], ["D", "Divisions"], ["C", "Cords"], ["B", "Branches"], ]; mnemArr.forEach(([letter, word], i) => { s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:7.5, y:2.65+(i*0.78), w:0.52, h:0.52, fill:{color:C.accent}, line:{color:C.accent}, rectRadius:0.08 }); s.addText(letter, { x:7.5, y:2.65+(i*0.78), w:0.52, h:0.52, fontSize:16, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); s.addText(word, { x:8.15, y:2.65+(i*0.78), w:4.5, h:0.52, fontSize:14, color:C.white, fontFace:"Calibri", valign:"middle" }); }); } // ═══════════════════════════════════════════════════════════ // SLIDE 6 — BRANCHES // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Branches"); const cols = [ { title:"From Roots", color:C.accent, items:["Dorsal scapular n. (C5) → rhomboids","Long thoracic n. (C5–C7) → serratus anterior","Small segmental branches to neck muscles","C5 contribution to phrenic n."] }, { title:"From Trunks (Superior)", color:"B8860B", items:["Suprascapular n. (C5,C6) → supraspinatus & infraspinatus","Nerve to subclavius (C5,C6) → subclavius m."] }, { title:"From Lateral Cord", color:"6C3483", items:["Lateral pectoral n. → pectoralis major","Musculocutaneous n. → anterior arm flexors","Lateral root of median n."] }, { title:"From Medial Cord", color:"C0392B", items:["Medial pectoral n. → pectoralis minor & major","Medial cutaneous n. of arm","Medial cutaneous n. of forearm","Medial root of median n.","Ulnar n."] }, { title:"From Posterior Cord", color:"1A7A4A", items:["Upper subscapular n.","Thoracodorsal n. → latissimus dorsi","Lower subscapular n.","Axillary n. → deltoid & teres minor","Radial n. → posterior arm & forearm"] }, ]; cols.forEach((col, i) => { const col_x = 0.3 + i * 2.53; s.addShape(pres.shapes.RECTANGLE, { x:col_x, y:1.15, w:2.42, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:col_x, y:1.15, w:2.42, h:0.45, fill:{color:col.color}, line:{color:col.color} }); s.addText(col.title, { x:col_x+0.05, y:1.17, w:2.32, h:0.41, fontSize:9, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); const textArr = col.items.map((item, j) => ({ text: "• "+item, options: { breakLine: j < col.items.length-1, fontSize:9.5, color:C.text, fontFace:"Calibri", paraSpaceAfter:4 } })); s.addText(textArr, { x:col_x+0.08, y:1.65, w:2.25, h:5.35, valign:"top" }); }); } // ═══════════════════════════════════════════════════════════ // SLIDE 7 — BRACHIAL PLEXUS INJURIES // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Injuries (In the Clinic)"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:12.7, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); const injuryData = [ { level:"Roots", color:C.accent, desc:"Cervical spinal cord injuries & direct pulling injuries affect the roots" }, { level:"Trunks", color:"B8860B", desc:"Severe trauma to the first rib usually affects the trunks" }, { level:"Divisions & Cords", color:"6C3483", desc:"Dislocation of the glenohumeral joint can injure the divisions and cords" }, ]; s.addText("Clinical Relevance", { x:0.6, y:1.3, w:12.0, h:0.45, fontSize:14, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "The brachial plexus is an extremely complex structure; injuries require meticulous clinical history and examination", "Assessment via nerve conduction studies and electromyography (EMG): assess latency of muscle contraction", "Injuries are usually the result of blunt trauma producing nerve avulsions and disruption", "Devastating for upper limb function — may require months of rehabilitation for even minimal return of function", ], 0.6, 1.8, 12.0, 2.0, 12); s.addText("Injury Level Correlations", { x:0.6, y:3.75, w:12.0, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); injuryData.forEach((d, i) => { s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.6+(i*4.1), y:4.2, w:3.85, h:2.5, fill:{color:d.color}, line:{color:d.color}, rectRadius:0.1 }); s.addText(d.level, { x:0.7+(i*4.1), y:4.3, w:3.65, h:0.5, fontSize:14, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText(d.desc, { x:0.7+(i*4.1), y:4.85, w:3.65, h:1.75, fontSize:12, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); }); } // ═══════════════════════════════════════════════════════════ // SLIDE 8 — SECTION DIVIDER: SUBARACHNOID SPACE // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.dark}, line:{color:C.dark} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.5, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Part 2", { x:1, y:2.0, w:11, h:0.6, fontSize:18, color:C.mid, fontFace:"Calibri", align:"center", charSpacing:6 }); s.addText("Subarachnoid Space", { x:1, y:2.6, w:11, h:1.2, fontSize:44, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Meninges • CSF • Clinical Significance", { x:1, y:3.85, w:11, h:0.7, fontSize:16, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); } // ═══════════════════════════════════════════════════════════ // SLIDE 9 — SUBARACHNOID SPACE: ANATOMY // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Subarachnoid Space — Anatomy"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Structure & Boundaries", { x:0.5, y:1.25, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Located between the arachnoid mater and pia mater", "Contains cerebrospinal fluid (CSF) and large blood vessels", "Continuous at the foramen magnum with subarachnoid space around the brain", "Inferiorly terminates at approximately the lower border of vertebra SII", "Arachnoid trabeculae: delicate strands spanning the space, connecting the two membranes", "Large blood vessels suspended by similar strands that expand to coat the vessels", ], 0.5, 1.70, 5.7, 2.5, 11.5); s.addText("Key Feature: Lumbar Cistern", { x:0.5, y:4.25, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Spinal cord ends at the disc between L1–L2 (may range from T12 to L2–L3)", "Subarachnoid space extends to lower border of S2 — larger below cord terminus", "Largest inferiorly where it surrounds the cauda equina (lumbar cistern)", "CSF can be safely withdrawn from lower lumbar region without endangering spinal cord", ], 0.5, 4.7, 5.7, 2.35, 11.5); if (!imgs[4].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.6, y:1.15, w:6.4, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: imgs[4].base64, x:6.7, y:1.2, w:6.2, h:5.2, altText:"Meninges Diagram" }); s.addText("Fig. 2.59 — Meninges of the Spinal Cord (Gray's Anatomy for Students)", { x:6.6, y:6.4, w:6.4, h:0.5, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 10 — SUBARACHNOID SPACE: MENINGES & CSF // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Subarachnoid Space — Meninges & CSF"); const boxes = [ { title:"Pia Mater", color:"1A7A4A", x:0.3, items:[ "Vascular membrane firmly adherent to spinal cord surface", "Extends into the anterior median fissure", "Reflects as sleeve-like coatings onto posterior & anterior rootlets", "Denticulate ligaments: longitudinal sheets of pia extending laterally, anchoring spinal cord centrally within subarachnoid space", ]}, { title:"CSF Production & Flow", color:C.accent, x:4.55, items:[ "Produced by the choroid plexus primarily in the ventricles", "Clear, colorless, cell-free fluid", "Circulates through subarachnoid space around brain and spinal cord", "Returns to venous system via arachnoid villi → arachnoid granulations → superior sagittal sinus", ]}, { title:"Brain Subarachnoid Space", color:"8E44AD", x:8.8, items:[ "Arachnoid mater clings to inner surface of dura — does not follow brain contours", "Pia mater closely follows grooves/fissures of brain surface", "Space enlarges in certain locations → subarachnoid cisterns", "Contains CSF and blood vessels; surrounds both brain and spinal cord", ]}, ]; boxes.forEach(box => { s.addShape(pres.shapes.RECTANGLE, { x:box.x, y:1.15, w:4.05, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:box.x, y:1.15, w:4.05, h:0.45, fill:{color:box.color}, line:{color:box.color} }); s.addText(box.title, { x:box.x+0.05, y:1.17, w:3.95, h:0.41, fontSize:12, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); const textArr = box.items.map((item, j) => ({ text: "• "+item, options: { breakLine: j < box.items.length-1, fontSize:11, color:C.text, fontFace:"Calibri", paraSpaceAfter:6 } })); s.addText(textArr, { x:box.x+0.1, y:1.65, w:3.85, h:5.35, valign:"top" }); }); // Generated image at bottom strip if (!imgs[1].error) { // thumbnail strip — not adding to avoid clutter; space already full } } // ═══════════════════════════════════════════════════════════ // SLIDE 11 — SUBARACHNOID SPACE: CLINICAL (LUMBAR PUNCTURE) // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Subarachnoid Space — Lumbar Puncture (Spinal Tap)"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:7.2, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Procedure & Technique", { x:0.5, y:1.25, w:6.8, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Lumbar puncture: withdrawal of CSF for examination, drug injection (antibiotics, chemotherapy, anesthetics)", "Ideal site: lower lumbar region (spinal cord ends L1–L2; space extends to S2)", "Patient positioned lateral or prone", "Needle passes midline between spinous processes → through supraspinous & interspinous ligaments → enters extradural space → punctures dura & arachnoid → enters subarachnoid space", "Most needles push nerve roots aside without causing symptoms", "Once in subarachnoid space, CSF can be aspirated; pressure can be measured", "Safe levels: between LIII–LIV and LIV–LV", "LIV spinous process identified by horizontal line between the highest points of the iliac crests", ], 0.5, 1.7, 6.8, 5.2, 11.5); if (!imgs[1].error) { s.addShape(pres.shapes.RECTANGLE, { x:7.7, y:1.15, w:5.3, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: imgs[1].base64, x:7.8, y:1.2, w:5.1, h:5.3, altText:"Subarachnoid Space Cross Section" }); s.addText("Cross-section: Subarachnoid Space & Meninges", { x:7.7, y:6.4, w:5.3, h:0.5, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 12 — SECTION DIVIDER: EPIDURAL SPACE // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.blue}, line:{color:C.blue} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:6.5, h:7.5, fill:{color:C.dark}, line:{color:C.dark} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.5, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Part 3", { x:1, y:2.0, w:5, h:0.6, fontSize:18, color:C.mid, fontFace:"Calibri", align:"center", charSpacing:6 }); s.addText("Epidural\nSpace", { x:0.5, y:2.55, w:5.7, h:1.8, fontSize:42, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Extradural Anatomy & Anesthesia", { x:0.5, y:3.85, w:6.0, h:0.7, fontSize:14, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); if (!imgs[2].error) { s.addImage({ data: imgs[2].base64, x:6.8, y:0.5, w:6.2, h:6.5, altText:"Epidural Space" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 13 — EPIDURAL SPACE: ANATOMY // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Epidural (Extradural) Space — Anatomy"); // Left panel s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Definition & Contents", { x:0.5, y:1.25, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Extradural (epidural) space: between the walls of the vertebral canal and the dural sac", "Contains a vertebral plexus of veins embedded in fatty connective tissue", "A potential space under normal conditions (dura adheres to surrounding bone in the cranium)", "In the cranium: outer (periosteal) layer of dura firmly attached to bones of cranial cavity", "Becomes a fluid-filled real space when traumatic vascular hemorrhage occurs", ], 0.5, 1.7, 5.7, 2.4, 11.5); s.addText("Vertebral Canal Boundaries", { x:0.5, y:4.2, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Anteriorly: vertebral bodies, intervertebral discs, posterior longitudinal ligament", "Laterally: pedicles and intervertebral foramina", "Posteriorly: laminae, ligamenta flava, roots of interspinous ligaments and spinous processes", ], 0.5, 4.65, 5.7, 2.35, 11.5); // Right panel if (!imgs[5].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.6, y:1.15, w:6.4, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: imgs[5].base64, x:6.7, y:1.2, w:6.2, h:5.2, altText:"Vertebral Canal Diagram" }); s.addText("Fig. 2.60 — Arrangement of Structures in the Vertebral Canal, Lumbar Region (Gray's Anatomy for Students)", { x:6.6, y:6.4, w:6.4, h:0.5, fontSize:8.5, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 14 — EPIDURAL SPACE: CLINICAL ANESTHESIA // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Epidural Space — Extradural Anesthesia"); // Left text s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:7.2, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Procedure", { x:0.5, y:1.25, w:6.8, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Needle placed through: skin → supraspinous ligament → interspinous ligament → ligamenta flava → areolar tissue & fat around dura mater (extradural space)", "Anesthetic agent diffuses around vertebral canal to anesthetize exiting nerve roots", "Anesthetic also diffuses into subarachnoid space for broader effect", "Needle can also be placed more laterally through skin and muscle to anesthetize specific nerves", ], 0.5, 1.7, 6.8, 2.6, 11.5); s.addText("Indications & Considerations", { x:0.5, y:4.35, w:6.8, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Useful for pelvic and lower limb operations (avoids general anesthesia)", "Local anesthetics injected into extradural OR subarachnoid space to anesthetize sacral and lumbar nerve roots", "Patient must be erect — lying on side may cause unilateral anesthesia; head-down can allow anesthetic to spread cranially and depress respiration", "For extradural hemorrhage: dura periosteal layer separates from bone due to meningeal artery rupture or torn dural venous sinus", ], 0.5, 4.8, 6.8, 2.25, 11.5); // Right generated image if (!imgs[2].error) { s.addShape(pres.shapes.RECTANGLE, { x:7.7, y:1.15, w:5.3, h:5.9, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: imgs[2].base64, x:7.8, y:1.2, w:5.1, h:5.3, altText:"Epidural Anesthesia" }); s.addText("Epidural needle placement & space anatomy", { x:7.7, y:6.4, w:5.3, h:0.5, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ═══════════════════════════════════════════════════════════ // SLIDE 15 — COMPARATIVE SUMMARY // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Summary — Key Comparisons"); const rows = [ ["Feature", "Brachial Plexus", "Subarachnoid Space", "Epidural Space"], ["Location", "Neck & axilla", "Between arachnoid & pia mater", "Between dura mater & vertebral canal walls"], ["Contents", "Nerve roots, trunks, divisions, cords, branches", "CSF, blood vessels, arachnoid trabeculae", "Venous plexus, fatty connective tissue"], ["Boundaries", "C5–T1 anterior rami", "Foramen magnum → S2", "Vertebral canal walls → dural sac"], ["Clinical use", "Nerve blocks, brachial plexus injury Dx", "Lumbar puncture, spinal anesthesia", "Epidural anesthesia, hematoma drainage"], ["Normal state", "Active nerve plexus", "Fluid-filled", "Potential space (actual only in spine)"], ]; const colW = [2.6, 3.35, 3.35, 3.35]; const colX = [0.3, 2.95, 6.35, 9.75]; const rowH = 0.72; const startY = 1.2; rows.forEach((row, ri) => { row.forEach((cell, ci) => { const isHeader = ri === 0 || ci === 0; const bg = ri === 0 ? C.navy : ci === 0 ? C.blue : (ri % 2 === 0 ? C.white : C.light); const fc = isHeader ? C.white : C.text; s.addShape(pres.shapes.RECTANGLE, { x:colX[ci]+0.02, y:startY+(ri*rowH)+0.02, w:colW[ci]-0.04, h:rowH-0.04, fill:{color:bg}, line:{color:C.mid} }); s.addText(cell, { x:colX[ci]+0.1, y:startY+(ri*rowH)+0.02, w:colW[ci]-0.2, h:rowH-0.04, fontSize: ri===0 ? 11.5 : 10.5, bold:isHeader, color:fc, fontFace:"Calibri", valign:"middle", align:"left" }); }); }); } // ═══════════════════════════════════════════════════════════ // SLIDE 16 — CLOSING SLIDE // ═══════════════════════════════════════════════════════════ { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.navy}, line:{color:C.navy} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.4, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Thank You", { x:1, y:1.8, w:11.3, h:1.4, fontSize:52, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Content sourced exclusively from:", { x:1, y:3.7, w:11.3, h:0.5, fontSize:14, color:C.mid, fontFace:"Calibri", align:"center" }); s.addText("Gray's Anatomy for Students", { x:1, y:4.25, w:11.3, h:0.7, fontSize:22, bold:true, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); s.addText("Anatomy of the Brachial Plexus • Subarachnoid Space • Epidural Space", { x:1, y:5.1, w:11.3, h:0.5, fontSize:13, color:C.mid, fontFace:"Calibri", align:"center" }); } // Write file pres.writeFile({ fileName: "/home/daytona/workspace/anatomy-ppt/Anatomy_BrachialPlexus_Subarachnoid_Epidural.pptx" }) .then(() => console.log("SUCCESS: PPTX written.")) .catch(e => { console.error("ERROR:", e); process.exit(1); }); JSEOF echo "Script written."

Running Command

cd /home/daytona/workspace/anatomy-ppt && node build.js

The ENOBUFS error means the combined JSON output of all 6 large images exceeds the execSync buffer. I need to fetch images in batches and save to files, then read them in the script.
Running Command

cd /home/daytona/workspace/anatomy-ppt && node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://cdn.orris.care/image-gen/d472a5d4643e4c5c80c9a244c3016e11.png" \ "https://cdn.orris.care/image-gen/7ed6b70042904f8a8dabf0e64ee204b8.png" \ "https://cdn.orris.care/image-gen/c6b6aefb160b4bc8a10771f525e73bad.png" \ > /home/daytona/workspace/anatomy-ppt/imgs_gen.json && echo "gen OK"

Running Command

cd /home/daytona/workspace/anatomy-ppt && node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://cdn.orris.care/cdss_images/42e3982ca738d0e6877cc67f524d1fbfcf9d635fdfed6e0372f6519623416ef7.png" \ "https://cdn.orris.care/cdss_images/e86b3797e2a43e429bc205e0a4cbf82668c184881aa0cab5cb2ca86c02d919f7.png" \ "https://cdn.orris.care/cdss_images/907d9e52bed28ca35c4aa090342e9c685c9eeefa8fa9d6ba7880e7fde4d2d385.png" \ > /home/daytona/workspace/anatomy-ppt/imgs_tb.json && echo "tb OK"

Running Command

cat > /home/daytona/workspace/anatomy-ppt/build2.js << 'JSEOF' const pptxgen = require("pptxgenjs"); const fs = require("fs"); // Load pre-fetched images const genImgs = JSON.parse(fs.readFileSync("/home/daytona/workspace/anatomy-ppt/imgs_gen.json","utf8")); const tbImgs = JSON.parse(fs.readFileSync("/home/daytona/workspace/anatomy-ppt/imgs_tb.json","utf8")); // imgs[0] = generated brachial plexus, imgs[1] = subarachnoid cross-section, imgs[2] = epidural // tbImgs[0] = textbook brachial plexus, tbImgs[1] = meninges, tbImgs[2] = vertebral canal const pres = new pptxgen(); pres.layout = "LAYOUT_WIDE"; pres.title = "Anatomy: Brachial Plexus, Subarachnoid Space & Epidural Space"; pres.author = "Gray's Anatomy for Students"; const C = { navy: "0A1F44", blue: "1A3A6E", accent: "2E86C1", gold: "F0B429", white: "FFFFFF", light: "EAF4FB", mid: "BFD9EF", dark: "091530", text: "1A2B3C", sub: "4A6785", }; function addSlideHeader(slide, title) { slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:1.0, fill:{color:C.navy}, line:{color:C.navy} }); slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0.92, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); slide.addText(title, { x:0.4, y:0.1, w:10.5, h:0.8, fontSize:26, bold:true, color:C.white, fontFace:"Calibri", valign:"middle" }); slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:10.7, y:0.12, w:2.3, h:0.4, fill:{color:C.accent}, line:{color:C.accent}, rectRadius:0.05 }); slide.addText("Gray's Anatomy for Students", { x:10.7, y:0.12, w:2.3, h:0.4, fontSize:7, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); } function addBullets(slide, items, x, y, w, h, fontSize=12) { const textArr = items.map((item, i) => ({ text: item, options: { bullet:{code:"2022"}, breakLine: i < items.length-1, fontSize, color:C.text, fontFace:"Calibri", paraSpaceAfter:3 } })); slide.addText(textArr, { x, y, w, h, valign:"top" }); } // ── SLIDE 1: TITLE ────────────────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.navy}, line:{color:C.navy} }); s.addShape(pres.shapes.RECTANGLE, { x:8.0, y:0, w:5.3, h:7.5, fill:{color:C.blue}, line:{color:C.blue} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:2.5, w:7.6, h:0.07, fill:{color:C.gold}, line:{color:C.gold} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:4.75, w:7.6, h:0.07, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Human Anatomy", { x:0.6, y:1.1, w:7.0, h:0.7, fontSize:20, color:C.mid, bold:false, fontFace:"Calibri", charSpacing:4 }); s.addText("Brachial Plexus\nSubarachnoid Space\nEpidural Space", { x:0.6, y:1.85, w:7.2, h:2.55, fontSize:34, bold:true, color:C.white, fontFace:"Calibri" }); s.addText("Source: Gray's Anatomy for Students", { x:0.6, y:4.85, w:7.0, h:0.45, fontSize:14, color:C.gold, fontFace:"Calibri", italic:true }); if (!genImgs[0].error) s.addImage({ data: genImgs[0].base64, x:8.2, y:0.3, w:4.85, h:6.8 }); } // ── SLIDE 2: SECTION DIVIDER — BRACHIAL PLEXUS ───────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.blue}, line:{color:C.blue} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.55, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Part 1", { x:1, y:2.05, w:11, h:0.55, fontSize:18, color:C.mid, fontFace:"Calibri", align:"center", charSpacing:6 }); s.addText("Brachial Plexus", { x:1, y:2.65, w:11, h:1.15, fontSize:50, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Roots • Trunks • Divisions • Cords • Branches", { x:1, y:3.8, w:11, h:0.65, fontSize:16, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); } // ── SLIDE 3: BRACHIAL PLEXUS OVERVIEW ────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Overview"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.0, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Formation & Parts", { x:0.5, y:1.25, w:5.6, h:0.42, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Somatic nerve plexus formed by anterior rami of C5–C8 and most of T1", "Originates in the neck → passes laterally over rib I → enters the axilla", "Parts (medial to lateral): Roots → Trunks → Divisions → Cords", "All major nerves of the upper limb originate from the brachial plexus, mostly from the cords", "Proximal parts lie posterior to the subclavian artery (neck)", "Distal parts surround the axillary artery (axilla)", ], 0.5, 1.72, 5.6, 5.3, 12); if (!tbImgs[0].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.55, y:1.15, w:6.45, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: tbImgs[0].base64, x:6.65, y:1.2, w:6.25, h:5.3 }); s.addText("Fig. 7.52 — Brachial Plexus (Gray's Anatomy for Students)", { x:6.55, y:6.5, w:6.45, h:0.45, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ── SLIDE 4: ROOTS & TRUNKS ───────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Roots & Trunks"); // Roots card s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:2.85, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:0.12, h:2.85, fill:{color:C.accent}, line:{color:C.accent} }); s.addText("ROOTS", { x:0.55, y:1.22, w:5.7, h:0.38, fontSize:12, bold:true, color:C.accent, fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Anterior rami of C5, C6, C7, C8 and most of T1", "Receive gray rami communicantes (postganglionic sympathetic fibers) from sympathetic trunk", "Pass between anterior scalene and middle scalene muscles", "Lie superior and posterior to the subclavian artery", ], 0.55, 1.65, 5.65, 2.3, 11.5); // Trunks card s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:4.1, w:6.1, h:3.05, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:4.1, w:0.12, h:3.05, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("TRUNKS", { x:0.55, y:4.17, w:5.7, h:0.38, fontSize:12, bold:true, color:"B8860B", fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Superior trunk — union of C5 & C6 roots", "Middle trunk — continuation of C7 root", "Inferior trunk — union of C8 & T1 roots", "All pass laterally over rib I into the axilla", "Inferior trunk lies on rib I, posterior to the subclavian artery", ], 0.55, 4.6, 5.65, 2.55, 11.5); if (!genImgs[0].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.55, y:1.15, w:6.45, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: genImgs[0].base64, x:6.65, y:1.2, w:6.25, h:5.35 }); s.addText("Schematic — Brachial Plexus Components", { x:6.55, y:6.5, w:6.45, h:0.45, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ── SLIDE 5: DIVISIONS & CORDS ────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Divisions & Cords"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:2.65, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:0.12, h:2.65, fill:{color:"6C3483"}, line:{color:"6C3483"} }); s.addText("DIVISIONS", { x:0.55, y:1.22, w:5.65, h:0.38, fontSize:12, bold:true, color:"6C3483", fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Each of the 3 trunks divides into an anterior and posterior division (6 total)", "Anterior divisions → nerves for anterior (flexor) compartments of arm and forearm", "Posterior divisions → nerves for posterior (extensor) compartments", "No peripheral nerves arise directly from the divisions", ], 0.55, 1.65, 5.65, 2.1, 11.5); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:3.9, w:6.1, h:3.25, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:3.9, w:0.12, h:3.25, fill:{color:"1A7A4A"}, line:{color:"1A7A4A"} }); s.addText("CORDS", { x:0.55, y:3.97, w:5.65, h:0.38, fontSize:12, bold:true, color:"1A7A4A", fontFace:"Calibri", charSpacing:3 }); addBullets(s, [ "Named by their position relative to the 2nd part of the axillary artery", "Lateral cord — anterior divisions of superior & middle trunks (C5–C7) — lateral to artery", "Medial cord — anterior division of inferior trunk (C8–T1) — medial to artery", "Posterior cord — all three posterior divisions (C5–T1) — posterior to artery", "Most major peripheral nerves of the upper limb originate from the cords", ], 0.55, 4.4, 5.65, 2.7, 11.5); // Right: mnemonic panel s.addShape(pres.shapes.RECTANGLE, { x:6.55, y:1.15, w:6.45, h:6.0, fill:{color:C.navy}, line:{color:C.navy} }); s.addText("Memory Aid", { x:6.75, y:1.3, w:6.05, h:0.5, fontSize:14, bold:true, color:C.gold, fontFace:"Calibri", align:"center" }); s.addText("Robert Taylor Drinks Cold Beer", { x:6.75, y:1.9, w:6.05, h:0.65, fontSize:17, bold:true, color:C.white, fontFace:"Calibri", align:"center", italic:true }); [["R","Roots","2E86C1"],["T","Trunks","F0B429"],["D","Divisions","8E44AD"],["C","Cords","1A7A4A"],["B","Branches","C0392B"]].forEach(([l,w,col],i) => { s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:7.4, y:2.7+(i*0.8), w:0.55, h:0.55, fill:{color:col}, line:{color:col}, rectRadius:0.08 }); s.addText(l, { x:7.4, y:2.7+(i*0.8), w:0.55, h:0.55, fontSize:18, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); s.addText(w, { x:8.1, y:2.7+(i*0.8), w:4.7, h:0.55, fontSize:15, color:C.white, fontFace:"Calibri", valign:"middle" }); }); } // ── SLIDE 6: BRANCHES ─────────────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Branches"); const cols = [ { title:"Roots", color:C.accent, items:["Dorsal scapular n. (C5) → rhomboids","Long thoracic n. (C5–C7) → serratus anterior","Segmental branches to neck muscles","C5 → contribution to phrenic n."] }, { title:"Trunks (Superior)", color:"B8860B", items:["Suprascapular n. (C5,C6) → supraspinatus & infraspinatus","Nerve to subclavius (C5,C6) → subclavius m."] }, { title:"Lateral Cord", color:"6C3483", items:["Lateral pectoral n. → pectoralis major","Musculocutaneous n. → all anterior arm flexors (terminates as lateral cutaneous n. of forearm)","Lateral root of median n."] }, { title:"Medial Cord", color:"C0392B", items:["Medial pectoral n. → pect. minor & major","Medial cutaneous n. of arm","Medial cutaneous n. of forearm","Medial root of median n.","Ulnar n."] }, { title:"Posterior Cord", color:"1A7A4A", items:["Upper subscapular n.","Thoracodorsal n. → latissimus dorsi","Lower subscapular n.","Axillary n. → deltoid & teres minor","Radial n. → posterior arm/forearm"] }, ]; cols.forEach((col, i) => { const cx = 0.3 + i * 2.53; s.addShape(pres.shapes.RECTANGLE, { x:cx, y:1.15, w:2.43, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:cx, y:1.15, w:2.43, h:0.44, fill:{color:col.color}, line:{color:col.color} }); s.addText(col.title, { x:cx+0.05, y:1.17, w:2.33, h:0.4, fontSize:10, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); const textArr = col.items.map((item, j) => ({ text: "• "+item, options: { breakLine: j < col.items.length-1, fontSize:9.5, color:C.text, fontFace:"Calibri", paraSpaceAfter:5 } })); s.addText(textArr, { x:cx+0.08, y:1.65, w:2.28, h:5.45, valign:"top" }); }); } // ── SLIDE 7: BRACHIAL PLEXUS INJURIES ─────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Brachial Plexus — Injuries (In the Clinic)"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:12.7, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Clinical Features", { x:0.5, y:1.25, w:12.0, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Requires meticulous clinical history, examination, nerve conduction studies, and EMG", "EMG assesses latency of muscle contraction when nerve is artificially stimulated", "Usually result of blunt trauma producing nerve avulsions and disruption", "Devastating for upper limb function — months of rehabilitation for minimal return", ], 0.5, 1.7, 12.0, 1.8, 12); s.addText("Injury Level Correlations", { x:0.5, y:3.5, w:12.0, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); [ ["ROOTS","Cervical spinal cord injuries & direct pulling injuries affect roots",C.accent], ["TRUNKS","Severe trauma to the first rib usually affects the trunks","B8860B"], ["DIVISIONS & CORDS","Dislocation of the glenohumeral joint can injure divisions and cords","6C3483"], ].forEach(([level, desc, col], i) => { s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.5+(i*4.1), y:4.0, w:3.85, h:2.7, fill:{color:col}, line:{color:col}, rectRadius:0.1 }); s.addText(level, { x:0.6+(i*4.1), y:4.1, w:3.65, h:0.5, fontSize:13, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText(desc, { x:0.6+(i*4.1), y:4.65, w:3.65, h:1.9, fontSize:12, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); }); } // ── SLIDE 8: SECTION DIVIDER — SUBARACHNOID SPACE ─────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.dark}, line:{color:C.dark} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.55, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Part 2", { x:1, y:2.05, w:11, h:0.55, fontSize:18, color:C.mid, fontFace:"Calibri", align:"center", charSpacing:6 }); s.addText("Subarachnoid Space", { x:1, y:2.65, w:11, h:1.15, fontSize:44, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Meninges • CSF • Clinical Significance", { x:1, y:3.8, w:11, h:0.65, fontSize:16, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); } // ── SLIDE 9: SUBARACHNOID ANATOMY ─────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Subarachnoid Space — Anatomy"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Structure & Extent", { x:0.5, y:1.25, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Located between arachnoid mater (outer) and pia mater (inner)", "Contains CSF and large blood vessels", "Arachnoid trabeculae: delicate strands spanning the space, connecting the two membranes; expand over vessels as external coat", "Continuous at the foramen magnum with subarachnoid space of the brain", "Inferiorly terminates at the lower border of vertebra SII", ], 0.5, 1.7, 5.7, 2.4, 12); s.addText("Lumbar Cistern", { x:0.5, y:4.15, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Spinal cord ends at disc between L1–L2 (range: T12 to L2–L3)", "Subarachnoid space extends to S2 — extends further than the cord", "Largest in the region inferior to cord terminus where it surrounds cauda equina", "CSF safely withdrawn from lower lumbar region without endangering spinal cord", ], 0.5, 4.6, 5.7, 2.5, 12); if (!tbImgs[1].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.55, y:1.15, w:6.45, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: tbImgs[1].base64, x:6.65, y:1.2, w:6.25, h:5.3 }); s.addText("Fig. 2.59 — Meninges of the Spinal Cord (Gray's Anatomy for Students)", { x:6.55, y:6.5, w:6.45, h:0.45, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ── SLIDE 10: MENINGES & CSF ──────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Subarachnoid Space — Meninges & CSF"); [ { title:"Pia Mater", color:"1A7A4A", x:0.3, items:[ "Vascular membrane firmly adherent to spinal cord surface", "Extends into the anterior median fissure", "Sleeve-like coatings on posterior & anterior rootlets", "Denticulate ligaments: longitudinal pia sheets extending laterally — anchor spinal cord centrally in subarachnoid space via triangular extensions to dura", ]}, { title:"CSF Production & Flow", color:C.accent, x:4.55, items:[ "Produced by choroid plexus in the ventricles of the brain", "Clear, colorless, cell-free fluid", "Circulates in subarachnoid space around brain and spinal cord", "Returns via arachnoid villi → arachnoid granulations → superior sagittal sinus (dural venous sinus) and lateral lacunae", ]}, { title:"Brain Subarachnoid Space", color:"8E44AD", x:8.8, items:[ "Arachnoid mater clings to inner dura surface — does NOT follow brain contours", "Pia mater closely follows surface grooves/fissures of the brain", "Space enlarges in certain locations forming subarachnoid cisterns", "Contains CSF and blood vessels; surrounds both brain and spinal cord", ]}, ].forEach(box => { s.addShape(pres.shapes.RECTANGLE, { x:box.x, y:1.15, w:4.05, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addShape(pres.shapes.RECTANGLE, { x:box.x, y:1.15, w:4.05, h:0.44, fill:{color:box.color}, line:{color:box.color} }); s.addText(box.title, { x:box.x+0.05, y:1.17, w:3.95, h:0.4, fontSize:11, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" }); const textArr = box.items.map((item, j) => ({ text: "• "+item, options: { breakLine: j < box.items.length-1, fontSize:11, color:C.text, fontFace:"Calibri", paraSpaceAfter:6 } })); s.addText(textArr, { x:box.x+0.1, y:1.65, w:3.85, h:5.45, valign:"top" }); }); } // ── SLIDE 11: LUMBAR PUNCTURE ─────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Subarachnoid Space — Lumbar Puncture (Spinal Tap)"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:7.2, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Procedure & Landmarks", { x:0.5, y:1.25, w:6.8, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Used to obtain CSF for examination, or inject antibiotics/chemotherapy/anesthetics", "Ideal site: lower lumbar region — spinal cord ends L1–L2; subarachnoid space extends to S2", "Patient lateral or prone", "Needle path (midline): skin → supraspinous ligament → interspinous ligament → extradural space → dura mater → arachnoid mater → subarachnoid space (CSF)", "Most needles push nerve roots aside without causing symptoms", "CSF aspirated; pressure can be measured", "Safe levels: LIII–LIV and LIV–LV", "Landmark: LIV spinous process = horizontal line between highest points of iliac crests", "Palpable tip of lumbar spinous process lies opposite its corresponding vertebral body", ], 0.5, 1.7, 6.8, 5.35, 11.5); if (!genImgs[1].error) { s.addShape(pres.shapes.RECTANGLE, { x:7.75, y:1.15, w:5.25, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: genImgs[1].base64, x:7.85, y:1.2, w:5.05, h:5.35 }); s.addText("Cross-section: Subarachnoid Space & Meninges", { x:7.75, y:6.5, w:5.25, h:0.45, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ── SLIDE 12: SECTION DIVIDER — EPIDURAL SPACE ────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.dark}, line:{color:C.dark} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:6.5, h:7.5, fill:{color:C.blue}, line:{color:C.blue} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.55, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Part 3", { x:0.5, y:2.05, w:5.7, h:0.55, fontSize:18, color:C.mid, fontFace:"Calibri", align:"center", charSpacing:6 }); s.addText("Epidural\nSpace", { x:0.5, y:2.65, w:5.7, h:1.8, fontSize:44, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Extradural Anatomy & Anesthesia", { x:0.5, y:3.8, w:6.0, h:0.65, fontSize:14, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); if (!genImgs[2].error) { s.addImage({ data: genImgs[2].base64, x:6.7, y:0.4, w:6.35, h:6.7 }); } } // ── SLIDE 13: EPIDURAL SPACE ANATOMY ──────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Epidural (Extradural) Space — Anatomy"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:6.1, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Definition & Contents", { x:0.5, y:1.25, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Extradural (epidural) space: between the walls of the vertebral canal and the dural sac", "Contains a vertebral venous plexus embedded in fatty connective tissue", "A potential space under normal conditions", "In the cranium: outer (periosteal) dura layer firmly attached to bones — space becomes real only with traumatic vascular hemorrhage", "Cranial extradural hematoma: rupture of a meningeal artery or torn dural venous sinus", ], 0.5, 1.7, 5.7, 2.5, 12); s.addText("Vertebral Canal Walls", { x:0.5, y:4.25, w:5.7, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Anteriorly: vertebral bodies + intervertebral discs + posterior longitudinal ligament", "Laterally: pedicles and intervertebral foramina", "Posteriorly: laminae + ligamenta flava + interspinous ligament roots + spinous processes", ], 0.5, 4.7, 5.7, 2.4, 12); if (!tbImgs[2].error) { s.addShape(pres.shapes.RECTANGLE, { x:6.55, y:1.15, w:6.45, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: tbImgs[2].base64, x:6.65, y:1.2, w:6.25, h:5.3 }); s.addText("Fig. 2.60 — Structures in the Vertebral Canal, Lumbar Region (Gray's Anatomy for Students)", { x:6.55, y:6.5, w:6.45, h:0.45, fontSize:8.5, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ── SLIDE 14: EPIDURAL ANESTHESIA ─────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Epidural Space — Extradural Anesthesia"); s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.15, w:7.2, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addText("Technique", { x:0.5, y:1.25, w:6.8, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Needle placed through: skin → supraspinous ligament → interspinous ligament → ligamenta flava → areolar tissue/fat around dura mater (extradural space)", "Anesthetic diffuses around vertebral canal → anesthetizes exiting nerve roots", "Anesthetic also diffuses into subarachnoid space", "Alternative: needle placed more laterally through skin and muscle to anesthetize specific nerves", ], 0.5, 1.7, 6.8, 2.6, 11.5); s.addText("Indications & Considerations", { x:0.5, y:4.35, w:6.8, h:0.4, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri" }); addBullets(s, [ "Pelvic and lower limb operations — alternative to general anesthesia", "Anesthetizes sacral and lumbar nerve roots", "Patient position is critical: erect position required", "Lying on side → unilateral anesthesia; head-down → anesthetic can spread cranially and depress respiration", "Spinal anesthesia: anesthetic injected into subarachnoid space (not extradural) for denser block", ], 0.5, 4.8, 6.8, 2.3, 11.5); if (!genImgs[2].error) { s.addShape(pres.shapes.RECTANGLE, { x:7.75, y:1.15, w:5.25, h:6.0, fill:{color:C.white}, line:{color:C.mid} }); s.addImage({ data: genImgs[2].base64, x:7.85, y:1.2, w:5.05, h:5.35 }); s.addText("Epidural needle placement & anatomy", { x:7.75, y:6.5, w:5.25, h:0.45, fontSize:9, color:C.sub, fontFace:"Calibri", italic:true, align:"center" }); } } // ── SLIDE 15: COMPARATIVE SUMMARY TABLE ───────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.light}, line:{color:C.light} }); addSlideHeader(s, "Summary — Comparison Table"); const rows = [ ["Feature", "Brachial Plexus", "Subarachnoid Space", "Epidural Space"], ["Location", "Neck & axilla", "Arachnoid mater → pia mater", "Dura mater → vertebral canal walls"], ["Contents", "Nerve roots, trunks, divs, cords, branches", "CSF, blood vessels, arachnoid trabeculae", "Venous plexus, fatty connective tissue"], ["Boundaries", "C5–T1 anterior rami", "Foramen magnum → lower border S2", "Vertebral canal walls to dural sac"], ["Normal state", "Active nerve plexus", "Fluid-filled (CSF)", "Potential space"], ["Clinical use", "Nerve blocks; plexus injury Dx","Lumbar puncture; spinal anesthesia", "Epidural anesthesia; hematoma Rx"], ]; const cW = [2.55, 3.35, 3.55, 3.55]; const cX = [0.3, 2.9, 6.3, 9.9]; const rH = 0.87; const sY = 1.2; rows.forEach((row, ri) => { row.forEach((cell, ci) => { const bg = ri===0 ? C.navy : ci===0 ? C.blue : ri%2===0 ? C.white : C.light; const fc = (ri===0||ci===0) ? C.white : C.text; s.addShape(pres.shapes.RECTANGLE, { x:cX[ci]+0.02, y:sY+(ri*rH)+0.02, w:cW[ci]-0.04, h:rH-0.04, fill:{color:bg}, line:{color:C.mid} }); s.addText(cell, { x:cX[ci]+0.1, y:sY+(ri*rH)+0.02, w:cW[ci]-0.2, h:rH-0.04, fontSize: ri===0||ci===0 ? 11 : 10, bold:ri===0||ci===0, color:fc, fontFace:"Calibri", valign:"middle", align:"left" }); }); }); } // ── SLIDE 16: CLOSING ─────────────────────────────────────── { const s = pres.addSlide(); s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.navy}, line:{color:C.navy} }); s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.4, w:13.3, h:0.08, fill:{color:C.gold}, line:{color:C.gold} }); s.addText("Thank You", { x:1, y:1.8, w:11.3, h:1.4, fontSize:54, bold:true, color:C.white, fontFace:"Calibri", align:"center" }); s.addText("Content sourced exclusively from:", { x:1, y:3.7, w:11.3, h:0.5, fontSize:14, color:C.mid, fontFace:"Calibri", align:"center" }); s.addText("Gray's Anatomy for Students", { x:1, y:4.28, w:11.3, h:0.7, fontSize:24, bold:true, color:C.gold, fontFace:"Calibri", align:"center", italic:true }); s.addText("Brachial Plexus • Subarachnoid Space • Epidural Space", { x:1, y:5.1, w:11.3, h:0.5, fontSize:13, color:C.mid, fontFace:"Calibri", align:"center" }); } pres.writeFile({ fileName: "/home/daytona/workspace/anatomy-ppt/Anatomy_BrachialPlexus_Subarachnoid_Epidural.pptx" }) .then(() => console.log("SUCCESS")) .catch(e => { console.error("ERROR:", e); process.exit(1); }); JSEOF echo "Done writing script"

Running Command

cd /home/daytona/workspace/anatomy-ppt && node build2.js

Running Command

ls -lh /home/daytona/workspace/anatomy-ppt/Anatomy_BrachialPlexus_Subarachnoid_Epidural.pptx

Your presentation is ready! Here's a preview of what's included:

Anatomy BrachialPlexus Subarachnoid Epidural

Presentation · PPTX

(14 MB)

What's inside — 16 slides, exclusively from Gray's Anatomy for Students:

Brachial Plexus (7 slides)
  • Overview & formation (C5–T1 anterior rami, neck → axilla)
  • Roots & Trunks (with scalene passage, sympathetic rami communicantes, 3 trunks)
  • Divisions & Cords (named by relation to axillary artery) + mnemonic "Robert Taylor Drinks Cold Beer"
  • Branches (5-column layout: roots, trunks, lateral cord, medial cord, posterior cord)
  • Injuries in the clinic (EMG, avulsions, level correlations)
Subarachnoid Space (3 slides)
  • Anatomy (arachnoid trabeculae, extent foramen magnum → S2, lumbar cistern)
  • Meninges & CSF (pia mater, denticulate ligaments, choroid plexus, arachnoid granulations, cisterns)
  • Lumbar puncture technique & landmarks (LIV level, safe intervertebral levels)
Epidural Space (2 slides)
  • Anatomy (extradural potential space, venous plexus in fat, vertebral canal walls)
  • Extradural anesthesia (needle path through ligaments, patient positioning, indications)
Plus: Summary comparison table and section dividers.
Images embedded: 3 AI-generated anatomical diagrams + 3 original textbook figures from Gray's (brachial plexus schematic, meninges cross-section, vertebral canal).
This is a shared conversation. Sign in to Orris to start your own chat.