Give me the flowchart for snake bite management flashcards with diagrammatic representation and also with mnemonic and from a standard clinical book

Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"

Writing File

~/snakebite/create_flashcards.js

const pptxgen = require("pptxgenjs");

let pres = new pptxgen();
pres.layout = 'LAYOUT_WIDE';
pres.title = 'Snakebite Management Flashcards';
pres.author = 'Orris Medical AI';

// ─── COLOR PALETTE ───────────────────────────────────────────────────────────
const C = {
  darkBg:     "1A1A2E",  // deep navy - title/conclusion
  midBg:      "16213E",  // medium navy
  cardBg:     "0F3460",  // card navy
  accent1:    "E94560",  // red-pink (danger/alert)
  accent2:    "F5A623",  // amber (caution/mnemonic)
  accent3:    "00D4AA",  // teal (action/treatment)
  accent4:    "7B68EE",  // lavender (info)
  white:      "FFFFFF",
  lightGray:  "E8E8F0",
  midGray:    "B0B0C8",
  green:      "27AE60",
  yellow:     "F1C40F",
  red:        "E74C3C",
  orange:     "E67E22",
  lightBg:    "F0F4FF",
  darkText:   "1A1A2E",
  boxGreen:   "1E8449",
  boxYellow:  "B7950B",
  boxRed:     "922B21",
};

// Helper: gradient-like header bar
function addHeader(slide, title, subtitle, bgColor, accentColor) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: bgColor } });
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.08, fill: { color: accentColor } });
  slide.addText(title, {
    x: 0.3, y: 0.08, w: 9, h: 0.6,
    fontSize: 26, bold: true, color: C.white, fontFace: "Calibri", margin: 0
  });
  if (subtitle) {
    slide.addText(subtitle, {
      x: 0.3, y: 0.62, w: 11, h: 0.38,
      fontSize: 12, color: accentColor, fontFace: "Calibri", margin: 0
    });
  }
}

// Helper: source badge
function addSource(slide, text) {
  slide.addShape(pres.ShapeType.roundRect, {
    x: 10.5, y: 0.18, w: 2.6, h: 0.55,
    fill: { color: "00000030" }, line: { color: C.midGray, width: 0.5 }, rectRadius: 0.08
  });
  slide.addText(text, {
    x: 10.5, y: 0.18, w: 2.6, h: 0.55,
    fontSize: 8.5, color: C.lightGray, align: "center", valign: "middle", fontFace: "Calibri", margin: 0
  });
}

// Helper: rounded card
function addCard(slide, x, y, w, h, fillColor, lineColor) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: fillColor },
    line: { color: lineColor || fillColor, width: 1 },
    rectRadius: 0.12
  });
}

// Helper: flowchart box
function addFlowBox(slide, label, x, y, w, h, fillColor, textColor, fontSize) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: fillColor },
    line: { color: "00000040", width: 0.8 },
    rectRadius: 0.1
  });
  slide.addText(label, {
    x, y, w, h,
    fontSize: fontSize || 10,
    bold: true,
    color: textColor || C.white,
    align: "center",
    valign: "middle",
    fontFace: "Calibri",
    margin: 0
  });
}

// Helper: arrow
function addArrow(slide, x1, y1, x2, y2) {
  slide.addShape(pres.ShapeType.line, {
    x: x1, y: y1, w: x2 - x1, h: y2 - y1,
    line: { color: C.midGray, width: 1.5, endArrowType: "triangle" }
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE CARD
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.darkBg } });
  // Snake silhouette accent bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 6.9, w: 13.3, h: 0.6, fill: { color: C.accent1 } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.accent1 } });

  s.addText("🐍 SNAKEBITE MANAGEMENT", {
    x: 0.5, y: 1.4, w: 12.3, h: 1.1,
    fontSize: 44, bold: true, color: C.white,
    fontFace: "Calibri", align: "center", charSpacing: 3
  });
  s.addText("CLINICAL FLASHCARD SERIES", {
    x: 0.5, y: 2.55, w: 12.3, h: 0.6,
    fontSize: 22, color: C.accent3, fontFace: "Calibri", align: "center", charSpacing: 8
  });
  s.addShape(pres.ShapeType.rect, { x: 3.5, y: 3.3, w: 6.3, h: 0.05, fill: { color: C.accent2 } });
  s.addText([
    { text: "Flowchart • Mnemonics • Diagrammatic • Evidence-based", options: { breakLine: true } },
  ], {
    x: 0.5, y: 3.5, w: 12.3, h: 0.7,
    fontSize: 14, color: C.midGray, fontFace: "Calibri", align: "center"
  });
  s.addText([
    { text: "Sources: Harrison's Principles of Internal Medicine 22E (2025) • ", options: {} },
    { text: "Tintinalli's Emergency Medicine • ", options: {} },
    { text: "Sabiston Textbook of Surgery", options: {} },
  ], {
    x: 0.5, y: 4.4, w: 12.3, h: 0.5,
    fontSize: 11, color: C.accent2, fontFace: "Calibri", align: "center"
  });

  // topic chips
  const chips = ["Snake ID", "Field Care", "Envenomation Grading", "Antivenom", "Mnemonics", "Disposition"];
  chips.forEach((chip, i) => {
    const cx = 0.9 + i * 2.08;
    s.addShape(pres.ShapeType.roundRect, { x: cx, y: 5.2, w: 1.9, h: 0.45, fill: { color: C.cardBg }, line: { color: C.accent3, width: 1 }, rectRadius: 0.2 });
    s.addText(chip, { x: cx, y: 5.2, w: 1.9, h: 0.45, fontSize: 10, color: C.accent3, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
  });

  s.addText("7 Flashcards", { x: 0.5, y: 6.3, w: 12.3, h: 0.4, fontSize: 11, color: C.midGray, align: "center", fontFace: "Calibri" });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — SNAKE IDENTIFICATION: VIPER vs ELAPID
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.lightBg } });
  addHeader(s, "FLASHCARD 1 — SNAKE IDENTIFICATION", "Viper vs Elapid: know before you treat", C.darkBg, C.accent2);
  addSource(s, "Harrison's 22E\nTintinalli's EM");

  // Left: Viper panel
  addCard(s, 0.25, 1.3, 5.9, 5.7, "FFF5E6", C.orange);
  s.addShape(pres.ShapeType.rect, { x: 0.25, y: 1.3, w: 5.9, h: 0.55, fill: { color: C.orange } });
  s.addText("🐍 VIPERIDAE (Pit Vipers)", { x: 0.35, y: 1.3, w: 5.7, h: 0.55, fontSize: 14, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  const viperRows = [
    ["Head Shape", "Triangular/arrow-shaped"],
    ["Pupils", "Vertical (elliptical)"],
    ["Fangs", "Long, hollow, foldable"],
    ["Pit organ", "Between eye & nostril (heat sensor)"],
    ["Neck", "Distinct (narrow)"],
    ["Examples", "Rattlesnake, Cobra, Russell's viper, Saw-scaled viper"],
    ["Venom type", "Hemotoxic + Cytotoxic (+ neurotoxic in some)"],
    ["Local effects", "Prominent: swelling, necrosis, pain"],
  ];
  viperRows.forEach(([k, v], i) => {
    const ry = 2.0 + i * 0.54;
    if (i % 2 === 0) s.addShape(pres.ShapeType.rect, { x: 0.3, y: ry, w: 5.8, h: 0.52, fill: { color: "FFF0DC" } });
    s.addText(k + ":", { x: 0.4, y: ry + 0.04, w: 1.5, h: 0.44, fontSize: 9.5, bold: true, color: C.orange, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(v, { x: 1.9, y: ry + 0.04, w: 4.1, h: 0.44, fontSize: 9.5, color: C.darkText, valign: "middle", fontFace: "Calibri", margin: 0 });
  });

  // Right: Elapid panel
  addCard(s, 6.5, 1.3, 6.5, 5.7, "E8F8F5", C.green);
  s.addShape(pres.ShapeType.rect, { x: 6.5, y: 1.3, w: 6.5, h: 0.55, fill: { color: C.green } });
  s.addText("🐍 ELAPIDAE (Cobras, Kraits, Corals)", { x: 6.6, y: 1.3, w: 6.3, h: 0.55, fontSize: 14, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });

  const elapidRows = [
    ["Head Shape", "Oval/round (non-distinct)"],
    ["Pupils", "Round"],
    ["Fangs", "Short, fixed, erect (front)"],
    ["Pit organ", "Absent"],
    ["Neck", "Non-distinct"],
    ["Examples", "Cobra (Naja), Krait (Bungarus), Mamba, Coral snake"],
    ["Venom type", "Predominantly Neurotoxic"],
    ["Local effects", "Minimal or absent (deceptive!)"],
  ];
  elapidRows.forEach(([k, v], i) => {
    const ry = 2.0 + i * 0.54;
    if (i % 2 === 0) s.addShape(pres.ShapeType.rect, { x: 6.55, y: ry, w: 6.4, h: 0.52, fill: { color: "D5F5EE" } });
    s.addText(k + ":", { x: 6.65, y: ry + 0.04, w: 1.6, h: 0.44, fontSize: 9.5, bold: true, color: C.green, valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(v, { x: 8.25, y: ry + 0.04, w: 4.6, h: 0.44, fontSize: 9.5, color: C.darkText, valign: "middle", fontFace: "Calibri", margin: 0 });
  });

  // Mnemonic box at bottom
  addCard(s, 0.25, 6.92, 12.8, 0.45, "1A1A2E", C.accent2);
  s.addText([
    { text: "🔤 MNEMONIC — Coral Snake Rule: ", options: { bold: true, color: C.accent2 } },
    { text: '"Red on Yellow, Kill a Fellow; Red on Black, Venom Lack"', options: { color: C.white, italic: true } },
    { text: " (USA only — NOT valid internationally)", options: { color: C.midGray } },
  ], { x: 0.35, y: 6.93, w: 12.6, h: 0.44, fontSize: 10, valign: "middle", fontFace: "Calibri", margin: 0 });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — FIELD MANAGEMENT FLOWCHART (DO's and DON'Ts + Mnemonic)
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: "F8F0FF" } });
  addHeader(s, "FLASHCARD 2 — FIELD / PREHOSPITAL MANAGEMENT", "First aid that saves lives — and first aid that kills", C.darkBg, C.accent4);
  addSource(s, "Harrison's 22E\nTintinalli's EM");

  // MNEMONIC box
  addCard(s, 0.25, 1.25, 5.6, 2.7, C.darkBg, C.accent4);
  s.addText("🔤 MNEMONIC: \"SICK + RICE\"", { x: 0.4, y: 1.3, w: 5.3, h: 0.45, fontSize: 13, bold: true, color: C.accent4, fontFace: "Calibri", margin: 0 });
  const mnemonicRows = [
    ["S", "Stay calm, don't run"],
    ["I", "Immobilize the limb"],
    ["C", "Clean wound (soap + water)"],
    ["K", "Keep extremity below heart level"],
    ["+", ""],
    ["R", "Remove jewelry & tight clothing"],
    ["I", "IV access (other limb)"],
    ["C", "Call / Contact poison center"],
    ["E", "Emergency transport ASAP"],
  ];
  mnemonicRows.forEach(([letter, desc], i) => {
    if (letter === "+") return;
    const adjusted_i = i > 4 ? i - 1 : i;
    const ry = 1.82 + adjusted_i * 0.27;
    const col = letter === "+" ? C.midGray : (["S","I","C","K"].includes(letter) ? C.accent4 : C.accent3);
    s.addText(letter, { x: 0.4, y: ry, w: 0.3, h: 0.27, fontSize: 12, bold: true, color: col, fontFace: "Calibri", margin: 0, valign: "middle" });
    s.addText("— " + desc, { x: 0.72, y: ry, w: 4.9, h: 0.27, fontSize: 9.5, color: C.lightGray, fontFace: "Calibri", margin: 0, valign: "middle" });
  });

  // DO's column
  addCard(s, 6.1, 1.25, 3.3, 5.8, "E8F8F0", C.green);
  s.addShape(pres.ShapeType.rect, { x: 6.1, y: 1.25, w: 3.3, h: 0.5, fill: { color: C.green } });
  s.addText("✅  DO", { x: 6.2, y: 1.25, w: 3.2, h: 0.5, fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
  const dos = [
    "Move victim away from snake safely",
    "Immobilize bitten limb (splint)",
    "Remove rings, watches, tight clothing",
    "Clean wound: soap + running water",
    "Maintain limb below heart level",
    "Pressure immobilization bandage for ELAPID bites",
    "Establish IV access (unaffected limb)",
    "Administer O₂ if needed",
    "Transport rapidly to hospital",
    "Note time of bite, snake description",
  ];
  dos.forEach((d, i) => {
    s.addText("• " + d, { x: 6.2, y: 1.85 + i * 0.48, w: 3.1, h: 0.46, fontSize: 9, color: C.darkText, fontFace: "Calibri", margin: 0 });
  });

  // DON'Ts column
  addCard(s, 9.75, 1.25, 3.3, 5.8, "FFF0F0", C.red);
  s.addShape(pres.ShapeType.rect, { x: 9.75, y: 1.25, w: 3.3, h: 0.5, fill: { color: C.red } });
  s.addText("❌  DON'T", { x: 9.85, y: 1.25, w: 3.2, h: 0.5, fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
  const donts = [
    "Incision & suction of bite site",
    "Apply tourniquet (→ ischemia)",
    "Electric shock treatment",
    "Ice / cold water immersion",
    "Give alcohol",
    "Try to catch or kill the snake",
    "Apply pressure bandage for VIPER bites",
    "Delay transport for 'folk remedies'",
    "Give aspirin / NSAIDs (↑ bleeding)",
    "Cauterize the wound",
  ];
  donts.forEach((d, i) => {
    s.addText("• " + d, { x: 9.85, y: 1.85 + i * 0.48, w: 3.1, h: 0.46, fontSize: 9, color: C.darkText, fontFace: "Calibri", margin: 0 });
  });

  // Bottom note
  s.addShape(pres.ShapeType.rect, { x: 0.25, y: 7.1, w: 12.8, h: 0.28, fill: { color: C.accent1 + "30" } });
  s.addText("⚠  Pressure immobilization bandage: use ONLY for Elapid (neurotoxic) bites. Contraindicated in Viper bites — may worsen local tissue damage.", {
    x: 0.35, y: 7.1, w: 12.6, h: 0.28, fontSize: 9, color: C.red, fontFace: "Calibri", valign: "middle", margin: 0
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — ENVENOMATION SEVERITY GRADING FLOWCHART
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.lightBg } });
  addHeader(s, "FLASHCARD 3 — ENVENOMATION SEVERITY GRADING", "Pit Viper (Crotaline) grading system", C.darkBg, C.accent3);
  addSource(s, "Tintinalli's EM\nHarrison's 22E");

  // Grade boxes
  const grades = [
    { grade: "DRY BITE\n(Grade 0)", color: "27AE60", textCol: C.white, local: "Fang marks only\nNo pain/swelling", systemic: "None", labs: "Normal", antivenom: "None required", note: "Observe 8-12 h" },
    { grade: "MILD\n(Grade I)", color: "F39C12", textCol: C.white, local: "Local pain\nSwelling <30 cm", systemic: "None / minimal\n(nausea)", labs: "Normal or\nmild changes", antivenom: "4 vials FabAV\n(Crotalinae)", note: "Admit, monitor" },
    { grade: "MODERATE\n(Grade II)", color: "E67E22", textCol: C.white, local: "Pain, swelling\n>30 cm", systemic: "Systemic: N/V\ndizziness, mild BP ↓", labs: "Mild coagulopathy\nPlt ↓, PT ↑", antivenom: "4-6 vials FabAV\n(or 10 vials Anavip)", note: "ICU if worsening" },
    { grade: "SEVERE\n(Grade III)", color: "E74C3C", textCol: C.white, local: "Extensive swelling\nNecrosis, bullae", systemic: "Shock, bleeding\nRespiratory failure", labs: "DIC, hemolysis\nRenal failure", antivenom: "≥6 vials FabAV\n(or 10 vials Anavip)", note: "ICU mandatory" },
  ];

  grades.forEach((g, i) => {
    const bx = 0.2 + i * 3.28;
    // Grade header
    s.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.25, w: 3.1, h: 5.9, fill: { color: g.color + "18" }, line: { color: g.color, width: 2 }, rectRadius: 0.15 });
    s.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.25, w: 3.1, h: 0.8, fill: { color: g.color }, line: { color: g.color, width: 2 }, rectRadius: 0.15 });
    s.addText(g.grade, { x: bx + 0.05, y: 1.25, w: 3.0, h: 0.8, fontSize: 13, bold: true, color: g.textCol, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

    const rows = [
      ["LOCAL", g.local],
      ["SYSTEMIC", g.systemic],
      ["LABS", g.labs],
      ["ANTIVENOM", g.antivenom],
      ["DISPOSITION", g.note],
    ];
    rows.forEach(([label, val], ri) => {
      const ry = 2.2 + ri * 0.95;
      s.addText(label, { x: bx + 0.1, y: ry, w: 2.9, h: 0.28, fontSize: 8.5, bold: true, color: g.color, fontFace: "Calibri", margin: 0 });
      s.addText(val, { x: bx + 0.1, y: ry + 0.28, w: 2.9, h: 0.6, fontSize: 9, color: C.darkText, fontFace: "Calibri", margin: 0 });
    });
  });

  // Note bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.1, w: 13.3, h: 0.4, fill: { color: C.darkBg } });
  s.addText("Grades progress: continuously reassess every 15 min (mark swelling edge on skin, measure circumference at 3 points) — upgrading grade = escalate antivenom.", {
    x: 0.3, y: 7.1, w: 12.7, h: 0.4, fontSize: 9.5, color: C.accent2, fontFace: "Calibri", valign: "middle", margin: 0
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 5 — HOSPITAL MANAGEMENT FLOWCHART
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: "EEF4FF" } });
  addHeader(s, "FLASHCARD 4 — HOSPITAL MANAGEMENT FLOWCHART", "Step-by-step ED algorithm — Harrison's 22E / Tintinalli's EM", C.darkBg, C.accent1);
  addSource(s, "Harrison's 22E\nTintinalli's EM");

  // Flowchart central column
  const steps = [
    { label: "SNAKEBITE VICTIM ARRIVES", color: C.accent1, w: 3.5 },
    { label: "ABC — Airway, Breathing, Circulation\n(intubate early if face/neck bite)", color: "C0392B", w: 3.5 },
    { label: "IV ACCESS × 2 (unaffected limbs)\nMonitor: vitals, ECG, SpO₂, urine output", color: C.cardBg, w: 3.5 },
    { label: "HISTORY + PHYSICAL\nTime of bite • Snake ID • Symptoms\nMark swelling edge on skin", color: "1A5276", w: 3.5 },
    { label: "LABS: CBC, PT/APTT, Fibrinogen, D-dimer\nLFT, RFT, CK, UA, Blood type & cross\n20-min WBCT (if no lab access)", color: "154360", w: 3.5 },
    { label: "GRADE ENVENOMATION\n(Grade 0→III)", color: "4A235A", w: 3.5 },
    { label: "ANTIVENOM if Grade ≥ I\n(see Slide 5 for dosing)", color: C.boxGreen, w: 3.5 },
    { label: "ADMIT: Ward (mild/mod) or ICU (severe)\nObserve ≥6-8 h even if 'dry bite'", color: "1E8449", w: 3.5 },
  ];

  const fcX = 0.25;
  const fcW = 4.2;
  steps.forEach((step, i) => {
    const fy = 1.3 + i * 0.73;
    addFlowBox(s, step.label, fcX, fy, fcW, 0.65, step.color, C.white, 9);
    if (i < steps.length - 1) {
      addArrow(s, fcX + fcW / 2, fy + 0.65, fcX + fcW / 2, fy + 0.73);
    }
  });

  // Right side: Parallel actions panel
  addCard(s, 4.8, 1.25, 4.1, 6.2, "FAFBFF", C.accent4);
  s.addShape(pres.ShapeType.rect, { x: 4.8, y: 1.25, w: 4.1, h: 0.48, fill: { color: C.accent4 } });
  s.addText("PARALLEL ACTIONS", { x: 4.9, y: 1.25, w: 4.0, h: 0.48, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  const parallel = [
    ["Pain control", "Paracetamol / opioids\nAvoid aspirin, NSAIDs (↑ bleeding)"],
    ["Wound care", "Clean, sterile dressing\nDo NOT explore/debride acutely"],
    ["Tetanus", "Update immunization as needed"],
    ["Antibiotics", "Not routinely indicated\nOnly if infection signs present"],
    ["Compartment\nSyndrome?", "Monitor ICP\nFasciotomy rarely needed —\ngive antivenom FIRST"],
    ["Coagulopathy", "Blood products AFTER antivenom\n(antivenom reverses root cause)"],
    ["Serum sickness\n(5-10 days post)", "Prednisone 1 mg/kg/day\n→ taper over 1-2 weeks"],
  ];

  parallel.forEach(([k, v], i) => {
    const ry = 1.85 + i * 0.8;
    if (i % 2 === 0) s.addShape(pres.ShapeType.rect, { x: 4.85, y: ry, w: 4.0, h: 0.78, fill: { color: "EDF2FF" } });
    s.addText(k, { x: 4.9, y: ry + 0.04, w: 1.3, h: 0.7, fontSize: 9, bold: true, color: C.accent4, fontFace: "Calibri", margin: 0 });
    s.addText(v, { x: 6.2, y: ry + 0.04, w: 2.6, h: 0.7, fontSize: 8.5, color: C.darkText, fontFace: "Calibri", margin: 0 });
  });

  // Right side 2: Key lab watch
  addCard(s, 9.2, 1.25, 3.85, 6.2, "FFF8E8", C.accent2);
  s.addShape(pres.ShapeType.rect, { x: 9.2, y: 1.25, w: 3.85, h: 0.48, fill: { color: C.accent2 } });
  s.addText("⚡ KEY DANGER SIGNS", { x: 9.3, y: 1.25, w: 3.7, h: 0.48, fontSize: 13, bold: true, color: C.darkBg, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  const dangers = [
    "Rapidly spreading swelling",
    "Ptosis / diplopia (cranial nerve involvement)",
    "Difficulty swallowing / drooling",
    "Respiratory distress",
    "Hypotension / shock",
    "Spontaneous bleeding (gums, IV site)",
    "Dark urine (myoglobinuria/hemoglobinuria)",
    "Oliguria / anuria",
    "Altered sensorium",
    "Incoagulable blood (20-min WBCT)",
    "SpO₂ drop",
  ];
  dangers.forEach((d, i) => {
    s.addShape(pres.ShapeType.rect, { x: 9.25, y: 1.83 + i * 0.5, w: 3.7, h: 0.44, fill: { color: i % 2 === 0 ? "FFF0CC" : "FFFDF0" } });
    s.addText("⚠ " + d, { x: 9.3, y: 1.83 + i * 0.5, w: 3.65, h: 0.44, fontSize: 9, color: "7B3F00", fontFace: "Calibri", margin: 0, valign: "middle" });
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 6 — ANTIVENOM: INDICATIONS, DOSING, REACTIONS
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: "F0FFF8" } });
  addHeader(s, "FLASHCARD 5 — ANTIVENOM: INDICATIONS & DOSING", "The cornerstone of snakebite treatment", C.boxGreen, C.accent3);
  addSource(s, "Harrison's 22E\nTintinalli's EM");

  // Indications box
  addCard(s, 0.2, 1.3, 4.1, 5.8, "E8F8EE", C.green);
  s.addShape(pres.ShapeType.rect, { x: 0.2, y: 1.3, w: 4.1, h: 0.5, fill: { color: C.green } });
  s.addText("INDICATIONS FOR ANTIVENOM", { x: 0.3, y: 1.3, w: 4.0, h: 0.5, fontSize: 12, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  const indications = [
    ["Any evidence of systemic envenomation:", "hypotension, coagulopathy,\nneurotoxicity, rhabdomyolysis"],
    ["Rapid progressive local swelling:", "crossing a joint within 1 h, or > one limb segment"],
    ["Bite on face, neck, or trunk:", "even without systemic signs"],
    ["20-min WBCT incoagulable:", "(surrogate for severe coagulopathy)"],
    ["Grade I–III envenomation:", "(see grading slide)"],
  ];
  let iy = 1.9;
  indications.forEach(([k, v]) => {
    s.addText("• " + k, { x: 0.3, y: iy, w: 3.9, h: 0.28, fontSize: 9.5, bold: true, color: C.darkText, fontFace: "Calibri", margin: 0 });
    s.addText("  " + v, { x: 0.3, y: iy + 0.27, w: 3.9, h: 0.38, fontSize: 9, color: "2C5F2E", fontFace: "Calibri", margin: 0 });
    iy += 0.72;
  });

  s.addShape(pres.ShapeType.rect, { x: 0.25, y: 5.6, w: 4.0, h: 0.06, fill: { color: C.red } });
  s.addText("⚠ No absolute contraindication!\n(Even allergy is a relative CI — premedicate + give)", {
    x: 0.25, y: 5.7, w: 4.0, h: 0.5, fontSize: 9, color: C.red, bold: true, fontFace: "Calibri", margin: 0
  });

  // Dosing table
  addCard(s, 4.55, 1.3, 5.0, 5.8, "FAFEFF", C.accent3);
  s.addShape(pres.ShapeType.rect, { x: 4.55, y: 1.3, w: 5.0, h: 0.5, fill: { color: C.accent3 } });
  s.addText("DOSING GUIDE (Crotalinae — USA)", { x: 4.65, y: 1.3, w: 4.9, h: 0.5, fontSize: 12, bold: true, color: C.darkBg, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  const dosing = [
    ["Product", "FabAV\n(Crofab®)", "F(ab')₂\n(Anavip®)"],
    ["Mild", "4 vials", "10 vials"],
    ["Moderate", "4–6 vials", "10 vials"],
    ["Severe", "≥6 vials", "10 vials"],
    ["Maintenance", "2 vials q6h × 3", "4 vials for\nrecurrent coagulopathy"],
    ["Diluent", "250 mL NS", "250 mL NS"],
    ["Infusion", "IV over 1 h\nStart 25-50 mL/h × 10 min\nThen 250 mL/h", "IV over 1 h"],
    ["Repeat", "If progressing,\nrepeat initial dose", "Same"],
  ];

  dosing.forEach(([col1, col2, col3], i) => {
    const dy = 1.92 + i * 0.62;
    const bg = i === 0 ? C.accent3 + "40" : (i % 2 === 0 ? "E8FFFC" : "FAFFFE");
    s.addShape(pres.ShapeType.rect, { x: 4.6, y: dy, w: 4.9, h: 0.6, fill: { color: bg } });
    [col1, col2, col3].forEach((txt, ci) => {
      const cx = 4.65 + ci * 1.62;
      s.addText(txt, {
        x: cx, y: dy + 0.03, w: 1.55, h: 0.55,
        fontSize: i === 0 ? 9.5 : 9, bold: i === 0, color: C.darkText, fontFace: "Calibri",
        align: "center", valign: "middle", margin: 0
      });
    });
  });

  // Reaction management
  addCard(s, 9.8, 1.3, 3.25, 5.8, "FFF5F5", C.red);
  s.addShape(pres.ShapeType.rect, { x: 9.8, y: 1.3, w: 3.25, h: 0.5, fill: { color: C.red } });
  s.addText("ANAPHYLAXIS TO\nANTIVENOM", { x: 9.9, y: 1.3, w: 3.1, h: 0.5, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  const rxnSteps = [
    "1. STOP infusion immediately",
    "2. Epinephrine IM (or IV if severe\n   hypotension)",
    "3. Antihistamines IV",
    "4. Glucocorticoids IV",
    "5. When reaction controlled → RESTART\n   antivenom at 5-10 mL/h; titrate up",
    "6. Continue until patient stabilizes",
    "",
    "SERUM SICKNESS (5-10 days):",
    "Fever • Rash • Arthralgias",
    "→ Prednisone 1 mg/kg/day × 1-2 wk",
  ];
  rxnSteps.forEach((step, i) => {
    s.addText(step, {
      x: 9.9, y: 1.9 + i * 0.46, w: 3.1, h: 0.44,
      fontSize: 9, color: step.startsWith("SERUM") ? C.red : C.darkText,
      bold: step.startsWith("SERUM"),
      fontFace: "Calibri", margin: 0
    });
  });

  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.05, w: 13.3, h: 0.45, fill: { color: C.darkBg } });
  s.addText("🔑 Key principle: Antivenom dose is based on SEVERITY OF ENVENOMATION, NOT patient weight. Children get the same dose as adults.", {
    x: 0.3, y: 7.05, w: 12.7, h: 0.45, fontSize: 10, color: C.accent2, fontFace: "Calibri", valign: "middle", margin: 0
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 7 — VENOM EFFECTS & MECHANISM DIAGRAM
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: "FFF8EE" } });
  addHeader(s, "FLASHCARD 6 — VENOM EFFECTS & PATHOPHYSIOLOGY", "Diagrammatic overview of toxin mechanisms", C.darkBg, C.accent2);
  addSource(s, "Harrison's 22E\nSabiston Surgery");

  // Central venom node
  s.addShape(pres.ShapeType.ellipse, { x: 5.3, y: 2.8, w: 2.7, h: 1.1, fill: { color: C.accent1 }, line: { color: C.red, width: 2 } });
  s.addText("SNAKE\nVENOM", { x: 5.3, y: 2.8, w: 2.7, h: 1.1, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });

  // Effects radiating out - manual lines + boxes
  // LEFT branches (Viper-dominant effects)
  const lEffects = [
    { label: "CYTOTOXINS\nPhospholipases A₂\nHyaluronidase", y: 1.4, color: "922B21" },
    { label: "HEMOTOXINS\nThrombin-like enzymes\nFibrinolysins → DIC", y: 2.5, color: "78281F" },
    { label: "MYOTOXINS\nCK↑, Rhabdomyolysis\nMyoglobinuria", y: 3.6, color: "A04000" },
    { label: "CARDIOTOXINS\nHypotension\nDysrhythmia", y: 4.7, color: "6E2F2F" },
  ];
  lEffects.forEach(ef => {
    addCard(s, 0.2, ef.y, 3.0, 0.85, ef.color + "22", ef.color);
    s.addText(ef.label, { x: 0.3, y: ef.y + 0.04, w: 2.8, h: 0.78, fontSize: 9, color: C.darkText, fontFace: "Calibri", margin: 0, valign: "middle" });
    // arrow to center
    s.addShape(pres.ShapeType.line, { x: 3.2, y: ef.y + 0.42, w: 2.1, h: 3.35 - ef.y - 0.42 + (ef.y < 3.35 ? 0 : 0), line: { color: ef.color, width: 1, endArrowType: "triangle" } });
  });
  // Actually let me fix the arrows to just go toward center
  // Clear complex math - do simple approach
  lEffects.forEach(ef => {
    const fromX = 3.22; const fromY = ef.y + 0.42;
    const toX = 5.28; const toY = 3.35;
    s.addShape(pres.ShapeType.line, { x: fromX, y: fromY, w: toX - fromX, h: toY - fromY, line: { color: ef.color, width: 1.2, endArrowType: "triangle" } });
  });

  // RIGHT branches (Elapid-dominant effects)
  const rEffects = [
    { label: "NEUROTOXINS\nPostsynaptic (α): Cobra\nPresynaptic (β): Krait/Mamba", y: 1.4, color: "1A5276" },
    { label: "CHOLINESTERASE\nINHIBITION\nPtosis, diplopia, dysphagia", y: 2.5, color: "154360" },
    { label: "COAGULOTOXINS\nSaw-scaled viper\nVascular damage", y: 3.6, color: "0E6655" },
    { label: "NEPHROTOXINS\nRussell's viper\nDirect tubular damage, AKI", y: 4.7, color: "145A32" },
  ];
  rEffects.forEach(ef => {
    addCard(s, 10.1, ef.y, 3.0, 0.85, ef.color + "22", ef.color);
    s.addText(ef.label, { x: 10.2, y: ef.y + 0.04, w: 2.8, h: 0.78, fontSize: 9, color: C.darkText, fontFace: "Calibri", margin: 0, valign: "middle" });
    const fromX = 8.02; const fromY = 3.35;
    const toX = 10.08; const toY = ef.y + 0.42;
    s.addShape(pres.ShapeType.line, { x: fromX, y: fromY, w: toX - fromX, h: toY - fromY, line: { color: ef.color, width: 1.2, endArrowType: "triangle" } });
  });

  // Labels
  s.addText("VIPER-DOMINANT", { x: 0.2, y: 5.7, w: 3.0, h: 0.35, fontSize: 10, bold: true, color: C.red, align: "center", fontFace: "Calibri", margin: 0 });
  s.addText("ELAPID-DOMINANT", { x: 10.1, y: 5.7, w: 3.0, h: 0.35, fontSize: 10, bold: true, color: "1A5276", align: "center", fontFace: "Calibri", margin: 0 });
  s.addText("(Both can overlap)", { x: 4.5, y: 5.7, w: 4.3, h: 0.3, fontSize: 10, color: C.midGray, align: "center", fontFace: "Calibri", margin: 0 });

  // Bottom: AVIPS mnemonic
  addCard(s, 0.2, 6.15, 12.9, 1.1, C.darkBg, C.accent2);
  s.addText("🔤 MNEMONIC — 'AVIPS' = Venom Effects to Remember:", {
    x: 0.4, y: 6.18, w: 5.5, h: 0.4, fontSize: 11, bold: true, color: C.accent2, fontFace: "Calibri", margin: 0
  });
  const avips = [
    ["A", "Autopharmacological (histamine, bradykinin release)"],
    ["V", "Vascular damage (capillary leak → edema)"],
    ["I", "Immuno-complex formation"],
    ["P", "Paralysis (neurotoxins → NMJ block)"],
    ["S", "Sanguinolytic (coagulopathy, DIC)"],
  ];
  avips.forEach(([letter, desc], i) => {
    const ax = 0.4 + i * 2.5;
    s.addText(letter + " - " + desc, { x: ax, y: 6.62, w: 2.45, h: 0.55, fontSize: 8.5, color: C.lightGray, fontFace: "Calibri", margin: 0 });
  });
}

// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 8 — MASTER MNEMONIC + DISPOSITION CARD
// ═══════════════════════════════════════════════════════════════════════════════
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.darkBg } });
  addHeader(s, "FLASHCARD 7 — MASTER MNEMONICS & DISPOSITION", "Summary for rapid recall in the ED", C.midBg, C.accent3);
  addSource(s, "Harrison's 22E\nTintinalli's EM");

  // Left: Big mnemonic SNAKE
  addCard(s, 0.2, 1.3, 5.5, 5.5, "1A2744", C.accent3);
  s.addText("🔤 MNEMONIC: \"SNAKE\" — Management Steps", {
    x: 0.35, y: 1.35, w: 5.2, h: 0.45, fontSize: 12, bold: true, color: C.accent3, fontFace: "Calibri", margin: 0
  });

  const snakeMnemonic = [
    { L: "S", title: "Stabilize ABCs", body: "Airway, Breathing, Circulation first\nEarly intubation if face/neck bite" },
    { L: "N", title: "Neutralize venom", body: "Antivenom is the ONLY definitive Rx\nDose based on envenomation severity\nGive BEFORE blood products" },
    { L: "A", title: "Assess & monitor", body: "Mark swelling edge on skin Q15 min\nMeasure limb circumference × 3 points\nLabs: CBC, coag, RFT, LFT, CK, UA" },
    { L: "K", title: "Keep watching", body: "Observe minimum 6-8 h\n(Dry bite) or 24-48 h (envenomation)\nWatch for recurrent coagulopathy" },
    { L: "E", title: "Extras: wound + serum sickness", body: "Tetanus immunization\nWound care (no early debridement)\nPrevent/treat serum sickness" },
  ];

  snakeMnemonic.forEach((item, i) => {
    const ry = 1.9 + i * 0.95;
    s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: ry, w: 0.55, h: 0.85, fill: { color: C.accent3 }, rectRadius: 0.08 });
    s.addText(item.L, { x: 0.3, y: ry, w: 0.55, h: 0.85, fontSize: 22, bold: true, color: C.darkBg, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(item.title, { x: 0.95, y: ry + 0.04, w: 4.65, h: 0.32, fontSize: 10.5, bold: true, color: C.accent3, fontFace: "Calibri", margin: 0 });
    s.addText(item.body, { x: 0.95, y: ry + 0.35, w: 4.65, h: 0.52, fontSize: 8.5, color: C.lightGray, fontFace: "Calibri", margin: 0 });
  });

  // Middle: Disposition algorithm
  addCard(s, 6.0, 1.3, 3.5, 5.5, "1C2B4A", C.accent4);
  s.addText("DISPOSITION ALGORITHM", { x: 6.1, y: 1.35, w: 3.3, h: 0.45, fontSize: 12, bold: true, color: C.accent4, fontFace: "Calibri", margin: 0 });

  const dispBoxes = [
    { label: "DRY BITE (Grade 0)\nNo envenomation signs\nNormal labs", action: "Observe 8-12 h\n→ DISCHARGE with\n   return precautions", color: C.green },
    { label: "MILD (Grade I)\nLocal effects only\nStable labs", action: "Admit to general ward\nAntivenom + monitoring\nPhysical therapy", color: C.yellow },
    { label: "MODERATE (Grade II)\nSystemic ± coagulopathy", action: "Admit to ward/HDU\nAntivenom ± repeat\nSerial labs Q6h", color: C.orange },
    { label: "SEVERE (Grade III)\nShock, DIC, resp failure", action: "ICU ADMISSION\nICU monitoring\nMay need vasopressors", color: C.red },
  ];

  dispBoxes.forEach((box, i) => {
    const dy = 1.92 + i * 1.2;
    addCard(s, 6.1, dy, 1.5, 1.1, box.color + "33", box.color);
    s.addText(box.label, { x: 6.15, y: dy + 0.04, w: 1.4, h: 1.02, fontSize: 7.5, color: C.lightGray, fontFace: "Calibri", margin: 0 });
    addCard(s, 7.7, dy, 1.7, 1.1, box.color + "22", box.color);
    s.addText("→ " + box.action, { x: 7.75, y: dy + 0.04, w: 1.6, h: 1.02, fontSize: 8, color: C.lightGray, fontFace: "Calibri", margin: 0 });
  });

  // Right: Quick recall facts
  addCard(s, 9.75, 1.3, 3.35, 5.5, "1C2B4A", C.accent2);
  s.addText("⚡ RAPID RECALL FACTS", { x: 9.85, y: 1.35, w: 3.15, h: 0.45, fontSize: 12, bold: true, color: C.accent2, fontFace: "Calibri", margin: 0 });

  const facts = [
    ["Antivenom dose", "Same in children & adults\n(based on envenomation severity)"],
    ["Start infusion", "25-50 mL/h × 10 min, then 250 mL/h"],
    ["Blood products", "Give AFTER antivenom, not before"],
    ["Prophylactic Abx", "NOT routinely needed"],
    ["Steroids", "NOT for envenomation itself\n(only for allergic reactions)"],
    ["Ice / tourniquet", "NEVER — worsen outcome"],
    ["Incision/suction", "NEVER — proven ineffective"],
    ["Pressure bandage", "Elapid bites ONLY"],
    ["Serum sickness", "5-10 days: fever, rash, arthralgia\nPrednisone 1 mg/kg × 2 weeks"],
    ["Recurrent coagulopathy", "Can occur 2-3 wk after Fx(ab') AVIP\nRepeat testing at discharge"],
  ];

  facts.forEach(([k, v], i) => {
    const fy = 1.92 + i * 0.48;
    const bg = i % 2 === 0 ? "1E3A5F" : "1C2B4A";
    s.addShape(pres.ShapeType.rect, { x: 9.8, y: fy, w: 3.25, h: 0.46, fill: { color: bg } });
    s.addText(k + ":", { x: 9.85, y: fy + 0.02, w: 1.1, h: 0.42, fontSize: 8, bold: true, color: C.accent2, fontFace: "Calibri", margin: 0, valign: "middle" });
    s.addText(v, { x: 10.95, y: fy + 0.02, w: 2.05, h: 0.42, fontSize: 7.5, color: C.lightGray, fontFace: "Calibri", margin: 0, valign: "middle" });
  });

  // Footer
  s.addShape(pres.ShapeType.rect, { x: 0, y: 7.05, w: 13.3, h: 0.45, fill: { color: C.accent1 } });
  s.addText("SOURCE: Harrison's Principles of Internal Medicine 22E (2025) • Tintinalli's Emergency Medicine (9E) • Sabiston Textbook of Surgery — Orris Medical AI, June 2026", {
    x: 0.3, y: 7.05, w: 12.7, h: 0.45, fontSize: 9, color: C.white, fontFace: "Calibri", align: "center", valign: "middle", margin: 0
  });
}

// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/snakebite/Snakebite_Management_Flashcards.pptx" })
  .then(() => console.log("✅ Saved: /home/daytona/workspace/snakebite/Snakebite_Management_Flashcards.pptx"))
  .catch(err => { console.error("❌ Error:", err); process.exit(1); });
Running Command

mkdir -p /home/daytona/workspace/snakebite && node /home/daytona/workspace/snakebite/create_flashcards.js 2>&1

Running Command

ls -lh /home/daytona/workspace/snakebite/Snakebite_Management_Flashcards.pptx

Your Snakebite Management Flashcard PPTX is ready for download:

Snakebite Management Flashcards

Presentation · PPTX


What's Inside (7 Flashcard Slides)

SlideFlashcardContents
1Title CardDeck overview, source list, topic chips
2Snake IdentificationViper vs Elapid comparison table (head shape, pupils, fangs, venom type, local effects) + Coral Snake Rhyme mnemonic
3Field / Prehospital ManagementDO's vs DON'Ts side-by-side columns + "SICK+RICE" mnemonic
4Envenomation Severity GradingGrade 0-III cards: local effects, systemic effects, labs, antivenom dose, disposition
5Hospital Management FlowchartStep-by-step ED algorithm (ABC → IV access → labs → grade → antivenom → admit) with parallel actions panel and danger signs
6Antivenom: Indications & DosingIndications, FabAV vs F(ab')₂ dosing table, anaphylaxis management steps
7Venom Effects DiagramRadial diagram - VENOM at center, hemotoxic/cytotoxic/neurotoxic/nephrotoxic branches; "AVIPS" mnemonic
8Master Mnemonics + Disposition"SNAKE" management mnemonic (S-N-A-K-E) + disposition algorithm by grade + rapid recall facts

Mnemonics at a Glance

  • "SICK + RICE" - Field first aid steps
  • "SNAKE" - Hospital management (Stabilize ABCs / Neutralize venom / Assess & monitor / Keep watching / Extras)
  • "AVIPS" - Venom effects (Autopharmacological / Vascular / Immune-complex / Paralysis / Sanguinolytic)
  • "Red on Yellow, Kill a Fellow" - US coral snake identification

Sources: Harrison's Principles of Internal Medicine 22E (2025), Tintinalli's Emergency Medicine 9E, Sabiston Textbook of Surgery

Give me the visual flashcards mx

Generating Image

Medical flashcard titled "FLASHCARD 1 — SNAKE IDENTIFICATION" on dark navy background. Two-column comparison card. LEFT column orange header "VIPERIDAE (Pit Vipers)" with rows: Head=Triangular, Pupils=Vertical/elliptical, Fangs=Long foldable hollow, Pit organ=Between eye & nostril, Examples=Russell's viper, Rattlesnake, Saw-scaled, Venom=Hemotoxic+Cytotoxic, Local effects=Prominent swelling/necrosis. RIGHT column green header "ELAPIDAE (Cobra, Krait)" with rows: Head=Round/oval, Pupils=Round, Fangs=Short fixed erect, Pit organ=Absent, Examples=Cobra Naja, Krait Bungarus, Mamba, Venom=Neurotoxic, Local effects=Minimal (deceptive!). Bottom amber banner mnemonic "Red on Yellow Kill a Fellow; Red on Black Venom Lack — USA Coral Snake Rule". Include small snake silhouette illustrations. Professional medical education style.

Generating Image

Medical flashcard titled "FLASHCARD 2 — FIELD MANAGEMENT" on light purple background. Three panels. LEFT dark panel with large mnemonic heading "SICK + RICE" with letter breakdown: S=Stay calm don't run, I=Immobilize the limb, C=Clean wound soap+water, K=Keep limb below heart, R=Remove jewelry/tight clothing, I=IV access other limb, C=Call poison center, E=Emergency transport. MIDDLE green column "DO ✅": Move away from snake, Immobilize with splint, Clean wound, Pressure bandage for Elapid only, Transport ASAP. RIGHT red column "DON'T ❌": No incision/suction, No tourniquet, No ice, No electric shock, No alcohol, No aspirin/NSAIDs, No cauterization. Red warning bar at bottom: Pressure immobilization bandage ONLY for Elapid bites, contraindicated in Viper bites. Clean clinical medical style.

Generating Image

Medical flashcard titled "FLASHCARD 3 — ENVENOMATION SEVERITY GRADING" on light blue background. Four vertical severity grade columns side by side: Column 1 GREEN header "DRY BITE Grade 0" — Fang marks only, no swelling, normal labs, No antivenom, Observe 8-12h then discharge. Column 2 YELLOW/AMBER header "MILD Grade I" — Local pain, swelling less than 30cm, minimal systemic, normal labs, 4 vials FabAV, Admit ward. Column 3 ORANGE header "MODERATE Grade II" — Swelling >30cm, systemic nausea/dizziness, mild coagulopathy, 4-6 vials FabAV, Admit HDU. Column 4 RED header "SEVERE Grade III" — Extensive swelling+necrosis, shock+bleeding+respiratory failure, DIC hemolysis renal failure, 6+ vials FabAV, ICU mandatory. Bottom bar: Reassess every 15 minutes, mark swelling edge on skin, measure limb circumference at 3 points. Professional clinical diagram style.

Generating Image

Medical flashcard titled "FLASHCARD 4 — HOSPITAL MANAGEMENT FLOWCHART" on light background. Central LEFT flowchart with 8 connected boxes with downward arrows: Box 1 RED "SNAKEBITE VICTIM ARRIVES" → Box 2 "ABC: Airway Breathing Circulation — Early intubation if face/neck bite" → Box 3 "IV ACCESS x2 unaffected limbs — Monitor: vitals ECG SpO2 urine output" → Box 4 "HISTORY + PHYSICAL — Time of bite, snake ID, mark swelling edge" → Box 5 "LABS: CBC PT/APTT Fibrinogen D-dimer LFT RFT CK UA — 20-min WBCT" → Box 6 PURPLE "GRADE ENVENOMATION 0-III" → Box 7 GREEN "ANTIVENOM if Grade ≥ I" → Box 8 "ADMIT: Ward mild/mod or ICU severe". RIGHT side two panels: DANGER SIGNS panel (amber) listing ptosis/diplopia, respiratory distress, hypotension, spontaneous bleeding, dark urine, incoagulable blood. PARALLEL ACTIONS panel (blue) listing pain control, wound care, tetanus, antibiotics only if infection, compartment syndrome monitoring. Clinical medical flowchart style.

Generating Image

Medical flashcard titled "FLASHCARD 5 — ANTIVENOM: INDICATIONS & DOSING" on light green background. THREE panels. LEFT green panel "INDICATIONS FOR ANTIVENOM": Any systemic envenomation (hypotension, coagulopathy, neurotoxicity), Rapid progressive swelling crossing a joint in 1 hour, Bite on face/neck/trunk, 20-min WBCT incoagulable, Grade I-III envenomation. Warning: NO absolute contraindication — even allergy is relative, premedicate. MIDDLE teal table "DOSING GUIDE Crotalinae": Columns FabAV Crofab vs F(ab')2 Anavip, Rows: Mild=4 vials vs 10 vials, Moderate=4-6 vs 10, Severe=6+ vs 10, Maintenance=2 vials q6h x3, Infusion=250mL NS IV over 1 hour, start 25-50mL/h for 10 min then 250mL/h. RIGHT red panel "ANAPHYLAXIS MANAGEMENT": 1.STOP infusion 2.Epinephrine IM/IV 3.Antihistamines IV 4.Glucocorticoids IV 5.Restart at 5-10mL/h and titrate up. SERUM SICKNESS 5-10 days: Prednisone 1mg/kg/day taper 2 weeks. Gold bottom bar: Antivenom dose based on SEVERITY not patient weight — same dose for children and adults. Clinical reference card style.

Generating Image

Medical flashcard titled "FLASHCARD 6 — VENOM EFFECTS PATHOPHYSIOLOGY DIAGRAM" on warm cream background. Central radial diagram: Large red oval in center labeled "SNAKE VENOM". FOUR arrows radiating LEFT (orange-red colors, labeled VIPER-DOMINANT): Cytotoxins/Phospholipase A2/Hyaluronidase → local necrosis/swelling; Hemotoxins/Thrombin-like enzymes/Fibrinolysins → DIC/coagulopathy; Myotoxins → CK rise/Rhabdomyolysis/Myoglobinuria; Cardiotoxins → Hypotension/Dysrhythmia. FOUR arrows radiating RIGHT (blue-green colors, labeled ELAPID-DOMINANT): Neurotoxins/Alpha postsynaptic Cobra/Beta presynaptic Krait → paralysis; Cholinesterase inhibition → Ptosis/diplopia/dysphagia; Coagulotoxins/Saw-scaled viper → Vascular damage; Nephrotoxins/Russell's viper → AKI/tubular damage. Bottom amber banner: MNEMONIC AVIPS = Autopharmacological, Vascular damage, Immune-complex, Paralysis, Sanguinolytic. Clean medical pathophysiology diagram.

Generating Image

Medical flashcard titled "FLASHCARD 7 — MASTER MNEMONIC: SNAKE" on dark navy background. Large prominent mnemonic display. Five rows each with large teal letter on left and content on right: S = large teal S box → "STABILIZE ABCs — Airway Breathing Circulation first, early intubation if face/neck bite". N = large teal N box → "NEUTRALIZE VENOM — Antivenom is only definitive treatment, dose by severity, give BEFORE blood products". A = large teal A box → "ASSESS & MONITOR — Mark swelling edge Q15 min, measure circumference at 3 points, CBC/coag/RFT/LFT/CK/UA". K = large teal K box → "KEEP WATCHING — Observe minimum 6-8h dry bite or 24-48h envenomation, watch recurrent coagulopathy". E = large teal E box → "EXTRAS — Tetanus immunization, wound care no early debridement, prevent serum sickness". Bottom red bar: SOURCES: Harrison's Principles of Internal Medicine 22E 2025 / Tintinalli's Emergency Medicine / Sabiston Surgery. Dark clinical medical mnemonic card design, high contrast.

This is a shared conversation. Sign in to Orris to start your own chat.