Snake bite management approach
"snakebite" AND "management"
| Family | Examples | Key Venom Effects |
|---|---|---|
| Viperidae (vipers/pit vipers) | Russell's viper, saw-scaled viper, puff adder, rattlesnakes, copperhead | Local necrosis, coagulopathy, haemotoxicity, shock |
| Elapidae | Cobras, kraits, mambas, coral snakes | Neurotoxicity (pre/postsynaptic), minimal local effects |
| Hydrophiinae (sea snakes) | Sea snakes | Myotoxicity, minimal local pain |
| Colubridae (rear-fanged) | Boomslang, twig snake | Coagulopathy (less common) |
| System | Features |
|---|---|
| Haematological | Bleeding from fang marks, gums, venepuncture sites; haematemesis, haematuria; non-clottable blood (viper coagulopathy) |
| Neurological | Ptosis, diplopia, dysphonia, dysphagia → descending flaccid paralysis, respiratory failure (elapids) |
| Cardiovascular | Hypotension, bradycardia, arrhythmias; shock from vasodilation (bradykinin-releasing venoms) |
| Renal | AKI - due to haemoglobinuria, myoglobinuria, DIC, direct nephrotoxicity (Russell's viper, sea snakes) |
| Musculoskeletal | Generalised myolysis with sea snakes/some vipers; rhabdomyolysis |
| Test | Rationale |
|---|---|
| Whole-blood clotting test (WBCT) | Simple bedside test - 5-10 mL blood in clean glass tube; if unclotted at 20 min → coagulopathy |
| INR/PT, aPTT, fibrinogen, D-dimer, platelets | Quantify coagulopathy |
| FBC, U&E, creatinine | AKI screening |
| Creatine kinase | Myolysis |
| Urine dipstick | Haematuria, myoglobinuria, haemoglobinuria |
| Venom detection kit (Australia) | Guides specific antivenom choice |
| Grade | Features |
|---|---|
| 0 (Dry bite) | Fang marks only, no systemic signs |
| I (Mild) | Local swelling only, mild symptoms |
| II (Moderate) | Systemic symptoms (nausea, dizziness, minor coagulopathy) |
| III (Severe) | Severe systemic effects, significant coagulopathy, shock |
| Complication | Mechanism / Cause |
|---|---|
| AKI | Haemolysis, myolysis, DIC, direct nephrotoxicity (commonest cause of AKI in South Asian hospitals after snakebite) |
| Respiratory failure | Neurotoxic paralysis (elapids) |
| Gangrene/limb loss | Local necrosis + secondary infection + tight tourniquets |
| DIC | Viperid procoagulant venoms consuming fibrinogen/platelets |
| Hypopituitarism | Russell's viper bite - classic complication due to pituitary infarction (Sheehan-like syndrome) |
| Secondary infection | Wound contamination, incision first aid |
| Syndrome | Primary Effect | Additional Effects | Likely Snake |
|---|---|---|---|
| 1 | Local effects | Coagulopathy/bleeding | Viper |
| 2 | Local effects | Coagulopathy + shock/AKI | Russell's viper |
| 3 | Local effects | Neurotoxic paralysis | Cobra/King cobra |
| 4 | Neurotoxic paralysis | Minimal local effects | Krait (bitten while sleeping) |
| 5 | Local effects | Myotoxicity + myoglobinuria | Sea snake/Malayan pit viper |
Make it short
| Family | Examples | Main Effect |
|---|---|---|
| Viperidae | Russell's viper, saw-scaled viper, rattlesnake | Local necrosis + coagulopathy |
| Elapidae | Cobra, krait, coral snake | Neurotoxicity, paralysis |
| Sea snakes | Hydrophis spp. | Myotoxicity → AKI |
| Type | Specific Treatment |
|---|---|
| Viper | Antivenom + fluids; FFP only for life-threatening bleeding; fasciotomy only if compartment syndrome confirmed |
| Cobra | Antivenom + neostigmine/atropine (post-synaptic reversal); ventilate if needed |
| Krait | Antivenom + mechanical ventilation; neostigmine often ineffective (pre-synaptic) |
| Sea snake | Sea snake antivenom (tiger snake antivenom as backup); IV fluids for myoglobinuria |
Create a quick reference PDF for snakebite management
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/snakebite-pdf && python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/snakebite-pdf/Snakebite_Quick_Reference.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.8*cm, bottomMargin=1.5*cm, title="Snakebite Management Quick Reference", author="Orris Medical Library" ) # ── Colour palette ────────────────────────────────────────────── RED = colors.HexColor("#C0392B") DARK_RED = colors.HexColor("#922B21") ORANGE = colors.HexColor("#E67E22") GREEN = colors.HexColor("#1E8449") DARK_BLUE = colors.HexColor("#1A5276") MID_BLUE = colors.HexColor("#2874A6") LIGHT_BLUE= colors.HexColor("#D6EAF8") LIGHT_RED = colors.HexColor("#FADBD8") LIGHT_GRN = colors.HexColor("#D5F5E3") LIGHT_ORG = colors.HexColor("#FDEBD0") GREY_BG = colors.HexColor("#F2F3F4") WHITE = colors.white BLACK = colors.HexColor("#1C1C1C") MID_GREY = colors.HexColor("#7F8C8D") # ── Styles ─────────────────────────────────────────────────────── styles = getSampleStyleSheet() def S(name, **kw): return ParagraphStyle(name, **kw) title_style = S("Title2", fontSize=20, textColor=WHITE, alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=2) subtitle_style = S("Sub", fontSize=9, textColor=colors.HexColor("#ABEBC6"), alignment=TA_CENTER, fontName="Helvetica") sec_head = S("SecHead", fontSize=11, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_LEFT, spaceAfter=0, spaceBefore=0, leftIndent=6, leading=16) body = S("Body2", fontSize=8.2, textColor=BLACK, fontName="Helvetica", leading=12, spaceAfter=3, leftIndent=4) bold_body = S("BoldBody", fontSize=8.2, textColor=BLACK, fontName="Helvetica-Bold", leading=12, spaceAfter=3, leftIndent=4) small = S("Small", fontSize=7.5, textColor=MID_GREY, fontName="Helvetica", leading=10, spaceAfter=2, leftIndent=4) bullet = S("Bullet2", fontSize=8.2, textColor=BLACK, fontName="Helvetica", leading=12, spaceAfter=2, leftIndent=14, bulletIndent=4, bulletText="•") do_style = S("Do", fontSize=8.2, textColor=GREEN, fontName="Helvetica-Bold", leading=11, spaceAfter=2, leftIndent=14, bulletIndent=4) donot_style = S("Donot", fontSize=8.2, textColor=RED, fontName="Helvetica-Bold", leading=11, spaceAfter=2, leftIndent=14, bulletIndent=4) table_header = S("TH", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, leading=10) table_cell = S("TC", fontSize=7.8, textColor=BLACK, fontName="Helvetica", alignment=TA_LEFT, leading=10) table_cell_c = S("TCC", fontSize=7.8, textColor=BLACK, fontName="Helvetica", alignment=TA_CENTER, leading=10) # ── Helper: coloured section header ───────────────────────────── def section(title, bg=DARK_BLUE): tbl = Table([[Paragraph(f"▌ {title}", sec_head)]], colWidths=[18*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("ROWPADDING", (0,0), (-1,-1), 4), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING",(0,0),(-1,-1), 3), ("BOX", (0,0), (-1,-1), 0, bg), ])) return tbl def spacer(h=0.18*cm): return Spacer(1, h) # ── Content ────────────────────────────────────────────────────── story = [] # ─ Title Banner ─ title_tbl = Table( [[Paragraph("SNAKEBITE MANAGEMENT", title_style)], [Paragraph("Quick Reference Card | Emergency & Clinical Use", subtitle_style)]], colWidths=[18*cm] ) title_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), DARK_RED), ("ROWPADDING", (0,0), (-1,-1), 4), ("TOPPADDING", (0,0), (0,0), 10), ("BOTTOMPADDING", (0,1), (0,1), 10), ])) story.append(title_tbl) story.append(spacer(0.3*cm)) # ─ Two-column layout helper ─ def two_col(left_items, right_items, lw=8.8*cm, rw=8.8*cm): left = [i for i in left_items] right = [i for i in right_items] # pad to same length while len(left) < len(right): left.append(Spacer(1,1)) while len(right) < len(left): right.append(Spacer(1,1)) rows = [[l, r] for l, r in zip(left, right)] t = Table(rows, colWidths=[lw, 0.4*cm, rw]) t.setStyle(TableStyle([ ("VALIGN", (0,0), (-1,-1), "TOP"), ("LEFTPADDING", (0,0),(-1,-1), 0), ("RIGHTPADDING", (0,0),(-1,-1), 0), ("TOPPADDING", (0,0),(-1,-1), 0), ("BOTTOMPADDING",(0,0),(-1,-1), 0), ])) return t # ════════════════════════════════════════════ # SECTION 1 – Snake Types # ════════════════════════════════════════════ story.append(section("1. SNAKE TYPES & VENOM EFFECTS", DARK_BLUE)) story.append(spacer()) snake_data = [ [Paragraph("Family", table_header), Paragraph("Examples", table_header), Paragraph("Key Effect", table_header)], [Paragraph("Viperidae", table_cell), Paragraph("Russell's viper, saw-scaled viper,\nrattlesnake, copperhead", table_cell), Paragraph("Local necrosis, coagulopathy, haemotoxicity, shock", table_cell)], [Paragraph("Elapidae", table_cell), Paragraph("Cobra, krait, mamba, coral snake", table_cell), Paragraph("Neurotoxicity → descending paralysis, resp. failure", table_cell)], [Paragraph("Sea snakes", table_cell), Paragraph("Hydrophis spp.", table_cell), Paragraph("Myotoxicity → myoglobinuria → AKI", table_cell)], ] st = Table(snake_data, colWidths=[3.5*cm, 6.5*cm, 8*cm]) st.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("BACKGROUND", (0,1), (-1,1), LIGHT_BLUE), ("BACKGROUND", (0,2), (-1,2), WHITE), ("BACKGROUND", (0,3), (-1,3), LIGHT_BLUE), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#AED6F1")), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ])) story.append(st) story.append(spacer(0.15*cm)) story.append(Paragraph( "<b>Indian Big Four:</b> Naja naja (cobra) · Bungarus caeruleus (krait) · " "Vipera russelli (Russell's viper) · Echis carinatus (saw-scaled viper)", small)) story.append(Paragraph( "<b>Dry bite:</b> 25–50 % of venomous bites — no venom injected. Observe ALL patients ≥12 h.", small)) story.append(spacer(0.25*cm)) # ════════════════════════════════════════════ # SECTION 2 – First Aid # ════════════════════════════════════════════ story.append(section("2. FIRST AID (Pre-Hospital)", GREEN)) story.append(spacer()) do_col = [ Paragraph("DO", S("HDo", fontSize=9, textColor=GREEN, fontName="Helvetica-Bold", spaceAfter=3, leftIndent=4)), Paragraph("✔ Immobilise limb at heart level; keep patient still", body), Paragraph("✔ Remove rings, watches, tight clothing", body), Paragraph("✔ Pressure-immobilisation bandage (PIB) — <b>ONLY</b> for confirmed elapid (neurotoxic) bites; wrap entire limb firmly (40–70 mmHg), then carry the patient", body), Paragraph("✔ Transport rapidly to hospital", body), Paragraph("✔ Photograph snake from a safe distance for ID", body), ] dont_col = [ Paragraph("DO NOT", S("HDont", fontSize=9, textColor=RED, fontName="Helvetica-Bold", spaceAfter=3, leftIndent=4)), Paragraph("✘ Incise or suck the wound", body), Paragraph("✘ Apply a tourniquet", body), Paragraph("✘ Use PIB for <b>viper</b> bites (worsens necrosis)", body), Paragraph("✘ Let the patient walk (muscle pumping disperses venom)", body), Paragraph("✘ Consult traditional healers or delay hospital care", body), ] fa_bg_do = colors.HexColor("#EAFAF1") fa_bg_dont = colors.HexColor("#FDEDEC") do_tbl = Table([[item] for item in do_col], colWidths=[8.6*cm]) do_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), fa_bg_do), ("BOX", (0,0),(-1,-1), 0.8, GREEN), ("TOPPADDING", (0,0),(-1,-1), 2), ("BOTTOMPADDING", (0,0),(-1,-1), 2), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) dont_tbl = Table([[item] for item in dont_col], colWidths=[8.6*cm]) dont_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), fa_bg_dont), ("BOX", (0,0),(-1,-1), 0.8, RED), ("TOPPADDING", (0,0),(-1,-1), 2), ("BOTTOMPADDING", (0,0),(-1,-1), 2), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) fa_outer = Table([[do_tbl, Spacer(0.4*cm,1), dont_tbl]], colWidths=[8.6*cm, 0.4*cm, 8.6*cm]) fa_outer.setStyle(TableStyle([("VALIGN",(0,0),(-1,-1),"TOP")])) story.append(fa_outer) story.append(spacer(0.25*cm)) # ════════════════════════════════════════════ # SECTION 3 – Hospital Management # ════════════════════════════════════════════ story.append(section("3. HOSPITAL MANAGEMENT", MID_BLUE)) story.append(spacer()) # 3a ABCs abc_data = [ [Paragraph("ABCs", table_header), Paragraph("Action", table_header)], [Paragraph("Airway", table_cell), Paragraph("Early intubation for face/neck bite or impending paralysis", table_cell)], [Paragraph("Breathing", table_cell), Paragraph("Monitor SpO₂; mechanical ventilation for neurotoxic paralysis", table_cell)], [Paragraph("Circulation", table_cell), Paragraph("2 large-bore IVs (avoid non-compressible sites); isotonic crystalloid for hypotension", table_cell)], [Paragraph("Monitor", table_cell), Paragraph("Vitals · ECG · SpO₂ · urine output · limb circumference hourly", table_cell)], ] abc_tbl = Table(abc_data, colWidths=[3*cm, 15*cm]) abc_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), MID_BLUE), ("BACKGROUND", (0,1),(-1,1), LIGHT_BLUE), ("BACKGROUND", (0,2),(-1,2), WHITE), ("BACKGROUND", (0,3),(-1,3), LIGHT_BLUE), ("BACKGROUND", (0,4),(-1,4), WHITE), ("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#AED6F1")), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("TOPPADDING", (0,0),(-1,-1), 4), ("BOTTOMPADDING", (0,0),(-1,-1), 4), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) story.append(abc_tbl) story.append(spacer(0.2*cm)) # 3b Investigations inv_data = [ [Paragraph("Test", table_header), Paragraph("Purpose", table_header)], [Paragraph("WBCT (20-min whole-blood clotting test)", table_cell), Paragraph("Bedside coagulopathy screen — unclotted blood = coagulopathy", table_cell)], [Paragraph("INR, aPTT, fibrinogen, D-dimer, platelets", table_cell), Paragraph("Quantify DIC/coagulopathy", table_cell)], [Paragraph("Urea, creatinine, electrolytes", table_cell), Paragraph("AKI detection", table_cell)], [Paragraph("CK", table_cell), Paragraph("Myolysis (sea snakes, some vipers)", table_cell)], [Paragraph("Urine dipstick", table_cell), Paragraph("Haematuria · haemoglobinuria · myoglobinuria", table_cell)], ] inv_hdr = Paragraph("KEY INVESTIGATIONS — repeat every 6–12 h if initially normal", S("IH", fontSize=8.5, textColor=MID_BLUE, fontName="Helvetica-Bold", spaceAfter=3, leftIndent=4)) story.append(inv_hdr) inv_tbl = Table(inv_data, colWidths=[6.5*cm, 11.5*cm]) inv_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), MID_BLUE), ("ROWBACKGROUNDS",(0,1),(-1,-1), [LIGHT_BLUE, WHITE]), ("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#AED6F1")), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("TOPPADDING", (0,0),(-1,-1), 4), ("BOTTOMPADDING", (0,0),(-1,-1), 4), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) story.append(inv_tbl) story.append(spacer(0.25*cm)) # ════════════════════════════════════════════ # SECTION 4 – Antivenom # ════════════════════════════════════════════ story.append(section("4. ANTIVENOM", DARK_RED)) story.append(spacer()) av_ind = [ Paragraph("<b>Indications</b> — any of:", bold_body), Paragraph("• Non-clottable blood / active bleeding / thrombocytopenia", body), Paragraph("• Ptosis, diplopia, or descending paralysis", body), Paragraph("• Hypotension / shock", body), Paragraph("• AKI or dark urine (haemoglobin / myoglobin)", body), Paragraph("• Rapidly progressing local swelling", body), ] av_notes = [ Paragraph("<b>Administration</b>", bold_body), Paragraph("Monovalent (if species known) or polyvalent", body), Paragraph("Dilute in saline; infuse IV over 20–30 min", body), Paragraph("Pre-treat: adrenaline 0.25 mg SC (adult)", body), Paragraph("<b>Limitations</b>", bold_body), Paragraph("Does NOT reverse established necrosis or replenish consumed clotting factors", body), ] av_ind_tbl = Table([[item] for item in av_ind], colWidths=[8.6*cm]) av_ind_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), LIGHT_RED), ("BOX", (0,0),(-1,-1), 0.8, DARK_RED), ("TOPPADDING", (0,0),(-1,-1), 2), ("BOTTOMPADDING",(0,0),(-1,-1),2), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) av_notes_tbl = Table([[item] for item in av_notes], colWidths=[8.6*cm]) av_notes_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), LIGHT_ORG), ("BOX", (0,0),(-1,-1), 0.8, ORANGE), ("TOPPADDING", (0,0),(-1,-1), 2), ("BOTTOMPADDING",(0,0),(-1,-1),2), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) av_outer = Table([[av_ind_tbl, Spacer(0.4*cm,1), av_notes_tbl]], colWidths=[8.6*cm, 0.4*cm, 8.6*cm]) av_outer.setStyle(TableStyle([("VALIGN",(0,0),(-1,-1),"TOP")])) story.append(av_outer) story.append(spacer(0.15*cm)) story.append(Paragraph( "<b>Reaction management:</b> Anaphylaxis → adrenaline + antihistamine + corticosteroids | " "Serum sickness (5–10 days later) → oral prednisolone + antihistamine", small)) story.append(spacer(0.25*cm)) # ════════════════════════════════════════════ # SECTION 5 – Envenomation-Specific # ════════════════════════════════════════════ story.append(section("5. ENVENOMATION-SPECIFIC TREATMENT", colors.HexColor("#6C3483"))) story.append(spacer()) spec_data = [ [Paragraph("Type", table_header), Paragraph("Specific Management", table_header)], [Paragraph("Viper\n(Viperidae)", table_cell), Paragraph("Antivenom + IV fluids · FFP only for life-threatening bleeding despite antivenom · " "Fasciotomy ONLY if compartment syndrome confirmed · Dialysis for AKI · " "<b>Do NOT</b> use PIB", table_cell)], [Paragraph("Cobra\n(post-synaptic)", table_cell), Paragraph("Antivenom + neostigmine (0.04 mg/kg IV) with atropine (0.6 mg IV first) — " "may reverse paralysis · Ventilate if needed", table_cell)], [Paragraph("Krait\n(pre-synaptic)", table_cell), Paragraph("Antivenom + mechanical ventilation (may need days–weeks) · " "Neostigmine often <b>ineffective</b> (pre-synaptic toxin irreversible)", table_cell)], [Paragraph("Sea snake", table_cell), Paragraph("Sea snake-specific antivenom (tiger snake antivenom if unavailable) · " "IV fluids to protect kidneys from myoglobinuria · Dialysis if AKI", table_cell)], [Paragraph("Coral snake\n(N. America)", table_cell), Paragraph("Supportive care · Early prophylactic intubation · " "No commercial antivenom currently available in USA", table_cell)], ] spec_tbl = Table(spec_data, colWidths=[2.8*cm, 15.2*cm]) spec_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), colors.HexColor("#6C3483")), ("ROWBACKGROUNDS",(0,1),(-1,-1), [colors.HexColor("#F5EEF8"), WHITE]), ("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#D2B4DE")), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("TOPPADDING", (0,0),(-1,-1), 4), ("BOTTOMPADDING", (0,0),(-1,-1), 4), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) story.append(spec_tbl) story.append(spacer(0.25*cm)) # ════════════════════════════════════════════ # SECTION 6 – Complications + WHO Syndromes # ════════════════════════════════════════════ comp_items = [ section("6. KEY COMPLICATIONS", colors.HexColor("#117A65")), spacer(), ] comp_data = [ [Paragraph("Complication", table_header), Paragraph("Cause / Note", table_header)], [Paragraph("AKI", table_cell), Paragraph("Haemolysis, myolysis, DIC, direct nephrotoxicity (most common in S. Asia)", table_cell)], [Paragraph("Respiratory failure", table_cell), Paragraph("Elapid neurotoxic paralysis — may need ventilation for weeks", table_cell)], [Paragraph("DIC", table_cell), Paragraph("Viperid procoagulant venoms consuming fibrinogen + platelets", table_cell)], [Paragraph("Gangrene / limb loss", table_cell), Paragraph("Local necrosis + infection + tight tourniquets applied as first aid", table_cell)], [Paragraph("Hypopituitarism", table_cell), Paragraph("Russell's viper — classic Sheehan-like pituitary infarction", table_cell)], ] comp_tbl = Table(comp_data, colWidths=[3.8*cm, 14.2*cm]) comp_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), colors.HexColor("#117A65")), ("ROWBACKGROUNDS",(0,1),(-1,-1), [LIGHT_GRN, WHITE]), ("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#A9DFBF")), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("TOPPADDING", (0,0),(-1,-1), 4), ("BOTTOMPADDING", (0,0),(-1,-1), 4), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) comp_items += [comp_tbl, spacer(0.25*cm)] who_items = [ section("7. WHO SYNDROMES — SE ASIAN SNAKEBITE", colors.HexColor("#784212")), spacer(), ] who_data = [ [Paragraph("Syndrome", table_header), Paragraph("Primary Effect", table_header), Paragraph("Additional Effects", table_header), Paragraph("Likely Snake", table_header)], [Paragraph("1", table_cell_c), Paragraph("Local effects", table_cell), Paragraph("Coagulopathy / bleeding", table_cell), Paragraph("Viper", table_cell)], [Paragraph("2", table_cell_c), Paragraph("Local effects", table_cell), Paragraph("Coagulopathy + shock or AKI", table_cell), Paragraph("Russell's viper", table_cell)], [Paragraph("3", table_cell_c), Paragraph("Local effects", table_cell), Paragraph("Neurotoxic paralysis", table_cell), Paragraph("Cobra / King cobra", table_cell)], [Paragraph("4", table_cell_c), Paragraph("Neurotoxic paralysis", table_cell), Paragraph("Minimal/no local effects; bitten while sleeping", table_cell), Paragraph("Krait", table_cell)], [Paragraph("5", table_cell_c), Paragraph("Local effects", table_cell), Paragraph("Myotoxicity + myoglobinuria + AKI", table_cell), Paragraph("Sea snake / Malayan pit viper", table_cell)], ] who_bg = colors.HexColor("#784212") who_tbl = Table(who_data, colWidths=[1.8*cm, 3.8*cm, 7.2*cm, 5.2*cm]) who_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), who_bg), ("ROWBACKGROUNDS",(0,1),(-1,-1), [colors.HexColor("#FEF9E7"), WHITE]), ("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#FAD7A0")), ("VALIGN", (0,0),(-1,-1), "MIDDLE"), ("TOPPADDING", (0,0),(-1,-1), 4), ("BOTTOMPADDING", (0,0),(-1,-1), 4), ("LEFTPADDING", (0,0),(-1,-1), 5), ])) who_items += [who_tbl, spacer(0.25*cm)] # put sections 6 & 7 as continuous flow for item in comp_items + who_items: story.append(item) # ── Footer note ────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=0.5, color=MID_GREY)) story.append(spacer(0.1*cm)) story.append(Paragraph( "<b>Sources:</b> Harrison's Principles of Internal Medicine 22e · Tintinalli's Emergency Medicine · " "Goldman-Cecil Medicine · Pye's Surgical Handicraft 22e · Park's Textbook of Preventive & Social Medicine | " "<b>Evidence:</b> Antimicrobial prophylaxis not routinely recommended (Moody et al., Wellcome Open Res 2025, PMID 41287797)", S("Foot", fontSize=6.8, textColor=MID_GREY, fontName="Helvetica", leading=9, alignment=TA_LEFT))) # ── Build ───────────────────────────────────────────────────────── doc.build(story) print("PDF created:", OUTPUT) EOF
Snakebite Quick Reference
PDF Document · PDF
Can u tell the snake bite approach in simple and short
| Snake | Extra Treatment |
|---|---|
| Viper | Fluids, antivenom, dialysis if needed |
| Cobra | Antivenom + neostigmine/atropine |
| Krait | Antivenom + ventilator (paralysis) |
| Sea snake | Antivenom + IV fluids |