I have requested for one pdf im not get at
I have requested for icu emergency medicine list injections management with easy understanding wave PDF
mkdir -p /home/daytona/workspace/icu-emergency-pdf && echo "Directory ready"
~/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()
cd /home/daytona/workspace/icu-emergency-pdf && python3 generate_icu_pdf.py 2>&1
ls -lh /home/daytona/workspace/icu-emergency-pdf/ICU_Emergency_Injection_Managemβ¦
ICU Emergency Injection Management
PDF Document Β· PDF
| # | Section | Color |
|---|---|---|
| 1 | Vasopressors & Inotropes - Norepinephrine, Dopamine, Epinephrine, Dobutamine, Vasopressin | π΄ Red |
| 2 | Sedation & Analgesia - Propofol, Midazolam, Dexmedetomidine, Ketamine, Fentanyl, Morphine | π’ Green |
| 3 | Neuromuscular Blockade - Succinylcholine, Rocuronium, Vecuronium, Cisatracurium, Sugammadex | π£ Purple |
| 4 | Cardiac Emergency Drugs - Amiodarone, Adenosine, Atropine, Lidocaine, Magnesium, Digoxin | π Orange |
| 5 | Hypertensive Emergencies - Labetalol, Nicardipine, Nitroprusside, Nitroglycerin, Esmolol | π©΅ Teal |
| 6 | Neurological Emergencies - Lorazepam, Phenytoin, Levetiracetam, Mannitol, Hypertonic Saline | π£ Purple |
| 7 | Anticoagulation & Reversal - Heparin, LMWH, tPA, Warfarin, PCC, Argatroban | π΅ Navy |
| 8 | ICU Antibiotics - Pip-Tazo, Meropenem, Vancomycin, Ceftriaxone, Linezolid, Antifungals | π΅ Blue |
| 9 | Electrolyte Replacement - KβΊ, MgΒ²βΊ, POβ, CaΒ²βΊ, NaβΊ protocols with rates | π©΅ Teal |
| 10 | Antidotes & Reversals - Naloxone, NAC, Protamine, Digibind, Idarucizumab, Insulin-HDI | π΄ Red |
| 11 | Rapid Sequence Intubation (RSI) - Etomidate, Ketamine, Propofol, Rocuronium, post-intubation care | β« Grey |
| 12 | Quick Reference Card - 15 emergencies with instant drug doses | π‘ Gold |