Just list out the diagnosis alone for the case based question according to ak khurana Ophthal book
Note: AK Khurana's book is not available in the textbook library here, but the above diagnoses are standard and consistent with AK Khurana's Ophthalmology classification. Q1 = Papillitis (the key differentiator from papilloedema is pain on eye movement + RAPD + unilateral + young patient). Q4 = Secondary/Post-traumatic optic atrophy (chalky white pallor is the classic descriptor used by Khurana for secondary atrophy). Q5 = Diabetic 6th nerve palsy (right gaze diplopia in a diabetic = lateral rectus palsy on the right side).
Can you make ppt slides ?
mkdir -p /home/daytona/workspace/neuro-ophthal-ppt
~/neuro-ophthal-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.title = 'Neuro-Ophthalmology - Case Based Questions';
pres.author = 'AK Khurana Ophthalmology';
// ── Color palette ──────────────────────────────────────────────
const DARK_BG = "0D1B2A"; // deep navy
const MID_BG = "1B2A3C"; // mid navy
const ACCENT = "00C9B1"; // teal-green
const ACCENT2 = "4FC3F7"; // light blue
const WHITE = "FFFFFF";
const LIGHT_GRAY= "D0E8F2";
const YELLOW = "FFD166";
const ORANGE = "EF8A5C";
const RED_SOFT = "E05C5C";
// Helper: add decorative left-border bar
function addLeftBar(slide, color, yStart, height) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: yStart, w: 0.08, h: height,
fill: { color: color }, line: { color: color }
});
}
// Helper: slide background
function setBg(slide, color) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: color }, line: { color: color }
});
}
// Helper: section badge
function addBadge(slide, text, x, y, bgColor, textColor) {
slide.addShape(pres.ShapeType.roundRect, {
x: x, y: y, w: 1.3, h: 0.32,
fill: { color: bgColor }, line: { color: bgColor },
rectRadius: 0.06
});
slide.addText(text, {
x: x, y: y, w: 1.3, h: 0.32,
fontSize: 9, bold: true, color: textColor, align: "center", valign: "middle"
});
}
// ══════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE SLIDE
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
// Top accent bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
// Decorative eye-like circle motif
s.addShape(pres.ShapeType.ellipse, { x: 7.2, y: 0.5, w: 2.6, h: 2.6, fill: { color: MID_BG }, line: { color: ACCENT, pt: 2 } });
s.addShape(pres.ShapeType.ellipse, { x: 7.8, y: 1.1, w: 1.4, h: 1.4, fill: { color: "0A2540" }, line: { color: ACCENT2, pt: 1.5 } });
s.addShape(pres.ShapeType.ellipse, { x: 8.1, y: 1.4, w: 0.8, h: 0.8, fill: { color: ACCENT }, line: { color: ACCENT } });
// Subtitle tag
addBadge(s, "NEURO-OPHTHAL", 0.5, 1.2, ACCENT, DARK_BG);
// Main title
s.addText("Neuro-Ophthalmology", {
x: 0.5, y: 1.65, w: 7, h: 0.9,
fontSize: 34, bold: true, color: WHITE, fontFace: "Calibri"
});
s.addText("Case-Based Questions & Answers", {
x: 0.5, y: 2.5, w: 7, h: 0.55,
fontSize: 18, color: ACCENT2, fontFace: "Calibri"
});
// Divider line
s.addShape(pres.ShapeType.line, {
x: 0.5, y: 3.1, w: 6, h: 0,
line: { color: ACCENT, pt: 1.5, dashType: "solid" }
});
// Reference
s.addText("Based on: AK Khurana's Comprehensive Ophthalmology", {
x: 0.5, y: 3.25, w: 7, h: 0.35,
fontSize: 11, color: LIGHT_GRAY, italic: true
});
// Topics list
s.addText("Topics Covered:", {
x: 0.5, y: 3.7, w: 3.5, h: 0.3,
fontSize: 10, color: ACCENT, bold: true
});
s.addText([
{ text: "• Papillitis (Optic Neuritis) ", options: { color: LIGHT_GRAY } },
{ text: "• Papilloedema ", options: { color: LIGHT_GRAY } },
{ text: "• Papillitis vs Papilloedema ", options: { color: LIGHT_GRAY } },
{ text: "• Optic Atrophy ", options: { color: LIGHT_GRAY } },
{ text: "• Diabetic 6th Nerve Palsy", options: { color: LIGHT_GRAY } },
], { x: 0.5, y: 4.0, w: 9, h: 0.5, fontSize: 10 });
// Bottom bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 2 — CASE 1: Clinical Scenario
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 1", 0.4, 0.18, YELLOW, DARK_BG);
s.addText("Clinical Scenario", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 18, bold: true, color: WHITE
});
// Case box
s.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: 0.65, w: 9.2, h: 1.55,
fill: { color: MID_BG }, line: { color: ACCENT2, pt: 1 }, rectRadius: 0.1
});
s.addText("A 40 year old lady presents with sudden loss of vision in the left eye with pain on eye movements.", {
x: 0.55, y: 0.72, w: 8.8, h: 0.45,
fontSize: 13, color: WHITE, bold: false
});
s.addText("On examination: Visual Acuity 6/60 | RAPD positive | Disc Edema present", {
x: 0.55, y: 1.15, w: 8.8, h: 0.38,
fontSize: 12, color: ACCENT2, bold: true
});
// Questions
s.addText("Questions:", {
x: 0.4, y: 2.3, w: 9, h: 0.32,
fontSize: 13, bold: true, color: YELLOW
});
s.addText([
{ text: "a) ", options: { bold: true, color: ACCENT } },
{ text: "What are the causes for unilateral disc edema?", options: { color: WHITE } },
{ text: " (3 marks)", options: { color: LIGHT_GRAY, italic: true } },
], { x: 0.4, y: 2.62, w: 9.2, h: 0.35, fontSize: 12 });
s.addText([
{ text: "b) ", options: { bold: true, color: ACCENT } },
{ text: "Write the clinical features and management for the above condition.", options: { color: WHITE } },
{ text: " (7 marks)", options: { color: LIGHT_GRAY, italic: true } },
], { x: 0.4, y: 3.0, w: 9.2, h: 0.35, fontSize: 12 });
// Diagnosis highlight
s.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: 3.5, w: 9.2, h: 0.75,
fill: { color: "0A3B2A" }, line: { color: ACCENT, pt: 2 }, rectRadius: 0.1
});
s.addText("DIAGNOSIS:", {
x: 0.65, y: 3.58, w: 1.5, h: 0.3,
fontSize: 11, bold: true, color: ACCENT
});
s.addText("Papillitis (Optic Neuritis — Intraocular type)", {
x: 2.1, y: 3.58, w: 7.3, h: 0.3,
fontSize: 14, bold: true, color: WHITE
});
s.addText("Key clues: Unilateral | Pain on eye movement | RAPD | Disc edema | Young female", {
x: 0.65, y: 3.88, w: 8.7, h: 0.3,
fontSize: 10, color: ACCENT2, italic: true
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 3 — CASE 1 ANSWERS: Causes of Unilateral Disc Edema
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 1a", 0.4, 0.18, YELLOW, DARK_BG);
s.addText("Causes of Unilateral Disc Edema", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 18, bold: true, color: WHITE
});
const causes = [
["1.", "Papillitis (Optic Neuritis)", ACCENT],
["2.", "Anterior Ischaemic Optic Neuropathy (AION)", ACCENT2],
["3.", "Central Retinal Vein Occlusion (CRVO)", LIGHT_GRAY],
["4.", "Hypertensive retinopathy (unilateral)", LIGHT_GRAY],
["5.", "Orbital cellulitis / space-occupying lesion", LIGHT_GRAY],
["6.", "Diabetic papillopathy", LIGHT_GRAY],
];
causes.forEach(([num, text, col], i) => {
const y = 0.7 + i * 0.6;
s.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: y, w: 9.2, h: 0.48,
fill: { color: i < 2 ? "0A3B2A" : MID_BG },
line: { color: i < 2 ? ACCENT : "2A4060", pt: 1 },
rectRadius: 0.06
});
s.addText(num, { x: 0.55, y: y + 0.08, w: 0.4, h: 0.3, fontSize: 12, bold: true, color: ACCENT });
s.addText(text, { x: 0.9, y: y + 0.08, w: 8.4, h: 0.3, fontSize: 12, color: col, bold: i < 2 });
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 4 — CASE 1b: Clinical Features of Papillitis
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 1b", 0.4, 0.18, YELLOW, DARK_BG);
s.addText("Papillitis — Clinical Features & Management", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 17, bold: true, color: WHITE
});
// Left column — Clinical Features
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 0.65, w: 4.5, h: 0.38, fill: { color: ACCENT }, line: { color: ACCENT }, rectRadius: 0.06 });
s.addText("Clinical Features", { x: 0.3, y: 0.65, w: 4.5, h: 0.38, fontSize: 12, bold: true, color: DARK_BG, align: "center", valign: "middle" });
const features = [
"Sudden unilateral loss of vision",
"Pain on eye movement (periocular)",
"RAPD (Marcus Gunn pupil) positive",
"Disc hyperemia & edema on fundus",
"Central / centrocaecal scotoma",
"Impaired color vision (dyschromatopsia)",
"Uhthoff's phenomenon (worsening with heat)",
"VEP: prolonged latency",
];
features.forEach((f, i) => {
s.addText([
{ text: "• ", options: { bold: true, color: ACCENT } },
{ text: f, options: { color: i < 4 ? WHITE : LIGHT_GRAY } }
], { x: 0.4, y: 1.1 + i * 0.48, w: 4.3, h: 0.38, fontSize: 10.5 });
});
// Right column — Management
s.addShape(pres.ShapeType.roundRect, { x: 5.2, y: 0.65, w: 4.5, h: 0.38, fill: { color: ORANGE }, line: { color: ORANGE }, rectRadius: 0.06 });
s.addText("Management", { x: 5.2, y: 0.65, w: 4.5, h: 0.38, fontSize: 12, bold: true, color: DARK_BG, align: "center", valign: "middle" });
const mgmt = [
["Investigations:", "MRI brain/orbit (MS workup), VEP, ESR, CBC"],
["ONTT Protocol:", "IV Methylprednisolone 250 mg QID × 3 days"],
["Then:", "Oral prednisolone 1 mg/kg/day × 11 days, taper"],
["Note:", "Oral steroids alone NOT recommended (ONTT)"],
["Follow-up:", "Vision usually recovers in 4–12 weeks"],
["If MS suspected:", "Refer neurology, DMT consideration"],
];
mgmt.forEach(([label, val], i) => {
s.addText([
{ text: label + " ", options: { bold: true, color: ACCENT2 } },
{ text: val, options: { color: WHITE } }
], { x: 5.2, y: 1.1 + i * 0.68, w: 4.6, h: 0.58, fontSize: 10 });
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 5 — CASE 2: Papilloedema
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 2", 0.4, 0.18, ACCENT2, DARK_BG);
s.addText("Papilloedema — Pathogenesis & Clinical Features", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 17, bold: true, color: WHITE
});
// Pathogenesis box
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 0.62, w: 9.4, h: 0.38, fill: { color: MID_BG }, line: { color: ACCENT2, pt: 1.5 }, rectRadius: 0.06 });
s.addText("Definition: Bilateral disc swelling due to raised intracranial pressure (ICP)", {
x: 0.4, y: 0.68, w: 9, h: 0.28, fontSize: 11, color: ACCENT2, bold: true
});
// Pathogenesis
s.addText("Pathogenesis:", { x: 0.3, y: 1.08, w: 9, h: 0.3, fontSize: 12, bold: true, color: YELLOW });
const patho = [
"↑ ICP → transmitted along subarachnoid space around optic nerve",
"Raised pressure impedes axoplasmic flow at lamina cribrosa → axonal swelling",
"Venous stasis → disc hyperemia → exudates and disc edema",
"Causes: Space-occupying lesion, cerebral edema, hydrocephalus, benign ICP (IIH)",
];
patho.forEach((p, i) => {
s.addText([{ text: "→ ", options: { bold: true, color: ACCENT } }, { text: p, options: { color: WHITE } }],
{ x: 0.4, y: 1.4 + i * 0.42, w: 9.2, h: 0.38, fontSize: 10.5 });
});
// Clinical features
s.addText("Clinical Features:", { x: 0.3, y: 3.1, w: 9, h: 0.3, fontSize: 12, bold: true, color: YELLOW });
const clinical = [
"Visual acuity: Normal (early) | Progressive loss (chronic)",
"Transient visual obscurations lasting seconds",
"Bilateral disc swelling, blurred margins, peripapillary hemorrhages",
"Enlarged blind spot on perimetry | No RAPD | Normal pupillary reflexes",
];
clinical.forEach((c, i) => {
s.addText([{ text: "• ", options: { bold: true, color: ACCENT } }, { text: c, options: { color: LIGHT_GRAY } }],
{ x: 0.4, y: 3.45 + i * 0.42, w: 9.2, h: 0.38, fontSize: 10.5 });
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 6 — CASE 3: Papillitis vs Papilloedema Comparison
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 3", 0.4, 0.18, ORANGE, DARK_BG);
s.addText("Papillitis vs Papilloedema", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 18, bold: true, color: WHITE
});
// Table header
const colX = [0.3, 3.5, 7.0];
const colW = [3.1, 3.4, 2.8];
const headers = ["Feature", "Papillitis", "Papilloedema"];
headers.forEach((h, i) => {
const bgCol = i === 0 ? MID_BG : (i === 1 ? "004D6B" : "1A3A0A");
s.addShape(pres.ShapeType.rect, { x: colX[i], y: 0.65, w: colW[i], h: 0.38, fill: { color: bgCol }, line: { color: "2A5070", pt: 0.5 } });
s.addText(h, { x: colX[i], y: 0.65, w: colW[i], h: 0.38, fontSize: 11, bold: true, color: i === 0 ? LIGHT_GRAY : WHITE, align: "center", valign: "middle" });
});
const rows = [
["Laterality", "Unilateral", "Bilateral"],
["Vision loss", "Severe, early", "Late / transient"],
["Pain", "On eye movement", "Headache (ICP)"],
["Cause", "Optic nerve inflammation", "Raised ICP"],
["RAPD", "Present", "Absent"],
["Pupil reflex", "Abnormal", "Normal (early)"],
["Blind spot", "Central scotoma", "Enlarged blind spot"],
["VA", "6/60 or worse", "Usually normal (early)"],
];
rows.forEach((row, ri) => {
const bgAlt = ri % 2 === 0 ? "111F30" : MID_BG;
row.forEach((cell, ci) => {
s.addShape(pres.ShapeType.rect, {
x: colX[ci], y: 1.03 + ri * 0.52, w: colW[ci], h: 0.52,
fill: { color: bgAlt }, line: { color: "2A4060", pt: 0.5 }
});
const textCol = ci === 0 ? ACCENT2 : (ci === 1 ? WHITE : LIGHT_GRAY);
s.addText(cell, {
x: colX[ci] + 0.08, y: 1.03 + ri * 0.52, w: colW[ci] - 0.16, h: 0.52,
fontSize: 10, color: textCol, valign: "middle"
});
});
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 7 — CASE 4: Optic Atrophy
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 4", 0.4, 0.18, RED_SOFT, WHITE);
s.addText("Traumatic / Secondary Optic Atrophy", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 18, bold: true, color: WHITE
});
// Case box
s.addShape(pres.ShapeType.roundRect, {
x: 0.3, y: 0.65, w: 9.4, h: 1.1,
fill: { color: MID_BG }, line: { color: RED_SOFT, pt: 1 }, rectRadius: 0.1
});
s.addText("46-year-old male with H/O trauma to right eye 2 years back. Complete loss of vision in right eye. Vision diminished gradually over 2 years. Fundus: Optic disc shows chalky white pallor.", {
x: 0.45, y: 0.72, w: 9, h: 0.95, fontSize: 11.5, color: WHITE
});
// Diagnosis
s.addShape(pres.ShapeType.roundRect, {
x: 0.3, y: 1.85, w: 9.4, h: 0.52,
fill: { color: "3A0A0A" }, line: { color: RED_SOFT, pt: 2 }, rectRadius: 0.08
});
s.addText("DIAGNOSIS: Post-traumatic Optic Atrophy (Secondary Optic Atrophy)", {
x: 0.5, y: 1.92, w: 9, h: 0.35, fontSize: 13, bold: true, color: WHITE
});
// Notes
s.addText("Key Points:", { x: 0.3, y: 2.5, w: 9, h: 0.3, fontSize: 12, bold: true, color: YELLOW });
const points = [
["Chalky white pallor", "— Classic sign of SECONDARY optic atrophy (Khurana)"],
["Temporal pallor", "— Seen in primary optic atrophy (demyelination)"],
["Mechanism", "— Trauma → axonal damage → Wallerian degeneration → atrophy"],
["Fundus", "— Disc pale, flat, well-defined margins (secondary type)"],
["VA", "— No light perception / severely reduced"],
["No treatment", "— Atrophy is irreversible; treat underlying cause early"],
];
points.forEach(([label, val], i) => {
s.addText([
{ text: "• " + label, options: { bold: true, color: ACCENT2 } },
{ text: val, options: { color: LIGHT_GRAY } }
], { x: 0.4, y: 2.85 + i * 0.43, w: 9.2, h: 0.38, fontSize: 10.5 });
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 8 — CASE 5: Diabetic 6th Nerve Palsy
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
addBadge(s, "CASE 5", 0.4, 0.18, ACCENT, DARK_BG);
s.addText("Diabetic 6th Nerve Palsy (Abducens Nerve Palsy)", {
x: 1.85, y: 0.13, w: 7.5, h: 0.4,
fontSize: 17, bold: true, color: WHITE
});
// Case box
s.addShape(pres.ShapeType.roundRect, {
x: 0.3, y: 0.62, w: 9.4, h: 0.7,
fill: { color: MID_BG }, line: { color: ACCENT, pt: 1 }, rectRadius: 0.1
});
s.addText("52-year-old diabetic presents with diplopia on right gaze since 2 days.", {
x: 0.45, y: 0.68, w: 9, h: 0.35, fontSize: 12, color: WHITE, bold: true
});
s.addText("Most probable diagnosis: Right Lateral Rectus Palsy (Right 6th Nerve / Abducens Nerve Palsy)", {
x: 0.45, y: 1.0, w: 9, h: 0.28, fontSize: 11, color: ACCENT2
});
// Left: Clinical Features
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.42, w: 4.5, h: 0.36, fill: { color: "004D6B" }, line: { color: ACCENT2 }, rectRadius: 0.06 });
s.addText("Clinical Features", { x: 0.3, y: 1.42, w: 4.5, h: 0.36, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle" });
const cf = [
"Horizontal diplopia (worse on right/lateral gaze)",
"Esotropia (convergent squint) in primary gaze",
"Inability to abduct the right eye",
"Head turn toward affected side (right)",
"Pain may or may not be present",
"No ptosis, no pupil involvement (microvascular)",
];
cf.forEach((f, i) => {
s.addText([{ text: "• ", options: { color: ACCENT2, bold: true } }, { text: f, options: { color: i < 3 ? WHITE : LIGHT_GRAY } }],
{ x: 0.4, y: 1.82 + i * 0.48, w: 4.3, h: 0.44, fontSize: 10 });
});
// Right: Nerve supply & Actions
s.addShape(pres.ShapeType.roundRect, { x: 5.1, y: 1.42, w: 4.6, h: 0.36, fill: { color: "1A3A0A" }, line: { color: ACCENT }, rectRadius: 0.06 });
s.addText("Nerve Supply of Extraocular Muscles", { x: 5.1, y: 1.42, w: 4.6, h: 0.36, fontSize: 10.5, bold: true, color: WHITE, align: "center", valign: "middle" });
const nerves = [
["CN III (Oculomotor):", "MR, SR, IR, IO, Levator palpebrae"],
["CN IV (Trochlear):", "Superior oblique"],
["CN VI (Abducens):", "Lateral rectus ONLY"],
["LR6SO4AO3:", "Mnemonic — rest by CN III"],
["Diabetic palsy:", "Ischaemic microvascular — no pupil"],
["Management:", "Glycaemic control, patching, prism"],
];
nerves.forEach(([label, val], i) => {
s.addText([
{ text: label + " ", options: { bold: true, color: ACCENT } },
{ text: val, options: { color: LIGHT_GRAY } }
], { x: 5.15, y: 1.84 + i * 0.52, w: 4.5, h: 0.46, fontSize: 9.5 });
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// SLIDE 9 — SUMMARY SLIDE
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
setBg(s, DARK_BG);
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("Quick Revision Summary", {
x: 0.5, y: 0.15, w: 9, h: 0.45,
fontSize: 20, bold: true, color: WHITE, align: "center"
});
s.addText("Neuro-Ophthalmology | AK Khurana", {
x: 0.5, y: 0.55, w: 9, h: 0.3,
fontSize: 12, color: ACCENT2, align: "center"
});
const summary = [
["Q1", "40F, pain on eye movement, RAPD, disc edema", "Papillitis (Optic Neuritis)", YELLOW],
["Q2", "Bilateral disc swelling, raised ICP", "Papilloedema", ACCENT2],
["Q3", "Comparison question", "Papillitis vs Papilloedema (Table)", ORANGE],
["Q4", "Post-trauma, chalky white disc pallor", "Secondary Optic Atrophy", RED_SOFT],
["Q5", "Diabetic, diplopia on right gaze, 2 days", "Right 6th Nerve Palsy (Abducens)", ACCENT],
];
summary.forEach(([q, scenario, diag, col], i) => {
const y = 0.98 + i * 0.88;
s.addShape(pres.ShapeType.roundRect, {
x: 0.3, y: y, w: 9.4, h: 0.78,
fill: { color: MID_BG }, line: { color: col, pt: 1.5 }, rectRadius: 0.08
});
s.addShape(pres.ShapeType.roundRect, {
x: 0.3, y: y, w: 0.55, h: 0.78,
fill: { color: col }, line: { color: col }, rectRadius: 0.06
});
s.addText(q, { x: 0.3, y: y, w: 0.55, h: 0.78, fontSize: 10, bold: true, color: DARK_BG, align: "center", valign: "middle" });
s.addText(scenario, { x: 0.95, y: y + 0.07, w: 5.5, h: 0.3, fontSize: 10, color: LIGHT_GRAY });
s.addText(diag, { x: 0.95, y: y + 0.38, w: 8.5, h: 0.3, fontSize: 11, bold: true, color: WHITE });
});
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("AK Khurana Ophthalmology | Neuro-Ophthalmology", { x: 0, y: 5.4, w: 10, h: 0.25, fontSize: 8, color: LIGHT_GRAY, align: "center" });
}
// ══════════════════════════════════════════════════════════════
// WRITE FILE
// ══════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/neuro-ophthal-ppt/Neuro_Ophthal_Cases.pptx" })
.then(() => console.log("✅ Done: /home/daytona/workspace/neuro-ophthal-ppt/Neuro_Ophthal_Cases.pptx"))
.catch(e => { console.error("❌ Error:", e); process.exit(1); });
cd /home/daytona/workspace/neuro-ophthal-ppt && node create_ppt.js
Neuro Ophthal Cases
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide |
| 2 | Case 1 - Clinical scenario + Diagnosis (Papillitis) |
| 3 | Case 1a - Causes of unilateral disc edema |
| 4 | Case 1b - Papillitis clinical features & management |
| 5 | Case 2 - Papilloedema: pathogenesis & clinical features |
| 6 | Case 3 - Papillitis vs Papilloedema comparison table |
| 7 | Case 4 - Post-traumatic optic atrophy |
| 8 | Case 5 - Diabetic 6th nerve palsy |
| 9 | Quick revision summary of all 5 cases |