I have requested for one pdf im not get at

Asking for Preferences

I have requested for icu emergency medicine list injections management with easy understanding wave PDF

Reading File
Reading File
Finding Sources
Finding Sources
Running Command

mkdir -p /home/daytona/workspace/icu-emergency-pdf && echo "Directory ready"

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Writing File

~/icu-emergency-pdf/generate_icu_pdf.py

#!/usr/bin/env python3
"""
ICU Emergency Medicine - Injection Management Guide
Easy-to-understand reference PDF with all major drug categories
"""

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, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus import Flowable

# ── Color Palette ─────────────────────────────────────────────────────────────
C_NAVY     = colors.HexColor("#0D1F4C")
C_BLUE     = colors.HexColor("#1565C0")
C_SKY      = colors.HexColor("#E3F2FD")
C_RED      = colors.HexColor("#C62828")
C_RED_LITE = colors.HexColor("#FFEBEE")
C_GREEN    = colors.HexColor("#2E7D32")
C_GRN_LITE = colors.HexColor("#E8F5E9")
C_ORANGE   = colors.HexColor("#E65100")
C_ORG_LITE = colors.HexColor("#FFF3E0")
C_PURPLE   = colors.HexColor("#6A1B9A")
C_PUR_LITE = colors.HexColor("#F3E5F5")
C_TEAL     = colors.HexColor("#00695C")
C_TEL_LITE = colors.HexColor("#E0F2F1")
C_GOLD     = colors.HexColor("#F57F17")
C_GLD_LITE = colors.HexColor("#FFFDE7")
C_GREY     = colors.HexColor("#37474F")
C_LGREY    = colors.HexColor("#ECEFF1")
C_WHITE    = colors.white

PAGE_W, PAGE_H = A4

# ── Styles ────────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

TITLE_STYLE = S("Title2",
    fontName="Helvetica-Bold", fontSize=26, textColor=C_WHITE,
    alignment=TA_CENTER, leading=32, spaceAfter=4)

SUBTITLE_STYLE = S("Subtitle2",
    fontName="Helvetica", fontSize=13, textColor=C_SKY,
    alignment=TA_CENTER, leading=18, spaceAfter=2)

SECTION_STYLE = S("Section",
    fontName="Helvetica-Bold", fontSize=13, textColor=C_WHITE,
    alignment=TA_LEFT, leading=18, spaceBefore=4, spaceAfter=2)

SUB_STYLE = S("Sub",
    fontName="Helvetica-Bold", fontSize=11, textColor=C_NAVY,
    leading=15, spaceBefore=6, spaceAfter=3)

BODY_STYLE = S("Body2",
    fontName="Helvetica", fontSize=9.5, textColor=C_GREY,
    leading=14, spaceAfter=2)

BOLD_STYLE = S("Bold2",
    fontName="Helvetica-Bold", fontSize=9.5, textColor=C_GREY,
    leading=14)

NOTE_STYLE = S("Note",
    fontName="Helvetica-Oblique", fontSize=8.5, textColor=C_ORANGE,
    leading=13)

TH_STYLE = S("TH",
    fontName="Helvetica-Bold", fontSize=8.5, textColor=C_WHITE,
    alignment=TA_CENTER, leading=12)

TD_STYLE = S("TD",
    fontName="Helvetica", fontSize=8.5, textColor=C_GREY,
    alignment=TA_CENTER, leading=12)

TD_L_STYLE = S("TDL",
    fontName="Helvetica", fontSize=8.5, textColor=C_GREY,
    alignment=TA_LEFT, leading=12)

TD_BOLD_STYLE = S("TDB",
    fontName="Helvetica-Bold", fontSize=8.5, textColor=C_NAVY,
    alignment=TA_LEFT, leading=12)

WARN_STYLE = S("Warn",
    fontName="Helvetica-Bold", fontSize=8.5, textColor=C_RED,
    leading=13)

# ── Helper: colored banner paragraph ─────────────────────────────────────────
def section_banner(text, bg=C_BLUE, icon=""):
    return Table(
        [[Paragraph(f"{icon}  {text}" if icon else text, SECTION_STYLE)]],
        colWidths=[PAGE_W - 4*cm],
        style=TableStyle([
            ("BACKGROUND", (0,0), (-1,-1), bg),
            ("LEFTPADDING", (0,0), (-1,-1), 12),
            ("RIGHTPADDING", (0,0), (-1,-1), 8),
            ("TOPPADDING", (0,0), (-1,-1), 6),
            ("BOTTOMPADDING", (0,0), (-1,-1), 6),
            ("ROUNDEDCORNERS", [4, 4, 4, 4]),
        ])
    )

def drug_table(headers, rows, hdr_color=C_BLUE, alt_color=C_SKY):
    """Build a styled drug table."""
    th_cells = [Paragraph(h, TH_STYLE) for h in headers]
    data = [th_cells]
    for i, row in enumerate(rows):
        cells = []
        for j, cell in enumerate(row):
            if j == 0:
                cells.append(Paragraph(str(cell), TD_BOLD_STYLE))
            else:
                cells.append(Paragraph(str(cell), TD_L_STYLE))
        data.append(cells)

    n_cols = len(headers)
    col_widths = _auto_widths(n_cols)

    ts = TableStyle([
        ("BACKGROUND", (0,0), (-1,0), hdr_color),
        ("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
        ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
        ("FONTSIZE", (0,0), (-1,0), 8.5),
        ("ALIGN", (0,0), (-1,0), "CENTER"),
        ("VALIGN", (0,0), (-1,-1), "TOP"),
        ("LEFTPADDING", (0,0), (-1,-1), 5),
        ("RIGHTPADDING", (0,0), (-1,-1), 5),
        ("TOPPADDING", (0,0), (-1,-1), 4),
        ("BOTTOMPADDING", (0,0), (-1,-1), 4),
        ("LINEBELOW", (0,0), (-1,0), 1.5, hdr_color),
        ("LINEBELOW", (0,1), (-1,-1), 0.3, colors.HexColor("#B0BEC5")),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [C_WHITE, alt_color]),
        ("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#90A4AE")),
    ])
    tbl = Table(data, colWidths=col_widths, repeatRows=1,
                style=ts, hAlign="LEFT")
    return tbl

def _auto_widths(n):
    total = PAGE_W - 4*cm
    if n == 2:
        return [4*cm, total-4*cm]
    if n == 3:
        return [4.5*cm, 5.5*cm, total-10*cm]
    if n == 4:
        return [4*cm, 4*cm, 4.5*cm, total-12.5*cm]
    if n == 5:
        return [3.5*cm, 3*cm, 3*cm, 3.5*cm, total-13*cm]
    if n == 6:
        return [3*cm, 2.5*cm, 2.5*cm, 2.5*cm, 2.5*cm, total-13*cm]
    return [total/n]*n

def note(text):
    return Paragraph(f"⚠ {text}", NOTE_STYLE)

def bullet(text):
    return Paragraph(f"β€’ {text}", BODY_STYLE)

# ── Cover page background ─────────────────────────────────────────────────────
class ColorRect(Flowable):
    def __init__(self, w, h, color):
        Flowable.__init__(self)
        self.w, self.h, self.color = w, h, color
    def draw(self):
        self.canv.setFillColor(self.color)
        self.canv.rect(0, 0, self.w, self.h, fill=1, stroke=0)

# ── Main build ────────────────────────────────────────────────────────────────
def build():
    OUT = "/home/daytona/workspace/icu-emergency-pdf/ICU_Emergency_Injection_Management.pdf"
    doc = SimpleDocTemplate(
        OUT, pagesize=A4,
        leftMargin=2*cm, rightMargin=2*cm,
        topMargin=2*cm, bottomMargin=2*cm,
        title="ICU Emergency – Injection Management Guide",
        author="Orris Medical Reference"
    )

    story = []

    # ════════════════════════════════════════════════════
    #  COVER
    # ════════════════════════════════════════════════════
    cover_tbl = Table(
        [[Paragraph("ICU EMERGENCY MEDICINE", TITLE_STYLE)],
         [Paragraph("Injection Management Guide", SUBTITLE_STYLE)],
         [Paragraph("Easy-to-Understand Drug Reference for ICU & Emergency", SUBTITLE_STYLE)],
         [Spacer(1, 6*mm)],
         [Paragraph("Vasopressors  β€’  Sedation  β€’  Analgesia  β€’  Antibiotics  β€’  Cardiac  β€’  Neurology  β€’  Antidotes", SUBTITLE_STYLE)],
         [Spacer(1, 4*mm)],
         [Paragraph("Reference: Tintinalli's Emergency Medicine | Harrison's 22E | Washington Manual 2024", S("ref",fontName="Helvetica-Oblique",fontSize=9,textColor=colors.HexColor("#90CAF9"),alignment=TA_CENTER))],
        ],
        colWidths=[PAGE_W - 4*cm],
        style=TableStyle([
            ("BACKGROUND", (0,0), (-1,-1), C_NAVY),
            ("TOPPADDING", (0,0), (-1,-1), 8),
            ("BOTTOMPADDING", (0,0), (-1,-1), 8),
            ("LEFTPADDING", (0,0), (-1,-1), 16),
            ("RIGHTPADDING", (0,0), (-1,-1), 16),
        ])
    )
    story.append(cover_tbl)
    story.append(Spacer(1, 5*mm))
    story.append(HRFlowable(width="100%", thickness=2, color=C_BLUE))
    story.append(Spacer(1, 3*mm))

    # ── Quick legend ──────────────────────────────────────────────────────────
    legend_data = [
        [Paragraph("COLOR LEGEND", S("lh", fontName="Helvetica-Bold", fontSize=9, textColor=C_NAVY)),"","","",""],
        [
            Paragraph("πŸ”΄ VASOPRESSORS\n(Shock/BP support)", S("lc",fontName="Helvetica",fontSize=8,textColor=C_RED,alignment=TA_CENTER,leading=11)),
            Paragraph("🟒 SEDATION /\nAnalgesia", S("lc",fontName="Helvetica",fontSize=8,textColor=C_GREEN,alignment=TA_CENTER,leading=11)),
            Paragraph("🟠 CARDIAC /\nAntiarrhythmics", S("lc",fontName="Helvetica",fontSize=8,textColor=C_ORANGE,alignment=TA_CENTER,leading=11)),
            Paragraph("🟣 NEURO /\nSeizure/Sedation", S("lc",fontName="Helvetica",fontSize=8,textColor=C_PURPLE,alignment=TA_CENTER,leading=11)),
            Paragraph("πŸ”΅ ANTIBIOTICS /\nOther", S("lc",fontName="Helvetica",fontSize=8,textColor=C_BLUE,alignment=TA_CENTER,leading=11)),
        ]
    ]
    legend = Table(legend_data, colWidths=[(PAGE_W-4*cm)/5]*5,
        style=TableStyle([
            ("SPAN", (0,0),(4,0)),
            ("BACKGROUND",(0,0),(-1,0), C_LGREY),
            ("BACKGROUND",(0,1),(0,1), C_RED_LITE),
            ("BACKGROUND",(1,1),(1,1), C_GRN_LITE),
            ("BACKGROUND",(2,1),(2,1), C_ORG_LITE),
            ("BACKGROUND",(3,1),(3,1), C_PUR_LITE),
            ("BACKGROUND",(4,1),(4,1), C_SKY),
            ("BOX",(0,0),(-1,-1),0.5,colors.HexColor("#90A4AE")),
            ("INNERGRID",(0,0),(-1,-1),0.3,colors.HexColor("#B0BEC5")),
            ("ALIGN",(0,0),(-1,-1),"CENTER"),
            ("TOPPADDING",(0,0),(-1,-1),4),
            ("BOTTOMPADDING",(0,0),(-1,-1),4),
        ]))
    story.append(legend)
    story.append(Spacer(1, 5*mm))

    # ════════════════════════════════════════════════════
    #  1. VASOPRESSORS & INOTROPES
    # ════════════════════════════════════════════════════
    story.append(section_banner("1.  VASOPRESSORS & INOTROPES", bg=C_RED))
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph("Used in shock states (septic, cardiogenic, distributive) to support blood pressure and perfusion.", BODY_STYLE))
    story.append(Spacer(1, 2*mm))

    vp_headers = ["Drug", "Dose (IV Infusion)", "Preparation", "Main Use", "Key Monitoring / Notes"]
    vp_rows = [
        ["Norepinephrine\n(1st line septic shock)",
         "0.01–3 mcg/kg/min\nStart: 0.05–0.1 mcg/kg/min",
         "4 mg in 250 mL NS\n= 16 mcg/mL",
         "Septic shock\nDistributive shock",
         "MAP target β‰₯65 mmHg\nCentral line preferred\nWatch: digital ischemia"],
        ["Dopamine",
         "Low: 2–5 mcg/kg/min\nMid: 5–10 mcg/kg/min\nHigh: >10 mcg/kg/min",
         "400 mg in 250 mL D5W\n= 1600 mcg/mL",
         "Cardiogenic shock\nRenal perfusion (low dose)",
         "More arrhythmias than NE\nNot first-line in sepsis\nWatch: tachycardia"],
        ["Epinephrine\n(Adrenaline)",
         "0.01–0.5 mcg/kg/min\nAnaphylaxis: 0.5 mg IM",
         "2 mg in 250 mL NS\n= 8 mcg/mL",
         "Anaphylaxis\nRefractory shock\nCardiac arrest",
         "Causes hyperglycemia\nMay increase lactate\nCPR: 1 mg IV q3–5 min"],
        ["Dobutamine",
         "2.5–20 mcg/kg/min",
         "500 mg in 250 mL D5W\n= 2000 mcg/mL",
         "Cardiogenic shock\nLow cardiac output",
         "Inotrope – does NOT\nincrease BP directly\nWatch: tachycardia, VT"],
        ["Vasopressin",
         "0.03–0.04 units/min\n(fixed – not titrated)",
         "20 units in 250 mL NS\n= 0.08 units/mL",
         "Adjunct in septic shock\n(add to NE)",
         "Spares catecholamines\nDo NOT exceed 0.04 u/min\nWatch: hyponatremia"],
        ["Phenylephrine",
         "0.5–6 mcg/kg/min",
         "20 mg in 250 mL NS\n= 80 mcg/mL",
         "Vasodilatory shock\nNo tachycardia needed",
         "Pure alpha agonist – no\ninotropy\nAvoid in low CO states"],
        ["Milrinone",
         "0.125–0.75 mcg/kg/min\n(no bolus in ICU)",
         "40 mg in 200 mL D5W\n= 200 mcg/mL",
         "Cardiogenic shock\nHF with low EF",
         "Renally cleared – adjust dose\nMay cause hypotension\nWatch: arrhythmias"],
    ]
    story.append(drug_table(vp_headers, vp_rows, hdr_color=C_RED, alt_color=C_RED_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("All vasopressors: Titrate every 5–15 min to MAP β‰₯65 mmHg. Use central IV when possible. Never stop abruptly."))
    story.append(Spacer(1, 4*mm))

    # ════════════════════════════════════════════════════
    #  2. SEDATION & ANALGESIA
    # ════════════════════════════════════════════════════
    story.append(section_banner("2.  SEDATION & ANALGESIA  (A1C Bundle)", bg=C_GREEN))
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph("Target: RASS –1 to –2 (light sedation). Analgesia first (analgosedation), then add sedative if needed.", BODY_STYLE))
    story.append(Spacer(1, 2*mm))

    sed_headers = ["Drug", "IV Bolus", "Infusion Dose", "Main Use", "Notes"]
    sed_rows = [
        ["Propofol\n(Diprivan)",
         "0.5–1 mg/kg (induction)\nβ€”avoid repeated boluses",
         "5–50 mcg/kg/min\n(0.3–3 mg/kg/h)",
         "Short-term ICU sedation\nVentilated patients",
         "Lipid emulsion – monitor TG\nPropofol infusion syndrome\n(>48h high dose)\nDo NOT use in egg/soy allergy"],
        ["Midazolam\n(Versed)",
         "1–5 mg IV push\n(titrate to effect)",
         "0.02–0.1 mg/kg/h",
         "Sedation, anxiolysis\nStatus epilepticus",
         "Accumulates in renal/\nhepatic failure\nReversible: Flumazenil\nAvoid long-term ICU use"],
        ["Dexmedetomidine\n(Precedex)",
         "Loading: 1 mcg/kg over\n10 min (often omitted)",
         "0.2–1.5 mcg/kg/h",
         "Cooperative sedation\nWeaning from ventilator",
         "Arousable – patient\ncan follow commands\nWatch: bradycardia, hypotension\nNo respiratory depression"],
        ["Ketamine",
         "0.5–2 mg/kg IV for\nprocedural sedation",
         "0.1–0.5 mg/kg/h\n(analgesia adjunct)",
         "Procedural sedation\nAsthma (bronchodilator)\nBurn dressing changes",
         "Maintains airway reflexes\nDissociative anesthetic\nWatch: emergence reaction\n(give midazolam 2 mg prior)"],
        ["Morphine",
         "2–4 mg IV q1–4h PRN",
         "1–10 mg/h",
         "Moderate-severe pain\nDyspnea in palliative",
         "Active metabolite\naccumulates in renal failure\nCauses histamine release\nWatch: respiratory depression"],
        ["Fentanyl",
         "25–100 mcg IV push\n(every 1–2h PRN)",
         "25–200 mcg/h",
         "Analgesia in ICU\n1st choice in renal failure",
         "No histamine release\nNo active metabolites\nChest wall rigidity at\nhigh bolus doses"],
        ["Hydromorphone\n(Dilaudid)",
         "0.2–0.4 mg IV q3–4h",
         "0.2–2 mg/h",
         "Severe pain – opioid\nalternative",
         "5–10x potency of morphine\nLess histamine vs morphine\nWatch: sedation, resp. depression"],
        ["Lorazepam\n(Ativan)",
         "1–4 mg IV push",
         "0.01–0.1 mg/kg/h",
         "Anxiety, alcohol\nwithdrawal, seizures",
         "Less active metabolites\nthan midazolam\nPropylene glycol toxicity\nat high infusion doses"],
    ]
    story.append(drug_table(sed_headers, sed_rows, hdr_color=C_GREEN, alt_color=C_GRN_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("RASS Scale: +4 = combative, 0 = alert/calm, –1/–2 = light sedation (TARGET), –3 = moderate, –4/–5 = deep/unarousable."))
    story.append(Spacer(1, 4*mm))

    # ════════════════════════════════════════════════════
    #  3. NEUROMUSCULAR BLOCKADE (NMB)
    # ════════════════════════════════════════════════════
    story.append(section_banner("3.  NEUROMUSCULAR BLOCKING AGENTS (NMBs)", bg=C_PURPLE))
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph("Use NMBs only when: ARDS with P/F <150, life-threatening agitation, intubation. ALWAYS sedate FIRST before NMB.", BODY_STYLE))
    story.append(Spacer(1, 2*mm))

    nmb_headers = ["Drug", "Intubation Dose", "Onset", "Duration", "Key Notes"]
    nmb_rows = [
        ["Succinylcholine\n(Suxamethonium)",
         "1.5 mg/kg IV\n(RSI – 1st choice)",
         "45–60 sec",
         "8–12 min",
         "Depolarizing NMB\nContraindicated: burns >48h,\ncrush injury, hyperkalemia,\nrhabdo, malignant hyperthermia"],
        ["Rocuronium",
         "1.2 mg/kg IV (RSI)\n0.6 mg/kg (routine)",
         "60–90 sec",
         "30–60 min",
         "Non-depolarizing\nReversal: Sugammadex 16 mg/kg\nSafe when succinylcholine\nis contraindicated"],
        ["Vecuronium",
         "0.1 mg/kg IV",
         "3–5 min",
         "25–40 min",
         "ICU infusion: 0.05–0.1 mg/kg/h\nRenal accumulation – use\nTOF (train-of-four) monitoring"],
        ["Atracurium /\nCisatracurium",
         "0.5 mg/kg IV\n(cis: 0.15–0.2 mg/kg)",
         "2–3 min",
         "25–35 min",
         "Safe in renal/hepatic failure\n(Hofmann elimination)\nDrug of choice in\norgan failure patients"],
        ["Sugammadex\n(Reversal agent)",
         "Reversal: 16 mg/kg\n(deep block)\n4 mg/kg (moderate)",
         "Within 3 min",
         "N/A – reversal",
         "Specifically reverses\nrocuronium/vecuronium\nDO NOT use for\nsuccinylcholine reversal"],
    ]
    story.append(drug_table(nmb_headers, nmb_rows, hdr_color=C_PURPLE, alt_color=C_PUR_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("Always use TOF (train-of-four) monitoring during NMB infusion. Target: 1–2 twitches out of 4. Ensure adequate sedation."))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════
    #  4. CARDIAC EMERGENCY DRUGS
    # ════════════════════════════════════════════════════
    story.append(section_banner("4.  CARDIAC EMERGENCY DRUGS", bg=C_ORANGE))
    story.append(Spacer(1, 2*mm))

    card_headers = ["Drug", "Indication", "IV Dose", "Preparation", "Key Notes"]
    card_rows = [
        ["Amiodarone",
         "VT / VF\nAtrial fib (rate ctrl)\nStable wide complex",
         "VF/pulseless VT: 300 mg IV push\nStable VT: 150 mg over 10 min\nMaint: 1 mg/min x 6h, then 0.5 mg/min",
         "150 mg/3 mL vial\nInfusion: 900 mg in 500 mL D5W",
         "Thyroid & pulmonary toxicity\nProlongs QT\nDo NOT mix with saline"],
        ["Adenosine",
         "SVT (AVNRT,\nAVRT) – drug of choice",
         "1st: 6 mg rapid IV push\n2nd: 12 mg rapid IV push\n3rd: 12 mg again",
         "Ready to use\n3 mg/mL",
         "Must flush fast (antecubital vein)\nHalf-life: 10 seconds\nMay cause transient asystole"],
        ["Atropine",
         "Symptomatic\nbradycardia",
         "0.5–1 mg IV q3–5 min\nMax: 3 mg total",
         "0.6 mg/mL ready to use",
         "AV block (type II/III) –\natropine less useful\nFollowed by pacing if no response"],
        ["Lidocaine",
         "Ventricular arrhythmia\nAlternative to amiodarone",
         "Bolus: 1–1.5 mg/kg IV\nRepeat: 0.5–0.75 mg/kg q5–10 min\nMaint: 1–4 mg/min",
         "1% (10 mg/mL) for bolus\n2 g in 500 mL D5W for infusion",
         "Max bolus: 3 mg/kg\nToxicity: seizures, bradycardia\nReduce dose in hepatic failure"],
        ["Magnesium Sulfate",
         "Torsades de Pointes\nHypomagnesemia",
         "TdP: 2 g IV over 1–2 min\nMaint: 1–2 g/h",
         "2 g/10 mL (200 mg/mL)\nDilute in 100 mL NS",
         "Also used: eclampsia (4–6 g load)\nMonitor: deep tendon reflexes,\nUO, serum Mg\nAntidote: Calcium gluconate"],
        ["Calcium Chloride\n(CaClβ‚‚)",
         "Hyperkalemia\nHypocalcemia\nCCB overdose",
         "1 g IV over 2–5 min\n(repeat if needed)",
         "10% solution = 100 mg/mL\n(1g per 10 mL)",
         "Central line preferred\n(vesicant)\nCauses cardiac stabilization\nNOT same as calcium gluconate"],
        ["Sodium Bicarbonate",
         "Severe metabolic\nacidosis, TCA overdose,\nhyperkalemia",
         "1 mEq/kg IV bolus\nSevere: 8.4% (1 mEq/mL)",
         "50 mEq/50 mL syringe\nOr 100 mEq in 1000 mL D5W",
         "Flush line between\nbicarbonate and calcium\nMonitor: Na, CO2, pH"],
        ["Digoxin",
         "Rate control in AF/AFL\nHF with preserved EF",
         "Load: 0.5 mg IV, then\n0.25 mg q6h x 2 doses\nMaint: 0.125–0.25 mg/day",
         "0.5 mg/2 mL vial",
         "Therapeutic level: 0.5–2 ng/mL\nNarrow therapeutic index\nToxicity: bradycardia, AV block\nAntidote: Digibind"],
    ]
    story.append(drug_table(card_headers, card_rows, hdr_color=C_ORANGE, alt_color=C_ORG_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("ACLS Cardiac Arrest: Epinephrine 1 mg IV q3–5 min. Amiodarone 300 mg IV for VF/pulseless VT (2nd dose 150 mg). CPR quality is #1 priority."))
    story.append(Spacer(1, 4*mm))

    # ════════════════════════════════════════════════════
    #  5. ANTIHYPERTENSIVE EMERGENCIES
    # ════════════════════════════════════════════════════
    story.append(section_banner("5.  HYPERTENSIVE EMERGENCY DRUGS", bg=C_TEAL))
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph("Goal: Reduce MAP by no more than 25% in first hour. Then gradually to 160/100 over next 2–6 hours.", BODY_STYLE))
    story.append(Spacer(1, 2*mm))

    htn_headers = ["Drug", "Dose", "Onset / Duration", "Best For", "Avoid In"]
    htn_rows = [
        ["Labetalol",
         "Bolus: 20 mg IV over 2 min\nRepeat 20–80 mg q10 min\nInfusion: 0.5–2 mg/min",
         "5–10 min / 3–6 h",
         "Most hypertensive emergencies\nAortic dissection (with nitroprusside)\nPregnancy (eclampsia)",
         "Acute HF, asthma,\nbradycardia, COPD"],
        ["Hydralazine",
         "10–20 mg IV q4–6h\n(or IM)",
         "10–20 min / 3–8 h",
         "Eclampsia, pregnancy\nhypertension",
         "Aortic dissection\n(reflex tachycardia)"],
        ["Nicardipine",
         "5–15 mg/h IV infusion\nTitrate 2.5 mg/h q5–15 min",
         "1–2 min / 3–6 h",
         "Post-op hypertension\nNeurological emergencies\nStroke, ICH",
         "Advanced aortic stenosis\nDecompensated HF"],
        ["Sodium Nitroprusside",
         "0.3–10 mcg/kg/min\n(titrate carefully)",
         "Seconds / 1–2 min",
         "Hypertensive crisis\nAortic dissection (+ beta-blocker)\nAcute HF with HTN",
         "Pregnancy, renal failure\n(cyanide toxicity risk)\nHigh ICP"],
        ["Nitroglycerin\n(GTN)",
         "Infusion: 5–200 mcg/min\nSublingual: 0.3–0.6 mg",
         "1–2 min / 3–5 min",
         "Hypertension + ACS\nAcute pulmonary edema\nAngina",
         "Hypotension\nPhosphodiesterase inhibitor\nuse (sildenafil etc.)\nSevere aortic stenosis"],
        ["Esmolol",
         "Load: 500 mcg/kg over 1 min\nMaint: 50–200 mcg/kg/min",
         "60 sec / 10–20 min",
         "Aortic dissection\nPerioperative tachycardia\nThyroid storm",
         "Bradycardia, HF,\nasthma, 2nd/3rd degree\nAV block"],
    ]
    story.append(drug_table(htn_headers, htn_rows, hdr_color=C_TEAL, alt_color=C_TEL_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("Aortic Dissection: Use labetalol OR esmolol + nitroprusside. Heart rate target <60 bpm, SBP <120 mmHg."))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════
    #  6. NEUROLOGICAL EMERGENCIES
    # ════════════════════════════════════════════════════
    story.append(section_banner("6.  NEUROLOGICAL EMERGENCIES", bg=C_PURPLE))
    story.append(Spacer(1, 2*mm))

    neuro_headers = ["Drug", "Indication", "IV Dose", "Notes"]
    neuro_rows = [
        ["Lorazepam\n(1st line seizure)",
         "Status Epilepticus\n(1st line)",
         "0.1 mg/kg IV (max 4 mg)\nRepeat once after 5–10 min",
         "Onset 2–3 min\nMost effective 1st-line\nWatch: respiratory depression"],
        ["Diazepam",
         "Status Epilepticus\n(if lorazepam unavailable)",
         "0.15 mg/kg IV (max 10 mg)\nRectal: 0.5 mg/kg",
         "Rapid onset – short duration\nActive metabolites\nHigh lipid solubility"],
        ["Phenytoin\n/ Fosphenytoin",
         "Status Epilepticus\n(2nd line)",
         "20 mg PE/kg IV at\n≀150 mg/min (fosphenytoin)\n≀50 mg/min (phenytoin)",
         "Monitor ECG during infusion\n(hypotension, bradycardia)\nFosphenytoin safer IV"],
        ["Levetiracetam\n(Keppra)",
         "Status Epilepticus\n(2nd line – preferred)",
         "60 mg/kg IV over 10 min\n(max 4500 mg)",
         "Minimal drug interactions\nNo cardiac toxicity\nAdjust in renal failure"],
        ["Valproate\n(Depacon)",
         "Status Epilepticus\n(2nd line)",
         "40 mg/kg IV at 3–6 mg/kg/min\n(max 3000 mg)",
         "Avoid in liver disease,\nmitochondrial disorders\nAlso for bipolar/migraine"],
        ["Mannitol",
         "Raised ICP\nCerebral herniation",
         "0.25–1 g/kg IV over\n15–30 min",
         "Osmolarity target ≀320 mOsm/L\nInsert Foley catheter first\nMonitor serum sodium + osmolality"],
        ["Hypertonic Saline\n(3% NaCl)",
         "Raised ICP\nSymptomatic hyponatremia",
         "ICP: 150–250 mL bolus\nHypoNa: 1–2 mL/kg/h",
         "Na correction ≀10 mEq/24h\n(osmotic demyelination risk)\nCentral line preferred\nMonitor Na every 2–4h"],
        ["Thiamine (B1)",
         "Wernicke's encephalopathy\nAlcohol-related ICU admission",
         "500 mg IV TID x 3 days\nThen 250 mg IV/IM daily",
         "ALWAYS give before dextrose\nin malnourished/alcohol patients\nSafe – no major side effects"],
        ["Dexamethasone",
         "Brain tumor edema\nBacterial meningitis",
         "Tumor: 10 mg IV then\n4 mg q6h\nMeningitis: 0.15 mg/kg q6h x 4 days",
         "Start with first antibiotic dose\nin meningitis\nMonitor blood glucose"],
    ]
    story.append(drug_table(neuro_headers, neuro_rows, hdr_color=C_PURPLE, alt_color=C_PUR_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("Status Epilepticus Protocol: Benzos (0–5 min) β†’ Phenytoin/Levetiracetam (5–20 min) β†’ Anesthetic agents (propofol/midazolam/phenobarbital) if refractory."))
    story.append(Spacer(1, 4*mm))

    # ════════════════════════════════════════════════════
    #  7. ANTICOAGULATION & REVERSAL
    # ════════════════════════════════════════════════════
    story.append(section_banner("7.  ANTICOAGULATION & REVERSAL AGENTS", bg=C_NAVY))
    story.append(Spacer(1, 2*mm))

    ac_headers = ["Drug", "Indication", "IV Dose", "Monitoring", "Reversal / Antidote"]
    ac_rows = [
        ["Heparin\n(Unfractionated)",
         "DVT/PE treatment\nACS, AF\nBridge therapy",
         "DVT/PE: 80 units/kg bolus\nthen 18 units/kg/h\nACS: 60 units/kg bolus\nthen 12 units/kg/h",
         "aPTT every 6h\nTarget: 60–100 sec\n(or heparin level 0.3–0.7)",
         "Protamine sulfate\n1 mg per 100 units heparin\nMax 50 mg IV"],
        ["Enoxaparin\n(LMWH – Lovenox)",
         "DVT/PE treatment\nACS prophylaxis",
         "Treatment: 1 mg/kg SC q12h\nor 1.5 mg/kg SC daily\nProphylaxis: 40 mg SC daily",
         "Anti-Xa level in\nrenal failure/obesity\nNo routine aPTT monitoring",
         "Protamine (partial)\n1 mg per 1 mg enoxaparin\n(≀8h from last dose)"],
        ["Alteplase\n(tPA – Thrombolysis)",
         "Massive PE\nIschemic stroke\nSTEMI (if no PCI)",
         "PE: 100 mg over 2h\nStroke: 0.9 mg/kg\n(max 90 mg, 10% bolus)\nSTEMI: 15 mg bolus",
         "Hold heparin during\ninfusion\nMonitor neuro status\nBP <180/105 during infusion",
         "No specific reversal\nCryoprecipitate for\nbleeding\nAvoid anticoagulants\nfor β‰₯24h after stroke tPA"],
        ["Argatroban",
         "HIT\n(Heparin-Induced\nThrombocytopenia)",
         "2 mcg/kg/min infusion\n(no bolus)\nReduce to 0.5 mcg/kg/min\nin liver failure",
         "aPTT target 1.5–3x\nbaseline (45–100 sec)\nCheck aPTT every 2h until\nstable",
         "No specific antidote\nShort half-life (45 min)\nStop infusion for bleeding"],
        ["Warfarin\n(Coumadin)",
         "AF, VTE, mechanical\nvalve, hypercoagulable\nstate – oral anticoag",
         "Load: 5–10 mg PO/IV\nMaint: 2–10 mg/day\n(INR-guided)",
         "INR target 2–3\n(mechanical valve: 2.5–3.5)\nCheck INR daily initially",
         "Minor: skip dose\nModerate: Vitamin K 2–5 mg PO\nMajor: 4-Factor PCC\n(Kcentra) + Vit K 10 mg IV\nEmergency: FFP + Vit K"],
        ["4-Factor PCC\n(Kcentra)",
         "Warfarin reversal\nMajor bleeding / surgery",
         "INR 2–4: 25 units/kg\nINR 4–6: 35 units/kg\nINR >6: 50 units/kg\n(max 5000 units)",
         "Repeat INR 30 min\nafter infusion\nMax infusion: 8 mL/min",
         "Thrombosis risk (use\nwith caution in recent\nstroke/DVT)\nAlways give with\nVitamin K"],
    ]
    story.append(drug_table(ac_headers, ac_rows, hdr_color=C_NAVY, alt_color=C_SKY))
    story.append(Spacer(1, 2*mm))
    story.append(note("HIT Protocol: Stop ALL heparin immediately (including flushes). Start argatroban or bivalirudin. Platelets should NOT be given (paradoxical thrombosis risk)."))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════
    #  8. COMMON ICU ANTIBIOTICS (IV)
    # ════════════════════════════════════════════════════
    story.append(section_banner("8.  COMMON ICU ANTIBIOTICS (IV)", bg=C_BLUE))
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph("Empiric antibiotics should be given within 1 hour in septic shock. Always obtain cultures BEFORE antibiotics.", BODY_STYLE))
    story.append(Spacer(1, 2*mm))

    abx_headers = ["Drug", "Class", "Usual IV Dose", "Coverage", "Key Notes"]
    abx_rows = [
        ["Piperacillin-\nTazobactam\n(Pip-Tazo / Zosyn)",
         "Beta-lactam /\nBeta-lactamase\ninhibitor",
         "4.5 g IV q6h (extended infusion\n3–4h preferred in ICU)",
         "Broad: GN, GP, anaerobes\nPseudomonas\nNo MRSA",
         "Extended infusion improves PK\nAdjust in renal failure\nMonitor: electrolytes (Na load)"],
        ["Meropenem",
         "Carbapenem",
         "1–2 g IV q8h\n(extended infusion option:\n3h infusion)",
         "Ultra-broad: ESBL, KPC\nPseudomonas, anaerobes\nNo MRSA",
         "Reserve for MDR organisms\n+Vancomycin for MRSA\nAdjust in renal failure"],
        ["Vancomycin",
         "Glycopeptide",
         "AUC-guided dosing preferred\nTraditional: 15–20 mg/kg q8–12h\nMax single dose: 3000 mg",
         "MRSA, MSSA\nGram-positive coverage\nC. diff (oral only)",
         "AUC/MIC target: 400–600\nNephrotoxicity – monitor renal Fx\nRed Man Syndrome:\ninfuse over β‰₯60 min\nSlow infusion for each dose"],
        ["Cefazolin",
         "1st gen Cephalosporin",
         "1–2 g IV q8h\n(surgical prophylaxis: 2g x1)",
         "MSSA, streptococci\nSome GN (E. coli, Klebsiella)\nNO Pseudomonas, MRSA",
         "Drug of choice: MSSA bacteremia\nGood skin/soft tissue coverage\nSafe in most patients"],
        ["Ceftriaxone",
         "3rd gen Cephalosporin",
         "1–2 g IV daily\n(meningitis: 2g q12h)",
         "Broad GN, streptococci\nMeningitis (CNS penetration)\nNO Pseudomonas",
         "Once daily dosing\nNo dose adjustment\nfor renal failure\nBiliary sludge with prolonged use"],
        ["Ciprofloxacin",
         "Fluoroquinolone",
         "400 mg IV q8–12h",
         "GN including Pseudomonas\nAtypicals\nGI pathogens",
         "Prolongs QTc\nAchilles tendon rupture risk\nDrug of choice: anthrax\nAvoid in children/pregnancy"],
        ["Metronidazole\n(Flagyl)",
         "Nitroimidazole",
         "500 mg IV q8h\n(C. diff: 500 mg PO q8h preferred)",
         "Anaerobes\nC. diff (mild-moderate)\nProtozoa",
         "Good CNS penetration\nAvoid alcohol (disulfiram-like)\nPerioperative prophylaxis\nCombine with cephalosporin"],
        ["Linezolid\n(Zyvox)",
         "Oxazolidinone",
         "600 mg IV q12h",
         "MRSA, VRE\nGram-positive (resistant)\nGood lung penetration",
         "MAO inhibitor – serotonin\nsyndrome risk\nMonitor CBC (thrombocytopenia)\nLimit to 28 days"],
        ["Amphotericin B\n(AmBisome – liposomal)",
         "Antifungal\n(Polyene)",
         "3–5 mg/kg IV daily\n(liposomal formulation)",
         "Aspergillus, Candida\nCryptococcus, Mucor\nBroad-spectrum antifungal",
         "Liposomal has less nephrotoxicity\nPremedicate: hydration,\nhydrocortisone, diphenhydramine\nMonitor K, Mg, renal function daily"],
        ["Micafungin\n(Mycamine)",
         "Antifungal\n(Echinocandin)",
         "100–150 mg IV daily",
         "Candida spp.\n(1st line in ICU candidiasis)\nAspergillus (limited)",
         "Fewer drug interactions\nthan azoles\nMinimal renal/hepatic toxicity\nNO activity vs. Cryptococcus"],
    ]
    story.append(drug_table(abx_headers, abx_rows, hdr_color=C_BLUE, alt_color=C_SKY))
    story.append(Spacer(1, 2*mm))
    story.append(note("Sepsis Empiric: Pip-Tazo OR Meropenem (if MDR risk) + Vancomycin (if MRSA risk). Add antifungal if immunocompromised/prolonged antibiotics/TPN/central lines."))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════
    #  9. ELECTROLYTE REPLACEMENT (IV)
    # ════════════════════════════════════════════════════
    story.append(section_banner("9.  ELECTROLYTE REPLACEMENT PROTOCOLS (IV)", bg=C_TEAL))
    story.append(Spacer(1, 2*mm))

    elec_headers = ["Electrolyte", "Deficit Level", "IV Replacement Dose", "Rate / Route", "Monitor"]
    elec_rows = [
        ["Potassium (K⁺)\nNormal: 3.5–5.0 mEq/L",
         "Mild: 3.0–3.5\nModerate: 2.5–3.0\nSevere: <2.5",
         "Mild: 40 mEq PO\nModerate: 40 mEq IV x 2\nSevere: 40 mEq IV q1h\n(max 400 mEq/day)",
         "Max peripheral:\n10 mEq/h (40 mEq/100 mL)\nCentral line:\n20–40 mEq/h\n(with cardiac monitoring)",
         "Repeat K level after\neach 40 mEq\nECG monitoring if K <3.0\nor with cardiac symptoms"],
        ["Magnesium (Mg²⁺)\nNormal: 1.7–2.2 mg/dL",
         "Mild: 1.2–1.7\nModerate: 0.9–1.2\nSevere: <0.9\nTdP: any level",
         "Mild: 2 g MgSOβ‚„ IV over 2h\nModerate: 4 g over 4h\nSevere/TdP: 2 g IV push\n(over 1–2 min)",
         "Infusion rate:\n1–2 g/h standard\n(faster only in TdP)",
         "DTRs (absent = toxicity)\nSerum Mg 2–4h post-infusion\nUrine output β‰₯30 mL/h\nAntidote: Ca gluconate 1 g IV"],
        ["Phosphate (PO₄³⁻)\nNormal: 2.5–4.5 mg/dL",
         "Mild: 2.0–2.5\nModerate: 1.0–2.0\nSevere: <1.0",
         "Mild/Mod: 0.16 mmol/kg IV\nSevere: 0.32 mmol/kg IV\n(sodium or potassium phosphate)",
         "Over 4–6 hours\nAvoid faster infusion\n(hypocalcemia, hypotension)",
         "Repeat level 4–6h after\nMonitor Ca²⁺ (may drop)\nMonitor K (KPhos adds K)\nRenal function"],
        ["Calcium (Ca²⁺)\nNormal: 8.5–10.5 mg/dL\niCa: 1.12–1.30 mmol/L",
         "iCa <0.9 = significant\niCa <0.7 = severe\nSymptomatic: any level",
         "Calcium gluconate: 1–2 g IV\n(over 10–20 min)\nCalcium chloride: 1 g IV\n(over 2–5 min – central only)\nSevere/cardiac arrest:\n1g CaCl2 IV push",
         "Peripheral OK:\ncalcium gluconate\nCentral required:\ncalcium chloride\n(CaCl2 is vesicant)",
         "Ionized calcium levels\n(not total Ca²⁺ in ICU)\nECG (QT prolongation)\nSeizures, tetany, Trousseau's\nrecheck q4–6h"],
        ["Sodium (Na⁺)\nNormal: 135–145 mEq/L",
         "HypoNa <130 symptomatic:\n3% NaCl\nHyperNa: free water deficit",
         "HypoNa (symptomatic):\n3% NaCl 150 mL bolus\nthen 0.5–1 mL/kg/h\nHyperNa: free water\n(D5W or 0.45% NaCl)",
         "Correction rate:\n≀10 mEq/L per 24h\n(osmotic demyelination risk\nif corrected too fast!)\nEmergency: up to 1–2 mEq/h",
         "Na every 2–4h\ninitially\nNeuro checks\nUrine Na + osmolality\nFluid balance"],
    ]
    story.append(drug_table(elec_headers, elec_rows, hdr_color=C_TEAL, alt_color=C_TEL_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("ICU Electrolyte Rule: Replace K+ and Mg2+ together – hypomagnesemia causes refractory hypokalemia. Also correct phosphate in mechanically ventilated patients."))
    story.append(Spacer(1, 4*mm))

    # ════════════════════════════════════════════════════
    #  10. ANTIDOTES & REVERSAL AGENTS
    # ════════════════════════════════════════════════════
    story.append(section_banner("10.  ANTIDOTES & EMERGENCY REVERSAL AGENTS", bg=C_RED))
    story.append(Spacer(1, 2*mm))

    ant_headers = ["Toxin / Overdose", "Antidote / Reversal", "Dose", "Notes"]
    ant_rows = [
        ["Opioid overdose\n(Morphine, Fentanyl, Heroin)",
         "Naloxone\n(Narcan)",
         "0.4–2 mg IV/IM/IN q2–3 min\nInfusion: 2/3 of reversal dose\nper hour (repeat dosing)",
         "Duration 30–90 min (shorter than most opioids)\nMay need repeat dosing or infusion\nAvoid precipitating withdrawal"],
        ["Benzodiazepine\noverdose",
         "Flumazenil\n(Romazicon)",
         "0.2 mg IV over 30 sec\nRepeat 0.2 mg q1 min\nMax 1 mg",
         "Risk of seizures in chronic BZD users\nShort-acting (30–60 min)\nRarely used – resedation risk\nNOT recommended in mixed OD"],
        ["Heparin overdose",
         "Protamine Sulfate",
         "1 mg per 100 units heparin\nMax 50 mg IV over 10 min",
         "Can cause anaphylaxis\n(especially in fish allergy, prior vasectomy)\nPartially reverses LMWH (60–75%)"],
        ["Warfarin / VKA\noverdose / major bleed",
         "4-Factor PCC\n+ Vitamin K",
         "PCC: 25–50 units/kg\n(weight + INR based)\nVit K: 10 mg IV slow infusion",
         "PCC works within 15–30 min\nVitamin K takes 12–24h\nGive BOTH for immediate reversal\nRepeat INR 30 min post-PCC"],
        ["Dabigatran\n(Pradaxa) overdose",
         "Idarucizumab\n(Praxbind)",
         "5 g IV (2 x 2.5 g vials)\nas bolus or infusion",
         "Specific reversal agent\nComplete reversal within minutes\nNo dose adjustment needed\nVery safe profile"],
        ["Factor Xa inhibitors\n(Rivaroxaban, Apixaban)",
         "Andexanet alfa\n(Andexxa)",
         "Low dose: 400 mg bolus\nthen 480 mg over 2h\nHigh dose: 800 mg bolus\nthen 960 mg over 2h",
         "FDA approved\nExpensive – check formulary\nAlternative: 4-factor PCC\n50 units/kg (off-label)"],
        ["Acetaminophen\n(Paracetamol) OD",
         "N-Acetylcysteine\n(NAC)",
         "150 mg/kg IV over 1h (loading)\nthen 50 mg/kg over 4h\nthen 100 mg/kg over 16h",
         "Most effective if given within 8–10h\nStill give if >10h (some benefit)\nMonitor LFTs, INR\nAnakit bag protocol available"],
        ["Organophosphate /\nNerve agent poisoning",
         "Atropine +\nPralidoxime (2-PAM)",
         "Atropine: 2–4 mg IV q5 min\n(until secretions dry)\nPralidoxime: 1–2 g IV over\n15–30 min, then infusion",
         "Atropine – NO upper dose limit\nPralidoxime ineffective after\n24–48h (aging of enzyme)\nSupport airway, suction secretions"],
        ["Tricyclic\nAntidepressant (TCA)\noverdose",
         "Sodium Bicarbonate",
         "1–2 mEq/kg IV bolus\nRepeat for QRS >120 ms or\narrowing ventricular arrhythmia\nTarget pH 7.45–7.55",
         "Alkalinization reverses Na channel\nblockade\nDo NOT use physostigmine\nBenzodiazepines for seizures\nAvoid QT-prolonging drugs"],
        ["Digoxin toxicity",
         "Digoxin-specific\nantibody (Digibind/\nDigiFab)",
         "Chronic: 3–6 vials\nAcute massive OD:\n# vials = amount ingested (mg) / 0.5\nor level (ng/mL) x weight (kg) / 100",
         "1 vial = 40 mg antibody\nDo NOT use if hyperkalemia\nfrom digoxin toxicity – treat\nhyperkalemia separately\nWatch: K may drop post-reversal"],
        ["Calcium channel\nblocker / Beta-blocker\noverdose",
         "High-Dose Insulin\n(HDI) + Calcium +\nGlucagon (BB)",
         "Insulin: 1 unit/kg bolus + 1 unit/kg/h\nDextrose infusion to maintain glucose\nCalcium chloride: 1 g q15 min x3\nGlucagon (BB): 3–10 mg IV bolus",
         "HDI is first-line for\nboth CCB and BB OD in ICU\nLipid emulsion therapy\n(intralipid) for refractory CCB OD\nConsider VA-ECMO for severe cardiogenic shock"],
        ["Heparin / Warfarin:\nAll bleeding",
         "Tranexamic Acid\n(TXA)",
         "1 g IV over 10 min\n(within 3h of injury/bleeding)\nRepeat 1 g over 8h",
         "Antifibrinolytic\nMATTERS/CRASH-2 evidence\nTrauma: give within 3h\nDo NOT use in urologic bleeding\nor DIC with fibrinolysis"],
    ]
    story.append(drug_table(ant_headers, ant_rows, hdr_color=C_RED, alt_color=C_RED_LITE))
    story.append(Spacer(1, 2*mm))
    story.append(note("Poison Control (USA): 1-800-222-1222 | Always check Poison Control for unusual overdoses. Consider Lipid Emulsion Therapy (intralipid 20%) for refractory local anesthetic or drug toxicity."))
    story.append(PageBreak())

    # ════════════════════════════════════════════════════
    #  11. RAPID SEQUENCE INTUBATION (RSI) DRUGS
    # ════════════════════════════════════════════════════
    story.append(section_banner("11.  RAPID SEQUENCE INTUBATION (RSI) DRUGS", bg=C_GREY))
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph("RSI Steps: Preparation β†’ Pre-oxygenation (3–5 min, 100% Oβ‚‚) β†’ Pre-treatment (optional) β†’ Paralytic + Induction β†’ Intubation β†’ Post-intubation care", BODY_STYLE))
    story.append(Spacer(1, 2*mm))

    rsi_headers = ["Drug / Step", "Dose", "Timing", "Purpose / Notes"]
    rsi_rows = [
        ["STEP 1: Pre-treatment\nFentanyl (optional)",
         "3 mcg/kg IV",
         "3 min before intubation",
         "Blunts sympathetic response\nUseful in ICP, cardiovascular disease\nOmit if hemodynamically unstable"],
        ["STEP 1: Pre-treatment\nLidocaine (optional)",
         "1.5 mg/kg IV",
         "3 min before intubation",
         "Blunts ICP rise (theoretical benefit)\nMore commonly omitted in modern RSI"],
        ["STEP 2: Induction\nEtomidate",
         "0.3 mg/kg IV",
         "0 min (simultaneous\nwith paralytic)",
         "Hemodynamically stable\nDrug of choice in shock\nCaution: single dose adrenal\nsuppression – controversial in sepsis"],
        ["STEP 2: Induction\nKetamine",
         "1.5–2 mg/kg IV",
         "0 min",
         "Excellent in bronchospasm, asthma\nMaintains hemodynamics\nAvoid in elevated ICP (controversial)\nDrug of choice: hypotensive patients"],
        ["STEP 2: Induction\nPropofol",
         "1.5–2 mg/kg IV\n(reduce in elderly/sick)",
         "0 min",
         "Rapid onset, good amnesia\nCauses hypotension – use cautiously\nDrug of choice: elective/stable patients"],
        ["STEP 3: Paralytic\nSuccinylcholine",
         "1.5 mg/kg IV",
         "0 min (with induction)",
         "Fastest RSI agent (45–60 sec)\nContraindicated: K+ >5.5,\nburns >48h, crush injury,\ndenervation, malignant hyperthermia"],
        ["STEP 3: Paralytic\nRocuronium",
         "1.2 mg/kg IV",
         "0 min (with induction)",
         "RSI-dose rocuronium = succinylcholine\nonset time\nReversible with sugammadex 16 mg/kg\nDrug of choice when succinylcholine CI"],
        ["POST-INTUBATION:\nSedation",
         "Propofol 5–50 mcg/kg/min\nOR Midazolam 0.02–0.1 mg/kg/h\n+ Fentanyl 25–200 mcg/h",
         "Immediately after\nconfirming tube position",
         "RASS target –1 to –2\nAnalgesia first, then sedation\nAvoid prolonged NMB post-intubation"],
    ]
    story.append(drug_table(rsi_headers, rsi_rows, hdr_color=C_GREY, alt_color=C_LGREY))
    story.append(Spacer(1, 2*mm))
    story.append(note("SALAD Mnemonic for RSI: Suction | Airway assessment | Laryngoscope | Alternative devices | Drugs ready. Confirm tube placement: EtCO2 + CXR."))
    story.append(Spacer(1, 4*mm))

    # ════════════════════════════════════════════════════
    #  12. QUICK REFERENCE CARD
    # ════════════════════════════════════════════════════
    story.append(section_banner("12.  QUICK REFERENCE CARD – EMERGENCY DOSES", bg=C_GOLD))
    story.append(Spacer(1, 2*mm))

    qr_headers = ["Emergency Situation", "Drug", "Quick Dose"]
    qr_rows = [
        ["Anaphylaxis", "Epinephrine", "0.5 mg IM (anterolateral thigh) – repeat q5 min"],
        ["Cardiac Arrest (VF/VT)", "Epinephrine + Amiodarone", "Epi: 1 mg IV q3–5 min | Amio: 300 mg IV push"],
        ["Opioid Overdose", "Naloxone", "0.4–2 mg IV/IM/IN – repeat q2–3 min"],
        ["Hypoglycemia", "Dextrose 50% (D50)", "50 mL (25 g) IV push – repeat if needed"],
        ["Hyperkalemia (cardiac)", "Calcium Gluconate", "1 g IV over 2–5 min (cardiac stabilization)"],
        ["Status Epilepticus", "Lorazepam β†’ Levetiracetam", "Lorazepam 0.1 mg/kg IV β†’ Keppra 60 mg/kg IV"],
        ["SVT (stable)", "Adenosine", "6 mg rapid IV push β†’ 12 mg β†’ 12 mg"],
        ["Hypertensive Emergency", "Labetalol", "20 mg IV over 2 min, repeat 20–80 mg q10 min"],
        ["Torsades de Pointes", "Magnesium Sulfate", "2 g IV over 1–2 min"],
        ["Warfarin Reversal (urgent)", "4-Factor PCC + Vit K", "PCC: 25–50 units/kg | Vit K: 10 mg IV"],
        ["Acetaminophen OD", "N-Acetylcysteine", "150 mg/kg IV over 1h (Rumack nomogram)"],
        ["Organophosphate OD", "Atropine (titrate)", "2–4 mg IV q5 min until secretions dry"],
        ["Digoxin Toxicity", "Digibind/DigiFab", "3–6 vials IV (chronic OD)"],
        ["DIC / Major Hemorrhage", "FFP + Cryoprecipitate + Platelets", "FFP: 10–15 mL/kg | Cryo: 10 units | Plt: 1 pool"],
        ["Thyroid Storm", "Propylthiouracil + Propranolol + Hydrocortisone", "PTU 600 mg PO β†’ 200 mg q4h | Hydrocort 100 mg IV q8h"],
    ]
    story.append(drug_table(qr_headers, qr_rows, hdr_color=C_GOLD, alt_color=C_GLD_LITE))
    story.append(Spacer(1, 3*mm))

    # ════════════════════════════════════════════════════
    #  FOOTER
    # ════════════════════════════════════════════════════
    story.append(HRFlowable(width="100%", thickness=1.5, color=C_NAVY))
    story.append(Spacer(1, 3*mm))
    footer_tbl = Table(
        [[Paragraph("⚠ DISCLAIMER", S("dh", fontName="Helvetica-Bold", fontSize=9, textColor=C_RED)),
          Paragraph("This document is a clinical reference aide only. Always verify doses with current institutional protocols, pharmacy, and approved prescribing information. Drug doses may vary by patient weight, renal/hepatic function, and clinical context. This is NOT a substitute for clinical judgment.", S("db", fontName="Helvetica", fontSize=8, textColor=C_GREY, leading=11))]],
        colWidths=[2.5*cm, PAGE_W - 4*cm - 2.5*cm],
        style=TableStyle([
            ("BACKGROUND", (0,0), (-1,-1), C_GLD_LITE),
            ("BOX", (0,0), (-1,-1), 0.5, C_GOLD),
            ("VALIGN", (0,0), (-1,-1), "TOP"),
            ("TOPPADDING", (0,0), (-1,-1), 6),
            ("BOTTOMPADDING", (0,0), (-1,-1), 6),
            ("LEFTPADDING", (0,0), (-1,-1), 8),
            ("RIGHTPADDING", (0,0), (-1,-1), 8),
        ])
    )
    story.append(footer_tbl)
    story.append(Spacer(1, 2*mm))
    story.append(Paragraph(
        "Reference Sources: Tintinalli's Emergency Medicine 9e | Harrison's Principles 22E | Washington Manual of Medical Therapeutics 2024 | Rosen's Emergency Medicine | Morgan & Mikhail's Clinical Anesthesiology 7e | ACLS/ATLS Guidelines",
        S("ref2", fontName="Helvetica-Oblique", fontSize=7.5, textColor=colors.HexColor("#607D8B"), alignment=TA_CENTER)
    ))

    doc.build(story)
    print(f"PDF generated: {OUT}")
    return OUT

if __name__ == "__main__":
    build()
Running Command

cd /home/daytona/workspace/icu-emergency-pdf && python3 generate_icu_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/icu-emergency-pdf/ICU_Emergency_Injection_Managem…

Your PDF is ready! Download it here:

ICU Emergency Injection Management

PDF Document Β· PDF


What's Inside the PDF

The guide is organized into 12 easy-to-read color-coded sections with detailed drug tables:
#SectionColor
1Vasopressors & Inotropes - Norepinephrine, Dopamine, Epinephrine, Dobutamine, VasopressinπŸ”΄ Red
2Sedation & Analgesia - Propofol, Midazolam, Dexmedetomidine, Ketamine, Fentanyl, Morphine🟒 Green
3Neuromuscular Blockade - Succinylcholine, Rocuronium, Vecuronium, Cisatracurium, Sugammadex🟣 Purple
4Cardiac Emergency Drugs - Amiodarone, Adenosine, Atropine, Lidocaine, Magnesium, Digoxin🟠 Orange
5Hypertensive Emergencies - Labetalol, Nicardipine, Nitroprusside, Nitroglycerin, Esmolol🩡 Teal
6Neurological Emergencies - Lorazepam, Phenytoin, Levetiracetam, Mannitol, Hypertonic Saline🟣 Purple
7Anticoagulation & Reversal - Heparin, LMWH, tPA, Warfarin, PCC, ArgatrobanπŸ”΅ Navy
8ICU Antibiotics - Pip-Tazo, Meropenem, Vancomycin, Ceftriaxone, Linezolid, AntifungalsπŸ”΅ Blue
9Electrolyte Replacement - K⁺, Mg²⁺, POβ‚„, Ca²⁺, Na⁺ protocols with rates🩡 Teal
10Antidotes & Reversals - Naloxone, NAC, Protamine, Digibind, Idarucizumab, Insulin-HDIπŸ”΄ Red
11Rapid Sequence Intubation (RSI) - Etomidate, Ketamine, Propofol, Rocuronium, post-intubation care⚫ Grey
12Quick Reference Card - 15 emergencies with instant drug doses🟑 Gold
Each drug entry includes: dose, preparation/dilution, main use, monitoring parameters, and warnings - all in clear, easy-to-scan tables.
This is a shared conversation. Sign in to Orris to start your own chat.