Orientation Report to ICU
ICU orientation report students trainees structure roles clinical protocols 2024
mkdir -p /tmp/workspace/icu-orientation && ls /tmp/workspace/
~/icu-orientation/generate_icu_report.py
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_JUSTIFY
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import datetime
OUTPUT = "/tmp/workspace/icu-orientation/ICU_Orientation_Report.pdf"
# ── Color Palette ──────────────────────────────────────────────────────────────
NAVY = colors.HexColor("#0D3362")
TEAL = colors.HexColor("#1A7B8C")
LIGHT_TEAL= colors.HexColor("#E6F4F7")
ORANGE = colors.HexColor("#E07B39")
LIGHT_ORANGE = colors.HexColor("#FDF1E8")
GREY = colors.HexColor("#F4F6F8")
DARK_GREY = colors.HexColor("#5A6472")
WHITE = colors.white
LINE_GREY = colors.HexColor("#D0D7DE")
# ── Styles ─────────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
title_style = ParagraphStyle(
"TitleStyle", fontName="Helvetica-Bold", fontSize=26,
textColor=WHITE, alignment=TA_CENTER, spaceAfter=4, leading=32
)
subtitle_style = ParagraphStyle(
"SubtitleStyle", fontName="Helvetica", fontSize=13,
textColor=colors.HexColor("#C8E8EF"), alignment=TA_CENTER, spaceAfter=2
)
date_style = ParagraphStyle(
"DateStyle", fontName="Helvetica", fontSize=10,
textColor=colors.HexColor("#A0C8D4"), alignment=TA_CENTER
)
section_header_style = ParagraphStyle(
"SectionHeader", fontName="Helvetica-Bold", fontSize=14,
textColor=WHITE, spaceAfter=6, spaceBefore=4, leftIndent=0
)
subsection_style = ParagraphStyle(
"SubSection", fontName="Helvetica-Bold", fontSize=11,
textColor=NAVY, spaceAfter=4, spaceBefore=8
)
body_style = ParagraphStyle(
"Body", fontName="Helvetica", fontSize=9.5,
textColor=colors.HexColor("#2C3E50"), leading=15,
spaceAfter=5, alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
"Bullet", fontName="Helvetica", fontSize=9.5,
textColor=colors.HexColor("#2C3E50"), leading=14,
spaceAfter=3, leftIndent=14, bulletIndent=2
)
bold_bullet_style = ParagraphStyle(
"BoldBullet", fontName="Helvetica-Bold", fontSize=9.5,
textColor=NAVY, leading=14, spaceAfter=2, leftIndent=14, bulletIndent=2
)
note_style = ParagraphStyle(
"Note", fontName="Helvetica-Oblique", fontSize=8.5,
textColor=DARK_GREY, leading=12, spaceAfter=4
)
caption_style = ParagraphStyle(
"Caption", fontName="Helvetica-Bold", fontSize=8,
textColor=TEAL, spaceAfter=2
)
table_header_style = ParagraphStyle(
"TH", fontName="Helvetica-Bold", fontSize=9,
textColor=WHITE, alignment=TA_CENTER, leading=12
)
table_cell_style = ParagraphStyle(
"TC", fontName="Helvetica", fontSize=9,
textColor=colors.HexColor("#2C3E50"), leading=12
)
def section_block(title, elements, color=NAVY):
"""Returns a colored section header + content list."""
header_data = [[Paragraph(title, section_header_style)]]
header_table = Table(header_data, colWidths=[17*cm])
header_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [4,4,4,4]),
]))
return [header_table, Spacer(1, 5)] + elements + [Spacer(1, 10)]
def info_box(content_paragraphs, bg=LIGHT_TEAL, border=TEAL):
"""A light-colored callout box."""
data = [[p] for p in content_paragraphs]
t = Table([[Paragraph("<br/>".join([p.text if hasattr(p,'text') else "" for p in content_paragraphs]),
ParagraphStyle("IB", fontName="Helvetica", fontSize=9.5,
textColor=colors.HexColor("#2C3E50"), leading=14,
alignment=TA_JUSTIFY))]],
colWidths=[17*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, border),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def make_table(headers, rows, col_widths):
header_row = [Paragraph(h, table_header_style) for h in headers]
data = [header_row]
for row in rows:
data.append([Paragraph(str(c), table_cell_style) for c in row])
t = Table(data, colWidths=col_widths)
style = [
("BACKGROUND", (0,0), (-1,0), NAVY),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY]),
("GRID", (0,0), (-1,-1), 0.5, LINE_GREY),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]
t.setStyle(TableStyle(style))
return t
# ── Document Setup ─────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2*cm, bottomMargin=2.2*cm,
title="ICU Orientation Report",
author="Orris Clinical Education",
subject="Intensive Care Unit Orientation for Students and Trainees"
)
story = []
# ══════════════════════════════════════════════════════════════════════════════
# COVER PAGE
# ══════════════════════════════════════════════════════════════════════════════
cover_title_data = [
[Paragraph("INTENSIVE CARE UNIT", title_style)],
[Paragraph("Orientation Report", subtitle_style)],
[Spacer(1, 4)],
[Paragraph("For Students & Trainees", subtitle_style)],
[Spacer(1, 8)],
[Paragraph("Date: July 15, 2026", date_style)],
]
cover_table = Table(cover_title_data, colWidths=[17*cm])
cover_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), NAVY),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 16),
("RIGHTPADDING", (0,0), (-1,-1), 16),
("ROUNDEDCORNERS", [8,8,8,8]),
]))
story.append(Spacer(1, 1.5*cm))
story.append(cover_table)
story.append(Spacer(1, 0.8*cm))
# Objective box
story.append(info_box([
Paragraph(
"<b>Purpose of This Report:</b> This orientation document is designed to equip medical students "
"and trainees entering the Intensive Care Unit (ICU) with a structured overview of the unit's "
"physical environment, multidisciplinary team roles, essential monitoring principles, mechanical "
"ventilation fundamentals, common vasoactive infusions, and key emergency protocols. "
"It is intended as a practical reference companion during the first weeks of ICU rotation.",
body_style
)
]))
story.append(Spacer(1, 0.5*cm))
# Table of Contents
toc_data = [
[Paragraph("<b>CONTENTS</b>", ParagraphStyle("TOCH", fontName="Helvetica-Bold", fontSize=11, textColor=NAVY))],
[Paragraph("1. ICU Overview & Physical Environment", body_style)],
[Paragraph("2. ICU Team Roles & Organizational Structure", body_style)],
[Paragraph("3. Admission Criteria & Triage", body_style)],
[Paragraph("4. Essential Monitoring in the ICU", body_style)],
[Paragraph("5. Mechanical Ventilation Fundamentals", body_style)],
[Paragraph("6. Common ICU Drips & Vasoactive Agents", body_style)],
[Paragraph("7. Sepsis & Septic Shock: Recognition & Management", body_style)],
[Paragraph("8. ARDS: Recognition & Ventilator Strategy", body_style)],
[Paragraph("9. Common ICU Emergencies & Key Protocols", body_style)],
[Paragraph("10. Communication, Safety & Trainee Expectations", body_style)],
]
toc_table = Table(toc_data, colWidths=[17*cm])
toc_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), LIGHT_TEAL),
("GRID", (0,0), (-1,-1), 0.3, LINE_GREY),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
story.append(toc_table)
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 1 - ICU OVERVIEW
# ══════════════════════════════════════════════════════════════════════════════
s1_content = [
Paragraph(
"The Intensive Care Unit (ICU) is a specialized hospital ward designed to provide concentrated "
"monitoring and treatment for patients with life-threatening conditions. Though critical care can "
"technically be delivered anywhere in the hospital, the ICU provides a dedicated environment that "
"enables continuous surveillance and rapid intervention by a multidisciplinary team.",
body_style
),
Spacer(1, 4),
Paragraph("<b>Common features of all modern ICUs include:</b>", subsection_style),
Paragraph("- A designated, geographically defined space with controlled access", bullet_style),
Paragraph("- Specialized monitoring and therapeutic capabilities (invasive hemodynamic monitoring, ventilators, dialysis, ECMO)", bullet_style),
Paragraph("- Resources to provide continuous 24/7 care", bullet_style),
Paragraph("- Appropriate staffing with a reduced nurse-to-patient ratio (typically 1:1 or 1:2)", bullet_style),
Spacer(1, 6),
Paragraph("<b>ICU Types You May Encounter:</b>", subsection_style),
make_table(
["ICU Type", "Primary Patient Population", "Key Specialties"],
[
["Medical ICU (MICU)", "Sepsis, respiratory failure, metabolic emergencies", "Internal medicine, pulmonology, nephrology"],
["Surgical ICU (SICU)", "Post-operative major surgery, trauma", "Surgery, anesthesia"],
["Cardiac ICU (CICU)", "Acute MI, heart failure, arrhythmias, post-cardiac surgery", "Cardiology, cardiac surgery"],
["Neuro ICU (NICU)", "Stroke, TBI, post-neurosurgery, status epilepticus", "Neurology, neurosurgery"],
["Pediatric ICU (PICU)", "Critically ill children", "Pediatrics, pediatric surgery"],
],
[4*cm, 6*cm, 7*cm]
),
Spacer(1, 8),
Paragraph(
"<i>Source: Mulholland and Greenfield's Surgery: Scientific Principles and Practice, 7e</i>",
note_style
),
]
story += section_block("1. ICU OVERVIEW & PHYSICAL ENVIRONMENT", s1_content, NAVY)
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 2 - TEAM ROLES
# ══════════════════════════════════════════════════════════════════════════════
s2_content = [
Paragraph(
"The ICU is driven by a multidisciplinary team. Understanding each member's role is essential "
"for effective communication and safe patient care during your rotation.",
body_style
),
Spacer(1, 4),
make_table(
["Team Member", "Role & Responsibilities"],
[
["Intensivist (Attending)", "Leads daily rounds; responsible for all major clinical decisions; supervises trainees. In a closed ICU, they are the primary physician."],
["Fellow / Senior Resident", "Oversees day-to-day management; supervises junior trainees; first point of escalation after hours."],
["Intern / Junior Trainee", "Takes admissions, writes notes, performs procedures under supervision, presents on rounds."],
["ICU Nurse (1:1 or 1:2)", "Continuous bedside monitoring; medication administration; hourly assessments; first to identify acute changes."],
["Respiratory Therapist (RT)", "Manages ventilators, ABG sampling, weaning trials, nebulization, and airway care."],
["Clinical Pharmacist", "Medication reconciliation, dose optimization, drug interaction review, antibiotic stewardship."],
["Dietician / Nutritionist", "Nutrition assessment, calorie/protein targets, enteral/parenteral feeding orders."],
["Physiotherapist", "Early mobilization, chest physiotherapy, ventilator weaning support."],
["Social Worker", "Family support, discharge planning, ethics consultations."],
],
[4.5*cm, 12.5*cm]
),
Spacer(1, 8),
Paragraph("<b>Staffing Models:</b>", subsection_style),
Paragraph(
"<b>Open ICU:</b> Primary team (medical/surgical) admits and manages the patient; may consult intensivist. "
"Provides continuity but dilutes ICU-focused care.",
bullet_style
),
Paragraph(
"<b>Closed ICU:</b> Care is transferred entirely to an intensivist team. Associated with improved guideline adherence, "
"shorter ICU stay, and better outcomes. Recommended ratio: 1 intensivist to max 14 patients.",
bullet_style
),
Paragraph(
"<b>Hybrid Model:</b> Mandatory intensivist consultation alongside the admitting team.",
bullet_style
),
Spacer(1, 4),
Paragraph(
"<i>Source: Mulholland and Greenfield's Surgery: Scientific Principles and Practice, 7e</i>",
note_style
),
]
story += section_block("2. ICU TEAM ROLES & ORGANIZATIONAL STRUCTURE", s2_content, TEAL)
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 3 - ADMISSION CRITERIA
# ══════════════════════════════════════════════════════════════════════════════
s3_content = [
Paragraph(
"Not all critically ill patients need a formal ICU bed; some may be managed in intermediate care or "
"high-dependency units (HDU). Triage decisions should be based on clinical status, acuity, and available resources.",
body_style
),
Spacer(1, 4),
Paragraph("<b>General ICU Admission Indications:</b>", subsection_style),
Paragraph("- Acute respiratory failure requiring ventilatory support (invasive or non-invasive)", bullet_style),
Paragraph("- Hemodynamic instability requiring vasoactive agents (e.g., septic shock, cardiogenic shock)", bullet_style),
Paragraph("- Decreased level of consciousness (GCS ≤ 8) at risk of airway compromise", bullet_style),
Paragraph("- Acute organ failure: renal (requiring CRRT), hepatic failure, multi-organ dysfunction", bullet_style),
Paragraph("- Post-cardiac arrest resuscitation and targeted temperature management", bullet_style),
Paragraph("- Life-threatening arrhythmias or acute coronary syndromes with instability", bullet_style),
Paragraph("- Major trauma with physiologic compromise", bullet_style),
Paragraph("- High-risk post-operative monitoring (cardiac surgery, major abdominal surgery)", bullet_style),
Spacer(1, 6),
Paragraph("<b>ICU Triage Priorities:</b>", subsection_style),
make_table(
["Priority", "Description", "Examples"],
[
["Priority 1", "Unstable - requires immediate ICU level care", "Intubated patients, septic shock on vasopressors"],
["Priority 2", "At high risk of deterioration - intensive monitoring needed", "Post-cardiac surgery, post-thrombolysis"],
["Priority 3", "Unstable with limited chance of recovery or ICU benefit", "Terminal malignancy with acute illness"],
["Priority 4", "Does not require ICU care (too well or too ill)", "Minor illness; comfort-focused only care"],
],
[2.5*cm, 7*cm, 7.5*cm]
),
]
story += section_block("3. ADMISSION CRITERIA & TRIAGE", s3_content, colors.HexColor("#1E5F74"))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 4 - MONITORING
# ══════════════════════════════════════════════════════════════════════════════
s4_content = [
Paragraph(
"Every ICU patient requires a minimum set of continuous monitoring. As a trainee, you must be able to "
"interpret these parameters and recognize abnormal trends.",
body_style
),
Spacer(1, 4),
Paragraph("<b>Standard Monitoring in All ICU Patients:</b>", subsection_style),
make_table(
["Parameter", "Method", "Normal Range / Target"],
[
["Heart Rate", "Continuous ECG", "60-100 bpm"],
["Rhythm", "Continuous 5-lead ECG", "Sinus rhythm; identify arrhythmias"],
["Blood Pressure", "Non-invasive (NIBP) q1-4h or continuous arterial line", "MAP > 65 mmHg in shock states"],
["SpO2", "Pulse oximetry (continuous)", "≥ 94% (or per disease protocol)"],
["Respiratory Rate", "Continuous or q1h nursing assessment", "12-20 breaths/min"],
["Temperature", "Core (rectal, bladder, or esophageal)", "36-38°C"],
["Urine Output", "Urinary catheter (hourly)", "≥ 0.5 mL/kg/hr"],
["End-tidal CO2 (EtCO2)", "Capnography (intubated patients)", "35-45 mmHg"],
["Arterial Blood Gas (ABG)", "Arterial line sample or radial puncture", "pH 7.35-7.45; PaO2 >80 mmHg; PaCO2 35-45"],
],
[4*cm, 5.5*cm, 7.5*cm]
),
Spacer(1, 8),
Paragraph("<b>Advanced Hemodynamic Monitoring:</b>", subsection_style),
Paragraph(
"- <b>Arterial Line (A-line):</b> Continuous BP monitoring; allows frequent ABG sampling without repeated punctures. "
"Commonly placed in the radial artery. Waveform dampening or over-damping must be identified and corrected.",
bullet_style
),
Paragraph(
"- <b>Central Venous Catheter (CVC):</b> Measures central venous pressure (CVP); route for vasoactive drugs, TPN, "
"and medications unsuitable for peripheral lines. Normal CVP: 2-8 mmHg.",
bullet_style
),
Paragraph(
"- <b>Pulmonary Artery Catheter (PAC/Swan-Ganz):</b> Measures pulmonary artery pressures, cardiac output/index, "
"and mixed venous oxygen saturation (SvO2). Now used selectively - avoid routine use in ARDS.",
bullet_style
),
Paragraph(
"- <b>Bedside Echocardiography (POCUS):</b> Increasingly used at the bedside for rapid assessment of cardiac function, "
"preload status, and pericardial effusion. Trainees should recognize key POCUS views.",
bullet_style
),
Paragraph(
"- <b>Serum Lactate:</b> A biochemical marker of tissue hypoperfusion. Serial lactate measurements guide resuscitation "
"adequacy. Lactate > 2 mmol/L is abnormal; > 4 mmol/L = high risk for mortality in sepsis.",
bullet_style
),
]
story += section_block("4. ESSENTIAL MONITORING IN THE ICU", s4_content, NAVY)
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 5 - MECHANICAL VENTILATION
# ══════════════════════════════════════════════════════════════════════════════
s5_content = [
Paragraph(
"Mechanical ventilation is one of the most common and complex interventions in the ICU. "
"The primary goal is to ensure adequate oxygenation and CO2 elimination while minimizing ventilator-induced lung injury (VILI).",
body_style
),
Spacer(1, 4),
Paragraph("<b>Key Ventilator Parameters:</b>", subsection_style),
make_table(
["Parameter", "Description", "Typical Starting Value"],
[
["FiO2", "Fraction of inspired oxygen", "Start 1.0 (100%); wean to maintain SpO2 ≥94%"],
["Tidal Volume (Vt)", "Volume per breath delivered", "6 mL/kg of ideal body weight (IBW) - lung protective"],
["Respiratory Rate (RR)", "Machine-set breaths per minute", "14-18 breaths/min; adjust for PaCO2"],
["PEEP", "Positive end-expiratory pressure - keeps alveoli open", "5-8 cmH2O standard; higher in ARDS"],
["Plateau Pressure (Pplat)", "Reflects alveolar pressure", "Keep ≤ 30 cmH2O"],
["Driving Pressure", "Pplat - PEEP", "Target < 15 cmH2O in ARDS"],
["I:E Ratio", "Inspiratory to expiratory time ratio", "1:2 standard; may adjust"],
],
[3.5*cm, 6*cm, 7.5*cm]
),
Spacer(1, 8),
Paragraph("<b>Common Ventilation Modes:</b>", subsection_style),
Paragraph(
"<b>Assist-Control (AC/CMV):</b> Machine delivers a set number of breaths; patient can trigger additional breaths "
"which are supported to the full set volume/pressure. Most common mode for initial ventilation.",
bullet_style
),
Paragraph(
"<b>SIMV (Synchronized Intermittent Mandatory Ventilation):</b> Machine delivers mandatory breaths; patient can "
"breathe spontaneously between them. Less commonly used now.",
bullet_style
),
Paragraph(
"<b>Pressure Support Ventilation (PSV):</b> Patient initiates all breaths; machine provides a pressure boost. "
"Used during weaning trials.",
bullet_style
),
Paragraph(
"<b>CPAP:</b> Continuous positive airway pressure without mandatory breaths. Used in weaning and for sleep apnea.",
bullet_style
),
Spacer(1, 6),
Paragraph("<b>Ventilator-Induced Lung Injury (VILI) - Key Mechanisms:</b>", subsection_style),
make_table(
["Mechanism", "Cause", "Prevention"],
[
["Barotrauma", "Excess airway pressure", "Limit plateau pressure ≤ 30 cmH2O"],
["Volutrauma", "Alveolar overdistension from high volumes", "Use 6 mL/kg IBW tidal volumes"],
["Atelectrauma", "Repeated collapse/re-expansion of alveoli", "Adequate PEEP to maintain recruitment"],
["Biotrauma", "Release of inflammatory mediators", "Lung-protective ventilation strategy"],
],
[3.5*cm, 6*cm, 7.5*cm]
),
Spacer(1, 6),
Paragraph("<b>Weaning from Mechanical Ventilation:</b>", subsection_style),
Paragraph("Daily assessment using the following criteria before attempting a Spontaneous Breathing Trial (SBT):", body_style),
Paragraph("- Cause of respiratory failure is improving or resolved", bullet_style),
Paragraph("- FiO2 ≤ 0.4-0.5 with SpO2 ≥ 92%", bullet_style),
Paragraph("- PEEP ≤ 5-8 cmH2O", bullet_style),
Paragraph("- Patient awake, cooperative, following commands", bullet_style),
Paragraph("- Hemodynamically stable, not on or on low vasopressor support", bullet_style),
Paragraph("- Secretions manageable and cough adequate", bullet_style),
Spacer(1,4),
Paragraph(
"<i>Sources: Current Surgical Therapy 14e; Goldman-Cecil Medicine; Miller's Anesthesia 10e</i>",
note_style
),
]
story += section_block("5. MECHANICAL VENTILATION FUNDAMENTALS", s5_content, TEAL)
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 6 - ICU DRIPS
# ══════════════════════════════════════════════════════════════════════════════
s6_content = [
Paragraph(
"Vasoactive and sedative infusions are the backbone of ICU hemodynamic and comfort management. "
"Know the mechanism, indication, and key monitoring parameters for each agent.",
body_style
),
Spacer(1, 4),
Paragraph("<b>Vasoactive Agents (Vasopressors & Inotropes):</b>", subsection_style),
make_table(
["Agent", "Receptor", "Primary Use", "Key Notes"],
[
["Norepinephrine", "α1 >> β1", "First-line vasopressor in septic shock", "Target MAP ≥ 65 mmHg; can cause peripheral ischemia"],
["Vasopressin", "V1 receptors", "Add-on to NE; spares catecholamines", "Fixed dose 0.03-0.04 U/min; do not titrate alone"],
["Epinephrine", "α1, β1, β2", "Anaphylaxis; refractory shock; cardiac arrest", "Increases lactate; monitor for tachyarrhythmias"],
["Dobutamine", "β1 >> β2", "Low cardiac output state (cardiogenic shock)", "Can cause hypotension; use with vasopressor"],
["Dopamine", "Dopamine, β1, α1 (dose-dependent)", "Rarely used; selected bradycardia + hypotension", "Higher arrhythmia risk; avoid in most sepsis"],
["Phenylephrine", "α1 only", "Distributive shock; perioperative hypotension", "No inotropic effect; pure vasoconstrictor"],
["Milrinone", "PDE-3 inhibitor", "Cardiac failure + pulmonary hypertension", "Vasodilatory; use with caution in hypotension"],
],
[3*cm, 2.5*cm, 4.5*cm, 7*cm]
),
Spacer(1, 8),
Paragraph("<b>Sedation & Analgesia in the ICU:</b>", subsection_style),
Paragraph(
"Use the ABCDEF bundle (Assess, Both SAT & SBT, Choice of sedation, Delirium, Early mobility, Family engagement). "
"Target the lightest level of sedation possible using validated scales (RASS, CAM-ICU).",
body_style
),
make_table(
["Agent", "Class", "Indication", "Key Notes"],
[
["Propofol", "Alkylphenol (IV anesthetic)", "Short-term sedation; status epilepticus", "Watch for propofol infusion syndrome (PRIS) with high doses/prolonged use"],
["Midazolam", "Benzodiazepine", "Procedural sedation; alcohol withdrawal", "Accumulates; associated with delirium; avoid long-term infusion"],
["Dexmedetomidine", "Alpha-2 agonist", "ICU sedation; CAM-ICU score reduction", "Arousable sedation; bradycardia risk; preferred over BZD"],
["Morphine / Fentanyl", "Opioid analgesic", "Pain control in mechanically ventilated patients", "Fentanyl preferred in hemodynamic instability and renal failure"],
["Ketamine", "NMDA antagonist", "Procedural sedation; bronchospasm; pain", "Preserves airway reflexes; bronchodilator; dissociative"],
],
[3*cm, 3*cm, 4*cm, 7*cm]
),
Spacer(1, 4),
Paragraph(
"<i>Sources: Barash Clinical Anesthesia 9e; Goldman-Cecil Medicine</i>",
note_style
),
]
story += section_block("6. COMMON ICU DRIPS & VASOACTIVE AGENTS", s6_content, colors.HexColor("#1E5F74"))
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 7 - SEPSIS
# ══════════════════════════════════════════════════════════════════════════════
s7_content = [
Paragraph(
"Sepsis is a life-threatening organ dysfunction caused by a dysregulated host response to infection. "
"Septic shock is a subset with circulatory, cellular, and metabolic abnormalities. "
"Early recognition and bundle compliance saves lives.",
body_style
),
Spacer(1, 4),
Paragraph("<b>Sepsis-3 Definitions (2016):</b>", subsection_style),
Paragraph(
"<b>Sepsis:</b> Life-threatening organ dysfunction (SOFA score increase ≥ 2) caused by a dysregulated host response to infection.",
bullet_style
),
Paragraph(
"<b>Septic Shock:</b> Sepsis + vasopressor requirement to maintain MAP ≥ 65 mmHg AND lactate > 2 mmol/L despite adequate fluid resuscitation.",
bullet_style
),
Paragraph(
"<b>qSOFA Screening (bedside):</b> RR ≥ 22, Altered mentation, SBP ≤ 100 - if 2+ criteria met, assess for sepsis.",
bullet_style
),
Spacer(1, 6),
Paragraph("<b>Sepsis Hour-1 Bundle:</b>", subsection_style),
make_table(
["Time", "Action"],
[
["Immediate", "Measure serum lactate (repeat if initial lactate >2 mmol/L)"],
["Immediate", "Obtain blood cultures x2 (aerobic + anaerobic) BEFORE antibiotics"],
["Within 1 hour", "Administer empiric broad-spectrum IV antibiotics"],
["Within 1-3 hours", "Crystalloid resuscitation: 30 mL/kg IV bolus for hypotension or lactate ≥4 mmol/L"],
["Within 1 hour", "Start vasopressors (norepinephrine) if MAP <65 mmHg despite initial fluids"],
],
[3.5*cm, 13.5*cm]
),
Spacer(1, 8),
Paragraph("<b>Vasopressor Hierarchy in Septic Shock:</b>", subsection_style),
Paragraph("1. <b>Norepinephrine</b> - first-line; target MAP ≥ 65 mmHg", bullet_style),
Paragraph("2. <b>Add Vasopressin</b> 0.03 U/min when NE dose reaches 0.25-0.5 mcg/kg/min", bullet_style),
Paragraph("3. <b>Epinephrine</b> - if shock persists despite NE + Vasopressin", bullet_style),
Paragraph("4. <b>Corticosteroids</b> (hydrocortisone 200 mg/day) if shock refractory to vasopressors", bullet_style),
Spacer(1, 4),
Paragraph(
"<i>Source: Barash Clinical Anesthesia 9e - Table 57-4: Management of Sepsis and Septic Shock</i>",
note_style
),
]
story += section_block("7. SEPSIS & SEPTIC SHOCK: RECOGNITION & MANAGEMENT", s7_content, NAVY)
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 8 - ARDS
# ══════════════════════════════════════════════════════════════════════════════
s8_content = [
Paragraph(
"ARDS is the abrupt onset of diffuse lung injury characterized by severe hypoxemia and bilateral "
"pulmonary infiltrates not explained by left-sided cardiac failure. Annual incidence is approximately "
"80 cases per 100,000 adults in the US, with higher frequency in ICUs.",
body_style
),
Spacer(1, 4),
Paragraph("<b>Berlin Definition of ARDS (Severity by P/F Ratio):</b>", subsection_style),
make_table(
["Severity", "PaO2/FiO2 (P/F Ratio)", "PEEP Requirement", "Approximate Mortality"],
[
["Mild", "200-300 mmHg", "≥ 5 cmH2O", "~27%"],
["Moderate", "100-200 mmHg", "≥ 5 cmH2O", "~32%"],
["Severe", "< 100 mmHg", "≥ 5 cmH2O", "~45%"],
],
[3*cm, 4.5*cm, 4*cm, 5.5*cm]
),
Spacer(1, 8),
Paragraph("<b>Common Triggers:</b>", subsection_style),
Paragraph(
"<b>Direct (pulmonary):</b> Pneumonia, aspiration, smoke inhalation, pulmonary contusion",
bullet_style
),
Paragraph(
"<b>Indirect (extrapulmonary):</b> Sepsis from non-pulmonary source, severe trauma, "
"pancreatitis, massive transfusions",
bullet_style
),
Spacer(1, 6),
Paragraph("<b>Lung-Protective Ventilation Strategy for ARDS:</b>", subsection_style),
Paragraph("- Low tidal volume: <b>6 mL/kg IBW</b> (may go to 4 mL/kg in severe ARDS)", bullet_style),
Paragraph("- Plateau pressure: <b>≤ 30 cmH2O</b>", bullet_style),
Paragraph("- Driving pressure: <b>< 15 cmH2O</b> (Pplat minus PEEP)", bullet_style),
Paragraph("- PEEP: Higher PEEP strategies for moderate-severe ARDS (titrate by oxygenation)", bullet_style),
Paragraph("- <b>Prone positioning:</b> ≥ 12 hours/day in moderate-severe ARDS - reduces mortality", bullet_style),
Paragraph("- <b>Neuromuscular blockade (NMB):</b> Facilitates prone positioning; use intermittent bolus preferred", bullet_style),
Paragraph("- <b>ECMO:</b> Consider in severe ARDS failing conventional ventilation (at experienced centers)", bullet_style),
Spacer(1, 4),
Paragraph(
"<i>Source: Goldman-Cecil Medicine International Edition; Murray & Nadel's Textbook of Respiratory Medicine</i>",
note_style
),
]
story += section_block("8. ARDS: RECOGNITION & VENTILATOR STRATEGY", s8_content, TEAL)
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 9 - ICU EMERGENCIES
# ══════════════════════════════════════════════════════════════════════════════
s9_content = [
Paragraph(
"As a trainee in the ICU, you must recognize and initiate the response to the following common emergencies. "
"Always call for senior help early - early escalation is expected and encouraged.",
body_style
),
Spacer(1, 6),
make_table(
["Emergency", "Key Recognition", "Immediate Action"],
[
["Cardiac Arrest (PEA/VF/VT/Asystole)",
"Pulseless, unresponsive, no normal breathing",
"Start CPR immediately, call code team, attach defibrillator, follow ACLS algorithm"],
["Acute Respiratory Failure / Desaturation",
"SpO2 drop, tachypnea, increased work of breathing, altered mentation",
"Increase FiO2, check tube position, suction airway, call RT, consider re-intubation"],
["Tension Pneumothorax",
"Hypoxia + hypotension + absent breath sounds + tracheal deviation",
"Immediate needle decompression 2nd ICS MCL, then chest tube"],
["Accidental Extubation",
"Loss of EtCO2 waveform, patient vocalizing, air leak",
"Apply BVM with 100% O2, call for re-intubation, prepare airway trolley"],
["Ventilator Alarm - High Pressure",
"Peak pressure alarm, patient desaturating/distressed",
"DOPE: Displacement, Obstruction, Pneumothorax, Equipment failure - assess in order"],
["Anaphylaxis",
"Urticaria, angioedema, hypotension, bronchospasm after trigger",
"Epinephrine 0.5 mg IM (or IV in arrest), fluids, antihistamines, stop trigger"],
["Hypertensive Emergency",
"SBP > 180-220 with acute end-organ damage (headache, chest pain, AKI)",
"IV labetalol or nicardipine; avoid excessive rapid correction"],
["Acute Arrhythmia",
"Sudden HR change on monitor, hemodynamic compromise",
"Unstable (hypotension/altered LOC): synchronized cardioversion. Stable: pharmacologic per ACLS"],
],
[3.5*cm, 5.5*cm, 8*cm]
),
Spacer(1, 6),
info_box([Paragraph(
"<b>DOPE Mnemonic for Acute Ventilator Deterioration:</b><br/>"
"<b>D</b> - Displacement of tube (check ETT position, CXR)<br/>"
"<b>O</b> - Obstruction of tube (suction; check for kinks or biting)<br/>"
"<b>P</b> - Pneumothorax (check breath sounds bilaterally)<br/>"
"<b>E</b> - Equipment failure (disconnect from ventilator; bag manually)",
body_style
)], bg=LIGHT_ORANGE, border=ORANGE),
]
story += section_block("9. COMMON ICU EMERGENCIES & KEY PROTOCOLS", s9_content, colors.HexColor("#1E5F74"))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# SECTION 10 - COMMUNICATION, SAFETY & TRAINEE EXPECTATIONS
# ══════════════════════════════════════════════════════════════════════════════
s10_content = [
Paragraph("<b>Daily ICU Rounds Structure:</b>", subsection_style),
Paragraph(
"ICU rounds are multidisciplinary. As a trainee, you are expected to present your patient concisely "
"in a systematic head-to-toe format, propose a problem list, and suggest a management plan.",
body_style
),
Paragraph("A standard ICU patient presentation follows the FASTHUG mnemonic:", body_style),
Spacer(1, 4),
make_table(
["Letter", "Domain", "Key Questions"],
[
["F", "Feeding", "Is the patient on enteral/parenteral nutrition? Meeting caloric targets?"],
["A", "Analgesia", "Pain score (NRS or CPOT)? Is analgesic adequate and appropriate?"],
["S", "Sedation", "RASS target? Is current sedation level appropriate? Daily SAT done?"],
["T", "Thromboembolic prophylaxis", "On heparin/LMWH or SCDs? Contraindications documented?"],
["H", "Head of bed elevation", "HOB at 30-45 degrees to prevent VAP?"],
["U", "Ulcer prophylaxis", "On PPI or H2 blocker? Is it still indicated?"],
["G", "Glucose control", "Blood glucose within target range (140-180 mg/dL)? Insulin protocol?"],
],
[1.5*cm, 4*cm, 11.5*cm]
),
Spacer(1, 8),
Paragraph("<b>Communication Principles:</b>", subsection_style),
Paragraph("- Use SBAR (Situation, Background, Assessment, Recommendation) for all clinical communications and escalations", bullet_style),
Paragraph("- Closed-loop communication during emergencies - repeat back orders aloud to confirm", bullet_style),
Paragraph("- Document all procedures, assessments, and communications promptly in the medical record", bullet_style),
Paragraph("- Family communication: involve family early, update daily, involve social work and palliative care as needed", bullet_style),
Spacer(1, 8),
Paragraph("<b>Safety Culture in the ICU:</b>", subsection_style),
Paragraph("- Speak up: If something looks wrong, say so - patient safety takes precedence over hierarchy", bullet_style),
Paragraph("- Hand hygiene: Before and after every patient contact - the ICU has the highest rates of healthcare-associated infections", bullet_style),
Paragraph("- Central line care bundles: Daily assessment of line necessity, sterile technique for insertion", bullet_style),
Paragraph("- Ventilator-Associated Pneumonia (VAP) bundle: HOB elevation, daily SAT/SBT, oral care, subglottic suctioning", bullet_style),
Paragraph("- Catheter-associated UTI (CAUTI) prevention: Remove urinary catheters as early as possible", bullet_style),
Spacer(1, 8),
Paragraph("<b>Trainee Expectations During ICU Rotation:</b>", subsection_style),
make_table(
["Expectation", "Detail"],
[
["Punctuality", "Arrive before rounds; pre-round review of your assigned patients"],
["Preparation", "Know your patient's history, active issues, trends in vitals, recent labs/imaging"],
["Procedures", "Observe and assist: IV cannulation, ABG, nasogastric tube, urinary catheter, wound care"],
["Supervised Procedures", "Central line insertion, arterial line, intubation - observe first, assist next, perform under supervision"],
["Logbook", "Document all procedures and clinical encounters for portfolio evidence"],
["Self-directed learning", "Read about each patient's primary diagnosis; attend teaching sessions"],
["Professionalism", "Respect patient privacy, team hierarchy, and institutional policies at all times"],
],
[4*cm, 13*cm]
),
Spacer(1, 8),
info_box([Paragraph(
"<b>Key Resources for ICU Trainees:</b><br/>"
"- <b>Surviving Sepsis Campaign Guidelines</b> (sccm.org)<br/>"
"- <b>ACLS Provider Manual</b> (American Heart Association)<br/>"
"- <b>ICU Delirium & CAM-ICU Assessment</b> (icudelirium.org)<br/>"
"- <b>ARDSNet Protocol</b> for lung-protective ventilation<br/>"
"- <b>SCCM ABCDEF Bundle</b> for ICU liberation",
body_style
)], bg=LIGHT_TEAL, border=TEAL),
]
story += section_block("10. COMMUNICATION, SAFETY & TRAINEE EXPECTATIONS", s10_content, NAVY)
# Footer note
story.append(Spacer(1, 1*cm))
story.append(HRFlowable(width="100%", thickness=1, color=LINE_GREY))
story.append(Spacer(1, 4))
story.append(Paragraph(
"<i>This orientation report is compiled from authoritative medical textbooks including Mulholland & Greenfield's Surgery 7e, "
"Goldman-Cecil Medicine, Barash Clinical Anesthesia 9e, Current Surgical Therapy 14e, Murray & Nadel's Respiratory Medicine, "
"and Miller's Anesthesia 10e. It is intended as an educational orientation guide for students and trainees and does not replace "
"institutional protocols or clinical judgment.</i>",
note_style
))
# ── Build ──────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /tmp/workspace/icu-orientation && python generate_icu_report.py 2>&1
ls -lh /tmp/workspace/icu-orientation/ICU_Orientation_Report.pdf
ICU Orientation Report
PDF Document · PDF
Search for ICU delirium screening tools and CAM-ICU protocol diagrams
CAM-ICU protocol diagram delirium screening ICU 2024
"delirium" AND "ICU" AND "CAM-ICU" AND "screening"
PMID: 37987526
PMID: 38538305
HTTP 400 for https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?tool=orrisai&email=dev%40orris.ai&api_key=***&db=pubmed&id=38538305&rettype=abstract&retmode=xml
We encountered an error while processing your request. Please try again or reach out to us for help.
Make an orientation Report for b.sc.nursing students practical file in easy language
An error occurred (ValidationException) when calling the ConverseStream operation: Expected toolResult blocks at messages.34.content for the following Ids: tooluse_khjafKOxCVnYLKUo0EyCEY, tooluse_GEt81nEZnYOmQGImkSBOdT
We encountered an error while processing your request. Please try again or reach out to us for help.
Send me
An error occurred (ValidationException) when calling the ConverseStream operation: Expected toolResult blocks at messages.34.content for the following Ids: tooluse_khjafKOxCVnYLKUo0EyCEY, tooluse_GEt81nEZnYOmQGImkSBOdT
We encountered an error while processing your request. Please try again or reach out to us for help.
Send me procedure on bed making
An error occurred (ValidationException) when calling the ConverseStream operation: Expected toolResult blocks at messages.34.content for the following Ids: tooluse_khjafKOxCVnYLKUo0EyCEY, tooluse_GEt81nEZnYOmQGImkSBOdT
We encountered an error while processing your request. Please try again or reach out to us for help.