Make good ppt on brachial pain plexus block for anaesthesia resident including anatomy from standard textbook
mkdir -p /home/daytona/workspace/brachial-plexus-ppt && ls /home/daytona/workspace/brachial-plexus-ppt
~/brachial-plexus-ppt/create_pptx.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// Fetch key images from textbooks
const imageUrls = [
"https://cdn.orris.care/cdss_images/ddb7760ae0be5be8ef0c10e451f1a1b7fa8898ce929f57a82f61ad4b2c213ce2.png", // Brachial plexus nerve diagram - anatomy overview
"https://cdn.orris.care/cdss_images/bc37e13aab097750cdf42d9a3149b0ea5dfd01187e389632c72b6f5afde1388d.png", // Brachial plexus formation C5-T1
"https://cdn.orris.care/cdss_images/f2e9f9f935667f6815a422bbc2157b6046bb33ea0e3c6a783a0ae147bd128448.png", // Interscalene - cricoid/C6 level anatomy
"https://cdn.orris.care/cdss_images/9f3410473978b7706469e17db0778b1ba58b180a9892cd68efe758aa3e1470e1.png", // Interscalene ultrasound
"https://cdn.orris.care/cdss_images/4645a2c0ebb4e18ca81c37065614269e62043eab114c17dfba5ab9af99cd9b68.png", // Supraclavicular ultrasound - first rib
"https://cdn.orris.care/cdss_images/07c2223e27434c723620201e5fbd190799a4a74214d8f1022851429a0528acb9.png", // Infraclavicular ultrasound
"https://cdn.orris.care/cdss_images/0d5a0c6bafbe3fde0249e2a109687418cd099060fa333df53e38e505322470be.png", // Axillary block ultrasound
"https://cdn.orris.care/cdss_images/f9f78c59cc0f778b2e37efa5ca8f5348dc60c935785f5edd73c26e13e68e34ae.png", // Cutaneous nerve distribution
];
console.log("Fetching images...");
let images;
try {
images = JSON.parse(execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`,
{ timeout: 60000 }
).toString());
console.log("Images fetched:", images.map(i => i.error ? "ERROR: "+i.error : "OK").join(", "));
} catch (e) {
console.error("Image fetch failed:", e.message);
images = imageUrls.map(u => ({ url: u, base64: null, error: e.message }));
}
function getImg(index) {
if (images[index] && images[index].base64 && !images[index].error) {
return images[index].base64;
}
return null;
}
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Anaesthesia Education";
pres.title = "Brachial Plexus Block";
// === COLOR PALETTE ===
// Deep navy blue (dominant), steel blue (supporting), teal accent, white text
const NAVY = "0D1B2A";
const BLUE = "1B5E8C";
const TEAL = "00B4D8";
const SILVER = "E0EAF4";
const WHITE = "FFFFFF";
const GOLD = "F0A500";
const DARK = "091524";
const WARN = "E63946";
// ─────────────────────────────────────────────
// SLIDE 1 — TITLE SLIDE
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
// Full background
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: NAVY } });
// Decorative teal bar left
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
// Decorative horizontal accent
s.addShape(pres.shapes.RECTANGLE, { x: 0.18, y: 2.75, w: 9.82, h: 0.06, fill: { color: TEAL } });
// Bottom accent strip
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: BLUE } });
// Vertical text strip label
s.addText("REGIONAL ANAESTHESIA", {
x: 0.22, y: 0.3, w: 9.5, h: 0.45,
color: TEAL, fontSize: 12, bold: false, charSpacing: 4, align: "left"
});
// Main title
s.addText("BRACHIAL PLEXUS\nBLOCK", {
x: 0.5, y: 0.85, w: 9, h: 1.7,
color: WHITE, fontSize: 46, bold: true, align: "left", valign: "top"
});
// Subtitle
s.addText("Anatomy, Approaches & Ultrasound-Guided Techniques", {
x: 0.5, y: 2.82, w: 9, h: 0.55,
color: SILVER, fontSize: 16, align: "left", italic: true
});
// For: line
s.addText("For Anaesthesia Residents", {
x: 0.5, y: 3.55, w: 9, h: 0.4,
color: GOLD, fontSize: 15, bold: true, align: "left"
});
// Source
s.addText("Source: Miller's Anaesthesia 10e | Morgan & Mikhail's Clinical Anaesthesiology 7e | Barash 9e", {
x: 0.5, y: 5.1, w: 9, h: 0.28,
color: SILVER, fontSize: 9, align: "left"
});
}
// ─────────────────────────────────────────────
// SLIDE 2 — OUTLINE
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: NAVY } });
s.addText("OVERVIEW", { x: 0.4, y: 0.2, w: 9, h: 0.4, color: TEAL, fontSize: 11, bold: true, charSpacing: 4 });
s.addText("Contents", { x: 0.4, y: 0.55, w: 9, h: 0.55, color: WHITE, fontSize: 30, bold: true });
const items = [
["01", "Anatomy of the Brachial Plexus", "Roots, trunks, divisions, cords, terminal branches"],
["02", "Applied Anatomy", "Relationships, surface landmarks, dermatomes"],
["03", "Interscalene Block", "Shoulder & proximal arm — technique, complications"],
["04", "Supraclavicular Block", "Arm, forearm, hand — the 'spinal of the arm'"],
["05", "Infraclavicular Block", "Catheter-friendly — cords & terminal nerves"],
["06", "Axillary Block", "Safe, superficial, distal — wrist & hand"],
["07", "Local Anaesthetic Agents", "Drugs, volumes, adjuncts"],
["08", "Complications & Safety", "Systematic overview"],
];
items.forEach(([num, title, sub], i) => {
const col = i < 4 ? 0 : 1;
const row = i < 4 ? i : i - 4;
const x = col === 0 ? 0.4 : 5.2;
const y = 1.35 + row * 0.97;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w: 4.55, h: 0.82, fill: { color: NAVY }, rectRadius: 0.08 });
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 0.42, h: 0.82, fill: { color: BLUE } });
s.addText(num, { x, y, w: 0.42, h: 0.82, color: TEAL, fontSize: 13, bold: true, align: "center", valign: "middle", margin: 0 });
s.addText(title, { x: x + 0.48, y: y + 0.04, w: 4.0, h: 0.38, color: WHITE, fontSize: 11, bold: true });
s.addText(sub, { x: x + 0.48, y: y + 0.42, w: 4.0, h: 0.3, color: SILVER, fontSize: 9 });
});
}
// ─────────────────────────────────────────────
// SLIDE 3 — ANATOMY OVERVIEW (Formation)
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("ANATOMY", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: TEAL, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Formation of the Brachial Plexus", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 26, bold: true });
// Left column — text
const leftX = 0.4;
s.addText("Nerve Roots", { x: leftX, y: 1.05, w: 5, h: 0.32, color: GOLD, fontSize: 13, bold: true });
s.addText(
"Anterior primary divisions (ventral rami) of C5, C6, C7, C8, T1\nMinor contributions from C4 and T2",
{ x: leftX, y: 1.38, w: 5, h: 0.55, color: SILVER, fontSize: 10.5 }
);
s.addText("Three Trunks", { x: leftX, y: 2.0, w: 5, h: 0.32, color: GOLD, fontSize: 13, bold: true });
s.addText(
"Formed between anterior & middle scalene muscles\n• Superior (C5–C6)\n• Middle (C7)\n• Inferior (C8–T1)",
{ x: leftX, y: 2.33, w: 5, h: 0.72, color: SILVER, fontSize: 10.5 }
);
s.addText("Divisions", { x: leftX, y: 3.12, w: 5, h: 0.32, color: GOLD, fontSize: 13, bold: true });
s.addText(
"Each trunk divides into anterior & posterior divisions\nas they cross the lateral border of the first rib\nand pass under the clavicle",
{ x: leftX, y: 3.45, w: 5, h: 0.62, color: SILVER, fontSize: 10.5 }
);
s.addText("Three Cords", { x: leftX, y: 4.15, w: 5, h: 0.32, color: GOLD, fontSize: 13, bold: true });
s.addText(
"Named relative to the axillary artery: Lateral, Medial, Posterior",
{ x: leftX, y: 4.48, w: 5, h: 0.42, color: SILVER, fontSize: 10.5 }
);
// Right column — image
const img1 = getImg(1);
if (img1) {
s.addImage({ data: img1, x: 5.55, y: 1.0, w: 4.2, h: 4.35 });
} else {
s.addShape(pres.shapes.RECTANGLE, { x: 5.55, y: 1.0, w: 4.2, h: 4.35, fill: { color: NAVY } });
s.addText("Fig: Brachial Plexus Formation\nC5–T1 Roots → Trunks → Divisions → Cords\n(Morgan & Mikhail 7e, Fig 46-8)", { x: 5.55, y: 1.0, w: 4.2, h: 4.35, color: SILVER, fontSize: 11, align: "center", valign: "middle" });
}
s.addText("Source: Morgan & Mikhail's Clinical Anaesthesiology, 7e", { x: 0.3, y: 5.3, w: 9, h: 0.25, color: SILVER, fontSize: 8 });
}
// ─────────────────────────────────────────────
// SLIDE 4 — ANATOMY: Cords & Terminal Branches
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("ANATOMY", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: TEAL, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Cords and Terminal Branches", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 26, bold: true });
// Three cord boxes
const cords = [
{ name: "Lateral Cord", color: "1E6FA8", from: "Anterior div. C5, C6, C7", gives: "Lateral branch of median n.", ends: "Musculocutaneous nerve", x: 0.4 },
{ name: "Medial Cord", color: "0E7C6E", from: "Anterior div. C8, T1", gives: "Medial branch of median n.", ends: "Ulnar nerve", x: 3.65 },
{ name: "Posterior Cord", color: "7B3FA5", from: "All posterior divisions", gives: "Axillary nerve", ends: "Radial nerve", x: 6.9 },
];
cords.forEach(c => {
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: c.x, y: 1.08, w: 3.0, h: 3.6, fill: { color: NAVY }, rectRadius: 0.1 });
s.addShape(pres.shapes.RECTANGLE, { x: c.x, y: 1.08, w: 3.0, h: 0.42, fill: { color: c.color } });
s.addText(c.name, { x: c.x, y: 1.08, w: 3.0, h: 0.42, color: WHITE, fontSize: 12.5, bold: true, align: "center", valign: "middle", margin: 0 });
s.addText("Formed from:", { x: c.x + 0.12, y: 1.58, w: 2.76, h: 0.28, color: TEAL, fontSize: 9.5, bold: true });
s.addText(c.from, { x: c.x + 0.12, y: 1.86, w: 2.76, h: 0.42, color: SILVER, fontSize: 10 });
s.addText("Major branch:", { x: c.x + 0.12, y: 2.38, w: 2.76, h: 0.28, color: TEAL, fontSize: 9.5, bold: true });
s.addText(c.gives, { x: c.x + 0.12, y: 2.66, w: 2.76, h: 0.42, color: SILVER, fontSize: 10 });
s.addText("Terminal nerve:", { x: c.x + 0.12, y: 3.18, w: 2.76, h: 0.28, color: TEAL, fontSize: 9.5, bold: true });
s.addText(c.ends, { x: c.x + 0.12, y: 3.46, w: 2.76, h: 0.42, color: GOLD, fontSize: 11, bold: true });
});
// Memory tip
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y: 4.82, w: 9.2, h: 0.52, fill: { color: NAVY }, rectRadius: 0.08 });
s.addText("Memory Aid: 'Robert Taylor Drinks Cold Beer' — Roots, Trunks, Divisions, Cords, Branches", {
x: 0.5, y: 4.84, w: 9, h: 0.46,
color: GOLD, fontSize: 11, bold: true, align: "center", valign: "middle"
});
s.addText("Source: Morgan & Mikhail's Clinical Anaesthesiology, 7e", { x: 0.3, y: 5.3, w: 9, h: 0.25, color: SILVER, fontSize: 8 });
}
// ─────────────────────────────────────────────
// SLIDE 5 — ANATOMY: Nerve Diagram + Overview Image
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("ANATOMY", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: TEAL, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Terminal Branches & Cutaneous Distribution", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
const img0 = getImg(0);
const img7 = getImg(7);
if (img0) {
s.addImage({ data: img0, x: 0.3, y: 1.0, w: 4.8, h: 4.4 });
s.addText("Terminal nerve branches of the upper limb\n(Morgan & Mikhail 7e, Fig 46-7)", { x: 0.3, y: 5.05, w: 4.8, h: 0.38, color: SILVER, fontSize: 8.5, align: "center" });
}
if (img7) {
s.addImage({ data: img7, x: 5.25, y: 1.0, w: 4.5, h: 4.4 });
s.addText("Cutaneous nerve distribution — anterior & posterior views\n(Miller's Anaesthesia 10e, Fig 42.12)", { x: 5.25, y: 5.05, w: 4.5, h: 0.38, color: SILVER, fontSize: 8.5, align: "center" });
}
if (!img0 && !img7) {
s.addText("Anatomical diagrams from textbook\n(Morgan & Mikhail 7e / Miller's 10e)", { x: 0.5, y: 2.0, w: 9, h: 2.0, color: SILVER, fontSize: 14, align: "center", valign: "middle" });
}
}
// ─────────────────────────────────────────────
// SLIDE 6 — APPLIED ANATOMY & BLOCK SELECTION
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("APPLIED ANATOMY", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: TEAL, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Choosing the Right Approach", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 26, bold: true });
const rows = [
{ approach: "Interscalene", level: "Roots / Upper trunks", target: "C5–C7 (C8/T1 spared)", surgery: "Shoulder, proximal humerus, clavicle", note: "Phrenic nerve block inevitable", color: "1E6FA8" },
{ approach: "Supraclavicular", level: "Trunks / Divisions", target: "C5–T1 complete", surgery: "Arm, forearm, hand — 'spinal of the arm'", note: "Pneumothorax risk 0.5–6%", color: "0E7C6E" },
{ approach: "Infraclavicular", level: "Cords", target: "C5–T1 complete", surgery: "Elbow, forearm, hand — best for catheter", note: "Deep block, tourniquet well-tolerated", color: "7B3FA5" },
{ approach: "Axillary", level: "Terminal nerves", target: "Median, Ulnar, Radial, MSC", surgery: "Forearm & hand (arm adducted)", note: "Safest — no phrenic/pneumothorax risk", color: "0D6E4C" },
];
rows.forEach((r, i) => {
const y = 1.08 + i * 1.08;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.4, y, w: 9.2, h: 0.9, fill: { color: NAVY }, rectRadius: 0.08 });
s.addShape(pres.shapes.RECTANGLE, { x: 0.4, y, w: 1.95, h: 0.9, fill: { color: r.color } });
s.addText(r.approach, { x: 0.4, y, w: 1.95, h: 0.9, color: WHITE, fontSize: 12.5, bold: true, align: "center", valign: "middle", margin: 0 });
s.addText("Level: " + r.level, { x: 2.45, y: y + 0.06, w: 2.5, h: 0.28, color: TEAL, fontSize: 9 });
s.addText("Target: " + r.target, { x: 2.45, y: y + 0.34, w: 2.5, h: 0.28, color: SILVER, fontSize: 9 });
s.addText(r.surgery, { x: 5.05, y: y + 0.06, w: 3.0, h: 0.42, color: WHITE, fontSize: 9.5, bold: true });
s.addText("Note: " + r.note, { x: 5.05, y: y + 0.5, w: 3.0, h: 0.3, color: GOLD, fontSize: 8.5 });
});
s.addText("Above clavicle: Roots/Trunks/Divisions targeted | Below clavicle: Cords/Terminal nerves targeted (Miller's 10e)", {
x: 0.4, y: 5.3, w: 9.2, h: 0.25, color: SILVER, fontSize: 8, align: "center"
});
}
// ─────────────────────────────────────────────
// SLIDE 7 — INTERSCALENE BLOCK
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: "1E6FA8" } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("INTERSCALENE BLOCK", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: "1E6FA8", fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Shoulder & Proximal Arm Surgery", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
// Left column
const lx = 0.4;
s.addText("Indications", { x: lx, y: 1.0, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText([
{ text: "• Shoulder arthroplasty, rotator cuff repair\n", options: { breakLine: false } },
{ text: "• Clavicle fixation (add cervical plexus block)\n", options: { breakLine: false } },
{ text: "• Proximal humerus fractures", options: {} },
], { x: lx, y: 1.32, w: 4.6, h: 0.72, color: SILVER, fontSize: 10 });
s.addText("Anatomy at C6 Level", { x: lx, y: 2.12, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Plexus lies between anterior & middle scalene muscles at the cricoid cartilage level (C6). External jugular vein often marks the interscalene groove.", { x: lx, y: 2.44, w: 4.6, h: 0.72, color: SILVER, fontSize: 10 });
s.addText("Ultrasound-Guided Technique", { x: lx, y: 3.24, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("High-freq linear probe at C6 level. Three hypoechoic circles ('stoplight sign') = C5, C6, C7. Target: between two most superficial nerves. Volume: 10–15 mL (as low as 5 mL reduces phrenic paresis).", { x: lx, y: 3.56, w: 4.6, h: 0.9, color: SILVER, fontSize: 10 });
s.addText("Contraindications", { x: lx, y: 4.55, w: 4.6, h: 0.3, color: WARN, fontSize: 11, bold: true });
s.addText("Contralateral phrenic palsy, severe pulmonary disease, bilateral ISB (absolute CI)", { x: lx, y: 4.85, w: 4.6, h: 0.45, color: SILVER, fontSize: 9.5 });
// Right: anatomical image + ultrasound image
const img2 = getImg(2);
const img3 = getImg(3);
if (img2) {
s.addImage({ data: img2, x: 5.2, y: 1.0, w: 2.2, h: 2.6 });
s.addText("Cricoid/C6 landmark\n(Morgan & Mikhail 7e)", { x: 5.2, y: 3.62, w: 2.2, h: 0.38, color: SILVER, fontSize: 7.5, align: "center" });
}
if (img3) {
s.addImage({ data: img3, x: 7.55, y: 1.0, w: 2.2, h: 2.6 });
s.addText("USG: AS & MS muscles\n(Miller's 10e, Fig 42.13)", { x: 7.55, y: 3.62, w: 2.2, h: 0.38, color: SILVER, fontSize: 7.5, align: "center" });
}
if (!img2 && !img3) {
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: 1.0, w: 4.5, h: 3.3, fill: { color: NAVY } });
s.addText("(Interscalene anatomy & USG images)\nMorgan & Mikhail 7e / Miller's 10e", { x: 5.2, y: 1.0, w: 4.5, h: 3.3, color: SILVER, fontSize: 11, align: "center", valign: "middle" });
}
}
// ─────────────────────────────────────────────
// SLIDE 8 — INTERSCALENE: Complications
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: "1E6FA8" } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("INTERSCALENE — COMPLICATIONS", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: "1E6FA8", fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Side Effects & Risk Management", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
const comps = [
{ c: "Phrenic Nerve Block", d: "~100% incidence with nerve stimulator technique; less with low-vol USG (5 mL). Results in ipsilateral hemidiaphragm paralysis — 25% reduction in lung function. Bilateral ISB is absolutely contraindicated.", icon: "!" },
{ c: "Horner Syndrome", d: "Miosis, ptosis, anhidrosis — from sympathetic chain blockade. Reassure patient; usually transient.", icon: "~" },
{ c: "Recurrent Laryngeal N.", d: "Hoarseness — significant if contralateral vocal cord paralysis already exists.", icon: "!" },
{ c: "Vertebral Artery Injection", d: "1 mL LA into vertebral artery can cause immediate seizure. Confirmed by colour Doppler identification.", icon: "!!" },
{ c: "Pneumothorax", d: "Rare with ultrasound guidance. Risk primarily with non-USG techniques due to close proximity of apical pleura.", icon: "~" },
{ c: "Spinal/Epidural Spread", d: "Intrathecal, subdural, or epidural LA spread possible. Injection into spinal cord causing cervical syrinx has been reported.", icon: "!!" },
{ c: "Bezold-Jarisch Reflex", d: "Severe hypotension & bradycardia in sitting patients. Decreased venous return stimulates intracardiac mechanoreceptors.", icon: "!" },
];
comps.forEach((c, i) => {
const col = i < 4 ? 0 : 1;
const row = i < 4 ? i : i - 4;
const x = col === 0 ? 0.35 : 5.15;
const y = 1.05 + row * 1.08;
const color = c.icon === "!!" ? WARN : c.icon === "!" ? GOLD : TEAL;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w: 4.55, h: 0.9, fill: { color: NAVY }, rectRadius: 0.07 });
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 0.35, h: 0.9, fill: { color: color } });
s.addText(c.icon, { x, y, w: 0.35, h: 0.9, color: WHITE, fontSize: 14, bold: true, align: "center", valign: "middle", margin: 0 });
s.addText(c.c, { x: x + 0.42, y: y + 0.05, w: 4.06, h: 0.28, color: color, fontSize: 10, bold: true });
s.addText(c.d, { x: x + 0.42, y: y + 0.34, w: 4.06, h: 0.5, color: SILVER, fontSize: 8.5 });
});
s.addText("Source: Morgan & Mikhail's 7e | Miller's Anaesthesia 10e", { x: 0.3, y: 5.3, w: 9, h: 0.25, color: SILVER, fontSize: 8 });
}
// ─────────────────────────────────────────────
// SLIDE 9 — SUPRACLAVICULAR BLOCK
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: "0E7C6E" } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("SUPRACLAVICULAR BLOCK", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: "0E7C6E", fontSize: 10, bold: true, charSpacing: 4 });
s.addText("'The Spinal of the Arm'", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
// Left column
const lx = 0.4;
s.addText("Why 'Spinal of the Arm'?", { x: lx, y: 1.05, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("At this level, the entire brachial plexus is compactly grouped into trunks and divisions clustered above the first rib, lateral to the subclavian artery — a single injection blocks C5–T1 completely.", { x: lx, y: 1.36, w: 4.6, h: 0.78, color: SILVER, fontSize: 10 });
s.addText("Indications", { x: lx, y: 2.24, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Surgery of the arm, forearm, and hand including above and below the elbow. Tourniquet well-tolerated.", { x: lx, y: 2.56, w: 4.6, h: 0.55, color: SILVER, fontSize: 10 });
s.addText("Ultrasound Technique", { x: lx, y: 3.2, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("High-freq linear probe in supraclavicular fossa. Plexus trunks/divisions clustered laterally over the first rib adjacent to subclavian artery. First rib acts as medial barrier. In-plane needle from lateral to medial. Volume: 15–30 mL.", { x: lx, y: 3.52, w: 4.6, h: 1.0, color: SILVER, fontSize: 10 });
s.addText("Complications", { x: lx, y: 4.62, w: 4.6, h: 0.3, color: WARN, fontSize: 11, bold: true });
s.addText("Pneumothorax 0.5–6% (even with USG), phrenic block 40–60%, Horner syndrome", { x: lx, y: 4.92, w: 4.6, h: 0.4, color: SILVER, fontSize: 9.5 });
// Right: ultrasound image
const img4 = getImg(4);
if (img4) {
s.addImage({ data: img4, x: 5.2, y: 1.0, w: 4.5, h: 3.5 });
s.addText("USG: Brachial plexus at first rib — subclavian artery (A), plexus lateral\n(Miller's Anaesthesia 10e, Fig 42.14)", { x: 5.2, y: 4.55, w: 4.5, h: 0.5, color: SILVER, fontSize: 8.5, align: "center" });
} else {
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: 1.0, w: 4.5, h: 3.5, fill: { color: NAVY } });
s.addText("(Supraclavicular USG image)\nMiller's Anaesthesia 10e", { x: 5.2, y: 1.0, w: 4.5, h: 3.5, color: SILVER, fontSize: 11, align: "center", valign: "middle" });
}
}
// ─────────────────────────────────────────────
// SLIDE 10 — INFRACLAVICULAR BLOCK
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: "7B3FA5" } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("INFRACLAVICULAR BLOCK", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: "7B3FA5", fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Cords of the Brachial Plexus", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
const lx = 0.4;
s.addText("Key Advantages", { x: lx, y: 1.05, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText([
{ text: "• Complete C5–T1 anesthesia\n", options: { breakLine: false } },
{ text: "• Best approach for catheter placement (stable position, fascial layers hold catheter)\n", options: { breakLine: false } },
{ text: "• No arm manipulation required\n", options: { breakLine: false } },
{ text: "• Good tourniquet tolerance", options: {} },
], { x: lx, y: 1.37, w: 4.6, h: 0.9, color: SILVER, fontSize: 10 });
s.addText("Ultrasound Technique", { x: lx, y: 2.36, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Lateral sagittal (paracoracoid) approach. Arm abducted to 90° (externally rotates humeral head, retracts clavicle, straightens neurovascular bundle). Axillary artery visualised in short-axis, deep to pectoralis major & minor. Three cords: medial, lateral, posterior relative to the 2nd part of axillary artery.", { x: lx, y: 2.68, w: 4.6, h: 1.05, color: SILVER, fontSize: 10 });
s.addText("Local Anaesthetic", { x: lx, y: 3.82, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("30–40 mL placed POSTERIOR to axillary artery produces complete block. Cords do not need direct visualisation.", { x: lx, y: 4.14, w: 4.6, h: 0.55, color: SILVER, fontSize: 10 });
s.addText("Considerations", { x: lx, y: 4.78, w: 4.6, h: 0.28, color: WARN, fontSize: 10, bold: true });
s.addText("Deep block — steep needle angle reduces visibility. No phrenic/pneumothorax risk.", { x: lx, y: 5.05, w: 4.6, h: 0.38, color: SILVER, fontSize: 9.5 });
const img5 = getImg(5);
if (img5) {
s.addImage({ data: img5, x: 5.2, y: 1.0, w: 4.5, h: 3.5 });
s.addText("USG infraclavicular: PMa/PMi muscles, axillary artery (A), vein (V), cords\n(Miller's Anaesthesia 10e, Fig 42.16)", { x: 5.2, y: 4.55, w: 4.5, h: 0.5, color: SILVER, fontSize: 8.5, align: "center" });
} else {
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: 1.0, w: 4.5, h: 3.5, fill: { color: NAVY } });
s.addText("(Infraclavicular USG image)\nMiller's Anaesthesia 10e", { x: 5.2, y: 1.0, w: 4.5, h: 3.5, color: SILVER, fontSize: 11, align: "center", valign: "middle" });
}
}
// ─────────────────────────────────────────────
// SLIDE 11 — AXILLARY BLOCK
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: "0D6E4C" } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("AXILLARY BLOCK", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: "0D6E4C", fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Terminal Nerves — Safest Approach", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
const lx = 0.4;
s.addText("Advantages", { x: lx, y: 1.05, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText([
{ text: "• No risk of phrenic nerve block\n", options: { breakLine: false } },
{ text: "• No risk of pneumothorax\n", options: { breakLine: false } },
{ text: "• Superficial — easy USG identification\n", options: { breakLine: false } },
{ text: "• Ideal for hand, wrist, forearm surgery", options: {} },
], { x: lx, y: 1.37, w: 4.6, h: 0.85, color: SILVER, fontSize: 10 });
s.addText("Target Nerves in the Axilla", { x: lx, y: 2.3, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Around the 3rd part of axillary artery:\n• Median nerve — anterior-superior\n• Ulnar nerve — inferior to artery\n• Radial nerve — posterior to artery\n• Musculocutaneous n. — within coracobrachialis muscle (inject separately)", { x: lx, y: 2.62, w: 4.6, h: 1.0, color: SILVER, fontSize: 10 });
s.addText("Technique", { x: lx, y: 3.72, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Arm abducted to 90°. High-freq probe at conjoint tendon of latissimus dorsi & teres major (serves as a landmark underneath the neurovascular bundle). Block level at conjoint tendon to prevent musculocutaneous nerve miss. Total volume 30–40 mL divided around each nerve.", { x: lx, y: 4.04, w: 4.6, h: 1.0, color: SILVER, fontSize: 10 });
const img6 = getImg(6);
if (img6) {
s.addImage({ data: img6, x: 5.2, y: 1.0, w: 4.5, h: 3.5 });
s.addText("USG axillary block: Axillary artery (A), median/ulnar/radial nerves (yellow arrows)\n(Miller's Anaesthesia 10e, Fig 42.17)", { x: 5.2, y: 4.55, w: 4.5, h: 0.5, color: SILVER, fontSize: 8.5, align: "center" });
} else {
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: 1.0, w: 4.5, h: 3.5, fill: { color: NAVY } });
s.addText("(Axillary USG image)\nMiller's Anaesthesia 10e", { x: 5.2, y: 1.0, w: 4.5, h: 3.5, color: SILVER, fontSize: 11, align: "center", valign: "middle" });
}
}
// ─────────────────────────────────────────────
// SLIDE 12 — LOCAL ANAESTHETIC AGENTS
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("LOCAL ANAESTHETICS", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: TEAL, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Drugs, Volumes & Adjuncts", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
// Table header
const cols = [0.35, 2.05, 3.75, 5.45, 7.15, 8.85];
const headers = ["Agent", "Concentration", "Onset", "Duration", "Max Dose", "Notes"];
headers.forEach((h, i) => {
const w = i < 5 ? cols[i + 1] - cols[i] : 10 - cols[i] - 0.1;
s.addShape(pres.shapes.RECTANGLE, { x: cols[i], y: 1.1, w, h: 0.38, fill: { color: BLUE } });
s.addText(h, { x: cols[i], y: 1.1, w, h: 0.38, color: WHITE, fontSize: 9.5, bold: true, align: "center", valign: "middle", margin: 0 });
});
const agents = [
["Lidocaine", "1–1.5%", "Fast (10–15 min)", "2–4 hrs", "4.5 mg/kg (7 with epi)", "Short procedures; toxicity risk"],
["Bupivacaine", "0.25–0.5%", "Slow (20–30 min)", "8–16 hrs", "2.5 mg/kg", "Most cardiotoxic; postop analgesia"],
["Ropivacaine", "0.2–0.5%", "Intermediate", "6–12 hrs", "3 mg/kg", "Less cardiotoxic; preferred for blocks"],
["Levobupivacaine", "0.25–0.5%", "Slow", "8–16 hrs", "2 mg/kg", "S-enantiomer; safer cardiac profile"],
["Mepivacaine", "1–1.5%", "Fast (10–20 min)", "3–6 hrs", "5 mg/kg", "Good for intermediate procedures"],
];
agents.forEach((row, i) => {
const y = 1.5 + i * 0.62;
const bg = i % 2 === 0 ? NAVY : "131D2E";
row.forEach((cell, j) => {
const w = j < 5 ? cols[j + 1] - cols[j] : 10 - cols[j] - 0.1;
s.addShape(pres.shapes.RECTANGLE, { x: cols[j], y, w, h: 0.58, fill: { color: bg } });
s.addText(cell, { x: cols[j] + 0.05, y, w: w - 0.1, h: 0.58, color: j === 0 ? GOLD : SILVER, fontSize: j === 0 ? 10 : 9, bold: j === 0, align: "left", valign: "middle" });
});
});
// Adjuncts
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.35, y: 4.65, w: 9.3, h: 0.65, fill: { color: NAVY }, rectRadius: 0.07 });
s.addText("Adjuncts: ", { x: 0.5, y: 4.7, w: 0.8, h: 0.55, color: TEAL, fontSize: 10, bold: true, valign: "middle" });
s.addText("Dexamethasone 4–8 mg (extends block 8–12 hrs) | Dexmedetomidine 1 mcg/kg | Clonidine 0.5–1 mcg/kg | Epinephrine 1:200,000 (reduces vascular uptake)", {
x: 1.3, y: 4.7, w: 8.2, h: 0.55,
color: SILVER, fontSize: 9.5, valign: "middle"
});
s.addText("Source: Barash Clinical Anaesthesia 9e | Morgan & Mikhail 7e", { x: 0.3, y: 5.34, w: 9, h: 0.22, color: SILVER, fontSize: 8 });
}
// ─────────────────────────────────────────────
// SLIDE 13 — COMPLICATIONS OVERVIEW
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: WARN } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("COMPLICATIONS", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: WARN, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Safety & Complication Management", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
const comps = [
{ title: "Local Anaesthetic Systemic Toxicity (LAST)", detail: "Intravascular injection — CNS: circumoral numbness, tinnitus, seizures; CVS: arrhythmia, cardiac arrest. Treatment: stop injection, 100% O2, 20% Intralipid bolus 1.5 mL/kg, ACLS.", severity: "high" },
{ title: "Nerve Injury", detail: "Risk 0.01–0.04%. Causes: needle trauma, intraneural injection, neurotoxic LA, ischaemia. Prevention: avoid injection against high resistance (>15 psi), avoid paresthesia on injection.", severity: "high" },
{ title: "Haematoma / Vascular Puncture", detail: "More common in highly vascular areas (axilla, supraclavicular). Colour Doppler prior to injection. Compress if accessible.", severity: "med" },
{ title: "Infection", detail: "Rare with standard aseptic technique. Risk increases with indwelling catheters. Use chlorhexidine skin prep.", severity: "low" },
{ title: "Incomplete / Failed Block", detail: "Up to 10–15%. Causes: anatomical variation, inadequate volume, wrong level. Have backup plan: supplement with field block or GA.", severity: "med" },
{ title: "Block-Specific (See Slide 8)", detail: "ISB: phrenic, Horner, vertebral artery. SCB: pneumothorax. Axillary: musculocutaneous nerve miss.", severity: "med" },
];
comps.forEach((c, i) => {
const col = i < 3 ? 0 : 1;
const row = i < 3 ? i : i - 3;
const x = col === 0 ? 0.35 : 5.15;
const y = 1.05 + row * 1.45;
const color = c.severity === "high" ? WARN : c.severity === "med" ? GOLD : TEAL;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w: 4.55, h: 1.28, fill: { color: NAVY }, rectRadius: 0.08 });
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 0.15, h: 1.28, fill: { color: color } });
s.addText(c.title, { x: x + 0.22, y: y + 0.06, w: 4.2, h: 0.32, color: color, fontSize: 10, bold: true });
s.addText(c.detail, { x: x + 0.22, y: y + 0.4, w: 4.2, h: 0.82, color: SILVER, fontSize: 9 });
});
s.addText("Always ensure IV access, resuscitation equipment & 20% Intralipid readily available before any block.", { x: 0.35, y: 4.42, w: 9.3, h: 0.28, color: GOLD, fontSize: 9, italic: true, align: "center" });
s.addText("Source: Miller's Anaesthesia 10e | Morgan & Mikhail 7e", { x: 0.3, y: 5.3, w: 9, h: 0.25, color: SILVER, fontSize: 8 });
}
// ─────────────────────────────────────────────
// SLIDE 14 — ULTRASOUND PRINCIPLES
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0.82, w: 10, h: 0.05, fill: { color: BLUE } });
s.addText("ULTRASOUND GUIDANCE", { x: 0.4, y: 0.12, w: 9, h: 0.35, color: TEAL, fontSize: 10, bold: true, charSpacing: 4 });
s.addText("Principles & Practical Tips", { x: 0.4, y: 0.42, w: 9, h: 0.5, color: WHITE, fontSize: 24, bold: true });
// Left column
const lx = 0.4;
s.addText("Why Ultrasound?", { x: lx, y: 1.05, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Real-time nerve and vascular visualisation reduces complication rates vs. landmark/nerve stimulator techniques. Lower volumes of LA needed. Faster onset.", { x: lx, y: 1.36, w: 4.6, h: 0.72, color: SILVER, fontSize: 10 });
s.addText("Probe Selection", { x: lx, y: 2.18, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("High-frequency linear probe (10–15 MHz) for superficial structures: ISB, SCB, Axillary. Lower frequency for deep structures: Infraclavicular.", { x: lx, y: 2.5, w: 4.6, h: 0.65, color: SILVER, fontSize: 10 });
s.addText("Needle Approaches", { x: lx, y: 3.25, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText([
{ text: "In-plane: ", options: { bold: true, color: TEAL } },
{ text: "Entire needle shaft visible — better control (preferred for SCB, ICB)\n", options: { color: SILVER } },
{ text: "Out-of-plane: ", options: { bold: true, color: TEAL } },
{ text: "Only needle tip seen — useful for ISB catheter placement, avoids long thoracic & dorsal scapular nerves", options: { color: SILVER } },
], { x: lx, y: 3.57, w: 4.6, h: 0.9, fontSize: 10 });
s.addText("Key Sonoanatomy Signs", { x: lx, y: 4.57, w: 4.6, h: 0.3, color: GOLD, fontSize: 11, bold: true });
s.addText("Stoplight sign (ISB): 3 hypoechoic circles C5/C6/C7 between scalenes. Honeycomb: nerve bundles in short-axis. Confirm spread: hypoechoic halo around nerve.", { x: lx, y: 4.89, w: 4.6, h: 0.6, color: SILVER, fontSize: 9.5 });
// Right column: key pearls
const pearls = [
"Use colour Doppler to identify vascular structures before injecting",
"Negative aspiration does not exclude intravascular placement — aspirate and inject in 3–5 mL increments",
"Always inject with low resistance — high resistance (>15 psi) may indicate intraneural needle tip",
"Perineural spread (hypoechoic halo) confirms correct placement",
"For ISB: low volumes (5 mL) reduce phrenic nerve block frequency",
"Infraclavicular: LA posterior to axillary artery fills the paraaxillary space and blocks all three cords",
];
s.addText("Pearls", { x: 5.3, y: 1.05, w: 4.4, h: 0.3, color: TEAL, fontSize: 11, bold: true });
pearls.forEach((p, i) => {
const y = 1.4 + i * 0.68;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 5.3, y, w: 4.4, h: 0.6, fill: { color: NAVY }, rectRadius: 0.07 });
s.addShape(pres.shapes.RECTANGLE, { x: 5.3, y, w: 0.22, h: 0.6, fill: { color: TEAL } });
s.addText(p, { x: 5.58, y: y + 0.04, w: 4.05, h: 0.5, color: SILVER, fontSize: 9 });
});
}
// ─────────────────────────────────────────────
// SLIDE 15 — SUMMARY & KEY TAKEAWAYS
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: NAVY } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: BLUE } });
s.addText("SUMMARY", { x: 0.4, y: 0.18, w: 9, h: 0.38, color: TEAL, fontSize: 11, bold: true, charSpacing: 4 });
s.addText("Key Takeaways for Residents", { x: 0.4, y: 0.55, w: 9, h: 0.5, color: WHITE, fontSize: 26, bold: true });
s.addShape(pres.shapes.RECTANGLE, { x: 0.4, y: 1.0, w: 9.2, h: 0.04, fill: { color: TEAL } });
const points = [
["Plexus Formation", "C5–T1 → Roots → Trunks → Divisions → Cords → Terminal branches. Mnemonic: 'Robert Taylor Drinks Cold Beer'"],
["Block Level = Target", "Above clavicle targets Roots/Trunks/Divisions; below targets Cords/Terminals. Choose approach based on surgical site."],
["Interscalene", "Shoulder & proximal humerus. Inevitable phrenic nerve block — avoid in severe pulmonary disease."],
["Supraclavicular", "'Spinal of the arm' — complete C5–T1. Most reliable for all-arm surgery. Pneumothorax risk even with USG."],
["Infraclavicular", "Best for catheter analgesia. LA posterior to axillary artery. No phrenic or pneumothorax risk."],
["Axillary", "Safest option. Block all 4 terminal nerves + musculocutaneous n. separately in coracobrachialis."],
["Safety", "Aspirate before injection, inject in aliquots, low pressure injection, Intralipid available. USG reduces complications."],
];
points.forEach((p, i) => {
const col = i < 4 ? 0 : 1;
const row = i < 4 ? i : i - 4;
const x = col === 0 ? 0.4 : 5.2;
const y = 1.12 + row * 1.03;
const colors = ["1E6FA8", "0E7C6E", "1E6FA8", "0E7C6E", "7B3FA5", "0D6E4C", WARN];
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y, w: 4.55, h: 0.88, fill: { color: "0D1B2A" }, rectRadius: 0.08 });
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 0.12, h: 0.88, fill: { color: colors[i] } });
s.addText(p[0], { x: x + 0.2, y: y + 0.04, w: 4.2, h: 0.28, color: GOLD, fontSize: 10, bold: true });
s.addText(p[1], { x: x + 0.2, y: y + 0.34, w: 4.2, h: 0.5, color: SILVER, fontSize: 9 });
});
s.addText("Sources: Morgan & Mikhail's Clinical Anaesthesiology 7e | Miller's Anaesthesia 10e | Barash Clinical Anaesthesia 9e", {
x: 0.4, y: 5.3, w: 9, h: 0.25, color: SILVER, fontSize: 8, align: "center"
});
}
// SAVE
const outPath = "/home/daytona/workspace/brachial-plexus-ppt/Brachial_Plexus_Block.pptx";
pres.writeFile({ fileName: outPath })
.then(() => console.log("Saved: " + outPath))
.catch(err => { console.error("Error:", err); process.exit(1); });
cd /home/daytona/workspace/brachial-plexus-ppt && node create_pptx.js