Make a Power point presentation on the topic landmark and pns vs usg guided blocks highlighting mainly the advantages,introduction to landmark,pns and USG guided blocks ,principles ,procedures exclusion and inclusion criteria
landmark vs PNS vs ultrasound guided nerve blocks advantages principles anesthesia
https://www.nysora.com/topics/equipment/introduction-ultraso…
mkdir -p /home/daytona/workspace/nerve-blocks-ppt && ls /home/daytona/workspace/nerve-blocks-ppt/
~/nerve-blocks-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.title = 'Landmark vs PNS vs USG Guided Nerve Blocks';
pres.author = 'Anesthesiology Department';
// ─── COLOR PALETTE ───────────────────────────────────────────────
const DARK_BG = "0B1F3A"; // deep navy – title / section slides
const MID_BG = "122B52"; // mid navy
const LIGHT_BG = "EFF4FB"; // very light blue – content slides
const ACCENT1 = "00B4D8"; // bright cyan
const ACCENT2 = "F4A261"; // warm orange
const ACCENT3 = "2EC4B6"; // teal
const WHITE = "FFFFFF";
const DARK_TEXT = "0B1F3A";
const LIGHT_TEXT= "D0E8FF";
const SUBTITLE = "8ECAE6";
const RED_WARN = "E63946";
const GREEN_OK = "06D6A0";
// ─── HELPER: add decorative top bar ─────────────────────────────
function topBar(slide, color = ACCENT1) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.07, fill: { color } });
}
// ─── HELPER: section label pill ─────────────────────────────────
function sectionPill(slide, label, color = ACCENT1) {
slide.addShape(pres.ShapeType.roundRect, {
x: 0.35, y: 0.18, w: 2.3, h: 0.38,
fill: { color }, rectRadius: 0.05, line: { color, width: 0 }
});
slide.addText(label, {
x: 0.35, y: 0.18, w: 2.3, h: 0.38,
fontSize: 10, bold: true, color: DARK_BG, align: "center", valign: "middle", margin: 0
});
}
// ─── HELPER: column box ─────────────────────────────────────────
function colBox(slide, x, y, w, h, title, bullets, titleColor = ACCENT1, bgColor = MID_BG) {
slide.addShape(pres.ShapeType.rect, { x, y, w, h, fill: { color: bgColor }, line: { color: ACCENT1, width: 1 }, shadow: { type: "outer", blur: 6, offset: 3, angle: 45, color: "000000", opacity: 0.25 } });
slide.addText(title, { x: x + 0.12, y: y + 0.08, w: w - 0.24, h: 0.38, fontSize: 12, bold: true, color: titleColor, margin: 0 });
let textItems = bullets.map((b, i) => ({
text: b,
options: { bullet: { type: "bullet" }, breakLine: i < bullets.length - 1, fontSize: 10, color: LIGHT_TEXT, paraSpaceAfter: 4 }
}));
slide.addText(textItems, { x: x + 0.12, y: y + 0.52, w: w - 0.24, h: h - 0.65, valign: "top" });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE SLIDE
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
// full dark background
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
// accent stripe
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT1 } });
sl.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.08, h: 5.625, fill: { color: ACCENT2 } });
// decorative circle top right
sl.addShape(pres.ShapeType.ellipse, { x: 8.5, y: -0.6, w: 2.2, h: 2.2, fill: { color: ACCENT1, transparency: 80 }, line: { color: ACCENT1, width: 1, transparency: 60 } });
sl.addShape(pres.ShapeType.ellipse, { x: 8.8, y: -0.2, w: 1.6, h: 1.6, fill: { color: ACCENT2, transparency: 75 } });
// Title text
sl.addText("LANDMARK, PNS &\nUSG-GUIDED NERVE BLOCKS", {
x: 0.55, y: 1.3, w: 9.1, h: 1.7,
fontSize: 32, bold: true, color: WHITE, align: "left", valign: "middle",
fontFace: "Calibri Light"
});
// Subtitle line
sl.addShape(pres.ShapeType.line, { x: 0.55, y: 3.1, w: 5.5, h: 0, line: { color: ACCENT1, width: 2 } });
sl.addText("Introduction • Principles • Procedures • Advantages\nInclusion & Exclusion Criteria • Comparative Analysis", {
x: 0.55, y: 3.25, w: 9, h: 0.8,
fontSize: 13, color: SUBTITLE, align: "left", italic: true
});
sl.addText("Department of Anesthesiology | Regional Anesthesia", {
x: 0.55, y: 5.1, w: 9, h: 0.4,
fontSize: 10, color: "668BAA", align: "left"
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 2 – TABLE OF CONTENTS
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
topBar(sl, ACCENT1);
sl.addText("OUTLINE", { x: 0.4, y: 0.18, w: 9, h: 0.45, fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri Light" });
const items = [
["01", "Introduction to Nerve Localization Techniques", ACCENT1],
["02", "Landmark-Based Technique", ACCENT2],
["03", "Peripheral Nerve Stimulator (PNS) Guided Blocks", ACCENT3],
["04", "Ultrasound-Guided (USG) Blocks", ACCENT1],
["05", "Principles & Physics", ACCENT2],
["06", "Procedures & Technique", ACCENT3],
["07", "Inclusion & Exclusion Criteria", ACCENT1],
["08", "Advantages & Comparison", ACCENT2],
["09", "Complications & Safety", ACCENT3],
["10", "Summary & Conclusions", ACCENT1],
];
items.forEach(([num, text, color], i) => {
const col = i < 5 ? 0 : 1;
const row = i < 5 ? i : i - 5;
const x = col === 0 ? 0.4 : 5.2;
const y = 0.85 + row * 0.85;
sl.addShape(pres.ShapeType.rect, { x, y, w: 0.5, h: 0.48, fill: { color }, line: { color, width: 0 } });
sl.addText(num, { x, y, w: 0.5, h: 0.48, fontSize: 14, bold: true, color: DARK_BG, align: "center", valign: "middle", margin: 0 });
sl.addText(text, { x: x + 0.58, y: y + 0.02, w: 4.3, h: 0.44, fontSize: 11, color: LIGHT_TEXT, valign: "middle" });
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 3 – INTRODUCTION
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, ACCENT1);
sectionPill(sl, "INTRODUCTION", ACCENT1);
sl.addText("Introduction to Peripheral Nerve Blocks", {
x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light"
});
// Left card
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.35, w: 5.9, h: 2.0, fill: { color: MID_BG }, line: { color: ACCENT1, width: 1 } });
sl.addText("What are Peripheral Nerve Blocks?", { x: 0.45, y: 1.42, w: 5.6, h: 0.4, fontSize: 12, bold: true, color: ACCENT1, margin: 0 });
sl.addText([
{ text: "Injection of local anesthetic near a nerve or plexus to produce targeted anesthesia/analgesia", options: { bullet: true, breakLine: true, fontSize: 10.5, color: LIGHT_TEXT } },
{ text: "Used for: surgical anesthesia, acute/chronic pain management, regional blocks", options: { bullet: true, breakLine: true, fontSize: 10.5, color: LIGHT_TEXT } },
{ text: "Techniques evolved: Landmark → PNS → Ultrasound-guided", options: { bullet: true, breakLine: true, fontSize: 10.5, color: LIGHT_TEXT } },
{ text: "Goal: maximize success rate, minimize complications & LA dose", options: { bullet: true, fontSize: 10.5, color: LIGHT_TEXT } },
], { x: 0.45, y: 1.85, w: 5.65, h: 1.4 });
// Right card
sl.addShape(pres.ShapeType.rect, { x: 6.3, y: 1.35, w: 3.4, h: 2.0, fill: { color: MID_BG }, line: { color: ACCENT2, width: 1 } });
sl.addText("Evolution of Technique", { x: 6.45, y: 1.42, w: 3.1, h: 0.4, fontSize: 12, bold: true, color: ACCENT2, margin: 0 });
const steps = [["1970s", "Landmark / Paresthesia", ACCENT2], ["1980s", "Nerve Stimulator (PNS)", ACCENT3], ["2000s+", "Ultrasound Guidance", ACCENT1]];
steps.forEach(([era, label, c], i) => {
sl.addShape(pres.ShapeType.rect, { x: 6.42, y: 1.9 + i * 0.45, w: 0.72, h: 0.35, fill: { color: c } });
sl.addText(era, { x: 6.42, y: 1.9 + i * 0.45, w: 0.72, h: 0.35, fontSize: 9, bold: true, color: DARK_BG, align: "center", valign: "middle", margin: 0 });
sl.addText(label, { x: 7.18, y: 1.9 + i * 0.45, w: 2.4, h: 0.35, fontSize: 10, color: LIGHT_TEXT, valign: "middle" });
});
// Bottom wide box
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 3.45, w: 9.4, h: 1.95, fill: { color: "1A3560" }, line: { color: ACCENT3, width: 1 } });
sl.addText("Why Compare These Techniques?", { x: 0.5, y: 3.52, w: 8.8, h: 0.38, fontSize: 12, bold: true, color: ACCENT3, margin: 0 });
sl.addText([
{ text: "Each method has specific advantages, learning curves, equipment needs, and safety profiles.", options: { breakLine: true, fontSize: 10.5, color: LIGHT_TEXT } },
{ text: "Choosing the right technique depends on: patient anatomy, operator expertise, available equipment, and block target.", options: { breakLine: true, fontSize: 10.5, color: LIGHT_TEXT } },
{ text: "Understanding all three allows clinicians to adapt in resource-limited or complex settings.", options: { fontSize: 10.5, color: LIGHT_TEXT } },
], { x: 0.5, y: 3.94, w: 9.1, h: 1.3 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 4 – LANDMARK TECHNIQUE
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, ACCENT2);
sectionPill(sl, "LANDMARK TECHNIQUE", ACCENT2);
sl.addText("Landmark-Based Nerve Block", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light" });
const boxes = [
{ x: 0.3, y: 1.3, title: "Definition & Principle", color: ACCENT2, bullets: [
"Relies on external anatomical landmarks (bony prominences, vessels, muscle borders)",
"Needle insertion guided by surface anatomy + predicted nerve location",
"Endpoint: paresthesia, fascial click, or loss of resistance",
"No imaging or electrical equipment required"
]},
{ x: 5.15, y: 1.3, title: "Common Landmarks Used", color: ACCENT1, bullets: [
"Interscalene: posterior border of SCM, cricoid level",
"Axillary: axillary artery pulse, coracobrachialis",
"Femoral: femoral crease, inguinal ligament, femoral artery",
"Sciatic (Labat): PSIS, greater trochanter, sacral hiatus",
"Infraclavicular: coracoid process, clavicle"
]}
];
boxes.forEach(b => colBox(sl, b.x, b.y, 4.7, 2.5, b.title, b.bullets, b.color, MID_BG));
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 3.93, w: 9.4, h: 1.52, fill: { color: MID_BG }, line: { color: ACCENT2, width: 1 } });
sl.addText("Advantages of Landmark Technique", { x: 0.5, y: 4.0, w: 8.8, h: 0.38, fontSize: 12, bold: true, color: ACCENT2, margin: 0 });
sl.addText([
{ text: "No equipment needed – ideal for resource-limited settings", options: { bullet: true, breakLine: true, fontSize: 10, color: GREEN_OK } },
{ text: "Fast to perform once proficient – no setup time", options: { bullet: true, breakLine: true, fontSize: 10, color: GREEN_OK } },
{ text: "Applicable when USG unavailable or nerve too deep", options: { bullet: true, breakLine: true, fontSize: 10, color: GREEN_OK } },
{ text: "Foundation skill – builds understanding of anatomy for all advanced techniques", options: { bullet: true, fontSize: 10, color: GREEN_OK } },
], { x: 0.5, y: 4.4, w: 9.1, h: 1.0 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 5 – PNS TECHNIQUE
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, ACCENT3);
sectionPill(sl, "PNS TECHNIQUE", ACCENT3);
sl.addText("Peripheral Nerve Stimulator (PNS) Guided Block", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light" });
// 3-column layout
const cols = [
{ x: 0.3, title: "How It Works", color: ACCENT3, bullets: [
"Insulated needle delivers 1–2 mA current at 1–2 Hz",
"Stimulates nearby nerve → specific motor response",
"Current titrated down to 0.2–0.5 mA confirming proximity",
"LA injected when twitches disappear at ≤0.5 mA",
"Twitch at <0.2 mA: nerve contact – REPOSITION"
]},
{ x: 3.5, title: "Equipment Required", color: ACCENT1, bullets: [
"Insulated nerve block needle (short-bevel)",
"Peripheral nerve stimulator device",
"ECG lead attached to patient (ground)",
"Connecting cable + alligator clip",
"Standard LA drugs + resuscitation kit"
]},
{ x: 6.7, title: "Motor Response Targets", color: ACCENT2, bullets: [
"Brachial plexus: wrist/finger flexion/extension",
"Median nerve: forearm pronation, wrist flexion",
"Femoral nerve: quadriceps twitch (patellar tap)",
"Sciatic: dorsiflexion / plantar flexion",
"Obturator: adductor twitch"
]}
];
cols.forEach(c => colBox(sl, c.x, 1.3, 3.1, 3.0, c.title, c.bullets, c.color, MID_BG));
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 4.45, w: 9.4, h: 1.0, fill: { color: "1A3560" }, line: { color: ACCENT3, width: 1 } });
sl.addText("Advantages of PNS Technique", { x: 0.5, y: 4.5, w: 4.2, h: 0.35, fontSize: 11, bold: true, color: ACCENT3, margin: 0 });
sl.addText([
{ text: "Objective nerve identification via motor response", options: { bullet: true, breakLine: true, fontSize: 9.5, color: GREEN_OK } },
{ text: "Does not depend on patient cooperation (unlike paresthesia)", options: { bullet: true, breakLine: true, fontSize: 9.5, color: GREEN_OK } },
{ text: "Complements USG when nerve not clearly visualized", options: { bullet: true, fontSize: 9.5, color: GREEN_OK } },
], { x: 0.5, y: 4.87, w: 4.2, h: 0.55 });
sl.addText([
{ text: "Reduces intraneural injection risk (no twitch <0.2 mA rule)", options: { bullet: true, breakLine: true, fontSize: 9.5, color: GREEN_OK } },
{ text: "Useful for obese patients / poor acoustic windows on USG", options: { bullet: true, breakLine: true, fontSize: 9.5, color: GREEN_OK } },
{ text: "Separates individual nerves in complex plexus (e.g., axillary)", options: { bullet: true, fontSize: 9.5, color: GREEN_OK } },
], { x: 5.0, y: 4.87, w: 4.6, h: 0.55 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 6 – USG TECHNIQUE
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, ACCENT1);
sectionPill(sl, "USG TECHNIQUE", ACCENT1);
sl.addText("Ultrasound-Guided (USG) Nerve Block", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light" });
colBox(sl, 0.3, 1.3, 5.9, 2.55, "Key Principles & How It Works", [
"Real-time B-mode ultrasound visualizes nerves, vessels, muscles & fascia",
"Nerves appear as hyperechoic (bright) honeycomb structures in cross-section",
"In-plane approach: needle visualized along its entire length",
"Out-of-plane approach: needle tip seen as bright dot",
"LA spread observed in real-time – 'donut sign' around nerve",
"Linear probe (8–15 MHz) for superficial; curved (2–5 MHz) for deep nerves"
], ACCENT1, MID_BG);
colBox(sl, 6.3, 1.3, 3.4, 2.55, "USG Advantages (Summary)", [
"Direct nerve visualization",
"Real-time LA spread confirmation",
"Avoid vascular puncture",
"Reduced LA volume needed",
"Faster onset of block",
"Detect anatomical variants",
"Lower complication rate"
], ACCENT2, MID_BG);
// Bottom highlight bar
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 3.98, w: 9.4, h: 1.46, fill: { color: MID_BG }, line: { color: ACCENT1, width: 1 } });
sl.addText("Why USG is the Gold Standard Today", { x: 0.5, y: 4.04, w: 8.8, h: 0.38, fontSize: 12, bold: true, color: ACCENT1, margin: 0 });
sl.addText([
{ text: "Studies show 30–50% reduction in LA volume with equivalent or superior block quality (NYSORA)", options: { bullet: true, breakLine: true, fontSize: 10, color: LIGHT_TEXT } },
{ text: "Visualize needle-nerve relationship to prevent intraneural injection and nerve trauma", options: { bullet: true, breakLine: true, fontSize: 10, color: LIGHT_TEXT } },
{ text: "Identify aberrant anatomy, vessels & pathology before needle insertion", options: { bullet: true, fontSize: 10, color: LIGHT_TEXT } },
], { x: 0.5, y: 4.45, w: 9.1, h: 0.9 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 7 – PRINCIPLES (Physics / LA)
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
topBar(sl, ACCENT2);
sectionPill(sl, "PRINCIPLES", ACCENT2);
sl.addText("Principles of Nerve Block Techniques", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri Light" });
const pCards = [
{ x: 0.3, y: 1.3, title: "Anatomical Principles", color: ACCENT2, items: [
"Peripheral nerves travel in predictable fascial planes",
"Plexuses formed by anterior rami of spinal nerves",
"Nerve trunks travel with vascular structures",
"Fascial sheaths surround nerve bundles",
"Landmarks correlate to surface projections"
]},
{ x: 3.55, y: 1.3, title: "USG Physics", color: ACCENT1, items: [
"Piezoelectric crystal generates sound waves (2–15 MHz)",
"Higher frequency = better resolution, less depth",
"Lower frequency = deeper penetration, less detail",
"Anisotropy: echogenicity changes with probe angle",
"Hyperechoic: bright (bone, needle); Hypoechoic: dark (vessels, LA)"
]},
{ x: 6.8, y: 1.3, title: "PNS Principles", color: ACCENT3, items: [
"Rheobase: min current to stimulate a nerve",
"Chronaxie: time at 2× rheobase threshold",
"Insulated needle concentrates current at tip",
"1–2 mA: initial stimulation; 0.2–0.5 mA: ideal endpoint",
"<0.2 mA twitch = intraneural position – withdraw"
]}
];
pCards.forEach(c => colBox(sl, c.x, c.y, 3.1, 3.15, c.title, c.items, c.color, "1A3560"));
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 4.55, w: 9.4, h: 0.88, fill: { color: "122B52" }, line: { color: ACCENT2, width: 1 } });
sl.addText("Local Anesthetic (LA) Principles", { x: 0.5, y: 4.6, w: 3.5, h: 0.35, fontSize: 11, bold: true, color: ACCENT2, margin: 0 });
sl.addText([
{ text: "Sodium channel blockade → reversible conduction block", options: { bullet: true, breakLine: true, fontSize: 9.5, color: LIGHT_TEXT } },
{ text: "Bupivacaine 0.25–0.5% (long-acting), Lidocaine 1–2% (short), Ropivacaine 0.2–0.5% (motor-sparing)", options: { bullet: true, fontSize: 9.5, color: LIGHT_TEXT } },
], { x: 0.5, y: 4.98, w: 4.2, h: 0.42 });
sl.addText([
{ text: "Max safe doses: Bupivacaine 2–3 mg/kg; Lidocaine 4–7 mg/kg with epi; Ropivacaine 3 mg/kg", options: { bullet: true, breakLine: true, fontSize: 9.5, color: LIGHT_TEXT } },
{ text: "LAST (LA Systemic Toxicity): Treat with 20% Intralipid 1.5 mL/kg IV bolus", options: { bullet: true, fontSize: 9.5, color: RED_WARN } },
], { x: 5.0, y: 4.98, w: 4.6, h: 0.42 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 8 – PROCEDURE (Step by Step)
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, ACCENT3);
sectionPill(sl, "PROCEDURE", ACCENT3);
sl.addText("General Procedural Steps for Nerve Blocks", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light" });
const steps = [
["01", "Pre-procedure", "Informed consent, IV access, monitoring (SpO₂, ECG, NIBP), resuscitation drugs available, NPO status confirmed", ACCENT1],
["02", "Positioning", "Position patient to expose target area; optimal positioning reduces needle depth and improves landmark visibility", ACCENT2],
["03", "Skin Prep", "Aseptic technique: sterile draping, antiseptic skin prep; sterile US probe cover + gel for USG blocks", ACCENT3],
["04", "LA Infiltration", "Skin wheal with local anesthetic at needle insertion site to reduce patient discomfort", ACCENT1],
["05", "Nerve Localization", "Landmark: palpate bony/vascular markers; PNS: stimulate at 1 mA then titrate; USG: scan in short-axis first then guide in-plane", ACCENT2],
["06", "Needle Placement & Injection", "Aspirate before each injection; inject LA in 3–5 mL aliquots; USG: confirm perineuronal spread; avoid resistance/pain on injection", ACCENT3],
["07", "Post-procedure", "Assess block onset (15–30 min); document motor/sensory testing; monitor for LAST, pneumothorax, vascular injury", ACCENT1],
];
steps.forEach(([n, title, desc, color], i) => {
const col = i < 4 ? 0 : 1;
const row = i < 4 ? i : i - 4;
const x = col === 0 ? 0.3 : 5.15;
const y = 1.28 + row * 1.05;
sl.addShape(pres.ShapeType.rect, { x, y, w: 0.45, h: 0.88, fill: { color } });
sl.addText(n, { x, y, w: 0.45, h: 0.88, fontSize: 13, bold: true, color: DARK_BG, align: "center", valign: "middle", margin: 0 });
sl.addShape(pres.ShapeType.rect, { x: x + 0.45, y, w: 4.3, h: 0.88, fill: { color: MID_BG }, line: { color, width: 1 } });
sl.addText(title, { x: x + 0.55, y: y + 0.04, w: 4.1, h: 0.32, fontSize: 10.5, bold: true, color, margin: 0 });
sl.addText(desc, { x: x + 0.55, y: y + 0.36, w: 4.1, h: 0.5, fontSize: 9, color: LIGHT_TEXT, valign: "top" });
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 9 – INCLUSION CRITERIA
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
topBar(sl, GREEN_OK);
sectionPill(sl, "INCLUSION CRITERIA", GREEN_OK);
sl.addText("Inclusion Criteria for Peripheral Nerve Blocks", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri Light" });
colBox(sl, 0.3, 1.3, 3.0, 4.05, "General Inclusions", [
"Surgery on extremities, trunk, head/neck region amenable to regional block",
"Patient requesting regional anesthesia / opioid-sparing",
"High-risk patients for GA (cardiac, respiratory, elderly)",
"Obesity: USG preferred for landmark identification",
"Outpatient/ambulatory surgery settings",
"Postoperative pain management (continuous catheter)",
"Chronic pain management (diagnostic/therapeutic)"
], GREEN_OK, MID_BG);
colBox(sl, 3.45, 1.3, 3.0, 4.05, "PNS-Specific Inclusions", [
"Deep nerves not well visualized on USG",
"Posterior lumbar plexus approach",
"Obese patients with poor acoustic windows",
"Supplemental nerve identification within plexus (axillary)",
"Patients who cannot remain still for USG needle guidance",
"Combined USG + PNS for maximum safety in high-risk cases",
], ACCENT3, MID_BG);
colBox(sl, 6.6, 1.3, 3.1, 4.05, "USG-Specific Inclusions", [
"Anatomical variants requiring real-time confirmation",
"Pediatric patients (smaller anatomy, need precision)",
"Anticoagulated patients – to avoid vessels",
"High-volume blocks where LA sparing is important",
"Catheter placement for continuous infusion",
"Teaching environment – real-time demonstration",
"Any block adjacent to pleura, vessels, neuraxis"
], ACCENT1, MID_BG);
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 10 – EXCLUSION CRITERIA
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, RED_WARN);
sectionPill(sl, "EXCLUSION CRITERIA", RED_WARN);
sl.addText("Exclusion / Contraindication Criteria", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light" });
colBox(sl, 0.3, 1.3, 4.6, 3.1, "Absolute Contraindications", [
"Patient refusal (lack of informed consent)",
"Known allergy to local anesthetics (class-specific)",
"Active infection or cellulitis at injection site",
"Pre-existing neurological deficit in the distribution of the nerve to be blocked (relative – document first)",
"Coagulopathy / INR >1.5 for deep / neuraxial blocks",
"Uncooperative or combative patient without GA backup"
], RED_WARN, MID_BG);
colBox(sl, 5.05, 1.3, 4.65, 3.1, "Relative Contraindications", [
"Severe coagulopathy (case-by-case risk-benefit)",
"Peripheral neuropathy in target nerve territory",
"Uncontrolled hypertension / haemodynamic instability",
"Septicemia (risk of hematogenous infection spread)",
"Hypovolemia (sympathetic block → severe hypotension)",
"Major organ dysfunction altering LA pharmacokinetics"
], ACCENT2, MID_BG);
// Technique-specific exclusions
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 4.52, w: 9.4, h: 0.9, fill: { color: MID_BG }, line: { color: RED_WARN, width: 1 } });
sl.addText("Technique-Specific Exclusions", { x: 0.5, y: 4.57, w: 4.0, h: 0.32, fontSize: 11, bold: true, color: RED_WARN, margin: 0 });
sl.addText([
{ text: "Landmark: Morbid obesity, unidentifiable landmarks, prior surgery distorting anatomy", options: { bullet: true, breakLine: true, fontSize: 9.5, color: LIGHT_TEXT } },
{ text: "PNS: Implanted pacemaker / defibrillator (consult cardiology); patient with pre-existing neuromuscular disorder where motor response is absent", options: { bullet: true, fontSize: 9.5, color: LIGHT_TEXT } },
], { x: 0.5, y: 4.9, w: 4.5, h: 0.48 });
sl.addText([
{ text: "USG: Subcutaneous emphysema obscuring view; severe calcification; inability to tolerate prolonged positioning for deep blocks", options: { bullet: true, fontSize: 9.5, color: LIGHT_TEXT } },
], { x: 5.2, y: 4.9, w: 4.4, h: 0.48 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 11 – ADVANTAGES COMPARISON TABLE
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
topBar(sl, ACCENT1);
sectionPill(sl, "COMPARISON", ACCENT1);
sl.addText("Advantages: Head-to-Head Comparison", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri Light" });
// Table
const headers = ["Parameter", "Landmark", "PNS", "USG"];
const rows = [
["Equipment", "None required", "Stimulator + insulated needle", "Ultrasound machine + probe"],
["Nerve Visualization", "None", "Indirect (motor response)", "Direct real-time"],
["LA Volume", "Higher (blind)", "Moderate", "30–50% less"],
["Success Rate", "Variable (60–85%)", "Good (85–92%)", "Excellent (>95%)"],
["Block Onset", "Slower", "Moderate", "Faster"],
["Complications", "Higher vascular/nerve risk", "Moderate", "Lowest"],
["Learning Curve", "Low equipment; anatomy critical", "Moderate", "Steeper (USG skills)"],
["Cost", "Lowest", "Moderate", "Highest"],
["Best For", "Resource-limited / emergencies", "Deep nerves, obese pts", "Standard of care – all blocks"],
];
const colWidths = [2.3, 2.4, 2.4, 2.5];
const startX = 0.3;
const headerY = 1.28;
const rowH = 0.46;
const hColors = [MID_BG, "2B4A22", "1A3550", "1A3560"];
const hTextColors = [ACCENT1, ACCENT2, ACCENT3, ACCENT1];
headers.forEach((h, i) => {
const x = startX + colWidths.slice(0, i).reduce((a, b) => a + b, 0);
const bg = i === 0 ? "1A3560" : i === 1 ? "2B3A1A" : i === 2 ? "1A3050" : "103050";
sl.addShape(pres.ShapeType.rect, { x, y: headerY, w: colWidths[i], h: 0.44, fill: { color: bg } });
sl.addText(h, { x, y: headerY, w: colWidths[i], h: 0.44, fontSize: 11.5, bold: true, color: hTextColors[i], align: "center", valign: "middle", margin: 0 });
});
rows.forEach((row, ri) => {
const y = headerY + 0.44 + ri * rowH;
const bgRow = ri % 2 === 0 ? "112240" : "0D1A35";
row.forEach((cell, ci) => {
const x = startX + colWidths.slice(0, ci).reduce((a, b) => a + b, 0);
sl.addShape(pres.ShapeType.rect, { x, y, w: colWidths[ci], h: rowH, fill: { color: ci === 0 ? "1A3560" : bgRow }, line: { color: "203560", width: 0.5 } });
const textColor = ci === 0 ? ACCENT1 : ri === 3 && ci === 3 ? GREEN_OK : ri === 5 && ci === 3 ? GREEN_OK : LIGHT_TEXT;
sl.addText(cell, { x: x + 0.06, y, w: colWidths[ci] - 0.12, h: rowH, fontSize: 9.5, color: textColor, valign: "middle", wrap: true });
});
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 12 – COMPLICATIONS & SAFETY
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
topBar(sl, RED_WARN);
sectionPill(sl, "COMPLICATIONS", RED_WARN);
sl.addText("Complications & Safety Considerations", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: DARK_TEXT, fontFace: "Calibri Light" });
colBox(sl, 0.3, 1.3, 4.6, 2.65, "Common Complications", [
"LAST – Local Anesthetic Systemic Toxicity (CNS/CVS)",
"Intravascular injection (arterial > venous)",
"Nerve injury (intraneural injection, ischemia)",
"Hematoma / bleeding at injection site",
"Pneumothorax (interscalene, supraclavicular blocks)",
"Phrenic nerve palsy (interscalene – 100%)",
"Infection / abscess"
], RED_WARN, MID_BG);
colBox(sl, 5.05, 1.3, 4.65, 2.65, "Prevention Strategies", [
"USG: real-time visualization reduces vascular hit rate",
"Aspirate before each LA injection (3–5 mL aliquots)",
"PNS: stop if twitch at <0.2 mA – may be intraneural",
"Stop injection if patient reports pain / resistance felt",
"Inject contrast-enhanced LA to verify spread (optional)",
"LAST Protocol: Airway, O₂, 20% Intralipid IV, CPR"
], GREEN_OK, MID_BG);
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 4.07, w: 9.4, h: 1.35, fill: { color: MID_BG }, line: { color: RED_WARN, width: 1 } });
sl.addText("LAST Emergency Management", { x: 0.5, y: 4.13, w: 4, h: 0.36, fontSize: 11, bold: true, color: RED_WARN, margin: 0 });
sl.addText([
{ text: "Signs: metallic taste, tinnitus, perioral numbness → seizures, cardiovascular collapse", options: { bullet: true, breakLine: true, fontSize: 10, color: LIGHT_TEXT } },
{ text: "Treatment: Stop LA injection immediately → 100% O₂ → benzodiazepine for seizures → 20% Intralipid 1.5 mL/kg IV bolus → CPR if cardiac arrest", options: { bullet: true, breakLine: true, fontSize: 10, color: LIGHT_TEXT } },
{ text: "Avoid: vasopressin, calcium channel blockers, β-blockers, local anesthetics during resuscitation", options: { bullet: true, fontSize: 10, color: RED_WARN } },
], { x: 0.5, y: 4.51, w: 9.1, h: 0.85 });
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 13 – USG vs PNS DETAILED ADVANTAGES
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
topBar(sl, ACCENT1);
sectionPill(sl, "ADVANTAGES", ACCENT1);
sl.addText("Detailed Advantages of USG over Landmark/PNS", { x: 0.35, y: 0.65, w: 9.3, h: 0.55, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri Light" });
const advList = [
["Direct Nerve Visualization", "Identify nerves, vessels, fascia in real-time – no guesswork", ACCENT1],
["LA Spread Monitoring", "Confirm circumferential (donut sign) spread; reposition if suboptimal", ACCENT2],
["Reduced Complications", "Lower rate of vascular puncture, nerve injury, pneumothorax vs landmark", GREEN_OK],
["Lower LA Volumes", "30–50% reduction in LA needed → reduces LAST risk", ACCENT3],
["Faster Block Onset", "Precise perineuronal deposition accelerates diffusion", ACCENT1],
["Anatomical Variant Detection", "Identify accessory nerves, vascular anomalies, tumors before needle insertion", ACCENT2],
["Real-Time Needle Tracking", "In-plane technique shows entire needle shaft; prevents blind advancement", GREEN_OK],
["Catheter Placement", "Continuous catheter placement confirmed in real-time under USG", ACCENT3],
["Wider Applicability", "Fascial plane blocks (TAP, PECS, QL, ESP) only possible with USG", ACCENT1],
["Teaching & Documentation", "Live view recorded; ideal for training programs and audit", ACCENT2],
];
advList.forEach((item, i) => {
const col = i < 5 ? 0 : 1;
const row = i < 5 ? i : i - 5;
const x = col === 0 ? 0.3 : 5.15;
const y = 1.28 + row * 0.84;
sl.addShape(pres.ShapeType.rect, { x, y, w: 0.22, h: 0.68, fill: { color: item[2] } });
sl.addShape(pres.ShapeType.rect, { x: x + 0.22, y, w: 4.68, h: 0.68, fill: { color: "112240" }, line: { color: item[2], width: 0.5 } });
sl.addText(item[0], { x: x + 0.3, y: y + 0.04, w: 4.5, h: 0.3, fontSize: 10.5, bold: true, color: item[2], margin: 0 });
sl.addText(item[1], { x: x + 0.3, y: y + 0.32, w: 4.5, h: 0.32, fontSize: 9.5, color: LIGHT_TEXT, margin: 0 });
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 14 – SUMMARY / CONCLUSION
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
// Accent diagonal
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT1 } });
sl.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.08, h: 5.625, fill: { color: ACCENT2 } });
// decorative circle
sl.addShape(pres.ShapeType.ellipse, { x: 8.3, y: 3.8, w: 2.5, h: 2.5, fill: { color: ACCENT1, transparency: 85 } });
sl.addText("KEY TAKEAWAYS & SUMMARY", { x: 0.45, y: 0.28, w: 9.3, h: 0.5, fontSize: 17, bold: true, color: ACCENT1, charSpacing: 3 });
sl.addShape(pres.ShapeType.line, { x: 0.45, y: 0.85, w: 9.2, h: 0, line: { color: ACCENT1, width: 1 } });
const takeaways = [
[ACCENT1, "Landmark technique remains the foundation – every anesthesiologist must master surface anatomy before advancing to guided techniques."],
[ACCENT2, "PNS provides objective nerve localization via motor response; invaluable for deep nerves, obese patients & as adjunct to USG for maximum safety."],
[ACCENT3, "USG is the current gold standard – direct visualization, reduced LA volumes, lower complications, and real-time spread confirmation."],
[GREEN_OK, "Inclusion criteria: Any patient benefiting from regional anesthesia without contraindications; preferred in high-risk GA patients."],
[RED_WARN, "Exclusion criteria: Patient refusal, local infection, LA allergy, severe coagulopathy; pacemakers relative for PNS."],
[ACCENT1, "Combined USG + PNS is recommended for complex blocks where either modality alone may be insufficient (e.g., posterior lumbar plexus)."],
[ACCENT2, "Always have LAST rescue protocol ready (20% Intralipid, airway management, BLS/ACLS) before performing any peripheral nerve block."],
];
takeaways.forEach((item, i) => {
sl.addShape(pres.ShapeType.rect, { x: 0.42, y: 1.0 + i * 0.64, w: 0.3, h: 0.48, fill: { color: item[0] } });
sl.addText((i + 1).toString(), { x: 0.42, y: 1.0 + i * 0.64, w: 0.3, h: 0.48, fontSize: 11, bold: true, color: DARK_BG, align: "center", valign: "middle", margin: 0 });
sl.addShape(pres.ShapeType.rect, { x: 0.72, y: 1.0 + i * 0.64, w: 8.9, h: 0.48, fill: { color: i % 2 === 0 ? "112240" : "0D1A35" }, line: { color: item[0], width: 0.5 } });
sl.addText(item[1], { x: 0.82, y: 1.0 + i * 0.64, w: 8.7, h: 0.48, fontSize: 10, color: LIGHT_TEXT, valign: "middle" });
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 15 – THANK YOU
// ═══════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT1 } });
sl.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.08, h: 5.625, fill: { color: ACCENT2 } });
sl.addShape(pres.ShapeType.ellipse, { x: 7.8, y: 3.5, w: 3.0, h: 3.0, fill: { color: ACCENT1, transparency: 88 } });
sl.addShape(pres.ShapeType.ellipse, { x: 8.5, y: 4.2, w: 2.0, h: 2.0, fill: { color: ACCENT2, transparency: 82 } });
sl.addText("THANK YOU", {
x: 0.55, y: 1.6, w: 8.5, h: 1.1,
fontSize: 48, bold: true, color: WHITE, align: "center",
fontFace: "Calibri Light", charSpacing: 8
});
sl.addShape(pres.ShapeType.line, { x: 2.5, y: 2.85, w: 5, h: 0, line: { color: ACCENT1, width: 2 } });
sl.addText("Landmark | PNS | Ultrasound-Guided Nerve Blocks", {
x: 0.55, y: 3.05, w: 8.5, h: 0.45,
fontSize: 14, color: SUBTITLE, align: "center", italic: true
});
sl.addText("Department of Anesthesiology & Pain Medicine", {
x: 0.55, y: 4.6, w: 8.5, h: 0.38,
fontSize: 11, color: "668BAA", align: "center"
});
sl.addText("References: Miller's Anesthesia 10e | NYSORA | StatPearls (NBK459210) | Acta Anaesthesiologica Belgica 2025", {
x: 0.55, y: 5.1, w: 8.5, h: 0.35,
fontSize: 8.5, color: "446677", align: "center", italic: true
});
}
// ─── WRITE FILE ──────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/nerve-blocks-ppt/Landmark_PNS_USG_Nerve_Blocks.pptx" })
.then(() => console.log("SUCCESS: Presentation created!"))
.catch(err => console.error("ERROR:", err));
cd /home/daytona/workspace/nerve-blocks-ppt && node create_ppt.js
ls -lh /home/daytona/workspace/nerve-blocks-ppt/Landmark_PNS_USG_Nerve_Blocks.pptx
Landmark PNS USG Nerve Blocks
Presentation · PPTX
| # | Slide |
|---|---|
| 1 | Title Slide - Bold visual with accent stripes |
| 2 | Table of Contents - 10-topic outline |
| 3 | Introduction - What are PNBs, evolution from landmark → PNS → USG |
| 4 | Landmark-Based Technique - Definition, key landmarks (interscalene, axillary, femoral, sciatic), advantages |
| 5 | PNS Guided Blocks - How it works, equipment, motor response targets, advantages |
| 6 | USG Guided Blocks - Real-time visualization principles, gold standard rationale, 30-50% LA reduction data |
| 7 | Principles - Anatomical principles, USG physics (hyperechoic/anisotropy), PNS electrophysiology, LA pharmacology + LAST |
| 8 | Procedure - 7-step general procedural guide (pre-procedure to post-care) |
| 9 | Inclusion Criteria - General, PNS-specific, USG-specific |
| 10 | Exclusion Criteria - Absolute vs relative contraindications, technique-specific exclusions |
| 11 | Comparison Table - 9-parameter head-to-head matrix (Landmark vs PNS vs USG) |
| 12 | Complications & Safety - LAST protocol, prevention strategies |
| 13 | Detailed USG Advantages - 10 distinct advantages with descriptions |
| 14 | Key Takeaways - 7-point summary |
| 15 | Thank You - References slide |