Snake bite poisoning ppt with 20 plus slides and in detail
mkdir -p /tmp/workspace/snakebite-ppt && ls /tmp/workspace/snakebite-ppt/
Snake bite poisoning ppt with 20 plus slides and in detail
mkdir -p /tmp/workspace/snakebite-ppt && cat > /tmp/workspace/snakebite-ppt/build_ppt.py << 'PYEOF' from pptx import Presentation from pptx.util import Inches, Pt, Emu from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.util import Inches, Pt import json, subprocess, base64 from io import BytesIO # ── Colour palette ────────────────────────────────────────────── DARK_GREEN = RGBColor(0x1A, 0x5C, 0x2E) # deep forest green (header bg) MID_GREEN = RGBColor(0x2E, 0x86, 0x48) # mid green accent LIGHT_GREEN = RGBColor(0xD4, 0xED, 0xDA) # pale green body bg ACCENT_RED = RGBColor(0xC0, 0x39, 0x2B) # warning / danger red ACCENT_YEL = RGBColor(0xF3, 0x9C, 0x12) # amber highlight WHITE = RGBColor(0xFF, 0xFF, 0xFF) DARK_GRAY = RGBColor(0x22, 0x22, 0x22) MID_GRAY = RGBColor(0x55, 0x55, 0x55) LIGHT_GRAY = RGBColor(0xF5, 0xF5, 0xF5) TEAL = RGBColor(0x0A, 0x7C, 0x8C) W = Inches(13.333) H = Inches(7.5) prs = Presentation() prs.slide_width = W prs.slide_height = H blank = prs.slide_layouts[6] # ── Helper functions ───────────────────────────────────────────── def bg_rect(slide, x, y, w, h, color): from pptx.util import Emu shape = slide.shapes.add_shape(1, x, y, w, h) # MSO_SHAPE_TYPE.RECTANGLE=1 shape.fill.solid() shape.fill.fore_color.rgb = color shape.line.fill.background() return shape def add_text(slide, text, x, y, w, h, size=18, bold=False, color=DARK_GRAY, align=PP_ALIGN.LEFT, wrap=True, italic=False): tb = slide.shapes.add_textbox(x, y, w, h) tf = tb.text_frame tf.word_wrap = wrap tf.margin_left = 0; tf.margin_right = 0 tf.margin_top = Pt(2); tf.margin_bottom = Pt(2) p = tf.paragraphs[0] p.alignment = align run = p.add_run() run.text = text run.font.size = Pt(size) run.font.bold = bold run.font.italic = italic run.font.color.rgb = color run.font.name = "Calibri" return tb def add_para(tf, text, size=16, bold=False, color=DARK_GRAY, align=PP_ALIGN.LEFT, italic=False, space_before=6): p = tf.add_paragraph() p.alignment = align p.space_before = Pt(space_before) run = p.add_run() run.text = text run.font.size = Pt(size) run.font.bold = bold run.font.italic = italic run.font.color.rgb = color run.font.name = "Calibri" return p def slide_header(slide, title, subtitle=None): """Dark green banner at top with white title""" bg_rect(slide, 0, 0, W, Inches(1.35), DARK_GREEN) add_text(slide, title, Inches(0.35), Inches(0.1), Inches(12.6), Inches(0.9), size=30, bold=True, color=WHITE, align=PP_ALIGN.LEFT) if subtitle: add_text(slide, subtitle, Inches(0.35), Inches(0.95), Inches(12.6), Inches(0.38), size=16, bold=False, color=LIGHT_GREEN, align=PP_ALIGN.LEFT) # green rule line below header line = slide.shapes.add_shape(1, 0, Inches(1.35), W, Pt(4)) line.fill.solid(); line.fill.fore_color.rgb = MID_GREEN line.line.fill.background() def bullet_slide(slide, title, bullets, subtitle=None, cols=1, col_split=None, highlight_first=False): """Standard content slide with bullet points, optional 2-col""" bg_rect(slide, 0, 0, W, H, LIGHT_GRAY) slide_header(slide, title, subtitle) content_y = Inches(1.5) content_h = Inches(5.7) if cols == 1: tb = slide.shapes.add_textbox(Inches(0.4), content_y, Inches(12.5), content_h) tf = tb.text_frame; tf.word_wrap = True tf.margin_left = Pt(4); tf.margin_right = Pt(4) tf.margin_top = Pt(4); tf.margin_bottom = Pt(4) for i, b in enumerate(bullets): if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.space_before = Pt(5) if isinstance(b, tuple): # (heading, body) tuple heading_text, body_text = b run = p.add_run() run.text = heading_text run.font.bold = True run.font.size = Pt(17) run.font.color.rgb = DARK_GREEN run.font.name = "Calibri" p2 = tf.add_paragraph() p2.space_before = Pt(2) run2 = p2.add_run() run2.text = " " + body_text run2.font.size = Pt(15) run2.font.color.rgb = MID_GRAY run2.font.name = "Calibri" else: run = p.add_run() bullet_char = "▸ " if not b.startswith(" ") else "" run.text = bullet_char + b run.font.size = Pt(16 if not b.startswith(" ") else 14) run.font.bold = (i == 0 and highlight_first) run.font.color.rgb = DARK_GRAY if not b.startswith(" ") else MID_GRAY run.font.name = "Calibri" else: # 2-column split = col_split or len(bullets)//2 left_bullets = bullets[:split] right_bullets = bullets[split:] col_w = Inches(6.0) for col_idx, col_bullets in enumerate([left_bullets, right_bullets]): cx = Inches(0.4) + col_idx * Inches(6.6) tb = slide.shapes.add_textbox(cx, content_y, col_w, content_h) tf = tb.text_frame; tf.word_wrap = True tf.margin_left = Pt(4); tf.margin_right = Pt(4) tf.margin_top = Pt(4); tf.margin_bottom = Pt(4) for i, b in enumerate(col_bullets): if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.space_before = Pt(5) if isinstance(b, tuple): heading_text, body_text = b run = p.add_run() run.text = heading_text run.font.bold = True run.font.size = Pt(17) run.font.color.rgb = DARK_GREEN run.font.name = "Calibri" p2 = tf.add_paragraph() p2.space_before = Pt(2) run2 = p2.add_run() run2.text = " " + body_text run2.font.size = Pt(14) run2.font.color.rgb = MID_GRAY run2.font.name = "Calibri" else: run = p.add_run() run.text = ("▸ " if not b.startswith(" ") else "") + b run.font.size = Pt(15 if not b.startswith(" ") else 13) run.font.color.rgb = DARK_GRAY if not b.startswith(" ") else MID_GRAY run.font.name = "Calibri" def section_divider(slide, number, title, subtitle=""): """Full-bleed green divider slide""" bg_rect(slide, 0, 0, W, H, DARK_GREEN) # lighter green diagonal accent acc = slide.shapes.add_shape(1, Inches(9.5), 0, Inches(3.9), H) acc.fill.solid(); acc.fill.fore_color.rgb = MID_GREEN acc.line.fill.background() add_text(slide, number, Inches(0.5), Inches(2.5), Inches(2), Inches(1.2), size=60, bold=True, color=ACCENT_YEL, align=PP_ALIGN.LEFT) add_text(slide, title, Inches(0.5), Inches(3.6), Inches(9), Inches(1.0), size=36, bold=True, color=WHITE, align=PP_ALIGN.LEFT) if subtitle: add_text(slide, subtitle, Inches(0.5), Inches(4.55), Inches(9), Inches(0.7), size=18, color=LIGHT_GREEN, align=PP_ALIGN.LEFT) def add_table_slide(slide, title, headers, rows, subtitle=None): """Slide with a formatted table""" bg_rect(slide, 0, 0, W, H, LIGHT_GRAY) slide_header(slide, title, subtitle) from pptx.util import Inches, Pt n_cols = len(headers) n_rows = len(rows) tbl_left = Inches(0.4) tbl_top = Inches(1.6) tbl_width = Inches(12.5) tbl_height= Inches(5.5) table = slide.shapes.add_table(n_rows+1, n_cols, tbl_left, tbl_top, tbl_width, tbl_height).table col_w = tbl_width // n_cols for ci in range(n_cols): table.columns[ci].width = col_w # Header row for ci, h in enumerate(headers): cell = table.cell(0, ci) cell.fill.solid(); cell.fill.fore_color.rgb = DARK_GREEN p = cell.text_frame.paragraphs[0] p.alignment = PP_ALIGN.CENTER run = p.add_run(); run.text = h run.font.bold = True; run.font.size = Pt(14); run.font.color.rgb = WHITE run.font.name = "Calibri" # Data rows for ri, row in enumerate(rows): bg_color = WHITE if ri % 2 == 0 else RGBColor(0xE8, 0xF5, 0xE9) for ci, cell_text in enumerate(row): cell = table.cell(ri+1, ci) cell.fill.solid(); cell.fill.fore_color.rgb = bg_color p = cell.text_frame.paragraphs[0] p.alignment = PP_ALIGN.LEFT run = p.add_run(); run.text = str(cell_text) run.font.size = Pt(13); run.font.color.rgb = DARK_GRAY run.font.name = "Calibri" if ci == 0: run.font.bold = True # ════════════════════════════════════════════════════════════════ # SLIDE 1 — TITLE SLIDE # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bg_rect(s, 0, 0, W, H, DARK_GREEN) # accent bar right side acc = s.shapes.add_shape(1, Inches(10.2), 0, Inches(3.15), H) acc.fill.solid(); acc.fill.fore_color.rgb = MID_GREEN; acc.line.fill.background() # snake icon area – decorative triangle tri = s.shapes.add_shape(5, Inches(10.4), Inches(1.5), Inches(2.6), Inches(4.5)) # 5=right_triangle tri.fill.solid(); tri.fill.fore_color.rgb = DARK_GREEN; tri.line.fill.background() add_text(s, "SNAKE BITE POISONING", Inches(0.5), Inches(1.6), Inches(9.5), Inches(1.4), size=46, bold=True, color=WHITE, align=PP_ALIGN.LEFT) add_text(s, "Envenomation: Epidemiology | Pathophysiology | Clinical Features | Management", Inches(0.5), Inches(3.0), Inches(9.5), Inches(0.6), size=18, color=LIGHT_GREEN, align=PP_ALIGN.LEFT, italic=True) # dividing line ln = s.shapes.add_shape(1, Inches(0.5), Inches(3.7), Inches(7), Pt(3)) ln.fill.solid(); ln.fill.fore_color.rgb = ACCENT_YEL; ln.line.fill.background() add_text(s, "A Comprehensive Clinical Overview", Inches(0.5), Inches(3.85), Inches(9), Inches(0.5), size=20, bold=True, color=ACCENT_YEL, align=PP_ALIGN.LEFT) add_text(s, "Sources: Harrison's Principles of Internal Medicine 22E | Sabiston Textbook of Surgery\nTintinalli's Emergency Medicine | Pye's Surgical Handicraft | Fitzpatrick's Dermatology", Inches(0.5), Inches(6.6), Inches(9), Inches(0.7), size=12, color=LIGHT_GREEN, align=PP_ALIGN.LEFT) # ════════════════════════════════════════════════════════════════ # SLIDE 2 — TABLE OF CONTENTS # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bg_rect(s, 0, 0, W, H, LIGHT_GRAY) slide_header(s, "Table of Contents") sections = [ ("01", "Epidemiology & Global Burden"), ("02", "Classification of Venomous Snakes"), ("03", "Snake Anatomy & Venom Delivery"), ("04", "Venom Composition & Mechanisms"), ("05", "Pathophysiology of Envenomation"), ("06", "Clinical Features — Local & Systemic"), ("07", "Grading of Envenomation Severity"), ("08", "Diagnosis & Laboratory Investigations"), ("09", "First Aid & Pre-hospital Management"), ("10", "Hospital Management Overview"), ("11", "Antivenom — Indications & Administration"), ("12", "Antivenom — Adverse Reactions"), ("13", "Specific Snake Families: Viperidae"), ("14", "Specific Snake Families: Elapidae"), ("15", "Haemotoxic Envenomation"), ("16", "Neurotoxic Envenomation"), ("17", "Compartment Syndrome & Surgical Care"), ("18", "Supportive & ICU Care"), ("19", "Special Populations & Considerations"), ("20", "Prevention, WHO Strategy & Prognosis"), ] col1 = sections[:10]; col2 = sections[10:] for col_i, col in enumerate([col1, col2]): cx = Inches(0.5) + col_i * Inches(6.5) for row_i, (num, title) in enumerate(col): ry = Inches(1.6) + row_i * Inches(0.52) # number badge badge = s.shapes.add_shape(1, cx, ry, Inches(0.48), Inches(0.38)) badge.fill.solid(); badge.fill.fore_color.rgb = DARK_GREEN; badge.line.fill.background() add_text(s, num, cx, ry, Inches(0.48), Inches(0.38), size=11, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_text(s, title, cx + Inches(0.55), ry, Inches(5.5), Inches(0.38), size=14, color=DARK_GRAY) # ════════════════════════════════════════════════════════════════ # SLIDE 3 — EPIDEMIOLOGY # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Epidemiology & Global Burden", [ "▸ 1.2 – 5.5 million snakebites worldwide every year (WHO estimate)", "▸ 421,000 – 1,200,000 envenomations annually; 63,415 deaths in 2019 (GBD data)", "▸ Projected increase to ~68,800 deaths/year by 2030 despite WHO halving goal", "▸ Death from snake envenomation is the DEADLIEST neglected tropical disease in the world", "▸ Most snakebites occur in developing nations — agriculture & fishing populations", "▸ South Asia, Sub-Saharan Africa, and Southeast Asia bear the highest burden", "▸ USA: ~6,000–7,000 envenomations/year; only 5–6 deaths annually (with antivenom)", "▸ Mortality with antivenom in a health facility: < 1% (likely < 0.1%)", "▸ 20–25% of pit viper bites are 'dry' bites — no venom released", "▸ Up to 75% of sea snake bites may be dry bites", "▸ Under-reporting is massive — poor record-keeping in most endemic regions", "▸ 60% of bites in USA occur in young males deliberately provoking snakes", ], subtitle="Global statistics and burden of disease") # ════════════════════════════════════════════════════════════════ # SLIDE 4 — CLASSIFICATION (SECTION DIVIDER STYLE) # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) section_divider(s, "02", "Classification of Venomous Snakes", "Major families, subfamilies & representative species") # ════════════════════════════════════════════════════════════════ # SLIDE 5 — SNAKE CLASSIFICATION TABLE # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) add_table_slide(s, "Classification of Venomous Snakes", ["Family / Subfamily", "Common Names", "Distribution", "Venom Type"], [ ["Viperidae – Crotalinae (Pit vipers)", "Rattlesnakes, Copperhead, Water moccasin, Bushmaster", "Americas, Asia", "Haemotoxic / cytotoxic"], ["Viperidae – Viperinae (True vipers)", "Russell's viper, Saw-scaled viper, Gaboon viper", "Old World", "Haemotoxic / cytotoxic"], ["Elapidae", "Cobra, Krait, Mamba, Coral snake, Sea snake", "Africa, Asia, Americas, Oceans", "Neurotoxic"], ["Lamprophiidae – Atractaspidinae", "Burrowing asps, Stiletto snakes", "Africa, Middle East", "Mixed / cardiotoxic"], ["Colubridae (select species)", "Boomslang, Vine snake (rear-fanged)", "Africa, Asia", "Haemotoxic (rare)"], ], subtitle="Based on Harrison's Principles of Internal Medicine 22E") # ════════════════════════════════════════════════════════════════ # SLIDE 6 — SNAKE ANATOMY & VENOM DELIVERY # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Snake Anatomy & Venom Delivery Apparatus", [ ("Venom Glands", "Bilateral glands behind the eyes; homologous to parotid salivary glands (Duvernoy's glands in colubrids)"), ("Fangs – Vipers (solenoglyphous)", "Long, hollow, retractable anterior maxillary fangs; erect at strike; hypodermic needle mechanism"), ("Fangs – Elapids (proteroglyphous)", "Fixed erect fangs, shorter; grooved — venom 'wicks' into wound; fewer distinct puncture marks"), ("Fangs – Rear-fanged colubrids (opisthoglyphous)", "Rear maxillary fangs; requires chewing motion to envenomate; rarely clinically significant"), ("Dry Bites", "20–25% of pit viper bites release no venom; up to 75% of sea snake bites are dry"), ("Venom Metering", "Snake controls volume injected via palatine muscle pressure; more venom in threatened strikes vs. feeding"), ("Fang Replacement", "Replacement fangs sit in a row behind functional fang; broken fang replaced immediately"), ("Identification Clues", "Vipers: triangular head, elliptical pupils, single row of caudal plates distal to anal plate; Elapids: round pupils, slender body"), ], cols=1) # ════════════════════════════════════════════════════════════════ # SLIDE 7 — VENOM COMPOSITION # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Venom Composition", [ "▸ Venom is a complex mixture — >90% of dry weight is proteinaceous", "▸ Pit viper venoms contain up to 50 different proteins and enzymes", "", ("Phospholipase A2 (PLA2)", "Destroys cell membranes, causes haemolysis, myotoxicity, neurotoxicity"), ("Proteases / Hyaluronidase", "Digest connective tissue, spreading factor, facilitates venom spread"), ("Serine proteases (thrombin-like)", "Activate clotting factors, cause DIC / consumption coagulopathy"), ("L-amino acid oxidase", "Generates H₂O₂, causes oxidative damage and cell necrosis"), ("Three-finger toxins (3FTx)", "Elapid neurotoxins — block nicotinic ACh receptors at NMJ"), ("Phosphodiesterase / Nucleotidase", "Nucleic acid degradation, purine release — vasodilation, hypotension"), ("Collagenase / Elastase", "Vascular basement membrane destruction → haemorrhage"), ("Factor X activator / Prothrombin activator", "Direct coagulation cascade activation → consumption coagulopathy"), ("Acetylcholinesterase", "Mainly Elapid venoms — prolongs ACh at neuromuscular junction"), ], subtitle="Over 90% protein — enzymes, toxins, and bioactive peptides", cols=1) # ════════════════════════════════════════════════════════════════ # SLIDE 8 — PATHOPHYSIOLOGY # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Pathophysiology of Envenomation", [ ("LOCAL EFFECTS (Cytotoxic/Haemotoxic venoms)", "Phospholipases + proteases cause direct tissue necrosis, oedema, blistering; hyaluronidase aids spread via lymphatics"), ("HAEMOTOXICITY — DIC pathway", "Venom activates thrombin-like enzymes → fibrinogen consumption → VICC (Venom-Induced Consumption Coagulopathy); results in non-clotting blood, spontaneous bleeding"), ("HAEMOTOXICITY — Haemolysis", "PLA2 lyses RBC membranes → haemoglobinuria, haemolytic anaemia, renal tubular damage"), ("NEUROTOXICITY — Pre-synaptic", "β-bungarotoxin, taipoxin: inhibit ACh release from motor nerve terminals; IRREVERSIBLE — antivenom may not help once bound"), ("NEUROTOXICITY — Post-synaptic", "α-cobratoxin, α-bungarotoxin: competitively block nicotinic ACh receptors; REVERSIBLE with antivenom"), ("MYOTOXICITY", "PLA2 isoforms cause generalised rhabdomyolysis → myoglobinaemia, myoglobinuria, acute kidney injury"), ("CARDIOVASCULAR", "Direct cardiotoxins (e.g. direct lytic factor) cause dysrhythmia, hypotension; PLA2 affects cardiac membrane"), ("RENAL INJURY", "Multi-factorial: haemoglobinuria, myoglobinuria, hypotension, direct nephrotoxins, DIC → ATN or cortical necrosis"), ], cols=1) # ════════════════════════════════════════════════════════════════ # SLIDE 9 — CLINICAL FEATURES LOCAL # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Clinical Features — Local Envenomation", [ "▸ Immediate pain at bite site (within 5 minutes — typical of viper bite)", "▸ Fang puncture marks — distance between marks correlates with snake size", "▸ Wheal with local oedema developing rapidly", "▸ Ecchymosis and bruising spreading from bite site", "▸ Painful regional lymphadenopathy (within 30 min)", "▸ Numbness and paresthesia at bite site", "▸ Blistering and bleb formation (cytotoxic venoms)", "▸ Tissue necrosis — may be extensive in Russell's viper, puff adder bites", "▸ NO local swelling within 8 hours = likely no significant envenomation", "", "⚠ KEY RULE: Absence of local oedema / pain within 8 hours virtually excludes significant envenomation", "", "▸ Tender lymph nodes draining the bite site — important early sign", "▸ Coral snake & some krait bites: minimal local reaction despite severe systemic toxicity", ], subtitle="Viperidae typically cause more local effects than Elapidae") # ════════════════════════════════════════════════════════════════ # SLIDE 10 — CLINICAL FEATURES SYSTEMIC # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Clinical Features — Systemic Envenomation", [ ("GI / Constitutional", "Nausea, vomiting, abdominal pain, diarrhoea, sweating, fever, drowsiness, slurred speech"), ("Haemotoxic features", "Gingival bleeding, haematemesis, haematuria, epistaxis, petechiae; non-clotting blood on 20-min whole blood clotting test (20WBCT)"), ("Neurotoxic features", "Ptosis (earliest sign!), ophthalmoplegia, dysarthria, dysphagia, descending paralysis, respiratory failure"), ("Cardiovascular", "Hypotension, shock, tachycardia or bradycardia, dysrhythmia, cardiovascular collapse"), ("Renal", "Oliguria/anuria, dark urine (haemoglobinuria / myoglobinuria), acute renal failure"), ("Myotoxic features", "Generalised myalgia, muscle stiffness, tenderness, elevated CK, dark urine"), ("Respiratory", "Dyspnoea, exaggerated abdominal respiration, intercostal retraction, cyanosis — respiratory paralysis"), ("Neurological (severe)", "Impaired consciousness, seizures (rare), cerebral haemorrhage in severe DIC"), ], subtitle="Systemic features vary by snake family and venom type") # ════════════════════════════════════════════════════════════════ # SLIDE 11 — GRADING OF ENVENOMATION # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) add_table_slide(s, "Grading of Crotalid Envenomation Severity", ["Grade", "Designation", "Local Features", "Systemic Features"], [ ["0", "No envenomation (Dry bite)", "Fang marks only, no oedema, no pain", "None — no venom injected"], ["I", "Minimal", "Swelling confined to bite site, mild pain", "None; no lab abnormalities"], ["II", "Moderate", "Oedema beyond bite site, pain, ecchymosis", "Nausea, vomiting; mild coagulopathy; mild systemic sx"], ["III", "Severe", "Massive swelling ± blistering ± necrosis", "Hypotension, coagulopathy (DIC), severe systemic sx"], ["IV", "Very Severe / Life-threatening", "Extensive necrosis", "Shock, renal failure, respiratory failure, coma"], ], subtitle="Grade drives antivenom dosing and ICU disposition") # ════════════════════════════════════════════════════════════════ # SLIDE 12 — DIAGNOSIS & INVESTIGATIONS # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Diagnosis & Laboratory Investigations", [ ("20-Minute Whole Blood Clotting Test (20WBCT)", "Place fresh venous blood in a clean dry glass tube; leave undisturbed 20 min — failure to clot = VICC / DIC (viper envenomation)"), ("CBC / FBC", "Leucocytosis (WBC >20,000/μL suggests systemic envenomation), anaemia from haemolysis or bleeding"), ("Coagulation studies", "PT, APTT, fibrinogen, D-dimer, FDP — detect consumption coagulopathy; fibrinogen < 1 g/L = significant VICC"), ("Renal function", "Serum creatinine, urea, electrolytes; urine dipstick for blood/protein (haemoglobinuria, myoglobinuria)"), ("Serum CK / LDH", "Elevated CK indicates myotoxicity / rhabdomyolysis"), ("Blood group & cross-match", "Required if haemorrhage anticipated or active bleeding"), ("12-lead ECG", "Dysrhythmia detection; conduction abnormalities with certain cardiotoxic venoms"), ("ELISA venom detection kit", "Australia / Papua New Guinea — swab wound (do NOT wash) for species identification; guides antivenom choice"), ("Imaging", "X-ray if foreign body (retained fang); CT scan if intracranial haemorrhage suspected"), ("Neurological monitoring", "Vital capacity / peak expiratory flow if neurotoxic envenomation — monitor respiratory muscle power"), ], subtitle="20WBCT is the single most important bedside test for viper envenomation") # ════════════════════════════════════════════════════════════════ # SLIDE 13 — FIRST AID # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "First Aid & Pre-hospital Management", [ "✅ MOVE the patient away from the snake — do NOT risk second bite", "✅ Remove constricting items — jewellery, watches, tight clothing from affected limb", "✅ IMMOBILISE the bitten limb — splint in a functional position (reduces lymphatic spread)", "✅ Keep patient as still as possible — limit ambulation (especially lower limb bites)", "✅ Pressure Immobilisation Bandage (PIB) — for neurotoxic snakes ONLY (elapids); firm crêpe bandage; do NOT apply for viper bites", "✅ Transport RAPIDLY to a hospital capable of administering antivenom", "✅ Do NOT wash wound if ELISA venom detection kit will be used (Australia/PNG)", "", "❌ DO NOT attempt to suck out venom — ineffective & dangerous", "❌ DO NOT apply a tourniquet — risk of ischaemia; not recommended", "❌ DO NOT apply ice or heat — no evidence of benefit", "❌ DO NOT cut and incise the wound", "❌ DO NOT handle dead snake — reflexive bite can still envenomate", "❌ DO NOT give aspirin / NSAIDs — worsen bleeding risk", ], subtitle="Dos and Don'ts — correct first aid saves lives") # ════════════════════════════════════════════════════════════════ # SLIDE 14 — HOSPITAL MANAGEMENT OVERVIEW # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Hospital Management — Overview", [ ("Initial Assessment (A-B-C-D)", "Airway patency, breathing (rate, accessory muscles), circulation (BP, pulse, capillary refill), disability (GCS, ptosis)"), ("Observation period", "Minimum 24 hours for all snakebite victims; exceptions only when snake reliably identified as non-venomous"), ("IV access + monitoring", "Two large-bore IVs; continuous cardiac monitoring; pulse oximetry; hourly urine output"), ("History & documentation", "Time of bite, snake description, symptom progression; fang mark distance; wound margin marking"), ("20WBCT at presentation", "Repeat at 6 h and 12 h if initially negative — delayed coagulopathy possible"), ("Wound care", "Clean gently; tetanus prophylaxis; do NOT explore or débride acutely"), ("Pain management", "Paracetamol / opioids as needed; avoid NSAIDs and aspirin"), ("Fluid management", "IV crystalloids for hypotension; maintain urine output ≥0.5 mL/kg/hr to prevent renal tubular injury"), ("Blood products", "FFP / cryoprecipitate for coagulopathy only AFTER antivenom given — otherwise consumed rapidly"), ("Specialist consultation", "Toxicology / poison centre; regional snakebite experts; WHO online antivenom database"), ], subtitle="Pye's Surgical Handicraft & Harrison's 22E") # ════════════════════════════════════════════════════════════════ # SLIDE 15 — ANTIVENOM INDICATIONS # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Antivenom — Indications for Administration", [ "Antivenom is HYPERIMMUNE ANIMAL (usually equine) SERUM — the ONLY specific treatment", "", "SYSTEMIC INDICATIONS (any one is sufficient):", " ▸ Hypotension / shock", " ▸ Spontaneous systemic bleeding (gums, skin, urine, GI)", " ▸ Non-clotting blood on 20WBCT (VICC/DIC)", " ▸ Neurotoxicity (ptosis, paralysis, respiratory failure)", " ▸ Rhabdomyolysis (elevated CK, myoglobinuria)", " ▸ Impaired consciousness", " ▸ WBC >20,000/μL, elevated serum enzymes, acidosis", " ▸ Acute kidney injury (oliguria, rising creatinine)", "", "LOCAL INDICATIONS (select cases):", " ▸ Known necrotic venom species with severe local envenomation", " ▸ Rapid progression of swelling crossing a joint or proximal to wrist/ankle", "", "⚠ Grade II–IV Crotalid: start with 4–6 vials; dose by ENVENOMATION SEVERITY not body weight", ], subtitle="Sabiston & Pye's Surgical Handicraft — antivenom indication criteria") # ════════════════════════════════════════════════════════════════ # SLIDE 16 — ANTIVENOM ADMINISTRATION # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Antivenom — Administration & Dosing", [ ("Route", "ALWAYS intravenous — slow IV infusion preferred; IV injection acceptable; NEVER intramuscular (poor absorption)"), ("Pre-medication", "Subcutaneous epinephrine (0.25 mg adult) 15–20 min prior may reduce anaphylaxis risk (controversial but commonly used)"), ("Initial dose", "Grade II: 4–6 vials Crotalidae Fab; Grade III–IV: 6–12 vials; coral snake: 3–5 vials minimum"), ("Repeat dosing", "Re-dose if coagulopathy recurs at 6, 12, 18 h post-treatment — 'late haematologic toxicity' is documented"), ("Endpoint of dosing", "Clinical improvement: cessation of bleeding, BP recovery, clotting restored, neurological stabilisation"), ("Children vs Adults", "SAME total dose — antivenom neutralises venom mass, not patient mass"), ("Polyvalent vs Monospecific", "Polyvalent preferred when species uncertain; monospecific more potent for known species"), ("Fab (fragment) antivenoms", "CroFab (North America) — lower anaphylaxis risk; shorter half-life → more vials may be needed"), ("F(ab')₂ antivenoms", "Longer half-life, less rebound coagulopathy; common in developing world"), ("Storage", "Cold chain 2–8°C essential; single most important supply chain issue worldwide"), ], subtitle="Dose is determined by envenomation severity — NOT patient body weight") # ════════════════════════════════════════════════════════════════ # SLIDE 17 — ANTIVENOM ADVERSE REACTIONS # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Antivenom — Adverse Reactions", [ ("Early Anaphylaxis (Type I)", "Urticaria, bronchospasm, angioedema, hypotension — typically within 10–180 min; treat with IM epinephrine, antihistamine, corticosteroids"), ("Pyrogenic reactions", "Fever, rigors — due to endotoxin contamination; treat with paracetamol; slow infusion rate"), ("Serum Sickness (Type III — delayed)", "Fever, urticaria, arthralgias, lymphadenopathy 5–10 days post-treatment; treat with prednisolone 5 mg/kg/day × 5 days"), ("Risk factors for anaphylaxis", "Atopic patients, prior horse serum exposure, asthma; overall risk ~10–40% for equine IgG products"), ("Management algorithm", "STOP antivenom → IM epinephrine 0.5 mg → IV antihistamine → IV hydrocortisone → restart antivenom slowly once stable"), ("Key principle", "Even with anaphylaxis risk, benefit of antivenom in severe envenomation ALWAYS outweighs the reaction risk — antivenom must NOT be withheld"), ("Monitoring", "Observe in a setting where anaphylaxis can be managed — resuscitation equipment must be available before first dose"), ], subtitle="Equine-derived antivenoms carry 10–40% reaction risk — always have epinephrine ready") # ════════════════════════════════════════════════════════════════ # SLIDE 18 — VIPERIDAE # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Specific Snake Families: Viperidae (Pit Vipers & True Vipers)", [ ("Key species", "Rattlesnakes (Crotalus, Sistrurus), Copperhead (Agkistrodon contortrix), Cottonmouth/Water moccasin (A. piscivorus), Russell's viper, Saw-scaled viper (Echis carinatus)"), ("Morphology", "Triangular head, elliptical pupils, heat-sensing pit organ (Crotalinae), single row of caudal plates, hollow retractable fangs"), ("Venom effects", "Predominantly haemotoxic / cytotoxic; local tissue destruction, VICC/DIC, rhabdomyolysis, renal failure"), ("Russell's viper (Daboia russelii)", "Most medically important snake in South/SE Asia; causes DIC, renal failure, neurotoxicity, pituitary infarction (Sheehan-like syndrome)"), ("Saw-scaled viper (Echis carinatus)", "Commonest cause of snakebite mortality in Africa/South Asia; causes severe VICC, gingival bleeding"), ("Copperhead", "Pink/reddish-brown, hourglass pattern; bite painful but RARELY fatal; most common venomous bite in eastern USA"), ("Timber rattlesnake", "Dark brown with chevrons; more severe envenomation than copperhead"), ("Identification", "Rattlesnakes: rattle (new segment per skin shed), triangular head; 32 species in Americas only"), ], subtitle="Haemotoxic / cytotoxic venoms; local destruction and coagulopathy predominate") # ════════════════════════════════════════════════════════════════ # SLIDE 19 — ELAPIDAE # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Specific Snake Families: Elapidae", [ ("Key species", "Cobras (Naja spp.), Kraits (Bungarus spp.), Mambas (Dendroaspis spp.), Coral snakes (Micrurus spp.), King cobra, Sea snakes, Australian taipan, Tiger snake"), ("Morphology", "Slender body, round pupils, fixed erect fangs (shorter/smaller than viper fangs), often brightly coloured"), ("Venom effects", "Predominantly NEUROTOXIC; paralysis, respiratory failure; minimal local effects — deceptively benign appearance initially"), ("Coral snake ID (North America)", "'Red and yellow — kill a fellow; red and black — venom lack' (ONLY valid in North America)"), ("Krait (Bungarus)", "Nocturnal; painless bite often during sleep; β-bungarotoxin (pre-synaptic) → irreversible ACh blockade; very high mortality if untreated"), ("Cobra (Naja)", "Post-synaptic α-neurotoxin + cytotoxin; spitting cobras cause ocular envenomation — wash eyes immediately with copious water"), ("Mamba (Dendroaspis)", "Fastest snake; dendrotoxins block K+ channels + pre-synaptic toxins; rapid progression to respiratory failure"), ("Sea snakes", "Fixed small fangs; highly neurotoxic; first aid = pressure immobilisation; treat with polyvalent sea snake antivenom"), ("PIB for elapids", "Pressure Immobilisation Bandage (PIB) IS recommended for elapid bites — delays neurotoxin spread"), ], subtitle="Neurotoxic venoms; minimal local signs can mask severe envenomation") # ════════════════════════════════════════════════════════════════ # SLIDE 20 — HAEMOTOXIC ENVENOMATION / DIC # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Haemotoxic Envenomation & Coagulopathy", [ "VICC = Venom-Induced Consumption Coagulopathy — most common life-threatening complication of viper bites", "", ("Mechanism", "Thrombin-like serine proteases cleave fibrinogen → fibrin microclots → fibrinogen consumed; factor Xa activators activate clotting cascade → DIC"), ("20WBCT (Bedside test)", "Positive (non-clotting) = fibrinogen < 0.5 g/L; highly specific for VICC; repeat at 6 h and 12 h"), ("Laboratory hallmarks", "↓↓ Fibrinogen, ↑ PT/APTT, ↑ D-dimer, thrombocytopaenia, microangiopathic haemolytic anaemia"), ("Clinical bleeding", "Gingival ooze, haematuria, ecchymosis, haematemesis, cerebral haemorrhage (severe)"), ("Treatment: Antivenom FIRST", "Antivenom neutralises venom → stops ongoing consumption; blood products alone are consumed and ineffective without antivenom"), ("Blood products", "FFP / cryoprecipitate AFTER antivenom given; platelet transfusion if <50,000 with active bleeding"), ("Rebound coagulopathy", "Can recur 12–24 h post-Fab antivenom (short half-life) — monitor clotting at 6, 12, 18 h; re-dose antivenom"), ("Renal monitoring", "Haemoglobinuria → renal tubular necrosis → AKI; maintain urine output with IV fluids"), ], subtitle="Give antivenom BEFORE blood products — otherwise clotting factors are immediately consumed") # ════════════════════════════════════════════════════════════════ # SLIDE 21 — NEUROTOXIC ENVENOMATION # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Neurotoxic Envenomation — Clinical Features & Management", [ ("Earliest sign", "PTOSIS — failure of lid retraction when patient asked to look upwards; precedes respiratory failure"), ("Progression", "Ptosis → diplopia / ophthalmoplegia → facial weakness → dysarthria → dysphagia → neck muscle weakness → limb weakness → respiratory failure"), ("Pre-synaptic neurotoxins", "β-bungarotoxin (kraits), taipoxin (taipan) — prevent ACh release; IRREVERSIBLE once bound — antivenom less effective post-binding"), ("Post-synaptic neurotoxins", "α-cobratoxin, α-bungarotoxin — block nicotinic AChR; REVERSIBLE — antivenom effective; neostigmine may help"), ("Respiratory monitoring", "Peak expiratory flow rate (PEFR) or FVC every 30–60 min; intubate before respiratory failure develops"), ("Intubation threshold", "FVC < 15 mL/kg OR clinical signs of respiratory distress — do NOT wait for hypoxia/cyanosis"), ("Anticholinesterases", "Neostigmine 0.04 mg/kg IV + atropine 0.6 mg IV — may reverse post-synaptic block; formal neostigmine test recommended"), ("Antivenom", "Give early for neurotoxic envenomation — most effective BEFORE toxin binds receptor"), ("Duration of paralysis", "Pre-synaptic paralysis: days to weeks on ventilator; post-synaptic: may recover within hours post-antivenom"), ("Eye exposure (spitting cobras)", "Irrigate IMMEDIATELY with copious water; 0.9% saline preferred; no antivenom instilled into eye"), ], subtitle="PTOSIS is the cardinal early sign — detect early, protect airway early") # ════════════════════════════════════════════════════════════════ # SLIDE 22 — COMPARTMENT SYNDROME # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Compartment Syndrome & Surgical Considerations", [ "Compartment syndrome following snakebite is RARE but a recognised complication of severe local envenomation", "", ("Recognition", "Tense, woody swelling of a compartment; pain on passive stretch; paresthesia; pallor and pulselessness are late signs"), ("Compartment pressure measurement", "If clinically suspected, measure intracompartmental pressure; >30 mmHg or within 30 mmHg of diastolic BP = consider fasciotomy"), ("PRIMARY treatment", "ANTIVENOM — neutralises venom causing the oedema; mannitol (osmotic) + antivenom may reduce compartment pressure without surgery"), ("Fasciotomy indications", "Compartment pressure criteria met AFTER adequate antivenom + mannitol trial; high risk of post-fasciotomy complications in coagulopathic patients"), ("Avoid premature fasciotomy", "Early fasciotomy in coagulopathic patients causes massive haemorrhage; correct coagulopathy first with antivenom"), ("Wound debridement", "Necrotic tissue should be debrided only after stabilisation (5–10 days); early aggressive debridement worsens outcomes"), ("Skin grafting", "May be required for extensive necrosis — delayed reconstruction recommended"), ("Tetanus prophylaxis", "ALL snakebite wounds require tetanus prophylaxis assessment"), ("Antibiotics", "Not routinely required; use only if infection develops (oral flora from snake mouth)"), ], subtitle="Tintinalli's Emergency Medicine & Sabiston — antivenom is the treatment, not fasciotomy") # ════════════════════════════════════════════════════════════════ # SLIDE 23 — ICU / SUPPORTIVE CARE # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Supportive Care & ICU Management", [ ("Airway & Ventilation", "Early intubation for neurotoxic envenomation; mechanical ventilation for respiratory paralysis (may last days–weeks); PEEP for ARDS"), ("Cardiovascular support", "IV crystalloids for hypotension; vasopressors (noradrenaline) for refractory shock; avoid excessive fluid in ARF"), ("Acute Kidney Injury", "Careful fluid resuscitation; urine output monitoring; early renal replacement therapy if oliguric AKI — haemodialysis or haemofiltration"), ("Haemorrhage control", "Antivenom + FFP/cryoprecipitate; packed RBCs for severe anaemia; control bleeding sites with pressure"), ("Rhabdomyolysis", "IV fluid infusion (150–200 mL/hr) to maintain urine output >200 mL/hr; urinary alkalinisation considered"), ("Analgesia", "Paracetamol, tilidine, or opioids as indicated; avoid NSAIDs and aspirin (worsen haemorrhage)"), ("Nutritional support", "Early enteral nutrition in ventilated patients; NGT if swallowing impaired"), ("Nursing", "Elevate bitten limb (reduces oedema but do not elevate above heart); limb marking — document oedema progression every 30 min"), ("Psychological support", "Anxiety, PTSD common post-envenomation; psychological support recommended"), ], subtitle="Multi-organ supportive care guided by specific envenomation pattern") # ════════════════════════════════════════════════════════════════ # SLIDE 24 — SPECIAL POPULATIONS # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Special Populations & Considerations", [ ("Children", "Same antivenom dose as adults (dose = envenomation severity); proportionally larger venom load relative to body mass → more severe envenomation per bite"), ("Pregnant women", "Envenomation can cause placental abruption, foetal distress; antivenom indicated; involve obstetrics; fetal monitoring mandatory"), ("Elderly", "Reduced physiological reserve; faster progression to AKI and cardiovascular decompensation; lower threshold for ICU admission"), ("Patients with pre-existing coagulopathy", "Warfarin, haemophilia, liver disease — compounded haemorrhagic risk; aggressive antivenom + factor replacement"), ("Exotic/captive snakes", "Zoo or private collections; WHO antivenom database + zoo toxicology consultation; worldwide antivenom may need emergency transport"), ("Bite by dead snake", "Reflexive envenomation possible up to hours after death — treat as live envenomation"), ("Multiple bites", "Higher venom load; higher antivenom doses required; monitor more intensively"), ("Recreational provocation", "60% of USA bites involve deliberate provocation; young males; often intoxicated — consider altered GCS baseline"), ], cols=1, subtitle="Adjust management based on patient-specific risk factors") # ════════════════════════════════════════════════════════════════ # SLIDE 25 — PREVENTION & WHO STRATEGY # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bullet_slide(s, "Prevention, WHO Strategy & Prognosis", [ "WHO designated snakebite a Priority Neglected Tropical Disease in 2017", "WHO goal: Reduce snakebite deaths and disability by 50% by 2030", "", ("Prevention strategies", "Protective footwear and clothing; torch use at night; avoid sleeping on floor; avoid disturbing snakes; education campaigns in high-risk communities"), ("Health system strengthening", "Making snakebite a notifiable disease; national snakebite treatment programmes; standard treatment guidelines; training of health workers"), ("Antivenom access", "Ensure adequate supply, distribution and cold-chain storage of quality antivenom; WHO pre-qualification of antivenom products"), ("Research priorities", "Improved venom detection diagnostics; next-generation broadly neutralising antivenoms; oral small-molecule toxin inhibitors"), ("Prognosis with treatment", "Mortality <1% with timely antivenom in a health facility; without treatment — mortality for severe viper/elapid bites can exceed 20–30%"), ("Prognosis — neurological", "Post-synaptic paralysis: full recovery possible with antivenom; pre-synaptic: prolonged ventilation needed; full recovery possible with good ICU care"), ("Prognosis — renal", "ATN: reversible with dialysis support; bilateral cortical necrosis (severe Russell's viper): may result in chronic renal failure"), ("Long-term sequelae", "Limb contractures from necrosis, chronic renal failure, pituitary insufficiency (Russell's viper), psychological trauma"), ], subtitle="WHO NTD strategy 2021–2030 | Park's Preventive Medicine") # ════════════════════════════════════════════════════════════════ # SLIDE 26 — SUMMARY / KEY TAKEAWAYS # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bg_rect(s, 0, 0, W, H, DARK_GREEN) # accent strip acc = s.shapes.add_shape(1, Inches(12.2), 0, Inches(1.15), H) acc.fill.solid(); acc.fill.fore_color.rgb = MID_GREEN; acc.line.fill.background() add_text(s, "KEY TAKEAWAYS", Inches(0.4), Inches(0.3), Inches(11.5), Inches(0.7), size=32, bold=True, color=ACCENT_YEL, align=PP_ALIGN.LEFT) ln = s.shapes.add_shape(1, Inches(0.4), Inches(1.05), Inches(11.3), Pt(3)) ln.fill.solid(); ln.fill.fore_color.rgb = ACCENT_YEL; ln.line.fill.background() takeaways = [ "1. Snakebite is the world's deadliest neglected tropical disease — 63,000+ deaths/year globally", "2. 20–25% of pit viper bites are 'dry' — all bites must be observed ≥24 hours", "3. Venom effects: cytotoxic (vipers) vs. neurotoxic (elapids) — overlap exists", "4. PTOSIS is the cardinal early sign of neurotoxic envenomation — protect airway early", "5. 20WBCT is the single most important bedside diagnostic test for viper envenomation", "6. ANTIVENOM is the ONLY specific treatment — give early, IV, in adequate doses", "7. Antivenom dose = envenomation severity, NOT patient body weight", "8. Give antivenom BEFORE blood products — otherwise clotting factors are consumed instantly", "9. PIB (Pressure Immobilisation Bandage) for ELAPID bites only — NOT for vipers", "10. Avoid: tourniquet, incision, ice, sucking, NSAIDs, premature fasciotomy", ] tb = s.shapes.add_textbox(Inches(0.4), Inches(1.25), Inches(11.8), Inches(5.9)) tf = tb.text_frame; tf.word_wrap = True tf.margin_left = Pt(4); tf.margin_right = Pt(4) for i, t in enumerate(takeaways): p = tf.paragraphs[0] if i == 0 else tf.add_paragraph() p.space_before = Pt(6) run = p.add_run(); run.text = t run.font.size = Pt(16); run.font.color.rgb = WHITE; run.font.name = "Calibri" run.font.bold = (i == 0) # ════════════════════════════════════════════════════════════════ # SLIDE 27 — REFERENCES # ════════════════════════════════════════════════════════════════ s = prs.slides.add_slide(blank) bg_rect(s, 0, 0, W, H, LIGHT_GRAY) slide_header(s, "References & Sources") refs = [ "1. Harrison's Principles of Internal Medicine, 22nd Edition (2025). Chapter 471: Disorders Caused by Venomous Snakebites. McGraw Hill Medical.", "2. Sabiston Textbook of Surgery: The Biological Basis of Modern Surgical Practice. Chapter 44: Bites and Stings. Elsevier.", "3. Tintinalli's Emergency Medicine: A Comprehensive Study Guide. Chapter 212: Reptile Bites.", "4. Pye's Surgical Handicraft, 22nd Edition. Chapter 28: Envenomation — Snakebite Management.", "5. Fitzpatrick's Dermatology, 9th Edition. Chapter 182: Snakebites and Arthropod Envenomation.", "6. Goldman-Cecil Medicine, International Edition. Chapter: Envenomation and Bites/Stings.", "7. Mulholland and Greenfield's Surgery: Scientific Principles and Practice, 7th Edition.", "8. WHO (2019). Snakebite Envenoming: A Strategy for Prevention and Control. World Health Organization.", "9. GBD 2019 Snakebite Envenomation Collaborators. Global Mortality of Snakebite Envenoming Between 1990 and 2019. Nat Commun 13.1, 2022.", "10. Park's Textbook of Preventive and Social Medicine, 25th Edition. Chapter: Snakebite.", ] tb = s.shapes.add_textbox(Inches(0.4), Inches(1.55), Inches(12.5), Inches(5.7)) tf = tb.text_frame; tf.word_wrap = True for i, r in enumerate(refs): p = tf.paragraphs[0] if i == 0 else tf.add_paragraph() p.space_before = Pt(6) run = p.add_run(); run.text = r run.font.size = Pt(13); run.font.color.rgb = MID_GRAY; run.font.name = "Calibri" run.font.italic = True # ════════════════════════════════════════════════════════════════ # SAVE # ════════════════════════════════════════════════════════════════ out_path = "/tmp/workspace/snakebite-ppt/Snake_Bite_Poisoning.pptx" prs.save(out_path) print(f"Saved: {out_path}") print(f"Slides: {len(prs.slides)}") PYEOF echo "Script written."
cd /tmp/workspace/snakebite-ppt && python build_ppt.py 2>&1
python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/snakebite-ppt/Snake_Bite_Poisoning.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip()[:60] if t: texts.append(t) print(f' Slide {i:02d}: {texts[0] if texts else \"(empty)\"}') "
Snake Bite Poisoning
Presentation · PPTX
| # | Slide |
|---|---|
| 1 | Title slide |
| 2 | Table of Contents (all 20 topics) |
| 3 | Epidemiology & Global Burden (WHO data, 63,000+ deaths/year) |
| 4 | Section divider |
| 5 | Classification of Venomous Snakes (table: Viperidae, Elapidae, Lamprophiidae, Colubridae) |
| 6 | Snake Anatomy & Venom Delivery Apparatus |
| 7 | Venom Composition — PLA2, proteases, 3-finger toxins, serine proteases, etc. |
| 8 | Pathophysiology — local, haemotoxic, neurotoxic, myotoxic, renal, cardiovascular |
| 9 | Clinical Features — Local Envenomation |
| 10 | Clinical Features — Systemic Envenomation |
| 11 | Grading of Envenomation Severity (Grade 0–IV table) |
| 12 | Diagnosis & Laboratory Investigations (20WBCT, coags, renal, CK, ELISA) |
| 13 | First Aid — Dos and Don'ts (✅ / ❌ format) |
| 14 | Hospital Management Overview |
| 15 | Antivenom — Indications |
| 16 | Antivenom — Administration & Dosing |
| 17 | Antivenom — Adverse Reactions (anaphylaxis, serum sickness) |
| 18 | Viperidae — Russell's viper, saw-scaled, rattlesnake, copperhead |
| 19 | Elapidae — Cobra, krait, mamba, coral snake, sea snakes |
| 20 | Haemotoxic Envenomation & VICC/DIC |
| 21 | Neurotoxic Envenomation (ptosis, paralysis, intubation thresholds) |
| 22 | Compartment Syndrome & Surgical Considerations |
| 23 | Supportive Care & ICU Management |
| 24 | Special Populations (children, pregnancy, elderly) |
| 25 | Prevention, WHO 2030 Strategy & Prognosis |
| 26 | Key Takeaways (10 core clinical pearls) |
| 27 | References (Harrison's 22E, Sabiston, Tintinalli, Pye's, Fitzpatrick's, WHO) |