Vaporizers in MD Anaesthesia
| Agent | SVP at 20°C (mmHg) | Boiling Point (°C) |
|---|---|---|
| Desflurane | ~669 | 23.5 |
| Isoflurane | 238 | 48.5 |
| Sevoflurane | 160 | 58.6 |
| Halothane | 243 | 50.2 |
| Type | Description |
|---|---|
| Out-of-circuit (plenum) | Most modern vaporizers; controlled output introduced into breathing circuit via fresh gas line |
| In-circuit (draw-over) | Used in resource-limited settings and historical systems; patient's breathing draws gas through the vaporizer |
3 × FGF (L/min) × vol% = mL liquid volatile anaesthetic/hour
Required dial setting = normal dial × (760 mmHg ÷ ambient pressure mmHg)

| Factor | Effect |
|---|---|
| Temperature | Higher temp → higher SVP → higher output if uncompensated |
| Flow rate | Very high or very low FGF may cause inaccurate output at extremes of calibration |
| Carrier gas composition | O₂ vs. N₂O vs. air affects output due to differing gas solubility and viscosity in the liquid agent |
| Altitude | Variable bypass: near constant partial pressure output; Tec 6: constant vol% but reduced partial pressure |
| Back pressure (pumping effect) | Positive-pressure ventilation can cause intermittent backpressure into vaporizer, transiently increasing output - check valves reduce this |
| Feature | Variable Bypass (e.g., Tec 7, Vapor 2000) | Desflurane Tec 6 | Aladin Cassette |
|---|---|---|---|
| Mechanism | Gas flow splitting, passive | Heated sump + gas blending | CPU-controlled flow valve |
| Temperature compensation | Bimetallic/mechanical | Electrical heating | Electronic/CPU |
| Agent specific? | Yes (one agent per vaporizer) | Desflurane only | One unit, multiple cassettes |
| Altitude effect | Near constant partial pressure | Constant vol%, decreased partial pressure | Electronic compensation |
| Requires electricity? | No | Yes | Yes |
| Risk of tipping | High | N/A | N/A |
Make a ppt
ls /home/daytona/workspace/ 2>/dev/null && echo "---" && ls /home/daytona/skills…
mkdir -p /home/daytona/workspace/vaporizers-ppt
~/vaporizers-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Vaporizers in Anaesthesia";
pres.author = "MD Anaesthesia";
// ─── Palette ───────────────────────────────────────────────────────────────
const C = {
navy: "0D2B4E", // deep navy – dominant background
teal: "1A6B7C", // supporting teal accent
cyan: "27B5C8", // bright cyan highlight
gold: "E8A820", // gold accent for callouts
white: "FFFFFF",
offWhite:"EFF4F7",
light: "B8D4DE",
midgray: "6E8EA0",
dark: "091B30",
};
// ─── Helpers ───────────────────────────────────────────────────────────────
function titleBar(slide, text, sub) {
// dark left accent bar
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.12, h: 5.625, fill: { color: C.cyan }, line: { color: C.cyan } });
slide.addText(text, {
x: 0.25, y: 0.18, w: 9.5, h: 0.6,
fontSize: 26, bold: true, color: C.white,
fontFace: "Calibri", margin: 0
});
if (sub) {
slide.addText(sub, {
x: 0.25, y: 0.78, w: 9.5, h: 0.32,
fontSize: 13, color: C.light, fontFace: "Calibri", italic: true, margin: 0
});
}
// thin rule under title
slide.addShape(pres.shapes.RECTANGLE, { x: 0.25, y: 1.12, w: 9.5, h: 0.03, fill: { color: C.teal }, line: { color: C.teal } });
}
function card(slide, x, y, w, h, fillColor) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h,
fill: { color: fillColor || C.teal },
line: { color: "FFFFFF", pt: 0 },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.18 }
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
// full-width teal band bottom
card(s, 0, 4.5, 10, 1.125, C.dark);
// Vertical cyan stripe left
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.45, h: 5.625, fill: { color: C.cyan }, line: { color: C.cyan } });
// Circle decoration top-right
s.addShape(pres.shapes.OVAL, { x: 8.2, y: -0.9, w: 3.2, h: 3.2, fill: { color: C.teal, transparency: 70 }, line: { color: C.teal, transparency: 70 } });
s.addShape(pres.shapes.OVAL, { x: 8.8, y: -0.4, w: 2, h: 2, fill: { color: C.cyan, transparency: 55 }, line: { color: C.cyan, transparency: 55 } });
s.addText("VAPORIZERS IN", {
x: 0.7, y: 1.2, w: 9, h: 0.85,
fontSize: 44, bold: true, color: C.white, fontFace: "Calibri",
charSpacing: 5
});
s.addText("ANAESTHESIA", {
x: 0.7, y: 1.9, w: 9, h: 1.1,
fontSize: 58, bold: true, color: C.cyan, fontFace: "Calibri",
charSpacing: 3
});
s.addText("Principles · Classification · Clinical Applications · Hazards", {
x: 0.7, y: 3.2, w: 8, h: 0.45,
fontSize: 15, color: C.light, fontFace: "Calibri", italic: true
});
// Bottom bar text
s.addText("MD Anaesthesia · Miller's 10e · Barash 9e", {
x: 0.5, y: 4.6, w: 9, h: 0.4,
fontSize: 12, color: C.midgray, fontFace: "Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – OVERVIEW / CONTENTS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Overview");
const topics = [
["01", "Definition & Purpose"],
["02", "Relevant Physics (SVP, Latent Heat)"],
["03", "Classification of Vaporizers"],
["04", "Variable Bypass Vaporizer"],
["05", "Desflurane Vaporizer (Tec 6)"],
["06", "Cassette Vaporizer (Aladin)"],
["07", "Factors Affecting Vaporizer Output"],
["08", "Vaporizer Mount & Interlock"],
["09", "Hazards & Special Situations"],
];
const cols = [[0, 3], [4, 8]]; // x-positions for two columns
const colItems = [topics.slice(0, 5), topics.slice(5)];
colItems.forEach((col, ci) => {
const xBase = ci === 0 ? 0.3 : 5.15;
col.forEach((item, i) => {
const y = 1.35 + i * 0.78;
// number badge
s.addShape(pres.shapes.RECTANGLE, { x: xBase, y: y, w: 0.45, h: 0.45, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText(item[0], { x: xBase, y: y + 0.03, w: 0.45, h: 0.38, fontSize: 13, bold: true, color: C.dark, fontFace: "Calibri", align: "center", margin: 0 });
s.addText(item[1], { x: xBase + 0.55, y: y + 0.06, w: 4.2, h: 0.35, fontSize: 14, color: C.white, fontFace: "Calibri", margin: 0 });
});
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – DEFINITION & PURPOSE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Definition & Purpose");
// Main definition box
card(s, 0.3, 1.3, 9.4, 1.2, C.teal);
s.addText("A vaporizer converts liquid volatile anaesthetic into vapour and adds a precise, clinically safe concentration to the fresh gas flow (FGF).", {
x: 0.5, y: 1.38, w: 9, h: 1.02,
fontSize: 15.5, color: C.white, fontFace: "Calibri", italic: false
});
// Three cards: SVP problem, Solution, Historical
const boxes = [
{ x: 0.3, color: C.dark, head: "The Problem", body: "SVP of volatile agents far exceeds clinically useful concentrations\nSevoflurane SVP = 160 mmHg = 21% at 20°C\nClinical use: only 1–3%" },
{ x: 3.55, color: C.dark, head: "The Solution", body: "Vaporizer dilutes saturated vapour with bypass gas to achieve safe, accurate output concentration at the desired vol%" },
{ x: 6.8, color: C.dark, head: "Historical Note", body: "Morton's ether inhaler (1846) – first public anaesthetic\nHad NO temperature compensation or output regulation" },
];
boxes.forEach((b) => {
card(s, b.x, 2.7, 3.1, 2.65, b.color);
s.addShape(pres.shapes.RECTANGLE, { x: b.x, y: 2.7, w: 3.1, h: 0.42, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText(b.head, { x: b.x + 0.1, y: 2.72, w: 2.9, h: 0.38, fontSize: 13, bold: true, color: C.dark, fontFace: "Calibri", margin: 0 });
s.addText(b.body, { x: b.x + 0.12, y: 3.18, w: 2.86, h: 2.1, fontSize: 12.5, color: C.light, fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – PHYSICS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Relevant Physics", "Saturated Vapour Pressure · Latent Heat · Boiling Point");
// SVP table
s.addText("SVP of Common Agents at 20°C", {
x: 0.3, y: 1.25, w: 4.8, h: 0.35,
fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0
});
const tableRows = [
[{ text: "Agent", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "SVP (mmHg)", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Boiling Point", options: { bold: true, color: C.dark, fill: { color: C.cyan } } }],
["Desflurane", "~669", "23.5°C"],
["Halothane", "243", "50.2°C"],
["Isoflurane", "238", "48.5°C"],
["Sevoflurane", "160", "58.6°C"],
];
const rowFills = ["", C.dark, "132E48", C.dark, "132E48"];
const tableData = tableRows.map((row, ri) => {
if (ri === 0) return row;
return row.map(cell => ({ text: cell, options: { color: C.white, fill: { color: rowFills[ri] } } }));
});
s.addTable(tableData, {
x: 0.3, y: 1.65, w: 4.6,
border: { pt: 1, color: C.teal },
fontSize: 13, fontFace: "Calibri",
colW: [1.9, 1.5, 1.2]
});
// Right-side explanations
const concepts = [
{ title: "Saturated Vapour Pressure (SVP)", body: "Pressure exerted by vapour above liquid at equilibrium. Temperature-dependent: ↑ temp → ↑ SVP → ↑ vapour concentration. Determines maximum concentration achievable." },
{ title: "Latent Heat of Vaporization", body: "Energy needed to convert liquid → vapour is absorbed from surroundings. Without compensation, liquid cools → SVP falls → output drops. Vaporizers compensate with wicks/baffles + temp-compensating valves." },
{ title: "Boiling Point", body: "Temperature at which SVP = atmospheric pressure. Inversely related to volatility. Desflurane (BP 23.5°C) boils at room temperature → needs special Tec 6 vaporizer." },
];
concepts.forEach((c, i) => {
const y = 1.25 + i * 1.38;
s.addShape(pres.shapes.RECTANGLE, { x: 5.25, y, w: 4.5, h: 1.28, fill: { color: C.dark }, line: { color: C.teal, pt: 1 } });
s.addShape(pres.shapes.RECTANGLE, { x: 5.25, y, w: 0.06, h: 1.28, fill: { color: C.gold }, line: { color: C.gold } });
s.addText(c.title, { x: 5.4, y: y + 0.05, w: 4.2, h: 0.32, fontSize: 12.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
s.addText(c.body, { x: 5.4, y: y + 0.38, w: 4.2, h: 0.85, fontSize: 11.5, color: C.light, fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – CLASSIFICATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Classification of Vaporizers");
// Two classification axes
// Axis 1: Circuit position
s.addText("By Circuit Position", { x: 0.3, y: 1.25, w: 4.5, h: 0.35, fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const posBoxes = [
{ label: "OUT-OF-CIRCUIT\n(Plenum)", sub: "Modern standard\nOutput via fresh gas line\nOperates under positive pressure", x: 0.3, col: C.teal },
{ label: "IN-CIRCUIT\n(Draw-over)", sub: "Patient's breathing draws gas through\nResource-limited settings\nHistorical significance", x: 2.7, col: "1A4A5A" },
];
posBoxes.forEach(b => {
card(s, b.x, 1.65, 2.25, 2.1, b.col);
s.addText(b.label, { x: b.x + 0.12, y: 1.72, w: 2.0, h: 0.7, fontSize: 13, bold: true, color: C.cyan, fontFace: "Calibri" });
s.addText(b.sub, { x: b.x + 0.12, y: 2.42, w: 2.0, h: 1.25, fontSize: 11.5, color: C.light, fontFace: "Calibri" });
});
// Divider
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 1.2, w: 0.04, h: 4.1, fill: { color: C.teal }, line: { color: C.teal } });
// Axis 2: By design
s.addText("By Design/Mechanism", { x: 5.25, y: 1.25, w: 4.5, h: 0.35, fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const typeBoxes = [
{ num: "1", name: "Variable Bypass", eg: "GE Tec 5/7, Dräger Vapor 2000", y: 1.65 },
{ num: "2", name: "Dual-circuit (Heated)", eg: "Tec 6 / Tec 6 Plus – desflurane only", y: 2.48 },
{ num: "3", name: "Cassette Vaporizer", eg: "GE Aladin – multiple agents", y: 3.31 },
{ num: "4", name: "Injection-type", eg: "Electronic injection of liquid agent", y: 4.14 },
];
typeBoxes.forEach(t => {
card(s, 5.25, t.y, 4.45, 0.72, C.dark);
s.addShape(pres.shapes.RECTANGLE, { x: 5.25, y: t.y, w: 0.4, h: 0.72, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText(t.num, { x: 5.25, y: t.y + 0.18, w: 0.4, h: 0.36, fontSize: 15, bold: true, color: C.dark, fontFace: "Calibri", align: "center", margin: 0 });
s.addText(t.name, { x: 5.75, y: t.y + 0.06, w: 3.8, h: 0.32, fontSize: 13.5, bold: true, color: C.white, fontFace: "Calibri", margin: 0 });
s.addText(t.eg, { x: 5.75, y: t.y + 0.38, w: 3.8, h: 0.28, fontSize: 11, color: C.light, fontFace: "Calibri", margin: 0, italic: true });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – VARIABLE BYPASS VAPORIZER
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Variable Bypass Vaporizer", "Most common type · Agent-specific · Passive (no electricity)");
// Components list (left)
s.addText("Key Components", { x: 0.3, y: 1.25, w: 4.5, h: 0.35, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const comps = [
"Inlet / outlet ports",
"Concentration control dial",
"Bypass chamber",
"Vaporizing chamber (wicks + baffles)",
"Temperature-compensating valve",
"Agent-specific filling assembly",
];
s.addText(comps.map(c => ({ text: c, options: { bullet: { code: "25BA" }, breakLine: true, color: C.white } })).concat([{ text: "" }]),
{ x: 0.3, y: 1.65, w: 4.6, h: 2.0, fontSize: 13, fontFace: "Calibri" }
);
// Principle arrow diagram (simple)
s.addText("PRINCIPLE: FLOW SPLITTING", { x: 0.3, y: 3.72, w: 4.6, h: 0.3, fontSize: 11, bold: true, color: C.cyan, fontFace: "Calibri", charSpacing: 2, margin: 0 });
// FGF arrow
card(s, 0.3, 4.1, 1.1, 0.38, C.teal);
s.addText("FGF IN", { x: 0.3, y: 4.12, w: 1.1, h: 0.34, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", align: "center", margin: 0 });
// bypass
card(s, 1.55, 3.82, 1.6, 0.38, "1A4A5A");
s.addText("BYPASS", { x: 1.55, y: 3.84, w: 1.6, h: 0.34, fontSize: 11, color: C.light, fontFace: "Calibri", align: "center", margin: 0 });
// vap chamber
card(s, 1.55, 4.32, 1.6, 0.38, C.teal);
s.addText("VAP CHAMBER", { x: 1.55, y: 4.34, w: 1.6, h: 0.34, fontSize: 10, color: C.white, fontFace: "Calibri", align: "center", margin: 0 });
// outlet
card(s, 3.3, 4.1, 1.1, 0.38, C.cyan);
s.addText("OUTPUT", { x: 3.3, y: 4.12, w: 1.1, h: 0.34, fontSize: 11, bold: true, color: C.dark, fontFace: "Calibri", align: "center", margin: 0 });
// arrows
s.addShape(pres.shapes.RECTANGLE, { x: 1.42, y: 4.27, w: 0.12, h: 0.04, fill: { color: C.light }, line: { color: C.light } });
s.addShape(pres.shapes.RECTANGLE, { x: 1.42, y: 3.97, w: 0.12, h: 0.04, fill: { color: C.light }, line: { color: C.light } });
s.addShape(pres.shapes.RECTANGLE, { x: 3.16, y: 3.97, w: 0.14, h: 0.04, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addShape(pres.shapes.RECTANGLE, { x: 3.16, y: 4.27, w: 0.14, h: 0.04, fill: { color: C.cyan }, line: { color: C.cyan } });
// Right column: splitting ratio example + temperature compensation
s.addText("Splitting Ratio Example (Sevoflurane, 20°C)", { x: 5.1, y: 1.25, w: 4.6, h: 0.35, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const calcData = [
[{ text: "Parameter", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Value", options: { bold: true, color: C.dark, fill: { color: C.cyan } } }],
["SVP sevoflurane @ 20°C", "160 mmHg = 21%"],
["Vap chamber outflow", "100 mL/min (21 mL sevo)"],
["For 1% output → bypass", "2,000 mL/min"],
["Bypass : vap ratio", "20 : 1"],
["For 2% output → bypass", "950 mL/min"],
["Bypass : vap ratio", "9.5 : 1"],
];
const calcFills = ["", C.dark, "132E48", C.dark, "132E48", C.dark, "132E48"];
const calcFormatted = calcData.map((row, ri) => {
if (ri === 0) return row;
return row.map(cell => ({ text: cell, options: { color: C.white, fill: { color: calcFills[ri] } } }));
});
s.addTable(calcFormatted, {
x: 5.1, y: 1.65, w: 4.6, border: { pt: 1, color: C.teal },
fontSize: 12, fontFace: "Calibri", colW: [2.7, 1.9]
});
// Temp compensation
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 3.62, w: 4.6, h: 1.7, fill: { color: C.dark }, line: { color: C.teal, pt: 1 } });
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 3.62, w: 0.06, h: 1.7, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("Temperature Compensation", { x: 5.25, y: 3.68, w: 4.3, h: 0.3, fontSize: 12.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
s.addText(
"↑ Temp → ↑ SVP → ↑ vapour output (without correction)\nBimetallic strip or expansion rod deflects:\n→ opens bypass more, restricts vaporizing chamber outflow\n→ maintains constant output concentration\nAgent-specific calibration essential",
{ x: 5.25, y: 4.0, w: 4.3, h: 1.25, fontSize: 12, color: C.light, fontFace: "Calibri" }
);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – DESFLURANE VAPORIZER (Tec 6)
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Desflurane Vaporizer – Tec 6 / Tec 6 Plus", "Unique physics demand a unique device");
// Why special?
card(s, 0.3, 1.28, 9.4, 0.88, "8B1A1A");
s.addText("⚠ WHY DESFLURANE NEEDS A SPECIAL VAPORIZER", { x: 0.45, y: 1.32, w: 9.0, h: 0.32, fontSize: 13, bold: true, color: "#FFD700", fontFace: "Calibri", margin: 0 });
s.addText("SVP ≈ 669 mmHg at 20°C · Boiling point = 23.5°C → Boils at room temperature → Unpredictable output in standard vaporizer", {
x: 0.45, y: 1.62, w: 9.0, h: 0.48,
fontSize: 12.5, color: C.white, fontFace: "Calibri", margin: 0
});
// Left: How it works
s.addText("How Tec 6 Works", { x: 0.3, y: 2.28, w: 4.6, h: 0.32, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const steps = [
"Electrically heated sump maintains desflurane at 39°C (~1550 mmHg ≈ 2 atm)",
"All agent is fully vaporized in the sump",
"Pure desflurane vapour is metered as a gas",
"Metered vapour blended into fresh gas flow",
"More accurately a gas BLENDER than a vaporizer",
"Requires electrical power to operate (alarmed if power fails)",
];
s.addText(
steps.map((t, i) => ({ text: `${i + 1}. ${t}`, options: { bullet: false, breakLine: true, color: i === 4 ? C.cyan : C.white } })),
{ x: 0.3, y: 2.65, w: 4.7, h: 2.75, fontSize: 12.5, fontFace: "Calibri" }
);
// Right: Altitude effect
s.addText("Altitude Effect – Critical Difference", { x: 5.25, y: 2.28, w: 4.5, h: 0.32, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const altData = [
[{ text: "", options: { fill: { color: C.cyan } } },
{ text: "Variable Bypass\n(Tec 5/7)", options: { bold: true, color: C.dark, fill: { color: C.cyan }, align: "center" } },
{ text: "Tec 6\n(Desflurane)", options: { bold: true, color: C.dark, fill: { color: C.cyan }, align: "center" } }],
[{ text: "Output", options: { bold: true, color: C.light, fill: { color: "132E48" } } },
{ text: "Constant partial pressure", options: { color: C.white, fill: { color: "132E48" } } },
{ text: "Constant vol%", options: { color: C.white, fill: { color: "132E48" } } }],
[{ text: "High altitude", options: { bold: true, color: C.light, fill: { color: C.dark } } },
{ text: "Near compensated (ambient pressure)", options: { color: C.white, fill: { color: C.dark } } },
{ text: "↓ Partial pressure (vol% same)", options: { color: "#FFD700", fill: { color: C.dark } } }],
[{ text: "Action needed", options: { bold: true, color: C.light, fill: { color: "132E48" } } },
{ text: "Minimal", options: { color: C.white, fill: { color: "132E48" } } },
{ text: "↑ dial setting", options: { color: "#FF8C8C", fill: { color: "132E48" }, bold: true } }],
];
s.addTable(altData, {
x: 5.25, y: 2.65, w: 4.5, border: { pt: 1, color: C.teal },
fontSize: 11.5, fontFace: "Calibri", colW: [1.1, 1.7, 1.7]
});
// Formula
card(s, 5.25, 4.15, 4.5, 1.15, C.dark);
s.addShape(pres.shapes.RECTANGLE, { x: 5.25, y: 4.15, w: 0.06, h: 1.15, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("Altitude Correction Formula (Tec 6):", { x: 5.4, y: 4.22, w: 4.2, h: 0.3, fontSize: 12, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
s.addText("Required dial = Normal dial × (760 mmHg ÷ Ambient pressure mmHg)", {
x: 5.4, y: 4.54, w: 4.2, h: 0.65,
fontSize: 12.5, color: C.cyan, fontFace: "Calibri", bold: true
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – ALADIN CASSETTE VAPORIZER
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Aladin Cassette Vaporizer – GE Aisys / Avance", "CPU-controlled · Multi-agent · Electronic");
// Image placeholder (Aladin cassette image)
const imgUrl = "https://cdn.orris.care/cdss_images/98228e78e640bdd462546ea584c46891b2812e9e182be2b3ee5bc82d3b7c5cfa.png";
const images = JSON.parse(require("child_process").execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js "${imgUrl}"`
).toString());
if (images[0] && images[0].base64) {
s.addImage({ data: images[0].base64, x: 0.3, y: 1.28, w: 3.2, h: 2.4 });
s.addText("Aladin SEV Cassette (GE Carestation)", {
x: 0.3, y: 3.72, w: 3.2, h: 0.3, fontSize: 10, color: C.midgray, fontFace: "Calibri", italic: true, align: "center"
});
}
// How it works
s.addText("Design & Operation", { x: 3.75, y: 1.25, w: 5.9, h: 0.32, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const points = [
"Single permanent vaporizer unit inside the workstation",
"Accepts interchangeable agent-specific Aladin cassettes",
"Agents: halothane, isoflurane, enflurane, sevoflurane, desflurane",
"Cassettes are colour-coded AND magnetically coded (auto-identified by CPU)",
"Fixed restrictor in bypass chamber",
"Electronically controlled flow valve at vaporizing chamber outlet",
"CPU inputs: dial setting, pressure, temperature, bypass flow, vaporizing chamber flow, carrier gas composition",
"No recalibration needed on cassette swap ('CALIBRATION NOT REQUIRED')",
];
s.addText(
points.map(p => ({ text: p, options: { bullet: { code: "25BA" }, breakLine: true, color: C.white } })).concat([{ text: "" }]),
{ x: 3.75, y: 1.62, w: 5.9, h: 2.95, fontSize: 12, fontFace: "Calibri" }
);
// Advantage/disadvantage boxes
const adv = [
{ label: "✔ ADVANTAGES", items: ["One unit handles all agents", "Fast cassette swap", "No cassette tipping risk", "Electronic precision"], col: "0D4A2E" },
{ label: "✘ LIMITATIONS", items: ["Requires electricity", "CPU/sensor failure modes", "Agent-coded – no mixing", "Higher cost"], col: "4A0D0D" },
];
adv.forEach((a, i) => {
const x = 0.3 + i * 4.7;
card(s, x, 4.2, 4.5, 1.2, a.col);
s.addText(a.label, { x: x + 0.12, y: 4.24, w: 4.2, h: 0.3, fontSize: 12, bold: true, color: i === 0 ? "#6FE88F" : "#FF8C8C", fontFace: "Calibri", margin: 0 });
s.addText(a.items.join(" · "), { x: x + 0.12, y: 4.56, w: 4.2, h: 0.75, fontSize: 11.5, color: C.light, fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – FACTORS AFFECTING VAPORIZER OUTPUT
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Factors Affecting Vaporizer Output");
const factors = [
{ title: "Temperature", icon: "🌡", body: "↑ Temperature → ↑ SVP → ↑ output if uncompensated\nModern vaporizers: bimetallic strip compensates\nOutput remains accurate over typical OR range (18–25°C)" },
{ title: "Fresh Gas Flow Rate", icon: "💨", body: "At very high flow rates: insufficient saturation time → ↓ output\nAt very low flow rates: back-diffusion effects\nAccurate over calibrated range (typically 0.2–15 L/min)" },
{ title: "Carrier Gas Composition", icon: "⚗", body: "O₂ vs N₂O vs air differ in solubility in liquid agent\nSwitching from O₂ to N₂O: transient ↑ output then ↓\nSwitching from N₂O to O₂: transient ↓ then return to normal" },
{ title: "Altitude / Barometric Pressure", icon: "🏔", body: "Variable bypass: near constant partial pressure output\nTec 6: constant vol%, but ↓ partial pressure at altitude\nDose adjustment required for Tec 6 at high altitude" },
{ title: "Backpressure (Pumping Effect)", icon: "🔁", body: "Positive-pressure ventilation → intermittent backpressure into vaporizer\nTransiently ↑ output (gas pushed into vaporizing chamber)\nCheck valves (outlet check valve) minimise this effect" },
{ title: "Liquid Level", icon: "💧", body: "Very low agent level → ↓ output\nOverfilling or tipping → agent enters bypass → ↑↑ output\nSide-fill vaporizers prevent most overfilling" },
];
const positions = [
{ x: 0.25, y: 1.28 }, { x: 3.45, y: 1.28 }, { x: 6.65, y: 1.28 },
{ x: 0.25, y: 3.2 }, { x: 3.45, y: 3.2 }, { x: 6.65, y: 3.2 },
];
factors.forEach((f, i) => {
const { x, y } = positions[i];
card(s, x, y, 3.0, 1.82, C.dark);
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 3.0, h: 0.42, fill: { color: C.teal }, line: { color: C.teal } });
s.addText(`${f.icon} ${f.title}`, { x: x + 0.1, y: y + 0.06, w: 2.8, h: 0.3, fontSize: 12.5, bold: true, color: C.white, fontFace: "Calibri", margin: 0 });
s.addText(f.body, { x: x + 0.1, y: y + 0.48, w: 2.8, h: 1.28, fontSize: 11, color: C.light, fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – VAPORIZER MOUNT & INTERLOCK
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Vaporizer Mount & Interlock System");
const pts = [
{ head: "Removable Mounts", body: "Allow rapid vaporizer exchange\nFewer vaporizer positions required\nEssential if malignant hyperthermia suspected – remove vaporizer\nDetachable mounts: risk of low-pressure leaks or FGF obstruction on connection failure" },
{ head: "Post-mounting Checks", body: "Confirm vaporizer is seated and locked before use\nPerform manufacturer-required leak test\nCheck for audible gas leak / spillage" },
{ head: "Interlock Requirement (MANDATORY)", body: "All anaesthesia machines MUST prevent FGF passing through more than one vaporizer simultaneously\nInterlock device designs vary significantly across manufacturers\nInterlock failures have been reported → potential for anaesthetic overdose" },
{ head: "Outlet Check Valve", body: "Located between vaporizer and common gas outlet (e.g., GE Aestiva)\nPrevents backflow into vaporizer during positive-pressure ventilation\nReduces pumping effect (↑ output artefact)\nInfluences which leak test method is appropriate" },
];
pts.forEach((p, i) => {
const x = i < 2 ? 0.3 : 5.2;
const y = i % 2 === 0 ? 1.28 : 3.28;
card(s, x, y, 4.65, 1.88, C.dark);
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 4.65, h: 0.42, fill: { color: i === 2 ? "8B1A1A" : C.teal }, line: { color: i === 2 ? "8B1A1A" : C.teal } });
s.addText(p.head, { x: x + 0.12, y: y + 0.07, w: 4.4, h: 0.3, fontSize: 13, bold: true, color: C.white, fontFace: "Calibri", margin: 0 });
s.addText(p.body, { x: x + 0.12, y: y + 0.5, w: 4.4, h: 1.28, fontSize: 12, color: C.light, fontFace: "Calibri" });
});
// Key rule
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: 5.18, w: 9.4, h: 0.3, fill: { color: "8B1A1A" }, line: { color: "8B1A1A" } });
s.addText("⚠ Never use two vaporizers simultaneously. Interlock failure has caused anaesthetic overdose.", {
x: 0.4, y: 5.19, w: 9.2, h: 0.28, fontSize: 11.5, bold: true, color: "#FFD700", fontFace: "Calibri", margin: 0
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – HAZARDS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Hazards & Special Situations");
const hazards = [
{ title: "Misfilling", color: "6B1A1A", icon: "⚗", body: "Wrong agent → overdose or underdose\nDesflurane in isoflurane vaporizer → massive overdose (much higher SVP)\nAgent-specific fillers reduce (not eliminate) misfilling\nGas analysis is the key safety check" },
{ title: "Tipping", color: "5A2A0A", icon: "↗", body: "Liquid agent enters bypass chamber\nExtremely high vapour output when turned on\nFlush at high flows before returning to use\nSome vaporizers: 'T' (transport) dial setting isolates chambers" },
{ title: "Overfilling", color: "1A4A1A", icon: "💧", body: "Liquid enters bypass → dangerous concentration\nSide-fill design prevents overfilling at normal position\nRisk: rocking/tipping while filling, or filling vaporizer in 'ON' position" },
{ title: "Leaks", color: "1A2A5A", icon: "💨", body: "Sources: filler cap, drain valve, vaporizer-machine interface, internal failure\nPresentation: awareness, low inhaled agent conc, odour of agent\nLeak test after every vaporizer mount/change" },
{ title: "Contamination", color: "3A1A4A", icon: "🦠", body: "Rare but reported\nWater in sevoflurane vaporizer → bacterial growth (S. epidermidis)\nBacteria metabolise agent → volatile toxic compounds" },
{ title: "Carrier Gas Effect", color: "1A3A4A", icon: "⚙", body: "Changing from O₂ to N₂O (or vice versa):\nTransient fluctuation in output\nAllow stabilisation time\nUse circuit gas analyser to confirm final concentration" },
];
const positions = [
{ x: 0.25, y: 1.28 }, { x: 3.45, y: 1.28 }, { x: 6.65, y: 1.28 },
{ x: 0.25, y: 3.22 }, { x: 3.45, y: 3.22 }, { x: 6.65, y: 3.22 },
];
hazards.forEach((h, i) => {
const { x, y } = positions[i];
card(s, x, y, 3.0, 1.88, h.color);
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 3.0, h: 0.42, fill: { color: h.color }, line: { color: h.color } });
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 3.0, h: 0.42, fill: { color: "00000040" }, line: { color: "FFFFFF", pt: 1 } });
s.addText(`${h.icon} ${h.title}`, { x: x + 0.1, y: y + 0.07, w: 2.8, h: 0.3, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
s.addText(h.body, { x: x + 0.1, y: y + 0.5, w: 2.8, h: 1.3, fontSize: 11, color: C.light, fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – COMPARISON TABLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Comparison: Vaporizer Types at a Glance");
const headers = ["Feature", "Variable Bypass\n(Tec 5/7, Vapor 2000)", "Desflurane\n(Tec 6)", "Aladin Cassette\n(GE)"];
const rows = [
["Mechanism", "Passive flow splitting", "Heated sump + gas blending", "CPU-controlled flow valve"],
["Temperature comp.", "Bimetallic/mechanical", "Electrical heating", "Electronic/CPU"],
["Agent-specific?", "Yes – one agent per vaporizer", "Desflurane ONLY", "One unit, multiple cassettes"],
["Requires electricity?", "No", "Yes (alarmed)", "Yes"],
["Altitude (vol%)", "Slight ↑ at altitude", "Constant vol%", "Electronically compensated"],
["Altitude (partial P)", "Near constant", "↓ proportionally", "Compensated"],
["Tipping risk?", "High – flush before use", "N/A", "N/A"],
["Agent consumption\n(approx.)", "3 × FGF × vol% = mL/hr", "Higher consumption", "3 × FGF × vol% = mL/hr"],
];
const allRows = [
headers.map((h, i) => ({ text: h, options: { bold: true, color: C.dark, fill: { color: C.cyan }, align: "center" } })),
...rows.map((row, ri) => row.map((cell, ci) => ({
text: cell,
options: { color: ci === 0 ? C.gold : C.white, fill: { color: ri % 2 === 0 ? C.dark : "132E48" }, bold: ci === 0 }
})))
];
s.addTable(allRows, {
x: 0.2, y: 1.28, w: 9.6,
border: { pt: 1, color: C.teal },
fontSize: 11, fontFace: "Calibri",
colW: [1.9, 2.5, 2.3, 2.9]
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – KEY FORMULAS & QUICK REFERENCE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
titleBar(s, "Key Formulas & Quick Reference");
const formulas = [
{ label: "Saturated vapour concentration (SVC)", formula: "SVC (%) = SVP ÷ Atmospheric pressure × 100" },
{ label: "Liquid agent consumption", formula: "3 × FGF (L/min) × vol% = mL liquid agent / hour" },
{ label: "Tec 6 altitude correction", formula: "Dial setting = Normal dial × (760 ÷ Ambient P mmHg)" },
{ label: "Splitting ratio (vol% output)", formula: "vol% = Vap chamber vapour flow ÷ Total outflow × 100" },
];
formulas.forEach((f, i) => {
const y = 1.3 + i * 1.02;
card(s, 0.3, y, 9.4, 0.92, C.dark);
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 0.06, h: 0.92, fill: { color: C.gold }, line: { color: C.gold } });
s.addText(f.label, { x: 0.48, y: y + 0.06, w: 4.5, h: 0.3, fontSize: 12, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
s.addText(f.formula, { x: 4.8, y: y + 0.22, w: 4.8, h: 0.52, fontSize: 14, bold: true, color: C.cyan, fontFace: "Courier New", margin: 0 });
});
// Quick recall box
card(s, 0.3, 5.15, 9.4, 0.35, C.teal);
s.addText(
"Remember: Variable bypass = agent-specific, passive, prone to tipping. Tec 6 = heated, for desflurane only, increase dial at altitude. Aladin = CPU, multi-agent cassette.",
{ x: 0.45, y: 5.18, w: 9.0, h: 0.29, fontSize: 11, color: C.dark, bold: true, fontFace: "Calibri", margin: 0 }
);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – CLOSING
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.navy };
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.45, h: 5.625, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addShape(pres.shapes.OVAL, { x: 7.5, y: 3.5, w: 4, h: 4, fill: { color: C.teal, transparency: 75 }, line: { color: C.teal, transparency: 75 } });
s.addText("SUMMARY", {
x: 0.7, y: 1.0, w: 9, h: 0.6,
fontSize: 38, bold: true, color: C.cyan, fontFace: "Calibri", charSpacing: 8
});
const summaryPts = [
"Vaporizers precisely dilute volatile anaesthetic vapour to clinically safe concentrations",
"Variable bypass vaporizers: passive, temperature-compensated, agent-specific",
"Desflurane (Tec 6): heated sump gas blender – increase dial at high altitude",
"Aladin cassette: CPU-controlled, multi-agent, requires electricity",
"Key hazards: misfilling, tipping, overfilling, leaks – gas analyser is the safety net",
"Interlock system ensures only one vaporizer operates at a time",
];
s.addText(
summaryPts.map(p => ({ text: p, options: { bullet: { code: "25CF" }, breakLine: true, color: C.white } })).concat([{ text: "" }]),
{ x: 0.7, y: 1.75, w: 8.8, h: 3.2, fontSize: 13.5, fontFace: "Calibri" }
);
s.addText("Sources: Miller's Anesthesia 10e (Ch. 20) · Barash's Clinical Anesthesia 9e (Ch. 25)", {
x: 0.7, y: 5.1, w: 9, h: 0.35,
fontSize: 11, color: C.midgray, fontFace: "Calibri", italic: true
});
}
// ─── Write file ────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/vaporizers-ppt/Vaporizers_in_Anaesthesia.pptx" })
.then(() => console.log("Done: /home/daytona/workspace/vaporizers-ppt/Vaporizers_in_Anaesthesia.pptx"))
.catch(e => { console.error(e); process.exit(1); });
cd /home/daytona/workspace/vaporizers-ppt && node build.js 2>&1
Vaporizers in Anaesthesia
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide |
| 2 | Overview / Table of Contents |
| 3 | Definition & Purpose |
| 4 | Relevant Physics (SVP, Latent Heat, Boiling Point + table) |
| 5 | Classification (by circuit position + by design) |
| 6 | Variable Bypass Vaporizer (components, splitting ratio example, temp compensation) |
| 7 | Desflurane Vaporizer - Tec 6 (why special, mechanism, altitude formula + comparison) |
| 8 | Aladin Cassette Vaporizer (image + design/operation + advantages/limitations) |
| 9 | Factors Affecting Output (6 factor cards) |
| 10 | Vaporizer Mount & Interlock System |
| 11 | Hazards - Misfilling, Tipping, Overfilling, Leaks, Contamination, Carrier gas effect |
| 12 | Comparison table: Variable bypass vs Tec 6 vs Aladin |
| 13 | Key Formulas & Quick Reference |
| 14 | Summary |
Laparoscopic surgeries in MD Anaesthesia
| Parameter | Effect | Mechanism |
|---|---|---|
| Cardiac output | ↓ ~30% at institution | ↓ venous return from lower body compression |
| Systemic vascular resistance (SVR) | ↑ | Direct mechanical compression + neurohumoral (renin-angiotensin activation) |
| Mean arterial pressure (MAP) | → or ↑ up to 16% | ↑ SVR offsets ↓ CO |
| Heart rate | Variable | Vagal stimulation (initial), then tachycardia from hypercarbia |
| Myocardial O2 consumption | ↑ | ↑ afterload |
| Renal, portal, splanchnic flow | ↓ | Compression of vessels |
| Parameter | Effect |
|---|---|
| Functional residual capacity (FRC) | ↓ |
| Vital capacity (VC) | ↓ |
| Pulmonary compliance | ↓ |
| Peak airway pressure | ↑ |
| V/Q mismatch | ↑ (worsened) |
| Shunt | Paradoxically ↓ (CO2 potentiates hypoxic pulmonary vasoconstriction, redistributing blood away from collapsed regions) |
| Arterial oxygenation | Mostly maintained or improved despite more atelectasis |
| System | Effect |
|---|---|
| Cardiac | ↓ myocyte contractility; ↑ myocardial susceptibility to arrhythmias; sensitization to catecholamines |
| Pulmonary vasculature | Vasoconstriction (HPV potentiation) |
| CNS | Cerebrovascular dilation → ↑ cerebral blood flow → ↑ ICP |
| Oxyhemoglobin curve | Rightward shift (Haldane effect) - facilitates O2 unloading |
| Anaesthetic effect | Augmented (CO2 enhances anaesthetic potency) |
| Consciousness | Depressed when PaCO2 >80 mmHg |
| Organ System | Pneumoperitoneum Effect (Trendelenburg) |
|---|---|
| Cardiovascular | ↑ SVR, ↑ MAP, ↑ myocardial O2 consumption, ↓ renal/portal/splanchnic flow |
| Respiratory | ↑ V/Q mismatch, ↓ FRC, ↓ VC, ↓ compliance, ↑ peak airway pressure, pulmonary oedema risk, hypercarbia |
| CNS | ↑ ICP, ↑ cerebral blood flow, ↑ IOP, catecholamine release |
| Endocrine | Renin-angiotensin system activation |
| Other | GOR, venous gas embolism, neuropraxia (brachial), ETT displacement, facial/airway oedema |
| Procedure | Position | Key Anaesthetic Points |
|---|---|---|
| Laparoscopic cholecystectomy | Reverse Trendelenburg | Most common; watch ↓ preload, ↑ airway pressure; short procedure - LMA possible in selected cases |
| Laparoscopic appendicectomy | Trendelenburg/supine | Rapid sequence if peritonitis; ETT required |
| Laparoscopic hysterectomy | Steep Trendelenburg, lithotomy | Near 100% VGE (subclinical); ↑ ICP/IOP; deep NMB; TCI/TIVA for PONV |
| Laparoscopic prostatectomy (robotic) | Steep Trendelenburg | Limited patient access once docked; fluid restriction near urethral anastomosis; ↑ ICP; deep NMB mandatory |
| Laparoscopic nephrectomy | Lateral decubitus | Pad pressure points; similar CV/respiratory concerns; postop oliguria (self-limited) |
| Laparoscopic colectomy | Various | ERAS protocol applicable; multimodal analgesia |
| Gynaecological diagnostic laparoscopy | Trendelenburg | Short procedure; LMA sometimes used; PONV prophylaxis |
| Laparoscopic bariatric surgery | Reverse Trendelenburg | Obese patients: RSI, high PEEP, lung-protective ventilation; ↑ airway pressures expected |
| Monitor | Indication |
|---|---|
| Standard (ECG, SpO2, NIBP, EtCO2) | All cases |
| EtCO2 | Mandatory - continuously monitor CO2 absorption |
| Invasive arterial pressure | Prolonged cases, cardiac disease, obese, IPPV difficulties |
| Central venous pressure | Major cases, haemodynamic instability |
| Urine output | Renal-at-risk patients; keep IAP <12-15 mmHg |
| TOF (neuromuscular monitoring) | All cases requiring NMB |
| TEE | Cardiac disease, suspected VGE, haemodynamic instability |
| Cerebral oximetry / Transcranial Doppler | Cerebrovascular disease, prolonged steep Trendelenburg |
| ONSD (ultrasound) | Non-invasive ICP surrogate, robotic/steep Trendelenburg cases |
| Contraindication | Reason |
|---|---|
| Uncorrected coagulopathy | Trocar haemorrhage |
| Severe haemodynamic instability | Cannot tolerate ↓ CO from pneumoperitoneum |
| Raised ICP (untreated) | Hypercarbia + Trendelenburg = further ↑ ICP |
| Severe pulmonary hypertension | Hypercarbia + ↑ PAP = RV failure |
| Intestinal obstruction (relative) | Bowel distension limits visibility; aspiration risk |
| Previous multiple abdominal surgeries (relative) | Adhesions → trocar injuries |
Make a ppt
mkdir -p /home/daytona/workspace/laparoscopy-ppt && ls /home/daytona/workspace/l…
~/laparoscopy-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Laparoscopic Surgeries – Anaesthesia";
pres.author = "MD Anaesthesia";
// ── Palette ────────────────────────────────────────────────────────────────
const C = {
bg: "0A1F2E", // deep dark blue – dominant background
panel: "0D2E42", // slightly lighter panel
teal: "0E7C7B", // teal accent
cyan: "1BBFBD", // bright cyan highlight
orange: "E07B39", // warm orange for warnings / callouts
gold: "F0B429", // gold for headers / emphasis
green: "27A96C", // green for normal / safe
red: "C0392B", // red for danger
white: "FFFFFF",
light: "B5CDD8",
midgray: "6E8EA0",
dark: "061523",
};
// ── Helpers ────────────────────────────────────────────────────────────────
function titleBar(slide, text, sub) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.14, h: 5.625, fill: { color: C.cyan }, line: { color: C.cyan } });
slide.addText(text, { x: 0.28, y: 0.17, w: 9.5, h: 0.62, fontSize: 26, bold: true, color: C.white, fontFace: "Calibri", margin: 0 });
if (sub) slide.addText(sub, { x: 0.28, y: 0.78, w: 9.5, h: 0.3, fontSize: 13, color: C.light, fontFace: "Calibri", italic: true, margin: 0 });
slide.addShape(pres.shapes.RECTANGLE, { x: 0.28, y: 1.12, w: 9.5, h: 0.03, fill: { color: C.teal }, line: { color: C.teal } });
}
function card(slide, x, y, w, h, fill, lineColor) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h, fill: { color: fill || C.panel },
line: { color: lineColor || "FFFFFF", pt: lineColor ? 1 : 0 },
shadow: { type: "outer", color: "000000", blur: 7, offset: 3, angle: 135, opacity: 0.2 }
});
}
function headerStrip(slide, x, y, w, h, fill, text, textColor) {
slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h, fill: { color: fill }, line: { color: fill } });
slide.addText(text, { x: x + 0.1, y: y + 0.05, w: w - 0.15, h: h - 0.08, fontSize: 12.5, bold: true, color: textColor || C.dark, fontFace: "Calibri", margin: 0 });
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
// decorative circles
s.addShape(pres.shapes.OVAL, { x: 7.8, y: -1.0, w: 4.0, h: 4.0, fill: { color: C.teal, transparency: 78 }, line: { color: C.teal, transparency: 78 } });
s.addShape(pres.shapes.OVAL, { x: 8.6, y: -0.3, w: 2.2, h: 2.2, fill: { color: C.cyan, transparency: 62 }, line: { color: C.cyan, transparency: 62 } });
// bottom bar
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 4.8, w: 10, h: 0.825, fill: { color: C.dark }, line: { color: C.dark } });
// left accent
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText("LAPAROSCOPIC", { x: 0.75, y: 1.0, w: 9, h: 0.8, fontSize: 46, bold: true, color: C.white, fontFace: "Calibri", charSpacing: 4 });
s.addText("SURGERIES", { x: 0.75, y: 1.75, w: 9, h: 0.9, fontSize: 56, bold: true, color: C.cyan, fontFace: "Calibri", charSpacing: 3 });
s.addText("Anaesthetic Principles & Management", { x: 0.75, y: 2.8, w: 8.5, h: 0.45, fontSize: 18, color: C.gold, fontFace: "Calibri", italic: true });
s.addText("Pneumoperitoneum · Positioning · Complications · Special Populations", { x: 0.75, y: 3.3, w: 8.5, h: 0.35, fontSize: 13.5, color: C.light, fontFace: "Calibri" });
s.addText("MD Anaesthesia · Miller's 10e · Barash 9e", { x: 0.6, y: 4.9, w: 8.5, h: 0.35, fontSize: 12, color: C.midgray, fontFace: "Calibri" });
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – CONTENTS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Contents");
const topics = [
["01", "Introduction & Why CO2"],
["02", "Physiology of Pneumoperitoneum"],
["03", "Cardiovascular Effects"],
["04", "Respiratory Effects"],
["05", "CNS, Renal & Other Effects"],
["06", "Positioning Effects"],
["07", "Anaesthetic Management"],
["08", "Ventilation Strategy & NMB"],
["09", "Complications"],
["10", "Venous Gas Embolism"],
["11", "Specific Procedures"],
["12", "Special Patient Populations"],
["13", "Monitoring"],
["14", "Summary"],
];
const half = Math.ceil(topics.length / 2);
[topics.slice(0, half), topics.slice(half)].forEach((col, ci) => {
const xBase = ci === 0 ? 0.28 : 5.15;
col.forEach((item, i) => {
const y = 1.3 + i * 0.6;
s.addShape(pres.shapes.RECTANGLE, { x: xBase, y, w: 0.42, h: 0.38, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText(item[0], { x: xBase, y: y + 0.02, w: 0.42, h: 0.34, fontSize: 12, bold: true, color: C.dark, fontFace: "Calibri", align: "center", margin: 0 });
s.addText(item[1], { x: xBase + 0.52, y: y + 0.06, w: 4.3, h: 0.28, fontSize: 13, color: C.white, fontFace: "Calibri", margin: 0 });
});
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – INTRODUCTION & WHY CO2
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Introduction", "Laparoscopy: minimal access surgery with a unique set of anaesthetic challenges");
// Definition box
card(s, 0.28, 1.28, 9.44, 0.88, C.teal, null);
s.addText("Laparoscopic surgery involves CO2 insufflation into a body cavity (pneumoperitoneum) and camera visualization through small trocar ports. Challenges arise from: (1) physiological effects of CO2 pneumoperitoneum, (2) patient positioning, and (3) limited access to the patient intraoperatively.", {
x: 0.44, y: 1.35, w: 9.1, h: 0.75, fontSize: 13.5, color: C.white, fontFace: "Calibri"
});
// Why CO2 - 4 cards
s.addText("Why CO2 for Insufflation?", { x: 0.28, y: 2.28, w: 5, h: 0.32, fontSize: 13.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const co2 = [
{ icon: "💨", label: "High diffusion coefficient", body: "Rapidly absorbed & excreted via lungs" },
{ icon: "🫧", label: "Lowest embolism risk", body: "Highly soluble – safer than air or O2 if gas embolism occurs" },
{ icon: "🔥", label: "Non-combustible", body: "Safe with electrosurgery / laser" },
{ icon: "💰", label: "Cheap & available", body: "Widely available, easy to store" },
];
co2.forEach((c, i) => {
const x = 0.28 + i * 2.38;
card(s, x, 2.65, 2.22, 1.55, C.panel, C.teal);
s.addText(c.icon, { x: x + 0.08, y: 2.7, w: 0.5, h: 0.5, fontSize: 20, fontFace: "Calibri" });
s.addText(c.label, { x: x + 0.08, y: 3.22, w: 2.06, h: 0.32, fontSize: 12, bold: true, color: C.cyan, fontFace: "Calibri", margin: 0 });
s.addText(c.body, { x: x + 0.08, y: 3.55, w: 2.06, h: 0.58, fontSize: 11.5, color: C.light, fontFace: "Calibri" });
});
// Three challenge pillars
s.addText("The Three Anaesthetic Challenges", { x: 0.28, y: 4.32, w: 5, h: 0.3, fontSize: 13, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const challenges = ["CO2 Pneumoperitoneum\nPhysiology", "Patient Positioning\nTrendelenburg / Lateral", "Limited Patient Access\nOnce trocar / robot docked"];
challenges.forEach((c, i) => {
const x = 0.28 + i * 3.18;
card(s, x, 4.68, 2.98, 0.72, C.dark, C.cyan);
s.addShape(pres.shapes.RECTANGLE, { x, y: 4.68, w: 0.38, h: 0.72, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText(`${i + 1}`, { x, y: 4.86, w: 0.38, h: 0.36, fontSize: 14, bold: true, color: C.dark, fontFace: "Calibri", align: "center", margin: 0 });
s.addText(c, { x: x + 0.48, y: 4.72, w: 2.42, h: 0.62, fontSize: 12, color: C.white, fontFace: "Calibri" });
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – CARDIOVASCULAR EFFECTS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Cardiovascular Effects of Pneumoperitoneum");
// Table
const tData = [
[
{ text: "Parameter", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Effect", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Mechanism", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
],
[
{ text: "Cardiac Output", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "↓ ~30% at institution", options: { color: "#FF8C8C", fill: { color: C.dark } } },
{ text: "↓ Venous return (lower body compression)", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "SVR", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "↑ Significantly", options: { color: "#FF8C8C", fill: { color: C.panel } } },
{ text: "Mechanical compression + renin-angiotensin activation", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "MAP", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "→ or ↑ up to 16%", options: { color: "#6FE88F", fill: { color: C.dark } } },
{ text: "↑ SVR offsets ↓ CO", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Heart Rate", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Variable", options: { color: C.light, fill: { color: C.panel } } },
{ text: "Vagal stimulation initially, then tachycardia from hypercarbia", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Myocardial O2 demand", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "↑", options: { color: "#FF8C8C", fill: { color: C.dark } } },
{ text: "↑ Afterload", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Renal/splanchnic flow", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "↓", options: { color: "#FF8C8C", fill: { color: C.panel } } },
{ text: "Vessel compression + ↓ CO", options: { color: C.light, fill: { color: C.panel } } },
],
];
s.addTable(tData, {
x: 0.28, y: 1.28, w: 9.44,
border: { pt: 1, color: C.teal },
fontSize: 12.5, fontFace: "Calibri",
colW: [2.1, 2.2, 5.14]
});
// Key callouts
const callouts = [
{ color: C.orange, text: "⏱ SVR & CO return toward normal within 10 min of institution (compensatory adaptation)" },
{ color: "8B1A1A", text: "⚠ If IAP > 20 mmHg: CO drops further as venous return collapses AND MAP begins to fall" },
{ color: "1A3A1A", text: "✔ Preoperative fluid loading + preinduction colloid boluses ↑ stroke volume and urine output" },
];
callouts.forEach((c, i) => {
card(s, 0.28, 4.35 + i * 0.38, 9.44, 0.34, c.color, null);
s.addText(c.text, { x: 0.42, y: 4.36 + i * 0.38, w: 9.1, h: 0.3, fontSize: 11.5, color: C.white, bold: i === 1, fontFace: "Calibri", margin: 0 });
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – RESPIRATORY EFFECTS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Respiratory Effects of Pneumoperitoneum");
// Left column: effect table
const rData = [
[
{ text: "Parameter", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Change", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
],
[{ text: "FRC", options: { bold: true, color: C.gold, fill: { color: C.dark } } }, { text: "↓", options: { color: "#FF8C8C", fill: { color: C.dark } } }],
[{ text: "Vital Capacity", options: { bold: true, color: C.gold, fill: { color: C.panel } } }, { text: "↓", options: { color: "#FF8C8C", fill: { color: C.panel } } }],
[{ text: "Pulmonary Compliance", options: { bold: true, color: C.gold, fill: { color: C.dark } } }, { text: "↓", options: { color: "#FF8C8C", fill: { color: C.dark } } }],
[{ text: "Peak Airway Pressure", options: { bold: true, color: C.gold, fill: { color: C.panel } } }, { text: "↑", options: { color: "#FF8C8C", fill: { color: C.panel } } }],
[{ text: "V/Q Mismatch", options: { bold: true, color: C.gold, fill: { color: C.dark } } }, { text: "↑ (worsened)", options: { color: "#FF8C8C", fill: { color: C.dark } } }],
[{ text: "Intrapulm. Shunt", options: { bold: true, color: C.gold, fill: { color: C.panel } } }, { text: "↓ (paradox)", options: { color: "#6FE88F", fill: { color: C.panel } } }],
[{ text: "PaO2", options: { bold: true, color: C.gold, fill: { color: C.dark } } }, { text: "Mostly maintained", options: { color: "#6FE88F", fill: { color: C.dark } } }],
[{ text: "EtCO2 / PaCO2", options: { bold: true, color: C.gold, fill: { color: C.panel } } }, { text: "↑ (CO2 absorption)", options: { color: "#FF8C8C", fill: { color: C.panel } } }],
];
s.addTable(rData, {
x: 0.28, y: 1.28, w: 4.5,
border: { pt: 1, color: C.teal },
fontSize: 12.5, fontFace: "Calibri",
colW: [2.8, 1.7]
});
// Right column: mechanisms
const mechs = [
{ title: "Cephalad Diaphragm Shift", body: "Raised IAP pushes abdominal contents upward\n→ Compression atelectasis, ↓ FRC & VC\n→ ↑ Airway pressures, ↓ compliance" },
{ title: "CO2 Absorption", body: "CO2 absorbed via lymphatic + venous plexuses\n→ ↑ PaCO2 requiring ↑ minute ventilation\n→ Typically 10–25% ↑ MV needed to maintain normocarbia" },
{ title: "The Shunt Paradox", body: "More atelectasis but LESS shunt:\nCO2 potentiates hypoxic pulmonary vasoconstriction (HPV)\n→ Blood redirected away from collapsed lung regions\n→ Better V/Q matching than expected; oxygenation often preserved" },
{ title: "Hypercarbia → Acidosis", body: "Respiratory acidosis if ventilation inadequate\nCO2 augments anaesthetic effect\nPaCO2 >80 mmHg → depressed consciousness" },
];
mechs.forEach((m, i) => {
const y = 1.28 + i * 1.06;
card(s, 5.0, y, 4.72, 0.98, C.dark, C.teal);
s.addShape(pres.shapes.RECTANGLE, { x: 5.0, y, w: 0.07, h: 0.98, fill: { color: C.orange }, line: { color: C.orange } });
s.addText(m.title, { x: 5.16, y: y + 0.05, w: 4.44, h: 0.28, fontSize: 12.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
s.addText(m.body, { x: 5.16, y: y + 0.35, w: 4.44, h: 0.58, fontSize: 11.5, color: C.light, fontFace: "Calibri" });
});
// Bottom note
card(s, 0.28, 5.22, 9.44, 0.3, "8B1A1A", null);
s.addText("⚠ Obese patients: 22% higher RR, 8% lower TV, 38% higher peak inspiratory pressures vs non-obese – expect and plan for higher airway pressures", {
x: 0.42, y: 5.24, w: 9.1, h: 0.26, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – CNS, RENAL & OTHER EFFECTS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "CNS, Renal & Other Systemic Effects");
const blocks = [
{
title: "🧠 CNS / Intracranial", color: "1A2E5A", hdr: C.cyan,
items: [
"↑ ICP: CO2 → cerebral vasodilation → ↑ CBF → ↑ ICP",
"↑ IOP: increases with Trendelenburg depth and duration",
"Optic nerve sheath diameter (ONSD) ↑ – non-invasive ICP surrogate",
"Prolonged steep Trendelenburg → facial, periorbital, and occasional laryngeal oedema",
"Catecholamine release (neurohumoral response)",
]
},
{
title: "🫘 Renal", color: "1A3A2E", hdr: C.green,
items: [
"↓ Renal blood flow: ↓ CO + direct compression + renin-angiotensin activation",
"IAP >15 mmHg → ↑ risk of postoperative AKI",
"Target IAP <12 mmHg for renal protection",
"Post-laparoscopic nephrectomy oliguria: usually self-limited",
"Furosemide, mannitol, 'renal-dose' dopamine: NO proven benefit",
]
},
{
title: "⚡ Endocrine / Other", color: "2E1A3A", hdr: C.gold,
items: [
"Renin-angiotensin system activation",
"Gastro-oesophageal reflux risk (raised IAP)",
"↑ DVT risk (venous stasis + lithotomy position)",
"Trocar placement trauma: ~0.5% visceral/vascular injury",
"Brachial plexus neuropraxia (arm positioning in Trendelenburg)",
"ETT displacement (cephalad carina shift with IAP ↑)",
]
},
];
blocks.forEach((b, i) => {
const y = 1.28 + i * 1.42;
card(s, 0.28, y, 9.44, 1.32, b.color, null);
headerStrip(s, 0.28, y, 9.44, 0.38, b.hdr, b.title, C.dark);
const bullets = b.items.map(it => ({ text: it, options: { bullet: { code: "25BA" }, breakLine: true, color: C.light } }));
bullets.push({ text: "" });
s.addText(bullets, { x: 0.42, y: y + 0.44, w: 9.1, h: 0.82, fontSize: 11.5, fontFace: "Calibri" });
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 7 – POSITIONING EFFECTS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Positioning Effects", "Position type determines physiological perturbations and complications");
const positions = [
{
name: "TRENDELENBURG\n(Head-Down)", use: "Gynaecological, urological laparoscopy\nRobotic prostatectomy / hysterectomy",
effects: [
"↑ Preload (blood funnelled from LE → RA)",
"↑ ICP and ↑ IOP",
"Cephalad diaphragm shift → ↓ FRC, ↑ airway pressures",
"Risk of mainstem intubation (carina shifts cephalad)",
"Protects against VGE (↑ CVP reduces CO2 entrainment)",
"Facial / periorbital / laryngeal oedema (prolonged)",
],
col: "0D2E42", hdr: C.cyan
},
{
name: "REVERSE TRENDELENBURG\n(Head-Up)", use: "Cholecystectomy, upper GI laparoscopy\nBariatric surgery",
effects: [
"↓ Preload → ↓ CO (volume load before surgery)",
"Better pulmonary compliance (bowel falls away from diaphragm)",
"Risk of patient sliding caudally – secure anti-skid padding",
"Lower intraocular pressure",
],
col: "0D2E1A", hdr: C.green
},
{
name: "LATERAL DECUBITUS", use: "Laparoscopic nephrectomy\nAdrenal surgery",
effects: [
"Pad pressure points meticulously",
"Maintain neutral spine alignment",
"Table flexion adds to positional nerve stress",
"Similar CV/respiratory concerns as other laparoscopic positions",
],
col: "2A1A0D", hdr: C.gold
},
];
positions.forEach((p, i) => {
const y = 1.28 + i * 1.43;
card(s, 0.28, y, 9.44, 1.33, p.col, null);
headerStrip(s, 0.28, y, 9.44, 0.38, p.hdr, p.name + " | Use: " + p.use, C.dark);
const bullets = p.effects.map(e => ({ text: e, options: { bullet: { code: "25BA" }, breakLine: true, color: C.light } }));
bullets.push({ text: "" });
s.addText(bullets, { x: 0.42, y: y + 0.44, w: 9.1, h: 0.82, fontSize: 11.5, fontFace: "Calibri" });
});
// Bottom warning
card(s, 0.28, 5.57, 9.44, 0.3, "4A2000", null);
s.addText("⚠ Check ETT position AFTER insufflation AND after every position change – mainstem intubation risk is real", {
x: 0.4, y: 5.58, w: 9.1, h: 0.28, fontSize: 11.5, bold: true, color: C.white, fontFace: "Calibri", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 8 – ANAESTHETIC MANAGEMENT
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Anaesthetic Management", "Preoperative · Airway · Ventilation · Haemodynamics · Analgesia");
const cols = [
{
title: "Preoperative",
hdr: C.cyan,
items: [
"Cardiopulmonary reserve is KEY",
"Obese: ↑ atelectasis risk, ↑ airway pressures, ↑ GORD",
"Cardiac disease: consider arterial line, TEE",
"Pulmonary hypertension: high risk",
"Raised ICP: cerebral oximetry, avoid steep Trendel",
"COPD: widen EtCO2–PaCO2 gap expected",
]
},
{
title: "Airway",
hdr: C.gold,
items: [
"GA with ETT: standard for all major laparoscopic cases",
"LMA: only for short, head-neutral procedures (diagnostic lap in selected patients)",
"NOT LMA in Trendelenburg / long cases / obesity",
"ETT cuff just beyond vocal cords (prevent mainstem)",
"OGT / NGT: decompresses stomach, improves view",
"RSI if peritonitis, bowel obstruction, or aspiration risk",
]
},
{
title: "Haemodynamics",
hdr: C.green,
items: [
"Pre-induction fluid optimisation (colloid if high risk)",
"Maintain IAP <12–15 mmHg",
"Vasopressors (phenylephrine/noradrenaline) for refractory ↓ BP",
"Target MAP ≥65 mmHg",
"For CKD: IAP <12 mmHg to protect renal perfusion",
"Restrict fluids before urethral anastomosis (prostatectomy)",
]
},
];
cols.forEach((col, ci) => {
const x = 0.28 + ci * 3.22;
card(s, x, 1.28, 3.08, 3.85, C.dark, col.hdr);
headerStrip(s, x, 1.28, 3.08, 0.38, col.hdr, col.title, C.dark);
const bullets = col.items.map(it => ({ text: it, options: { bullet: { code: "25BA" }, breakLine: true, color: C.white } }));
bullets.push({ text: "" });
s.addText(bullets, { x: x + 0.12, y: 1.72, w: 2.84, h: 3.35, fontSize: 11.5, fontFace: "Calibri" });
});
// Analgesia section (full width below)
card(s, 0.28, 5.2, 9.44, 0.28, C.panel, C.orange);
s.addText("PAIN MANAGEMENT: Multimodal (paracetamol + opioid) | Epidural: rarely needed for laparoscopic | Port-site infiltration | Rectus sheath catheter | AVOID NSAIDs in urological cases", {
x: 0.42, y: 5.22, w: 9.1, h: 0.24, fontSize: 11, color: C.light, fontFace: "Calibri", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – VENTILATION STRATEGY & NMB
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Ventilation Strategy & Neuromuscular Blockade");
// Left: ventilation
s.addText("Ventilation Strategy", { x: 0.28, y: 1.28, w: 4.7, h: 0.35, fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const ventItems = [
{ hdr: "↑ Minute ventilation", body: "Increase MV by 10–25% from baseline to compensate for CO2 absorption. Monitor EtCO2 continuously." },
{ hdr: "Mode: Pressure Control (PCV)", body: "Recommended over volume control in steep Trendelenburg. ↓ Peak airway pressures, ↑ compliance." },
{ hdr: "Lung-protective settings", body: "TV 6–8 mL/kg IBW · PEEP 5–10 cmH2O · Keep Pplat <30 cmH2O · Driving pressure <15 cmH2O" },
{ hdr: "PEEP titration", body: "Balance oxygenation vs haemodynamic compromise. Higher PEEP → ↑ airway pressure but not equivalent ↑ in transpulmonary pressure (chest wall compliance also affected)." },
{ hdr: "Recruitment manoeuvres", body: "Prevent and reverse atelectasis intraoperatively. Periodic sustained inflations (e.g., 30 cmH2O × 30 s)." },
{ hdr: "Permissive hypercapnia", body: "Acceptable in some but AVOID in: CKD (hyperkalemia from acidosis), ↑ ICP, severe pulm HTN." },
];
ventItems.forEach((v, i) => {
const y = 1.68 + i * 0.64;
card(s, 0.28, y, 4.7, 0.58, i % 2 === 0 ? C.dark : C.panel, C.teal);
s.addText(v.hdr, { x: 0.38, y: y + 0.05, w: 4.5, h: 0.24, fontSize: 12, bold: true, color: C.cyan, fontFace: "Calibri", margin: 0 });
s.addText(v.body, { x: 0.38, y: y + 0.3, w: 4.5, h: 0.24, fontSize: 11, color: C.light, fontFace: "Calibri", margin: 0 });
});
// Right: NMB
s.addText("Neuromuscular Blockade (NMB)", { x: 5.28, y: 1.28, w: 4.44, h: 0.35, fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
card(s, 5.28, 1.68, 4.44, 3.6, C.dark, C.orange);
s.addText([
{ text: "Deep NMB is strongly recommended for laparoscopic surgery:\n\n", options: { bold: true, color: C.orange, breakLine: false } },
{ text: "✔ Allows lower IAP (12 vs 15 mmHg) for equivalent surgical exposure\n", options: { color: C.light } },
{ text: "✔ Lower IAP → less cardiovascular & renal compromise\n", options: { color: C.light } },
{ text: "✔ Improved surgical conditions\n", options: { color: C.light } },
{ text: "✔ Essential in robotic cases – patient movement with fixed arms = internal tissue tearing\n\n", options: { color: C.light } },
{ text: "Monitoring:\n", options: { bold: true, color: C.cyan } },
{ text: "Continuous TOF monitoring intraoperatively\nSugammadex for reversal (faster, more complete than neostigmine)\nConfirm TOF ratio >0.9 before extubation\n\n", options: { color: C.light } },
{ text: "Key principle:\n", options: { bold: true, color: C.cyan } },
{ text: "NMB not only improves surgical conditions but directly reduces physiological stress of pneumoperitoneum by enabling lower insufflation pressures", options: { color: C.light } },
], { x: 5.4, y: 1.76, w: 4.2, h: 3.45, fontSize: 12, fontFace: "Calibri" });
// Bottom strip
card(s, 0.28, 5.33, 9.44, 0.3, "3A1A00", null);
s.addText("TIVA vs Volatile: Both acceptable. TIVA (propofol): ↓ PONV (important – laparoscopy has high PONV rate), may ↓ ICP in steep Trendelenburg (inconclusive data)", {
x: 0.42, y: 5.35, w: 9.1, h: 0.26, fontSize: 11, color: C.light, fontFace: "Calibri", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – VENOUS GAS EMBOLISM
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Venous CO2 Gas Embolism (VGE)", "Most catastrophic complication of laparoscopy");
// Red alert bar
card(s, 0.28, 1.28, 9.44, 0.52, "7A0000", null);
s.addText("VGE = CO2 enters venous system → right heart → ↑ pulmonary arterial pressure → ↓ LV preload → ↓ CO → cardiovascular collapse. Subclinical emboli in ~20% of laparoscopic prostatectomies, ~100% of laparoscopic hysterectomies (by TEE).", {
x: 0.42, y: 1.32, w: 9.1, h: 0.44, fontSize: 12.5, color: C.white, fontFace: "Calibri"
});
// 3 columns: cause / diagnosis / treatment
const sections = [
{
title: "CAUSES / ENTRY POINTS", hdr: C.orange,
items: [
"Direct Veress needle insertion into vein/organ",
"Injured/transected vessels during dissection",
"Round ligament transection (hysterectomy)",
"Deep dorsal venous complex (prostatectomy)",
"Trendelenburg ↑ CVP → protective (less entrainment)",
]
},
{
title: "DIAGNOSIS", hdr: C.gold,
items: [
"Acute tachycardia, arrhythmias",
"QRS widening",
"Hypotension, hypoxia",
"Sudden ↓ EtCO2 (obstruction of pulmonary flow)",
"Cyanosis",
"\"Mill wheel\" murmur on auscultation",
"TEE: most sensitive – near white-out of RV chambers = RV air lock",
]
},
{
title: "TREATMENT", hdr: C.green,
items: [
"IMMEDIATE cessation of CO2 insufflation",
"Abdominal decompression",
"100% O2 + hyperventilation (↑ CO2 elimination)",
"Left lateral decubitus + Trendelenburg\n(Durant's manoeuvre – minimises RV air lock)",
"Rapid IV fluid for hypotension",
"ACLS if cardiac arrest",
]
},
];
sections.forEach((sec, i) => {
const x = 0.28 + i * 3.22;
card(s, x, 1.9, 3.08, 3.5, C.dark, sec.hdr);
headerStrip(s, x, 1.9, 3.08, 0.38, sec.hdr, sec.title, C.dark);
const bullets = sec.items.map(it => ({ text: it, options: { bullet: { code: "25BA" }, breakLine: true, color: C.light } }));
bullets.push({ text: "" });
s.addText(bullets, { x: x + 0.12, y: 2.34, w: 2.84, h: 3.0, fontSize: 11.5, fontFace: "Calibri" });
});
// Durant manoeuvre note
card(s, 0.28, 5.46, 9.44, 0.3, C.teal, null);
s.addText("Durant's Manoeuvre: Left lateral decubitus + Trendelenburg → floats air lock to RV apex → may restore forward flow while aspiration/resuscitation is initiated", {
x: 0.42, y: 5.48, w: 9.1, h: 0.26, fontSize: 11, color: C.dark, bold: true, fontFace: "Calibri", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 11 – OTHER COMPLICATIONS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Other Complications of Laparoscopic Surgery");
const comps = [
{
title: "Subcutaneous Emphysema", hdr: C.orange,
body: "CO2 tracks along fascial planes\nSigns: crepitus on palpation, sudden ↑ EtCO2\nManagement: check needle placement, ↓ IAP, ↑ MV"
},
{
title: "Capnothorax / Pneumothorax", hdr: C.orange,
body: "CO2 enters pleural space (diaphragm defect / fascial tracking)\nSudden ↓ SpO2, ↑ airway pressures\nManagement: decompress, chest drain if severe"
},
{
title: "Endobronchial Intubation", hdr: C.gold,
body: "Cephalad carina shift with ↑ IAP\nETT tip advances into right main bronchus\nPrevention: cuff just below vocal cords; auscultate after insufflation"
},
{
title: "Vagal Bradycardia / Asystole", hdr: C.gold,
body: "Peritoneal stretch → vagal reflex during insufflation\nManagement: stop insufflation, IV atropine 0.6 mg\nRarely progresses to asystole"
},
{
title: "Trocar / Veress Complications", hdr: "FF8C8C",
body: "~0.5% visceral or major vascular injury at insertion\nLarge vessel injury (aorta, IVC) = surgical emergency\nConversion to laparotomy; haemostasis priority"
},
{
title: "Positioning Complications", hdr: C.green,
body: "Brachial plexus neuropraxia (arm position)\nCompartment syndrome (prolonged lithotomy)\nFacial / corneal injury (robotic arms)\nPatient sliding / fall from OR table (extreme Trendelenburg)"
},
];
const positions_g = [
{ x: 0.28, y: 1.28 }, { x: 3.45, y: 1.28 }, { x: 6.62, y: 1.28 },
{ x: 0.28, y: 3.35 }, { x: 3.45, y: 3.35 }, { x: 6.62, y: 3.35 },
];
comps.forEach((c, i) => {
const { x, y } = positions_g[i];
card(s, x, y, 3.02, 1.96, C.dark, C.panel);
headerStrip(s, x, y, 3.02, 0.38, c.hdr === "FF8C8C" ? C.red : c.hdr, c.title, C.dark);
s.addText(c.body, { x: x + 0.12, y: y + 0.45, w: 2.78, h: 1.44, fontSize: 11.5, color: C.light, fontFace: "Calibri" });
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 12 – SPECIFIC PROCEDURES
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Specific Procedures – Anaesthetic Considerations");
const tData = [
[
{ text: "Procedure", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Position", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Key Anaesthetic Points", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
],
[
{ text: "Lap. Cholecystectomy", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Reverse Trendelenburg", options: { color: C.light, fill: { color: C.dark } } },
{ text: "Most common procedure; ↓ preload; short – LMA possible in selected cases; PONV common", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Lap. Appendicectomy", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Trendelenburg / Supine", options: { color: C.light, fill: { color: C.panel } } },
{ text: "RSI if peritonitis or GORD risk; ETT required; antibiotics pre-op", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Lap. Hysterectomy", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Steep Trendelenburg + lithotomy", options: { color: C.light, fill: { color: C.dark } } },
{ text: "~100% subclinical VGE; ↑ ICP/IOP; deep NMB; TIVA preferred (PONV); restrictive fluids", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Robotic Prostatectomy", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Steep Trendelenburg", options: { color: C.light, fill: { color: C.panel } } },
{ text: "Limited access once docked; deep NMB mandatory; fluid restriction near urethral anastomosis; ↑ ICP", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Lap. Nephrectomy", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Lateral decubitus", options: { color: C.light, fill: { color: C.dark } } },
{ text: "Pad pressure points; neutral spine; postop oliguria (self-limited); avoid NSAIDs; no 'renal-dose' dopamine benefit", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Bariatric Laparoscopy", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Reverse Trendelenburg", options: { color: C.light, fill: { color: C.panel } } },
{ text: "Obese: RSI essential; high PEEP; lung-protective ventilation; ↑ airway pressures; GORD risk; DVT prophylaxis", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Diagnostic Laparoscopy", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Trendelenburg", options: { color: C.light, fill: { color: C.dark } } },
{ text: "Short procedure; LMA sometimes acceptable; PONV prophylaxis; ensure full NMB reversal before extubation", options: { color: C.light, fill: { color: C.dark } } },
],
];
s.addTable(tData, {
x: 0.28, y: 1.28, w: 9.44,
border: { pt: 1, color: C.teal },
fontSize: 11.5, fontFace: "Calibri",
colW: [2.0, 1.8, 5.64]
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 13 – SPECIAL POPULATIONS + MONITORING
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Special Populations & Monitoring");
// Left: special populations
s.addText("High-Risk Populations", { x: 0.28, y: 1.28, w: 4.7, h: 0.33, fontSize: 13.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const pops = [
{ label: "Obesity", body: "↑ Atelectasis, ↑ airway P, ↓ FRC\nRSI; high PEEP; lung-protective\nExpect higher peak pressures\nGORD → aspiration risk" },
{ label: "Cardiac Disease (CCF, IHD)", body: "30% ↓ CO + ↑ SVR poorly tolerated\nArterial line ± TEE\nIAP <12 mmHg; no permissive hypercapnia\nWatch for ischaemia (↑ myocardial O2 demand)" },
{ label: "Raised ICP / Cerebrovascular Disease", body: "Transcranial Doppler or cerebral oximetry\nAvoid steep Trendelenburg if possible\nMaintain normocarbia strictly\nMonitor ONSD (non-invasive ICP surrogate)" },
{ label: "CKD / Renal Impairment", body: "IAP <12 mmHg mandatory\nPermissive hypercapnia CONTRAINDICATED\n(acidosis → hyperkalaemia)\nAvoid NSAIDs; monitor UO" },
{ label: "Pulmonary Hypertension", body: "Hypercarbia → ↑ PVR → RV failure\nPrevent hypoxia, acidosis, high airway P\nConsider inhaled NO or prostacyclins\nAvoid N2O" },
];
pops.forEach((p, i) => {
const y = 1.67 + i * 0.78;
card(s, 0.28, y, 4.7, 0.72, C.dark, C.teal);
s.addShape(pres.shapes.RECTANGLE, { x: 0.28, y, w: 0.07, h: 0.72, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addText(p.label, { x: 0.42, y: y + 0.05, w: 4.44, h: 0.26, fontSize: 12, bold: true, color: C.cyan, fontFace: "Calibri", margin: 0 });
s.addText(p.body, { x: 0.42, y: y + 0.34, w: 4.44, h: 0.32, fontSize: 10.5, color: C.light, fontFace: "Calibri", margin: 0 });
});
// Right: monitoring table
s.addText("Monitoring", { x: 5.2, y: 1.28, w: 4.52, h: 0.33, fontSize: 13.5, bold: true, color: C.gold, fontFace: "Calibri", margin: 0 });
const monData = [
[
{ text: "Monitor", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
{ text: "Indication", options: { bold: true, color: C.dark, fill: { color: C.cyan } } },
],
["ECG, SpO2, NIBP, EtCO2", "ALL cases – mandatory"],
["EtCO2 continuous", "Monitor CO2 absorption – all cases"],
["Invasive arterial line", "Prolonged, obese, cardiac disease"],
["CVP / CVC", "Major cases, instability"],
["Urine output", "Renal protection; IAP monitoring"],
["TOF monitoring", "All cases requiring NMB"],
["TEE", "Cardiac disease, suspected VGE"],
["Cerebral oximetry / TCD", "Cerebrovascular disease"],
["ONSD (ultrasound)", "Non-invasive ICP – robotic/Trendelenburg"],
];
const monFormatted = monData.map((row, ri) => {
if (ri === 0) return row;
return row.map(cell => ({ text: cell, options: { color: ri % 2 === 0 ? C.white : C.light, fill: { color: ri % 2 === 0 ? C.panel : C.dark } } }));
});
s.addTable(monFormatted, {
x: 5.2, y: 1.67, w: 4.52,
border: { pt: 1, color: C.teal },
fontSize: 11.5, fontFace: "Calibri",
colW: [2.4, 2.12]
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 14 – CONTRAINDICATIONS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
titleBar(s, "Contraindications to Laparoscopy");
const ciData = [
[
{ text: "Contraindication", options: { bold: true, color: C.dark, fill: { color: C.red } } },
{ text: "Type", options: { bold: true, color: C.dark, fill: { color: C.red } } },
{ text: "Reason", options: { bold: true, color: C.dark, fill: { color: C.red } } },
],
[
{ text: "Uncorrected coagulopathy", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Absolute", options: { color: "#FF8C8C", bold: true, fill: { color: C.dark } } },
{ text: "Uncontrollable trocar haemorrhage", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Severe haemodynamic instability", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Absolute", options: { color: "#FF8C8C", bold: true, fill: { color: C.panel } } },
{ text: "Cannot tolerate ↓ CO from pneumoperitoneum", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Uncorrected ↑ ICP", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Absolute", options: { color: "#FF8C8C", bold: true, fill: { color: C.dark } } },
{ text: "Hypercarbia + Trendelenburg = further ↑ ICP → herniation", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Severe pulmonary hypertension", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Absolute", options: { color: "#FF8C8C", bold: true, fill: { color: C.panel } } },
{ text: "Hypercarbia + ↑ PAP → RV failure", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Intestinal obstruction", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Relative", options: { color: C.orange, bold: true, fill: { color: C.dark } } },
{ text: "Bowel distension ↓ visibility; ↑ aspiration risk; bowel injury risk", options: { color: C.light, fill: { color: C.dark } } },
],
[
{ text: "Previous multiple laparotomies", options: { bold: true, color: C.gold, fill: { color: C.panel } } },
{ text: "Relative", options: { color: C.orange, bold: true, fill: { color: C.panel } } },
{ text: "Dense adhesions → ↑ trocar injury; consider open entry", options: { color: C.light, fill: { color: C.panel } } },
],
[
{ text: "Morbid obesity / very high BMI", options: { bold: true, color: C.gold, fill: { color: C.dark } } },
{ text: "Relative", options: { color: C.orange, bold: true, fill: { color: C.dark } } },
{ text: "↑ IAP at baseline, ↑ airway pressures, ↑ aspiration risk – manage carefully", options: { color: C.light, fill: { color: C.dark } } },
],
];
s.addTable(ciData, {
x: 0.28, y: 1.28, w: 9.44,
border: { pt: 1, color: C.teal },
fontSize: 12.5, fontFace: "Calibri",
colW: [3.0, 1.3, 5.14]
});
card(s, 0.28, 5.45, 9.44, 0.3, C.teal, null);
s.addText("Decision to proceed must weigh surgical benefit vs physiological risk on a case-by-case basis with anaesthesiologist-surgeon shared decision-making", {
x: 0.42, y: 5.47, w: 9.1, h: 0.26, fontSize: 11.5, bold: true, color: C.dark, fontFace: "Calibri", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 15 – SUMMARY
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.bg };
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.5, h: 5.625, fill: { color: C.cyan }, line: { color: C.cyan } });
s.addShape(pres.shapes.OVAL, { x: 7.5, y: 3.2, w: 4.5, h: 4.5, fill: { color: C.teal, transparency: 80 }, line: { color: C.teal, transparency: 80 } });
s.addText("SUMMARY", { x: 0.75, y: 0.7, w: 9, h: 0.65, fontSize: 40, bold: true, color: C.cyan, fontFace: "Calibri", charSpacing: 8 });
const summaryPts = [
"CO2 pneumoperitoneum: ↓ CO (~30%), ↑ SVR, ↑ MAP, ↑ airway pressures, ↑ CO2 absorption, ↑ ICP",
"Trendelenburg: ↑ ICP/IOP, cephalad diaphragm, mainstem intubation risk – check ETT after insufflation",
"Increase MV by 10–25% to compensate CO2 absorption; use PCV in steep Trendelenburg; lung-protective settings",
"Deep NMB allows lower IAP → less haemodynamic & renal compromise; mandatory for robotic cases",
"VGE: cease insufflation → 100% O2 → Durant's position → hyperventilation → ACLS if arrest",
"High-risk patients (cardiac, obesity, CKD, pulm HTN): additional monitoring, strict IAP limits",
"PONV prophylaxis essential; multimodal analgesia; TIVA preferred for PONV-prone procedures",
];
s.addText(
summaryPts.map(p => ({ text: p, options: { bullet: { code: "25CF" }, breakLine: true, color: C.white } })).concat([{ text: "" }]),
{ x: 0.75, y: 1.48, w: 8.8, h: 3.8, fontSize: 13.5, fontFace: "Calibri" }
);
s.addText("Sources: Miller's Anesthesia 10e (Ch. 12, 27, 67) · Barash's Clinical Anesthesia 9e (Ch. 44, 50)", {
x: 0.75, y: 5.2, w: 9, h: 0.35, fontSize: 11, color: C.midgray, fontFace: "Calibri", italic: true
});
}
// ── Write ──────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/laparoscopy-ppt/Laparoscopic_Anaesthesia.pptx" })
.then(() => console.log("Done: /home/daytona/workspace/laparoscopy-ppt/Laparoscopic_Anaesthesia.pptx"))
.catch(e => { console.error(e); process.exit(1); });
cd /home/daytona/workspace/laparoscopy-ppt && node build.js 2>&1
Laparoscopic Anaesthesia
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title |
| 2 | Contents |
| 3 | Introduction & Why CO2 |
| 4 | Cardiovascular Effects (table with all parameters + key callouts) |
| 5 | Respiratory Effects (table + mechanism cards + obese warning) |
| 6 | CNS, Renal & Other Systemic Effects |
| 7 | Positioning Effects (Trendelenburg / Reverse / Lateral) |
| 8 | Anaesthetic Management (Preop / Airway / Haemodynamics / Analgesia) |
| 9 | Ventilation Strategy & Neuromuscular Blockade |
| 10 | Venous Gas Embolism (Causes / Diagnosis / Treatment + Durant's manoeuvre) |
| 11 | Other Complications (6 cards) |
| 12 | Specific Procedures table (Cholecystectomy → Diagnostic lap) |
| 13 | Special Populations + Monitoring table |
| 14 | Contraindications (absolute vs relative table) |
| 15 | Summary |
Write a model Long case sheet for laparoscopic surgery in MD Anaesthesia practicals with viva questions