Snake bite management flashcards in which includes how to identify type of snap for measure snake in india with there symptom and give a treatment with from standard book

Reading File
Now let me search the medical library for snake bite management content.
Finding Sources
Finding Sources
Excellent! Found great sources. Let me read the most relevant sections - Pye's Surgical Handicraft (which has extensive snake bite content for India) and Goldman-Cecil (for Asia-specific content).
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
I now have comprehensive data. Let me also check Park's Textbook for India-specific content and the PPTX skill to create flashcards.
Reading File
Reading File
Reading File
Reading File
I now have enough content. Let me read the pptxgenjs guide further and then build the flashcards.
Reading File
Now I have everything I need. Let me build the comprehensive snake bite management flashcards PPTX.
Running Command

mkdir -p /home/daytona/workspace/snakebite-flashcards && ls /home/daytona/workspace/snakebite-flashcards/

Writing File

~/snakebite-flashcards/generate.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Snake Bite Management in India - Flashcards";
pres.author = "Medical Education";

// ─── COLOUR PALETTE ────────────────────────────────────────────
const C = {
  darkGreen:   "1A4731",  // dominant bg for headers
  midGreen:    "2D6A4F",
  accentGold:  "F4A50D",
  lightMint:   "D8F3DC",
  white:       "FFFFFF",
  offWhite:    "F8FBF9",
  red:         "C0392B",
  orange:      "E67E22",
  blue:        "1A5276",
  lightBlue:   "D6EAF8",
  purple:      "6C3483",
  lightPurple: "E8DAEF",
  teal:        "117A65",
  lightTeal:   "D0ECE7",
  darkText:    "1A1A1A",
  grayText:    "555555",
};

// ─── HELPER: TITLE SLIDE ────────────────────────────────────────
function titleSlide(title, subtitle) {
  let sl = pres.addSlide();
  // bg
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkGreen } });
  // accent bar
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 4.2, w: 10, h: 0.18, fill: { color: C.accentGold } });
  // emoji/icon area
  sl.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.5, y: 0.5, w: 1.2, h: 1.2, fill: { color: C.accentGold }, rectRadius: 0.2 });
  sl.addText("🐍", { x: 0.5, y: 0.45, w: 1.2, h: 1.2, fontSize: 38, align: "center", valign: "middle" });
  sl.addText(title, { x: 2, y: 0.5, w: 7.5, h: 1.4, fontSize: 34, bold: true, color: C.white, valign: "middle", margin: 0 });
  sl.addText(subtitle, { x: 2, y: 2.0, w: 7.5, h: 1.0, fontSize: 18, color: C.lightMint, italic: true, margin: 0 });
  sl.addText("Sources: Park's Textbook of Preventive & Social Medicine | Pye's Surgical Handicraft | Goldman-Cecil Medicine", {
    x: 0.5, y: 4.5, w: 9, h: 0.6, fontSize: 10, color: C.accentGold, align: "center", margin: 0
  });
}

// ─── HELPER: SECTION DIVIDER ────────────────────────────────────
function sectionDivider(emoji, number, title, subtitle) {
  let sl = pres.addSlide();
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.midGreen } });
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.25, h: 5.625, fill: { color: C.accentGold } });
  sl.addText(emoji, { x: 1, y: 0.8, w: 2, h: 2, fontSize: 72, align: "center", margin: 0 });
  sl.addText(`SECTION ${number}`, { x: 3.2, y: 1.0, w: 6.5, h: 0.6, fontSize: 14, color: C.accentGold, bold: true, charSpacing: 4, margin: 0 });
  sl.addText(title, { x: 3.2, y: 1.7, w: 6.5, h: 1.4, fontSize: 30, bold: true, color: C.white, margin: 0 });
  sl.addText(subtitle, { x: 3.2, y: 3.2, w: 6.5, h: 0.9, fontSize: 15, color: C.lightMint, italic: true, margin: 0 });
}

// ─── HELPER: FLASHCARD (QUESTION/ANSWER STYLE) ──────────────────
function flashcard(qBgColor, aBgColor, question, questionEmoji, answers, footerNote) {
  let sl = pres.addSlide();
  // LEFT panel - QUESTION
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 3.8, h: 5.625, fill: { color: qBgColor } });
  sl.addText("QUESTION", { x: 0.15, y: 0.2, w: 3.5, h: 0.4, fontSize: 10, bold: true, color: C.white, charSpacing: 3, margin: 0 });
  sl.addShape(pres.shapes.RECTANGLE, { x: 0.15, y: 0.65, w: 3.5, h: 0.04, fill: { color: C.white }, line: { color: C.white } });
  sl.addText(questionEmoji, { x: 0.3, y: 0.85, w: 3.2, h: 1.1, fontSize: 44, align: "center", margin: 0 });
  sl.addText(question, { x: 0.2, y: 2.0, w: 3.4, h: 3.1, fontSize: 14, bold: true, color: C.white, valign: "top", wrap: true, margin: 0 });
  // RIGHT panel - ANSWER
  sl.addShape(pres.shapes.RECTANGLE, { x: 3.8, y: 0, w: 6.2, h: 5.625, fill: { color: aBgColor } });
  sl.addText("ANSWER", { x: 3.95, y: 0.2, w: 5.9, h: 0.4, fontSize: 10, bold: true, color: C.grayText, charSpacing: 3, margin: 0 });
  sl.addShape(pres.shapes.RECTANGLE, { x: 3.95, y: 0.65, w: 5.8, h: 0.04, fill: { color: C.grayText }, line: { color: C.grayText } });
  // Answers
  sl.addText(answers, { x: 3.95, y: 0.8, w: 5.85, h: 4.5, fontSize: 12, color: C.darkText, valign: "top", wrap: true, margin: 4 });
  if (footerNote) {
    sl.addShape(pres.shapes.RECTANGLE, { x: 3.8, y: 5.2, w: 6.2, h: 0.42, fill: { color: qBgColor } });
    sl.addText(footerNote, { x: 3.9, y: 5.22, w: 6.0, h: 0.38, fontSize: 9.5, color: C.white, italic: true, margin: 0 });
  }
}

// ─── HELPER: INFO CARD (for identification/symptoms) ────────────
function infoCard(headerBg, title, emoji, rows, footerText) {
  let sl = pres.addSlide();
  // header
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: headerBg } });
  sl.addText(emoji + "  " + title, { x: 0.3, y: 0.12, w: 9.4, h: 0.8, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0 });
  // content rows
  let yPos = 1.25;
  const rowH = 0.73;
  rows.forEach((row, i) => {
    const bg = i % 2 === 0 ? C.offWhite : C.white;
    sl.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: yPos, w: 9.6, h: rowH, fill: { color: bg }, line: { color: "E0E0E0", pt: 0.5 } });
    sl.addText(row.label, { x: 0.35, y: yPos + 0.05, w: 3.0, h: rowH - 0.1, fontSize: 11, bold: true, color: headerBg, valign: "middle", margin: 0 });
    sl.addText(row.value, { x: 3.4, y: yPos + 0.05, w: 6.2, h: rowH - 0.1, fontSize: 11, color: C.darkText, valign: "middle", wrap: true, margin: 0 });
    yPos += rowH + 0.04;
  });
  if (footerText) {
    sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.2, w: 10, h: 0.42, fill: { color: headerBg } });
    sl.addText(footerText, { x: 0.3, y: 5.22, w: 9.4, h: 0.38, fontSize: 9.5, color: C.white, italic: true, margin: 0 });
  }
}

// ─── HELPER: SNAKE PROFILE CARD ─────────────────────────────────
function snakeProfile(accentColor, lightBg, snakeName, commonName, family, venom, identification, symptoms, antivenom) {
  let sl = pres.addSlide();
  // Top strip
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.9, fill: { color: accentColor } });
  sl.addText("🐍  " + snakeName, { x: 0.3, y: 0.05, w: 9, h: 0.8, fontSize: 20, bold: true, color: C.white, valign: "middle", margin: 0 });
  // Common name badge
  sl.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.3, y: 0.95, w: 9.4, h: 0.5, fill: { color: lightBg }, rectRadius: 0.08 });
  sl.addText(commonName + " | " + family, { x: 0.4, y: 0.97, w: 9.2, h: 0.46, fontSize: 12, italic: true, color: accentColor, valign: "middle", margin: 0 });
  // 3-column layout
  const colW = 3.0;
  const headers = ["🔍 Identification", "⚠️ Venom Type", "🩸 Symptoms"];
  const contents = [identification, venom, symptoms];
  const colors = [accentColor, C.red, C.orange];
  headers.forEach((h, i) => {
    const x = 0.2 + i * 3.25;
    sl.addShape(pres.shapes.RECTANGLE, { x, y: 1.55, w: colW, h: 0.45, fill: { color: colors[i] } });
    sl.addText(h, { x: x + 0.05, y: 1.57, w: colW - 0.1, h: 0.41, fontSize: 11, bold: true, color: C.white, valign: "middle", margin: 0 });
    sl.addShape(pres.shapes.RECTANGLE, { x, y: 2.0, w: colW, h: 2.9, fill: { color: lightBg }, line: { color: "D0D0D0", pt: 0.5 } });
    sl.addText(contents[i], { x: x + 0.1, y: 2.1, w: colW - 0.2, h: 2.7, fontSize: 10.5, color: C.darkText, valign: "top", wrap: true, margin: 0 });
  });
  // Antivenom footer
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.05, w: 10, h: 0.575, fill: { color: accentColor } });
  sl.addText("💉 Antivenom: " + antivenom, { x: 0.3, y: 5.07, w: 9.4, h: 0.52, fontSize: 11, color: C.white, bold: true, margin: 0 });
}

// ─── HELPER: TREATMENT STEP CARD ────────────────────────────────
function treatmentCard(bgColor, lightBg, title, emoji, steps) {
  let sl = pres.addSlide();
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: bgColor } });
  sl.addText(emoji + "  " + title, { x: 0.3, y: 0.1, w: 9.4, h: 0.8, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0 });
  let y = 1.1;
  steps.forEach((step, i) => {
    const sh = step.long ? 0.72 : 0.62;
    sl.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.2, y, w: 0.55, h: sh - 0.05, fill: { color: bgColor }, rectRadius: 0.1 });
    sl.addText(String(i + 1), { x: 0.2, y: y, w: 0.55, h: sh - 0.05, fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
    sl.addShape(pres.shapes.RECTANGLE, { x: 0.85, y, w: 8.95, h: sh - 0.05, fill: { color: lightBg }, line: { color: "E0E0E0", pt: 0.5 } });
    sl.addText(step.text, { x: 1.0, y: y + 0.05, w: 8.7, h: sh - 0.15, fontSize: 11.5, color: C.darkText, valign: "middle", wrap: true, margin: 0 });
    y += sh + 0.04;
  });
}

// ─── HELPER: COMPARISON TABLE ────────────────────────────────────
function comparisonTable(title, emoji, headerBg, cols, rows) {
  let sl = pres.addSlide();
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: headerBg } });
  sl.addText(emoji + "  " + title, { x: 0.3, y: 0.1, w: 9.4, h: 0.8, fontSize: 22, bold: true, color: C.white, valign: "middle", margin: 0 });
  const colW = 9.6 / cols.length;
  // Column headers
  cols.forEach((col, i) => {
    sl.addShape(pres.shapes.RECTANGLE, { x: 0.2 + i * colW, y: 1.05, w: colW, h: 0.5, fill: { color: headerBg }, line: { color: C.white, pt: 1 } });
    sl.addText(col, { x: 0.25 + i * colW, y: 1.07, w: colW - 0.1, h: 0.46, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
  });
  // Rows
  rows.forEach((row, ri) => {
    const bg = ri % 2 === 0 ? C.offWhite : C.white;
    const rowH = 0.62;
    const y = 1.57 + ri * rowH;
    row.forEach((cell, ci) => {
      sl.addShape(pres.shapes.RECTANGLE, { x: 0.2 + ci * colW, y, w: colW, h: rowH, fill: { color: ci === 0 ? C.lightMint : bg }, line: { color: "D0D0D0", pt: 0.5 } });
      sl.addText(cell, { x: 0.28 + ci * colW, y: y + 0.04, w: colW - 0.16, h: rowH - 0.08, fontSize: 10, color: ci === 0 ? C.darkGreen : C.darkText, bold: ci === 0, valign: "middle", wrap: true, margin: 0 });
    });
  });
}

// ═══════════════════════════════════════════════════════════════
// SLIDE CREATION BEGINS
// ═══════════════════════════════════════════════════════════════

// ── SLIDE 1: Title ──────────────────────────────────────────────
titleSlide("SNAKE BITE MANAGEMENT IN INDIA", "Flashcards for Identification · Symptoms · Treatment");

// ── SECTION 1: Epidemiology ──────────────────────────────────────
sectionDivider("📊", "1", "Epidemiology & Overview", "Why snake bite matters in India");

infoCard(C.darkGreen, "SNAKE BITE — Public Health Facts (India)", "📊", [
  { label: "Annual Deaths (India)", value: "≥45,000 per year — highest in the world" },
  { label: "Global Burden", value: "~5 million bites/year worldwide; 94,000–125,000 deaths; ~400,000 amputations" },
  { label: "Who is at Risk?", value: "Rural agricultural workers, farmers, hunters — occupational exposure" },
  { label: "When?", value: "Peak during rice planting/harvesting; Russell's viper bites common in South-East Asia during these periods" },
  { label: "Non-venomous Bites", value: "70% of all snake bites in India are from non-venomous species; only 50% of venomous bites actually envenomate" },
  { label: "Key Concern", value: "Delayed access to treatment and suboptimal care are main causes of mortality" },
], "Source: Park's Textbook of Preventive & Social Medicine | Goldman-Cecil Medicine");

// ── SECTION 2: Identification ────────────────────────────────────
sectionDivider("🔍", "2", "Identifying Venomous Snakes in India", "The 'Big Four' + other medically important species");

infoCard(C.blue, "HOW TO IDENTIFY A VENOMOUS SNAKE — General Features", "🔍", [
  { label: "Fang Marks", value: "Two distinct puncture marks (fang marks) vs. row of small teeth marks (non-venomous). May have single fang mark if one fang penetrated." },
  { label: "Head Shape", value: "Vipers: triangular/arrowhead head. Elapids (cobra/krait): more oval/rounded head" },
  { label: "Pupils", value: "Vipers: elliptical (cat-like) pupils. Elapids: round pupils" },
  { label: "Scales", value: "Vipers: keeled (rough) scales. Elapids: smooth scales" },
  { label: "Tail", value: "Vipers: short, stubby tail. Cobras/kraits: tapered tail" },
  { label: "Behavior at Bite", value: "Immediate pain + swelling → Viper. Mild/no immediate pain → Elapid (cobra/krait)" },
], "Source: Pye's Surgical Handicraft, 22nd Ed | Park's Preventive Medicine");

// ── Snake Profile 1: Indian Cobra ──────────────────────────────
snakeProfile(
  C.blue, C.lightBlue,
  "Naja naja — Indian Cobra",
  "Common name: Spectacled Cobra / Nag | Family: Elapidae",
  "Elapidae",
  "NEUROTOXIC (post-synaptic)\nBlocks acetylcholine at neuromuscular junction → flaccid paralysis\nAlso cytotoxic in some subspecies",
  "• Spectacled/binocular mark on hood\n• Hood spreads when threatened\n• Smooth, rounded head\n• 1.2–1.8 m long\n• Brown/cream/black coloration\n• Diurnal + nocturnal",
  "• Minimal/moderate local pain & swelling\n• Onset: 0.5–8 hours\n• Ptosis (first sign!)\n• Diplopia, dysarthria\n• Dysphagia, drooling\n• Flaccid descending paralysis\n• Respiratory failure\n• Local necrosis possible",
  "Polyvalent Anti-Snake Venom (ASV) — Indian polyvalent covers Naja naja. IV infusion."
);

// ── Snake Profile 2: Indian Krait ──────────────────────────────
snakeProfile(
  C.purple, C.lightPurple,
  "Bungarus caeruleus — Indian Krait",
  "Common name: Common Krait / Blue Krait | Family: Elapidae",
  "Elapidae",
  "POWERFUL NEUROTOXIN\n(α + β bungarotoxins)\nPre-synaptic AND post-synaptic blockade\nMore potent than cobra neurotoxin",
  "• Black/dark blue with white crossbands\n• Triangular cross-section body\n• Glossy, smooth scales\n• Hexagonal vertebral scales enlarged\n• 0.9–1.7 m long\n• Nocturnal; sluggish during day",
  "• PAINLESS bite — often mistaken for insect bite or may not wake sleeping victim!\n• Local swelling ABSENT or minimal\n• Delayed onset: 1–8 hours\n• Abdominal pain, cramps\n• Ptosis, ophthalmoplegia\n• Ascending paralysis\n• Respiratory arrest\n• High mortality if untreated",
  "Polyvalent ASV (Indian polyvalent). Neostigmine + atropine as adjunct. Ventilatory support critical."
);

// ── Snake Profile 3: Russell's Viper ───────────────────────────
snakeProfile(
  C.red, "#FADBD8",
  "Daboia russelii — Russell's Viper",
  "Common name: Chain Viper / Koriwala | Family: Viperidae",
  "Viperidae",
  "CYTOTOXIC + HAEMOTOXIC\nProcoagulant → Consumption coagulopathy (DIC)\nNephrotoxic → Acute kidney injury\nMyotoxic (in Indian/Sri Lankan subspecies)",
  "• Chain-like row of dark brown oval spots on body\n• Triangular head, distinct neck\n• Heavy-bodied, 1.0–1.5 m\n• Loud hissing when disturbed\n• Keeled scales\n• Prominent heat-sensing pits\n• Diurnal in cool weather, nocturnal in heat",
  "• SEVERE local pain and swelling within minutes\n• Hemorrhagic blisters\n• Non-clotting blood (DIC)\n• Gum bleeding, hemoptysis\n• Hematuria, hematemesis\n• Bilateral ptosis (in Indian subspecies)\n• Rhabdomyolysis\n• Acute kidney injury (major cause of AKI in Myanmar)\n• Shock, hypotension",
  "Polyvalent ASV. Fresh frozen plasma NOT helpful for Russell's viper coagulopathy. Dialysis for AKI."
);

// ── Snake Profile 4: Saw-Scaled Viper ──────────────────────────
snakeProfile(
  C.orange, "#FDEBD0",
  "Echis carinatus — Saw-Scaled / Carpet Viper",
  "Common name: Phoorsa / Carpet Viper | Family: Viperidae",
  "Viperidae",
  "HAEMOTOXIC\nVery potent procoagulant enzymes\n→ DIC / consumption coagulopathy\n→ Spontaneous systemic bleeding",
  "• Small (0.3–0.6 m), slender\n• Pear-shaped head with rostral horn\n• Distinctive 'serrated' lateral scales that produce rasping sound when coiled\n• Brown/gray with white arrow mark on head\n• Nocturnal; common in dry, rocky terrain",
  "• Severe local pain, swelling, bruising\n• Persistent bleeding from fang marks\n• Spontaneous bleeding: gums, nose, GI tract\n• Gingival bleeding (early sign)\n• Non-clotting blood (20WBCT positive)\n• Haematuria\n• Shock and DIC\n• CNS bleeding rare but possible",
  "Polyvalent ASV. Monitor 20-min whole blood clotting test (20WBCT) every 6h. Repeat ASV until clotting restored."
);

// ── SECTION 3: Venom Types & Syndromes ────────────────────────
sectionDivider("⚗️", "3", "Venom Types & Clinical Syndromes", "Neurotoxic · Haemotoxic · Cytotoxic");

comparisonTable(
  "Venom Syndromes: Comparison of Key Features", "⚗️", C.teal,
  ["Feature", "Neurotoxic (Elapids)", "Haemotoxic (Vipers)", "Cytotoxic (Cobras/Vipers)"],
  [
    ["Local Pain", "Mild / ABSENT (krait)", "SEVERE, immediate", "Moderate–severe"],
    ["Local Swelling", "Minimal / ABSENT (krait)", "Extensive, rapid", "Present + necrosis"],
    ["Fang Marks", "May be invisible", "Clear, bleeding persists", "Present"],
    ["Key Early Sign", "Ptosis (lid droop)", "Bleeding gums / non-clotting blood", "Tissue necrosis"],
    ["Coagulopathy", "ABSENT", "PRESENT (DIC)", "Variable"],
    ["Paralysis", "Descending → respiratory failure", "ABSENT / mild", "Possible if systemic"],
    ["Rhabdomyolysis", "Sea snakes, Russell's viper (India)", "Russell's viper", "Occasional"],
    ["AKI", "Rare", "Russell's viper, Echis", "Variable"],
    ["Key Test", "Vital signs, ptosis check", "20WBCT — 20 min clot test", "Local wound assessment"],
  ]
);

// ── SECTION 4: Diagnosis ─────────────────────────────────────────
sectionDivider("🩺", "4", "Diagnosis & Assessment", "History · Examination · Bedside Tests");

flashcard(
  C.darkGreen, C.offWhite,
  "What are the EARLY CLUES of SEVERE envenomation?",
  "🚨",
  [
    { text: "Early Clues of SEVERE Envenomation\n", options: { bold: true, fontSize: 13, breakLine: true, color: C.red } },
    { text: "• Snake identified as very dangerous species\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Rapid extension of local swelling from bite site\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Early tender enlargement of regional lymph nodes\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Systemic symptoms: collapse, shock, nausea, vomiting, diarrhoea\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Severe headache, 'heaviness' of eyelids, pathological drowsiness\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Early ptosis or ophthalmoplegia\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Spontaneous systemic bleeding (gums, nose, GI)\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "• Dark brown/black urine (haemoglobinuria/myoglobinuria)\n\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "Earliest sign of paralysis: PTOSIS", options: { bold: true, fontSize: 12, color: C.red } },
  ],
  "Park's PSM | Pye's Surgical Handicraft, 22nd Ed"
);

infoCard(C.teal, "BEDSIDE DIAGNOSTIC TESTS for Snake Bite", "🧪", [
  { label: "20WBCT", value: "20-Minute Whole Blood Clotting Test: Place few mL venous blood in clean dry glass tube. Leave 20 min at room temp. Non-clotting = defibrination = viperid envenomation. Repeat every 6h post-antivenom." },
  { label: "Urine Dipstick", value: "Blood/protein on dipstick → haemoglobinuria or myoglobinuria. Myoglobin gives +ve haemoglobin reaction. Dark mahogany/cola urine → rhabdomyolysis." },
  { label: "Urine Output", value: "Monitor hourly. Oliguria (<0.5 mL/kg/h) → AKI from Russell's viper or Echis." },
  { label: "Ptosis Check", value: "Ask patient to look upward — failure of lid retraction causing 'hooding' of pupil = earliest sign of neurotoxic paralysis" },
  { label: "CBC / Haematocrit", value: "WBC >20,000/μL suggests systemic envenomation. Falling haematocrit → haemolysis or bleeding." },
  { label: "ECG", value: "Useful in cardiovascular assessment; some venoms cause arrhythmia or hypotension" },
], "Source: Pye's Surgical Handicraft 22nd Ed | Park's PSM");

// ── SECTION 5: First Aid ──────────────────────────────────────────
sectionDivider("🏃", "5", "First Aid Management", "Government of India National Protocol 2007");

treatmentCard(C.darkGreen, C.lightMint, "FIRST AID — DO's (India National Protocol 2007)", "✅", [
  { text: "REASSURE the patient: 70% of all snake bites are from non-venomous species; only 50% of bites by venomous species actually envenomate. Panic increases venom absorption." },
  { text: "IMMOBILIZE the bitten limb: Splint like a fractured limb. Use bandages/cloth to hold splints — NOT to block blood supply. Reduces muscle contractions that enhance venom absorption." },
  { text: "PRESSURE IMMOBILIZATION BANDAGE: Apply only for identified neurotoxic elapid or sea snake bites (krait/cobra). Firm crepe bandage + splint from bite site upward. Delays life-threatening neurotoxicity until intubation possible." },
  { text: "REMOVE constricting items: Rings, bracelets, watches, tight footwear from bitten limb before swelling begins." },
  { text: "TRANSPORT URGENTLY to nearest health facility — as quickly, comfortably and passively as possible (carry patient; minimize exertion)." },
  { text: "MONITOR: Note time of bite, progression of symptoms, identify snake if safely possible (do NOT handle live/dead snake with bare hands)." },
]);

treatmentCard(C.red, "#FADBD8", "FIRST AID — DON'Ts (Harmful Traditional Practices)", "❌", [
  { text: "Do NOT incise, excise, cauterize, or suck the wound. Do NOT apply ice packs. These cause more tissue damage and delay transfer to care." },
  { text: "Do NOT give alcoholic beverages or stimulants — they are vasodilators that speed up venom absorption." },
  { text: "Do NOT use tight tourniquets or constricting bands (except for confirmed neurotoxic elapid/sea snake bite — see Do's). Tourniquets cause ischaemia and necrosis." },
  { text: "Do NOT apply electric shocks, herbal poultices, chemicals, or any topical remedies." },
  { text: "Do NOT give aspirin or NSAIDs for pain (they cause bleeding). Use paracetamol or codeine only.", long: true },
  { text: "Do NOT perform skin/conjunctival sensitivity tests for antivenom — they have NO predictive value.", long: true },
]);

// ── SECTION 6: Antivenom ──────────────────────────────────────────
sectionDivider("💉", "6", "Antivenom Therapy", "The mainstay of treatment");

infoCard(C.midGreen, "INDICATIONS FOR ANTIVENOM (ASV)", "💉", [
  { label: "Systemic Envenomation", value: "Haemostatic abnormalities: spontaneous bleeding, non-clotting blood (20WBCT+), DIC; Neurotoxicity: ptosis, ophthalmoplegia, paralysis; Cardiovascular: hypotension, shock, arrhythmia; AKI (oliguria, haematuria)" },
  { label: "Local Envenomation", value: "Known necrotic venom + swelling >50% of bitten limb; rapid progression of swelling; bites on digits or tight fascial compartments" },
  { label: "Other Systemic Signs", value: "WBC >20,000/μL; acidosis; rhabdomyolysis (elevated CK/myoglobinuria)" },
  { label: "Indian Polyvalent ASV", value: "Covers all 4 species of 'Big Four': Naja naja, Bungarus caeruleus, Daboia russelii, Echis carinatus. Initial dose: minimum 5 × 10 mL ampoules (50 mL). Children = same dose as adults." },
  { label: "Route & Rate", value: "IV infusion is preferred. Dilute in normal saline. Give slowly initially (watch for reactions). NOT by local injection into bite site." },
  { label: "Repeat Dosing", value: "Assess clinical response. Repeat within 1h if life-threatening signs persist (respiratory paralysis, shock). For procoagulant venom: repeat every 6h until 20WBCT normalizes." },
], "Source: Pye's Surgical Handicraft 22nd Ed | Park's PSM");

flashcard(
  C.midGreen, C.offWhite,
  "How do you manage ANTIVENOM REACTIONS?",
  "⚠️",
  [
    { text: "EARLY (Anaphylactic) Reactions", options: { bold: true, fontSize: 12.5, breakLine: true, color: C.red } },
    { text: "Onset: 10 min – 2 hours after starting ASV\n", options: { fontSize: 11, breakLine: true } },
    { text: "Features: urticaria, itching, tachycardia, fever, coughing, vomiting\n\n", options: { fontSize: 11, breakLine: true } },
    { text: "Treatment: Adrenaline 0.1% (1:1000, 1 mg/mL)\n", options: { fontSize: 11, breakLine: true } },
    { text: "  Adult: 0.5–1.0 mL SC/IM (or very slow IV if severe)\n", options: { fontSize: 11, breakLine: true } },
    { text: "  Child: 0.01 mL/kg SC/IM\n", options: { fontSize: 11, breakLine: true } },
    { text: "+ Chlorpheniramine maleate IV (adult 10 mg, child 0.2 mg/kg)\n\n", options: { fontSize: 11, breakLine: true } },
    { text: "LATE (Serum Sickness) Reactions\n", options: { bold: true, fontSize: 12.5, breakLine: true, color: C.orange } },
    { text: "Onset: 5–24 days post-treatment\n", options: { fontSize: 11, breakLine: true } },
    { text: "Features: fever, urticaria, lymphadenopathy, arthralgias, albuminuria\n", options: { fontSize: 11, breakLine: true } },
    { text: "Treatment: Antihistamine (mild); Prednisolone 5 mg QID × 5d adult, 0.7 mg/kg/d × 5d child\n", options: { fontSize: 11, breakLine: true } },
  ],
  "Source: Pye's Surgical Handicraft, 22nd Ed"
);

// ── SECTION 7: Supportive Treatment ──────────────────────────────
sectionDivider("🏥", "7", "Supportive & Definitive Treatment", "Hospital management protocol");

treatmentCard(C.blue, C.lightBlue, "HOSPITAL MANAGEMENT — Step-by-Step Protocol", "🏥", [
  { text: "OBSERVATION: Admit ALL snake bite patients for minimum 24h (except reliably identified non-venomous species). Record time of bite, snake ID, symptom progression hourly." },
  { text: "IV ACCESS + MONITORING: Establish IV access. Monitor BP, pulse, RR, urine output hourly. Baseline: 20WBCT, CBC, urine stix, haematocrit, ECG." },
  { text: "AIRWAY & VENTILATION: Neurotoxic paralysis → artificial ventilation (manual Ambu bag or mechanical). Endotracheal intubation with cuffed tube. Antivenom may act too slowly to prevent respiratory arrest — do not wait." },
  { text: "ANTIVENOM (ASV): Give per indications (see Section 6). Premedicate with SC epinephrine 0.25 mL (1:1000) in adults to reduce anaphylaxis risk. Dilute in NS. Slow initial infusion." },
  { text: "NEOSTIGMINE + ATROPINE: For post-synaptic neurotoxicity (cobra bites). Neostigmine 0.02 mg/kg IM + Atropine 0.6 mg IV. May reverse ptosis and paralysis if post-synaptic (NOT useful for pre-synaptic toxins like krait)." },
  { text: "SHOCK MANAGEMENT: IV fluid challenge — 250–500 mL 0.9% saline (adults). Vasopressors if unresponsive. Monitor urine output." },
]);

treatmentCard(C.teal, C.lightTeal, "SPECIFIC COMPLICATIONS MANAGEMENT", "🔧", [
  { text: "RESPIRATORY PARALYSIS: Mechanical ventilation; keep ventilated until adequate neuromuscular recovery. May require days to weeks for krait bites." },
  { text: "ACUTE KIDNEY INJURY (Russell's viper/Echis): Conservative fluid management, monitor urine output, avoid nephrotoxins. Haemodialysis/peritoneal dialysis if severe oliguria persists." },
  { text: "DIC / COAGULOPATHY: Repeat ASV every 6h until 20WBCT normalizes. Fresh Frozen Plasma is NOT helpful for Russell's viper coagulopathy. Do NOT give aspirin or NSAIDs." },
  { text: "LOCAL NECROSIS: Antibiotics + tetanus prophylaxis if wound is necrotic, infected, or manipulated. Surgical debridement for established necrosis. Physiotherapy for sequelae." },
  { text: "RHABDOMYOLYSIS: IV fluids to maintain urine output >1 mL/kg/h. Alkalinize urine. Monitor CK, potassium, calcium. Treat hyperkalaemia urgently (cardiac risk)." },
  { text: "WOUND CARE: Do NOT incise. Drain blisters containing serosanguinous fluid only if under pressure causing pain. Skin/conjunctival sensitivity tests for ASV are NOT recommended." },
]);

// ── SECTION 8: 20WBCT Quick Reference ───────────────────────────
flashcard(
  C.teal, C.offWhite,
  "How to perform the 20-Minute Whole Blood Clotting Test (20WBCT)?",
  "🧪",
  [
    { text: "20-Minute Whole Blood Clotting Test (20WBCT)\n\n", options: { bold: true, fontSize: 13, breakLine: true, color: C.teal } },
    { text: "Procedure:\n", options: { bold: true, fontSize: 12, breakLine: true } },
    { text: "1. Collect 2–3 mL venous blood\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "2. Place in a clean, dry glass test tube (GLASS is essential)\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "3. Leave undisturbed at room temperature for exactly 20 minutes\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "4. Tilt the tube — if blood does NOT clot → DEFIBRINATION\n\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "Interpretation:\n", options: { bold: true, fontSize: 12, breakLine: true } },
    { text: "✓ Clotted = NORMAL (no coagulopathy)\n", options: { fontSize: 11.5, breakLine: true, color: C.teal } },
    { text: "✗ Non-clotting = Viperid envenomation → Give ASV\n\n", options: { fontSize: 11.5, breakLine: true, color: C.red } },
    { text: "Post-ASV Monitoring:\n", options: { bold: true, fontSize: 12, breakLine: true } },
    { text: "Repeat every 6 hours until clotting is restored. Late recurrence of envenomation possible — observe 3–5 days.", options: { fontSize: 11 } },
  ],
  "Source: Pye's Surgical Handicraft 22nd Ed | Park's PSM | Goldman-Cecil Medicine"
);

// ── SECTION 9: Quick Reference Summary Table ───────────────────
sectionDivider("📋", "8", "Quick Reference Summary", "The Big Four — India at a Glance");

comparisonTable(
  "India's BIG FOUR — Rapid Identification & Management", "📋", C.darkGreen,
  ["Snake", "Identification Clue", "Key Symptom", "Treatment Priority"],
  [
    ["Indian Cobra\n(Naja naja)", "Hood with spectacle mark; expands when threatened", "Ptosis → descending paralysis; local swelling possible", "ASV + neostigmine/atropine; ventilatory support"],
    ["Indian Krait\n(B. caeruleus)", "Black/white crossbands; painless bite; nocturnal", "PAINLESS bite; absent local swelling; respiratory arrest at night", "ASV (limited effect); mechanical ventilation often needed for days"],
    ["Russell's Viper\n(D. russelii)", "Chain of dark oval spots; loud hissing", "Severe pain, DIC, AKI, bilateral ptosis (India)", "ASV; dialysis for AKI; NO FFP for coagulopathy"],
    ["Saw-Scaled Viper\n(E. carinatus)", "Small, rasping sound from scales; dry/rocky habitat", "Persistent bleeding from bite; gum bleeding; DIC", "ASV; repeat until 20WBCT normalizes every 6h"],
  ]
);

// ── Final Summary Flashcard ────────────────────────────────────
flashcard(
  C.darkGreen, C.offWhite,
  "What is the MNEMONIC for snake bite FIRST AID in India?",
  "💡",
  [
    { text: "Remember: 'REST A MOMENT'\n\n", options: { bold: true, fontSize: 13, breakLine: true, color: C.darkGreen } },
    { text: "R — REASSURE patient (70% bites non-venomous)\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "E — EXAMINE for fang marks, swelling, signs of envenomation\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "S — SPLINT and IMMOBILIZE the bitten limb\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "T — TRANSPORT urgently, keep patient still\n\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "A — AVOID tourniquets, incisions, suction, ice, alcohol\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "M — MONITOR vitals, urine output, 20WBCT\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "O — OXYGEN + airway if paralysis develops\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "M — MONITOR response to antivenom (ASV)\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "E — EPINEPHRINE ready for antivenom reactions\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "N — NEOSTIGMINE + atropine for cobra ptosis/paralysis\n", options: { fontSize: 11.5, breakLine: true } },
    { text: "T — TRANSFER if not improving after antivenom", options: { fontSize: 11.5 } },
  ],
  "India National Snake Bite Protocol 2007 | Park's PSM | Pye's Surgical Handicraft"
);

// ── End slide ──────────────────────────────────────────────────
{
  let sl = pres.addSlide();
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.darkGreen } });
  sl.addShape(pres.shapes.RECTANGLE, { x: 0, y: 2.3, w: 10, h: 0.1, fill: { color: C.accentGold } });
  sl.addText("🐍", { x: 4.1, y: 0.4, w: 1.8, h: 1.5, fontSize: 60, align: "center" });
  sl.addText("Snake Bite Management — India", { x: 1, y: 1.95, w: 8, h: 0.7, fontSize: 22, bold: true, color: C.white, align: "center", margin: 0 });
  sl.addText("Sources:", { x: 1, y: 2.8, w: 8, h: 0.45, fontSize: 14, bold: true, color: C.accentGold, align: "center", margin: 0 });
  sl.addText([
    { text: "1. Park's Textbook of Preventive & Social Medicine (23rd Ed)\n", options: { breakLine: true } },
    { text: "2. Pye's Surgical Handicraft, 22nd Edition\n", options: { breakLine: true } },
    { text: "3. Goldman-Cecil Medicine (International Edition)\n", options: { breakLine: true } },
    { text: "4. India National Snake Bite Protocol (Government of India, 2007)", options: {} },
  ], { x: 1, y: 3.3, w: 8, h: 1.6, fontSize: 12, color: C.lightMint, align: "center", valign: "middle", margin: 0 });
}

// ── Write file ─────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/snakebite-flashcards/SnakeBite_India_Flashcards.pptx" })
  .then(() => console.log("Done: SnakeBite_India_Flashcards.pptx"))
  .catch(err => console.error("Error:", err));
Running Command

cd /home/daytona/workspace/snakebite-flashcards && node generate.js 2>&1

Running Command

ls -lh /home/daytona/workspace/snakebite-flashcards/

Your flashcard deck is ready! Here is the download link:

SnakeBite India Flashcards

Presentation · PPTX


What's Inside (20 Slides)

The deck is structured into 8 sections with a clean dark-green + gold medical theme:

Section 1 - Epidemiology

  • India: ≥45,000 deaths/year (highest globally)
  • 70% of bites in India are from non-venomous species
  • Only 50% of venomous bites actually envenomate

Section 2 - Snake Identification (India)

General ID features card (fang marks, head shape, pupils, scales, behavior)
Individual profile cards for each of the "Big Four":
SnakeKey ID Feature
Indian Cobra (Naja naja)Spectacle mark on hood; expands when threatened
Indian Krait (Bungarus caeruleus)Black/white crossbands; painless bite; nocturnal
Russell's Viper (Daboia russelii)Chain of dark oval spots; loud hissing
Saw-Scaled Viper (Echis carinatus)Small; rasping sound from keeled scales

Section 3 - Venom Syndromes

A comparison table across neurotoxic / haemotoxic / cytotoxic features

Section 4 - Diagnosis

  • Early clues of severe envenomation flashcard
  • 20WBCT, urine dipstick, ptosis check, ECG - bedside tests card

Section 5 - First Aid

  • Do's - India National Protocol 2007 (Government of India)
  • Don'ts - harmful traditional practices to avoid

Section 6 - Antivenom (ASV)

  • Indications card
  • Management of anaphylactic + serum sickness reactions (with doses)

Section 7 - Hospital Management

  • Step-by-step protocol card (airway, ASV, neostigmine, shock)
  • Specific complications: AKI, DIC, rhabdomyolysis, necrosis

Section 8 - Quick Reference

  • Big Four summary table
  • Mnemonic flashcard: REST A MOMENT
  • Source attribution slide

Sources used: Park's Textbook of Preventive & Social Medicine | Pye's Surgical Handicraft (22nd Ed) | Goldman-Cecil Medicine (International Edition) | India National Snake Bite Protocol 2007
This is a shared conversation. Sign in to Orris to start your own chat.