Delayed recovery from Anaesthesia for md Anaesthesia exam . Ppt
mkdir -p /home/daytona/workspace/delayed-recovery-anaesthesia && ls /home/daytona/workspace/delayed-recovery-anaesthesia/
~/delayed-recovery-anaesthesia/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE";
pres.title = "Delayed Recovery from Anaesthesia";
pres.author = "MD Anaesthesia";
// ── COLOUR PALETTE ──────────────────────────────────────────────────────────
const C = {
navy: "0D2B4E", // dominant dark bg
teal: "0E7C86", // accent bars / headings
gold: "E8A838", // key accent / highlight
cream: "F5F0E8", // slide bg
white: "FFFFFF",
text: "1A1A2E",
muted: "4A6080",
red: "C0392B",
green: "1A7A44",
orange: "E06C00",
lt_teal: "B2E0E4",
};
// ── HELPERS ──────────────────────────────────────────────────────────────────
function addNavyBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navy }, line: { color: C.navy } });
}
function addCreamBg(slide) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.cream }, line: { color: C.cream } });
}
function addTealStripe(slide, y = 0, h = 0.07) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y, w: 13.3, h, fill: { color: C.teal }, line: { color: C.teal } });
}
function addGoldStripe(slide, y = 0, h = 0.06) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y, w: 13.3, h, fill: { color: C.gold }, line: { color: C.gold } });
}
function sectionHeader(slide, title, sub) {
addNavyBg(slide);
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 3.0, w: 13.3, h: 1.5, fill: { color: C.teal, transparency: 20 }, line: { color: C.teal } });
slide.addText(title, { x: 0.5, y: 3.05, w: 12.3, h: 0.9, fontSize: 38, fontFace: "Calibri", color: C.white, bold: true, align: "center", valign: "middle" });
if (sub) slide.addText(sub, { x: 0.5, y: 4.1, w: 12.3, h: 0.6, fontSize: 20, fontFace: "Calibri", color: C.lt_teal, italic: true, align: "center" });
}
function slideTitle(slide, title, accent) {
// Teal top bar
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 1.05, fill: { color: C.teal }, line: { color: C.teal } });
if (accent) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.25, h: 1.05, fill: { color: C.gold }, line: { color: C.gold } });
}
slide.addText(title, {
x: 0.4, y: 0, w: 12.5, h: 1.05, fontSize: 28, fontFace: "Calibri",
color: C.white, bold: true, valign: "middle", margin: 0
});
addGoldStripe(slide, 1.05, 0.06);
}
function footerBar(slide, text) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 7.15, w: 13.3, h: 0.35, fill: { color: C.navy }, line: { color: C.navy } });
slide.addText(text, { x: 0.3, y: 7.15, w: 12.7, h: 0.35, fontSize: 9, fontFace: "Calibri", color: C.lt_teal, align: "right", valign: "middle" });
}
function bullets(slide, items, opts) {
const { x = 0.4, y = 1.3, w = 12.5, h = 5.5, fontSize = 17, color = C.text, bold = false, sub = false } = opts || {};
const textArr = items.map((item, i) => ({
text: item,
options: { bullet: sub ? { indent: 25 } : true, breakLine: i < items.length - 1, fontSize, fontFace: "Calibri", color, bold }
}));
slide.addText(textArr, { x, y, w, h, valign: "top" });
}
function twoCol(slide, leftItems, rightItems, opts) {
const { y = 1.3, h = 5.6, fz = 16, leftTitle = "", rightTitle = "" } = opts || {};
const midX = 6.9;
// Divider
slide.addShape(pres.shapes.LINE, { x: midX, y: 1.25, w: 0, h: 5.9, line: { color: C.teal, width: 1.5 } });
if (leftTitle) slide.addText(leftTitle, { x: 0.4, y, w: 6.1, h: 0.4, fontSize: 15, fontFace: "Calibri", color: C.teal, bold: true, underline: true });
if (rightTitle) slide.addText(rightTitle, { x: midX + 0.3, y, w: 6.1, h: 0.4, fontSize: 15, fontFace: "Calibri", color: C.teal, bold: true, underline: true });
const yt = (leftTitle || rightTitle) ? y + 0.45 : y;
const ht = (leftTitle || rightTitle) ? h - 0.45 : h;
const leftArr = leftItems.map((item, i) => ({ text: item, options: { bullet: true, breakLine: i < leftItems.length - 1, fontSize: fz, fontFace: "Calibri", color: C.text } }));
const rightArr = rightItems.map((item, i) => ({ text: item, options: { bullet: true, breakLine: i < rightItems.length - 1, fontSize: fz, fontFace: "Calibri", color: C.text } }));
slide.addText(leftArr, { x: 0.4, y: yt, w: 6.1, h: ht, valign: "top" });
slide.addText(rightArr, { x: midX + 0.3, y: yt, w: 6.1, h: ht, valign: "top" });
}
function infoBox(slide, text, x, y, w, h, fillColor, textColor, fz) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w, h, fill: { color: fillColor }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
slide.addText(text, { x: x + 0.1, y: y + 0.05, w: w - 0.2, h: h - 0.1, fontSize: fz || 14, fontFace: "Calibri", color: textColor || C.text, bold: false, align: "center", valign: "middle" });
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addNavyBg(s);
// Background geometric accent
s.addShape(pres.shapes.RECTANGLE, { x: 9.5, y: 0, w: 3.8, h: 7.5, fill: { color: C.teal, transparency: 75 }, line: { color: C.teal } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.8, w: 13.3, h: 1.7, fill: { color: C.teal, transparency: 60 }, line: { color: C.teal } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.8, w: 13.3, h: 0.07, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("DELAYED RECOVERY", { x: 0.5, y: 0.8, w: 9.2, h: 1.1, fontSize: 50, fontFace: "Calibri", color: C.gold, bold: true });
s.addText("FROM ANAESTHESIA", { x: 0.5, y: 1.85, w: 9.2, h: 1.0, fontSize: 44, fontFace: "Calibri", color: C.white, bold: true });
s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 3.0, w: 3.5, h: 0.06, fill: { color: C.gold }, line: { color: C.gold } });
s.addText([
{ text: "MD Anaesthesia", options: { breakLine: true, fontSize: 22, bold: true, color: C.lt_teal } },
{ text: "Postoperative Care & Complications", options: { breakLine: true, fontSize: 18, color: C.white } },
], { x: 0.5, y: 3.25, w: 9.2, h: 1.5 });
s.addText([
{ text: "Sources: ", options: { bold: true, color: C.gold, fontSize: 12 } },
{ text: "Morgan & Mikhail's Clinical Anaesthesiology 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e", options: { color: C.lt_teal, fontSize: 12 } }
], { x: 0.5, y: 6.0, w: 12.5, h: 0.5 });
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – OVERVIEW / LEARNING OBJECTIVES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Learning Objectives", true);
const items = [
"Define delayed recovery from anaesthesia",
"Enumerate all causes using a systematic approach (4 M's mnemonic)",
"Identify key pharmacological causes and their reversal agents",
"Recognise metabolic, neurological, and hypothermic contributors",
"Apply a structured diagnostic algorithm",
"Outline targeted treatment and reversal strategies",
"Understand anaesthetic technique modifications to prevent delayed recovery",
];
bullets(s, items, { y: 1.2, fontSize: 18 });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – DEFINITION & SIGNIFICANCE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Definition & Clinical Significance", true);
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y: 1.25, w: 12.5, h: 1.4, fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.1 });
s.addText([
{ text: "Definition: ", options: { bold: true, color: C.gold, fontSize: 19 } },
{ text: "Failure to regain consciousness within 30–60 minutes after cessation of general anaesthesia, or failure to respond appropriately to verbal commands within 15 minutes of returning to PACU.", options: { color: C.white, fontSize: 18 } }
], { x: 0.6, y: 1.3, w: 12.1, h: 1.25, valign: "middle" });
s.addText("Why it matters:", { x: 0.4, y: 2.8, w: 5, h: 0.4, fontSize: 16, fontFace: "Calibri", color: C.teal, bold: true });
const left = [
"Potentially life-threatening emergency",
"Prolongs PACU stay & ICU admission",
"Increased hospital costs",
"Risk of aspiration, airway loss",
"Neurological injury if unrecognised",
];
const right = [
"Incidence: up to 5% of all anaesthetics",
"Higher in elderly & comorbid patients",
"Common in prolonged/complex surgeries",
"May herald serious underlying pathology",
"Medicolegal implications",
];
twoCol(s, left, right, { y: 3.1, h: 4.1, fz: 15 });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – SECTION BREAK: CAUSES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "CAUSES OF DELAYED RECOVERY", "A Systematic Approach");
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – 4 M's MNEMONIC OVERVIEW
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Causes: The 4 M's Mnemonic", true);
// 4 boxes
const boxes = [
{ label: "M1", title: "Medications\n& Drugs", detail: "Anaesthetic agents, opioids,\nbenzodiazepines, NMBAs,\ncholinergic drugs, drug interactions", col: C.teal },
{ label: "M2", title: "Metabolic\nDerangements", detail: "Hypoglycaemia, electrolyte\ndisturbances, hepatic/renal failure,\nhypo/hyperthyroidism", col: C.orange },
{ label: "M3", title: "Mechanical /\nNeurological", detail: "CVA, cerebral hypoxia, intracranial\nhaematoma, raised ICP,\nair embolism, seizures", col: C.red },
{ label: "M4", title: "Miscellaneous", detail: "Hypothermia, hypoxia,\nhypercarbia, TURP syndrome,\npsychological causes", col: C.navy },
];
const xs = [0.3, 3.6, 6.9, 10.2];
boxes.forEach((b, i) => {
const x = xs[i];
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.25, w: 2.9, h: 5.7, fill: { color: b.col }, line: { color: b.col } });
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.25, w: 2.9, h: 0.6, fill: { color: C.gold }, line: { color: C.gold } });
s.addText(b.label, { x, y: 1.25, w: 2.9, h: 0.6, fontSize: 22, fontFace: "Calibri", color: C.navy, bold: true, align: "center", valign: "middle" });
s.addText(b.title, { x: x + 0.1, y: 1.9, w: 2.7, h: 1.0, fontSize: 17, fontFace: "Calibri", color: C.white, bold: true, align: "center", valign: "middle" });
s.addText(b.detail, { x: x + 0.1, y: 3.0, w: 2.7, h: 3.7, fontSize: 14, fontFace: "Calibri", color: C.white, align: "center", valign: "top" });
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – PHARMACOLOGICAL: INHALATIONAL AGENTS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Pharmacological Causes: Inhalational Agents", true);
s.addText("Mechanisms of Prolonged Effect", { x: 0.4, y: 1.2, w: 6, h: 0.4, fontSize: 16, color: C.teal, bold: true, fontFace: "Calibri" });
const left = [
"Excessive dose / prolonged administration",
"High blood-gas partition coefficient → slow elimination (halothane > isoflurane > sevoflurane > desflurane)",
"Hypercapnia shifts MAC — raises apparent anaesthetic depth",
"Hypothermia: decreases MAC, slows elimination",
"Fat redistribution: obese patients — prolonged elimination",
"Elderly: decreased MAC, heightened sensitivity",
];
s.addText(left.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < left.length - 1, fontSize: 15, fontFace: "Calibri", color: C.text } })),
{ x: 0.4, y: 1.65, w: 6.0, h: 5.4, valign: "top" });
// Right side: blood-gas coefficient table
s.addShape(pres.shapes.RECTANGLE, { x: 7.0, y: 1.2, w: 6.0, h: 0.45, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("Blood:Gas Partition Coefficients", { x: 7.0, y: 1.2, w: 6.0, h: 0.45, fontSize: 15, color: C.white, bold: true, align: "center", valign: "middle", fontFace: "Calibri" });
const tableData = [
["Agent", "B:G Coeff.", "Wake-up"],
["Desflurane", "0.42", "Fastest"],
["Sevoflurane", "0.65", "Fast"],
["Isoflurane", "1.46", "Moderate"],
["Halothane", "2.54", "Slowest"],
["Nitrous Oxide", "0.47", "Fast"],
];
tableData.forEach((row, ri) => {
const ry = 1.65 + ri * 0.62;
const rColors = [C.navy, C.lt_teal, C.lt_teal, C.cream, C.lt_teal, C.cream];
const tColors = [C.white, C.text, C.text, C.text, C.text, C.text];
row.forEach((cell, ci) => {
s.addShape(pres.shapes.RECTANGLE, { x: 7.0 + ci * 2.0, y: ry, w: 2.0, h: 0.62, fill: { color: rColors[ri] }, line: { color: C.teal, width: 0.5 } });
s.addText(cell, { x: 7.0 + ci * 2.0 + 0.05, y: ry + 0.05, w: 1.9, h: 0.52, fontSize: ri === 0 ? 13 : 14, fontFace: "Calibri", color: ri === 0 ? C.gold : tColors[ri], bold: ri === 0, align: "center", valign: "middle" });
});
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – PHARMACOLOGICAL: IV AGENTS & OPIOIDS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Pharmacological Causes: IV Agents & Opioids", true);
twoCol(s,
[
"Propofol: context-sensitive half-life extends with infusion duration; TIVA overdose",
"Thiopentone: long redistribution — prolonged sedation after large doses",
"Ketamine: single large IM dose → significantly delayed emergence",
"Midazolam/Benzodiazepines: long-acting; additive with opioids; antagonised by flumazenil",
"Dexmedetomidine: residual sedation; NOT reversed by naloxone",
"Scopolamine: anticholinergic sedation; reversed by physostigmine",
],
[
"Morphine/Hydromorphone: active metabolites accumulate in renal failure",
"Fentanyl: context-sensitive accumulation with long infusions",
"Remifentanil: ultra-short but associated with opioid-induced hyperalgesia",
"Meperidine (Pethidine): normeperidine metabolite → CNS excitation / seizures",
"All opioids: reversal with naloxone (titrated, 40 µg IV increments)",
"Drugs decreasing MAC: methyldopa, clonidine, chronic opioids → anaesthetic overdose",
],
{ y: 1.2, h: 5.8, fz: 14, leftTitle: "Sedative-Hypnotics", rightTitle: "Opioids & Interactions" }
);
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – NEUROMUSCULAR BLOCKADE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Residual Neuromuscular Blockade", true);
// Key concept box
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y: 1.25, w: 12.5, h: 0.8, fill: { color: C.gold, transparency: 20 }, line: { color: C.gold }, rectRadius: 0.08 });
s.addText("Residual NMB appears as weakness/paralysis without unconsciousness — distinguish from coma using nerve stimulator (TOF)", {
x: 0.6, y: 1.3, w: 12.1, h: 0.65, fontSize: 15, fontFace: "Calibri", color: C.navy, bold: true, valign: "middle"
});
twoCol(s,
[
"Causes: inadequate reversal, overdose, renal/hepatic impairment delaying drug clearance",
"Hypothermia antagonises reversal of NMB",
"Hypokalaemia, hypomagnesaemia potentiate NMB",
"Respiratory acidosis augments block",
"Aminoglycosides, clindamycin potentiate NMB",
"Pseudocholinesterase deficiency → prolonged succinylcholine action (Phase II block)",
],
[
"Diagnosis: TOF ratio <0.9 = residual block; peripheral nerve stimulator essential",
"Neostigmine + glycopyrrolate (anticholinesterase reversal)",
"Sugammadex: reverses rocuronium/vecuronium encapsulation (preferred — dose 2–16 mg/kg)",
"Monitor: TOF, double-burst, post-tetanic count",
"BIS / processed EEG: low value ≠ deep anaesthesia alone (ischaemia can also lower BIS)",
"Continuous ventilatory support until TOF ≥ 0.9",
],
{ y: 2.05, h: 4.9, fz: 14, leftTitle: "Causes / Risk Factors", rightTitle: "Diagnosis & Management" }
);
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – METABOLIC CAUSES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Metabolic & Endocrine Causes", true);
const metabolicData = [
{ cause: "Hypoglycaemia", detail: "BSL <40 mg/dL; most common metabolic cause; diabetics on insulin/OHAs", mgmt: "50 mL 50% dextrose IV, recheck BSL" },
{ cause: "Hyperglycaemia /\nHyperosmolar state", detail: "BSL >600 mg/dL; HONKC; serum osmolality >320 mOsm/kg", mgmt: "Insulin, fluid resuscitation, electrolyte correction" },
{ cause: "Hyponatraemia", detail: "Na⁺ <120 mEq/L; TURP syndrome (dilutional); CNS oedema", mgmt: "3% NaCl cautiously (correct <8–10 mEq/24h to avoid ODS)" },
{ cause: "Hepatic Failure", detail: "Reduced drug metabolism; hepatic encephalopathy alters consciousness", mgmt: "Lactulose, treat encephalopathy; avoid sedatives" },
{ cause: "Renal Failure", detail: "Uraemic encephalopathy; drug accumulation (morphine metabolites)", mgmt: "Dialysis; use renally safe opioids" },
{ cause: "Hypothyroidism", detail: "Myxoedema coma; rare but severe; decreased drug metabolism", mgmt: "IV T4/T3, hydrocortisone, supportive care" },
{ cause: "Adrenal\nInsufficiency", detail: "Relative adrenal suppression post steroid withdrawal; hypotension, hypoglycaemia", mgmt: "Hydrocortisone 100 mg IV stat" },
];
// Header row
const colW = [2.5, 5.5, 4.5];
const colX = [0.3, 2.85, 8.4];
const headers = ["Cause", "Mechanism / Features", "Management"];
headers.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: colX[i], y: 1.2, w: colW[i], h: 0.45, fill: { color: C.teal }, line: { color: C.white, width: 0.5 } });
s.addText(h, { x: colX[i] + 0.05, y: 1.2, w: colW[i] - 0.1, h: 0.45, fontSize: 13, fontFace: "Calibri", color: C.white, bold: true, align: "center", valign: "middle" });
});
metabolicData.forEach((row, ri) => {
const ry = 1.65 + ri * 0.72;
const bg = ri % 2 === 0 ? C.cream : C.lt_teal;
s.addShape(pres.shapes.RECTANGLE, { x: colX[0], y: ry, w: colW[0], h: 0.72, fill: { color: C.navy }, line: { color: C.white, width: 0.5 } });
s.addText(row.cause, { x: colX[0] + 0.05, y: ry + 0.05, w: colW[0] - 0.1, h: 0.62, fontSize: 13, fontFace: "Calibri", color: C.gold, bold: true, align: "center", valign: "middle" });
[1, 2].forEach(ci => {
s.addShape(pres.shapes.RECTANGLE, { x: colX[ci], y: ry, w: colW[ci], h: 0.72, fill: { color: bg }, line: { color: C.teal, width: 0.5 } });
s.addText(ci === 1 ? row.detail : row.mgmt, { x: colX[ci] + 0.1, y: ry + 0.05, w: colW[ci] - 0.2, h: 0.62, fontSize: 12, fontFace: "Calibri", color: C.text, valign: "middle" });
});
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – HYPOTHERMIA
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Hypothermia as a Cause", true);
// Core fact
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y: 1.25, w: 12.5, h: 0.85, fill: { color: C.teal }, line: { color: C.teal }, rectRadius: 0.09 });
s.addText("Core temperature <35°C impairs every aspect of anaesthetic elimination and reversal", {
x: 0.6, y: 1.3, w: 12.1, h: 0.7, fontSize: 17, fontFace: "Calibri", color: C.white, bold: true, align: "center", valign: "middle"
});
const left = [
"Decreases MAC → potentiates inhalational agent effect",
"Slows hepatic enzyme function → prolonged IV agent metabolism",
"Antagonises neostigmine reversal of NMB",
"Reduces renal drug clearance",
"Shifts oxyhæmoglobin curve left → reduced O₂ delivery",
"Risk: long surgeries, abdominal/cardiac/paediatric/elderly",
"Per 1°C drop in temp → ~5% increase in anaesthetic duration",
];
const right = [
"Active warming: forced-air warming blankets (Bair Hugger)",
"Warmed IV fluids (38–40°C)",
"Warm humidified anaesthetic gases",
"Underbody heating mattresses",
"Theatre temperature ≥21°C",
"Monitor: oesophageal, nasopharyngeal, rectal temp",
"Target: normothermia (36–37°C) before extubation",
];
twoCol(s, left, right, { y: 2.2, h: 5.0, fz: 15, leftTitle: "How Hypothermia Delays Recovery", rightTitle: "Prevention & Treatment" });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – NEUROLOGICAL CAUSES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Neurological & Cerebral Causes", true);
// Alert box
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y: 1.25, w: 12.5, h: 0.75, fill: { color: C.red, transparency: 15 }, line: { color: C.red }, rectRadius: 0.09 });
s.addText("⚠ Must be excluded when pharmacological causes have been ruled out — requires urgent CT brain / neurological assessment", {
x: 0.6, y: 1.28, w: 12.1, h: 0.65, fontSize: 15, fontFace: "Calibri", color: C.white, bold: true, valign: "middle"
});
const left = [
"Cerebrovascular accident (CVA): ischaemic stroke during/after surgery",
"Cerebral hypoxia/ischaemia: intraoperative hypotension, hypoxia, cardiac arrest",
"Cerebral air embolism: right-to-left shunt, paradoxical embolism",
"Intracranial haematoma: subdural (coagulopathic patients), extradural",
"Raised ICP: following craniotomy, trauma, cerebral oedema",
"Hypertensive encephalopathy: uncontrolled BP surge perioperatively",
];
const right = [
"Posterior reversible encephalopathy syndrome (PRES)",
"Non-convulsive status epilepticus (NCSE): EEG diagnosis; no motor activity",
"Serotonin syndrome: agitation, hyperthermia, clonus (SSRI + opioids)",
"Central anticholinergic syndrome: physostigmine responsive",
"Hepatic encephalopathy: liver failure, portosystemic shunt",
"Wernicke's encephalopathy: alcoholics; thiamine deficiency",
"Carbon monoxide poisoning: CO-oximetry, high-flow O₂",
];
twoCol(s, left, right, { y: 2.1, h: 5.1, fz: 14, leftTitle: "Structural / Vascular", rightTitle: "Toxic / Metabolic Encephalopathy" });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – PREOPERATIVE PATIENT FACTORS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Pre-existing Patient Factors", true);
const items = [
"Advanced age: Decreased MAC, reduced hepatic/renal clearance, altered drug distribution, increased CNS sensitivity",
"Chronic hypertension: Alters cerebral autoregulation → vulnerable to intraoperative hypotension",
"Liver disease: Reduced hepatic metabolism & biliary excretion; reduced serum albumin → increased free drug",
"Renal failure: Decreased renal drug clearance; uraemic encephalopathy; accumulation of morphine-6-glucuronide",
"Diabetes mellitus: Prone to hypoglycaemia, hyperosmolar hyperglycaemic state; diabetic coma",
"Prior stroke / carotid disease: Increased risk of cerebrovascular accident perioperatively",
"Hypothyroidism / Hypoadrenalism: Impaired drug metabolism, myxoedema coma",
"Congenital heart disease (R→L shunt): Air paradoxically enters systemic/cerebral circulation",
"Pseudocholinesterase deficiency: Prolonged succinylcholine action (Phase II block, hours)",
"Chronic alcohol/drug use: Acute intoxication decreases barbiturate metabolism; tolerance alters dosing",
"Preoperative long-acting sedatives (benzodiazepines, opioids): Direct carryover effect into PACU",
];
bullets(s, items, { y: 1.2, fontSize: 14 });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – SECTION: DIAGNOSIS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "DIAGNOSTIC APPROACH", "Systematic Evaluation in PACU");
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – CLINICAL EVALUATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Clinical Evaluation", true);
twoCol(s,
[
"History: anaesthetic technique, drugs used, doses, duration",
"Pre-existing conditions: liver, renal, thyroid, neurological",
"Home medications: sedatives, MAOIs, SSRIs, opioids",
"Intraoperative events: hypotension, hypoxia, cardiac events",
"Preoperative intoxication (alcohol, drugs)",
"Surgical procedure type: TURP, craniotomy, carotid surgery",
],
[
"Pupils: fixed/dilated (anticholinergic or structural lesion) vs. miosis (opioid)",
"Response to jaw thrust / sternal rub: distinguishes somnolence from paralysis",
"Peripheral nerve stimulator: TOF ratio — rules out residual NMB",
"Airway/respiratory: rate, pattern, tidal volume",
"Temperature: core temp (oesophageal / nasopharyngeal)",
"Cardiovascular: BP, HR (haemodynamic instability clues)",
],
{ y: 1.2, h: 5.8, fz: 15, leftTitle: "History", rightTitle: "Examination" }
);
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 15 – INVESTIGATIONS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Investigations", true);
const invData = [
{ test: "Bedside Glucose (POC BSL)", when: "Immediately", why: "Hypoglycaemia — most rapidly reversible metabolic cause" },
{ test: "Arterial Blood Gas", when: "Immediately", why: "PaO₂, PaCO₂, pH, lactate, HCO₃, base excess; hypoxia/CO₂ retention" },
{ test: "Serum Electrolytes", when: "Immediate", why: "Na⁺, K⁺, Mg²⁺, Ca²⁺ — TURP syndrome (hyponatraemia)" },
{ test: "Peripheral Nerve Stimulator (TOF)", when: "Immediate", why: "Residual NMB diagnosis — TOF ratio <0.9" },
{ test: "Core Temperature", when: "Immediate", why: "Hypothermia — treat before attributing to drugs" },
{ test: "Processed EEG / BIS", when: "As available", why: "Residual volatile/IV agent; NB: ischaemia also lowers BIS" },
{ test: "End-tidal Agent Concentration", when: "As available", why: "Confirms residual inhalational agent" },
{ test: "Renal/Liver Function Tests", when: "Urgent", why: "Uraemia, hepatic encephalopathy, drug accumulation" },
{ test: "Thyroid Function / Cortisol", when: "Urgent", why: "Myxoedema, adrenal insufficiency" },
{ test: "CT Brain (non-contrast)", when: "If unresponsive\n>30 min", why: "CVA, intracranial haematoma, cerebral oedema" },
{ test: "EEG", when: "If neurological", why: "Non-convulsive status epilepticus" },
{ test: "CO-oximetry / COHb", when: "If suspected", why: "Carbon monoxide poisoning" },
];
const colXx = [0.3, 3.6, 6.5, 9.0];
const colWw = [3.2, 2.7, 4.3];
const hdrs = ["Investigation", "When", "Purpose"];
hdrs.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: colXx[i], y: 1.2, w: colWw[i], h: 0.4, fill: { color: C.teal }, line: { color: C.white, width: 0.3 } });
s.addText(h, { x: colXx[i], y: 1.2, w: colWw[i], h: 0.4, fontSize: 13, color: C.white, bold: true, fontFace: "Calibri", align: "center", valign: "middle" });
});
invData.forEach((r, ri) => {
const ry = 1.6 + ri * 0.48;
const bg = ri % 2 === 0 ? C.cream : C.lt_teal;
const data = [r.test, r.when, r.why];
data.forEach((cell, ci) => {
s.addShape(pres.shapes.RECTANGLE, { x: colXx[ci], y: ry, w: colWw[ci], h: 0.48, fill: { color: ci === 0 ? C.navy : bg }, line: { color: C.teal, width: 0.3 } });
s.addText(cell, { x: colXx[ci] + 0.05, y: ry + 0.03, w: colWw[ci] - 0.1, h: 0.42, fontSize: 11.5, fontFace: "Calibri", color: ci === 0 ? C.gold : C.text, bold: ci === 0, valign: "middle" });
});
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 16 – DIAGNOSTIC ALGORITHM
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Diagnostic Algorithm", true);
const steps = [
{ label: "STEP 1", text: "Ensure AIRWAY, BREATHING, CIRCULATION\nO₂ saturation, ETCO₂, BP, HR", color: C.red },
{ label: "STEP 2", text: "CHECK: Bedside glucose, SpO₂, ETCO₂, core temperature\nTreat: Hypoglycaemia / Hypoxia / Hypercarbia / Hypothermia", color: C.orange },
{ label: "STEP 3", text: "NERVE STIMULATOR: TOF ratio\nIf <0.9 → Sugammadex or Neostigmine", color: C.teal },
{ label: "STEP 4", text: "RESIDUAL DRUG EFFECT\nConsider: Naloxone (opioid) / Flumazenil (BZD) / Physostigmine (anticholinergic)", color: C.navy },
{ label: "STEP 5", text: "METABOLIC WORKUP\nABG, electrolytes, LFT, RFT, TFT, ABG\nTreat identified abnormality", color: C.muted },
{ label: "STEP 6", text: "CT BRAIN / EEG if still unresponsive\nNeurological consultation — CVA, NCSE, PRES, raised ICP", color: C.red },
];
steps.forEach((step, i) => {
const row = Math.floor(i / 3);
const col = i % 3;
const bx = 0.3 + col * 4.35;
const by = 1.3 + row * 2.9;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: bx, y: by, w: 4.1, h: 2.65, fill: { color: step.color }, line: { color: step.color }, rectRadius: 0.12 });
s.addShape(pres.shapes.RECTANGLE, { x: bx, y: by, w: 4.1, h: 0.52, fill: { color: C.gold }, line: { color: C.gold } });
s.addText(step.label, { x: bx, y: by, w: 4.1, h: 0.52, fontSize: 16, fontFace: "Calibri", color: C.navy, bold: true, align: "center", valign: "middle" });
s.addText(step.text, { x: bx + 0.1, y: by + 0.55, w: 3.9, h: 2.0, fontSize: 13, fontFace: "Calibri", color: C.white, align: "center", valign: "top" });
// Arrow between steps in same row
if (col < 2) {
s.addShape(pres.shapes.RECTANGLE, { x: bx + 4.1, y: by + 1.1, w: 0.25, h: 0.06, fill: { color: C.teal }, line: { color: C.teal } });
}
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 17 – SECTION: MANAGEMENT
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionHeader(s, "MANAGEMENT", "Treatment & Reversal Strategies");
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 18 – REVERSAL AGENTS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Pharmacological Reversal Agents", true);
// Table
const revData = [
{ drug: "Naloxone", target: "Opioid receptor (µ, κ, δ)", dose: "40–80 µg IV increments q2–3 min (max 400 µg); titrate to effect", caution: "Short half-life (30–60 min); re-narcotisation possible; avoid in opioid dependence" },
{ drug: "Flumazenil", target: "GABA-A / Benzodiazepine receptor", dose: "0.2 mg IV q1 min (max 1 mg)", caution: "Seizures in BZD-dependent patients; short duration; may need infusion" },
{ drug: "Physostigmine", target: "Anticholinesterase — central", dose: "0.5–2 mg IV slowly", caution: "Bradycardia, bronchospasm; indicated for central anticholinergic syndrome" },
{ drug: "Sugammadex", target: "Steroidal NMBAs (rocuronium > vecuronium)", dose: "2 mg/kg (moderate block); 4 mg/kg (deep block); 16 mg/kg (succinylcholine emergency)", caution: "Recurrence of block if insufficient dose; avoid in severe renal failure" },
{ drug: "Neostigmine", target: "Acetylcholinesterase inhibitor", dose: "50 µg/kg IV (with glycopyrrolate 10 µg/kg)", caution: "Only for partial block (TOF ≥2 twitches); can worsen deep block" },
{ drug: "Dextrose 50%", target: "Hypoglycaemia", dose: "50 mL IV → repeat BSL in 5–10 min", caution: "Monitor for rebound hypoglycaemia; may need infusion" },
{ drug: "Hydrocortisone", target: "Adrenal insufficiency", dose: "100 mg IV stat", caution: "Hyperglycaemia; cover for 24–48 h" },
{ drug: "Thiamine", target: "Wernicke's encephalopathy", dose: "200–500 mg IV (before glucose)", caution: "Give BEFORE glucose in alcoholics / malnourished patients" },
];
const cX = [0.3, 2.5, 5.3, 8.4];
const cW = [2.1, 2.7, 3.05, 4.7];
const hdrs2 = ["Drug", "Target", "Dose", "Cautions / Notes"];
hdrs2.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: cX[i], y: 1.2, w: cW[i], h: 0.4, fill: { color: C.teal }, line: { color: C.white, width: 0.3 } });
s.addText(h, { x: cX[i], y: 1.2, w: cW[i], h: 0.4, fontSize: 12, color: C.white, bold: true, fontFace: "Calibri", align: "center", valign: "middle" });
});
revData.forEach((r, ri) => {
const ry = 1.6 + ri * 0.71;
const bg = ri % 2 === 0 ? C.cream : C.lt_teal;
const data = [r.drug, r.target, r.dose, r.caution];
data.forEach((cell, ci) => {
s.addShape(pres.shapes.RECTANGLE, { x: cX[ci], y: ry, w: cW[ci], h: 0.71, fill: { color: ci === 0 ? C.navy : bg }, line: { color: C.teal, width: 0.3 } });
s.addText(cell, { x: cX[ci] + 0.05, y: ry + 0.04, w: cW[ci] - 0.1, h: 0.63, fontSize: 11, fontFace: "Calibri", color: ci === 0 ? C.gold : C.text, bold: ci === 0, valign: "middle" });
});
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 19 – GENERAL MANAGEMENT PRINCIPLES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "General Management Principles", true);
twoCol(s,
[
"Maintain airway: continue mechanical ventilation until recovery confirmed",
"Supplemental high-flow O₂",
"Continuous monitoring: SpO₂, ETCO₂, ECG, BP, temperature",
"Treat hypothermia actively: forced-air warming, warm IV fluids",
"Correct metabolic abnormalities: glucose, electrolytes, ABG",
"Do NOT remove airway until TOF >0.9 and adequate tidal volumes",
"Position: semi-recumbent, lateral position if vomiting risk",
],
[
"Stimulation: physical (jaw thrust, sternal rub) — may aid recovery",
"Reversal of drug effects: naloxone, flumazenil, physostigmine — use judiciously",
"Avoid re-sedation: careful titration, avoid unnecessary sedatives in PACU",
"IV access: ensure patent wide-bore cannula",
"Bloods: ABG, BSL, electrolytes, LFT, RFT — directed by clinical suspicion",
"Neurological consult + CT brain if no improvement within 30 min of reversal",
"Document: time, drugs used, responses, interventions clearly",
],
{ y: 1.2, h: 5.9, fz: 14.5, leftTitle: "Immediate (First 5 Minutes)", rightTitle: "Ongoing Assessment" }
);
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 20 – PREVENTION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Prevention of Delayed Recovery", true);
const left = [
"Preoperative assessment: identify at-risk patients (elderly, obese, hepatic/renal disease)",
"Reduce long-acting premedication (avoid long-acting BZDs)",
"Use multimodal anaesthesia: minimise individual drug doses",
"Short-acting agents preferred: propofol TIVA, desflurane, remifentanil",
"Target-controlled infusions (TCI): pharmacokinetic precision, avoid overdose",
"Titrate NMB: use nerve stimulator throughout; avoid overdosage",
"Intraoperative glucose monitoring in at-risk diabetics",
];
const right = [
"Maintain normothermia: active warming throughout procedure",
"Maintain normoxia and normocarbia: avoid hyperventilation (PaCO₂ 35–45 mmHg)",
"Maintain haemodynamic stability: cerebral perfusion pressure ≥50 mmHg",
"Depth of anaesthesia monitoring: BIS 40–60 targets — reduce risk of overdose",
"Objective TOF monitoring before reversal — sugammadex if deep block",
"Optimise preoperative comorbidities: thyroid, diabetes, hepatic/renal function",
"Pharmacy reconciliation: avoid drug interactions that augment sedation",
];
twoCol(s, left, right, { y: 1.2, h: 5.9, fz: 14, leftTitle: "Pharmacological Strategies", rightTitle: "Monitoring & Physiological Goals" });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 21 – SPECIAL SCENARIOS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Special Scenarios", true);
const scenarios = [
{ title: "TURP Syndrome", content: "Massive absorption of hypotonic irrigant (glycine) → dilutional hyponatraemia, haemolysis, visual disturbance, encephalopathy. Tx: 3% NaCl, frusemide, correct slowly" },
{ title: "Pseudocholinesterase\nDeficiency", content: "Prolonged apnoea + paralysis after succinylcholine. Dibucaine number: <20 (atypical homozygous), 20–60 (heterozygous). Management: ventilate, sedate, await metabolism (~hours)" },
{ title: "Malignant Hyperthermia", content: "Delayed recovery may include prolonged somnolence. Primary presentation: ↑ ETCO₂, rigidity, hyperthermia. Tx: Dantrolene 2.5 mg/kg IV; cooling; bicarbonate" },
{ title: "Central Anticholinergic\nSyndrome", content: "Scopolamine, atropine, antihistamines → delirium, dry/hot/flushed skin, mydriasis. Reversed by physostigmine 0.5–2 mg IV. Differentiate from other causes." },
{ title: "Serotonin Syndrome", content: "SSRIs + opioids (fentanyl, tramadol) → hyperthermia, clonus, agitation, hyperreflexia. Tx: cyproheptadine, sedation, supportive; not reversed by naloxone" },
{ title: "Post-craniotomy", content: "Early neurological exam critical. Delayed emergence may signal raised ICP, haematoma, stroke. Balanced emergence (avoid straining/coughing). Urgent CT if concern." },
];
const xs2 = [0.3, 4.6, 8.9];
const ys2 = [1.25, 4.1];
scenarios.forEach((sc, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = xs2[col];
const y = ys2[row];
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w: 4.1, h: 2.6, fill: { color: C.lt_teal, transparency: 30 }, line: { color: C.teal, width: 1 }, rectRadius: 0.1 });
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 4.1, h: 0.5, fill: { color: C.teal }, line: { color: C.teal } });
s.addText(sc.title, { x: x + 0.1, y, w: 3.9, h: 0.5, fontSize: 14, fontFace: "Calibri", color: C.gold, bold: true, align: "center", valign: "middle" });
s.addText(sc.content, { x: x + 0.1, y: y + 0.55, w: 3.9, h: 1.95, fontSize: 12, fontFace: "Calibri", color: C.text, valign: "top" });
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 22 – CLINICAL CASE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Clinical Case Scenario", true);
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y: 1.25, w: 12.5, h: 1.6, fill: { color: C.navy }, line: { color: C.teal }, rectRadius: 0.1 });
s.addText([
{ text: "Scenario: ", options: { bold: true, color: C.gold, fontSize: 15 } },
{ text: "A 72-year-old man with T2DM, CKD stage 3, on metformin and oxycodone undergoes robot-assisted laparoscopic prostatectomy under TIVA (propofol + remifentanil) with rocuronium. 20 minutes after end of surgery, the patient remains intubated with no spontaneous respiration or response to commands.", options: { color: C.white, fontSize: 14 } }
], { x: 0.6, y: 1.3, w: 12.1, h: 1.45, valign: "middle" });
twoCol(s,
[
"STEP 1: Ensure patent airway, maintain ventilation",
"STEP 2: Check SpO₂, ETCO₂, BP, HR → ABG",
"STEP 3: Bedside glucose → found 38 mg/dL → 50 mL 50% dextrose IV",
"STEP 4: Core temp → 34.5°C → active warming commenced",
"STEP 5: Nerve stimulator → TOF 0/4 → sugammadex 200 mg IV",
"STEP 6: 5 minutes later patient opens eyes to command",
],
[
"Key learning: Multiple simultaneous causes likely",
"Hypoglycaemia (DM + NPO + renal OHA accumulation)",
"Hypothermia (long laparoscopic case, CO₂ insufflation)",
"Residual NMB (rocuronium, incomplete reversal, renal impairment)",
"CKD impairs renal clearance of oxycodone metabolites",
"Always treat ALL identified reversible causes simultaneously",
],
{ y: 2.9, h: 4.3, fz: 14, leftTitle: "Systematic Approach", rightTitle: "Analysis" }
);
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 23 – HIGH-YIELD EXAM POINTS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "High-Yield Exam Points", true);
const points = [
"Definition: No consciousness/response within 30–60 min after GA ends",
"Most common cause: Residual drug effect (opioids, volatile agents, IV hypnotics)",
"Most rapidly reversible: Hypoglycaemia — ALWAYS check bedside glucose first",
"TOF ratio <0.9 = residual NMB; Sugammadex preferred over neostigmine for deep block",
"Hypothermia potentiates ALL anaesthetic agents — treat before reversing drugs",
"Fixed, dilated pupils without anticholinergics → structural brain lesion until proven otherwise",
"Jaw thrust response → somnolence vs. no response → paralysis (use nerve stimulator)",
"Naloxone: 40 µg increments; watch for re-narcotisation (short half-life)",
"Flumazenil: risk of seizures in BZD-dependent patients",
"Physostigmine: only reversal for central anticholinergic syndrome",
"Pseudocholinesterase deficiency → prolonged succinylcholine (hours); sedate and ventilate",
"NCSE: EEG diagnosis; no motor signs; emergency EEG if unexplained coma",
"Serotonin syndrome ≠ opioid overdose; naloxone will not reverse it",
"BIS low value ≠ only deep anaesthesia — cerebral ischaemia causes same pattern",
];
bullets(s, points, { y: 1.2, fontSize: 13.5 });
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 24 – SUMMARY TABLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s, "Summary: Causes, Diagnosis & Treatment at a Glance", true);
const rows = [
["Category", "Cause", "Key Diagnosis", "Treatment"],
["Drug Effect", "Volatile agent excess", "ET agent concentration, BIS", "Allow elimination, ↑ ventilation"],
["Drug Effect", "Opioid excess", "Pin-point pupils, bradypnoea", "Naloxone 40 µg IV increments"],
["Drug Effect", "Benzodiazepine", "History, sedation", "Flumazenil 0.2 mg IV"],
["Drug Effect", "Anticholinergic", "Dry, flushed, mydriasis", "Physostigmine 1 mg IV"],
["NMB Residual", "Rocuronium/vecuronium", "TOF <0.9, weak grip", "Sugammadex 2–4 mg/kg"],
["Metabolic", "Hypoglycaemia", "BSL <40 mg/dL", "50% Dextrose 50 mL IV"],
["Metabolic", "Hyponatraemia", "Serum Na⁺ <120", "3% NaCl cautiously"],
["Temperature", "Hypothermia", "Core temp <35°C", "Forced-air warming"],
["Neurological", "CVA/Haematoma", "Focal signs, no response", "CT brain, neurosurgical consult"],
["Neurological", "NCSE", "No motor signs, coma", "EEG, levetiracetam / benzodiazepine"],
];
const colXs = [0.3, 2.2, 4.7, 7.7];
const colWs = [1.8, 2.4, 3.0, 5.3];
rows.forEach((row, ri) => {
const ry = 1.2 + ri * 0.56;
const isHeader = ri === 0;
row.forEach((cell, ci) => {
const bg = isHeader ? C.teal : (ri % 2 === 0 ? C.cream : C.lt_teal);
const fc = isHeader ? C.white : (ci === 0 ? C.teal : C.text);
s.addShape(pres.shapes.RECTANGLE, { x: colXs[ci], y: ry, w: colWs[ci], h: 0.56, fill: { color: bg }, line: { color: C.teal, width: 0.4 } });
s.addText(cell, { x: colXs[ci] + 0.05, y: ry + 0.05, w: colWs[ci] - 0.1, h: 0.46, fontSize: isHeader ? 13 : 12.5, fontFace: "Calibri", color: fc, bold: isHeader || ci === 0, valign: "middle" });
});
});
footerBar(s, "Delayed Recovery from Anaesthesia | MD Anaesthesia Exam");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 25 – THANK YOU
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addNavyBg(s);
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 2.8, w: 13.3, h: 1.9, fill: { color: C.teal, transparency: 25 }, line: { color: C.teal } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 2.8, w: 13.3, h: 0.06, fill: { color: C.gold }, line: { color: C.gold } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 4.64, w: 13.3, h: 0.06, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("Thank You", { x: 0.5, y: 3.0, w: 12.3, h: 1.1, fontSize: 52, fontFace: "Calibri", color: C.white, bold: true, align: "center" });
s.addText([
{ text: "Key Message: ", options: { bold: true, color: C.gold, fontSize: 18 } },
{ text: "Delayed recovery is multifactorial — systematic evaluation, simultaneous treatment of all reversible causes, and airway security are paramount.", options: { color: C.lt_teal, fontSize: 17 } }
], { x: 1, y: 5.0, w: 11.3, h: 1.2, align: "center" });
s.addText("Sources: Morgan & Mikhail's Clinical Anaesthesiology 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e",
{ x: 0.5, y: 6.7, w: 12.3, h: 0.4, fontSize: 11, fontFace: "Calibri", color: C.muted, align: "center" });
}
// ── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/delayed-recovery-anaesthesia/Delayed_Recovery_Anaesthesia_MD.pptx" })
.then(() => console.log("✅ PPTX written successfully"))
.catch(err => { console.error("❌ Error:", err); process.exit(1); });
cd /home/daytona/workspace/delayed-recovery-anaesthesia && node build.js 2>&1
ls -lh /home/daytona/workspace/delayed-recovery-anaesthesia/
Delayed Recovery Anaesthesia MD
Presentation · PPTX
| # | Slide |
|---|---|
| 1 | Title Slide — bold navy/teal/gold design |
| 2 | Learning Objectives |
| 3 | Definition & Clinical Significance (incidence, medicolegal context) |
| 4 | Section break: Causes |
| 5 | The 4 M's Mnemonic — Medications, Metabolic, Mechanical/Neurological, Miscellaneous (4-column visual) |
| 6 | Inhalational Agents — Blood:Gas partition coefficient comparison table |
| 7 | IV Agents & Opioids — propofol, thiopentone, ketamine, BZDs, opioid accumulation |
| 8 | Residual Neuromuscular Blockade — TOF monitoring, sugammadex vs neostigmine |
| 9 | Metabolic & Endocrine Causes — full table (7 causes with management) |
| 10 | Hypothermia — mechanisms + prevention strategies |
| 11 | Neurological & Cerebral Causes — CVA, NCSE, serotonin syndrome, PRES |
| 12 | Pre-existing Patient Factors — elderly, renal/hepatic disease, pseudocholinesterase deficiency |
| 13 | Section break: Diagnosis |
| 14 | Clinical Evaluation — history & examination |
| 15 | Investigations — tiered urgency table (12 investigations) |
| 16 | Diagnostic Algorithm — 6-step visual flowchart |
| 17 | Section break: Management |
| 18 | Reversal Agents Table — naloxone, flumazenil, physostigmine, sugammadex, neostigmine, dextrose, hydrocortisone, thiamine |
| 19 | General Management Principles |
| 20 | Prevention Strategies |
| 21 | Special Scenarios — TURP, pseudocholinesterase, MH, anticholinergic syndrome, serotonin syndrome, post-craniotomy |
| 22 | Clinical Case (72-yr T2DM/CKD prostatectomy case — multi-cause worked example) |
| 23 | High-Yield Exam Points (14 key facts) |
| 24 | Summary Table — causes/diagnosis/treatment at a glance |
| 25 | Thank You |
Laryngoscope blades , type ,PARTS WITH LINE DIAGRAM IN MD ANESTHESIA ppt
laryngoscope blade Macintosh Miller parts diagram
laryngoscope blade parts labeled diagram flange spatula web heel
~/laryngoscope-blades-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE";
pres.title = "Laryngoscope Blades – Types & Parts";
pres.author = "MD Anaesthesia";
// ── COLOUR PALETTE ──────────────────────────────────────────────────────────
const C = {
navy: "0D2B4E",
teal: "0A7075",
gold: "E8A838",
cream: "F5F1EA",
white: "FFFFFF",
text: "1A1A2E",
muted: "4A6080",
lt_teal:"C8E6EA",
steel: "7A9BB5",
red: "C0392B",
green: "1A7A44",
orange: "D05A10",
silver: "B0BEC5",
darkgray:"374151",
};
// ── HELPERS ──────────────────────────────────────────────────────────────────
function addNavyBg(s){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.navy},line:{color:C.navy}}); }
function addCreamBg(s){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.cream},line:{color:C.cream}}); }
function slideTitle(s, title){
s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:1.0,fill:{color:C.teal},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:0.28,h:1.0,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:1.0,w:13.3,h:0.06,fill:{color:C.gold},line:{color:C.gold}});
s.addText(title,{x:0.45,y:0,w:12.6,h:1.0,fontSize:26,fontFace:"Calibri",color:C.white,bold:true,valign:"middle",margin:0});
}
function footer(s){
s.addShape(pres.shapes.RECTANGLE,{x:0,y:7.18,w:13.3,h:0.32,fill:{color:C.navy},line:{color:C.navy}});
s.addText("Laryngoscope Blades – Types & Parts | MD Anaesthesia",{x:0.3,y:7.18,w:12.7,h:0.32,fontSize:9,fontFace:"Calibri",color:C.lt_teal,align:"right",valign:"middle"});
}
function sectionBreak(s, title, sub){
addNavyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.9,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.97,w:13.3,h:1.6,fill:{color:C.teal,transparency:20},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.57,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText(title,{x:0.5,y:2.97,w:12.3,h:1.1,fontSize:38,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
if(sub) s.addText(sub,{x:0.5,y:4.15,w:12.3,h:0.5,fontSize:19,fontFace:"Calibri",color:C.lt_teal,italic:true,align:"center"});
footer(s);
}
function bullets(s, items, opts){
const{x=0.45,y=1.2,w=12.4,h=5.9,fz=16,color=C.text}=opts||{};
const arr=items.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<items.length-1,fontSize:fz,fontFace:"Calibri",color}}));
s.addText(arr,{x,y,w,h,valign:"top"});
}
function twoCol(s,left,right,opts){
const{y=1.2,h=5.9,fz=15,ltTitle="",rtTitle="",ltColor=C.text,rtColor=C.text}=opts||{};
s.addShape(pres.shapes.LINE,{x:6.78,y:1.15,w:0,h:6.15,line:{color:C.teal,width:1.5}});
if(ltTitle) s.addText(ltTitle,{x:0.45,y,w:6.0,h:0.38,fontSize:14,fontFace:"Calibri",color:C.teal,bold:true,underline:true});
if(rtTitle) s.addText(rtTitle,{x:7.05,y,w:6.0,h:0.38,fontSize:14,fontFace:"Calibri",color:C.teal,bold:true,underline:true});
const yt=(ltTitle||rtTitle)?y+0.42:y;
const ht=(ltTitle||rtTitle)?h-0.42:h;
const la=left.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<left.length-1,fontSize:fz,fontFace:"Calibri",color:ltColor}}));
const ra=right.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<right.length-1,fontSize:fz,fontFace:"Calibri",color:rtColor}}));
s.addText(la,{x:0.45,y:yt,w:6.0,h:ht,valign:"top"});
s.addText(ra,{x:7.05,y:yt,w:6.0,h:ht,valign:"top"});
}
// ════════════════════════════════════════════════════════════════════════════
// HELPER: Draw Macintosh blade (curved) as SVG-style lines
// ════════════════════════════════════════════════════════════════════════════
function drawMacintoshBlade(s, ox, oy, sc){
// sc = scale factor (1 = full size)
// Blade is drawn as a series of shapes simulating the curved Macintosh blade
const W = 4.5 * sc;
const H = 2.2 * sc;
// Main spatula (curved body) — approximated with a thick rounded shape
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{
x: ox, y: oy + 0.5*sc, w: W * 0.85, h: 0.28*sc,
fill:{color:C.silver}, line:{color:C.darkgray, width:1.2}, rectRadius:0.05
});
// Tip — small rounded end
s.addShape(pres.shapes.OVAL,{
x: ox + W*0.82, y: oy + 0.48*sc, w: 0.28*sc, h: 0.32*sc,
fill:{color:C.silver}, line:{color:C.darkgray,width:1}
});
// Flange (left side vertical wall)
s.addShape(pres.shapes.RECTANGLE,{
x: ox, y: oy + 0.05*sc, w: W*0.78, h: 0.48*sc,
fill:{color:"C8D0D8"}, line:{color:C.darkgray,width:0.8}
});
// Web (cross-piece connecting flange to spatula near heel)
s.addShape(pres.shapes.RECTANGLE,{
x: ox + 0.05*sc, y: oy + 0.05*sc, w: 0.18*sc, h: 0.75*sc,
fill:{color:C.silver}, line:{color:C.darkgray,width:0.8}
});
// Hook-on fitting / heel
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{
x: ox - 0.15*sc, y: oy, w: 0.55*sc, h: 1.0*sc,
fill:{color:C.darkgray}, line:{color:"222222",width:1}, rectRadius:0.06
});
// Light source window on flange
s.addShape(pres.shapes.OVAL,{
x: ox + 0.5*sc, y: oy + 0.1*sc, w: 0.25*sc, h: 0.22*sc,
fill:{color:"FFFDE7"}, line:{color:C.gold,width:1}
});
// Light bulb representation
s.addShape(pres.shapes.OVAL,{
x: ox + 0.55*sc, y: oy + 0.12*sc, w: 0.14*sc, h: 0.14*sc,
fill:{color:C.gold}, line:{color:C.gold,width:0.5}
});
}
// ════════════════════════════════════════════════════════════════════════════
// HELPER: Draw Miller blade (straight)
// ════════════════════════════════════════════════════════════════════════════
function drawMillerBlade(s, ox, oy, sc){
const W = 4.5 * sc;
// Spatula (straight, narrow)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{
x: ox, y: oy + 0.6*sc, w: W*0.88, h: 0.2*sc,
fill:{color:C.silver}, line:{color:C.darkgray,width:1.2}, rectRadius:0.04
});
// Tip
s.addShape(pres.shapes.OVAL,{
x: ox+W*0.85, y: oy+0.55*sc, w:0.22*sc, h:0.3*sc,
fill:{color:C.silver}, line:{color:C.darkgray,width:1}
});
// Flange (narrow, straight)
s.addShape(pres.shapes.RECTANGLE,{
x: ox, y: oy+0.1*sc, w: W*0.82, h: 0.5*sc,
fill:{color:"D0D8DF"}, line:{color:C.darkgray,width:0.8}
});
// Web
s.addShape(pres.shapes.RECTANGLE,{
x: ox+0.05*sc, y: oy+0.1*sc, w: 0.16*sc, h: 0.7*sc,
fill:{color:C.silver}, line:{color:C.darkgray,width:0.8}
});
// Hook-on fitting / heel
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{
x: ox-0.15*sc, y: oy+0.05*sc, w:0.5*sc, h:0.9*sc,
fill:{color:C.darkgray}, line:{color:"222222",width:1}, rectRadius:0.06
});
// Light bulb at tip (Miller has light near tip)
s.addShape(pres.shapes.OVAL,{
x: ox+W*0.7, y: oy+0.12*sc, w:0.22*sc, h:0.22*sc,
fill:{color:"FFFDE7"}, line:{color:C.gold,width:1}
});
s.addShape(pres.shapes.OVAL,{
x: ox+W*0.72, y: oy+0.15*sc, w:0.12*sc, h:0.12*sc,
fill:{color:C.gold}, line:{color:C.gold,width:0.5}
});
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addNavyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:9.8,y:0,w:3.5,h:7.5,fill:{color:C.teal,transparency:78},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.6,w:13.3,h:1.9,fill:{color:C.teal,transparency:65},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.6,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("LARYNGOSCOPE",{x:0.5,y:0.7,w:9.5,h:1.0,fontSize:52,fontFace:"Calibri",color:C.gold,bold:true});
s.addText("BLADES",{x:0.5,y:1.65,w:9.5,h:0.9,fontSize:52,fontFace:"Calibri",color:C.white,bold:true});
s.addShape(pres.shapes.RECTANGLE,{x:0.5,y:2.7,w:4.0,h:0.06,fill:{color:C.gold},line:{color:C.gold}});
s.addText([
{text:"Types, Parts & Line Diagrams\n",options:{fontSize:22,bold:true,color:C.lt_teal,breakLine:true}},
{text:"MD Anaesthesia Exam Preparation",options:{fontSize:19,color:C.white}},
],{x:0.5,y:2.9,w:9.2,h:1.5});
s.addText([
{text:"Sources: ",options:{bold:true,color:C.gold,fontSize:11}},
{text:"Morgan & Mikhail 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e | Roberts & Hedges Emergency 8e",options:{color:C.lt_teal,fontSize:11}},
],{x:0.5,y:5.8,w:12.5,h:0.5});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 – LEARNING OBJECTIVES
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Learning Objectives");
bullets(s,[
"Identify and label all parts of a standard laryngoscope (handle + blade)",
"Distinguish between curved (Macintosh) and straight (Miller) blade designs",
"Describe size nomenclature and selection criteria for each blade type",
"List other blade types: Wisconsin, Wis-Hipple, Seward, Oxford, Bullard, McCoy, Polio",
"Understand the mechanism of epiglottis displacement for each design",
"Compare advantages and disadvantages of curved vs. straight blades",
"Appreciate illumination systems: conventional bulb vs. fibre-optic",
"Recognise special blades for difficult airway and paediatric use",
"Know the role of video laryngoscopy as an extension of blade design",
],{y:1.15,fz:17});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 – OVERVIEW OF LARYNGOSCOPE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"The Laryngoscope: Overview");
// Key definition box
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.4,y:1.2,w:12.5,h:0.85,fill:{color:C.teal},line:{color:C.teal},rectRadius:0.08});
s.addText([
{text:"Definition: ",options:{bold:true,color:C.gold,fontSize:16}},
{text:"An instrument used to visualise the laryngeal inlet (glottis) for tracheal intubation. Consists of a HANDLE and a BLADE, which lock together via a hook-on (Engström–MacIntosh) fitting at 90°.",options:{color:C.white,fontSize:16}},
],{x:0.6,y:1.25,w:12.1,h:0.72,valign:"middle"});
twoCol(s,
[
"Handle: Houses the power source (batteries) and connects to blade via hook-on fitting",
"Blade: Inserted into mouth; carries flange, spatula, web, heel, and light source",
"Two broad designs: Curved (Macintosh-type) and Straight (Miller-type)",
"Material: Traditionally stainless steel; now also disposable plastic",
"Illumination: Conventional bulb (on blade) or fibre-optic (fibre bundle in blade, light source in handle)",
"Sizes: Numbered 0–4 (paediatric to large adult); size selection critical for laryngeal view",
],
[
"Direct laryngoscopy (DL): Operator's eye, laryngoscope and larynx must be in direct line of sight",
"Video laryngoscopy (VL): Camera at blade tip relays image to screen — does not require direct line",
"Sniffing position required for DL: aligns oral, pharyngeal, laryngeal axes",
"Hold: Left hand (always); blade enters right side of mouth; tongue swept left",
"Lift direction: Anterior at 45° — NOT levering on teeth",
"Hook-on fitting (ISO standard) ensures universal blade-handle compatibility",
],
{y:2.2,h:5.0,fz:14.5,ltTitle:"Components",rtTitle:"Key Principles of Use"}
);
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 – SECTION BREAK
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionBreak(s,"PARTS OF A LARYNGOSCOPE","Detailed Anatomy of Handle & Blade");
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 5 – PARTS: HANDLE (with diagram)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Parts of the Laryngoscope: Handle");
// ─── HANDLE DIAGRAM (left side) ────────────────────────────────────────
const hx = 1.0, hy = 1.4;
const HW = 1.1, HH = 4.8;
// Main handle body (cylindrical – represented as rounded rectangle)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{
x:hx, y:hy, w:HW, h:HH,
fill:{color:C.silver}, line:{color:C.darkgray,width:1.5}, rectRadius:0.15
});
// Knurling (cross-hatched grip) — horizontal lines
for(let i=0;i<12;i++){
s.addShape(pres.shapes.RECTANGLE,{
x:hx+0.05, y:hy+0.4+i*0.32, w:HW-0.1, h:0.08,
fill:{color:"98A8B8"}, line:{color:"98A8B8",width:0}
});
}
// Battery compartment band
s.addShape(pres.shapes.RECTANGLE,{
x:hx, y:hy+3.9, w:HW, h:0.35,
fill:{color:C.darkgray}, line:{color:C.darkgray}
});
s.addText("Batteries",{x:hx+0.05,y:hy+3.91,w:HW-0.1,h:0.32,fontSize:8,fontFace:"Calibri",color:C.white,align:"center",valign:"middle"});
// Hook-on fitting at top
s.addShape(pres.shapes.RECTANGLE,{
x:hx-0.12, y:hy, w:HW+0.24, h:0.42,
fill:{color:"455A64"}, line:{color:C.darkgray,width:1}
});
s.addText("Hook-on fitting",{x:hx-0.2,y:hy-0.35,w:1.6,h:0.32,fontSize:10,fontFace:"Calibri",color:C.teal,bold:true});
s.addShape(pres.shapes.LINE,{x:hx+0.42,y:hy,w:0,h:0.35,line:{color:C.teal,width:1}});
// Contact pin (electrical)
s.addShape(pres.shapes.OVAL,{
x:hx+0.4, y:hy+0.38, w:0.28, h:0.28,
fill:{color:C.gold}, line:{color:"8B6914",width:1}
});
s.addText("Contact pin\n(electrical)",{x:hx+HW+0.12,y:hy+0.26,w:1.8,h:0.5,fontSize:10,fontFace:"Calibri",color:C.teal,bold:true});
s.addShape(pres.shapes.LINE,{x:hx+HW,y:hy+0.52,w:0.15,h:0,line:{color:C.teal,width:1}});
// On/off mechanism label
s.addShape(pres.shapes.LINE,{x:hx+HW,y:hy+1.4,w:0.15,h:0,line:{color:C.teal,width:1}});
s.addText("Knurled grip\n(anti-slip)",{x:hx+HW+0.12,y:hy+1.15,w:1.8,h:0.5,fontSize:10,fontFace:"Calibri",color:C.teal,bold:true});
s.addShape(pres.shapes.LINE,{x:hx+HW,y:hy+3.4,w:0.15,h:0,line:{color:C.teal,width:1}});
s.addText("Battery\ncompartment",{x:hx+HW+0.12,y:hy+3.25,w:1.8,h:0.5,fontSize:10,fontFace:"Calibri",color:C.teal,bold:true});
// Left labels
s.addShape(pres.shapes.LINE,{x:hx,y:hy+1.8,w:-0.15,h:0,line:{color:C.orange,width:1}});
s.addText("Fibre-optic\nbundle\n(in some models)",{x:hx-2.2,y:hy+1.55,w:2.0,h:0.7,fontSize:10,fontFace:"Calibri",color:C.orange,align:"right",bold:true});
s.addShape(pres.shapes.LINE,{x:hx,y:hy+2.5,w:-0.15,h:0,line:{color:C.orange,width:1}});
s.addText("Standard:\nAA/C batteries\n(2-3 cells)",{x:hx-2.2,y:hy+2.2,w:2.0,h:0.7,fontSize:10,fontFace:"Calibri",color:C.orange,align:"right"});
// Title of diagram
s.addText("HANDLE",{x:hx-0.2,y:hy-0.6,w:1.5,h:0.38,fontSize:15,fontFace:"Calibri",color:C.navy,bold:true,align:"center"});
// ─── RIGHT SIDE: HANDLE PARTS TABLE ────────────────────────────────────
const parts = [
{part:"Hook-on Fitting (Heel)", desc:"Locks blade to handle at 90° via Engström–MacIntosh (ISO) universal fitting. Connects electrical circuit when blade engages."},
{part:"Contact Pin / Electrical Connector", desc:"Transfers current from battery to light source in blade. In fibre-optic: transmits light from handle-mounted bulb."},
{part:"Knurled Grip Body", desc:"Cross-hatched cylindrical body for secure grip; prevents slipping during laryngoscopy."},
{part:"Battery Housing", desc:"Contains 2–3 AA or C-size batteries. Some models rechargeable. Power source for conventional bulb."},
{part:"Fibre-optic Bundle (optional)", desc:"In fibre-optic handles: high-intensity bulb in handle; glass fibre bundle transmits light to blade tip. Superior illumination."},
{part:"Handle Sizes", desc:"Small (paediatric), medium (standard adult), large (obese/bariatric). Multiple manufacturers offer varying lengths."},
];
const tx=4.5, tw=8.5;
s.addShape(pres.shapes.RECTANGLE,{x:tx,y:1.15,w:tw,h:0.42,fill:{color:C.teal},line:{color:C.teal}});
s.addText("PART",{x:tx,y:1.15,w:3.2,h:0.42,fontSize:13,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
s.addText("DESCRIPTION",{x:tx+3.2,y:1.15,w:tw-3.2,h:0.42,fontSize:13,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
parts.forEach((p,i)=>{
const ry=1.57+i*0.92;
const bg=i%2===0?C.cream:C.lt_teal;
s.addShape(pres.shapes.RECTANGLE,{x:tx,y:ry,w:3.2,h:0.92,fill:{color:C.navy},line:{color:C.teal,width:0.5}});
s.addText(p.part,{x:tx+0.05,y:ry+0.05,w:3.1,h:0.82,fontSize:12,fontFace:"Calibri",color:C.gold,bold:true,valign:"middle"});
s.addShape(pres.shapes.RECTANGLE,{x:tx+3.2,y:ry,w:tw-3.2,h:0.92,fill:{color:bg},line:{color:C.teal,width:0.5}});
s.addText(p.desc,{x:tx+3.3,y:ry+0.05,w:tw-3.3,h:0.82,fontSize:12,fontFace:"Calibri",color:C.text,valign:"middle"});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 6 – PARTS OF THE BLADE (Line Diagram with labels)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Parts of the Blade – Labelled Line Diagram");
// ─── MACINTOSH BLADE DIAGRAM (large, centre-left) ───────────────────────
const ox=1.0, oy=1.7, sc=1.6;
// === FLANGE (vertical left wall) ===
s.addShape(pres.shapes.RECTANGLE,{x:ox+0.5,y:oy,w:6.5,h:0.72*sc,fill:{color:"D0D8DF"},line:{color:C.darkgray,width:1.2}});
// === SPATULA (bottom floor of blade) ===
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+0.5,y:oy+0.72*sc,w:6.5,h:0.35*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1.2},rectRadius:0.08});
// === WEB (end cross-piece, right) ===
s.addShape(pres.shapes.RECTANGLE,{x:ox+6.6,y:oy,w:0.38,h:1.1*sc,fill:{color:"8090A0"},line:{color:C.darkgray,width:1}});
// === TIP ===
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+6.95,y:oy+0.18*sc,w:0.42,h:0.85*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1},rectRadius:0.08});
// === HEEL / hook-on fitting ===
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox,y:oy-0.08,w:0.55,h:1.25*sc,fill:{color:C.darkgray},line:{color:"111111",width:1.5},rectRadius:0.08});
// === LIGHT SOURCE (window on flange near heel) ===
s.addShape(pres.shapes.OVAL,{x:ox+1.2,y:oy+0.08*sc,w:0.5,h:0.45,fill:{color:"FFFDE7"},line:{color:C.gold,width:1.5}});
s.addShape(pres.shapes.OVAL,{x:ox+1.32,y:oy+0.15*sc,w:0.24,h:0.22,fill:{color:C.gold},line:{color:C.gold,width:0.5}});
// === CURVED LOWER SURFACE (simulated curve) – extra shape ===
// Add a thin curved accent below spatula
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+0.5,y:oy+1.05*sc,w:6.5,h:0.12,fill:{color:"8090A0"},line:{color:C.darkgray,width:0.5},rectRadius:0.06});
// === LABELS WITH POINTER LINES ===
const lbl=(s,txt,lx,ly,lw,la,dir,bld)=>{
// dir: 'up','down','left','right'
const lc = C.teal;
s.addText(txt,{x:lx,y:ly,w:lw,h:0.38,fontSize:12.5,fontFace:"Calibri",color:bld?C.navy:C.teal,bold:bld||false,align:la||"left"});
};
// FLANGE label (top, pointing down)
s.addShape(pres.shapes.LINE,{x:ox+2.5,y:oy-0.6,w:0,h:0.6,line:{color:C.teal,width:1.2}});
s.addText("FLANGE",{x:ox+1.6,y:oy-0.95,w:1.9,h:0.35,fontSize:13,fontFace:"Calibri",color:C.navy,bold:true,align:"center"});
s.addText("(left side vertical wall —\ndeflects tongue to left)",{x:ox+0.95,y:oy-0.58,w:3.0,h:0.55,fontSize:10.5,fontFace:"Calibri",color:C.muted,align:"center"});
// SPATULA label (bottom right)
s.addShape(pres.shapes.LINE,{x:ox+4.0,y:oy+1.08*sc+0.13,w:0,h:0.5,line:{color:C.orange,width:1.2}});
s.addText("SPATULA",{x:ox+3.0,y:oy+1.08*sc+0.65,w:2.0,h:0.32,fontSize:13,fontFace:"Calibri",color:C.orange,bold:true,align:"center"});
s.addText("(floor of blade — tongue\nrests here during scope)",{x:ox+2.3,y:oy+1.08*sc+0.95,w:3.4,h:0.5,fontSize:10.5,fontFace:"Calibri",color:C.muted,align:"center"});
// WEB label
s.addShape(pres.shapes.LINE,{x:ox+6.79,y:oy+0.35,w:0.5,h:0,line:{color:C.red,width:1.2}});
s.addText("WEB",{x:ox+7.35,y:oy+0.2,w:1.5,h:0.32,fontSize:13,fontFace:"Calibri",color:C.red,bold:true});
s.addText("(cross strut —\nstrengthens blade)",{x:ox+7.3,y:oy+0.5,w:1.8,h:0.5,fontSize:10.5,fontFace:"Calibri",color:C.muted});
// TIP label
s.addShape(pres.shapes.LINE,{x:ox+7.37,y:oy+0.7,w:0.4,h:0,line:{color:C.green,width:1.2}});
s.addText("TIP",{x:ox+7.8,y:oy+0.57,w:1.2,h:0.3,fontSize:13,fontFace:"Calibri",color:C.green,bold:true});
s.addText("(curved: vallecula;\nstraight: under epiglottis)",{x:ox+7.3,y:oy+0.88,w:2.5,h:0.5,fontSize:10,fontFace:"Calibri",color:C.muted});
// HEEL / Hook-on label
s.addShape(pres.shapes.LINE,{x:ox,y:oy+0.6,w:-0.5,h:0,line:{color:C.darkgray,width:1.2}});
s.addText("HEEL /\nHook-on Fitting",{x:0.0,y:oy+0.38,w:1.7,h:0.52,fontSize:12,fontFace:"Calibri",color:C.navy,bold:true,align:"right"});
// LIGHT SOURCE label
s.addShape(pres.shapes.LINE,{x:ox+1.45,y:oy-0.0,w:0,h:-0.55,line:{color:C.gold,width:1.2}});
s.addText("LIGHT\nSOURCE",{x:ox+0.75,y:oy-0.9,w:1.4,h:0.5,fontSize:12,fontFace:"Calibri",color:C.gold,bold:true,align:"center"});
// Diagram title
s.addText("Macintosh Curved Blade (size 3) — Labelled Diagram",{x:ox,y:oy-1.2,w:7.5,h:0.35,fontSize:13,fontFace:"Calibri",color:C.navy,bold:true,italic:true,align:"center"});
// ─── RIGHT SIDE: PARTS TABLE ─────────────────────────────────────────────
const parts=[
{p:"Heel",d:"Proximal end; connects to handle via hook-on fitting; part of electrical circuit"},
{p:"Web",d:"Transverse strut joining flange to spatula near heel; structural rigidity"},
{p:"Flange",d:"Lateral vertical wall on left; sweeps tongue to left; prevents obstruction of view"},
{p:"Spatula",d:"The working flat surface of the blade; tongue rests on it; defines 'curved' vs 'straight'"},
{p:"Tip",d:"Distal end; curved → vallecula; straight → under epiglottis (lifts it directly)"},
{p:"Light source",d:"Conventional: bulb on blade flange. Fibre-optic: light pipe from handle. Must be ≥3000 lux"},
];
const tx=10.0;
s.addShape(pres.shapes.RECTANGLE,{x:tx,y:1.15,w:3.1,h:0.42,fill:{color:C.navy},line:{color:C.teal}});
s.addText("BLADE PARTS",{x:tx,y:1.15,w:3.1,h:0.42,fontSize:13,color:C.gold,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
parts.forEach((p,i)=>{
const ry=1.57+i*0.98;
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:tx,y:ry,w:3.1,h:0.96,fill:{color:i%2===0?C.navy:"1A3A5C"},line:{color:C.teal,width:0.5},rectRadius:0.06});
s.addText(p.p,{x:tx+0.08,y:ry+0.04,w:3.0,h:0.34,fontSize:13,fontFace:"Calibri",color:C.gold,bold:true,valign:"middle"});
s.addText(p.d,{x:tx+0.08,y:ry+0.36,w:2.95,h:0.56,fontSize:11.5,fontFace:"Calibri",color:C.white,valign:"top"});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 7 – SECTION BREAK: TYPES OF BLADES
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionBreak(s,"TYPES OF LARYNGOSCOPE BLADES","Curved, Straight & Specialised");
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 8 – MACINTOSH BLADE (with labelled diagram)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Type 1: Macintosh Blade (Curved Blade)");
// ─── DIAGRAM ────────────────────────────────────────────────────────────
const ox=0.8, oy=1.6, sc=1.4;
// Handle (small, just hook portion)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox,y:oy,w:0.55,h:1.1*sc,fill:{color:C.darkgray},line:{color:"111111",width:1.5},rectRadius:0.1});
// Flange
s.addShape(pres.shapes.RECTANGLE,{x:ox+0.5,y:oy,w:5.8,h:0.68*sc,fill:{color:"CDD5DC"},line:{color:C.darkgray,width:1.2}});
// Spatula (curved — simulated by making it slightly deeper on right)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+0.5,y:oy+0.68*sc,w:5.8,h:0.3*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1.2},rectRadius:0.06});
// Web
s.addShape(pres.shapes.RECTANGLE,{x:ox+6.0,y:oy,w:0.32,h:1.0*sc,fill:{color:"8090A0"},line:{color:C.darkgray,width:1}});
// Tip (curved, slightly upturned)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+6.28,y:oy+0.14*sc,w:0.38,h:0.75*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1},rectRadius:0.1});
// Light bulb
s.addShape(pres.shapes.OVAL,{x:ox+1.1,y:oy+0.06*sc,w:0.46,h:0.42,fill:{color:"FFFDE7"},line:{color:C.gold,width:1.5}});
s.addShape(pres.shapes.OVAL,{x:ox+1.22,y:oy+0.13*sc,w:0.22,h:0.2,fill:{color:C.gold},line:{color:C.gold,width:0.5}});
// Curvature indicator arrow
s.addShape(pres.shapes.LINE,{x:ox+3.5,y:oy+1.0*sc,w:0.8,h:0.45,line:{color:C.teal,width:1.5,dashType:"sysDash"}});
s.addText("Gentle\ncurve",{x:ox+4.2,y:oy+1.3*sc,w:1.2,h:0.4,fontSize:11,fontFace:"Calibri",color:C.teal,italic:true});
// Tip in vallecula annotation
s.addShape(pres.shapes.LINE,{x:ox+6.3,y:oy+0.5*sc,w:0.5,h:-0.5,line:{color:C.green,width:1.2}});
s.addText("Tip → Vallecula\n(indirect epiglottis lift)",{x:ox+6.8,y:oy-0.3,w:2.2,h:0.55,fontSize:11,fontFace:"Calibri",color:C.green,bold:true});
// LABEL: FLANGE
s.addShape(pres.shapes.LINE,{x:ox+3.0,y:oy,w:0,h:-0.4,line:{color:C.navy,width:1}});
s.addText("FLANGE",{x:ox+2.0,y:oy-0.75,w:2.0,h:0.32,fontSize:12,fontFace:"Calibri",color:C.navy,bold:true,align:"center"});
// LABEL: SPATULA
s.addShape(pres.shapes.LINE,{x:ox+3.5,y:oy+0.98*sc,w:0,h:0.4,line:{color:C.orange,width:1}});
s.addText("SPATULA",{x:ox+2.5,y:oy+1.38*sc,w:2.0,h:0.32,fontSize:12,fontFace:"Calibri",color:C.orange,bold:true,align:"center"});
// ─── RIGHT PANEL: MACINTOSH DETAILS ──────────────────────────────────
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:9.4,y:1.15,w:3.7,h:1.0,fill:{color:C.teal},line:{color:C.teal},rectRadius:0.08});
s.addText("Designed by: Sir Robert Macintosh, Oxford, 1943",{x:9.5,y:1.2,w:3.5,h:0.9,fontSize:13,fontFace:"Calibri",color:C.white,bold:false,valign:"middle",align:"center"});
const details=[
{k:"Design",v:"Curved spatula — gently curved along its length"},
{k:"Tip placement",v:"Vallecula (space between base of tongue and epiglottis)"},
{k:"Mechanism",v:"Tenses hyoepiglottic ligament → indirectly lifts epiglottis"},
{k:"Sizes",v:"1 (infant), 2 (child/small adult), 3 (standard adult), 4 (large adult)"},
{k:"Light position",v:"Near the heel, on upper surface of flange"},
{k:"Advantages",v:"More room for ETT passage; better in large mouths; less dental trauma; preferred for uncomplicated adult intubation"},
{k:"Disadvantages",v:"May not visualise anterior larynx; less effective with long floppy epiglottis; obese patients need size 4"},
];
details.forEach((d,i)=>{
const ry=2.2+i*0.73;
const bg=i%2===0?C.cream:C.lt_teal;
s.addShape(pres.shapes.RECTANGLE,{x:9.4,y:ry,w:3.7,h:0.73,fill:{color:bg},line:{color:C.teal,width:0.5}});
s.addText([
{text:d.k+": ",options:{bold:true,color:C.teal,fontSize:12}},
{text:d.v,options:{color:C.text,fontSize:11.5}},
],{x:9.48,y:ry+0.04,w:3.56,h:0.65,valign:"middle",fontFace:"Calibri"});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 9 – MILLER BLADE (with labelled diagram)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Type 2: Miller Blade (Straight Blade)");
// ─── DIAGRAM ─────────────────────────────────────────────────────────────
const ox=0.8, oy=1.8, sc=1.3;
// Handle hook
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox,y:oy+0.1,w:0.5,h:0.95*sc,fill:{color:C.darkgray},line:{color:"111111",width:1.5},rectRadius:0.08});
// Flange (narrow, straight)
s.addShape(pres.shapes.RECTANGLE,{x:ox+0.45,y:oy,w:6.0,h:0.52*sc,fill:{color:"CDD5DC"},line:{color:C.darkgray,width:1.2}});
// Spatula (straight, flat, narrow)
s.addShape(pres.shapes.RECTANGLE,{x:ox+0.45,y:oy+0.52*sc,w:6.0,h:0.22*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1.2}});
// Web
s.addShape(pres.shapes.RECTANGLE,{x:ox+6.2,y:oy,w:0.28,h:0.75*sc,fill:{color:"8090A0"},line:{color:C.darkgray,width:1}});
// Tip (straight, slightly rounded)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+6.45,y:oy+0.05*sc,w:0.34,h:0.65*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1},rectRadius:0.08});
// Light bulb near TIP (Miller has light at tip)
s.addShape(pres.shapes.OVAL,{x:ox+5.3,y:oy+0.04*sc,w:0.44,h:0.38,fill:{color:"FFFDE7"},line:{color:C.gold,width:1.5}});
s.addShape(pres.shapes.OVAL,{x:ox+5.42,y:oy+0.1*sc,w:0.2,h:0.18,fill:{color:C.gold},line:{color:C.gold,width:0.5}});
// Straight indicator
s.addShape(pres.shapes.LINE,{x:ox+0.45,y:oy+0.74*sc+0.15,w:6.0,h:0,line:{color:C.teal,width:1,dashType:"dash"}});
s.addText("Straight axis",{x:ox+2.0,y:oy+0.74*sc+0.18,w:2.5,h:0.3,fontSize:11,fontFace:"Calibri",color:C.teal,italic:true});
// Tip under epiglottis annotation
s.addShape(pres.shapes.LINE,{x:ox+6.45,y:oy+0.3*sc,w:0.5,h:-0.5,line:{color:C.red,width:1.2}});
s.addText("Tip → Under epiglottis\n(DIRECTLY lifts it)",{x:ox+6.95,y:oy-0.3,w:2.3,h:0.55,fontSize:11,fontFace:"Calibri",color:C.red,bold:true});
// Light at tip label
s.addShape(pres.shapes.LINE,{x:ox+5.52,y:oy,w:0,h:-0.4,line:{color:C.gold,width:1}});
s.addText("LIGHT AT TIP\n(Miller characteristic)",{x:ox+4.3,y:oy-0.8,w:2.4,h:0.5,fontSize:11,fontFace:"Calibri",color:C.gold,bold:true,align:"center"});
// FLANGE label
s.addShape(pres.shapes.LINE,{x:ox+2.5,y:oy,w:0,h:-0.38,line:{color:C.navy,width:1}});
s.addText("FLANGE\n(narrower than Mac)",{x:ox+1.2,y:oy-0.75,w:2.6,h:0.45,fontSize:11,fontFace:"Calibri",color:C.navy,bold:true,align:"center"});
// SPATULA label
s.addShape(pres.shapes.LINE,{x:ox+3.5,y:oy+0.74*sc,w:0,h:0.38,line:{color:C.orange,width:1}});
s.addText("SPATULA (flat, straight)",{x:ox+2.0,y:oy+0.74*sc+0.4,w:3.0,h:0.32,fontSize:11,fontFace:"Calibri",color:C.orange,bold:true,align:"center"});
// ─── RIGHT PANEL ──────────────────────────────────────────────────────
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:9.4,y:1.15,w:3.7,h:1.0,fill:{color:C.navy},line:{color:C.teal},rectRadius:0.08});
s.addText("Designed by: Robert Miller, 1941",{x:9.5,y:1.2,w:3.5,h:0.9,fontSize:13,fontFace:"Calibri",color:C.gold,bold:true,valign:"middle",align:"center"});
const dets=[
{k:"Design",v:"Straight spatula; entire length is a flat platform"},
{k:"Tip placement",v:"Directly UNDER the epiglottis (not in vallecula)"},
{k:"Mechanism",v:"DIRECTLY compresses epiglottis against tongue base"},
{k:"Sizes",v:"0 (premature), 1 (infant), 2 (child/small adult), 3 (adult), 4 (large adult)"},
{k:"Light position",v:"Near the TIP of the blade (key distinguishing feature)"},
{k:"Advantages",v:"Better for anterior larynx, floppy epiglottis, infants (preferred in neonates), small mandibular space"},
{k:"Disadvantages",v:"Less tongue control; risk of dental damage (prominent upper teeth); risk of laryngospasm (stimulates SLN under epiglottis); ET tube passage more difficult"},
];
dets.forEach((d,i)=>{
const ry=2.2+i*0.73;
const bg=i%2===0?C.cream:C.lt_teal;
s.addShape(pres.shapes.RECTANGLE,{x:9.4,y:ry,w:3.7,h:0.73,fill:{color:bg},line:{color:C.teal,width:0.5}});
s.addText([
{text:d.k+": ",options:{bold:true,color:C.teal,fontSize:12}},
{text:d.v,options:{color:C.text,fontSize:11.5}},
],{x:9.48,y:ry+0.04,w:3.56,h:0.65,valign:"middle",fontFace:"Calibri"});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 10 – MACINTOSH vs MILLER SIDE-BY-SIDE COMPARISON
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Macintosh vs Miller: Head-to-Head Comparison");
// Two mini diagrams
// Mac
const mo=0.5, my=1.4, ms=0.85;
s.addShape(pres.shapes.RECTANGLE,{x:mo,y:my-0.1,w:0.45,h:0.9*ms,fill:{color:C.darkgray},line:{color:"111111",width:1.2}});
s.addShape(pres.shapes.RECTANGLE,{x:mo+0.42,y:my,w:3.5,h:0.62*ms,fill:{color:"CDD5DC"},line:{color:C.darkgray,width:1}});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:mo+0.42,y:my+0.62*ms,w:3.5,h:0.28*ms,fill:{color:C.silver},line:{color:C.darkgray,width:1},rectRadius:0.06});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:mo+3.85,y:my+0.1*ms,w:0.32,h:0.68*ms,fill:{color:C.silver},line:{color:C.darkgray,width:1},rectRadius:0.06});
s.addShape(pres.shapes.OVAL,{x:mo+1.0,y:my+0.05*ms,w:0.32,h:0.28,fill:{color:C.gold},line:{color:C.gold,width:1}});
s.addText("MACINTOSH (curved)",{x:mo,y:my-0.42,w:4.2,h:0.35,fontSize:13,fontFace:"Calibri",color:C.teal,bold:true,align:"center"});
s.addText("Tip → VALLECULA",{x:mo+3.0,y:my,w:2.0,h:0.32,fontSize:10,fontFace:"Calibri",color:C.green,bold:true});
// Miller
const lo=0.5, ly=3.2, ls=0.85;
s.addShape(pres.shapes.RECTANGLE,{x:lo,y:ly,w:0.42,h:0.78*ls,fill:{color:C.darkgray},line:{color:"111111",width:1.2}});
s.addShape(pres.shapes.RECTANGLE,{x:lo+0.39,y:ly,w:3.6,h:0.48*ls,fill:{color:"CDD5DC"},line:{color:C.darkgray,width:1}});
s.addShape(pres.shapes.RECTANGLE,{x:lo+0.39,y:ly+0.48*ls,w:3.6,h:0.2*ls,fill:{color:C.silver},line:{color:C.darkgray,width:1}});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:lo+3.92,y:ly+0.04*ls,w:0.3,h:0.6*ls,fill:{color:C.silver},line:{color:C.darkgray,width:1},rectRadius:0.06});
s.addShape(pres.shapes.OVAL,{x:lo+3.0,y:ly+0.04*ls,w:0.32,h:0.28,fill:{color:C.gold},line:{color:C.gold,width:1}});
s.addText("MILLER (straight)",{x:lo,y:ly-0.4,w:4.2,h:0.35,fontSize:13,fontFace:"Calibri",color:C.orange,bold:true,align:"center"});
s.addText("Tip → UNDER EPIGLOTTIS",{x:lo+2.5,y:ly+0.02,w:2.5,h:0.32,fontSize:10,fontFace:"Calibri",color:C.red,bold:true});
// Comparison table
const rows=[
["Feature","Macintosh (Curved)","Miller (Straight)"],
["Tip placement","Vallecula (indirect)","Under epiglottis (direct)"],
["Epiglottis handling","Indirect via hyoepiglottic ligament","Direct compression against tongue"],
["Light position","Near heel (flange)","Near TIP"],
["Tongue control","Better (wide flange)","Less effective (narrow flange)"],
["ETT passage","Easier (more room)","Slightly harder"],
["Preferred patients","Uncomplicated adult intubation","Paediatrics, anterior larynx, long epiglottis"],
["Sizes","0–4","0–4"],
["Dental trauma risk","Lower","Higher (prominent upper teeth)"],
["Laryngospasm risk","Lower","Higher (stimulates SLN under epiglottis)"],
["Difficult airway","Good if limited mouth opening","Good for small mandibular space"],
];
const cx=[4.8,7.2,10.5], cw=[2.35,3.25,2.7];
rows.forEach((row,ri)=>{
const ry=1.15+ri*0.57;
const isH=ri===0;
row.forEach((cell,ci)=>{
const bg=isH?C.teal:(ri%2===0?C.cream:C.lt_teal);
const fc=isH?C.white:(ci===0?C.navy:C.text);
s.addShape(pres.shapes.RECTANGLE,{x:cx[ci],y:ry,w:cw[ci],h:0.57,fill:{color:bg},line:{color:C.teal,width:0.4}});
s.addText(cell,{x:cx[ci]+0.05,y:ry+0.04,w:cw[ci]-0.1,h:0.49,fontSize:isH?12:11.5,fontFace:"Calibri",color:fc,bold:isH||(ci===0&&!isH),valign:"middle"});
});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 11 – OTHER BLADE TYPES
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Other Laryngoscope Blade Types");
const blades=[
{name:"Wisconsin",type:"Straight",use:"Paediatric (premature/neonate)",note:"Wider spatula, pronounced flange; good tongue control in infants; sizes 0, 1"},
{name:"Wis-Hipple",type:"Straight (modified)",use:"Paediatric (1.5 years)",note:"Cross between Wisconsin & Miller; flatter angle; commonly used in paediatric anaesthesia"},
{name:"Seward",type:"Straight",use:"Infants/small children",note:"Tall flange, straight blade; good for small mouth"},
{name:"Oxford",type:"Straight (infant)",use:"Neonates",note:"Short, straight; optimal for restricted neonatal airway"},
{name:"McCoy (Flexiblade)",type:"Curved (hinged tip)",use:"Difficult airway, C-spine",note:"Lever-controlled hinged tip on Macintosh-type blade; lifts epiglottis with less force; reduces Cormack-Lehane grade by one in many cases"},
{name:"Polio blade",type:"Curved (obtuse angle)",use:"Restricted mouth opening, obesity, iron lung",note:"Blade set at obtuse angle to handle (135° vs normal 90°); used in barrel-chested, pregnant, or severely restricted patients"},
{name:"Left-handed blades",type:"Any (mirror image)",use:"Left-hand laryngoscopists",note:"Flange on right side; handle works in right hand; rarely used"},
{name:"Bullard",type:"Angulated/indirect",use:"Difficult airway",note:"Rigid fibre-optic laryngoscope; highly angulated blade; provides view without direct line of sight; forerunner of VL"},
{name:"Fink",type:"Straight (curved tip)",use:"Adult difficult airway",note:"Straight blade with angled tip; intermediate between Mac and Miller"},
{name:"Robertshaw",type:"Straight",use:"Adults",note:"Flattened, wider spatula variant of straight blade; similar to Wisconsin but adult sizes"},
];
const cx=[0.3,2.3,4.2,6.1,9.1], cw=[1.95,1.85,1.85,2.95,4.05];
const hdrs=["Blade","Type","Patient","Key Use","Key Features"];
hdrs.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cx[i],y:1.15,w:cw[i],h:0.42,fill:{color:C.teal},line:{color:C.white,width:0.4}});
s.addText(h,{x:cx[i],y:1.15,w:cw[i],h:0.42,fontSize:12,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
blades.forEach((b,i)=>{
const ry=1.57+i*0.59;
const bg=i%2===0?C.cream:C.lt_teal;
const data=[b.name,b.type,b.use,b.use,b.note];
// col 0: name; col 1: type; col 2+3: use; col 4: note
[[b.name,C.navy,C.gold,true],[b.type,bg,C.text,false],[b.use,bg,C.text,false],[b.use,bg,C.text,false],[b.note,bg,C.text,false]].forEach(([text,bgc,fc,bold],ci)=>{
if(ci===3) return; // skip duplicate
const actualCi=ci>2?ci+1:ci;
if(actualCi>4) return;
const actualText=ci===0?b.name:ci===1?b.type:ci===2?b.use:b.note;
const actualCx=ci===0?cx[0]:ci===1?cx[1]:ci===2?cx[2]:ci===3?cx[3]:cx[4];
const actualCw=ci===0?cw[0]:ci===1?cw[1]:ci===2?cw[2]+cw[3]:cw[4];
s.addShape(pres.shapes.RECTANGLE,{x:actualCx,y:ry,w:actualCw,h:0.59,fill:{color:ci===0?C.navy:bg},line:{color:C.teal,width:0.4}});
s.addText(actualText,{x:actualCx+0.05,y:ry+0.04,w:actualCw-0.1,h:0.51,fontSize:11.5,fontFace:"Calibri",color:ci===0?C.gold:C.text,bold:ci===0,valign:"middle"});
});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 12 – McCOY BLADE (special diagram)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"McCoy (Flexiblade) – Hinged Tip Blade");
// Diagram left side
const ox=0.5, oy=1.6, sc=1.4;
// Main blade body (Macintosh shape)
s.addShape(pres.shapes.RECTANGLE,{x:ox+0.45,y:oy,w:5.2,h:0.65*sc,fill:{color:"CDD5DC"},line:{color:C.darkgray,width:1.2}});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+0.45,y:oy+0.65*sc,w:5.2,h:0.27*sc,fill:{color:C.silver},line:{color:C.darkgray,width:1.2},rectRadius:0.05});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox,y:oy,w:0.5,h:1.0*sc,fill:{color:C.darkgray},line:{color:"111111",width:1.4},rectRadius:0.08});
// HINGED TIP (separate, angled upward)
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+5.45,y:oy-0.35,w:0.35,h:0.75*sc,fill:{color:C.teal},line:{color:C.teal,width:1},rectRadius:0.07});
// Lever on blade
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:ox+1.5,y:oy-0.4,w:1.2,h:0.35,fill:{color:C.orange},line:{color:C.orange},rectRadius:0.06});
s.addText("LEVER",{x:ox+1.5,y:oy-0.4,w:1.2,h:0.35,fontSize:11,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
// Light bulb
s.addShape(pres.shapes.OVAL,{x:ox+1.0,y:oy+0.06*sc,w:0.42,h:0.36,fill:{color:C.gold},line:{color:C.gold,width:1}});
// Hinge point indicator
s.addShape(pres.shapes.OVAL,{x:ox+5.35,y:oy+0.2*sc,w:0.22,h:0.22,fill:{color:C.red},line:{color:C.red,width:1}});
s.addText("HINGE",{x:ox+5.6,y:oy+0.12*sc,w:1.0,h:0.3,fontSize:11,fontFace:"Calibri",color:C.red,bold:true});
// Annotation: tip elevation angle
s.addShape(pres.shapes.LINE,{x:ox+5.45,y:oy-0.1,w:-0.5,h:-0.5,line:{color:C.teal,width:1,dashType:"dash"}});
s.addText("Tip elevates\n70° when lever\nengaged",{x:ox+3.8,y:oy-1.1,w:2.0,h:0.65,fontSize:11,fontFace:"Calibri",color:C.teal,bold:true});
// Lever function arrow
s.addShape(pres.shapes.LINE,{x:ox+1.5,y:oy-0.22,w:0.6,h:0.22,line:{color:C.orange,width:1,dashType:"dash"}});
// ─── RIGHT PANEL ──────────────────────────────────────────────────────────
const points=[
"Based on standard Macintosh blade design",
"UNIQUE FEATURE: Hinged tip controlled by lever on handle",
"Lever squeezed → tip elevates up to 70°",
"Tip actively lifts epiglottis WITHOUT forward wrist thrust",
"Reduces force on upper incisor/teeth — critical in C-spine injury",
"Improves Cormack-Lehane grade: Gr III → Gr I or II in many patients",
"Useful in restricted mouth opening, cervical spine immobility",
"Available in sizes 3 and 4 (adult only)",
"Technique: Begin as standard Mac; engage lever just as tip reaches vallecula",
"Disadvantage: Lever mechanism may fail; limited paediatric sizes",
];
s.addText("McCoy Blade – Key Points",{x:7.2,y:1.15,w:5.9,h:0.42,fontSize:15,fontFace:"Calibri",color:C.teal,bold:true});
const arr=points.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<points.length-1,fontSize:14,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:7.2,y:1.65,w:5.9,h:5.7,valign:"top"});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 13 – BLADE SIZE GUIDE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Blade Size Selection Guide");
const sizes=[
{sz:"0",mac:"✗",mil:"✓ Premature neonate",wis:"✓ Premature infant",ox:"✓ Neonate",pat:"Premature / neonate"},
{sz:"1",mac:"✓ Infant/neonate",mil:"✓ Infant",wis:"✓ Infant/toddler",ox:"–",pat:"Infant (0–1 year)"},
{sz:"2",mac:"✓ Child/small adult",mil:"✓ Child/small adult",wis:"✓ Child",ox:"–",pat:"Child (1–8 years)"},
{sz:"3",mac:"✓ Standard adult",mil:"✓ Adult",wis:"–",ox:"–",pat:"Average adult"},
{sz:"4",mac:"✓ Large adult",mil:"✓ Large adult",wis:"–",ox:"–",pat:"Large/obese adult"},
];
const cx=[0.3,1.5,4.0,6.7,9.4,11.8];
const cw=[1.15,2.45,2.65,2.65,2.35,1.45];
const hdrs=["Size","Macintosh","Miller","Wisconsin","Oxford","Patient"];
hdrs.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cx[i],y:1.15,w:cw[i],h:0.45,fill:{color:C.teal},line:{color:C.white,width:0.5}});
s.addText(h,{x:cx[i],y:1.15,w:cw[i],h:0.45,fontSize:13,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
sizes.forEach((row,i)=>{
const ry=1.6+i*0.88;
const bg=i%2===0?C.cream:C.lt_teal;
const data=[row.sz,row.mac,row.mil,row.wis,row.ox,row.pat];
data.forEach((cell,ci)=>{
const isSz=ci===0;
s.addShape(pres.shapes.RECTANGLE,{x:cx[ci],y:ry,w:cw[ci],h:0.88,fill:{color:isSz?C.navy:bg},line:{color:C.teal,width:0.5}});
s.addText(cell,{x:cx[ci]+0.05,y:ry+0.05,w:cw[ci]-0.1,h:0.78,fontSize:isSz?22:13,fontFace:"Calibri",color:isSz?C.gold:C.text,bold:isSz,align:isSz?"center":"left",valign:"middle"});
});
});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y:6.1,w:12.7,h:0.75,fill:{color:C.teal,transparency:20},line:{color:C.teal},rectRadius:0.08});
s.addText([
{text:"Mnemonics: ",options:{bold:true,color:C.gold,fontSize:14}},
{text:"For Mac: 1=infant, 2=child, 3=adult, 4=large adult | Miller: 0=premature, 1=neonate, 2=child, 3=standard adult | When in doubt for adults: start with Mac 3",options:{color:C.white,fontSize:13}},
],{x:0.5,y:6.15,w:12.3,h:0.65,valign:"middle"});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 14 – ILLUMINATION SYSTEMS
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Illumination Systems in Laryngoscopes");
twoCol(s,
[
"CONVENTIONAL BULB SYSTEM",
"Small tungsten/halogen bulb mounted on blade flange (near heel for Mac; near tip for Miller)",
"Electrical circuit: batteries → handle contact → hook-on fitting → blade contact → bulb",
"When blade locks to handle at 90° → circuit completes → bulb illuminates",
"Advantages: Simple, robust, inexpensive, widely available",
"Disadvantages: Bulb can fail; heat generated; condensation may obscure; limited brightness",
"Bulb types: Incandescent (warm white), LED (now standard — brighter, longer life, less heat)",
"Quality matters! Levitan survey: only 24% of ED blades gave adequate brightness",
"A-Mac (American design) < E-Mac (English) < G-Mac (German) — in terms of brightness",
],
[
"FIBRE-OPTIC (FO) SYSTEM",
"High-intensity halogen/xenon bulb sits in the HANDLE (not on blade)",
"Bundle of glass or polymer optical fibres runs length of blade → tip",
"Light transmitted internally by total internal reflection → superior brightness",
"Advantages: Brighter (≥3000 lux), bulb never fails on blade, no heat on patient, cleaner image",
"Disadvantages: More expensive; fibres can fracture if dropped; not universally compatible",
"Compatibility: Fibre-optic blade requires matching fibre-optic handle",
"ISO 7376 standard: Both conventional and FO hook-on fittings are ISO-standardised",
"LED FO systems: Latest generation — LED in handle + fibre bundle — combines best of both",
],
{y:1.15,h:5.9,fz:13.5,ltTitle:"Conventional Bulb",rtTitle:"Fibre-Optic System"}
);
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 15 – VIDEO LARYNGOSCOPY (extension of blade design)
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Video Laryngoscopy – An Extension of Blade Design");
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.4,y:1.15,w:12.5,h:0.75,fill:{color:C.navy},line:{color:C.teal},rectRadius:0.08});
s.addText("Video laryngoscopes (VL) use a camera/optics at the blade tip to relay the laryngeal image to a screen — eliminating the need for a direct line-of-sight and overcoming many causes of difficult laryngoscopy.",
{x:0.6,y:1.2,w:12.1,h:0.65,fontSize:14,fontFace:"Calibri",color:C.white,valign:"middle"});
const vl=[
{dev:"C-MAC\n(Storz)",blade:"Mac-shaped",feature:"Camera at blade tip; Mac-shaped blade allows both direct AND video view; ideal transition device"},
{dev:"GlideScope\n(Verathon)",blade:"Hyperangulated (60°)",feature:"60° blade angle; excellent view of anterior larynx; needs GlideScope-specific introducer/stylet"},
{dev:"KingVision",blade:"Channelled MAC-type",feature:"Disposable single-use; integrated channel guides ETT; or non-channelled version"},
{dev:"McGrath\nMAC",blade:"Mac-shaped (adjustable)",feature:"Adjustable blade length; portable; screen on device; suits adults and paediatrics"},
{dev:"Airtraq",blade:"Channelled, angulated",feature:"Single-use optical laryngoscope; ETT loaded in channel; no external screen needed"},
{dev:"Bullard",blade:"Rigid fibre-optic",feature:"Highly angulated; original indirect blade; used in difficult airways, limited mouth opening"},
];
const cx2=[0.3,1.85,3.5,7.0];
const cw2=[1.5,1.6,3.45,6.05];
const h2=["Device","Blade Shape","Key Feature","Clinical Notes"];
h2.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cx2[i],y:2.05,w:cw2[i],h:0.42,fill:{color:C.teal},line:{color:C.white,width:0.4}});
s.addText(h,{x:cx2[i],y:2.05,w:cw2[i],h:0.42,fontSize:12,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
vl.forEach((r,i)=>{
const ry=2.47+i*0.82;
const bg=i%2===0?C.cream:C.lt_teal;
const data=[r.dev,r.blade,r.feature,r.feature];
[[r.dev,C.navy,C.gold,true],[r.blade,bg,C.teal,true],[r.feature,bg,C.text,false],[r.feature,bg,C.text,false]].forEach(([text,bgc,fc,bold],ci)=>{
if(ci===3) return;
s.addShape(pres.shapes.RECTANGLE,{x:cx2[ci],y:ry,w:cw2[ci],h:0.82,fill:{color:ci===0?C.navy:bg},line:{color:C.teal,width:0.4}});
s.addText(ci===2?r.feature:text,{x:cx2[ci]+0.05,y:ry+0.05,w:cw2[ci]-0.1,h:0.72,fontSize:ci===0?12:12,fontFace:"Calibri",color:ci===0?C.gold:(ci===1?C.teal:C.text),bold:ci===0||ci===1,valign:"middle"});
});
// Clinical notes col (col 3 = same as feature but wider)
s.addShape(pres.shapes.RECTANGLE,{x:cx2[3],y:ry,w:cw2[3],h:0.82,fill:{color:bg},line:{color:C.teal,width:0.4}});
s.addText(r.feature,{x:cx2[3]+0.05,y:ry+0.05,w:cw2[3]-0.1,h:0.72,fontSize:12,fontFace:"Calibri",color:C.text,valign:"middle"});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 16 – CHOOSING THE RIGHT BLADE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Choosing the Right Blade");
const rows2=[
{sit:"Standard adult intubation (uncomplicated)","blade":"Macintosh #3","reason":"Best tongue control; wide flange; adequate room for ETT passage"},
{sit:"Large/obese adult","blade":"Macintosh #4","reason":"Larger blade needed to visualise larynx in deep oropharynx"},
{sit:"Infant / neonate","blade":"Miller #1 or Wisconsin #1","reason":"Straight blade allows direct epiglottis lift; better view in small mouth"},
{sit:"Premature neonate","blade":"Miller #0 or Oxford #0","reason":"Smallest blade; exact tip control in tiny airway"},
{sit:"Long, floppy epiglottis","blade":"Miller (any size)","reason":"Directly lifts epiglottis that cannot be indirectly elevated by Mac tip"},
{sit:"Anterior larynx (Gr III–IV)","blade":"Miller or McCoy","reason":"Miller tip provides direct lift; McCoy lever elevates without excessive force"},
{sit:"C-spine injury / limited neck movement","blade":"McCoy or Video laryngoscope","reason":"McCoy reduces wrist/neck extension force; VL eliminates direct line-of-sight need"},
{sit:"Difficult airway (predicted)","blade":"Video laryngoscope (GlideScope / C-MAC)","reason":"Improves grade of view; camera bypasses anatomical obstacles"},
{sit:"Restricted mouth opening","blade":"Miller, Polio blade, or Bullard","reason":"Narrower blade profile fits smaller inter-incisor gap"},
{sit:"Limited access (barrel chest, pregnancy)","blade":"Polio blade (obtuse angle handle)","reason":"Blade-handle angle allows laryngoscopy without extending arm over chest"},
];
const cx=[0.3,3.85,6.7]; cw2=[3.5,2.8,6.0];
const hdrs3=["Clinical Situation","Preferred Blade","Rationale"];
hdrs3.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cx[i],y:1.15,w:cw2[i],h:0.42,fill:{color:C.teal},line:{color:C.white,width:0.4}});
s.addText(h,{x:cx[i],y:1.15,w:cw2[i],h:0.42,fontSize:13,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
rows2.forEach((r,i)=>{
const ry=1.57+i*0.58;
const bg=i%2===0?C.cream:C.lt_teal;
[[r.sit,C.navy,C.gold],[r.blade,bg,C.teal],[r.reason,bg,C.text]].forEach(([text,bgc,fc],ci)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cx[ci],y:ry,w:cw2[ci],h:0.58,fill:{color:ci===0?C.navy:bg},line:{color:C.teal,width:0.4}});
s.addText(text,{x:cx[ci]+0.05,y:ry+0.04,w:cw2[ci]-0.1,h:0.5,fontSize:12,fontFace:"Calibri",color:fc,bold:ci===0||ci===1,valign:"middle"});
});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 17 – EXAM HIGH-YIELD POINTS
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"High-Yield Exam Points");
const pts=[
"Macintosh blade invented by Sir Robert Macintosh, Oxford 1943 — curved, tip in vallecula, indirect epiglottis lift",
"Miller blade (1941) — straight, tip under epiglottis, DIRECT lift; LIGHT at TIP (vs Mac: light near heel)",
"Parts of blade: Heel → Web → Flange → Spatula → Tip (proximal to distal)",
"Hook-on fitting (Engström–MacIntosh / ISO standard): blade engages handle at 90° → circuit completes → light on",
"Mac advantage: more room for ETT passage, tongue control; Miller advantage: anterior larynx, floppy epiglottis, infants",
"Miller preferred in ALL paediatric patients and neonates (sizes 0, 1)",
"McCoy blade: Macintosh-type with lever-controlled hinged tip → elevates epiglottis 70° → reduces CL grade",
"Polio blade: obtuse blade-handle angle (135°) for restricted access (barrel chest, pregnancy, obesity)",
"Fibre-optic handle: bulb in handle, fibres transmit light → brighter, bulb never on blade",
"Conventional illumination: bulb on blade flange; Miller: near tip; Macintosh: near heel",
"Laryngoscope held in LEFT hand; blade enters RIGHT side of mouth; tongue swept LEFT by flange",
"Lift at 45° anteriorly — NEVER lever on upper teeth (risk of dental damage)",
"Sniffing position: aligns oral, pharyngeal, laryngeal axes for direct laryngoscopy",
"Video laryngoscopes overcome limitations of direct line-of-sight; C-MAC: direct + video view possible",
];
bullets(s,pts,{y:1.15,fz:14.5});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 18 – SUMMARY DIAGRAM: ALL BLADES AT A GLANCE
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addCreamBg(s);
slideTitle(s,"Summary: All Blade Types at a Glance");
const bladeCards=[
{name:"MACINTOSH",sub:"Curved",col:C.teal,use:"Standard adult intubation",key:"Tip → Vallecula\nLight near heel\nIndirect epiglottis lift"},
{name:"MILLER",sub:"Straight",col:C.navy,use:"Paediatric, anterior larynx",key:"Tip → Under epiglottis\nLight at TIP\nDirect epiglottis lift"},
{name:"McCOY",sub:"Hinged tip",col:C.orange,use:"Difficult airway, C-spine",key:"Lever → tip elevates 70°\nReduces CL grade\nBased on Mac design"},
{name:"POLIO",sub:"Obtuse angle",col:"5C4033",use:"Barrel chest, obesity",key:"135° blade-handle angle\nUnrestricted access\nSame blade, different handle"},
{name:"WISCONSIN",sub:"Straight (paed)",col:C.green,use:"Infants",key:"Wide flange\nGood tongue control\nSizes 0–1"},
{name:"WIS-HIPPLE",sub:"Straight (paed)",col:C.steel,use:"1–3 years",key:"Modified Wisconsin\nCommon in paediatric OT"},
{name:"BULLARD",sub:"Rigid FO angulated",col:"6A1B9A",use:"Difficult/restricted airway",key:"Highly angulated\nFibre-optic view\nNo direct line-of-sight"},
{name:"VIDEO\nLARYNGOSCOPE",sub:"Various shapes",col:C.red,use:"Difficult & routine airway",key:"Camera at tip\nScreen image\nC-MAC, GlideScope, McGrath"},
];
const xs=[0.28,3.6,6.92,10.24];
const ys=[1.2,4.05];
bladeCards.forEach((bc,i)=>{
const col=i%4;
const row=Math.floor(i/4);
const x=xs[col], y=ys[row];
const W=3.1, H=2.65;
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w:W,h:H,fill:{color:bc.col},line:{color:bc.col},rectRadius:0.12});
s.addShape(pres.shapes.RECTANGLE,{x,y,w:W,h:0.52,fill:{color:C.gold},line:{color:C.gold}});
s.addText(bc.name,{x,y,w:W,h:0.52,fontSize:15,fontFace:"Calibri",color:C.navy,bold:true,align:"center",valign:"middle"});
s.addText(bc.sub,{x:x+0.1,y:y+0.56,w:W-0.2,h:0.32,fontSize:12,fontFace:"Calibri",color:C.lt_teal,align:"center",bold:false});
s.addShape(pres.shapes.RECTANGLE,{x:x+0.15,y:y+0.92,w:W-0.3,h:0.02,fill:{color:C.white,transparency:50},line:{color:C.white}});
s.addText([
{text:"Use: ",options:{bold:true,color:C.gold,fontSize:12.5}},
{text:bc.use+"\n",options:{color:C.white,fontSize:12.5,breakLine:true}},
{text:bc.key,options:{color:C.lt_teal,fontSize:12}},
],{x:x+0.12,y:y+0.97,w:W-0.24,h:1.55,valign:"top",fontFace:"Calibri"});
});
footer(s);
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 19 – THANK YOU
// ════════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
addNavyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.85,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.92,w:13.3,h:1.65,fill:{color:C.teal,transparency:25},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.57,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Thank You",{x:0.5,y:3.0,w:12.3,h:1.1,fontSize:52,fontFace:"Calibri",color:C.white,bold:true,align:"center"});
s.addText([
{text:"Key Message: ",options:{bold:true,color:C.gold,fontSize:17}},
{text:"Know your blade anatomy cold — parts, types, sizes, mechanisms. In the exam AND in theatre, blade selection is your first clinical decision in airway management.",options:{color:C.lt_teal,fontSize:16}},
],{x:1,y:4.9,w:11.3,h:1.3,align:"center"});
s.addText("Sources: Morgan & Mikhail 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e | Roberts & Hedges Emergency Medicine 8e",
{x:0.5,y:6.7,w:12.3,h:0.4,fontSize:11,fontFace:"Calibri",color:C.muted,align:"center"});
footer(s);
}
// ─── WRITE ───────────────────────────────────────────────────────────────────
pres.writeFile({fileName:"/home/daytona/workspace/laryngoscope-blades-ppt/Laryngoscope_Blades_MD_Anaesthesia.pptx"})
.then(()=>console.log("✅ PPTX created successfully"))
.catch(e=>{console.error("❌",e);process.exit(1);});
mkdir -p /home/daytona/workspace/laryngoscope-blades-ppt && node /home/daytona/workspace/laryngoscope-blades-ppt/build.js 2>&1
ls -lh /home/daytona/workspace/laryngoscope-blades-ppt/
Laryngoscope Blades MD Anaesthesia
Presentation · PPTX
| # | Slide | Key Content |
|---|---|---|
| 1 | Title Slide | Bold navy/teal/gold design |
| 2 | Learning Objectives | 9 exam-focused objectives |
| 3 | Overview of the Laryngoscope | Handle + blade, key principles, DL vs VL |
| 4 | Section break: Parts | |
| 5 | Parts of the Handle | Line diagram: hook-on fitting, contact pin, knurled grip, battery housing, fibre-optic bundle — all labelled |
| 6 | Parts of the Blade | Large labelled diagram: Heel → Web → Flange → Spatula → Tip → Light source with pointer lines and descriptions |
| 7 | Section break: Types | |
| 8 | Macintosh Blade | Labelled diagram + design history (1943), tip→vallecula, sizes 1–4, advantages/disadvantages |
| 9 | Miller Blade | Labelled diagram + design (1941), tip→under epiglottis, light AT TIP, sizes 0–4 |
| 10 | Macintosh vs Miller | Mini diagrams of both + 11-row comparison table (tip, light position, epiglottis handling, preferred patients…) |
| 11 | Other Blade Types | Wisconsin, Wis-Hipple, Seward, Oxford, McCoy, Polio, Bullard, Fink, Robertshaw, Left-handed |
| 12 | McCoy (Flexiblade) | Diagram with lever + hinged tip annotated; 70° elevation; reduces CL grade |
| 13 | Blade Size Selection | Table: sizes 0–4 across Mac / Miller / Wisconsin / Oxford + patient age group |
| 14 | Illumination Systems | Conventional bulb vs fibre-optic; A-Mac/E-Mac/G-Mac brightness; ISO standard |
| 15 | Video Laryngoscopy | C-MAC, GlideScope, KingVision, McGrath, Airtraq, Bullard — blade types & features |
| 16 | Choosing the Right Blade | 10 clinical scenarios → preferred blade + rationale |
| 17 | High-Yield Exam Points | 14 must-know facts |
| 18 | Summary: All Blades at a Glance | 8-card visual summary grid |
| 19 | Thank You |
Different types of intravenous fluids and indication , contraindication in adult & pediatrics in md Anaesthesia ppt
mkdir -p /home/daytona/workspace/iv-fluids-ppt && echo "ready"
~/iv-fluids-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Intravenous Fluids – Types, Indications & Contraindications";
pres.author = "MD Anaesthesia";
// ── COLOUR PALETTE ────────────────────────────────────────────────────────
const C = {
navy: "0D2B4E",
teal: "0A7075",
gold: "E8A838",
cream: "F5F1EA",
white: "FFFFFF",
text: "1A1A2E",
muted: "4A6080",
lt_teal: "C8E6EA",
red: "B03020",
green: "1A7A44",
orange: "D05A10",
purple: "5C2D8A",
blue: "1A5FA0",
yellow: "D4A017",
lt_blue: "DDEEFF",
lt_green:"D4F0DC",
lt_red: "F5DDDD",
lt_purp: "EDE0F5",
};
// ── HELPERS ──────────────────────────────────────────────────────────────
function navyBg(s){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.navy},line:{color:C.navy}}); }
function creamBg(s){ s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.cream},line:{color:C.cream}}); }
function slideHdr(s, title, sub){
s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:1.05,fill:{color:C.teal},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:0.3,h:1.05,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:1.05,w:13.3,h:0.06,fill:{color:C.gold},line:{color:C.gold}});
s.addText(title,{x:0.45,y:0,w:12.5,h:sub?0.65:1.05,fontSize:sub?21:26,fontFace:"Calibri",color:C.white,bold:true,valign:"middle",margin:0});
if(sub) s.addText(sub,{x:0.45,y:0.62,w:12.5,h:0.42,fontSize:15,fontFace:"Calibri",color:C.lt_teal,valign:"middle",margin:0,italic:true});
}
function foot(s){
s.addShape(pres.shapes.RECTANGLE,{x:0,y:7.2,w:13.3,h:0.3,fill:{color:C.navy},line:{color:C.navy}});
s.addText("IV Fluids – Types, Indications & Contraindications | MD Anaesthesia",{x:0.3,y:7.2,w:12.7,h:0.3,fontSize:8.5,fontFace:"Calibri",color:C.lt_teal,align:"right",valign:"middle"});
}
function secBreak(s, title, sub){
navyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.88,w:13.3,h:0.08,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.96,w:13.3,h:1.65,fill:{color:C.teal,transparency:20},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.61,w:13.3,h:0.08,fill:{color:C.gold},line:{color:C.gold}});
s.addText(title,{x:0.5,y:2.96,w:12.3,h:1.1,fontSize:36,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
if(sub) s.addText(sub,{x:0.5,y:4.15,w:12.3,h:0.5,fontSize:19,fontFace:"Calibri",color:C.lt_teal,italic:true,align:"center"});
foot(s);
}
function bul(s, items, opts){
const{x=0.4,y=1.2,w=12.5,h=5.9,fz=16,color=C.text,bold=false}=opts||{};
const arr=items.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<items.length-1,fontSize:fz,fontFace:"Calibri",color,bold}}));
s.addText(arr,{x,y,w,h,valign:"top"});
}
function twoCol(s,left,right,opts){
const{y=1.15,h=6.0,fz=14.5,ltT="",rtT="",sep=6.75}=opts||{};
s.addShape(pres.shapes.LINE,{x:sep,y:1.1,w:0,h:6.2,line:{color:C.teal,width:1.5}});
const gx=sep+0.28;
if(ltT){s.addShape(pres.shapes.RECTANGLE,{x:0.35,y,w:sep-0.45,h:0.38,fill:{color:C.teal,transparency:20},line:{color:C.teal,width:0}});s.addText(ltT,{x:0.4,y,w:sep-0.5,h:0.38,fontSize:13.5,fontFace:"Calibri",color:C.teal,bold:true});}
if(rtT){s.addShape(pres.shapes.RECTANGLE,{x:gx,y,w:13.3-gx-0.2,h:0.38,fill:{color:C.teal,transparency:20},line:{color:C.teal,width:0}});s.addText(rtT,{x:gx,y,w:13.3-gx-0.2,h:0.38,fontSize:13.5,fontFace:"Calibri",color:C.teal,bold:true});}
const yt=(ltT||rtT)?y+0.42:y, ht=(ltT||rtT)?h-0.42:h;
const la=left.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<left.length-1,fontSize:fz,fontFace:"Calibri",color:C.text}}));
const ra=right.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<right.length-1,fontSize:fz,fontFace:"Calibri",color:C.text}}));
s.addText(la,{x:0.35,y:yt,w:sep-0.45,h:ht,valign:"top"});
s.addText(ra,{x:gx,y:yt,w:13.3-gx-0.2,h:ht,valign:"top"});
}
// Generic fluid detail card (for individual fluid slides)
function fluidCard(s, x, y, w, h, title, titleColor, bgColor, lines, fz){
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h,fill:{color:bgColor},line:{color:titleColor,width:1},rectRadius:0.09});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h:0.46,fill:{color:titleColor},line:{color:titleColor},rectRadius:0.09});
// fix bottom corners of header
s.addShape(pres.shapes.RECTANGLE,{x,y:y+0.22,w,h:0.24,fill:{color:titleColor},line:{color:titleColor}});
s.addText(title,{x:x+0.08,y,w:w-0.16,h:0.46,fontSize:fz||13,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
const arr=lines.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<lines.length-1,fontSize:(fz||13)-1,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:x+0.1,y:y+0.5,w:w-0.2,h:h-0.58,valign:"top"});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
navyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:9.6,y:0,w:3.7,h:7.5,fill:{color:C.teal,transparency:78},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.55,w:13.3,h:1.95,fill:{color:C.teal,transparency:62},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.55,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("INTRAVENOUS",{x:0.5,y:0.65,w:9.3,h:0.95,fontSize:50,fontFace:"Calibri",color:C.gold,bold:true});
s.addText("FLUIDS",{x:0.5,y:1.55,w:9.3,h:0.9,fontSize:50,fontFace:"Calibri",color:C.white,bold:true});
s.addShape(pres.shapes.RECTANGLE,{x:0.5,y:2.6,w:4.5,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText([
{text:"Types, Indications & Contraindications\n",options:{fontSize:22,bold:true,color:C.lt_teal,breakLine:true}},
{text:"Adult & Paediatric Perioperative Practice",options:{fontSize:19,color:C.white}},
],{x:0.5,y:2.78,w:9.2,h:1.5});
s.addText("MD Anaesthesia | Perioperative Fluid Management",{x:0.5,y:4.5,w:9.0,h:0.42,fontSize:16,fontFace:"Calibri",color:C.muted,italic:true});
s.addText([
{text:"Sources: ",options:{bold:true,color:C.gold,fontSize:11}},
{text:"Morgan & Mikhail 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e | Bailey & Love 28e",options:{color:C.lt_teal,fontSize:11}},
],{x:0.5,y:5.72,w:12.5,h:0.45});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – LEARNING OBJECTIVES
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Learning Objectives");
bul(s,[
"Classify intravenous fluids: crystalloids (isotonic, hypotonic, hypertonic) and colloids (natural & synthetic)",
"Know the composition, osmolarity, and tonicity of each major IV fluid",
"State indications and contraindications for each fluid class in adults",
"Apply the 4-2-1 rule and isotonic maintenance fluid principles in paediatrics",
"Identify special paediatric considerations: hypoglycaemia risk, dextrose use, and hyponatraemia prevention",
"Describe perioperative fluid replacement strategies: maintenance + deficit + ongoing losses",
"Understand goal-directed fluid therapy (GDFT) concepts",
"Differentiate balanced salt solutions (PlasmaLyte, Hartmann's) from unbalanced saline",
"Recognise risks of HES, dextrans, and gelatins in specific patient groups",
"Apply transfusion triggers and allowable blood loss (ABL) calculations",
],{y:1.18,fz:17});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – CLASSIFICATION OVERVIEW
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Classification of Intravenous Fluids");
// Main 2 branches: Crystalloids | Colloids
const bx=0.3, by=1.25;
// Crystalloid branch
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:bx,y:by,w:6.2,h:0.58,fill:{color:C.blue},line:{color:C.blue},rectRadius:0.1});
s.addText("CRYSTALLOIDS",{x:bx,y:by,w:6.2,h:0.58,fontSize:18,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
const crySubs=[
{t:"ISOTONIC (275–295 mOsm/L)",col:C.green,items:["0.9% Normal Saline","Ringer's Lactate (Hartmann's)","PlasmaLyte 148 / A","Ringer's Acetate","Normosol-R"]},
{t:"HYPOTONIC (<275 mOsm/L)",col:C.teal,items:["0.45% NaCl (Half-normal)","5% Dextrose in Water (D5W)","0.2% NaCl + 5% Dextrose","0.33% NaCl"]},
{t:"HYPERTONIC (>295 mOsm/L)",col:C.orange,items:["3% Hypertonic Saline","5% NaCl","Mannitol 20%","10%, 20% Dextrose","7.5% NaCl (trauma resus.)"]},
];
crySubs.forEach((sub,i)=>{
const sx=bx, sy=by+0.72+i*1.95;
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:sx,y:sy,w:6.2,h:1.85,fill:{color:sub.col,transparency:88},line:{color:sub.col,width:1.2},rectRadius:0.09});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:sx,y:sy,w:6.2,h:0.44,fill:{color:sub.col},line:{color:sub.col},rectRadius:0.09});
s.addShape(pres.shapes.RECTANGLE,{x:sx,y:sy+0.24,w:6.2,h:0.2,fill:{color:sub.col},line:{color:sub.col}});
s.addText(sub.t,{x:sx+0.1,y:sy,w:6.0,h:0.44,fontSize:13,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
const arr=sub.items.map((t,ii)=>({text:t,options:{bullet:true,breakLine:ii<sub.items.length-1,fontSize:12.5,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:sx+0.1,y:sy+0.48,w:6.0,h:1.32,valign:"top"});
// connector line
s.addShape(pres.shapes.LINE,{x:bx+3.1,y:by+0.58,w:0,h:0.14+i*1.95,line:{color:C.blue,width:1}});
});
// Colloid branch
const cx2=7.1;
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:cx2,y:by,w:6.0,h:0.58,fill:{color:C.purple},line:{color:C.purple},rectRadius:0.1});
s.addText("COLLOIDS",{x:cx2,y:by,w:6.0,h:0.58,fontSize:18,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
const colSubs=[
{t:"NATURAL / PROTEIN",col:"5C2D8A",items:["5% Human Albumin","20–25% Concentrated Albumin","Fresh Frozen Plasma (FFP)"]},
{t:"SYNTHETIC",col:C.red,items:["Hydroxyethyl Starch (HES): Voluven, Volulyte","Gelatin: Gelofusine, Haemaccel","Dextran 40, Dextran 70","Polygeline (degraded gelatin)"]},
];
colSubs.forEach((sub,i)=>{
const sx=cx2, sy=by+0.72+i*2.9;
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:sx,y:sy,w:6.0,h:2.7,fill:{color:sub.col,transparency:88},line:{color:sub.col,width:1.2},rectRadius:0.09});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:sx,y:sy,w:6.0,h:0.44,fill:{color:sub.col},line:{color:sub.col},rectRadius:0.09});
s.addShape(pres.shapes.RECTANGLE,{x:sx,y:sy+0.24,w:6.0,h:0.2,fill:{color:sub.col},line:{color:sub.col}});
s.addText(sub.t,{x:sx+0.1,y:sy,w:5.8,h:0.44,fontSize:13,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
const arr=sub.items.map((t,ii)=>({text:t,options:{bullet:true,breakLine:ii<sub.items.length-1,fontSize:12.5,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:sx+0.1,y:sy+0.48,w:5.8,h:2.17,valign:"top"});
s.addShape(pres.shapes.LINE,{x:cx2+3.0,y:by+0.58,w:0,h:0.14+i*2.9,line:{color:C.purple,width:1}});
});
// Also Blood Products note
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:cx2,y:6.15,w:6.0,h:1.1,fill:{color:"5C2D8A",transparency:85},line:{color:C.purple,width:1},rectRadius:0.09});
s.addText([
{text:"BLOOD PRODUCTS",options:{bold:true,color:C.purple,fontSize:13,breakLine:true}},
{text:"PRBC, FFP, Platelets, Cryoprecipitate",options:{color:C.text,fontSize:12}},
],{x:cx2+0.15,y:6.22,w:5.7,h:0.95,valign:"middle"});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – COMPOSITION TABLE
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Composition of Common IV Fluids","Electrolyte content per litre vs. Human Plasma");
const cols=["Fluid","Osmol\n(mOsm/L)","pH","Na⁺\n(mmol/L)","K⁺\n(mmol/L)","Cl⁻\n(mmol/L)","Ca²⁺\n(mmol/L)","Buffer","Dextrose\n(g/L)"];
const rows=[
["Human Plasma","275–295","7.35–7.45","135–145","3.5–5.0","94–111","2.2–2.6","HCO₃⁻ 26","—"],
["0.9% Normal Saline","308","4.5–7","154","0","154","0","None","—"],
["Ringer's Lactate (Hartmann's)","273","6.0–7.5","130","4","109","1.4","Lactate 28","—"],
["PlasmaLyte 148 / A","295","7.4","140","5","98","0","Acetate 27\nGluconate 23","—"],
["Ringer's Acetate","276","6–8","130","5","112","1","Acetate 30","—"],
["0.45% NaCl (Half-normal)","154","4.5–7","77","0","77","0","None","—"],
["5% Dextrose (D5W)","252","3.5–6.5","0","0","0","0","None","50"],
["0.45% NaCl + 5% Dextrose","406","3.5–6.5","77","0","77","0","None","50"],
["3% NaCl (Hypertonic)","1026","—","513","0","513","0","None","—"],
["Mannitol 20%","1098","4.5–7","—","—","—","—","None","—"],
];
const cW=[2.45,0.95,0.6,0.95,0.7,0.85,0.75,1.4,0.85];
let cx_arr=[0.25];
for(let i=1;i<cW.length;i++) cx_arr.push(cx_arr[i-1]+cW[i-1]);
// Header
cols.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cx_arr[i],y:1.15,w:cW[i],h:0.55,fill:{color:C.teal},line:{color:C.white,width:0.4}});
s.addText(h,{x:cx_arr[i]+0.03,y:1.15,w:cW[i]-0.06,h:0.55,fontSize:10.5,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
rows.forEach((row,ri)=>{
const ry=1.7+ri*0.57;
const isPlasma=ri===0;
row.forEach((cell,ci)=>{
const bg=isPlasma?C.navy:(ri%2===0?C.cream:C.lt_teal);
const fc=isPlasma?C.gold:(ci===0?C.blue:C.text);
s.addShape(pres.shapes.RECTANGLE,{x:cx_arr[ci],y:ry,w:cW[ci],h:0.57,fill:{color:bg},line:{color:C.teal,width:0.35}});
s.addText(cell,{x:cx_arr[ci]+0.04,y:ry+0.04,w:cW[ci]-0.08,h:0.49,fontSize:isPlasma?11:11,fontFace:"Calibri",color:fc,bold:isPlasma||ci===0,valign:"middle",align:"center"});
});
});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.25,y:7.0,w:13.0,h:0.28,fill:{color:C.navy,transparency:15},line:{color:C.navy},rectRadius:0.05});
s.addText("★ Key: PlasmaLyte most closely mimics plasma composition; Normal Saline has highest Cl⁻ (154 mmol/L) — risk of HCMA with large volumes",{x:0.35,y:7.02,w:12.8,h:0.24,fontSize:10,fontFace:"Calibri",color:C.gold,bold:true,valign:"middle"});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – SECTION BREAK: CRYSTALLOIDS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
secBreak(s,"CRYSTALLOIDS","Isotonic · Hypotonic · Hypertonic");
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – ISOTONIC CRYSTALLOIDS (NS & Ringer's Lactate)
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Isotonic Crystalloids: Normal Saline & Ringer's Lactate");
const ns_ind=[
"Volume resuscitation: haemorrhagic, septic shock (initial bolus)",
"Diluting PRBC before transfusion (ONLY compatible diluent)",
"Correcting hypochloraemic metabolic alkalosis (pyloric stenosis)",
"Hyponatraemia correction (0.9% NS as starting fluid)",
"Cerebral oedema / TBI: preferred over hypotonic fluids",
"Drug dilution / administration vehicle",
"Mild dehydration (gastroenteritis) when Na-containing fluid needed",
];
const ns_ci=[
"Hyperchloraemic metabolic acidosis (HCMA) — risk with >2 L",
"Hypernatraemia",
"Renal failure (may worsen Cl⁻ load)",
"Cardiac failure (sodium/water overload)",
"Large-volume resuscitation: prefer balanced solutions",
"Severe oedema or anasarca",
];
const rl_ind=[
"Preferred intraoperative fluid for most surgeries",
"Haemorrhagic shock resuscitation: 3:1 ratio replacement",
"Burns resuscitation (Parkland formula: RL 4 mL/kg/%TBSA/24h)",
"Abdominal surgery, bowel prep, trauma",
"Replacing GI losses (bile, small bowel fluid)",
"Mild-moderate metabolic acidosis correction",
"Paediatric intraoperative fluid (isotonic, K⁺ closely matches ECF)",
];
const rl_ci=[
"Hyperkalaemia (contains K⁺ 4 mmol/L)",
"Liver failure (impaired lactate metabolism → lactic acidosis risk)",
"Lactic acidosis (adds lactate substrate)",
"Diluting PRBC (calcium may cause clotting in blood tubing)",
"Severe hypernatraemia: Na⁺ 130 mmol/L still hypotonic to some losses",
"Neonates: some prefer NS or balanced BSS",
];
// 2×2 grid
const cards=[
{title:"0.9% Normal Saline — INDICATIONS",col:C.green,bg:C.lt_green,items:ns_ind,x:0.3,y:1.18},
{title:"0.9% Normal Saline — CONTRAINDICATIONS",col:C.red,bg:C.lt_red,items:ns_ci,x:0.3,y:4.28},
{title:"Ringer's Lactate — INDICATIONS",col:C.blue,bg:C.lt_blue,items:rl_ind,x:6.8,y:1.18},
{title:"Ringer's Lactate — CONTRAINDICATIONS",col:C.red,bg:C.lt_red,items:rl_ci,x:6.8,y:4.28},
];
cards.forEach(c=>{
fluidCard(s,c.x,c.y,6.2,2.88,c.title,c.col,c.bg,c.items,12);
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – PLASMALYTE & BALANCED SOLUTIONS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Balanced Salt Solutions: PlasmaLyte & Hartmann's","The preferred perioperative crystalloids");
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y:1.18,w:12.7,h:0.72,fill:{color:C.teal},line:{color:C.teal},rectRadius:0.09});
s.addText([
{text:"Key concept: ",options:{bold:true,color:C.gold,fontSize:15}},
{text:"Balanced crystalloids (PlasmaLyte, Hartmann's/RL, Ringer's Acetate) replace Cl⁻ with physiological buffers (lactate, acetate, gluconate), avoiding the hyperchloraemic metabolic acidosis and perioperative AKI risk of 0.9% NS (SMART, SALT-ED, BaSICS trials).",options:{color:C.white,fontSize:14}},
],{x:0.5,y:1.22,w:12.3,h:0.62,valign:"middle"});
twoCol(s,
[
"INDICATIONS",
"First-line intraoperative fluid for all major surgery",
"Maintenance fluid in ICU (preferred over 0.9% NS)",
"Volume resuscitation: sepsis, trauma, haemorrhage",
"Large-volume fluid therapy: bowel, cardiac, vascular surgery",
"Liver resection: acetate-based preferred (no lactate burden)",
"Neurosurgical procedures (chloride-conservative)",
"Paediatric maintenance: isotonic with near-physiological electrolytes",
"ERAS protocols: goal-directed use with cardiac output monitoring",
],
[
"CONTRAINDICATIONS / CAUTIONS",
"PlasmaLyte: contains Mg²⁺/acetate — avoid in severe hypermagnesaemia",
"Hartmann's/RL: avoid in liver failure (impaired lactate metabolism)",
"Hartmann's: contains K⁺ 4 mmol/L — avoid in hyperkalaemia",
"NOT compatible with blood products (Ca²⁺ in RL)",
"PlasmaLyte pH 7.4: may alkalise blood — monitor in alkalosis",
"Do NOT use as dilution fluid for PRBC (use 0.9% NS only)",
"Excessive volumes → dilutional coagulopathy, hypoalbuminaemia",
],
{y:1.96,h:5.3,fz:14,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – HYPOTONIC & HYPERTONIC CRYSTALLOIDS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Hypotonic & Hypertonic Crystalloids");
// Hypotonic section
s.addShape(pres.shapes.RECTANGLE,{x:0.3,y:1.18,w:6.2,h:0.4,fill:{color:C.teal},line:{color:C.teal}});
s.addText("HYPOTONIC FLUIDS (<275 mOsm/L)",{x:0.3,y:1.18,w:6.2,h:0.4,fontSize:13.5,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
const hypo=[
{fl:"5% Dextrose (D5W)\n252 mOsm/L",ind:"Pure water deficit replacement\nMaintenance in Na-restricted patients (SIADH)\nHyperosmolar hyperglycaemic state (after correcting osmolarity)\nDrug vehicle / TPN supplementation",ci:"Volume depletion / hypovolaemia\nCerebral oedema / raised ICP (worsens oedema)\nHyponatraemia (risk of cerebral oedema)\nDiabetes / hyperglycaemia"},
{fl:"0.45% NaCl (Half NS)\n154 mOsm/L",ind:"Hyperosmolar hyperglycaemic state (with insulin)\nMaintenance after correction of hypernatraemia\nHyperosmolar conditions",ci:"Hyponatraemia (worsens it)\nCerebral oedema / TBI\nHypovolaemia / shock\nPost-op patients (AVOID — risk of hospital-acquired hyponatraemia)"},
];
hypo.forEach((h,i)=>{
const ry=1.62+i*2.4;
s.addShape(pres.shapes.RECTANGLE,{x:0.3,y:ry,w:6.2,h:2.22,fill:{color:C.lt_teal,transparency:40},line:{color:C.teal,width:0.8}});
s.addText(h.fl,{x:0.38,y:ry+0.05,w:6.0,h:0.46,fontSize:12,fontFace:"Calibri",color:C.teal,bold:true});
s.addText([
{text:"Ind: ",options:{bold:true,color:C.green,fontSize:11.5}},{text:h.ind,options:{color:C.text,fontSize:11.5}},
],{x:0.38,y:ry+0.52,w:6.0,h:0.82,valign:"top",fontFace:"Calibri"});
s.addText([
{text:"CI: ",options:{bold:true,color:C.red,fontSize:11.5}},{text:h.ci,options:{color:C.text,fontSize:11.5}},
],{x:0.38,y:ry+1.32,w:6.0,h:0.82,valign:"top",fontFace:"Calibri"});
});
// Hypertonic section
s.addShape(pres.shapes.RECTANGLE,{x:6.85,y:1.18,w:6.2,h:0.4,fill:{color:C.orange},line:{color:C.orange}});
s.addText("HYPERTONIC FLUIDS (>295 mOsm/L)",{x:6.85,y:1.18,w:6.2,h:0.4,fontSize:13.5,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
const hyper=[
{fl:"3% NaCl — 1026 mOsm/L",ind:"Severe symptomatic hyponatraemia (Na⁺<120 with seizures)\nCorrect ≤8–10 mEq/24h (ODS risk)\nCerebral oedema (Na⁺ ↑ → osmotic shift)",ci:"Hypernatraemia\nPulmonary oedema / CHF\nHypervolaemia\nCentral pontine myelinolysis risk (too-rapid correction)"},
{fl:"Mannitol 20% — 1098 mOsm/L",ind:"Raised intracranial pressure (0.25–1 g/kg IV)\nBrain surgery: cerebral decompression\nAcute glaucoma\nForced diuresis (rhabdomyolysis)",ci:"Anuria / severe renal failure (accumulates)\nCHF / pulmonary oedema (transiently raises intravascular volume)\nSevere dehydration\nBBB disruption (may enter brain — reverse osmotic effect)"},
{fl:"7.5% NaCl — Trauma Resus.\n2567 mOsm/L",ind:"Traumatic brain injury with haemorrhagic shock\nSmall-volume resuscitation\nCombined with dextran (HSD) in prehospital",ci:"Cardiac failure\nHypernatraemia >155 mmol/L\nNon-trauma surgical patients"},
];
hyper.forEach((h,i)=>{
const ry=1.62+i*1.92;
s.addShape(pres.shapes.RECTANGLE,{x:6.85,y:ry,w:6.2,h:1.78,fill:{color:"FFF3E0",transparency:20},line:{color:C.orange,width:0.8}});
s.addText(h.fl,{x:6.93,y:ry+0.04,w:6.0,h:0.38,fontSize:12,fontFace:"Calibri",color:C.orange,bold:true});
s.addText([
{text:"Ind: ",options:{bold:true,color:C.green,fontSize:11}},{text:h.ind,options:{color:C.text,fontSize:11}},
],{x:6.93,y:ry+0.42,w:6.0,h:0.62,valign:"top",fontFace:"Calibri"});
s.addText([
{text:"CI: ",options:{bold:true,color:C.red,fontSize:11}},{text:h.ci,options:{color:C.text,fontSize:11}},
],{x:6.93,y:ry+1.02,w:6.0,h:0.68,valign:"top",fontFace:"Calibri"});
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – SECTION BREAK: COLLOIDS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
secBreak(s,"COLLOIDS","Natural · Synthetic · Special Considerations");
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – ALBUMIN
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Natural Colloids: Human Albumin Solution","5% (iso-oncotic) and 20–25% (hyperoncotic)");
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y:1.18,w:12.7,h:0.62,fill:{color:C.purple,transparency:15},line:{color:C.purple},rectRadius:0.08});
s.addText([
{text:"Mechanism: ",options:{bold:true,color:C.gold,fontSize:14}},
{text:"Albumin (MW 69 kDa) is the main determinant of plasma oncotic pressure (~80% of COP = 25 mmHg). Each gram of albumin holds ~18 mL of water intravascularly. 5% albumin is iso-oncotic (equivalent intravascular expansion to volume given); 20–25% is hyperoncotic (expands plasma by pulling interstitial fluid).",options:{color:C.white,fontSize:13}},
],{x:0.5,y:1.22,w:12.3,h:0.55,valign:"middle"});
twoCol(s,
[
"INDICATIONS – 5% Albumin",
"Acute hypovolaemia when crystalloids insufficient",
"Spontaneous bacterial peritonitis (SBP): 1.5 g/kg on diagnosis + 1 g/kg on day 3",
"Hepatorenal syndrome prevention post-large-volume paracentesis (8 g/L drained)",
"Burns resuscitation after 24h (replaces protein losses)",
"Hypoalbuminaemia <2 g/dL causing symptomatic oedema",
"INDICATIONS – 20–25% Albumin",
"Nephrotic syndrome with diuretic resistance",
"Acute liver failure with severe hypoalbuminaemia",
"Critically ill patients with persistent hypovolaemia + fluid overload",
],
[
"CONTRAINDICATIONS / CAUTIONS",
"Cardiac failure or pulmonary oedema (volume overload risk)",
"Severe anaemia: do NOT use as primary expander without RBC support",
"SAFE trial: albumin vs NS in ICU = no mortality difference (except TBI patients: albumin WORSE in TBI)",
"NOT indicated for routine perioperative volume replacement",
"NOT for correction of hypoalbuminaemia without clinical symptoms",
"SPECIAL CAUTION: Head injury / TBI — SAFE trial: 2× mortality with albumin vs NS",
"Coagulopathy: large volumes dilute clotting factors",
"Cost: significantly higher than crystalloids; no proven superiority in most settings",
],
{y:1.86,h:5.42,fz:13.5,ltT:"",rtT:"",sep:6.7}
);
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – SYNTHETIC COLLOIDS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Synthetic Colloids: HES, Gelatin & Dextran");
const synth=[
{
name:"HYDROXYETHYL STARCH (HES)\nVoluven (6% HES 130/0.4), Volulyte",
col:C.orange,bg:"FFF3E0",
ind:"Perioperative hypovolaemia\nAcute blood volume replacement\nCardiac surgery (limited use)\nPaediatric cardiac surgery (comparable to albumin)",
ci:"Sepsis / critical illness (CHEST, 6S trials: ↑AKI + mortality)\nRenal impairment / AKI (accumulates in renal tubules)\nCoagulopathy / bleeding disorders (impairs vWF/FVIII, platelet function)\nLiver failure\nAllergy to starches\nEU: withdrawn from market (2023) for ICU / sepsis\nPregnancy",
note:"Max dose: 50 mL/kg/day (Voluven). Use LOWEST effective dose."
},
{
name:"GELATIN (Gelofusine, Haemaccel)\nPolygeline — MW ~35 kDa",
col:C.teal,bg:C.lt_teal,
ind:"Perioperative hypovolaemia\nIntraoperative volume expansion\nPaediatric use (short-term, no major trials excluding)",
ci:"Hypersensitivity / anaphylaxis (highest anaphylaxis risk of synthetic colloids: 0.35%)\nCoagulopathy: some inhibition of platelet aggregation\nRenal failure (use with caution)\nNOT for TBI (hyperosmolar formulations)\nPregnancy: limited data",
note:"Shortest duration of action (~2–3h). Contains Ca²⁺ (Haemaccel) — do NOT mix with blood."
},
{
name:"DEXTRAN (Dextran 40, Dextran 70)\nGlucose polymer — MW 40 or 70 kDa",
col:C.red,bg:C.lt_red,
ind:"DVT / PE prophylaxis (Dextran 40: anti-platelet effect)\nImproving microcirculatory flow\nVascular surgery: anti-sludging effect\nHSD (hypertonic saline + dextran): small-volume resuscitation",
ci:"Anaphylaxis risk (HIGH — up to 1%)\nCoagulopathy: inhibits platelet function + Factor VIII\nRenal failure: can cause osmotic nephrosis\nHaemorrhagic diathesis\nSevere dehydration\nNOT for general volume resuscitation (largely replaced by HES/gelatin)",
note:"Rarely used today. Interferes with blood cross-matching — take sample BEFORE infusion."
},
];
const ys=[1.18,3.38,5.58];
synth.forEach((c,i)=>{
const y=ys[i];
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y,w:12.7,h:2.08,fill:{color:c.bg,transparency:30},line:{color:c.col,width:1.2},rectRadius:0.1});
s.addShape(pres.shapes.RECTANGLE,{x:0.3,y,w:12.7,h:0.45,fill:{color:c.col},line:{color:c.col}});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y,w:12.7,h:0.45,fill:{color:c.col},line:{color:c.col},rectRadius:0.1});
s.addShape(pres.shapes.RECTANGLE,{x:0.3,y:y+0.25,w:12.7,h:0.2,fill:{color:c.col},line:{color:c.col}});
s.addText(c.name,{x:0.4,y:y+0.02,w:12.5,h:0.42,fontSize:13,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
s.addText([
{text:"IND: ",options:{bold:true,color:C.green,fontSize:11.5}},{text:c.ind,options:{color:C.text,fontSize:11.5}},
],{x:0.4,y:y+0.5,w:5.5,h:1.3,fontFace:"Calibri",valign:"top"});
s.addText([
{text:"CI: ",options:{bold:true,color:C.red,fontSize:11.5}},{text:c.ci,options:{color:C.text,fontSize:11.5}},
],{x:6.0,y:y+0.5,w:5.5,h:1.3,fontFace:"Calibri",valign:"top"});
s.addText([
{text:"★ ",options:{color:C.gold,bold:true,fontSize:11}},{text:c.note,options:{color:C.navy,fontSize:11,italic:true}},
],{x:0.4,y:y+1.76,w:12.5,h:0.26,fontFace:"Calibri",valign:"middle"});
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – CRYSTALLOID vs COLLOID
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Crystalloid vs Colloid: Comparison & Fluid Distribution");
// Distribution box
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y:1.18,w:12.7,h:1.0,fill:{color:C.navy},line:{color:C.teal},rectRadius:0.09});
s.addText([
{text:"Distribution of 1 L IV fluid: ",options:{bold:true,color:C.gold,fontSize:14}},
{text:"0.9% NS/RL (isotonic crystalloid): 25% stays intravascular (250 mL), 75% distributes to interstitium. | ",options:{color:C.white,fontSize:13}},
{text:"5% Albumin/HES (colloid): ~80% stays intravascular. | ",options:{color:C.lt_teal,fontSize:13}},
{text:"D5W (hypotonic): only ~8% stays intravascular (free water distributes 2/3 intracellular).",options:{color:C.white,fontSize:13}},
],{x:0.5,y:1.22,w:12.3,h:0.9,valign:"middle"});
const rows=[
["Property","Crystalloid","Colloid"],
["Volume to achieve same expansion","3–4× volume needed","1:1 (equal volume)"],
["Duration of intravascular effect","Short (1–2 h)","Prolonged (4–8+ h)"],
["Tissue oedema","Higher risk with large volumes","Lower risk"],
["Anaphylaxis / adverse reactions","Rare","HES/dextran: up to 0.35–1%"],
["Effect on coagulation","Dilutional at high volumes","HES/dextran: platelet dysfunction"],
["Effect on renal function","Balanced BSS: neutral; NS: Cl⁻ load → AKI","HES: AKI in sepsis (CHEST trial)"],
["Cost","Very low","Significantly higher"],
["Preferred initial resuscitation","✓ YES (ATLS, Surviving Sepsis)","After initial crystalloid loading"],
["Available without blood bank","✓ Always available","✓ Albumin: blood-bank derived"],
["Evidence for mortality benefit","No proven advantage","No proven mortality benefit"],
];
const cWW=[3.8,4.4,4.4]; const cXX=[0.3,4.15,8.6];
rows.forEach((row,ri)=>{
const ry=2.28+ri*0.47;
const isH=ri===0;
row.forEach((cell,ci)=>{
const bg=isH?C.teal:(ri%2===0?C.cream:C.lt_teal);
const fc=isH?C.white:(ci===0?C.navy:(ci===1?C.blue:C.purple));
s.addShape(pres.shapes.RECTANGLE,{x:cXX[ci],y:ry,w:cWW[ci],h:0.47,fill:{color:bg},line:{color:C.teal,width:0.4}});
s.addText(cell,{x:cXX[ci]+0.06,y:ry+0.04,w:cWW[ci]-0.12,h:0.39,fontSize:isH?13:12,fontFace:"Calibri",color:fc,bold:isH||ci===0,valign:"middle"});
});
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – SECTION BREAK: PAEDIATRIC FLUIDS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
secBreak(s,"PAEDIATRIC IV FLUID THERAPY","4-2-1 Rule · Isotonic Maintenance · Special Considerations");
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – PAEDIATRIC FLUID PRINCIPLES
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Paediatric Fluid Physiology & Principles","Miller's Anaesthesia 10e | Morgan & Mikhail 7e");
// 4-2-1 Rule box
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y:1.18,w:6.2,h:2.65,fill:{color:C.navy},line:{color:C.teal},rectRadius:0.1});
s.addText("4-2-1 RULE (Holliday-Segar Modified)",{x:0.4,y:1.22,w:6.0,h:0.4,fontSize:14,fontFace:"Calibri",color:C.gold,bold:true,align:"center"});
s.addShape(pres.shapes.LINE,{x:0.5,y:1.65,w:5.9,h:0,line:{color:C.gold,width:0.8}});
const rule421=[
["First 10 kg","4 mL/kg/h"],
["Next 10 kg (10–20 kg)","+ 2 mL/kg/h"],
["Each kg >20 kg","+ 1 mL/kg/h"],
];
rule421.forEach(([w,v],i)=>{
const ry=1.72+i*0.58;
s.addShape(pres.shapes.RECTANGLE,{x:0.4,y:ry,w:3.6,h:0.54,fill:{color:C.teal,transparency:60},line:{color:C.teal,width:0.5}});
s.addShape(pres.shapes.RECTANGLE,{x:4.05,y:ry,w:2.2,h:0.54,fill:{color:C.gold,transparency:30},line:{color:C.gold,width:0.5}});
s.addText(w,{x:0.45,y:ry+0.04,w:3.5,h:0.46,fontSize:13,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
s.addText(v,{x:4.1,y:ry+0.04,w:2.1,h:0.46,fontSize:14,fontFace:"Calibri",color:C.navy,bold:true,align:"center",valign:"middle"});
});
s.addText("Example: 25 kg child = (4×10) + (2×10) + (1×5) = 65 mL/h",{x:0.4,y:3.46,w:6.0,h:0.32,fontSize:12,fontFace:"Calibri",color:C.lt_teal,italic:true,align:"center"});
// Neonatal fluid requirements box
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.3,y:3.9,w:6.2,h:2.85,fill:{color:C.blue,transparency:88},line:{color:C.blue,width:1},rectRadius:0.09});
s.addText("NEONATAL DAILY FLUID REQUIREMENTS",{x:0.4,y:3.94,w:6.0,h:0.38,fontSize:12.5,fontFace:"Calibri",color:C.blue,bold:true,align:"center"});
const neoFluid=[
"Day 1: 70 mL/kg/day (term neonate)",
"Day 3: 80 mL/kg/day",
"Day 5: 90 mL/kg/day",
"Day 7: 120 mL/kg/day",
"Preterm: slightly higher requirements",
"↑ insensible losses: prematurity, phototherapy, radiant warmers",
"Neonatal kidney: limited concentrating ability — cannot excrete excess water/Na⁺",
];
const nArr=neoFluid.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<neoFluid.length-1,fontSize:12,fontFace:"Calibri",color:C.text}}));
s.addText(nArr,{x:0.4,y:4.36,w:6.0,h:3.3,valign:"top"});
// Right side: key principles
twoCol(s,
[
"ISOTONIC MAINTENANCE (current standard)",
"Hypotonic fluids (0.45% NaCl, 0.2% NaCl) → hospital-acquired hyponatraemia → cerebral oedema, seizures, death",
"Large RCT meta-analysis (2017): isotonic solutions ↓ hyponatraemia risk vs hypotonic",
"Current recommendation: isotonic crystalloid (PlasmaLyte 148, 0.9% NS, Hartmann's) for perioperative maintenance",
"Dextrose: NOT routinely added unless BSL <3.3 mmol/L (hypoglycaemia rate <2.5% in fasted children)",
"Add dextrose only if: neonates, DM, TPN-dependent, prolonged NPO, or suspected hypoglycaemia",
"Serial serum Na⁺ monitoring in prolonged / extensive surgery",
],
[
"INTRAOPERATIVE REPLACEMENT",
"Fasting deficit: use 4-2-1 rule × fasting hours\n½ first hour, ¼ second, ¼ third hour",
"German guidelines: 10 mL/kg/h initial, adjust to requirement",
"Surgical losses — minor: 2–4 mL/kg/h; moderate: 4–6; major: 6–10; burns/neonatal abdominal: >50 mL/kg/h",
"Blood loss replacement: 3 mL RL per 1 mL blood (until MABL); then PRBC",
"MABL formula: [(Weight × EBV) × (Hct start − Hct target)] / Hct start",
"EBV: premature 100–120, term neonate 90, infant 3–12m: 70–80, child >1y: 70 mL/kg",
],
{y:1.15,h:5.65,fz:13.2,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 15 – PAEDIATRIC FLUID CHOICE TABLE
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Paediatric IV Fluid Selection Guide");
const peds=[
{sit:"Intraoperative maintenance (all ages)","fluid":"PlasmaLyte 148 OR 0.9% NS OR Hartmann's (isotonic)","note":"NO routine dextrose; isotonic prevents hyponatraemia"},
{sit:"Neonates (1st week of life)","fluid":"10% Dextrose (for maintenance) ± 0.9% NaCl for electrolytes","note":"Immature renal function; glucose essential; start day 1 at 70 mL/kg"},
{sit:"Perioperative fasting deficit","fluid":"PlasmaLyte 148 / Hartmann's","note":"½ first hour, ¼ second, ¼ third using 4-2-1 rate"},
{sit:"Hypoglycaemia (BSL <3.3 mmol/L)","fluid":"2 mL/kg of 10% Dextrose bolus, then infusion","note":"Check BSL 30 min after; avoid 50% dextrose (cerebral injury risk)"},
{sit:"Hypovolaemia / shock bolus","fluid":"0.9% NS or PlasmaLyte 10–20 mL/kg over 5–10 min","note":"Repeat up to 40–60 mL/kg; reassess after each bolus"},
{sit:"Blood loss < MABL","fluid":"Ringer's Lactate: 3 mL per 1 mL blood lost","note":"Maintain Hct ≥20–25%"},
{sit:"Blood loss > MABL","fluid":"PRBC (10 mL/kg raises Hct ~3%)","note":"Add FFP 1:1 in massive transfusion; platelets if <50×10⁹/L"},
{sit:"Severe dehydration (10%)","fluid":"0.9% NS 10–20 mL/kg bolus, then replace deficit over 24–48h","note":"Oral rehydration preferred when possible"},
{sit:"Hyponatraemia (Na⁺ <120 with symptoms)","fluid":"3% NaCl: 3–5 mL/kg over 30 min","note":"Repeat once if no improvement; target rise 5 mEq/L initially"},
{sit:"Raised ICP (neurosurgery)","fluid":"0.9% NS or PlasmaLyte; mannitol 0.25–0.5 g/kg","note":"AVOID hypotonic fluids; avoid hyperglycaemia"},
];
const cX2=[0.3,3.55,7.6]; const cW2=[3.2,4.0,5.4];
const hdrs2=["Clinical Situation","Recommended Fluid","Key Notes"];
hdrs2.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cX2[i],y:1.15,w:cW2[i],h:0.42,fill:{color:C.teal},line:{color:C.white,width:0.4}});
s.addText(h,{x:cX2[i],y:1.15,w:cW2[i],h:0.42,fontSize:13,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
peds.forEach((r,i)=>{
const ry=1.57+i*0.58;
const bg=i%2===0?C.cream:C.lt_teal;
[[r.sit,C.navy,C.gold],[r.fluid,bg,C.blue],[r.note,bg,C.text]].forEach(([text,bgc,fc],ci)=>{
s.addShape(pres.shapes.RECTANGLE,{x:cX2[ci],y:ry,w:cW2[ci],h:0.58,fill:{color:ci===0?C.navy:bg},line:{color:C.teal,width:0.4}});
s.addText(text,{x:cX2[ci]+0.06,y:ry+0.04,w:cW2[ci]-0.12,h:0.5,fontSize:11.5,fontFace:"Calibri",color:fc,bold:ci===0||ci===1,valign:"middle"});
});
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 16 – ADULT PERIOPERATIVE FLUID STRATEGY
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Adult Perioperative Fluid Strategy","Maintenance · Deficit · Blood Loss · Goal-Directed Therapy");
twoCol(s,
[
"MAINTENANCE (intraoperative)",
"1–3 mL/kg/h balanced crystalloid (PlasmaLyte/RL) for non-major surgery",
"ERAS protocols: restrict to ≤3 mL/kg/h; avoid pre-emptive fluid loading",
"Fasting deficit replacement: reduce in modern practice (short NPO times)",
"Avoid routine 5% dextrose (hyperglycaemia risk in adults)",
"",
"BLOOD LOSS REPLACEMENT",
"Crystalloid: 3:1 ratio (RL or PlasmaLyte) until transfusion trigger",
"Colloid: 1:1 ratio (albumin or HES — with caveats)",
"Transfusion trigger: Hb <7 g/dL (general); <8 g/dL (cardiac disease)",
"Massive haemorrhage protocol: PRBC:FFP:Platelets = 1:1:1",
],
[
"GOAL-DIRECTED FLUID THERAPY (GDFT)",
"Dynamic fluid responsiveness markers preferred over static CVP/PCWP",
"Stroke volume variation (SVV): >13% predicts fluid responsiveness (ventilated patients)",
"Pulse pressure variation (PPV): similar sensitivity/specificity to SVV",
"Oesophageal Doppler: intraoperative flow-time (FTc) and SV optimisation",
"GDFT reduces postoperative complications (ileus, infections, LOS) in major GI surgery",
"Liberal vs restrictive (RELIEF trial, OPTIMISE II): balanced approach for most patients",
"",
"SPECIAL SITUATIONS",
"Hepatic failure: albumin preferred; avoid HES; careful Na⁺ balance",
"Burns: Parkland formula: RL 4 mL/kg/%TBSA (½ in first 8h, ½ in next 16h)",
"Cardiac surgery: crystalloid prime + albumin + PRBC; goal-directed with TOE/SV",
"TBI: isotonic only (0.9% NS); maintain Na⁺ ≥140; hypertonic saline for ICP",
],
{y:1.15,h:5.95,fz:13.2,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 17 – QUICK REFERENCE GUIDE (ADULT)
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Adult Quick-Reference: Fluid Choice by Clinical Scenario");
const adult=[
{sit:"Routine intraoperative maintenance","fluid":"PlasmaLyte / Hartmann's 1–3 mL/kg/h","ci":"0.9% NS >2L (HCMA); D5W (hyperglycaemia)"},
{sit:"Hypovolaemia / haemorrhagic shock (initial)","fluid":"RL or PlasmaLyte 500 mL bolus; repeat PRN","ci":"HES in sepsis/AKI; albumin in TBI"},
{sit:"Septic shock (Surviving Sepsis)","fluid":"30 mL/kg crystalloid within 3 h, then reassess","ci":"Hypotonic fluids; HES (CHEST trial)"},
{sit:"Hypochloraemic metabolic alkalosis","fluid":"0.9% Normal Saline","ci":"Balanced BSS (worsens alkalosis)"},
{sit:"Severe hyponatraemia (<120 + symptoms)","fluid":"3% NaCl 100 mL over 10 min (×3 PRN)","ci":"Rapid correction (ODS); hypotonic fluids"},
{sit:"Raised ICP / Cerebral oedema","fluid":"0.9% NS or mannitol 20% 0.25–1 g/kg","ci":"D5W; hypotonic fluids; albumin (SAFE)"},
{sit:"Burns (1st 24h)","fluid":"RL: 4 mL/kg/%TBSA (½ first 8h, ½ next 16h)","ci":"Colloids in first 24h (albumin: after 24h)"},
{sit:"Diluting PRBC for transfusion","fluid":"0.9% Normal Saline ONLY","ci":"RL (Ca²⁺ causes clotting); D5W (haemolysis)"},
{sit:"Hepatic failure / SBP","fluid":"5% Albumin (1.5 g/kg at diagnosis)","ci":"HES (impairs renal/liver function)"},
{sit:"Cardiac surgery (prime + resus)","fluid":"Balanced BSS + albumin + PRBC as indicated","ci":"Large volume 0.9% NS (HCMA); HES"},
{sit:"TURP syndrome / dilutional hyponatraemia","fluid":"3% NaCl; loop diuretic (frusemide)","ci":"Hypotonic fluids; free water"},
];
const aX=[0.3,3.65,7.9]; const aW=[3.3,4.2,5.1];
const aH=["Clinical Situation","Fluid of Choice","Avoid / Contraindicated"];
aH.forEach((h,i)=>{
s.addShape(pres.shapes.RECTANGLE,{x:aX[i],y:1.15,w:aW[i],h:0.42,fill:{color:C.navy},line:{color:C.white,width:0.4}});
s.addText(h,{x:aX[i],y:1.15,w:aW[i],h:0.42,fontSize:13,color:i===2?C.red:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
});
adult.forEach((r,i)=>{
const ry=1.57+i*0.54;
const bg=i%2===0?C.cream:C.lt_teal;
[[r.sit,C.navy,C.gold],[r.fluid,bg,C.blue],[r.ci,bg,C.red]].forEach(([text,bgc,fc],ci)=>{
s.addShape(pres.shapes.RECTANGLE,{x:aX[ci],y:ry,w:aW[ci],h:0.54,fill:{color:ci===0?C.navy:bg},line:{color:C.teal,width:0.4}});
s.addText(text,{x:aX[ci]+0.06,y:ry+0.04,w:aW[ci]-0.12,h:0.46,fontSize:11.5,fontFace:"Calibri",color:fc,bold:ci===0,valign:"middle"});
});
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 18 – DANGERS & PITFALLS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"Dangers, Complications & Pitfalls of IV Fluid Therapy");
const dangers=[
{title:"Hyperchloraemic\nMetabolic Acidosis",col:C.orange,desc:"Large-volume 0.9% NS → ↑Cl⁻ → ↓HCO₃⁻ → non-AG metabolic acidosis. Contributes to AKI. Prefer balanced BSS (SMART, BaSICS trials)."},
{title:"Hospital-Acquired\nHyponatraemia",col:C.red,desc:"Hypotonic maintenance fluids (0.45% NaCl, D5W in Na-restricted patients) → hyponatraemia → cerebral oedema → seizures. Especially dangerous in children. Use ISOTONIC fluids."},
{title:"Fluid Overload &\nTissue Oedema",col:C.blue,desc:"Excessive crystalloid (>4–5 L) → interstitial oedema → impaired O₂ transport, poor wound healing, delayed bowel return, increased SSI risk. Use GDFT to titrate."},
{title:"HES-associated\nAKI & Mortality",col:C.purple,desc:"HES in sepsis / ICU: CHEST + 6S trials → ↑AKI requiring RRT (↑35%), ↑90-day mortality. EU market withdrawal 2023. Avoid in sepsis, renal impairment."},
{title:"Albumin in TBI\n(SAFE trial)",col:C.red,desc:"SAFE trial: albumin vs NS in ICU patients — TBI subgroup: 2× mortality with albumin. CONTRAINDICATED in traumatic brain injury."},
{title:"Paediatric\nHypoglycaemia",col:C.green,desc:"Children can develop hypoglycaemia after 4–8h fast. Monitor BSL perioperatively. Add glucose only if BSL <3.3 mmol/L — routine dextrose fluids cause hyperglycaemia/hyponatraemia."},
{title:"Dextran:\nAnaphylaxis &\nCoagulopathy",col:"8B5A00",desc:"Anaphylaxis rate up to 1% (highest of all IV fluids). Interferes with platelet function and FVIII. Interferes with cross-matching. Take blood sample BEFORE infusion."},
{title:"Too-Rapid\nHyponatraemia\nCorrection",col:C.orange,desc:"Correcting Na⁺ >10–12 mEq/24h → osmotic demyelination syndrome (ODS / central pontine myelinolysis). Irreversible. Target ≤8–10 mEq/24h correction."},
];
const xs=[0.3,3.6,6.9,10.2]; const ys=[1.15,3.9];
dangers.forEach((d,i)=>{
const col=i%4, row=Math.floor(i/4);
const x=xs[col], y=ys[row];
const W=3.15, H=2.52;
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w:W,h:H,fill:{color:d.col,transparency:90},line:{color:d.col,width:1.2},rectRadius:0.1});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w:W,h:0.5,fill:{color:d.col},line:{color:d.col},rectRadius:0.1});
s.addShape(pres.shapes.RECTANGLE,{x,y:y+0.26,w:W,h:0.24,fill:{color:d.col},line:{color:d.col}});
s.addText(d.title,{x:x+0.08,y,w:W-0.16,h:0.5,fontSize:12,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
s.addText(d.desc,{x:x+0.1,y:y+0.55,w:W-0.2,h:H-0.65,fontSize:11.5,fontFace:"Calibri",color:C.text,valign:"top"});
});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 19 – HIGH-YIELD EXAM POINTS
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
slideHdr(s,"High-Yield Exam Points");
bul(s,[
"1 L isotonic crystalloid distributes 25% intravascular; 1 L colloid distributes ~80% intravascular",
"0.9% NS preferred ONLY for: diluting PRBC, hypochloraemic alkalosis, hypernatraemia initial correction",
"AVOID 0.9% NS large volumes: hyperchloraemic metabolic acidosis (HCMA) + perioperative AKI (SMART, BaSICS trials)",
"PlasmaLyte 148: most physiological crystalloid; pH 7.4; no Ca²⁺ (can mix with blood); preferred balanced BSS",
"Ringer's Lactate CONTRAINDICATED in liver failure (impaired lactate metabolism) and hyperkalaemia",
"Paediatrics: isotonic maintenance fluids ONLY — hypotonic fluids risk fatal hyponatraemia/cerebral oedema",
"4-2-1 rule: 4 mL/kg/h (first 10 kg) + 2 mL/kg/h (10–20 kg) + 1 mL/kg/h (>20 kg)",
"Dextrose added in children ONLY if BSL <3.3 mmol/L, neonates, TPN-dependent, or prolonged NPO",
"HES in sepsis/ICU: AVOID — CHEST trial: ↑35% AKI requiring dialysis; EU withdrawn 2023",
"Albumin CONTRAINDICATED in TBI — SAFE trial: 2× mortality in TBI subgroup",
"Dextran: highest anaphylaxis risk (1%), interferes with cross-match — take blood BEFORE infusion",
"Mannitol contraindicated in anuria and CHF; BBB disruption may cause reverse osmosis",
"Burns resuscitation: Parkland formula = RL 4 mL/kg/%TBSA; ½ first 8h; ½ next 16h; colloids only after 24h",
"GDFT: SVV >13% = fluid responsive (ventilated); oesophageal Doppler (FTc <0.35s) guides bolus therapy",
],{y:1.18,fz:14.5});
foot(s);
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 20 – THANK YOU
// ══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
navyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.82,w:13.3,h:0.08,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.9,w:13.3,h:1.65,fill:{color:C.teal,transparency:25},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.55,w:13.3,h:0.08,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Thank You",{x:0.5,y:2.95,w:12.3,h:1.1,fontSize:52,fontFace:"Calibri",color:C.white,bold:true,align:"center"});
s.addText([
{text:"Key Message: ",options:{bold:true,color:C.gold,fontSize:17}},
{text:"Match the fluid to the physiological deficit. Balance resuscitation efficacy against the risks of HCMA, oedema, coagulopathy, and organ dysfunction. In paediatrics, isotonic fluids prevent fatal hyponatraemia.",options:{color:C.lt_teal,fontSize:15}},
],{x:1.0,y:4.85,w:11.3,h:1.35,align:"center"});
s.addText("Sources: Morgan & Mikhail 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e | Bailey & Love 28e",
{x:0.5,y:6.75,w:12.3,h:0.38,fontSize:11,fontFace:"Calibri",color:C.muted,align:"center"});
foot(s);
}
// ─── WRITE ────────────────────────────────────────────────────────────────
pres.writeFile({fileName:"/home/daytona/workspace/iv-fluids-ppt/IV_Fluids_MD_Anaesthesia.pptx"})
.then(()=>console.log("✅ PPTX created successfully"))
.catch(e=>{console.error("❌",e);process.exit(1);});
node /home/daytona/workspace/iv-fluids-ppt/build.js 2>&1
ls -lh /home/daytona/workspace/iv-fluids-ppt/
IV Fluids MD Anaesthesia
Presentation · PPTX
| # | Slide | Content |
|---|---|---|
| 1 | Title Slide | Bold navy/teal/gold design |
| 2 | Learning Objectives | 10 exam-focused goals |
| 3 | Classification | Full visual tree — Crystalloids (isotonic/hypotonic/hypertonic) + Colloids (natural/synthetic) + Blood products |
| 4 | Composition Table | 10 fluids vs human plasma — osmolarity, pH, Na⁺, K⁺, Cl⁻, Ca²⁺, buffer, dextrose |
| 5 | Section break: Crystalloids | |
| 6 | Normal Saline & Ringer's Lactate | 2×2 card grid — indications + contraindications for each |
| 7 | Balanced BSS: PlasmaLyte & Hartmann's | Why preferred; SMART/BaSICS evidence; indications/CI |
| 8 | Hypotonic & Hypertonic Crystalloids | D5W, 0.45% NaCl, 3% NaCl, Mannitol, 7.5% NaCl — each with Ind/CI |
| 9 | Section break: Colloids | |
| 10 | Albumin (5% and 20–25%) | SAFE trial; SBP; hepatorenal syndrome; TBI warning |
| 11 | Synthetic Colloids: HES, Gelatin, Dextran | CHEST/6S trial evidence; EU withdrawal; anaphylaxis risks |
| 12 | Crystalloid vs Colloid Comparison | Fluid distribution table; 11-parameter comparison |
| 13 | Section break: Paediatrics | |
| 14 | Paediatric Fluid Principles | 4-2-1 rule with worked example; neonatal day-by-day requirements; isotonic maintenance evidence; MABL formula |
| 15 | Paediatric Fluid Selection Guide | 10-scenario table with fluid of choice and key notes |
| 16 | Adult Perioperative Strategy | Maintenance, GDFT (SVV/PPV/oesophageal Doppler), burns Parkland, TBI, cardiac surgery |
| 17 | Adult Quick-Reference Table | 11 clinical scenarios — fluid choice + what to avoid |
| 18 | Dangers & Pitfalls | 8-card grid: HCMA, hyponatraemia, fluid overload, HES-AKI, albumin-TBI, paediatric hypoglycaemia, ODS |
| 19 | High-Yield Exam Points | 14 must-know facts |
| 20 | Thank You | Key message |
Myasthenia Gravis patient posted for thymectomy-anaesthetic management and icu care in MD Anaesthesia ppt
mkdir -p /home/daytona/workspace/mg-thymectomy-ppt && echo "ready"
~/mg-thymectomy-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Myasthenia Gravis – Thymectomy Anaesthesia & ICU Care";
pres.author = "MD Anaesthesia";
// ── PALETTE ─────────────────────────────────────────────────────────────
const C = {
navy: "0D2B4E", teal: "0A7075", gold: "E8A838",
cream: "F5F1EA", white: "FFFFFF", text: "1A1A2E",
muted: "4A6080", ltT: "C8E6EA", red: "B03020",
green: "1A7A44", orange:"D05A10", purple:"5C2D8A",
blue: "1A5FA0", ltB: "DDEEFF", ltG: "D4F0DC",
ltR: "F5DDDD", ltP: "EDE0F5", steel: "7A9BB5",
dkGray: "374151", amber: "C17A00",
};
// ── HELPERS ──────────────────────────────────────────────────────────────
const navyBg = s => s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.navy},line:{color:C.navy}});
const creamBg = s => s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:7.5,fill:{color:C.cream},line:{color:C.cream}});
function hdr(s, title, sub){
s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:13.3,h:sub?1.1:1.05,fill:{color:C.teal},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:0,w:0.3,h:sub?1.1:1.05,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:sub?1.1:1.05,w:13.3,h:0.06,fill:{color:C.gold},line:{color:C.gold}});
s.addText(title,{x:0.45,y:0,w:12.5,h:sub?0.68:1.05,fontSize:sub?21:26,fontFace:"Calibri",color:C.white,bold:true,valign:"middle",margin:0});
if(sub) s.addText(sub,{x:0.45,y:0.65,w:12.5,h:0.42,fontSize:14,fontFace:"Calibri",color:C.ltT,valign:"middle",margin:0,italic:true});
}
function foot(s){
s.addShape(pres.shapes.RECTANGLE,{x:0,y:7.2,w:13.3,h:0.3,fill:{color:C.navy},line:{color:C.navy}});
s.addText("MG & Thymectomy – Anaesthetic Management & ICU Care | MD Anaesthesia",
{x:0.3,y:7.2,w:12.7,h:0.3,fontSize:8.5,fontFace:"Calibri",color:C.ltT,align:"right",valign:"middle"});
}
function secBreak(s, title, sub){
navyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.9,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.97,w:13.3,h:1.62,fill:{color:C.teal,transparency:20},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.59,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText(title,{x:0.5,y:2.97,w:12.3,h:1.1,fontSize:36,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
if(sub) s.addText(sub,{x:0.5,y:4.18,w:12.3,h:0.46,fontSize:18,fontFace:"Calibri",color:C.ltT,italic:true,align:"center"});
foot(s);
}
function bul(s, items, opts){
const{x=0.4,y=1.18,w=12.5,h=5.9,fz=16,color=C.text}=opts||{};
const arr=items.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<items.length-1,fontSize:fz,fontFace:"Calibri",color}}));
s.addText(arr,{x,y,w,h,valign:"top"});
}
function twoCol(s,left,right,opts){
const{y=1.18,h=5.95,fz=14.5,ltT="",rtT="",sep=6.75}=opts||{};
s.addShape(pres.shapes.LINE,{x:sep,y:1.1,w:0,h:6.2,line:{color:C.teal,width:1.5}});
const gx=sep+0.28;
if(ltT){s.addShape(pres.shapes.RECTANGLE,{x:0.35,y,w:sep-0.45,h:0.38,fill:{color:C.teal,transparency:20},line:{color:C.teal,width:0}});s.addText(ltT,{x:0.4,y,w:sep-0.5,h:0.38,fontSize:13.5,fontFace:"Calibri",color:C.teal,bold:true});}
if(rtT){s.addShape(pres.shapes.RECTANGLE,{x:gx,y,w:13.3-gx-0.2,h:0.38,fill:{color:C.teal,transparency:20},line:{color:C.teal,width:0}});s.addText(rtT,{x:gx,y,w:13.3-gx-0.2,h:0.38,fontSize:13.5,fontFace:"Calibri",color:C.teal,bold:true});}
const yt=(ltT||rtT)?y+0.42:y, ht=(ltT||rtT)?h-0.42:h;
const la=left.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<left.length-1,fontSize:fz,fontFace:"Calibri",color:C.text}}));
const ra=right.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<right.length-1,fontSize:fz,fontFace:"Calibri",color:C.text}}));
s.addText(la,{x:0.35,y:yt,w:sep-0.45,h:ht,valign:"top"});
s.addText(ra,{x:gx,y:yt,w:13.3-gx-0.2,h:ht,valign:"top"});
}
function card(s,x,y,w,h,title,tcol,bgcol,lines,fz){
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h,fill:{color:bgcol||C.cream},line:{color:tcol,width:1.2},rectRadius:0.09});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h:0.46,fill:{color:tcol},line:{color:tcol},rectRadius:0.09});
s.addShape(pres.shapes.RECTANGLE,{x,y:y+0.25,w,h:0.22,fill:{color:tcol},line:{color:tcol}});
s.addText(title,{x:x+0.08,y,w:w-0.16,h:0.46,fontSize:fz||12.5,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
const arr=lines.map((t,i)=>({text:t,options:{bullet:true,breakLine:i<lines.length-1,fontSize:(fz||12.5)-1.5,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:x+0.1,y:y+0.52,w:w-0.2,h:h-0.6,valign:"top"});
}
function alertBox(s, label, text, x, y, w, h, col){
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w,h,fill:{color:col,transparency:12},line:{color:col,width:1.5},rectRadius:0.09});
s.addText([
{text:label+" ",options:{bold:true,color:col,fontSize:13.5}},
{text,options:{color:C.text,fontSize:13}},
],{x:x+0.12,y:y+0.06,w:w-0.24,h:h-0.12,fontFace:"Calibri",valign:"middle"});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
navyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:9.7,y:0,w:3.6,h:7.5,fill:{color:C.teal,transparency:78},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.5,w:13.3,h:2.0,fill:{color:C.teal,transparency:62},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:5.5,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("MYASTHENIA GRAVIS",{x:0.5,y:0.55,w:9.3,h:0.95,fontSize:44,fontFace:"Calibri",color:C.gold,bold:true});
s.addText("& THYMECTOMY",{x:0.5,y:1.46,w:9.3,h:0.85,fontSize:40,fontFace:"Calibri",color:C.white,bold:true});
s.addShape(pres.shapes.RECTANGLE,{x:0.5,y:2.45,w:4.8,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText([
{text:"Anaesthetic Management & Postoperative ICU Care\n",options:{fontSize:22,bold:true,color:C.ltT,breakLine:true}},
{text:"MD Anaesthesia | Neuromuscular Disease & Thoracic Surgery",options:{fontSize:16,color:C.white}},
],{x:0.5,y:2.6,w:9.2,h:1.4});
s.addText([
{text:"Sources: ",options:{bold:true,color:C.gold,fontSize:11}},
{text:"Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e | Morgan & Mikhail 7e | Harrison's Principles of Internal Medicine 22e",options:{color:C.ltT,fontSize:11}},
],{x:0.5,y:5.68,w:12.5,h:0.46});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – LEARNING OBJECTIVES
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Learning Objectives");
bul(s,[
"Understand the pathophysiology and classification (Osserman & MGFA) of Myasthenia Gravis",
"Identify key preoperative risk factors predictive of postoperative ventilatory failure",
"Optimise the MG patient preoperatively: medications, plasmapheresis, IVIG timing",
"Describe the conduct of general anaesthesia for transsternal/VATS thymectomy",
"Select appropriate anaesthetic agents: volatile vs TIVA; NMB use vs NMB-free technique",
"Manage neuromuscular blockade: avoidance, low-dose, or sugammadex reversal strategies",
"Distinguish myasthenic crisis from cholinergic crisis in the ICU",
"Outline postoperative ICU monitoring, ventilation weaning, and extubation criteria",
"Recognise and manage postoperative myasthenic crisis",
"Apply Mapleson's 'ABCDE' score to predict postoperative ventilatory failure",
],{y:1.15,fz:17});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – PATHOPHYSIOLOGY
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Pathophysiology of Myasthenia Gravis");
// Central diagram box
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.35,y:1.18,w:12.6,h:1.0,fill:{color:C.navy},line:{color:C.teal},rectRadius:0.09});
s.addText([
{text:"Core Mechanism: ",options:{bold:true,color:C.gold,fontSize:15}},
{text:"Autoimmune IgG antibodies against nicotinic acetylcholine receptors (nAChRs) at the postsynaptic neuromuscular junction → reduced functional AChRs → impaired neuromuscular transmission → fatigable weakness.",options:{color:C.white,fontSize:14}},
],{x:0.55,y:1.22,w:12.2,h:0.9,valign:"middle",fontFace:"Calibri"});
twoCol(s,
[
"ANTIBODIES (by type)",
"Anti-AChR IgG (85%): most common; complement activation; receptor degradation; blocks ACh binding",
"Anti-MuSK IgG (7–10%): muscle-specific kinase; bulbar-predominant; no thymoma; thymectomy less beneficial",
"Anti-LRP4 (2–5%): lipoprotein-related protein 4; mild disease",
"Seronegative MG (~10%): antibodies undetected; diagnose by EMG/clinical",
"",
"THYMUS GLAND ROLE",
"Thymic hyperplasia: 70% of AChR+ MG patients; germinal centre formation; AChR-reactive T-cells",
"Thymoma: 10–15% of MG; malignant potential; risk of post-thymectomy myasthenic crisis",
"Thymectomy: improves 85–95% of AChR+ MG patients; may achieve complete remission",
],
[
"NEUROMUSCULAR JUNCTION CHANGES",
"Reduced AChR density (by up to 80%)",
"Complement-mediated destruction of junctional folds",
"Widened synaptic cleft",
"Compensatory ACh quantal release (initially) → eventually fails",
"",
"FATIGABILITY PATTERN",
"Repeated nerve stimulation → progressive failure (decrement >10% on repetitive stimulation EMG)",
"Single-fibre EMG: ↑jitter — most sensitive test",
"Worse with exercise, heat, infection, emotion, surgery",
"Better after rest, cold temperatures, anticholinesterases",
"Tensilon (edrophonium) test: IV 2 mg + 8 mg → rapid improvement confirms diagnosis",
],
{y:2.25,h:5.0,fz:13.5,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – OSSERMAN / MGFA CLASSIFICATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Classification of Myasthenia Gravis","Osserman & Genkins (Modified) | MGFA Classification");
// Osserman table
s.addShape(pres.shapes.RECTANGLE,{x:0.3,y:1.18,w:7.8,h:0.42,fill:{color:C.teal},line:{color:C.teal}});
s.addText("OSSERMAN CLASSIFICATION",{x:0.3,y:1.18,w:7.8,h:0.42,fontSize:14,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
const oss=[
["I","Ocular MG","Ptosis, diplopia only; no generalised weakness; best prognosis"],
["IIA","Mild generalised","Slow progression; no respiratory; responds well to drugs; low crisis risk"],
["IIB","Moderate generalised","Skeletal + bulbar involvement; no respiratory crisis; dysarthria, dysphagia"],
["III","Acute severe","Rapid onset <6 months; respiratory muscles + bulbar; crisis risk HIGH"],
["IV","Late severe","Severe generalised ≥2 years post Class I–II; thymoma often present"],
["V","Myasthenic crisis","Mechanical ventilation required; life-threatening; ICU care"],
];
const oX=[0.3,1.12,2.65]; const oW=[0.78,1.5,5.52];
const oH=["Grade","Type","Features"];
oH.forEach((h,i)=>{s.addShape(pres.shapes.RECTANGLE,{x:oX[i],y:1.6,w:oW[i],h:0.38,fill:{color:C.navy},line:{color:C.white,width:0.3}});s.addText(h,{x:oX[i]+0.04,y:1.6,w:oW[i]-0.08,h:0.38,fontSize:12,color:C.gold,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});});
oss.forEach((r,i)=>{
const ry=1.98+i*0.6;
const bg=i%2===0?C.cream:C.ltT;
r.forEach((cell,ci)=>{
s.addShape(pres.shapes.RECTANGLE,{x:oX[ci],y:ry,w:oW[ci],h:0.6,fill:{color:ci===0?C.navy:bg},line:{color:C.teal,width:0.3}});
s.addText(cell,{x:oX[ci]+0.05,y:ry+0.04,w:oW[ci]-0.1,h:0.52,fontSize:ci===0?16:12,fontFace:"Calibri",color:ci===0?C.gold:ci===1?C.teal:C.text,bold:ci===0||ci===1,align:"center",valign:"middle"});
});
});
// MGFA Classification
s.addShape(pres.shapes.RECTANGLE,{x:8.6,y:1.18,w:4.4,h:0.42,fill:{color:C.purple},line:{color:C.purple}});
s.addText("MGFA CLASSIFICATION",{x:8.6,y:1.18,w:4.4,h:0.42,fontSize:14,color:C.white,bold:true,fontFace:"Calibri",align:"center",valign:"middle"});
const mgfa=[
{g:"Class I",d:"Ocular weakness only; no other muscle weakness"},
{g:"Class II",d:"Mild weakness affecting other muscles\n IIa: predominantly limb/axial\n IIb: predominantly bulbar/respiratory"},
{g:"Class III",d:"Moderate weakness\n IIIa: limb/axial predominant\n IIIb: bulbar/respiratory predominant"},
{g:"Class IV",d:"Severe weakness\n IVa: limb/axial\n IVb: bulbar/respiratory"},
{g:"Class V",d:"Intubation required (with or without mechanical ventilation)"},
{g:"Post-intervention\nStatus",d:"Complete Stable Remission (CSR), Pharmacological Remission (PR), Minimal Manifestation (MM), Improved, Unchanged, Worse, Exacerbation, Death"},
];
mgfa.forEach((m,i)=>{
const ry=1.62+i*0.91;
const bg=i%2===0?C.ltP:"EDE0F5";
s.addShape(pres.shapes.RECTANGLE,{x:8.6,y:ry,w:1.2,h:0.88,fill:{color:C.purple},line:{color:C.purple,width:0.4}});
s.addText(m.g,{x:8.62,y:ry+0.04,w:1.16,h:0.8,fontSize:11.5,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
s.addShape(pres.shapes.RECTANGLE,{x:9.82,y:ry,w:3.18,h:0.88,fill:{color:bg},line:{color:C.purple,width:0.4}});
s.addText(m.d,{x:9.88,y:ry+0.04,w:3.1,h:0.8,fontSize:11,fontFace:"Calibri",color:C.text,valign:"middle"});
});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – SECTION BREAK: PREOPERATIVE
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
secBreak(s,"PREOPERATIVE ASSESSMENT & OPTIMISATION","Risk Stratification · Medication Management · Airway");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – PREOPERATIVE ASSESSMENT
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Preoperative Assessment");
// Mapleson score box
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x:0.35,y:1.18,w:12.6,h:0.72,fill:{color:C.navy},line:{color:C.teal},rectRadius:0.08});
s.addText([
{text:"Mapleson Score (Predicts Postoperative Ventilation Need): ",options:{bold:true,color:C.gold,fontSize:13.5}},
{text:"Duration MG >6y (12 pts) | Chronic respiratory disease (10 pts) | Pyridostigmine >750 mg/day (8 pts) | Vital capacity <2.9 L (4 pts) — ",options:{color:C.white,fontSize:13}},
{text:"Score ≥10 → high risk, plan postop ventilation",options:{bold:true,color:C.gold,fontSize:13.5}},
],{x:0.55,y:1.22,w:12.2,h:0.62,fontFace:"Calibri",valign:"middle"});
twoCol(s,
[
"HISTORY & SYMPTOMS",
"Duration and course of MG (acute vs chronic)",
"Osserman / MGFA class — current functional status",
"Bulbar symptoms: dysphagia, dysarthria, aspiration risk → full-stomach precautions",
"Respiratory symptoms: dyspnoea, orthopnoea, exercise tolerance",
"Prior myasthenic crises: number, precipitants, ICU admissions",
"Current medications: pyridostigmine dose and timing",
"Immunosuppressive therapy: steroids, azathioprine, mycophenolate",
"Recent IVIG or plasmapheresis",
"Thymoma characteristics: invasive vs non-invasive; mediastinal compression",
"",
"RISK FACTORS FOR POSTOP VENTILATORY FAILURE (Miller's 10e)",
"Preoperative VC <2 L (or <2.9 L per Mapleson)",
"Pyridostigmine dose >750 mg/day",
"Bulbar symptoms (dysphagia, dysphonia)",
"High anti-AChR antibody titres",
"Prior myasthenic crisis",
"Expected blood loss >1 L",
"Duration of MG >6 years",
"MGFA Class ≥ III",
],
[
"INVESTIGATIONS",
"Pulmonary function: FVC, FEV₁, PEFR — target VC >2.5 L before surgery",
"ABG: baseline PaO₂, PaCO₂ — detect CO₂ retention",
"CXR / CT chest: thymoma size, mediastinal compression, tracheal deviation",
"ECG: arrhythmias (especially if thymoma/paraneoplastic)",
"ECHO: cardiac function, pericardial effusion (thymoma-associated)",
"Anti-AChR antibody titre",
"Serum electrolytes: K⁺, Mg²⁺ (both affect NMJ)",
"LFTs: azathioprine hepatotoxicity",
"Coagulation: steroids/plasmapheresis effect",
"",
"AIRWAY ASSESSMENT",
"Bulbar dysfunction → high aspiration risk → RSI consideration",
"Mediastinal mass: SVC syndrome, tracheal compression",
"Awake fibreoptic intubation if: difficult airway + severe bulbar symptoms",
"Anticipate post-intubation respiratory compromise",
"Identify difficult airway predictors: Mallampati, thyromental distance, mouth opening",
],
{y:1.95,h:5.3,fz:13,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – PREOPERATIVE OPTIMISATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Preoperative Optimisation","Medications · Plasmapheresis · IVIG · Steroids");
const cards_data=[
{
title:"PYRIDOSTIGMINE (Anticholinesterase)",col:C.teal,bg:C.ltT,
items:[
"Continue until morning of surgery (last dose 4–6h preop)",
"Usual dose: 30–120 mg oral q3–6h",
"Dose >750 mg/day → Mapleson risk score ↑",
"If NBM: IV neostigmine (1/30th oral pyridostigmine dose)",
"Do NOT abruptly stop → risk of myasthenic crisis",
"Intraoperative: withhold during surgery (anticholinesterase effects + NMB interference)",
"Resume postop once swallowing confirmed",
]
},
{
title:"CORTICOSTEROIDS",col:C.orange,bg:"FFF3E0",
items:[
"Prednisolone: 1–1.5 mg/kg/day; alternate-day dosing reduces side effects",
"Initial 'steroid dip' (first 1–2 weeks): transient worsening of MG → cover with IVIG/PE",
"Perioperative stress dose: hydrocortisone 100 mg IV 8-hourly (chronic steroid users)",
"If on chronic steroids: do NOT stop preoperatively",
"Steroid side effects: hyperglycaemia, HTN, immunosuppression → monitor perioperatively",
]
},
{
title:"PLASMA EXCHANGE (Plasmapheresis)",col:C.purple,bg:C.ltP,
items:[
"Removes circulating AChR antibodies rapidly",
"5 exchanges over 7–10 days (3–4 L per session)",
"Improves strength within 1–2 weeks; effect lasts 4–8 weeks",
"Indicated: severe bulbar/respiratory symptoms; preop optimisation before thymectomy",
"Complications: hypocalcaemia, hypotension, coagulopathy, infections",
"Perform 2–4 weeks before elective thymectomy",
"Check coagulation, electrolytes before surgery",
]
},
{
title:"INTRAVENOUS IMMUNOGLOBULIN (IVIG)",col:C.blue,bg:C.ltB,
items:[
"Dose: 2 g/kg over 2–5 days (400 mg/kg/day)",
"Mechanism: Fc receptor blockade, anti-idiotype antibodies, complement inhibition",
"Effect onset: 1–2 weeks; duration: 4–6 weeks",
"Alternative to plasmapheresis (equally effective, RCT evidence)",
"Preferred if: haemodynamic instability, poor venous access, coagulopathy",
"Complications: headache, fever, thromboembolic events, renal failure (rare)",
"Complete 1–2 weeks before surgery",
]
},
{
title:"OTHER IMMUNOSUPPRESSANTS",col:C.green,bg:C.ltG,
items:[
"Azathioprine: 2–3 mg/kg/day; steroid-sparing; onset 3–12 months",
"Mycophenolate mofetil: 1–2 g/day; faster onset than AZA",
"Cyclosporine, tacrolimus: refractory disease",
"Rituximab: anti-CD20; highly effective for anti-MuSK MG",
"Eculizumab (Soliris): complement inhibitor; approved for AChR+ MG (FDA 2017)",
"Continue immunosuppressants perioperatively; do NOT stop",
]
},
{
title:"RESPIRATORY PHYSIOTHERAPY",col:C.amber,bg:"FFF8E1",
items:[
"Preoperative incentive spirometry",
"Chest physiotherapy: secretion clearance",
"If VC <2 L: consider IPAP/BiPAP preop night",
"Smoking cessation ≥6 weeks pre-surgery",
"Optimise any concurrent chest infection",
]
},
];
const xs=[0.3,4.55,8.8]; const ys=[1.18,4.05];
cards_data.forEach((c,i)=>{
const col=i%3, row=Math.floor(i/3);
card(s,xs[col],ys[row],4.0,2.7,c.title,c.col,c.bg,c.items,12);
});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – SECTION BREAK: INTRAOPERATIVE
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
secBreak(s,"INTRAOPERATIVE ANAESTHETIC MANAGEMENT","Conduct of Anaesthesia for Thymectomy");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – SURGICAL APPROACHES TO THYMECTOMY
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Surgical Approaches to Thymectomy & Anaesthetic Implications");
const approaches=[
{
name:"Transsternal (Median Sternotomy)",col:C.navy,
items:["Standard approach; complete thymectomy","Requires sternotomy → significant postop pain","Bilateral lung isolation not needed","Single-lumen ETT usually sufficient","Position: supine; arms by sides or extended",
"Ventilation: IPPV; avoid large tidal volumes","Blood loss: moderate (500–1000 mL)","Postop: higher respiratory compromise → ICU"]
},
{
name:"VATS / Video-Assisted Thoracoscopic",col:C.teal,
items:["Minimally invasive; unilateral or bilateral","Requires one-lung ventilation (OLV)","Double-lumen ETT or bronchial blocker","Position: lateral decubitus","CO₂ insufflation may be used (thoracoscopic)","Better for non-invasive thymoma; MITO trial",
"Less postop pain; shorter hospital stay","Early extubation more feasible → PACU vs ICU"]
},
{
name:"Robotic-Assisted (RATS)",col:C.purple,
items:["Increasingly preferred; best visualisation","Requires OLV; DLT or bronchial blocker","Steep Trendelenburg position","CO₂ insufflation pressure monitoring","Less surgeon fatigue; precise dissection",
"Similar anaesthetic concerns to VATS","Recovery profile similar to VATS","Emerging evidence: less MG exacerbation postop"]
},
];
const xs=[0.3,4.55,8.8];
approaches.forEach((a,i)=>{
const x=xs[i];
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:1.18,w:4.1,h:5.85,fill:{color:a.col,transparency:90},line:{color:a.col,width:1.3},rectRadius:0.1});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:1.18,w:4.1,h:0.5,fill:{color:a.col},line:{color:a.col},rectRadius:0.1});
s.addShape(pres.shapes.RECTANGLE,{x,y:1.42,w:4.1,h:0.26,fill:{color:a.col},line:{color:a.col}});
s.addText(a.name,{x:x+0.08,y:1.18,w:3.94,h:0.5,fontSize:13,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
const arr=a.items.map((t,ii)=>({text:t,options:{bullet:true,breakLine:ii<a.items.length-1,fontSize:12.5,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:x+0.1,y:1.73,w:3.9,h:5.2,valign:"top"});
});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – ANAESTHETIC TECHNIQUE
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Conduct of Anaesthesia","Induction · Maintenance · Airway Management");
twoCol(s,
[
"PREMEDICATION",
"Anxiolytics: use cautiously — benzodiazepines may worsen respiratory function; small dose midazolam if needed",
"Pyridostigmine: last oral dose 4–6h before surgery",
"H₂ antagonist / PPI + metoclopramide: if bulbar symptoms (aspiration risk)",
"Antacid prophylaxis: ranitidine or omeprazole night before + morning",
"Atropine: NOT routinely given (may mask anticholinergic crisis signs)",
"",
"MONITORING (in addition to standard ASA monitors)",
"Peripheral nerve stimulator (PNS) / quantitative TOF: ESSENTIAL",
"Processed EEG / BIS: depth of anaesthesia (avoid overdose)",
"Arterial line: continuous BP, ABG (thymectomy)",
"Central venous access: large transsternal surgery, CVP monitoring",
"Temperature: core temp (oesophageal/nasopharyngeal)",
"Urinary catheter: surgery >2h",
"ETCO₂, SpO₂, peak airway pressure",
],
[
"INDUCTION AGENTS",
"Propofol: agent of choice (1.5–2.5 mg/kg IV) — no direct NMJ effects; TIVA feasible",
"Thiopentone: acceptable alternative; not preferred in MG (prolonged sedation)",
"Ketamine: use with caution — increases secretions (may worsen bulbar symptoms)",
"High-dose opioid induction: remifentanil 3–5 µg/kg + propofol → facilitates intubation WITHOUT NMB",
"",
"INTUBATION OPTIONS FOR MG",
"Option A — NMB-FREE technique: propofol + remifentanil 3–5 µg/kg bolus → good intubating conditions in most patients",
"Option B — Very low-dose non-depolarising NMB (1/10th–1/4th of normal dose): atracurium 0.1 mg/kg or rocuronium 0.1–0.2 mg/kg — guided by TOF",
"Option C — Full-dose rocuronium + sugammadex reversal: reliable, predictable; sugammadex 2–4 mg/kg at end (preferred if OLV/thoracic surgery)",
"AVOID succinylcholine: MG patients resistant to depolarising blockade (higher dose needed) + Phase II block risk",
"AVOID high-dose non-depolarising NMB: extreme sensitivity → prolonged block → respiratory failure",
],
{y:1.15,h:5.95,fz:13,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – NMB IN MYASTHENIA GRAVIS
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Neuromuscular Blockade in Myasthenia Gravis","The Most Critical Pharmacological Consideration");
alertBox(s,"⚠ KEY PRINCIPLE:",
"MG patients are EXTREMELY SENSITIVE to non-depolarising NMBAs (↓AChRs → fewer receptors to block → profound effect at small doses). Conversely, they are RELATIVELY RESISTANT to succinylcholine (depolarising NMBAs require higher doses but risk Phase II block). TOF monitoring is MANDATORY.",
0.35,1.18,12.6,0.88,C.red);
// NMB comparison table
const nmb=[
["Agent","Sensitivity in MG","Recommended Approach","Reversal"],
["Succinylcholine","Resistant (need ↑dose)\nPhase II block risk","CONTRAINDICATED in MG\n(risk + unpredictable)","None (except time)"],
["Rocuronium","VERY sensitive\n(1/3 – 1/4 normal dose)","If used: 0.1–0.2 mg/kg\nTOF-guided","Sugammadex 2–16 mg/kg\n(preferred reversal)"],
["Vecuronium","Very sensitive","0.01–0.02 mg/kg if used\nTOF mandatory","Sugammadex 2–4 mg/kg"],
["Atracurium","Sensitive","0.1 mg/kg (1/4 normal)\nMoffatson if renal failure","Neostigmine (caution)\nSugammadex (off-label)"],
["Cisatracurium","Sensitive","0.03–0.05 mg/kg","Sugammadex"],
["Mivacurium","Sensitive + variable","Avoid in MG (plasma ChE variability)","Spontaneous recovery"],
["Remifentanil","N/A","3–5 µg/kg for NMB-free intubation","Naloxone / time"],
];
const cX=[0.3,2.0,4.5,9.1]; const cW=[1.65,2.45,4.55,3.9];
nmb.forEach((row,ri)=>{
const ry=2.15+ri*0.68;
const isH=ri===0;
row.forEach((cell,ci)=>{
const bg=isH?C.teal:(ri%2===0?C.cream:C.ltT);
const fc=isH?C.white:(ci===0?C.navy:ci===3?C.green:C.text);
s.addShape(pres.shapes.RECTANGLE,{x:cX[ci],y:ry,w:cW[ci],h:0.68,fill:{color:isH?C.teal:(ci===0?C.navy:bg)},line:{color:C.teal,width:0.4}});
s.addText(cell,{x:cX[ci]+0.06,y:ry+0.04,w:cW[ci]-0.12,h:0.6,fontSize:isH?12.5:12,fontFace:"Calibri",color:isH?C.white:(ci===0?C.gold:fc),bold:isH||ci===0,valign:"middle"});
});
});
alertBox(s,"★ BEST PRACTICE:",
"NMB-free technique (propofol + high-dose remifentanil) or ultra-low dose rocuronium + sugammadex reversal at end. Quantitative TOF monitoring (acceleromyography) essential throughout. Target TOF ratio ≥0.9 before extubation.",
0.35,6.88,12.6,0.68,C.green);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – MAINTENANCE & SPECIAL CONSIDERATIONS
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Anaesthetic Maintenance & Special Intraoperative Considerations");
twoCol(s,
[
"MAINTENANCE OF ANAESTHESIA",
"TIVA (preferred): propofol 4–8 mg/kg/h + remifentanil infusion (5–15 µg/kg/h)",
"Advantages of TIVA: no volatile agent residual effect on NMJ; predictable emergence; NMB-free feasible",
"Volatile agents (sevoflurane/desflurane): acceptable; possess intrinsic muscle relaxant properties → further reduce NMJ function → USE LOWER DOSES if combined with NMB",
"Analgesia: remifentanil infusion intraop + multimodal postop (reduce opioid requirement)",
"Thoracic epidural: excellent for transsternal sternotomy; reduces postop opioid; aids respiratory function",
"Opioids: morphine/fentanyl cautiously — avoid respiratory depression",
"BIS monitoring: target 40–60; prevent overdose and underdose",
"",
"ONE-LUNG VENTILATION (VATS/Robotic)",
"Double-lumen ETT (left DLT preferred) or bronchial blocker",
"Confirm position with fibreoptic bronchoscope",
"OLV settings: TV 4–5 mL/kg IBW; PEEP 5–8 cmH₂O; FiO₂ 0.8–1.0",
"Permissive hypercapnia if hypoxia limits ventilation",
"Recruitment manoeuvres when converting back to two-lung ventilation",
],
[
"HAEMODYNAMIC MANAGEMENT",
"SVC syndrome (superior mediastinal mass): care with arm positioning; large-bore lower limb IV access",
"Mediastinal compression: cardiac arrhythmias on manipulation — inform surgeon",
"Maintain normotension: phenylephrine/metaraminol preferred (avoid tachycardia)",
"Avoid excessive fluid: thoracic surgery + MG → pulmonary oedema risk",
"",
"DRUGS TO AVOID / USE WITH CAUTION",
"Aminoglycosides: potentiate NMB at NMJ → avoid or monitor closely",
"Fluoroquinolones, clindamycin: can worsen NMJ blockade",
"Magnesium sulphate: CONTRAINDICATED (blocks Ca²⁺-dependent ACh release)",
"β-blockers: reduce NMJ safety margin → may precipitate crisis",
"Phenytoin / carbamazepine: induces hepatic enzymes; may alter drug metabolism",
"Opioids: respiratory depressants — use minimum effective dose",
"Local anaesthetics: aminoamides generally safe; avoid large doses",
"",
"TEMPERATURE MANAGEMENT",
"Maintain normothermia (forced-air warming, warmed fluids)",
"Hypothermia potentiates NMB and impairs reversal",
],
{y:1.15,h:5.95,fz:13,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – EXTUBATION CRITERIA
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Extubation Criteria & Decision-Making After Thymectomy");
alertBox(s,"⚠ KEY DECISION:",
"Extubation vs. elective postoperative ventilation — this is the most critical anaesthetic decision in MG thymectomy. Early extubation in the operating room (or PACU) is preferred whenever safe criteria are met.",
0.35,1.18,12.6,0.75,C.orange);
twoCol(s,
[
"CRITERIA FOR EXTUBATION IN OT / PACU",
"TOF ratio ≥0.9 (quantitative neuromuscular monitoring)",
"Head lift ≥5 seconds sustained",
"Tongue protrusion, hand grip strength adequate",
"Tidal volume ≥7 mL/kg",
"Respiratory rate <25/min without distress",
"SpO₂ ≥96% on FiO₂ 0.4",
"PaCO₂ <45 mmHg on ABG",
"Vital capacity >15 mL/kg",
"Awake, following commands, cooperative",
"Minimal secretions, effective cough",
"Pain adequately controlled (thoracic epidural active)",
"Normothermia achieved",
"No haemodynamic instability",
],
[
"CRITERIA FOR ELECTIVE POSTOP VENTILATION",
"Preoperative Mapleson score ≥10",
"Preoperative VC <2 L",
"Prolonged anaesthesia >4h with NMB used",
"Significant blood loss / haemodynamic instability",
"Bulbar symptoms present preoperatively",
"Transsternal sternotomy (high respiratory compromise)",
"Any intraoperative complications",
"Inability to reverse NMB at end of surgery",
"Hypothermia (core <35°C)",
"BIS not recovered to appropriate level",
"",
"DELAYED EXTUBATION CRITERIA (ICU)",
"FVC recovering toward preoperative baseline",
"MIP (Max Inspiratory Pressure) ≥−25 cmH₂O",
"T-piece trial ×30 min — tolerated without distress",
"ABG satisfactory on FiO₂ 0.35",
],
{y:2.0,h:5.15,fz:13,ltT:"Extubate NOW (OT/PACU)",rtT:"Plan ICU Ventilation",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – SECTION BREAK: ICU CARE
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
secBreak(s,"POSTOPERATIVE ICU CARE","Monitoring · Ventilation · Crisis Management");
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 15 – ICU MONITORING & POSTOP MANAGEMENT
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"ICU Monitoring & Postoperative Management");
twoCol(s,
[
"MONITORING IN ICU",
"Continuous: ECG, SpO₂, ETCO₂ (if ventilated), invasive BP",
"ABG: every 2–4h initially; pH, PaCO₂, PaO₂, lactate",
"Serial FVC / PEFR: 4-hourly — trend is critical",
"Neuromuscular monitoring: TOF when off NMB",
"Chest X-ray: postop baseline; daily if ventilated",
"Serum electrolytes (K⁺, Mg²⁺): q6–12h",
"Urine output: ≥0.5 mL/kg/h",
"Blood glucose: hyperglycaemia (steroids) → treat ≥10 mmol/L",
"Temperature: normothermia target",
"",
"MEDICATIONS IN ICU",
"Pyridostigmine: restart when swallowing safe; NG tube if bulbar",
"Immunosuppressants: continue orally / via NG",
"Steroids: stress dose → taper to maintenance",
"Analgesics: paracetamol + NSAIDs (if no CI) + epidural/PCA",
"Avoid: aminoglycosides, Mg²⁺, β-blockers (if possible)",
"DVT prophylaxis: LMWH + compression stockings",
"Stress ulcer prophylaxis: PPI (high-dose steroids)",
],
[
"RESPIRATORY MANAGEMENT",
"Non-ventilated: high-flow O₂; NIV (BiPAP) as bridge if FVC declining",
"Position: semi-recumbent 30–45° (aspiration risk); head-up",
"Incentive spirometry: hourly",
"Chest physiotherapy: BD/TDS",
"Secretion management: nebulised saline; assisted cough",
"Humidified O₂ via facemask",
"",
"VENTILATOR SETTINGS (if intubated)",
"Mode: volume-controlled SIMV or pressure support",
"Tidal volume: 6–8 mL/kg IBW (lung-protective)",
"PEEP: 5–8 cmH₂O",
"FiO₂: minimum to maintain SpO₂ 94–98%",
"Rate: 12–16 /min; allow patient-triggered breaths",
"Target: PaCO₂ 35–45 mmHg; PaO₂ 75–100 mmHg",
"",
"WEANING FROM VENTILATION",
"FVC ≥15 mL/kg and MIP ≥−25 cmH₂O → attempt weaning",
"PSV trial: progressively reduce pressure support",
"T-piece or CPAP trial for 30–120 min",
"Extubate if: RR <30, SpO₂ ≥95%, cooperative, strong cough",
"Resume pyridostigmine prior to extubation",
],
{y:1.15,h:5.95,fz:12.8,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 16 – MYASTHENIC vs CHOLINERGIC CRISIS
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Myasthenic Crisis vs Cholinergic Crisis","Critical Differential Diagnosis in the ICU");
alertBox(s,"DEFINITION:",
"Myasthenic Crisis: acute exacerbation of MG → respiratory failure requiring intubation or mechanical ventilation. Occurs in 15–20% of MG patients; 5–10% of thymectomy patients.",
0.35,1.18,12.6,0.72,C.red);
const compare=[
["Feature","MYASTHENIC CRISIS","CHOLINERGIC CRISIS"],
["Cause","Insufficient ACh (inadequate pyridostigmine, deterioration)","Excess ACh (pyridostigmine overdose)"],
["Muscle weakness","Severe; generalised","Fasciculations → then weakness"],
["Pupils","Normal or dilated","MIOSIS (pinpoint)"],
["Secretions","Minimal / dry","EXCESSIVE (SLUDGE: Salivation, Lacrimation, Urination, Defaecation, GI, Emesis)"],
["Heart rate","Normal or tachycardia","BRADYCARDIA"],
["Bowel sounds","Normal / reduced","Hyperactive (cramping, diarrhoea)"],
["Skin","Pale, normal","Diaphoresis (sweating)"],
["Tensilon test","IMPROVEMENT","WORSENING (more weakness)"],
["Treatment","Pyridostigmine ↑ / IVIG / Plasmapheresis / Intubation","STOP anticholinesterases; Atropine 0.5–1 mg IV; Intubation if needed"],
];
const cX=[0.3,2.5,6.4]; const cW=[2.15,3.85,6.55];
compare.forEach((row,ri)=>{
const ry=1.98+ri*0.52;
const isH=ri===0;
row.forEach((cell,ci)=>{
const bg=isH?C.teal:(ri%2===0?C.cream:C.ltT);
const specialBg=ci===1&&!isH?(ri%2===0?"FFE5E5":C.ltR):ci===2&&!isH?(ri%2===0?"E5FFE5":C.ltG):bg;
s.addShape(pres.shapes.RECTANGLE,{x:cX[ci],y:ry,w:cW[ci],h:0.52,fill:{color:isH?C.teal:(ci===0?C.navy:specialBg)},line:{color:C.teal,width:0.35}});
s.addText(cell,{x:cX[ci]+0.05,y:ry+0.03,w:cW[ci]-0.1,h:0.46,fontSize:isH?12.5:12,fontFace:"Calibri",color:isH?C.white:(ci===0?C.gold:ci===1?C.red:C.green),bold:isH||ci===0,valign:"middle"});
});
});
alertBox(s,"★ DIAGNOSTIC TIP:",
"Tensilon (edrophonium) test is definitive: 2 mg IV → observe 60s → if improved → Myasthenic crisis; if worse → Cholinergic crisis. Have atropine 0.6 mg ready. Perform only with full resuscitation available.",
0.35,7.06,12.6,0.58,C.amber);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 17 – MANAGEMENT OF MYASTHENIC CRISIS
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Management of Postoperative Myasthenic Crisis","Step-by-Step ICU Protocol");
const steps=[
{n:"STEP 1\nAirway & Breathing",col:C.red,
items:["Immediate intubation if: SpO₂ <90%, RR >30, use of accessory muscles, FVC <15 mL/kg",
"Bag-mask ventilation until intubation achieved",
"Secure definitive airway: RSI with rocuronium (use lowest effective dose: 0.4–0.6 mg/kg); have sugammadex ready",
"Initiate mechanical ventilation: TV 6–8 mL/kg, PEEP 5 cmH₂O"]},
{n:"STEP 2\nIdentify Precipitants",col:C.orange,
items:["Infection (most common trigger: pneumonia, UTI, sepsis)",
"Aspiration event",
"Medication changes: missed pyridostigmine, new drugs worsening NMJ",
"Surgical stress (normal for early post-thymectomy period)",
"Thyroid disease: hyperthyroidism worsens MG",
"Emotional stress, overexertion"]},
{n:"STEP 3\nMedications",col:C.teal,
items:["STOP pyridostigmine (continued use = excessive secretions → aspiration on ventilator)",
"Treat precipitating infection: appropriate antibiotics (AVOID aminoglycosides, fluoroquinolones)",
"Continue/start immunosuppressants (prednisolone + AZA/MMF)",
"Stress-dose steroids if on chronic steroids"]},
{n:"STEP 4\nImmunotherapy",col:C.purple,
items:["FIRST-LINE: IVIG 2 g/kg over 2–5 days OR Plasmapheresis 5 exchanges over 7–10 days",
"Both are equally effective (RCT evidence)",
"IVIG preferred if: haemodynamic instability, no vascular access for PE",
"Expect response in 1–2 weeks",
"Rituximab: consider for refractory / anti-MuSK MG"]},
{n:"STEP 5\nWeaning & Extubation",col:C.green,
items:["Restart pyridostigmine via NG: 30–60 mg q6h; titrate to effect",
"Wean ventilator as strength returns",
"Daily FVC, MIP, RSBI assessments",
"Extubate when: FVC >15 mL/kg + MIP >−25 cmH₂O + T-piece tolerated 2h",
"Post-extubation: high-flow O₂; BiPAP overnight; aggressive chest physio"]},
{n:"STEP 6\nPreventing Recurrence",col:C.blue,
items:["Identify and treat the precipitating cause definitively",
"Long-term immunosuppression optimisation",
"Patient education: early signs of crisis, when to seek help",
"Avoid triggering drugs lifelong",
"Medical alert identification"]},
];
const xs=[0.3,4.55,8.8]; const ys=[1.18,4.05];
steps.forEach((st,i)=>{
const col=i%3, row=Math.floor(i/3);
const x=xs[col], y=ys[row];
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w:4.05,h:2.72,fill:{color:st.col,transparency:91},line:{color:st.col,width:1.2},rectRadius:0.1});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y,w:4.05,h:0.52,fill:{color:st.col},line:{color:st.col},rectRadius:0.1});
s.addShape(pres.shapes.RECTANGLE,{x,y:y+0.28,w:4.05,h:0.24,fill:{color:st.col},line:{color:st.col}});
s.addText(st.n,{x:x+0.08,y,w:3.9,h:0.52,fontSize:12.5,fontFace:"Calibri",color:C.white,bold:true,valign:"middle"});
const arr=st.items.map((t,ii)=>({text:t,options:{bullet:true,breakLine:ii<st.items.length-1,fontSize:11.5,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:x+0.1,y:y+0.57,w:3.85,h:2.1,valign:"top"});
});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 18 – DRUGS TO AVOID IN MG
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Drugs That May Exacerbate Myasthenia Gravis","Critical Pharmacology for the Anaesthetist");
const drugs=[
{cat:"ANTIBIOTICS",col:C.red,items:["Aminoglycosides (gentamicin, tobramycin, neomycin): block presynaptic Ca²⁺-mediated ACh release + postsynaptic blockade","Fluoroquinolones (ciprofloxacin, levofloxacin): unclear mechanism; case reports of MG worsening","Clindamycin, lincomycin: presynaptic ACh release blockade","Colistin / polymyxin: neuromuscular blockade","Tetracyclines: mild NMJ depression","Ampicillin: some case reports"]},
{cat:"CARDIOVASCULAR",col:C.orange,items:["Beta-blockers (propranolol, metoprolol): reduce NMJ safety margin; exacerbate weakness","Calcium channel blockers (verapamil, diltiazem): reduce Ca²⁺-mediated ACh release","Quinidine / procainamide / lidocaine: membrane-stabilising → NMJ depression","Statins: rare myopathy; use with caution"]},
{cat:"NEUROLOGICAL / PSYCHIATRIC",col:C.purple,items:["Phenytoin / carbamazepine: stabilise neuronal membranes; worsen NMJ","Lithium: may worsen myasthenia","Chlorpromazine: anticholinergic + NMJ effects","Benzodiazepines: respiratory depression → reduces respiratory reserve in MG","Gabapentin: case reports of MG exacerbation"]},
{cat:"ANAESTHETIC AGENTS",col:C.navy,items:["Succinylcholine: resist/Phase II block — avoid","All non-depolarising NMBAs: extreme sensitivity; use only if essential with TOF monitoring","Magnesium sulphate: ABSOLUTELY CONTRAINDICATED — blocks Ca²⁺ → ACh release fails","Volatile agents: potentiate NMJ blockade (use lower doses)","Local anaesthetics (large IV doses): membrane-stabilising effects"]},
{cat:"OTHER / SYSTEMIC",col:C.teal,items:["D-penicillamine: may INDUCE MG (generates anti-AChR antibodies) — use in RA/Wilson's only with extreme caution","Chloroquine / hydroxychloroquine: rare induction or worsening","Interferon-alpha: can precipitate MG","Checkpoint inhibitors (nivolumab, pembrolizumab): immune-related MG — severe/refractory","Thyroid replacement therapy: hyperthyroidism worsens MG; hypothyroidism may improve it"]},
{cat:"RELATIVELY SAFE ALTERNATIVES",col:C.green,items:["Antibiotics: carbapenems, cephalosporins, azithromycin (with care), co-amoxiclav","Antihypertensives: hydralazine, ACE inhibitors, angiotensin-II antagonists","Analgesics: paracetamol, NSAIDs, tramadol (caution), opioids (respiratory caution)","Anaesthetics: propofol (TIVA), remifentanil, sevoflurane (low dose), sugammadex reversal"]},
];
const xs=[0.3,4.6,8.9]; const ys=[1.18,3.78];
drugs.forEach((d,i)=>{
const col=i%3, row=Math.floor(i/3);
const x=xs[col], y=ys[row];
card(s,x,y,4.0,2.45,d.cat,d.col,"FFFFFF",d.items,11.5);
});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 19 – SPECIAL CONSIDERATIONS (Pregnancy, Paeds, Emergencies)
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Special Considerations","MG in Pregnancy · Paediatric MG · Emergency Thymectomy");
twoCol(s,
[
"MG IN PREGNANCY",
"Course: unpredictable — 30% improve, 30% worsen, 40% unchanged",
"Worsening common: 1st trimester and postpartum (immune rebound)",
"Neonatal MG: transplacental IgG transfer → 10–20% of neonates; self-limiting (2–4 weeks)",
"Treatment: pyridostigmine safe; azathioprine acceptable; steroids safe; AVOID Mg²⁺ (eclampsia treatment)",
"Obstetric: elective LSCS or assisted 2nd stage (forceps/vacuum) to prevent exhaustion",
"Anaesthesia for LSCS: epidural preferred (avoids general + NMB); neuraxial safe",
"Avoid: Mg²⁺ infusion (absolute CI in MG — precipitates crisis); aminoglycosides",
"Neonatal ICU: watch for respiratory distress in neonate; may need neostigmine",
"",
"PAEDIATRIC / JUVENILE MG",
"Juvenile MG (<18y): AChR+ usually; thymectomy beneficial",
"Ocular MG commonest in children (up to 50%)",
"Succinylcholine: avoid (higher sensitivity); RSI with rocuronium + sugammadex",
"Volatile agents: preferred for maintenance (reduce NMB requirement)",
"NMB-free technique more feasible in children (propofol + remifentanil)",
"Paediatric pyridostigmine dose: 0.5–7 mg/kg/day orally",
],
[
"EMERGENCY THYMECTOMY / LARGE MEDIASTINAL MASS",
"Superior mediastinal mass → SVC syndrome: headache, plethora, arm oedema",
"Tracheal/bronchial compression: may worsen with anaesthesia and supine position",
"Assessment: CT scan, ECHO (cardiac compression), spirometry sitting vs supine",
"High risk: >50% tracheal cross-section reduction on CT",
"Consider: femoral IV access; awake FOI; maintain spontaneous ventilation until airway secured",
"Avoid general anaesthesia if possible: use local/sedation for diagnostic procedures",
"Standby: rigid bronchoscope; CPB on standby for severe compression",
"Position: semi-sitting or lateral if cannot tolerate supine",
"",
"THYMOMA-ASSOCIATED COMPLICATIONS",
"Thymoma: associated with Good's syndrome (hypogammaglobulinaemia + T-cell deficit)",
"Increased infection risk perioperatively",
"Associated paraneoplastic syndromes: pure red cell aplasia, dermatomyositis",
"Invasive thymoma: risk of pleural dissemination; assess preop",
"Post-thymectomy MG: paradoxical worsening in first 1–2 weeks (immune redistribution)",
"Prognosis: AChR+ MG after thymectomy → 85% improve; complete remission in 30–40%",
],
{y:1.15,h:5.95,fz:13,ltT:"",rtT:"",sep:6.75}
);
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 20 – HIGH-YIELD EXAM POINTS
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"High-Yield Exam Points");
bul(s,[
"MG = autoantibodies against nicotinic AChRs → reduced functional receptors → fatigable weakness",
"SENSITIVE to non-depolarising NMBAs (↓ AChRs); RESISTANT to succinylcholine → AVOID suxamethonium",
"Succinylcholine CI: resistance means high dose needed → Phase II block → prolonged paralysis",
"Mapleson score ≥10 = plan postoperative ventilation: duration MG >6y (12pts) + pyridostigmine >750 mg/day (8pts) + VC <2.9L (4pts) + chronic respiratory disease (10pts)",
"VC <2 L, pyridostigmine >750 mg/day, bulbar symptoms, prior crisis = HIGH risk of ventilatory failure",
"NMB-free intubation: propofol + remifentanil 3–5 µg/kg OR rocuronium (ultra-low 0.1–0.2 mg/kg) + sugammadex reversal",
"Sugammadex preferred reversal agent; neostigmine can cause cholinergic crisis in MG",
"Magnesium sulphate: ABSOLUTELY CONTRAINDICATED — blocks presynaptic Ca²⁺-ACh release",
"Aminoglycosides: block ACh release at NMJ → AVOID",
"Myasthenic crisis vs cholinergic crisis: Tensilon test — improvement = myasthenic; worsening = cholinergic",
"Myasthenic crisis treatment: IVIG 2 g/kg or Plasmapheresis (5 exchanges); STOP pyridostigmine on ventilator",
"Post-thymectomy: extubate only if TOF ≥0.9, VC >15 mL/kg, head lift ≥5s, normothermic, awake",
"TIVA (propofol + remifentanil) preferred over volatile agents for MG thymectomy",
"Thoracic epidural for sternotomy: excellent analgesia, preserves respiratory function, reduces opioid requirement",
],{y:1.15,fz:14.5});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 21 – ANAESTHETIC ALGORITHM (SUMMARY)
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
creamBg(s);
hdr(s,"Summary Algorithm: MG Patient for Thymectomy");
const phases=[
{phase:"PREOPERATIVE",col:C.teal,steps:["Assess Osserman/MGFA class + Mapleson score","PFTs: VC, FVC, FEV₁","Optimise: IVIG or PE if Class ≥III","Continue pyridostigmine until 6h preop","Stress-dose steroids if on chronic corticosteroids","Multidisciplinary: neurology + thoracic surgery + anaesthesia"]},
{phase:"INDUCTION",col:C.blue,steps:["Propofol 1.5–2 mg/kg + remifentanil 3–5 µg/kg (NMB-free)","OR: ultra-low rocuronium 0.1–0.2 mg/kg (TOF-guided)","Thoracic epidural insertion (T4–T6) before GA","Invasive monitoring: art line ± CVC","Airway: RSI if bulbar symptoms/full stomach","DLT if VATS/robotic approach"]},
{phase:"MAINTENANCE",col:C.navy,steps:["TIVA: propofol 4–8 mg/kg/h + remifentanil 5–15 µg/kg/h","BIS 40–60; TOF monitoring throughout","Avoid volatile agents alone (potentiate NMJ block)","Avoid aminoglycosides; avoid Mg²⁺","Normothermia; lung-protective ventilation"]},
{phase:"EMERGENCE",col:C.orange,steps:["If NMB used: ensure TOF ≥0.9 (quantitative)","Sugammadex if rocuronium used","Head lift >5s; adequate tidal volumes","Extubate in OT if Mapleson <10 + all criteria met","Elective ventilation if Mapleson ≥10"]},
{phase:"ICU / PACU",col:C.purple,steps:["4-hourly FVC, ABG, clinical assessment","Restart pyridostigmine when swallowing safe","Watch for myasthenic crisis: FVC <15 mL/kg","IVIG or PE if crisis develops","Wean ventilator as strength returns","Target: extubation within 24–48h post-thymectomy"]},
];
const xs=[0.3,2.95,5.6,8.25,10.9]; const W=2.52; const H=5.85;
phases.forEach((p,i)=>{
const x=xs[i];
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:1.18,w:W,h:H,fill:{color:p.col,transparency:92},line:{color:p.col,width:1.3},rectRadius:0.1});
s.addShape(pres.shapes.ROUNDED_RECTANGLE,{x,y:1.18,w:W,h:0.52,fill:{color:p.col},line:{color:p.col},rectRadius:0.1});
s.addShape(pres.shapes.RECTANGLE,{x,y:1.42,w:W,h:0.28,fill:{color:p.col},line:{color:p.col}});
s.addText(p.phase,{x:x+0.06,y:1.18,w:W-0.12,h:0.52,fontSize:13,fontFace:"Calibri",color:C.white,bold:true,align:"center",valign:"middle"});
const arr=p.steps.map((t,ii)=>({text:t,options:{bullet:true,breakLine:ii<p.steps.length-1,fontSize:11.5,fontFace:"Calibri",color:C.text}}));
s.addText(arr,{x:x+0.1,y:1.74,w:W-0.2,h:H-0.62,valign:"top"});
// Arrow between phases
if(i<4){
s.addShape(pres.shapes.RECTANGLE,{x:x+W,y:1.18+H/2-0.06,w:0.42,h:0.06,fill:{color:p.col},line:{color:p.col}});
s.addText("→",{x:x+W,y:1.18+H/2-0.2,w:0.42,h:0.38,fontSize:16,fontFace:"Calibri",color:p.col,bold:true,align:"center",valign:"middle"});
}
});
foot(s);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 22 – THANK YOU
// ═══════════════════════════════════════════════════════════════════════════
{
const s=pres.addSlide();
navyBg(s);
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.85,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:2.92,w:13.3,h:1.65,fill:{color:C.teal,transparency:22},line:{color:C.teal}});
s.addShape(pres.shapes.RECTANGLE,{x:0,y:4.57,w:13.3,h:0.07,fill:{color:C.gold},line:{color:C.gold}});
s.addText("Thank You",{x:0.5,y:2.95,w:12.3,h:1.1,fontSize:52,fontFace:"Calibri",color:C.white,bold:true,align:"center"});
s.addText([
{text:"Key Message: ",options:{bold:true,color:C.gold,fontSize:17}},
{text:"In MG thymectomy, success lies in anticipation — preoperative optimisation, NMB-free or ultra-low-dose NMB with TOF monitoring, TIVA with sugammadex readiness, and a clear ICU plan for the inevitable variability in postoperative respiratory function.",options:{color:C.ltT,fontSize:15}},
],{x:0.8,y:4.85,w:11.7,h:1.45,align:"center",fontFace:"Calibri"});
s.addText("Sources: Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e | Morgan & Mikhail 7e | Harrison's Principles of Internal Medicine 22e",
{x:0.5,y:6.75,w:12.3,h:0.38,fontSize:11,fontFace:"Calibri",color:C.muted,align:"center"});
foot(s);
}
// WRITE FILE
pres.writeFile({fileName:"/home/daytona/workspace/mg-thymectomy-ppt/MG_Thymectomy_Anaesthesia_ICU.pptx"})
.then(()=>console.log("✅ Done"))
.catch(e=>{console.error("❌",e);process.exit(1);});