hi
I am studying BHMS I year
tomorrow i have seminar in anatomy on the topic of superior oblique muscle
The trochlea acts as a functional origin - it is the mechanical "pulley" that redirects the line of pull of the muscle.
| Action | Classification |
|---|---|
| Intorsion (medial rotation) | PRIMARY action |
| Depression (looking down) | Secondary |
| Abduction (looking outward) | Secondary |

| Feature | Detail |
|---|---|
| Origin | Body of sphenoid (superomedial to optic canal) |
| Trochlea | Fibrocartilaginous pulley at trochlear fovea of frontal bone |
| Insertion | Outer posterior (superotemporal) quadrant of eyeball |
| Nerve | CN IV (Trochlear) |
| Primary action | Intorsion |
| Secondary actions | Depression, Abduction |
| Best test position | Eye adducted 51° - then look down |
| Paralysis | Head tilt away from lesion, diplopia on downward gaze |
generate a presentation slide set on superior oblique muscle origin, insertion, nerve supply, action, clinical anatomy including examination.
mkdir -p /home/daytona/workspace/superior-oblique-ppt && ls /home/daytona/workspace/superior-oblique-ppt/
node /home/daytona/skills/shared/scripts/fetch_images.js "https://cdn.orris.care/cdss_images/b400634b95601c87bb68edb827931745fdbb7126eda6b304899c2fd71cd45d8d.png" 2>/dev/null | node -e "const d=require('fs');let raw='';process.stdin.on('data',c=>raw+=c);process.stdin.on('end',()=>{const arr=JSON.parse(raw);console.log(arr[0].error||'OK: '+arr[0].base64.substring(0,40));})"
~/superior-oblique-ppt/create_pptx.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// Fetch anatomy image
const images = JSON.parse(
execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js "https://cdn.orris.care/cdss_images/b400634b95601c87bb68edb827931745fdbb7126eda6b304899c2fd71cd45d8d.png"`
).toString()
);
const actionImg = images[0].error ? null : images[0].base64;
// ---- THEME COLORS ----
const DARK_BG = "0D1B2A"; // deep navy
const MID_BG = "1B2F45"; // mid-navy
const ACCENT = "00B4D8"; // bright cyan
const ACCENT2 = "48CAE4"; // lighter cyan
const WHITE = "FFFFFF";
const LIGHT_GRAY = "D9E8F0";
const GOLD = "F4A261";
const DARK_TEXT = "0D1B2A";
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Superior Oblique Muscle";
pres.author = "BHMS Anatomy Seminar";
// ================================================================
// HELPER: add a decorative top bar
// ================================================================
function addTopBar(slide, title, subtitle) {
// Dark top bar
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 1.1,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
// Cyan accent line under top bar
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 1.1, w: 10, h: 0.06,
fill: { color: ACCENT }, line: { color: ACCENT }
});
// Title text
slide.addText(title, {
x: 0.35, y: 0.1, w: 9.3, h: 0.55,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri",
margin: 0
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.35, y: 0.65, w: 9.3, h: 0.38,
fontSize: 13, color: ACCENT2, fontFace: "Calibri", italic: true,
margin: 0
});
}
}
// ================================================================
// HELPER: add page background
// ================================================================
function setLightBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: "F0F7FB" }, line: { color: "F0F7FB" }
});
}
function setDarkBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
}
// ================================================================
// SLIDE 1 — Title Slide
// ================================================================
{
let slide = pres.addSlide();
setDarkBg(slide);
// Decorative circle accent
slide.addShape(pres.shapes.OVAL, {
x: 6.8, y: -1.2, w: 5, h: 5,
fill: { color: MID_BG }, line: { color: MID_BG }
});
slide.addShape(pres.shapes.OVAL, {
x: 7.5, y: -0.7, w: 4.0, h: 4.0,
fill: { color: "112233" }, line: { color: "112233" }
});
// Cyan accent bar left
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 1.4, w: 0.12, h: 2.8,
fill: { color: ACCENT }, line: { color: ACCENT }
});
// Main title
slide.addText("Superior Oblique", {
x: 0.8, y: 1.3, w: 8.5, h: 0.9,
fontSize: 44, bold: true, color: WHITE, fontFace: "Calibri",
margin: 0
});
slide.addText("Muscle", {
x: 0.8, y: 2.1, w: 8.5, h: 0.9,
fontSize: 44, bold: true, color: ACCENT, fontFace: "Calibri",
margin: 0
});
// Subtitle
slide.addText("Anatomy Seminar | BHMS 1st Year", {
x: 0.8, y: 3.1, w: 8, h: 0.45,
fontSize: 16, color: LIGHT_GRAY, fontFace: "Calibri", italic: true,
margin: 0
});
slide.addText("Origin • Insertion • Nerve Supply • Actions • Clinical Anatomy", {
x: 0.8, y: 3.55, w: 8.5, h: 0.38,
fontSize: 13, color: ACCENT2, fontFace: "Calibri",
margin: 0
});
// Bottom strip
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.2, w: 10, h: 0.425,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText("Gray's Anatomy for Students | Kanski's Clinical Ophthalmology, 10th ed.", {
x: 0.3, y: 5.22, w: 9.4, h: 0.38,
fontSize: 10, color: DARK_BG, fontFace: "Calibri",
margin: 0
});
}
// ================================================================
// SLIDE 2 — Overview / Classification
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Overview & Classification", "Where does the Superior Oblique fit?");
// Content box
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 1.3, w: 5.9, h: 3.9,
fill: { color: WHITE },
shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.1 },
line: { color: ACCENT, pt: 1.5 }
});
slide.addText([
{ text: "Extrinsic (Extraocular) Muscles of Orbit", options: { bold: true, color: DARK_BG, fontSize: 14, breakLine: true } },
{ text: " ", options: { fontSize: 8, breakLine: true } },
{ text: "4 Rectus muscles", options: { bullet: { type: "bullet", indent: 15 }, color: "334455", fontSize: 13, breakLine: true } },
{ text: "Superior, Inferior, Medial, Lateral", options: { bullet: { type: "bullet", indent: 30 }, color: "556677", fontSize: 11, italic: true, breakLine: true } },
{ text: " ", options: { fontSize: 6, breakLine: true } },
{ text: "2 Oblique muscles ◀ Our Focus", options: { bullet: { type: "bullet", indent: 15 }, color: ACCENT, fontSize: 13, bold: true, breakLine: true } },
{ text: "Superior Oblique ✓", options: { bullet: { type: "bullet", indent: 30 }, color: "006699", fontSize: 12, bold: true, breakLine: true } },
{ text: "Inferior Oblique", options: { bullet: { type: "bullet", indent: 30 }, color: "556677", fontSize: 11, breakLine: true } },
{ text: " ", options: { fontSize: 6, breakLine: true } },
{ text: "1 Levator palpebrae superioris", options: { bullet: { type: "bullet", indent: 15 }, color: "334455", fontSize: 13, breakLine: true } },
], { x: 0.5, y: 1.4, w: 5.6, h: 3.7, valign: "top", fontFace: "Calibri" });
// Key features box
slide.addShape(pres.shapes.RECTANGLE, {
x: 6.5, y: 1.3, w: 3.15, h: 3.9,
fill: { color: DARK_BG },
shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.15 },
line: { color: DARK_BG }
});
slide.addText("Key Facts", {
x: 6.6, y: 1.4, w: 2.9, h: 0.4,
fontSize: 14, bold: true, color: ACCENT, fontFace: "Calibri", margin: 0
});
slide.addText([
{ text: "Does NOT arise from", options: { color: LIGHT_GRAY, fontSize: 11, breakLine: true } },
{ text: "common tendinous ring", options: { color: GOLD, fontSize: 11, bold: true, breakLine: true } },
{ text: " ", options: { fontSize: 8, breakLine: true } },
{ text: "Attaches to the", options: { color: LIGHT_GRAY, fontSize: 11, breakLine: true } },
{ text: "POSTERIOR half", options: { color: GOLD, fontSize: 12, bold: true, breakLine: true } },
{ text: "of the eyeball", options: { color: LIGHT_GRAY, fontSize: 11, breakLine: true } },
{ text: " ", options: { fontSize: 8, breakLine: true } },
{ text: "Has an angular", options: { color: LIGHT_GRAY, fontSize: 11, breakLine: true } },
{ text: "approach to globe", options: { color: GOLD, fontSize: 11, bold: true, breakLine: true } },
{ text: " ", options: { fontSize: 8, breakLine: true } },
{ text: "Innervated by", options: { color: LIGHT_GRAY, fontSize: 11, breakLine: true } },
{ text: "CN IV (Trochlear)", options: { color: ACCENT2, fontSize: 12, bold: true } },
], { x: 6.6, y: 1.85, w: 2.9, h: 3.2, valign: "top", fontFace: "Calibri" });
}
// ================================================================
// SLIDE 3 — Origin
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Origin", "Where does the Superior Oblique arise?");
// Big accent label
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 1.28, w: 2.4, h: 0.6,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText("ORIGIN", {
x: 0.35, y: 1.28, w: 2.4, h: 0.6,
fontSize: 18, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
// Main content
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 2.0, w: 9.3, h: 1.1,
fill: { color: WHITE },
shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 },
line: { color: ACCENT, pt: 1.5 }
});
slide.addText([
{ text: "Body of the Sphenoid Bone", options: { bold: true, fontSize: 17, color: "003366" } },
{ text: " — superior and medial to the optic canal", options: { fontSize: 15, color: DARK_BG } },
{ text: "\nMedial to the origin of levator palpebrae superioris", options: { fontSize: 13, color: "556677", italic: true } }
], { x: 0.55, y: 2.05, w: 9.0, h: 1.0, valign: "middle", fontFace: "Calibri" });
// Three detail cards
const cards = [
{ title: "Bone", body: "Sphenoid body\n(not common\ntendinous ring)", color: "1B4F72" },
{ title: "Relation", body: "Superomedial\nto the\noptic canal", color: "1A5276" },
{ title: "Neighbour", body: "Medial to\nlevator palpebrae\nsuperioris origin", color: "154360" },
];
cards.forEach((c, i) => {
let x = 0.35 + i * 3.1;
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y: 3.3, w: 2.9, h: 1.9,
fill: { color: c.color }, line: { color: c.color }, rectRadius: 0.12
});
slide.addText(c.title, {
x, y: 3.35, w: 2.9, h: 0.45,
fontSize: 15, bold: true, color: ACCENT, fontFace: "Calibri",
align: "center", margin: 0
});
slide.addText(c.body, {
x, y: 3.78, w: 2.9, h: 1.35,
fontSize: 13, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle"
});
});
}
// ================================================================
// SLIDE 4 — Course & Trochlea
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Course & The Trochlea", "The unique pulley mechanism");
// Step-by-step pathway
const steps = [
{ n: "1", label: "Sphenoid body", desc: "Muscle arises superomedial to optic canal" },
{ n: "2", label: "Along orbital roof", desc: "Passes forward along medial border of roof of orbit" },
{ n: "3", label: "Trochlea (pulley)", desc: "Fibrocartilaginous pulley at trochlear fovea of frontal bone — REDIRECTS the tendon" },
{ n: "4", label: "Turns laterally", desc: "Tendon passes through trochlea; runs posterolaterally" },
{ n: "5", label: "Insertion", desc: "Passes deep to superior rectus → outer posterior quadrant of eyeball" },
];
steps.forEach((s, i) => {
let y = 1.3 + i * 0.82;
// Number circle
slide.addShape(pres.shapes.OVAL, {
x: 0.35, y: y + 0.04, w: 0.48, h: 0.48,
fill: { color: i === 2 ? GOLD : ACCENT }, line: { color: i === 2 ? GOLD : ACCENT }
});
slide.addText(s.n, {
x: 0.35, y: y + 0.04, w: 0.48, h: 0.48,
fontSize: 14, bold: true, color: DARK_BG, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
// Connector line (not for last)
if (i < steps.length - 1) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.565, y: y + 0.52, w: 0.05, h: 0.32,
fill: { color: "AABBCC" }, line: { color: "AABBCC" }
});
}
// Label
slide.addText(s.label, {
x: 1.0, y: y + 0.0, w: 2.5, h: 0.5,
fontSize: 14, bold: true, color: i === 2 ? GOLD : "003366", fontFace: "Calibri",
valign: "middle", margin: 0
});
// Desc
slide.addText(s.desc, {
x: 3.6, y: y + 0.0, w: 6.0, h: 0.5,
fontSize: 12, color: "334455", fontFace: "Calibri",
valign: "middle", italic: i === 2
});
});
// Trochlea highlight box
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.35, y: 5.05, w: 9.3, h: 0.48,
fill: { color: GOLD }, line: { color: GOLD }, rectRadius: 0.08
});
slide.addText("Key: The trochlea acts as the FUNCTIONAL ORIGIN — it is the mechanical pulley that redirects the line of pull of the muscle", {
x: 0.5, y: 5.07, w: 9.0, h: 0.44,
fontSize: 12, bold: true, color: DARK_BG, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
}
// ================================================================
// SLIDE 5 — Insertion
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Insertion", "Where does the tendon attach?");
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 1.28, w: 2.4, h: 0.6,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText("INSERTION", {
x: 0.35, y: 1.28, w: 2.4, h: 0.6,
fontSize: 18, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
// Main insertion box
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.35, y: 2.0, w: 9.3, h: 1.0,
fill: { color: WHITE },
shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.1 },
line: { color: ACCENT, pt: 1.5 }
});
slide.addText([
{ text: "Outer Posterior Quadrant of the Eyeball", options: { bold: true, fontSize: 17, color: "003366" } },
{ text: "\n(Posterosuperior Temporal Quadrant)", options: { fontSize: 13, color: "556677", italic: true } }
], { x: 0.55, y: 2.05, w: 9.0, h: 0.9, valign: "middle", fontFace: "Calibri" });
// Two fibre cards
const fibres = [
{
title: "Anterior Fibres",
icon: "↺",
body: "Primarily responsible for\nINTORSION\n(medial rotation)",
color: "1B4F72"
},
{
title: "Posterior Fibres",
icon: "↓",
body: "Primarily responsible for\nDEPRESSION\n(downward movement)",
color: "154360"
}
];
fibres.forEach((f, i) => {
let x = 0.35 + i * 4.85;
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y: 3.2, w: 4.55, h: 2.1,
fill: { color: f.color }, line: { color: f.color }, rectRadius: 0.12
});
slide.addText(f.icon, {
x, y: 3.25, w: 4.55, h: 0.6,
fontSize: 26, color: GOLD, fontFace: "Calibri",
align: "center", margin: 0
});
slide.addText(f.title, {
x, y: 3.8, w: 4.55, h: 0.4,
fontSize: 15, bold: true, color: ACCENT, fontFace: "Calibri",
align: "center", margin: 0
});
slide.addText(f.body, {
x, y: 4.2, w: 4.55, h: 1.0,
fontSize: 13, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle"
});
});
// Surgical note
slide.addText("Clinical note: Separate surgical manipulation of anterior (intorsion) vs posterior (depression) fibres is possible", {
x: 0.35, y: 5.35, w: 9.3, h: 0.22,
fontSize: 10, color: "006699", fontFace: "Calibri", italic: true
});
}
// ================================================================
// SLIDE 6 — Nerve Supply
// ================================================================
{
let slide = pres.addSlide();
setDarkBg(slide);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 1.1,
fill: { color: "091522" }, line: { color: "091522" }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 1.1, w: 10, h: 0.06,
fill: { color: GOLD }, line: { color: GOLD }
});
slide.addText("Nerve Supply", {
x: 0.35, y: 0.1, w: 9.3, h: 0.55,
fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
});
slide.addText("Trochlear Nerve — CN IV", {
x: 0.35, y: 0.65, w: 9.3, h: 0.38,
fontSize: 13, color: GOLD, fontFace: "Calibri", italic: true, margin: 0
});
// Big CN IV box
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.35, y: 1.3, w: 4.2, h: 1.15,
fill: { color: MID_BG }, line: { color: GOLD, pt: 2 }, rectRadius: 0.12
});
slide.addText("Trochlear Nerve (CN IV)", {
x: 0.45, y: 1.35, w: 4.0, h: 0.5,
fontSize: 18, bold: true, color: GOLD, fontFace: "Calibri",
align: "center", margin: 0
});
slide.addText("Innervates along superior surface of muscle", {
x: 0.45, y: 1.82, w: 4.0, h: 0.55,
fontSize: 12, color: LIGHT_GRAY, fontFace: "Calibri",
align: "center"
});
// Unique features
const facts = [
{ label: "Supplies", val: "Only 1 muscle\n(Superior Oblique)" },
{ label: "Exit", val: "Dorsal (posterior)\nsurface of brainstem" },
{ label: "Course", val: "Longest intracranial\ncourse of any CN" },
{ label: "Contralateral", val: "Crosses midline after\nexiting brainstem" },
];
facts.forEach((f, i) => {
let x = 0.35 + i * 2.35;
slide.addShape(pres.shapes.RECTANGLE, {
x, y: 2.65, w: 2.2, h: 2.6,
fill: { color: "112233" }, line: { color: ACCENT, pt: 1 }
});
slide.addShape(pres.shapes.RECTANGLE, {
x, y: 2.65, w: 2.2, h: 0.45,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText(f.label, {
x, y: 2.65, w: 2.2, h: 0.45,
fontSize: 13, bold: true, color: DARK_BG, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
slide.addText(f.val, {
x, y: 3.15, w: 2.2, h: 2.0,
fontSize: 13, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle"
});
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 4.7, y: 1.3, w: 4.95, h: 1.15,
fill: { color: "091522" }, line: { color: ACCENT, pt: 1 }
});
slide.addText("CN IV is the ONLY cranial nerve that:\n• Exits from the DORSAL surface of the brainstem\n• Supplies just ONE muscle\n• Has the LONGEST intracranial course", {
x: 4.85, y: 1.32, w: 4.7, h: 1.1,
fontSize: 12, color: ACCENT2, fontFace: "Calibri", valign: "middle"
});
}
// ================================================================
// SLIDE 7 — Actions
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Actions of the Superior Oblique", "Primary and secondary movements");
// Three action cards
const actions = [
{ rank: "PRIMARY", action: "INTORSION", desc: "Medial rotation of the\nupper pole of the eyeball\ntowards the nose", icon: "↺", color: ACCENT },
{ rank: "SECONDARY", action: "DEPRESSION", desc: "Pulls the pupil\ndownward\n(especially in adduction)", icon: "↓", color: "1B7FC4" },
{ rank: "SECONDARY", action: "ABDUCTION", desc: "Moves eyeball\nlaterally (outward)\naway from nose", icon: "→", color: "1565A7" },
];
actions.forEach((a, i) => {
let x = 0.3 + i * 3.22;
// Card shadow
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y: 1.3, w: 3.05, h: 4.0,
fill: { color: a.color },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.2 },
line: { color: a.color },
rectRadius: 0.15
});
// Rank badge
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: x + 0.15, y: 1.45, w: 2.75, h: 0.38,
fill: { color: "FFFFFF22" }, line: { color: "FFFFFF44" }, rectRadius: 0.08
});
slide.addText(a.rank, {
x: x + 0.15, y: 1.45, w: 2.75, h: 0.38,
fontSize: 11, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
// Icon
slide.addText(a.icon, {
x, y: 1.9, w: 3.05, h: 0.85,
fontSize: 40, color: WHITE, fontFace: "Calibri",
align: "center", margin: 0
});
// Action name
slide.addText(a.action, {
x, y: 2.75, w: 3.05, h: 0.55,
fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", margin: 0
});
// Description
slide.addText(a.desc, {
x: x + 0.1, y: 3.35, w: 2.85, h: 1.8,
fontSize: 13, color: WHITE, fontFace: "Calibri",
align: "center", valign: "top"
});
});
// Mnemonic
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 5.28, w: 9.4, h: 0.3,
fill: { color: DARK_BG }, line: { color: DARK_BG }
});
slide.addText("Mnemonic: Superior oblique — 'I.D.A.' — Intorts, Depresses, Abducts", {
x: 0.3, y: 5.28, w: 9.4, h: 0.3,
fontSize: 12, color: ACCENT, fontFace: "Calibri",
align: "center", valign: "middle", bold: true, margin: 0
});
}
// ================================================================
// SLIDE 8 — Position-Dependent Actions (with diagram)
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Position-Dependent Actions", "How the action changes with eye position");
// Left content
const posData = [
{ pos: "Primary position\n(looking straight)", action: "Intorsion + Abduction + Depression", color: "1B4F72" },
{ pos: "Adducted 51°\n(eye turned inward)", action: "Pure DEPRESSOR only\n← Best position to test", color: "006633", highlight: true },
{ pos: "Abducted 39°\n(eye turned outward)", action: "Pure INTORTOR only", color: "7D3C98" },
];
posData.forEach((p, i) => {
let y = 1.3 + i * 1.35;
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y, w: 5.5, h: 1.2,
fill: { color: p.highlight ? "E8F8F5" : WHITE },
line: { color: p.color, pt: p.highlight ? 2.5 : 1.5 },
rectRadius: 0.1
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 0.18, h: 1.2,
fill: { color: p.color }, line: { color: p.color }
});
slide.addText(p.pos, {
x: 0.58, y: y + 0.1, w: 2.2, h: 1.0,
fontSize: 12, bold: true, color: p.color, fontFace: "Calibri", valign: "middle"
});
slide.addText(p.action, {
x: 2.85, y: y + 0.1, w: 2.8, h: 1.0,
fontSize: 12, color: p.highlight ? "006633" : "334455", fontFace: "Calibri",
valign: "middle", bold: p.highlight
});
});
// Image on right
if (actionImg) {
slide.addImage({
data: actionImg,
x: 5.95, y: 1.25, w: 3.7, h: 4.1
});
slide.addText("Actions of right superior oblique\n(Kanski's Clinical Ophthalmology, 10e)", {
x: 5.95, y: 5.3, w: 3.7, h: 0.28,
fontSize: 9, color: "667788", fontFace: "Calibri", italic: true, align: "center"
});
}
// Key teaching
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 5.3, w: 5.5, h: 0.3,
fill: { color: GOLD }, line: { color: GOLD }, rectRadius: 0.06
});
slide.addText("Exam Tip: Primary action = INTORSION (not depression!)", {
x: 0.4, y: 5.32, w: 5.3, h: 0.26,
fontSize: 11, bold: true, color: DARK_BG, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
}
// ================================================================
// SLIDE 9 — Clinical Examination
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Clinical Examination", "How to test the Superior Oblique");
// Steps
const steps = [
{ num: "Step 1", text: "Ask the patient to ADDUCT the eye — look medially (nasally)", sub: "This aligns the axis of the tendon with the axis of the eyeball" },
{ num: "Step 2", text: "Then ask the patient to look DOWNWARD", sub: "This tests the depressor action of the superior oblique in isolation" },
{ num: "Step 3", text: "Observe the movement", sub: "Failure to depress the adducted eye = superior oblique weakness / CN IV palsy" },
];
steps.forEach((s, i) => {
let y = 1.3 + i * 1.35;
slide.addShape(pres.shapes.OVAL, {
x: 0.3, y: y + 0.25, w: 0.65, h: 0.65,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText((i+1).toString(), {
x: 0.3, y: y + 0.25, w: 0.65, h: 0.65,
fontSize: 18, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 1.1, y, w: 8.5, h: 1.2,
fill: { color: WHITE },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.08 },
line: { color: i === 2 ? GOLD : ACCENT, pt: 1.5 },
rectRadius: 0.1
});
slide.addText(s.num + ": " + s.text, {
x: 1.25, y: y + 0.08, w: 8.2, h: 0.5,
fontSize: 14, bold: true, color: "003366", fontFace: "Calibri", margin: 0
});
slide.addText(s.sub, {
x: 1.25, y: y + 0.58, w: 8.2, h: 0.52,
fontSize: 12, color: "556677", fontFace: "Calibri", italic: true, margin: 0
});
});
// Rational box
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 5.28, w: 9.4, h: 0.3,
fill: { color: DARK_BG }, line: { color: DARK_BG }, rectRadius: 0.06
});
slide.addText("Rationale: At 51° adduction the SO acts as a PURE depressor — isolating its action from other muscles", {
x: 0.45, y: 5.3, w: 9.1, h: 0.26,
fontSize: 11, color: ACCENT2, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
}
// ================================================================
// SLIDE 10 — Clinical Anatomy: CN IV Palsy
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Clinical Anatomy: CN IV (Trochlear) Palsy", "Superior Oblique paralysis");
// Two-column layout
// Left: Features
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.3, w: 4.7, h: 3.95,
fill: { color: WHITE },
shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.1 },
line: { color: ACCENT, pt: 1.5 }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.3, w: 4.7, h: 0.5,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText("Features of CN IV Palsy", {
x: 0.35, y: 1.32, w: 4.6, h: 0.46,
fontSize: 14, bold: true, color: WHITE, fontFace: "Calibri",
valign: "middle", margin: 0
});
slide.addText([
{ text: "Vertical diplopia", options: { bullet: true, color: DARK_BG, fontSize: 13, breakLine: true, bold: true } },
{ text: "Images separated vertically", options: { bullet: true, indent: 25, color: "556677", fontSize: 11, italic: true, breakLine: true } },
{ text: "Hypertropia", options: { bullet: true, color: DARK_BG, fontSize: 13, breakLine: true, bold: true } },
{ text: "Affected eye drifts upward", options: { bullet: true, indent: 25, color: "556677", fontSize: 11, italic: true, breakLine: true } },
{ text: "Worse on downward + inward gaze", options: { bullet: true, color: DARK_BG, fontSize: 13, breakLine: true, bold: true } },
{ text: "E.g., going downstairs", options: { bullet: true, indent: 25, color: "556677", fontSize: 11, italic: true, breakLine: true } },
{ text: "Extorsion of affected eye", options: { bullet: true, color: DARK_BG, fontSize: 13, breakLine: true, bold: true } },
{ text: "Loss of intorsion → eye tilts outward", options: { bullet: true, indent: 25, color: "556677", fontSize: 11, italic: true, breakLine: true } },
], { x: 0.45, y: 1.87, w: 4.45, h: 3.25, valign: "top", fontFace: "Calibri" });
// Right: Head tilt
slide.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 1.3, w: 4.5, h: 3.95,
fill: { color: DARK_BG },
shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.15 },
line: { color: DARK_BG }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y: 1.3, w: 4.5, h: 0.5,
fill: { color: GOLD }, line: { color: GOLD }
});
slide.addText("Compensatory Head Tilt", {
x: 5.25, y: 1.32, w: 4.4, h: 0.46,
fontSize: 14, bold: true, color: DARK_BG, fontFace: "Calibri",
valign: "middle", margin: 0
});
slide.addText("Tilts head AWAY\nfrom the affected side", {
x: 5.3, y: 1.95, w: 4.3, h: 0.8,
fontSize: 18, bold: true, color: GOLD, fontFace: "Calibri",
align: "center"
});
slide.addText([
{ text: "Why does this happen?", options: { bold: true, color: ACCENT2, fontSize: 13, breakLine: true } },
{ text: " ", options: { fontSize: 6, breakLine: true } },
{ text: "Loss of intorsion means the eye extorts uncontrolled.", options: { color: LIGHT_GRAY, fontSize: 12, breakLine: true } },
{ text: " ", options: { fontSize: 5, breakLine: true } },
{ text: "Tilting head toward opposite shoulder", options: { color: LIGHT_GRAY, fontSize: 12, breakLine: true } },
{ text: "brings the visual axes back into alignment", options: { color: LIGHT_GRAY, fontSize: 12, breakLine: true } },
{ text: "→ reduces diplopia.", options: { color: GOLD, fontSize: 12, bold: true, breakLine: true } },
{ text: " ", options: { fontSize: 5, breakLine: true } },
{ text: "Bielschowsky head tilt test", options: { color: ACCENT, fontSize: 12, bold: true, breakLine: true } },
{ text: "confirms CN IV palsy (hypertropia worsens\nwhen head tilted to affected side).", options: { color: LIGHT_GRAY, fontSize: 11 } },
], { x: 5.3, y: 2.7, w: 4.3, h: 2.4, valign: "top", fontFace: "Calibri" });
// Congenital note
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 5.3, w: 9.4, h: 0.3,
fill: { color: "EAF2FF" }, line: { color: ACCENT, pt: 1 }, rectRadius: 0.06
});
slide.addText("Congenital CN IV palsy: 73% of patients show an ipsilateral absent trochlear nerve on MRI", {
x: 0.4, y: 5.32, w: 9.1, h: 0.26,
fontSize: 11, color: "003366", fontFace: "Calibri",
align: "center", valign: "middle", italic: true, margin: 0
});
}
// ================================================================
// SLIDE 11 — Superior Oblique Myokymia
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Superior Oblique Myokymia", "A clinical condition of the superior oblique");
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 1.3, w: 9.4, h: 3.6,
fill: { color: WHITE },
shadow: { type: "outer", color: "000000", blur: 6, offset: 2, angle: 135, opacity: 0.1 },
line: { color: ACCENT, pt: 1.5 },
rectRadius: 0.12
});
const myokymia = [
{ label: "Definition", val: "Paroxysmal, rapid, small-amplitude monocular torsional-vertical oscillation caused by contraction of superior oblique muscle" },
{ label: "Symptoms", val: "• Monocular blurring\n• Torsional oscillopsia (objects appear to rotate)\n• Vertical diplopia" },
{ label: "Cause", val: "Spontaneous contraction (myokymia) of the superior oblique muscle" },
{ label: "Treatment", val: "Membrane-stabilizing drugs (e.g., carbamazepine, gabapentin)" },
];
myokymia.forEach((m, i) => {
let y = 1.4 + i * 0.82;
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.45, y: y + 0.05, w: 1.8, h: 0.65,
fill: { color: ACCENT }, line: { color: ACCENT }, rectRadius: 0.08
});
slide.addText(m.label, {
x: 0.45, y: y + 0.05, w: 1.8, h: 0.65,
fontSize: 13, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
slide.addText(m.val, {
x: 2.4, y: y + 0.05, w: 7.0, h: 0.65,
fontSize: 12, color: "334455", fontFace: "Calibri", valign: "middle"
});
if (i < myokymia.length - 1) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y: y + 0.75, w: 9.2, h: 0.03,
fill: { color: LIGHT_GRAY }, line: { color: LIGHT_GRAY }
});
}
});
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 5.1, w: 9.4, h: 0.44,
fill: { color: MID_BG }, line: { color: MID_BG }, rectRadius: 0.08
});
slide.addText("Brown Syndrome: restriction of superior oblique tendon sheath — limits elevation in adduction (another clinical relevance)", {
x: 0.45, y: 5.12, w: 9.1, h: 0.4,
fontSize: 11, color: ACCENT2, fontFace: "Calibri",
align: "center", valign: "middle"
});
}
// ================================================================
// SLIDE 12 — Quick Revision Summary Table
// ================================================================
{
let slide = pres.addSlide();
setLightBg(slide);
addTopBar(slide, "Quick Revision Summary", "Superior Oblique at a Glance");
const rows = [
["Feature", "Detail"],
["Origin", "Body of sphenoid — superomedial to optic canal"],
["Trochlea", "Fibrocartilaginous pulley at trochlear fovea of frontal bone"],
["Insertion", "Outer posterior (superotemporal) quadrant of eyeball"],
["Nerve Supply", "CN IV — Trochlear nerve (along superior surface)"],
["Primary Action", "INTORSION (medial rotation)"],
["Secondary Actions", "Depression + Abduction"],
["Test Position", "Eye adducted 51° → then look down"],
["CN IV Palsy", "Hypertropia, head tilt away from lesion, diplopia ↓ gaze"],
["Special", "Longest intracranial CN course; only CN exiting dorsal brainstem"],
];
let tableData = rows.map((row, ri) =>
row.map((cell, ci) => ({
text: cell,
options: {
bold: ri === 0,
color: ri === 0 ? WHITE : (ci === 0 ? "003366" : "222222"),
fill: ri === 0 ? DARK_BG : (ri % 2 === 0 ? "EAF4FB" : WHITE),
fontSize: ri === 0 ? 13 : 12,
fontFace: "Calibri",
align: ci === 0 ? "right" : "left",
}
}))
);
slide.addTable(tableData, {
x: 0.3, y: 1.25, w: 9.4, h: 4.1,
rowH: 0.385,
border: { type: "solid", pt: 0.5, color: "CCDDEE" },
});
// Footer
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.3, w: 10, h: 0.325,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText("Sources: Gray's Anatomy for Students | Kanski's Clinical Ophthalmology, 10th edition", {
x: 0.3, y: 5.32, w: 9.4, h: 0.28,
fontSize: 10, color: DARK_BG, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
}
// ================================================================
// SLIDE 13 — Thank You / End
// ================================================================
{
let slide = pres.addSlide();
setDarkBg(slide);
slide.addShape(pres.shapes.OVAL, {
x: -1.5, y: 3.0, w: 5, h: 5,
fill: { color: MID_BG }, line: { color: MID_BG }
});
slide.addShape(pres.shapes.OVAL, {
x: 7.5, y: -1.5, w: 4.5, h: 4.5,
fill: { color: "112233" }, line: { color: "112233" }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 3.5, y: 0, w: 0.08, h: 5.625,
fill: { color: ACCENT }, line: { color: ACCENT }, transparency: 70
});
slide.addText("Thank You", {
x: 1, y: 1.5, w: 8, h: 1.0,
fontSize: 48, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", margin: 0
});
slide.addText("Superior Oblique Muscle", {
x: 1, y: 2.55, w: 8, h: 0.55,
fontSize: 22, color: ACCENT, fontFace: "Calibri",
align: "center"
});
slide.addText("BHMS 1st Year | Anatomy Seminar", {
x: 1, y: 3.15, w: 8, h: 0.4,
fontSize: 14, color: LIGHT_GRAY, fontFace: "Calibri",
align: "center", italic: true
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.2, w: 10, h: 0.425,
fill: { color: ACCENT }, line: { color: ACCENT }
});
slide.addText("References: Gray's Anatomy for Students | Kanski's Clinical Ophthalmology 10e | Localization in Clinical Neurology 8e", {
x: 0.3, y: 5.22, w: 9.4, h: 0.38,
fontSize: 10, color: DARK_BG, fontFace: "Calibri",
align: "center", margin: 0
});
}
// ================================================================
// WRITE FILE
// ================================================================
pres.writeFile({ fileName: "/home/daytona/workspace/superior-oblique-ppt/Superior_Oblique_Muscle.pptx" })
.then(() => console.log("SUCCESS: File written"))
.catch(e => console.error("ERROR:", e));
cd /home/daytona/workspace/superior-oblique-ppt && node create_pptx.js 2>&1
ls -lh /home/daytona/workspace/superior-oblique-ppt/Superior_Oblique_Muscle.pptx
Superior Oblique Muscle
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide - Navy & cyan theme |
| 2 | Overview & Classification of extraocular muscles |
| 3 | Origin - sphenoid body, relations |
| 4 | Course & the Trochlea - step-by-step pathway diagram |
| 5 | Insertion - anterior vs posterior fibre distinction |
| 6 | Nerve Supply - CN IV unique facts (dark slide) |
| 7 | Actions - 3 cards: Intorsion / Depression / Abduction + mnemonic I.D.A. |
| 8 | Position-Dependent Actions with Kanski's diagram embedded |
| 9 | Clinical Examination - 3-step testing method |
| 10 | CN IV Palsy - features + Bielschowsky head tilt test |
| 11 | Superior Oblique Myokymia + Brown Syndrome |
| 12 | Quick Revision Summary Table |
| 13 | Thank You / Reference slide |
use reference book of bdc chaurasia book
Option A with add images in each pages
~/superior-oblique-ppt/create_pptx_v2.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ================================================================
// FETCH ALL IMAGES
// ================================================================
const IMG_URLS = [
"https://cdn.orris.care/cdss_images/dbcae5a03c6143d327763f181273f1e312e7e98b5ecaa9863c45432f981def51.png", // 0: muscles of eyeball
"https://cdn.orris.care/cdss_images/d038ba5e7b1aa21a97b86af5332f3698136eee5d627752ea8ac76a738b5d55a9.png", // 1: muscle origins
"https://cdn.orris.care/cdss_images/e7b560471b81d10ac4d4ca616d162ae7125e0ca9959402e8bae772da5467ed10.png", // 2: actions & testing
"https://cdn.orris.care/cdss_images/21b36ee582189d74a2d5ba4cfbaaaa3218ebd7125e89fe4d23331e3c16b2ea46.png", // 3: movements of eyeball
"https://cdn.orris.care/cdss_images/4a19649a25ec0a2ae83e489c3365569f3128a335fde03e4dd6d989f2857a6097.png", // 4: axes of eyeball & orbit
"https://cdn.orris.care/cdss_images/720393db11c8a177222d1535b70abcdebc054c9cd90758749d100f3f9abc9804.png", // 5: H-test diagram
"https://cdn.orris.care/cdss_images/1574d5b5e009abe5cf6ac0caa672aaac300ce6bbc9f5c4d5f0ccfb0f3420eb26.png", // 6: trochlear nerve in orbit
"https://cdn.orris.care/cdss_images/c9888742c2feb7f131256ec0a5b68fad7c3d94f755f15528542098d20283bd6c.png", // 7: SO tendon insertion
"https://cdn.orris.care/cdss_images/b400634b95601c87bb68edb827931745fdbb7126eda6b304899c2fd71cd45d8d.png", // 8: SO actions diagram
];
console.log("Fetching images...");
const fetched = JSON.parse(
execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${IMG_URLS.map(u => `"${u}"`).join(" ")}`,
{ maxBuffer: 50 * 1024 * 1024 }
).toString()
);
const IMG = fetched.map(f => f.error ? null : f.base64);
console.log("Images fetched:", IMG.map((v,i) => i + ":" + (v ? "OK" : "FAIL")).join(" "));
// ================================================================
// THEME
// ================================================================
const DARK_BG = "0D1B2A";
const MID_BG = "1B2F45";
const ACCENT = "00B4D8";
const ACCENT2 = "48CAE4";
const WHITE = "FFFFFF";
const LGRAY = "D9E8F0";
const GOLD = "F4A261";
const DARK_TEXT = "0D1B2A";
const REF_LINE = "B.D. Chaurasia's Human Anatomy, Vol. 3 (Head-Neck-Brain), 5th Edition";
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Superior Oblique Muscle";
pres.author = "BHMS Anatomy Seminar";
// ================================================================
// HELPERS
// ================================================================
function darkBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:DARK_BG}, line:{color:DARK_BG} });
}
function lightBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:"EFF7FC"}, line:{color:"EFF7FC"} });
}
// Top bar (light slides)
function topBar(slide, title, sub) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.08, fill:{color:DARK_BG}, line:{color:DARK_BG} });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:1.08, w:10, h:0.06, fill:{color:ACCENT}, line:{color:ACCENT} });
slide.addText(title, { x:0.35, y:0.08, w:9.3, h:0.56, fontSize:22, bold:true, color:WHITE, fontFace:"Calibri", margin:0 });
if(sub) slide.addText(sub, { x:0.35, y:0.64, w:9.3, h:0.36, fontSize:12, color:ACCENT2, fontFace:"Calibri", italic:true, margin:0 });
}
// Footer reference bar
function refBar(slide, dark) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.28, w:10, h:0.345, fill:{color: dark ? ACCENT : DARK_BG}, line:{color: dark ? ACCENT : DARK_BG} });
slide.addText(REF_LINE, { x:0.3, y:5.29, w:9.4, h:0.32, fontSize:10, color: dark ? DARK_BG : ACCENT, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
}
// Add image with caption (right-side panel)
function addImgPanel(slide, imgData, caption, x, y, w, h) {
if (!imgData) return;
slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h:h+0.32, fill:{color:WHITE}, line:{color:ACCENT, pt:1.2},
shadow:{type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.12} });
slide.addImage({ data:imgData, x:x+0.06, y:y+0.06, w:w-0.12, h:h-0.06 });
slide.addText(caption, { x, y:y+h, w, h:0.34, fontSize:9, color:"334455", fontFace:"Calibri",
align:"center", italic:true, valign:"middle" });
}
// ================================================================
// SLIDE 1 — TITLE
// ================================================================
{
let s = pres.addSlide();
darkBg(s);
// Decorative circles
s.addShape(pres.shapes.OVAL, { x:6.5, y:-1.5, w:5.5, h:5.5, fill:{color:MID_BG}, line:{color:MID_BG} });
s.addShape(pres.shapes.OVAL, { x:7.2, y:-0.9, w:4.2, h:4.2, fill:{color:"0A1628"}, line:{color:"0A1628"} });
// Cyan vertical bar
s.addShape(pres.shapes.RECTANGLE, { x:0.5, y:1.3, w:0.12, h:3.0, fill:{color:ACCENT}, line:{color:ACCENT} });
// Title text
s.addText("Superior Oblique", { x:0.8, y:1.2, w:8.5, h:0.95, fontSize:46, bold:true, color:WHITE, fontFace:"Calibri", margin:0 });
s.addText("Muscle", { x:0.8, y:2.1, w:8.5, h:0.95, fontSize:46, bold:true, color:ACCENT, fontFace:"Calibri", margin:0 });
s.addText("BHMS 1st Year | Anatomy Seminar", { x:0.8, y:3.1, w:7.5, h:0.42, fontSize:15, color:LGRAY, fontFace:"Calibri", italic:true, margin:0 });
s.addText("Origin • Insertion • Nerve Supply • Actions • Clinical Anatomy • Examination", {
x:0.8, y:3.56, w:8.5, h:0.36, fontSize:12, color:ACCENT2, fontFace:"Calibri", margin:0 });
// Overlay image (muscles of eyeball diagram)
if(IMG[0]) {
s.addImage({ data:IMG[0], x:6.3, y:0.9, w:3.35, h:3.2, transparency:18 });
}
refBar(s, true);
}
// ================================================================
// SLIDE 2 — OVERVIEW & CLASSIFICATION
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Overview & Classification", "The 7 Extrinsic Muscles of the Orbit");
// Left content
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:5.55, h:3.75,
fill:{color:WHITE}, line:{color:ACCENT, pt:1.5},
shadow:{type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.1} });
s.addText([
{ text:"7 Extrinsic Muscles of Orbit", options:{bold:true, color:DARK_BG, fontSize:14, breakLine:true} },
{ text:" ", options:{fontSize:7, breakLine:true} },
{ text:"4 Rectus Muscles", options:{bullet:true, color:"334455", fontSize:13, breakLine:true} },
{ text:"Superior, Inferior, Medial, Lateral", options:{bullet:{indent:25}, color:"667788", fontSize:11, italic:true, breakLine:true} },
{ text:" ", options:{fontSize:6, breakLine:true} },
{ text:"2 Oblique Muscles ← Our Focus", options:{bullet:true, color:ACCENT, fontSize:13, bold:true, breakLine:true} },
{ text:"Superior Oblique ✓", options:{bullet:{indent:25}, color:"006699", fontSize:12, bold:true, breakLine:true} },
{ text:"Inferior Oblique", options:{bullet:{indent:25}, color:"667788", fontSize:11, breakLine:true} },
{ text:" ", options:{fontSize:6, breakLine:true} },
{ text:"1 Levator Palpebrae Superioris", options:{bullet:true, color:"334455", fontSize:13, breakLine:true} },
{ text:" ", options:{fontSize:7, breakLine:true} },
{ text:"Mnemonic: LR₆SO₄ - rest are 3", options:{color:GOLD, fontSize:12, bold:true} },
], { x:0.45, y:1.3, w:5.3, h:3.6, valign:"top", fontFace:"Calibri" });
// Right image: muscles of eyeball diagram
addImgPanel(s, IMG[0], "Fig. Muscles of the Eyeball showing Trochlea & Superior Oblique", 6.05, 1.22, 3.6, 3.45);
refBar(s, false);
}
// ================================================================
// SLIDE 3 — ORIGIN
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Origin", "B.D. Chaurasia Vol.3 — Orbital Cavity, Extraocular Muscles");
// Origin label badge
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:2.2, h:0.52, fill:{color:ACCENT}, line:{color:ACCENT} });
s.addText("ORIGIN", { x:0.3, y:1.22, w:2.2, h:0.52, fontSize:17, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
// Main origin box
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.84, w:5.55, h:0.95,
fill:{color:WHITE}, line:{color:ACCENT, pt:1.5},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1} });
s.addText([
{ text:"Body of the Sphenoid Bone", options:{bold:true, fontSize:16, color:"003366"} },
{ text:"\nSuperior and medial to the optic canal", options:{fontSize:12, color:DARK_TEXT} },
{ text:"\nMedial to origin of levator palpebrae superioris", options:{fontSize:11, color:"556677", italic:true} },
], { x:0.45, y:1.88, w:5.3, h:0.88, valign:"middle", fontFace:"Calibri" });
// Three info cards
const cards = [
{ t:"Bone", b:"Sphenoid body\n(NOT from common\ntendinous ring)", c:"1B4F72" },
{ t:"Relation", b:"Superior & medial\nto optic canal\n(optic foramen)", c:"1A5276" },
{ t:"Neighbour", b:"Medial to\nlevator palpebrae\nsuperioris", c:"154360" },
];
cards.forEach((c,i) => {
let x = 0.3 + i*1.88;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:2.92, w:1.75, h:2.0, fill:{color:c.c}, line:{color:c.c}, rectRadius:0.1 });
s.addText(c.t, { x, y:2.97, w:1.75, h:0.4, fontSize:13, bold:true, color:ACCENT, fontFace:"Calibri", align:"center", margin:0 });
s.addText(c.b, { x, y:3.38, w:1.75, h:1.45, fontSize:11, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle" });
});
// Right image: muscle origin diagram
addImgPanel(s, IMG[1], "Fig. Origins of Extraocular Muscles (optic canal & tendinous ring)", 6.05, 1.22, 3.6, 3.7);
refBar(s, false);
}
// ================================================================
// SLIDE 4 — COURSE & TROCHLEA
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Course & The Trochlea", "The unique pulley mechanism of the Superior Oblique");
const steps = [
{ n:"1", lbl:"Sphenoid Origin", desc:"Arises from body of sphenoid, superomedial to optic canal", hi:false },
{ n:"2", lbl:"Along Orbital Roof", desc:"Passes forward along medial border of roof of orbit", hi:false },
{ n:"3", lbl:"TROCHLEA (Pulley)", desc:"Fibrocartilaginous ring at trochlear fovea of frontal bone — redirects tendon laterally", hi:true },
{ n:"4", lbl:"Turns Posterolateral", desc:"Tendon runs posterolaterally, passes deep to superior rectus", hi:false },
{ n:"5", lbl:"Insertion", desc:"Outer posterior (superotemporal) quadrant of eyeball", hi:false },
];
steps.forEach((st, i) => {
let y = 1.22 + i * 0.79;
s.addShape(pres.shapes.OVAL, { x:0.3, y:y+0.07, w:0.45, h:0.45, fill:{color: st.hi ? GOLD : ACCENT}, line:{color: st.hi ? GOLD : ACCENT} });
s.addText(st.n, { x:0.3, y:y+0.07, w:0.45, h:0.45, fontSize:13, bold:true, color:DARK_BG, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
if(i < steps.length-1) s.addShape(pres.shapes.RECTANGLE, { x:0.508, y:y+0.52, w:0.04, h:0.29, fill:{color:"AABBCC"}, line:{color:"AABBCC"} });
s.addText(st.lbl, { x:0.88, y:y+0.02, w:2.5, h:0.55, fontSize:13, bold:true, color: st.hi ? GOLD : "003366", fontFace:"Calibri", valign:"middle", margin:0 });
s.addText(st.desc, { x:3.45, y:y+0.02, w:2.35, h:0.55, fontSize:11, color:"334455", fontFace:"Calibri", valign:"middle" });
});
// Right image: muscles of eyeball with trochlea visible
addImgPanel(s, IMG[0], "Fig. 8.98 — Trochlea & Superior Oblique course (Gray's/BDC)", 5.95, 1.22, 3.7, 3.7);
// Trochlea highlight box
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.1, w:5.5, h:0.14, fill:{color:GOLD}, line:{color:GOLD}, rectRadius:0.05 });
s.addText("Key: Trochlea = FUNCTIONAL ORIGIN — the pulley that redirects the line of pull", {
x:0.3, y:5.1, w:5.5, h:0.14, fontSize:9, bold:true, color:DARK_BG, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
refBar(s, false);
}
// ================================================================
// SLIDE 5 — INSERTION
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Insertion", "Where does the tendon of Superior Oblique attach?");
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:2.2, h:0.52, fill:{color:ACCENT}, line:{color:ACCENT} });
s.addText("INSERTION", { x:0.3, y:1.22, w:2.2, h:0.52, fontSize:16, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
// Main box
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.85, w:5.55, h:0.95,
fill:{color:WHITE}, line:{color:ACCENT, pt:1.5},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1} });
s.addText([
{ text:"Outer Posterior Quadrant of the Eyeball", options:{bold:true, fontSize:15, color:"003366"} },
{ text:"\nPosterosuperior Temporal Quadrant", options:{fontSize:12, color:"556677", italic:true} },
{ text:"\nPasses DEEP to Superior Rectus before inserting", options:{fontSize:11, color:DARK_TEXT} },
], { x:0.45, y:1.89, w:5.3, h:0.88, valign:"middle", fontFace:"Calibri" });
// Two fibre cards
const fibres = [
{ t:"Anterior Fibres", icon:"↺", b:"Primarily responsible for\nINTORSION\n(medial rotation of eyeball)", c:"1B4F72" },
{ t:"Posterior Fibres", icon:"↓", b:"Primarily responsible for\nDEPRESSION\n(surgical separation possible)", c:"154360" },
];
fibres.forEach((f,i) => {
let x = 0.3 + i*2.85;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:2.93, w:2.65, h:2.02, fill:{color:f.c}, line:{color:f.c}, rectRadius:0.12 });
s.addText(f.icon, { x, y:2.98, w:2.65, h:0.55, fontSize:28, color:GOLD, fontFace:"Calibri", align:"center", margin:0 });
s.addText(f.t, { x, y:3.5, w:2.65, h:0.38, fontSize:13, bold:true, color:ACCENT, fontFace:"Calibri", align:"center", margin:0 });
s.addText(f.b, { x, y:3.88, w:2.65, h:1.0, fontSize:11, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle" });
});
// Right image: SO tendon insertion photo
addImgPanel(s, IMG[7], "Fig. 18.7 — SO tendon insertion; SR = Superior Rectus (Kanski/BDC)", 6.05, 1.22, 3.6, 3.7);
refBar(s, false);
}
// ================================================================
// SLIDE 6 — NERVE SUPPLY (dark)
// ================================================================
{
let s = pres.addSlide();
darkBg(s);
// Top bar (dark version with gold)
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.08, fill:{color:"070F1A"}, line:{color:"070F1A"} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:1.08, w:10, h:0.06, fill:{color:GOLD}, line:{color:GOLD} });
s.addText("Nerve Supply", { x:0.35, y:0.08, w:9.3, h:0.56, fontSize:22, bold:true, color:WHITE, fontFace:"Calibri", margin:0 });
s.addText("Trochlear Nerve — CN IV", { x:0.35, y:0.64, w:9.3, h:0.36, fontSize:12, color:GOLD, fontFace:"Calibri", italic:true, margin:0 });
// Main nerve badge
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:1.22, w:3.8, h:1.0, fill:{color:MID_BG}, line:{color:GOLD, pt:2}, rectRadius:0.12 });
s.addText("Trochlear Nerve (CN IV)", { x:0.3, y:1.26, w:3.8, h:0.5, fontSize:17, bold:true, color:GOLD, fontFace:"Calibri", align:"center", margin:0 });
s.addText("Enters superior border of muscle", { x:0.3, y:1.74, w:3.8, h:0.42, fontSize:12, color:LGRAY, fontFace:"Calibri", align:"center" });
// Unique facts cards
const facts = [
{ lbl:"Supplies", val:"Only 1 muscle\n(Superior Oblique)" },
{ lbl:"Exits", val:"DORSAL surface\nof midbrain" },
{ lbl:"Course", val:"Longest intracranial\ncourse of any CN" },
{ lbl:"Crosses", val:"Midline after\nexiting brainstem" },
];
facts.forEach((f,i) => {
let x = 0.3 + i*2.38;
s.addShape(pres.shapes.RECTANGLE, { x, y:2.38, w:2.2, h:2.5, fill:{color:"0A1628"}, line:{color:ACCENT, pt:1} });
s.addShape(pres.shapes.RECTANGLE, { x, y:2.38, w:2.2, h:0.42, fill:{color:ACCENT}, line:{color:ACCENT} });
s.addText(f.lbl, { x, y:2.38, w:2.2, h:0.42, fontSize:12, bold:true, color:DARK_BG, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addText(f.val, { x, y:2.83, w:2.2, h:2.0, fontSize:12, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle" });
});
// Right image: trochlear nerve in orbit
if(IMG[6]) {
s.addShape(pres.shapes.RECTANGLE, { x:4.44, y:1.22, w:5.26, h:3.7,
fill:{color:MID_BG}, line:{color:ACCENT, pt:1} });
s.addImage({ data:IMG[6], x:4.5, y:1.28, w:5.14, h:3.46 });
s.addText("Fig. 8.106 — Trochlear Nerve [IV] in the Orbit (BDC/Gray's)", {
x:4.44, y:4.72, w:5.26, h:0.22, fontSize:9, color:ACCENT2, fontFace:"Calibri", align:"center", italic:true });
}
refBar(s, true);
}
// ================================================================
// SLIDE 7 — ACTIONS
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Actions of the Superior Oblique", "Primary and secondary movements");
// Three action cards
const acts = [
{ rank:"PRIMARY", act:"INTORSION", desc:"Medial rotation of upper\npole of eyeball toward nose", icon:"↺", c:ACCENT },
{ rank:"SECONDARY", act:"DEPRESSION", desc:"Pulls pupil downward\n(esp. in adduction)", icon:"↓", c:"1B7FC4" },
{ rank:"SECONDARY", act:"ABDUCTION", desc:"Moves eyeball laterally\naway from nose", icon:"→", c:"1565A7" },
];
acts.forEach((a,i) => {
let x = 0.3 + i*2.06;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:1.22, w:1.9, h:3.8,
fill:{color:a.c}, line:{color:a.c}, rectRadius:0.14,
shadow:{type:"outer", color:"000000", blur:7, offset:3, angle:135, opacity:0.2} });
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:x+0.1, y:1.33, w:1.7, h:0.35,
fill:{color:"22334455"||"1A2B3C"}, line:{color:"1A2B3C"}, rectRadius:0.07 });
s.addText(a.rank, { x:x+0.1, y:1.33, w:1.7, h:0.35, fontSize:10, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addText(a.icon, { x, y:1.73, w:1.9, h:0.7, fontSize:34, color:WHITE, fontFace:"Calibri", align:"center", margin:0 });
s.addText(a.act, { x, y:2.43, w:1.9, h:0.5, fontSize:16, bold:true, color:WHITE, fontFace:"Calibri", align:"center", margin:0 });
s.addText(a.desc, { x:x+0.08, y:2.93, w:1.74, h:2.0, fontSize:11, color:WHITE, fontFace:"Calibri", align:"center", valign:"top" });
});
// Right side: actions & axes diagrams
if(IMG[3]) {
s.addShape(pres.shapes.RECTANGLE, { x:6.5, y:1.22, w:3.15, h:1.72,
fill:{color:WHITE}, line:{color:ACCENT, pt:1},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1} });
s.addImage({ data:IMG[3], x:6.55, y:1.27, w:3.05, h:1.48 });
s.addText("Fig. 8.96 — Movements of the Eyeball", { x:6.5, y:2.9, w:3.15, h:0.24, fontSize:8, color:"334455", fontFace:"Calibri", align:"center", italic:true });
}
if(IMG[2]) {
s.addShape(pres.shapes.RECTANGLE, { x:6.5, y:3.2, w:3.15, h:1.72,
fill:{color:WHITE}, line:{color:ACCENT, pt:1},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1} });
s.addImage({ data:IMG[2], x:6.55, y:3.25, w:3.05, h:1.48 });
s.addText("Fig. 8.100 — Actions & Clinical Testing of Eye Muscles", { x:6.5, y:4.88, w:3.15, h:0.24, fontSize:8, color:"334455", fontFace:"Calibri", align:"center", italic:true });
}
// Mnemonic bar
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:5.1, w:5.95, h:0.13, fill:{color:DARK_BG}, line:{color:DARK_BG} });
s.addText("Mnemonic: I.D.A. — Intorts, Depresses, Abducts", { x:0.3, y:5.1, w:5.95, h:0.13, fontSize:9, color:ACCENT, fontFace:"Calibri", align:"center", bold:true, margin:0 });
refBar(s, false);
}
// ================================================================
// SLIDE 8 — POSITION-DEPENDENT ACTIONS
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Position-Dependent Actions", "How action changes with eye position — key exam topic");
const rows = [
{ pos:"Primary position\n(looking straight ahead)", act:"Intorsion + Abduction + Depression", c:"1B4F72", hi:false },
{ pos:"Eye ADDUCTED 51°\n(turned inward)", act:"Acts as PURE DEPRESSOR only\n← Best position to test SO", c:"006633", hi:true },
{ pos:"Eye ABDUCTED 39°\n(turned outward)", act:"Acts as PURE INTORTOR only", c:"7D3C98", hi:false },
];
rows.forEach((r,i) => {
let y = 1.22 + i*1.28;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y, w:5.5, h:1.15,
fill:{color: r.hi ? "E8F8F5" : WHITE}, line:{color:r.c, pt: r.hi ? 2.5 : 1.5}, rectRadius:0.1 });
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y, w:0.16, h:1.15, fill:{color:r.c}, line:{color:r.c} });
s.addText(r.pos, { x:0.56, y:y+0.08, w:2.3, h:1.0, fontSize:11, bold:true, color:r.c, fontFace:"Calibri", valign:"middle" });
s.addText(r.act, { x:2.92, y:y+0.08, w:2.7, h:1.0, fontSize:12, color: r.hi ? "006633" : "334455", fontFace:"Calibri", valign:"middle", bold:r.hi });
});
// Exam tip
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.1, w:5.5, h:0.14, fill:{color:GOLD}, line:{color:GOLD}, rectRadius:0.05 });
s.addText("Exam Tip: PRIMARY action = INTORSION (not depression!)", { x:0.3, y:5.1, w:5.5, h:0.14, fontSize:9, bold:true, color:DARK_BG, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
// Right: SO actions diagram
addImgPanel(s, IMG[8], "Fig. 18.8 — Actions of right SO: A=Primary, B=51° adduction, C=39° abduction", 5.95, 1.22, 3.7, 3.88);
refBar(s, false);
}
// ================================================================
// SLIDE 9 — CLINICAL EXAMINATION
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Clinical Examination of Superior Oblique", "How to isolate and test the muscle");
const steps = [
{ n:"Step 1", txt:"ADDUCT the eye (look medially/nasally)", sub:"Aligns the axis of the tendon with the axis of the eyeball (at 51° adduction)" },
{ n:"Step 2", txt:"Then ask the patient to look DOWNWARD", sub:"Tests the depressor action of SO in isolation — failure = SO weakness" },
{ n:"Step 3", txt:"Observe for depression", sub:"Normal: eye depresses smoothly. Abnormal: eye fails to depress (CN IV palsy)" },
];
steps.forEach((st,i) => {
let y = 1.22 + i*1.3;
s.addShape(pres.shapes.OVAL, { x:0.3, y:y+0.25, w:0.6, h:0.6, fill:{color:ACCENT}, line:{color:ACCENT} });
s.addText((i+1).toString(), { x:0.3, y:y+0.25, w:0.6, h:0.6, fontSize:17, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:1.05, y, w:4.8, h:1.15,
fill:{color:WHITE}, line:{color: i===2 ? GOLD : ACCENT, pt:1.5}, rectRadius:0.1,
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.08} });
s.addText(st.n + ": " + st.txt, { x:1.2, y:y+0.08, w:4.5, h:0.48, fontSize:13, bold:true, color:"003366", fontFace:"Calibri", margin:0 });
s.addText(st.sub, { x:1.2, y:y+0.56, w:4.5, h:0.52, fontSize:11, color:"556677", fontFace:"Calibri", italic:true, margin:0 });
});
// Right: H-test diagram
addImgPanel(s, IMG[5], "Fig. 8.101 — The H-Test: testing all 6 extraocular muscles (BDC/Gray's)", 6.05, 1.22, 3.6, 3.7);
// Rationale bar
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.1, w:5.6, h:0.14, fill:{color:DARK_BG}, line:{color:DARK_BG}, rectRadius:0.05 });
s.addText("Rationale: At 51° adduction SO acts as PURE depressor — isolating its action", {
x:0.3, y:5.1, w:5.6, h:0.14, fontSize:9, color:ACCENT2, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
refBar(s, false);
}
// ================================================================
// SLIDE 10 — CN IV PALSY
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Clinical Anatomy: CN IV (Trochlear) Palsy", "Superior Oblique paralysis — features & examination");
// Left: features
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:4.5, h:3.8,
fill:{color:WHITE}, line:{color:ACCENT, pt:1.5},
shadow:{type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.1} });
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:4.5, h:0.46, fill:{color:ACCENT}, line:{color:ACCENT} });
s.addText("Features of CN IV Palsy", { x:0.35, y:1.24, w:4.4, h:0.42, fontSize:14, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0 });
s.addText([
{ text:"Vertical diplopia", options:{bullet:true, color:DARK_BG, fontSize:13, bold:true, breakLine:true} },
{ text:"Images separated vertically", options:{bullet:{indent:22}, color:"556677", fontSize:11, italic:true, breakLine:true} },
{ text:"Hypertropia (affected eye drifts UP)", options:{bullet:true, color:DARK_BG, fontSize:13, bold:true, breakLine:true} },
{ text:"Diplopia worse on downward + inward gaze", options:{bullet:true, color:DARK_BG, fontSize:13, bold:true, breakLine:true} },
{ text:"Going downstairs — classic complaint", options:{bullet:{indent:22}, color:"556677", fontSize:11, italic:true, breakLine:true} },
{ text:"Extorsion of affected eye", options:{bullet:true, color:DARK_BG, fontSize:13, bold:true, breakLine:true} },
{ text:"Head tilt AWAY from affected side", options:{bullet:true, color:"003366", fontSize:13, bold:true, breakLine:true} },
{ text:"Bielschowsky head tilt test +ve", options:{bullet:{indent:22}, color:"556677", fontSize:11, italic:true} },
], { x:0.42, y:1.73, w:4.25, h:3.2, valign:"top", fontFace:"Calibri" });
// Right: head tilt explanation (dark box)
s.addShape(pres.shapes.RECTANGLE, { x:4.95, y:1.22, w:4.7, h:3.8, fill:{color:DARK_BG}, line:{color:DARK_BG} });
s.addShape(pres.shapes.RECTANGLE, { x:4.95, y:1.22, w:4.7, h:0.46, fill:{color:GOLD}, line:{color:GOLD} });
s.addText("Compensatory Head Tilt", { x:5.0, y:1.24, w:4.6, h:0.42, fontSize:14, bold:true, color:DARK_BG, fontFace:"Calibri", valign:"middle", margin:0 });
s.addText("Tilts head AWAY\nfrom affected side", { x:5.05, y:1.76, w:4.6, h:0.72, fontSize:17, bold:true, color:GOLD, fontFace:"Calibri", align:"center" });
s.addText([
{ text:"Why?", options:{bold:true, color:ACCENT2, fontSize:13, breakLine:true} },
{ text:"Loss of intorsion → eye extorts uncontrolled.", options:{color:LGRAY, fontSize:12, breakLine:true} },
{ text:"Head tilt toward opposite shoulder", options:{color:LGRAY, fontSize:12, breakLine:true} },
{ text:"brings visual axes into alignment → reduces diplopia.", options:{color:GOLD, fontSize:12, bold:true, breakLine:true} },
{ text:" ", options:{fontSize:5, breakLine:true} },
{ text:"Bielschowsky Head Tilt Test:", options:{color:ACCENT, fontSize:12, bold:true, breakLine:true} },
{ text:"Hypertropia worsens when head tilted\ntoward affected side → confirms CN IV palsy.", options:{color:LGRAY, fontSize:11} },
], { x:5.05, y:2.52, w:4.55, h:2.42, valign:"top", fontFace:"Calibri" });
// Congenital note
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.1, w:9.4, h:0.14, fill:{color:"EAF2FF"}, line:{color:ACCENT, pt:1}, rectRadius:0.05 });
s.addText("Congenital CN IV palsy: 73% show ipsilateral absent trochlear nerve on MRI (Localization in Clinical Neurology, 8e)", {
x:0.4, y:5.1, w:9.1, h:0.14, fontSize:9, color:"003366", fontFace:"Calibri", align:"center", italic:true, margin:0 });
refBar(s, false);
}
// ================================================================
// SLIDE 11 — SUPERIOR OBLIQUE MYOKYMIA
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Superior Oblique Myokymia", "A paroxysmal clinical condition");
// Left: content
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:1.22, w:5.55, h:3.8,
fill:{color:WHITE}, line:{color:ACCENT, pt:1.5}, rectRadius:0.1,
shadow:{type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.1} });
const items = [
{ lbl:"Definition", val:"Paroxysmal, rapid, small-amplitude monocular torsional-vertical oscillation due to contraction of the superior oblique" },
{ lbl:"Symptoms", val:"• Monocular blurring\n• Torsional oscillopsia (rotating objects)\n• Vertical diplopia" },
{ lbl:"Cause", val:"Spontaneous contraction (myokymia) of the SO muscle" },
{ lbl:"Treatment", val:"Membrane-stabilizing drugs\n(e.g., carbamazepine, gabapentin)" },
];
items.forEach((it,i) => {
let y = 1.3 + i*0.87;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.45, y:y+0.05, w:1.7, h:0.62, fill:{color:ACCENT}, line:{color:ACCENT}, rectRadius:0.08 });
s.addText(it.lbl, { x:0.45, y:y+0.05, w:1.7, h:0.62, fontSize:12, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addText(it.val, { x:2.28, y:y+0.04, w:3.4, h:0.65, fontSize:11, color:"334455", fontFace:"Calibri", valign:"middle" });
if(i<items.length-1) s.addShape(pres.shapes.RECTANGLE, { x:0.4, y:y+0.74, w:5.3, h:0.03, fill:{color:LGRAY}, line:{color:LGRAY} });
});
// Brown syndrome note
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.08, w:5.55, h:0.16, fill:{color:MID_BG}, line:{color:MID_BG}, rectRadius:0.06 });
s.addText("Brown Syndrome: SO tendon sheath restriction → limits elevation in adduction", {
x:0.3, y:5.08, w:5.55, h:0.16, fontSize:9, color:ACCENT2, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
// Right: axes / testing image
addImgPanel(s, IMG[4], "Fig. 8.97 — Axes of Eyeball & Orbit (BDC/Gray's)", 6.05, 1.22, 3.6, 3.7);
refBar(s, false);
}
// ================================================================
// SLIDE 12 — SUMMARY TABLE
// ================================================================
{
let s = pres.addSlide();
lightBg(s);
topBar(s, "Quick Revision Summary", "Superior Oblique — All at a Glance");
const rows = [
["Feature", "Detail"],
["Origin", "Body of sphenoid — superomedial to optic canal (above optic foramen)"],
["Trochlea", "Fibrocartilaginous pulley at trochlear fovea of frontal bone"],
["Insertion", "Outer posterior (superotemporal) quadrant of eyeball"],
["Nerve Supply", "CN IV — Trochlear nerve (enters superior border of muscle)"],
["Primary Action", "INTORSION (medial rotation)"],
["Secondary Actions", "Depression + Abduction"],
["Test Position", "Adduct eye 51° → then look down"],
["CN IV Palsy", "Hypertropia, head tilt away, diplopia worst on downward gaze"],
["CN IV unique", "Only CN from dorsal brainstem; supplies 1 muscle; longest intracranial"],
];
let tableData = rows.map((row, ri) =>
row.map((cell, ci) => ({
text: cell,
options: {
bold: ri === 0,
color: ri === 0 ? WHITE : (ci === 0 ? "003366" : "1A1A2E"),
fill: ri === 0 ? DARK_BG : (ri % 2 === 0 ? "EAF4FB" : WHITE),
fontSize: ri === 0 ? 13 : 11,
fontFace: "Calibri",
align: ci === 0 ? "right" : "left",
}
}))
);
s.addTable(tableData, {
x:0.3, y:1.22, w:9.4, h:3.85,
rowH:0.37,
border:{ type:"solid", pt:0.5, color:"CCDDEE" },
});
refBar(s, false);
}
// ================================================================
// SLIDE 13 — THANK YOU
// ================================================================
{
let s = pres.addSlide();
darkBg(s);
s.addShape(pres.shapes.OVAL, { x:-2, y:2.8, w:5.5, h:5.5, fill:{color:MID_BG}, line:{color:MID_BG} });
s.addShape(pres.shapes.OVAL, { x:7.2, y:-1.8, w:4.8, h:4.8, fill:{color:"0A1628"}, line:{color:"0A1628"} });
// Overlay eyeball diagram
if(IMG[2]) s.addImage({ data:IMG[2], x:6.5, y:0.8, w:3.1, h:2.8, transparency:55 });
s.addShape(pres.shapes.RECTANGLE, { x:0.55, y:0, w:0.08, h:5.625, fill:{color:ACCENT}, line:{color:ACCENT}, transparency:65 });
s.addText("Thank You", { x:1, y:1.4, w:8, h:1.0, fontSize:50, bold:true, color:WHITE, fontFace:"Calibri", align:"center", margin:0 });
s.addText("Superior Oblique Muscle", { x:1, y:2.48, w:8, h:0.55, fontSize:22, color:ACCENT, fontFace:"Calibri", align:"center" });
s.addText("BHMS 1st Year | Anatomy Seminar", { x:1, y:3.05, w:8, h:0.4, fontSize:14, color:LGRAY, fontFace:"Calibri", align:"center", italic:true });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.28, w:10, h:0.345, fill:{color:ACCENT}, line:{color:ACCENT} });
s.addText("Reference: B.D. Chaurasia's Human Anatomy, Vol. 3 (Head-Neck-Brain), 5th Ed. | Supplementary images: Gray's Anatomy for Students, Kanski's Clinical Ophthalmology 10e", {
x:0.3, y:5.29, w:9.4, h:0.32, fontSize:9, color:DARK_BG, fontFace:"Calibri", align:"center", margin:0 });
}
// ================================================================
// WRITE FILE
// ================================================================
const outPath = "/home/daytona/workspace/superior-oblique-ppt/Superior_Oblique_BDC.pptx";
pres.writeFile({ fileName: outPath })
.then(() => console.log("SUCCESS:", outPath))
.catch(e => console.error("ERROR:", e));
cd /home/daytona/workspace/superior-oblique-ppt && node create_pptx_v2.js 2>&1
ls -lh /home/daytona/workspace/superior-oblique-ppt/Superior_Oblique_BDC.pptx
Superior Oblique BDC
Presentation · PPTX
| Slide | Image Added |
|---|---|
| 1 - Title | Muscles of eyeball diagram (background overlay) |
| 2 - Overview | Fig. 8.98 — Muscles of eyeball showing trochlea & SO |
| 3 - Origin | Fig. 8.99 — Extraocular muscle origins diagram |
| 4 - Course & Trochlea | Fig. 8.98 — SO course with trochlea labeled |
| 5 - Insertion | Fig. 18.7 — SO tendon insertion photo (temporal view) |
| 6 - Nerve Supply | Fig. 8.106 — Trochlear nerve [IV] in the orbit |
| 7 - Actions | Fig. 8.96 Eyeball movements + Fig. 8.100 Actions & testing |
| 8 - Position-Dependent | Fig. 18.8 — SO actions at primary / 51° / 39° positions |
| 9 - Examination | Fig. 8.101 — The H-Test diagram |
| 11 - Myokymia | Fig. 8.97 — Axes of eyeball & orbit |
| 13 - Thank You | Actions diagram (transparent overlay) |
slide background is light colour dont give dark colour
~/superior-oblique-ppt/create_pptx_v3.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ================================================================
// FETCH ALL IMAGES
// ================================================================
const IMG_URLS = [
"https://cdn.orris.care/cdss_images/dbcae5a03c6143d327763f181273f1e312e7e98b5ecaa9863c45432f981def51.png", // 0: muscles of eyeball
"https://cdn.orris.care/cdss_images/d038ba5e7b1aa21a97b86af5332f3698136eee5d627752ea8ac76a738b5d55a9.png", // 1: muscle origins
"https://cdn.orris.care/cdss_images/e7b560471b81d10ac4d4ca616d162ae7125e0ca9959402e8bae772da5467ed10.png", // 2: actions & testing
"https://cdn.orris.care/cdss_images/21b36ee582189d74a2d5ba4cfbaaaa3218ebd7125e89fe4d23331e3c16b2ea46.png", // 3: movements of eyeball
"https://cdn.orris.care/cdss_images/4a19649a25ec0a2ae83e489c3365569f3128a335fde03e4dd6d989f2857a6097.png", // 4: axes of eyeball & orbit
"https://cdn.orris.care/cdss_images/720393db11c8a177222d1535b70abcdebc054c9cd90758749d100f3f9abc9804.png", // 5: H-test diagram
"https://cdn.orris.care/cdss_images/1574d5b5e009abe5cf6ac0caa672aaac300ce6bbc9f5c4d5f0ccfb0f3420eb26.png", // 6: trochlear nerve in orbit
"https://cdn.orris.care/cdss_images/c9888742c2feb7f131256ec0a5b68fad7c3d94f755f15528542098d20283bd6c.png", // 7: SO tendon insertion
"https://cdn.orris.care/cdss_images/b400634b95601c87bb68edb827931745fdbb7126eda6b304899c2fd71cd45d8d.png", // 8: SO actions diagram
];
console.log("Fetching images...");
const fetched = JSON.parse(
execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${IMG_URLS.map(u => `"${u}"`).join(" ")}`,
{ maxBuffer: 50 * 1024 * 1024 }
).toString()
);
const IMG = fetched.map(f => f.error ? null : f.base64);
console.log("Images:", IMG.map((v,i) => i + ":" + (v ? "OK" : "FAIL")).join(" "));
// ================================================================
// LIGHT THEME COLORS (all slides light)
// ================================================================
const BG = "FFFFFF"; // pure white background
const BG2 = "F2F8FC"; // very light blue-white (alternate)
const TOPBAR = "1A73A7"; // deep blue for top bar
const TOPBAR2 = "1558A0"; // darker blue accent
const ACCENT = "1A73A7"; // blue for borders, labels
const ACCENT2 = "2196C7"; // mid blue
const ACCENT3 = "E8F4FB"; // very light blue fill
const NAVY = "0D3B66"; // dark navy for headings
const TEAL = "0097A7"; // teal for secondary
const ORANGE = "E07B39"; // warm orange for highlights
const RED_CARD = "C0392B"; // red for palsy
const GREEN = "1E8449"; // green for test
const WHITE = "FFFFFF";
const LGRAY = "F5F5F5";
const MID_GRAY = "E0E0E0";
const DARK_TEXT = "1A1A2E";
const SUB_TEXT = "4A6274";
const REF_LINE = "B.D. Chaurasia's Human Anatomy, Vol. 3 (Head-Neck-Brain), 5th Edition";
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Superior Oblique Muscle";
pres.author = "BHMS Anatomy Seminar";
// ================================================================
// HELPERS
// ================================================================
function whiteBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:BG}, line:{color:BG} });
}
function lightBlueBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:BG2}, line:{color:BG2} });
}
// Standard top bar (blue)
function topBar(slide, title, sub) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.08, fill:{color:TOPBAR}, line:{color:TOPBAR} });
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:1.08, w:10, h:0.055, fill:{color:ORANGE}, line:{color:ORANGE} });
slide.addText(title, { x:0.35, y:0.09, w:9.3, h:0.56, fontSize:22, bold:true, color:WHITE, fontFace:"Calibri", margin:0 });
if (sub) slide.addText(sub, { x:0.35, y:0.64, w:9.3, h:0.36, fontSize:12, color:"C8E6FA", fontFace:"Calibri", italic:true, margin:0 });
}
// Footer reference bar (light)
function refBar(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.3, w:10, h:0.325, fill:{color:ACCENT3}, line:{color:MID_GRAY, pt:0.5} });
slide.addText(REF_LINE, { x:0.3, y:5.31, w:9.4, h:0.3, fontSize:10, color:NAVY, fontFace:"Calibri", align:"center", valign:"middle", italic:true, margin:0 });
}
// Image panel with white card and border
function imgPanel(slide, imgData, caption, x, y, w, h) {
if (!imgData) return;
slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h: h + 0.32,
fill:{color:WHITE}, line:{color:ACCENT, pt:1.2},
shadow:{type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.1} });
slide.addImage({ data:imgData, x:x+0.06, y:y+0.06, w:w-0.12, h:h-0.06 });
slide.addText(caption, { x, y:y+h, w, h:0.34, fontSize:9, color:SUB_TEXT, fontFace:"Calibri", align:"center", italic:true, valign:"middle" });
}
// Colored info card
function infoCard(slide, title, body, x, y, w, h, fillColor, titleColor, bodyColor) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w, h, fill:{color:fillColor}, line:{color:fillColor}, rectRadius:0.1,
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.1} });
slide.addText(title, { x:x+0.06, y:y+0.06, w:w-0.12, h:0.4, fontSize:13, bold:true, color:titleColor, fontFace:"Calibri", align:"center", margin:0 });
slide.addText(body, { x:x+0.06, y:y+0.48, w:w-0.12, h:h-0.55, fontSize:11, color:bodyColor, fontFace:"Calibri", align:"center", valign:"middle" });
}
// ================================================================
// SLIDE 1 — TITLE (light)
// ================================================================
{
let s = pres.addSlide();
lightBlueBg(s);
// Top colored banner
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:2.1, fill:{color:TOPBAR}, line:{color:TOPBAR} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:2.1, w:10, h:0.07, fill:{color:ORANGE}, line:{color:ORANGE} });
// Title in banner
s.addText("Superior Oblique Muscle", { x:0.5, y:0.22, w:9.0, h:1.0, fontSize:42, bold:true, color:WHITE, fontFace:"Calibri", margin:0 });
s.addText("BHMS 1st Year | Anatomy Seminar", { x:0.5, y:1.22, w:9.0, h:0.45, fontSize:16, color:"C8E6FA", fontFace:"Calibri", italic:true, margin:0 });
// Subtitle chips on white area
const chips = ["Origin", "Insertion", "Nerve Supply", "Actions", "Clinical Anatomy", "Examination"];
chips.forEach((chip, i) => {
let col = i % 3, row = Math.floor(i / 3);
let x = 0.5 + col * 3.1, y = 2.32 + row * 0.58;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w:2.85, h:0.46, fill:{color:ACCENT3}, line:{color:ACCENT, pt:1}, rectRadius:0.08 });
s.addText(chip, { x, y, w:2.85, h:0.46, fontSize:14, bold:true, color:NAVY, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
});
// Image
if (IMG[0]) s.addImage({ data:IMG[0], x:6.6, y:3.62, w:3.1, h:1.44, transparency:10 });
// Reference
s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.3, w:10, h:0.325, fill:{color:ACCENT3}, line:{color:MID_GRAY, pt:0.5} });
s.addText(REF_LINE, { x:0.3, y:5.31, w:9.4, h:0.3, fontSize:10, color:NAVY, fontFace:"Calibri", align:"center", italic:true, margin:0 });
}
// ================================================================
// SLIDE 2 — OVERVIEW & CLASSIFICATION
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Overview & Classification", "The 7 Extrinsic Muscles of the Orbit");
// Left content box
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:5.55, h:3.75,
fill:{color:ACCENT3}, line:{color:ACCENT, pt:1.2},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.08} });
s.addText([
{ text:"7 Extrinsic Muscles of Orbit", options:{bold:true, color:NAVY, fontSize:14, breakLine:true} },
{ text:" ", options:{fontSize:7, breakLine:true} },
{ text:"4 Rectus Muscles", options:{bullet:true, color:DARK_TEXT, fontSize:13, breakLine:true} },
{ text:"Superior, Inferior, Medial, Lateral", options:{bullet:{indent:25}, color:SUB_TEXT, fontSize:11, italic:true, breakLine:true} },
{ text:" ", options:{fontSize:6, breakLine:true} },
{ text:"2 Oblique Muscles ← Our Focus", options:{bullet:true, color:ACCENT, fontSize:13, bold:true, breakLine:true} },
{ text:"Superior Oblique ✓", options:{bullet:{indent:25}, color:TOPBAR, fontSize:12, bold:true, breakLine:true} },
{ text:"Inferior Oblique", options:{bullet:{indent:25}, color:SUB_TEXT, fontSize:11, breakLine:true} },
{ text:" ", options:{fontSize:6, breakLine:true} },
{ text:"1 Levator Palpebrae Superioris", options:{bullet:true, color:DARK_TEXT, fontSize:13, breakLine:true} },
{ text:" ", options:{fontSize:7, breakLine:true} },
{ text:"Mnemonic: LR₆SO₄ — rest are 3", options:{color:ORANGE, fontSize:13, bold:true} },
], { x:0.45, y:1.3, w:5.3, h:3.6, valign:"top", fontFace:"Calibri" });
// Key features side cards
const kf = [
{ t:"NOT from", b:"Common\nTendinous Ring" },
{ t:"Attaches to", b:"Posterior Half\nof eyeball" },
{ t:"Nerve", b:"CN IV\nTrochlear" },
];
// stacked on far right
// Use image panel instead for right side
imgPanel(s, IMG[0], "Fig. 8.98 — Muscles of the Eyeball: Trochlea & Superior Oblique visible", 6.05, 1.22, 3.6, 3.45);
refBar(s);
}
// ================================================================
// SLIDE 3 — ORIGIN
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Origin", "B.D. Chaurasia Vol.3 — Orbital Cavity");
// Badge
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:2.0, h:0.5, fill:{color:TOPBAR}, line:{color:TOPBAR} });
s.addText("ORIGIN", { x:0.3, y:1.22, w:2.0, h:0.5, fontSize:17, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
// Main statement
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.84, w:5.55, h:1.0,
fill:{color:ACCENT3}, line:{color:ACCENT, pt:1.5},
shadow:{type:"outer", color:"000000", blur:3, offset:2, angle:135, opacity:0.08} });
s.addText([
{ text:"Body of the Sphenoid Bone", options:{bold:true, fontSize:16, color:NAVY} },
{ text:"\nSuperior and medial to the optic canal (optic foramen)", options:{fontSize:12, color:DARK_TEXT} },
{ text:"\nMedial to origin of levator palpebrae superioris", options:{fontSize:11, color:SUB_TEXT, italic:true} },
], { x:0.45, y:1.88, w:5.3, h:0.92, valign:"middle", fontFace:"Calibri" });
// Three light cards
const cards = [
{ t:"Bone", b:"Sphenoid body\nNOT from common\ntendinous ring", c:ACCENT3, tc:NAVY, bc:DARK_TEXT },
{ t:"Relation", b:"Superior & medial\nto optic canal\n(optic foramen)", c:"E8F5E9", tc:GREEN, bc:DARK_TEXT },
{ t:"Neighbour", b:"Medial to origin of\nlevator palpebrae\nsuperioris", c:"FFF3E0", tc:ORANGE, bc:DARK_TEXT },
];
cards.forEach((c,i) => {
let x = 0.3 + i*1.88;
infoCard(s, c.t, c.b, x, 2.96, 1.75, 2.05, c.c, c.tc, c.bc);
});
imgPanel(s, IMG[1], "Fig. 8.99 — Origins of Extraocular Muscles at Optic Canal", 6.05, 1.22, 3.6, 3.79);
refBar(s);
}
// ================================================================
// SLIDE 4 — COURSE & TROCHLEA
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Course & The Trochlea", "The unique pulley mechanism of the Superior Oblique");
const steps = [
{ n:"1", lbl:"Sphenoid Origin", desc:"Arises from sphenoid body, superomedial to optic canal", hi:false },
{ n:"2", lbl:"Along Orbital Roof", desc:"Passes forward along medial border of roof of orbit", hi:false },
{ n:"3", lbl:"TROCHLEA (Pulley)", desc:"Fibrocartilaginous ring at trochlear fovea of frontal bone — REDIRECTS tendon laterally", hi:true },
{ n:"4", lbl:"Turns Posterolateral", desc:"Tendon runs posterolaterally, passes deep to superior rectus", hi:false },
{ n:"5", lbl:"Insertion", desc:"Outer posterior (superotemporal) quadrant of eyeball", hi:false },
];
steps.forEach((st, i) => {
let y = 1.22 + i * 0.77;
let circColor = st.hi ? ORANGE : TOPBAR;
s.addShape(pres.shapes.OVAL, { x:0.3, y:y+0.08, w:0.44, h:0.44, fill:{color:circColor}, line:{color:circColor} });
s.addText(st.n, { x:0.3, y:y+0.08, w:0.44, h:0.44, fontSize:13, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
if (i < steps.length-1) s.addShape(pres.shapes.RECTANGLE, { x:0.5, y:y+0.52, w:0.04, h:0.27, fill:{color:MID_GRAY}, line:{color:MID_GRAY} });
// Row bg
s.addShape(pres.shapes.RECTANGLE, { x:0.87, y:y+0.04, w:4.95, h:0.52,
fill:{color: st.hi ? "FFF3E0" : LGRAY}, line:{color: st.hi ? ORANGE : MID_GRAY, pt:1} });
s.addText(st.lbl, { x:0.92, y:y+0.06, w:1.7, h:0.48, fontSize:12, bold:true, color: st.hi ? ORANGE : NAVY, fontFace:"Calibri", valign:"middle", margin:0 });
s.addText(st.desc, { x:2.65, y:y+0.06, w:3.1, h:0.48, fontSize:11, color: st.hi ? ORANGE : SUB_TEXT, fontFace:"Calibri", valign:"middle", italic:st.hi });
});
// Trochlea key note
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.08, w:5.55, h:0.16, fill:{color:"FFF3E0"}, line:{color:ORANGE, pt:1}, rectRadius:0.05 });
s.addText("Key: Trochlea = FUNCTIONAL ORIGIN — the pulley that redirects the line of pull", {
x:0.38, y:5.09, w:5.38, h:0.14, fontSize:9, bold:true, color:ORANGE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
imgPanel(s, IMG[0], "Fig. 8.98 — Trochlea & Superior Oblique Course (BDC / Gray's Anatomy)", 5.95, 1.22, 3.7, 3.86);
refBar(s);
}
// ================================================================
// SLIDE 5 — INSERTION
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Insertion", "Where does the tendon of Superior Oblique attach to the eyeball?");
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:2.0, h:0.5, fill:{color:TOPBAR}, line:{color:TOPBAR} });
s.addText("INSERTION", { x:0.3, y:1.22, w:2.0, h:0.5, fontSize:16, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
// Main box
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.84, w:5.55, h:0.98,
fill:{color:ACCENT3}, line:{color:ACCENT, pt:1.5},
shadow:{type:"outer", color:"000000", blur:3, offset:2, angle:135, opacity:0.08} });
s.addText([
{ text:"Outer Posterior Quadrant of the Eyeball", options:{bold:true, fontSize:15, color:NAVY} },
{ text:"\nPosterosuperior Temporal Quadrant", options:{fontSize:12, color:SUB_TEXT, italic:true} },
{ text:"\nPasses DEEP to Superior Rectus before inserting", options:{fontSize:11, color:DARK_TEXT} },
], { x:0.45, y:1.88, w:5.3, h:0.9, valign:"middle", fontFace:"Calibri" });
// Two fibre cards (light colors)
const fibres = [
{ t:"Anterior Fibres", icon:"↺", b:"Primarily responsible for\nINTORSION\n(medial rotation of eyeball)", c:ACCENT3, tc:TOPBAR, bc:DARK_TEXT },
{ t:"Posterior Fibres", icon:"↓", b:"Primarily responsible for\nDEPRESSION\n(surgical separation possible)", c:"E8F5E9", tc:GREEN, bc:DARK_TEXT },
];
fibres.forEach((f,i) => {
let x = 0.3 + i*2.85;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:2.93, w:2.65, h:2.1, fill:{color:f.c}, line:{color:f.tc, pt:1.5}, rectRadius:0.12 });
s.addText(f.icon, { x, y:2.97, w:2.65, h:0.55, fontSize:28, color:f.tc, fontFace:"Calibri", align:"center", margin:0 });
s.addText(f.t, { x, y:3.5, w:2.65, h:0.38, fontSize:13, bold:true, color:f.tc, fontFace:"Calibri", align:"center", margin:0 });
s.addText(f.b, { x:x+0.08, y:3.9, w:2.49, h:1.06, fontSize:11, color:f.bc, fontFace:"Calibri", align:"center", valign:"middle" });
});
imgPanel(s, IMG[7], "Fig. 18.7 — SO tendon insertion; SR = Superior Rectus (Kanski / BDC)", 6.05, 1.22, 3.6, 3.79);
refBar(s);
}
// ================================================================
// SLIDE 6 — NERVE SUPPLY (light)
// ================================================================
{
let s = pres.addSlide();
lightBlueBg(s);
topBar(s, "Nerve Supply", "Trochlear Nerve — CN IV");
// Main nerve badge (light card)
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:1.22, w:3.8, h:0.98,
fill:{color:ACCENT3}, line:{color:TOPBAR, pt:2}, rectRadius:0.12 });
s.addText("Trochlear Nerve (CN IV)", { x:0.3, y:1.26, w:3.8, h:0.5, fontSize:18, bold:true, color:NAVY, fontFace:"Calibri", align:"center", margin:0 });
s.addText("Enters superior border of muscle", { x:0.3, y:1.74, w:3.8, h:0.4, fontSize:12, color:SUB_TEXT, fontFace:"Calibri", align:"center" });
// Facts grid (light)
const facts = [
{ lbl:"Supplies", val:"Only 1 muscle\n(Superior Oblique)", c:"E3F2FD", tc:TOPBAR },
{ lbl:"Exits", val:"DORSAL surface\nof midbrain", c:"E8F5E9", tc:GREEN },
{ lbl:"Course", val:"Longest intracranial\ncourse of any CN", c:"FFF3E0", tc:ORANGE },
{ lbl:"Crosses", val:"Midline after\nexiting brainstem", c:"FCE4EC", tc:RED_CARD },
];
facts.forEach((f,i) => {
let x = 0.3 + i*2.38;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:2.35, w:2.2, h:2.65,
fill:{color:f.c}, line:{color:f.tc, pt:1.2}, rectRadius:0.1 });
s.addShape(pres.shapes.RECTANGLE, { x, y:2.35, w:2.2, h:0.42, fill:{color:f.tc}, line:{color:f.tc} });
s.addText(f.lbl, { x, y:2.35, w:2.2, h:0.42, fontSize:13, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addText(f.val, { x, y:2.8, w:2.2, h:2.15, fontSize:13, color:DARK_TEXT, fontFace:"Calibri", align:"center", valign:"middle" });
});
// Image right
imgPanel(s, IMG[6], "Fig. 8.106 — Trochlear Nerve [IV] in the Orbit (BDC / Gray's Anatomy)", 4.42, 1.22, 5.24, 3.73);
refBar(s);
}
// ================================================================
// SLIDE 7 — ACTIONS
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Actions of the Superior Oblique", "Primary and secondary movements");
// Three action cards (light colored)
const acts = [
{ rank:"PRIMARY", act:"INTORSION", desc:"Medial rotation of upper\npole of eyeball toward nose", icon:"↺", fill:"E3F2FD", border:TOPBAR, tc:TOPBAR },
{ rank:"SECONDARY", act:"DEPRESSION", desc:"Pulls pupil downward\n(esp. in adduction)", icon:"↓", fill:"E8F5E9", border:GREEN, tc:GREEN },
{ rank:"SECONDARY", act:"ABDUCTION", desc:"Moves eyeball laterally\naway from nose", icon:"→", fill:"FFF3E0", border:ORANGE, tc:ORANGE },
];
acts.forEach((a,i) => {
let x = 0.3 + i*2.06;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y:1.22, w:1.9, h:3.8,
fill:{color:a.fill}, line:{color:a.border, pt:1.8}, rectRadius:0.14,
shadow:{type:"outer", color:"000000", blur:5, offset:2, angle:135, opacity:0.1} });
// Rank badge
s.addShape(pres.shapes.RECTANGLE, { x:x+0.06, y:1.29, w:1.78, h:0.36, fill:{color:a.border}, line:{color:a.border} });
s.addText(a.rank, { x:x+0.06, y:1.29, w:1.78, h:0.36, fontSize:10, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addText(a.icon, { x, y:1.7, w:1.9, h:0.72, fontSize:34, color:a.tc, fontFace:"Calibri", align:"center", margin:0 });
s.addText(a.act, { x, y:2.42, w:1.9, h:0.5, fontSize:16, bold:true, color:a.tc, fontFace:"Calibri", align:"center", margin:0 });
s.addText(a.desc, { x:x+0.08, y:2.94, w:1.74, h:2.0, fontSize:11, color:DARK_TEXT, fontFace:"Calibri", align:"center", valign:"top" });
});
// Right images
if (IMG[3]) {
s.addShape(pres.shapes.RECTANGLE, { x:6.5, y:1.22, w:3.15, h:1.72,
fill:{color:WHITE}, line:{color:ACCENT, pt:1},
shadow:{type:"outer", color:"000000", blur:3, offset:2, angle:135, opacity:0.08} });
s.addImage({ data:IMG[3], x:6.55, y:1.27, w:3.05, h:1.48 });
s.addText("Fig. 8.96 — Movements of the Eyeball", { x:6.5, y:2.9, w:3.15, h:0.24, fontSize:8, color:SUB_TEXT, fontFace:"Calibri", align:"center", italic:true });
}
if (IMG[2]) {
s.addShape(pres.shapes.RECTANGLE, { x:6.5, y:3.2, w:3.15, h:1.72,
fill:{color:WHITE}, line:{color:ACCENT, pt:1},
shadow:{type:"outer", color:"000000", blur:3, offset:2, angle:135, opacity:0.08} });
s.addImage({ data:IMG[2], x:6.55, y:3.25, w:3.05, h:1.48 });
s.addText("Fig. 8.100 — Actions & Clinical Testing of Eye Muscles", { x:6.5, y:4.88, w:3.15, h:0.24, fontSize:8, color:SUB_TEXT, fontFace:"Calibri", align:"center", italic:true });
}
// Mnemonic strip
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:5.08, w:5.95, h:0.16, fill:{color:ACCENT3}, line:{color:ACCENT, pt:1} });
s.addText("Mnemonic: I.D.A. — Intorts, Depresses, Abducts", { x:0.3, y:5.08, w:5.95, h:0.16, fontSize:10, color:NAVY, fontFace:"Calibri", align:"center", bold:true, margin:0 });
refBar(s);
}
// ================================================================
// SLIDE 8 — POSITION-DEPENDENT ACTIONS
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Position-Dependent Actions", "How the action changes with eye position — key exam topic");
const rows = [
{ pos:"Primary position\n(looking straight ahead)", act:"Intorsion + Abduction + Depression", c:TOPBAR, bg:ACCENT3, hi:false },
{ pos:"Eye ADDUCTED 51°\n(turned inward — test position)", act:"Acts as PURE DEPRESSOR only\n← BEST position to test SO", c:GREEN, bg:"E8F5E9", hi:true },
{ pos:"Eye ABDUCTED 39°\n(turned outward)", act:"Acts as PURE INTORTOR only", c:"7B1FA2", bg:"F3E5F5", hi:false },
];
rows.forEach((r,i) => {
let y = 1.22 + i*1.25;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y, w:5.5, h:1.12,
fill:{color:r.bg}, line:{color:r.c, pt: r.hi ? 2.5 : 1.5}, rectRadius:0.1 });
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y, w:0.15, h:1.12, fill:{color:r.c}, line:{color:r.c} });
s.addText(r.pos, { x:0.55, y:y+0.1, w:2.3, h:0.92, fontSize:11, bold:true, color:r.c, fontFace:"Calibri", valign:"middle" });
s.addText(r.act, { x:2.9, y:y+0.1, w:2.75, h:0.92, fontSize:12, color: r.hi ? GREEN : DARK_TEXT, fontFace:"Calibri", valign:"middle", bold:r.hi });
});
// Exam tip
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.07, w:5.5, h:0.17, fill:{color:"FFF3E0"}, line:{color:ORANGE, pt:1}, rectRadius:0.05 });
s.addText("Exam Tip: PRIMARY action = INTORSION — NOT depression!", { x:0.38, y:5.08, w:5.34, h:0.15, fontSize:9, bold:true, color:ORANGE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
imgPanel(s, IMG[8], "Fig. 18.8 — Actions of right SO: A=Primary B=51° adduction C=39° abduction", 5.95, 1.22, 3.7, 3.85);
refBar(s);
}
// ================================================================
// SLIDE 9 — CLINICAL EXAMINATION
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Clinical Examination of Superior Oblique", "How to isolate and test the muscle — H-Test");
const steps = [
{ txt:"Step 1: ADDUCT the eye — ask patient to look medially (nasally)", sub:"Aligns the axis of the tendon with the axis of the eyeball (at 51° adduction)", c:TOPBAR, bg:ACCENT3 },
{ txt:"Step 2: Ask patient to look DOWNWARD", sub:"Tests the depressor action of SO in isolation — this isolates the muscle from other depressors", c:GREEN, bg:"E8F5E9" },
{ txt:"Step 3: Observe for depression", sub:"Normal: eye depresses smoothly. Abnormal: failure to depress = CN IV palsy", c:RED_CARD, bg:"FCE4EC" },
];
steps.forEach((st,i) => {
let y = 1.22 + i*1.28;
s.addShape(pres.shapes.OVAL, { x:0.3, y:y+0.27, w:0.56, h:0.56, fill:{color:st.c}, line:{color:st.c} });
s.addText((i+1).toString(), { x:0.3, y:y+0.27, w:0.56, h:0.56, fontSize:16, bold:true, color:WHITE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:1.0, y, w:4.85, h:1.14,
fill:{color:st.bg}, line:{color:st.c, pt:1.5}, rectRadius:0.1 });
s.addText(st.txt, { x:1.15, y:y+0.08, w:4.55, h:0.48, fontSize:13, bold:true, color:NAVY, fontFace:"Calibri", margin:0 });
s.addText(st.sub, { x:1.15, y:y+0.56, w:4.55, h:0.5, fontSize:11, color:SUB_TEXT, fontFace:"Calibri", italic:true, margin:0 });
});
// Rationale
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.07, w:5.6, h:0.17, fill:{color:ACCENT3}, line:{color:TOPBAR, pt:1}, rectRadius:0.05 });
s.addText("Rationale: At 51° adduction SO acts as PURE depressor — isolating its function", {
x:0.38, y:5.08, w:5.44, h:0.15, fontSize:9, color:NAVY, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
imgPanel(s, IMG[5], "Fig. 8.101 — The H-Test: testing all 6 extraocular muscles (BDC / Gray's Anatomy)", 6.05, 1.22, 3.6, 3.85);
refBar(s);
}
// ================================================================
// SLIDE 10 — CN IV PALSY (light)
// ================================================================
{
let s = pres.addSlide();
lightBlueBg(s);
topBar(s, "Clinical Anatomy: CN IV (Trochlear) Palsy", "Superior Oblique paralysis — features & signs");
// Left features box
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:4.5, h:3.82,
fill:{color:WHITE}, line:{color:TOPBAR, pt:1.5},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.08} });
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.22, w:4.5, h:0.44, fill:{color:TOPBAR}, line:{color:TOPBAR} });
s.addText("Features of CN IV Palsy", { x:0.35, y:1.24, w:4.4, h:0.4, fontSize:14, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0 });
s.addText([
{ text:"Vertical diplopia", options:{bullet:true, color:DARK_TEXT, fontSize:13, bold:true, breakLine:true} },
{ text:"Images separated vertically", options:{bullet:{indent:22}, color:SUB_TEXT, fontSize:11, italic:true, breakLine:true} },
{ text:"Hypertropia — affected eye drifts UP", options:{bullet:true, color:DARK_TEXT, fontSize:13, bold:true, breakLine:true} },
{ text:"Diplopia worst on downward + inward gaze", options:{bullet:true, color:DARK_TEXT, fontSize:13, bold:true, breakLine:true} },
{ text:"Going downstairs — classic complaint", options:{bullet:{indent:22}, color:SUB_TEXT, fontSize:11, italic:true, breakLine:true} },
{ text:"Extorsion of the affected eye", options:{bullet:true, color:DARK_TEXT, fontSize:13, bold:true, breakLine:true} },
{ text:"Head tilt AWAY from affected side", options:{bullet:true, color:RED_CARD, fontSize:13, bold:true, breakLine:true} },
{ text:"Bielschowsky head tilt test positive", options:{bullet:{indent:22}, color:SUB_TEXT, fontSize:11, italic:true} },
], { x:0.42, y:1.7, w:4.28, h:3.26, valign:"top", fontFace:"Calibri" });
// Right box: Head tilt (light orange)
s.addShape(pres.shapes.RECTANGLE, { x:4.95, y:1.22, w:4.7, h:3.82,
fill:{color:"FFF8F0"}, line:{color:ORANGE, pt:1.5},
shadow:{type:"outer", color:"000000", blur:4, offset:2, angle:135, opacity:0.08} });
s.addShape(pres.shapes.RECTANGLE, { x:4.95, y:1.22, w:4.7, h:0.44, fill:{color:ORANGE}, line:{color:ORANGE} });
s.addText("Compensatory Head Tilt", { x:5.0, y:1.24, w:4.6, h:0.4, fontSize:14, bold:true, color:WHITE, fontFace:"Calibri", valign:"middle", margin:0 });
s.addText("Tilts head AWAY\nfrom affected side", { x:5.05, y:1.72, w:4.6, h:0.7, fontSize:17, bold:true, color:ORANGE, fontFace:"Calibri", align:"center" });
s.addText([
{ text:"Why?", options:{bold:true, color:NAVY, fontSize:13, breakLine:true} },
{ text:"Loss of intorsion → eye extorts uncontrolled.", options:{color:DARK_TEXT, fontSize:12, breakLine:true} },
{ text:"Head tilt toward opposite shoulder", options:{color:DARK_TEXT, fontSize:12, breakLine:true} },
{ text:"brings visual axes into alignment → reduces diplopia.", options:{color:ORANGE, fontSize:12, bold:true, breakLine:true} },
{ text:" ", options:{fontSize:5, breakLine:true} },
{ text:"Bielschowsky Head Tilt Test:", options:{color:RED_CARD, fontSize:12, bold:true, breakLine:true} },
{ text:"Hypertropia worsens when head tilted toward\naffected side → confirms CN IV palsy.", options:{color:DARK_TEXT, fontSize:11} },
], { x:5.05, y:2.46, w:4.55, h:2.5, valign:"top", fontFace:"Calibri" });
// Footer note
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.08, w:9.4, h:0.16, fill:{color:ACCENT3}, line:{color:TOPBAR, pt:1}, rectRadius:0.05 });
s.addText("Congenital CN IV palsy: 73% show ipsilateral absent trochlear nerve on MRI", {
x:0.4, y:5.09, w:9.1, h:0.14, fontSize:9, color:NAVY, fontFace:"Calibri", align:"center", italic:true, margin:0 });
refBar(s);
}
// ================================================================
// SLIDE 11 — SUPERIOR OBLIQUE MYOKYMIA
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Superior Oblique Myokymia", "A paroxysmal clinical condition");
const items = [
{ lbl:"Definition", val:"Paroxysmal, rapid, small-amplitude monocular torsional-vertical oscillation caused by contraction of the superior oblique", c:"E3F2FD", tc:TOPBAR },
{ lbl:"Symptoms", val:"• Monocular blurring\n• Torsional oscillopsia (rotating objects)\n• Vertical diplopia", c:"FFF3E0", tc:ORANGE },
{ lbl:"Cause", val:"Spontaneous contraction (myokymia) of the SO muscle", c:"FCE4EC", tc:RED_CARD },
{ lbl:"Treatment", val:"Membrane-stabilizing drugs\n(e.g., carbamazepine, gabapentin)", c:"E8F5E9", tc:GREEN },
];
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:1.22, w:5.55, h:3.82,
fill:{color:LGRAY}, line:{color:MID_GRAY, pt:1}, rectRadius:0.1 });
items.forEach((it,i) => {
let y = 1.3 + i*0.87;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.4, y:y+0.04, w:1.6, h:0.62, fill:{color:it.c}, line:{color:it.tc, pt:1}, rectRadius:0.08 });
s.addText(it.lbl, { x:0.4, y:y+0.04, w:1.6, h:0.62, fontSize:12, bold:true, color:it.tc, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
s.addText(it.val, { x:2.12, y:y+0.04, w:3.55, h:0.65, fontSize:11, color:DARK_TEXT, fontFace:"Calibri", valign:"middle" });
if (i<items.length-1) s.addShape(pres.shapes.RECTANGLE, { x:0.38, y:y+0.74, w:5.3, h:0.02, fill:{color:MID_GRAY}, line:{color:MID_GRAY} });
});
// Brown syndrome
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.3, y:5.07, w:5.55, h:0.17, fill:{color:"FFF3E0"}, line:{color:ORANGE, pt:1}, rectRadius:0.06 });
s.addText("Brown Syndrome: SO tendon sheath restriction → limits elevation in adduction", {
x:0.38, y:5.08, w:5.38, h:0.15, fontSize:9, color:ORANGE, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
imgPanel(s, IMG[4], "Fig. 8.97 — Axes of Eyeball & Orbit (BDC / Gray's Anatomy)", 6.05, 1.22, 3.6, 3.82);
refBar(s);
}
// ================================================================
// SLIDE 12 — SUMMARY TABLE
// ================================================================
{
let s = pres.addSlide();
whiteBg(s);
topBar(s, "Quick Revision Summary", "Superior Oblique Muscle — All at a Glance");
const rows = [
["Feature", "Detail"],
["Origin", "Body of sphenoid — superomedial to optic canal"],
["Trochlea", "Fibrocartilaginous pulley at trochlear fovea of frontal bone"],
["Insertion", "Outer posterior (superotemporal) quadrant of eyeball"],
["Nerve Supply", "CN IV — Trochlear nerve (enters superior border)"],
["Primary Action", "INTORSION (medial rotation)"],
["Secondary Actions", "Depression + Abduction"],
["Test Position", "Adduct eye 51° → then look down"],
["CN IV Palsy", "Hypertropia, head tilt away, diplopia worst ↓ gaze"],
["CN IV Unique", "Only CN from dorsal brainstem; supplies 1 muscle; longest intracranial"],
];
let tableData = rows.map((row, ri) =>
row.map((cell, ci) => ({
text: cell,
options: {
bold: ri === 0,
color: ri === 0 ? WHITE : (ci === 0 ? NAVY : DARK_TEXT),
fill: ri === 0 ? TOPBAR : (ri % 2 === 0 ? ACCENT3 : WHITE),
fontSize: ri === 0 ? 13 : 11,
fontFace: "Calibri",
align: ci === 0 ? "right" : "left",
}
}))
);
s.addTable(tableData, {
x:0.3, y:1.22, w:9.4, h:3.85,
rowH:0.37,
border:{ type:"solid", pt:0.5, color:"CCDDEE" },
});
refBar(s);
}
// ================================================================
// SLIDE 13 — THANK YOU (light)
// ================================================================
{
let s = pres.addSlide();
lightBlueBg(s);
// Top banner
s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:2.2, fill:{color:TOPBAR}, line:{color:TOPBAR} });
s.addShape(pres.shapes.RECTANGLE, { x:0, y:2.2, w:10, h:0.07, fill:{color:ORANGE}, line:{color:ORANGE} });
s.addText("Thank You", { x:0.5, y:0.2, w:9.0, h:1.05, fontSize:52, bold:true, color:WHITE, fontFace:"Calibri", align:"center", margin:0 });
s.addText("Superior Oblique Muscle | BHMS 1st Year Anatomy Seminar", { x:0.5, y:1.25, w:9.0, h:0.48, fontSize:16, color:"C8E6FA", fontFace:"Calibri", italic:true, align:"center", margin:0 });
// Content chips
const chips = ["Origin", "Insertion", "Nerve Supply", "Actions", "Clinical Anatomy", "Examination"];
chips.forEach((chip, i) => {
let col = i % 3, row = Math.floor(i / 3);
let x = 0.5 + col * 3.1, y = 2.4 + row * 0.58;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w:2.85, h:0.46, fill:{color:ACCENT3}, line:{color:ACCENT, pt:1}, rectRadius:0.08 });
s.addText(chip, { x, y, w:2.85, h:0.46, fontSize:14, bold:true, color:NAVY, fontFace:"Calibri", align:"center", valign:"middle", margin:0 });
});
// Image
if (IMG[2]) s.addImage({ data:IMG[2], x:6.6, y:3.62, w:3.1, h:1.44, transparency:15 });
// Reference
s.addShape(pres.shapes.RECTANGLE, { x:0, y:5.3, w:10, h:0.325, fill:{color:ACCENT3}, line:{color:MID_GRAY, pt:0.5} });
s.addText("Reference: B.D. Chaurasia's Human Anatomy, Vol. 3 (Head-Neck-Brain), 5th Ed. | Supplementary images: Gray's Anatomy for Students, Kanski's Clinical Ophthalmology 10e", {
x:0.3, y:5.31, w:9.4, h:0.3, fontSize:9, color:NAVY, fontFace:"Calibri", align:"center", margin:0 });
}
// ================================================================
// WRITE FILE
// ================================================================
const outPath = "/home/daytona/workspace/superior-oblique-ppt/Superior_Oblique_BDC_Light.pptx";
pres.writeFile({ fileName: outPath })
.then(() => console.log("SUCCESS:", outPath))
.catch(e => console.error("ERROR:", e));
cd /home/daytona/workspace/superior-oblique-ppt && node create_pptx_v3.js 2>&1
ls -lh /home/daytona/workspace/superior-oblique-ppt/Superior_Oblique_BDC_Light.pptx
Superior Oblique BDC Light
Presentation · PPTX
| What changed | Details |
|---|---|
| All backgrounds | White (#FFFFFF) or very light blue-white — no dark backgrounds anywhere |
| Title slide | White/light blue area with blue top banner only |
| Nerve supply slide | Now fully light - light blue/green/orange/pink cards on white |
| CN IV palsy slide | White + light orange box, no dark panels |
| Thank you slide | Light blue background with blue top banner only |
| All info cards | Light pastel fills (blue, green, orange, red) instead of dark navy |
| Text | Dark navy/blue on light backgrounds for easy reading |
| Reference | BDC Chaurasia Vol. 3, 5th Ed. on every slide footer |
| Images | All 9 anatomy diagrams embedded (same as before) |