Septic shock management

Reading File
Now I'll run parallel searches across the library and PubMed simultaneously.
Finding Sources
Searching PubMed

"septic shock"[MeSH Terms] AND management

Searching the Web

septic shock management guidelines 2025 SSC Surviving Sepsis Campaign

The 2026 SSC Guidelines were just released (April 2026). Let me pull content from the textbook and the new guidelines simultaneously.
Reading File
Finding Sources
Reading Web Page

https://www.esicm.org/2026-surviving-sepsis-campaing-guideli…

Excellent data from multiple authoritative sources. Let me pull the deeper content on antibiotics, steroids, and source control from the textbooks.
Finding Sources
Reading File
I now have comprehensive, multi-source data. Let me compose the full response.

Septic Shock Management

2026 Update: The Surviving Sepsis Campaign (SSC) released updated adult guidelines in April 2026 (Crit Care Med 2026;54:725-812), adding 46 new statements covering antibiotic optimisation, blood pressure targets in older adults, fluid removal after resuscitation, and post-discharge rehabilitation.

Definition (Sepsis-3)

Septic shock = sepsis + vasopressor requirement to maintain MAP ≥65 mmHg + serum lactate >2 mmol/L despite adequate fluid resuscitation. Implies circulatory, cellular, and metabolic abnormalities with substantially higher mortality than sepsis alone.

The "1-Hour Bundle" — Immediate Actions

TimeAction
0–60 minMeasure lactate; obtain blood cultures (≥2 sets) before antibiotics; administer broad-spectrum antibiotics; begin 30 mL/kg IV crystalloid bolus; start vasopressors if MAP <65 mmHg despite initial fluid
≤6 hICU admission; re-measure lactate if initial >2 mmol/L; reassess fluid responsiveness

1. Fluid Resuscitation

  • Initial bolus: 30 mL/kg balanced crystalloid (Lactated Ringer's or PlasmaLyte preferred over normal saline) within the first 3 hours
  • Guide subsequent fluid with dynamic assessments (pulse pressure variation, passive leg raise response, stroke volume variation) rather than static CVP
  • Albumin: consider adding when very large volumes of crystalloid are required
  • Avoid hetastarch (HES) — increased risk of AKI and death
  • Serial lactate measurement to guide resuscitation adequacy (target clearance ≥10% per 2 hours)
  • 2026 addition: active fluid removal (conservative fluid strategy/de-resuscitation) after the acute phase to prevent fluid overload — one of the new recommendations

2. Vasopressors

AgentRoleDose
NorepinephrineFirst-line; balanced α/β agonism, increases vascular toneStart 0.01–0.25 µg/kg/min; titrate to MAP ≥65 mmHg
VasopressinAdd when NE reaches 0.25–0.5 µg/kg/min (not dose escalation); steroid-sparing effectFixed rate 0.03–0.04 units/min
EpinephrineThird-line if NE + vasopressin insufficient; also for septic cardiomyopathy0.01–0.3 µg/kg/min
DobutamineAdd for low cardiac output/septic cardiomyopathy despite adequate preload2–20 µg/kg/min
DopamineNot recommended routinely; only highly selected cases (bradycardia + low risk arrhythmia)
Terlipressin, levosimendanNot recommended
Target MAP: ≥65 mmHg (the 2026 guidelines add a conditional recommendation for 60–65 mmHg targets in older adults to reduce vasopressor exposure).

3. Antimicrobials

  • Timing: broad-spectrum IV antibiotics within 1 hour of sepsis/septic shock recognition — every hour of delay worsens mortality
  • Blood cultures (≥2 sets, including from each vascular access site) before antibiotics but do not delay antibiotics >45 min to obtain cultures
  • Empiric coverage: guided by suspected source, local resistance patterns, and host immune status; typically covers gram-positives + gram-negatives; add antifungal only in high-risk patients (prolonged neutropenia, recent surgery, TPN-dependent)
  • Procalcitonin: do not use to start antibiotics; can guide de-escalation and duration
  • De-escalation: reassess daily; narrow spectrum when organism and sensitivities are known; typical duration 7–10 days; consider stopping if no infectious source identified

4. Source Control

  • Identify and control the infection source promptly — imaging (CT, ultrasound) to locate abscess, infected collection, necrotic tissue, or foreign body
  • Drainage, debridement, or removal of infected device performed as soon as medically feasible (generally within 6–12 hours for surgical emergencies)
  • Intravascular access devices that could be the source should be removed after securing alternative access

5. Corticosteroids

  • Hydrocortisone 200 mg/day (50 mg IV q6h or 200 mg continuous infusion) if shock persists despite:
    • Adequate fluid resuscitation AND
    • Vasopressor therapy at moderate–high doses
  • Can add fludrocortisone 50 µg PO daily (Annane protocol)
  • Reduces duration of vasopressor requirement; no definitive mortality benefit but used for refractory shock
  • Taper once vasopressors are weaned; avoid abrupt cessation

6. Organ Support

Respiratory

  • Maintain SpO₂ 90–96%
  • High-flow nasal cannula (HFNC) as first step if adequate neurologic status
  • Mechanical ventilation if needed: tidal volume 6 mL/kg IBW, plateau pressure ≤30 cmH₂O, apply PEEP
  • Prone positioning ≥12 h/day for moderate–severe ARDS (P/F <150)
  • Neuromuscular blockade to facilitate proning (intermittent bolus preferred over continuous infusion)
  • VV-ECMO for refractory ARDS if experienced centre available

Renal

  • Avoid nephrotoxins; maintain renal perfusion
  • RRT for progressive AKI, refractory hyperkalemia, uremia, or volume overload
  • Sodium bicarbonate if AKI + pH <7.2

Hematologic / Transfusion

  • Transfuse RBCs for hemoglobin <7 g/dL (threshold <8 g/dL in CAD or acute hemorrhage)
  • Platelets: transfuse if <10,000/µL (or <20,000 with active bleeding risk)
  • FFP: only for active bleeding with coagulopathy or pre-procedure
  • Cryoprecipitate: fibrinogen <150 mg/dL with bleeding

Metabolic

  • Insulin for glucose ≥180 mg/dL; target 140–180 mg/dL
  • Stress ulcer prophylaxis in high-risk mechanically ventilated patients
  • Early enteral nutrition if shock controlled within 48 h; parenteral if goals not met by day 7

7. Monitoring & Endpoints

ParameterTarget
MAP≥65 mmHg (60–65 mmHg acceptable in elderly per 2026 SSC)
LactateClearance ≥10% per 2 h; normalize to <2 mmol/L
Urine output>0.5 mL/kg/h
ScvO₂≥70%
Hemoglobin7–9 g/dL
Glucose140–180 mg/dL
Capillary refill time≤3 s (2026 SSC added CRT as a resuscitation endpoint)

8. Additional 2026 SSC Updates

  • Capillary refill time (CRT) added as a resuscitation endpoint alongside lactate
  • Antibiotic timing framework: structured decision support for antibiotic timing based on illness severity and likelihood of infection
  • Post-discharge care: explicit recommendations for psychological and physical rehabilitation post-sepsis
  • Blood pressure target of 60–65 mmHg conditionally recommended in selected older adults to reduce vasopressor burden

Organ Dysfunction Complication Summary

(Harrison's 22e, 2025)
SystemFrequencyKey Intervention
Neurologic (encephalopathy)54%Limit neurotoxic agents; treat underlying cause
Cardiovascular (shock)25%Fluids + vasopressors + hydrocortisone
Respiratory (ARDS)7%Lung-protective ventilation; prone
Renal (AKI)67%Avoid nephrotoxins; RRT if needed
Hepatic dysfunction50% of shockAvoid hypotension; enteral feeding
DIC35% of shockCryoprecipitate, FFP, platelets

Sources: Barash's Clinical Anesthesia 9e; Harrison's Principles 22e (2025); Goldman-Cecil Medicine; Rosen's Emergency Medicine; 2026 Surviving Sepsis Campaign Guidelines (Crit Care Med 2026;54:725-812, PMID 41869847).

iPD cardex for septic shock

Asking for Preferences

What format do you want the iPD cardex in? · Any specific patient details to pre-fill?

Reading File
Running Command

ls /home/daytona/skills/docx/scripts/office/ && ls /home/daytona/workspace/ 2>/dev/null || true

Running Command

mkdir -p /home/daytona/workspace/septic-shock-cardex && ls /home/daytona/workspace/septic-shock-cardex

Writing File

~/septic-shock-cardex/build.js

const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  AlignmentType, HeadingLevel, BorderStyle, WidthType, ShadingType,
  VerticalAlign, PageOrientation, Header, Footer, PageNumber,
  NumberFormat, UnderlineType
} = require('docx');
const fs = require('fs');

// ── Colour palette ──────────────────────────────────────────────────────────
const RED    = "C0392B";
const DKRED  = "922B21";
const BLUE   = "1A5276";
const LBLUE  = "D6EAF8";
const ORANGE = "CA6F1E";
const LORANGE= "FDEBD0";
const GREEN  = "1E8449";
const LGREEN = "D5F5E3";
const PURPLE = "6C3483";
const LPURPLE= "E8DAEF";
const DGREY  = "2C3E50";
const LGREY  = "EBF5FB";
const WHITE  = "FFFFFF";
const YELLOW = "F9E79F";
const LYELLOW= "FFFDE7";

// ── Helper: shaded cell ─────────────────────────────────────────────────────
function shadedCell(text, bgHex, fontHex, bold, fontSize, colSpan, align, vAlign) {
  return new TableCell({
    columnSpan: colSpan || 1,
    verticalAlign: vAlign || VerticalAlign.CENTER,
    shading: { fill: bgHex, type: ShadingType.CLEAR, color: "auto" },
    margins: { top: 60, bottom: 60, left: 100, right: 100 },
    children: [new Paragraph({
      alignment: align || AlignmentType.LEFT,
      children: [new TextRun({
        text: text,
        color: fontHex || "000000",
        bold: bold !== undefined ? bold : false,
        size: fontSize || 18,
        font: "Calibri"
      })]
    })]
  });
}

function headerCell(text, bgHex, colSpan) {
  return shadedCell(text, bgHex, WHITE, true, 19, colSpan, AlignmentType.CENTER);
}

function dataRow(label, value, bgHex) {
  return new TableRow({
    children: [
      shadedCell(label, bgHex || LGREY, DGREY, true, 18),
      shadedCell(value, WHITE, "000000", false, 18, 3)
    ]
  });
}

// ── Section title paragraph ─────────────────────────────────────────────────
function sectionTitle(text, color) {
  return new Paragraph({
    spacing: { before: 200, after: 60 },
    children: [new TextRun({
      text: text,
      bold: true,
      size: 24,
      color: color || BLUE,
      font: "Calibri"
    })]
  });
}

function spacer() {
  return new Paragraph({ spacing: { before: 80, after: 80 }, children: [new TextRun("")] });
}

// ── TITLE BLOCK ─────────────────────────────────────────────────────────────
function titleBlock() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({
        children: [
          headerCell("🏥  iPD CARDEX", RED, 2),
          headerCell("SEPTIC SHOCK", DKRED, 2)
        ]
      }),
      new TableRow({
        children: [
          shadedCell("Ward / Unit:", LGREY, DGREY, true, 18),
          shadedCell("ICU / HDU", WHITE, "000000", false, 18),
          shadedCell("Date:", LGREY, DGREY, true, 18),
          shadedCell("_____________", WHITE, "000000", false, 18)
        ]
      }),
      new TableRow({
        children: [
          shadedCell("Patient Name:", LGREY, DGREY, true, 18),
          shadedCell("___________________________", WHITE, "000000", false, 18),
          shadedCell("MRN:", LGREY, DGREY, true, 18),
          shadedCell("_______________", WHITE, "000000", false, 18)
        ]
      }),
      new TableRow({
        children: [
          shadedCell("Age / Sex / Weight:", LGREY, DGREY, true, 18),
          shadedCell("_____ yrs  /  M  F  /  _____ kg  (IBW: _____ kg)", WHITE, "000000", false, 18),
          shadedCell("Allergies:", LGREY, DGREY, true, 18),
          shadedCell("NKDA  /  _______________", WHITE, "000000", false, 18)
        ]
      }),
      new TableRow({
        children: [
          shadedCell("Admitting Diagnosis:", LGREY, DGREY, true, 18),
          shadedCell("Septic Shock — Source: ________________________", WHITE, "000000", false, 18),
          shadedCell("Consultant:", LGREY, DGREY, true, 18),
          shadedCell("___________________________", WHITE, "000000", false, 18)
        ]
      })
    ]
  });
}

// ── VITAL SIGNS / MONITORING ─────────────────────────────────────────────────
function monitoringTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("📊  MONITORING & TARGETS", BLUE, 4)] }),
      new TableRow({
        children: [
          headerCell("Parameter", DGREY, 1),
          headerCell("Target", DGREY, 1),
          headerCell("Frequency", DGREY, 1),
          headerCell("Current Value", DGREY, 1)
        ]
      }),
      ...[
        ["HR", "60–100 bpm", "Continuous"],
        ["BP (Arterial / NIBP)", "MAP ≥ 65 mmHg  (60–65 in elderly)", "Continuous (arterial line preferred)"],
        ["SpO₂", "90–96%", "Continuous"],
        ["RR", "12–20 /min", "Continuous / q1h"],
        ["Temperature", "Afebrile / normalise", "q4h"],
        ["Urine Output", "≥ 0.5 mL/kg/h", "Hourly"],
        ["Serum Lactate", "< 2 mmol/L  (clearance ≥10% q2h)", "q2h until normal"],
        ["Capillary Refill Time (CRT)", "≤ 3 seconds", "q2h"],
        ["CVP (if line in situ)", "8–12 mmHg (MV: 12–15)", "q4h"],
        ["ScvO₂", "≥ 70%", "q4–8h"],
        ["GCS / Neuro status", "Document baseline", "q1h"],
        ["Blood Glucose", "140–180 mg/dL", "q1–2h (if on insulin)"],
        ["Fluid Balance (I/O)", "Avoid positive balance post-resus", "Hourly / cumulative"],
        ["Daily Weight", "Trend / fluid overload", "Daily"],
      ].map(([p, t, f]) => new TableRow({
        children: [
          shadedCell(p, LGREY, DGREY, true, 17),
          shadedCell(t, LGREEN, GREEN, true, 17),
          shadedCell(f, WHITE, "000000", false, 17),
          shadedCell("", WHITE, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── INVESTIGATIONS ──────────────────────────────────────────────────────────
function investigationsTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("🔬  INVESTIGATIONS", BLUE, 4)] }),
      new TableRow({
        children: [
          headerCell("Investigation", DGREY, 1),
          headerCell("Frequency", DGREY, 1),
          headerCell("Purpose", DGREY, 1),
          headerCell("Result", DGREY, 1)
        ]
      }),
      ...[
        ["Blood cultures (×2 sets)", "On admission (before ABx)", "Identify organism & sensitivities"],
        ["CBC with differential", "Admission → Daily", "WBC, platelets (DIC screen)"],
        ["CMP / Electrolytes", "Admission → q8–12h", "K⁺, Na⁺, Creatinine, BUN"],
        ["Serum Lactate", "On admission → q2h", "Resuscitation endpoint"],
        ["ABG / VBG", "Admission → q4–8h", "pH, PaO₂, PaCO₂, HCO₃⁻"],
        ["Coagulation (PT, INR, aPTT)", "Admission → Daily", "DIC monitoring"],
        ["Fibrinogen", "Admission → Daily if DIC", "DIC — transfuse if <150 mg/dL"],
        ["D-dimer", "Admission", "DIC screening"],
        ["LFTs + Bilirubin", "Admission → Daily", "Hepatic dysfunction"],
        ["Procalcitonin (PCT)", "Admission → q48–72h", "Guide antibiotic de-escalation"],
        ["CRP", "Admission → Daily", "Inflammatory marker, trend"],
        ["Procalcitonin", "Admission", "Baseline; guide de-escalation"],
        ["Urinalysis + Urine C&S", "Admission", "Source identification"],
        ["Chest X-ray", "Admission → Daily if MV", "ARDS / effusion / infiltrates"],
        ["ECG", "Admission", "Rule out cardiac cause"],
        ["Echo (Bedside/POCUS)", "As needed", "Cardiac function, effusion, volume"],
        ["CT Chest/Abdomen/Pelvis", "If source unknown", "Identify occult source"],
      ].map(([i, f, p]) => new TableRow({
        children: [
          shadedCell(i, LGREY, DGREY, true, 17),
          shadedCell(f, WHITE, "000000", false, 17),
          shadedCell(p, WHITE, "000000", false, 17),
          shadedCell("", WHITE, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── FLUID RESUSCITATION ─────────────────────────────────────────────────────
function fluidTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("💧  FLUID RESUSCITATION", BLUE, 4)] }),
      new TableRow({
        children: [
          headerCell("Phase", DGREY, 1),
          headerCell("Fluid / Volume", DGREY, 1),
          headerCell("Rate / Condition", DGREY, 1),
          headerCell("Notes", DGREY, 1)
        ]
      }),
      ...[
        ["Initial Bolus (0–3h)", "Balanced crystalloid\n(Lactated Ringer's / PlasmaLyte)", "30 mL/kg over 1–3 h", "Avoid normal saline (hyperchloraemic acidosis); avoid HES (↑AKI)"],
        ["Further fluid challenges", "Balanced crystalloid 250–500 mL", "Only if fluid-responsive\n(PLR, PPV, SVV)", "Use dynamic assessments; CVP alone is unreliable"],
        ["Colloid adjunct", "20% Albumin 100 mL", "If large volumes required (>3 L crystalloid)", "Consider in refractory hypotension"],
        ["De-resuscitation phase", "Fluid removal / conservative strategy", "After haemodynamic stabilisation", "2026 SSC: active fluid removal recommended post-resus to prevent overload"],
        ["AVOID", "HES / Gelatin / Dextran", "—", "Associated with AKI and increased mortality"],
      ].map(([ph, fl, r, n]) => new TableRow({
        children: [
          shadedCell(ph, LBLUE, BLUE, true, 17),
          shadedCell(fl, WHITE, "000000", false, 17),
          shadedCell(r, WHITE, "000000", false, 17),
          shadedCell(n, LYELLOW, ORANGE, false, 17)
        ]
      }))
    ]
  });
}

// ── VASOPRESSORS / INOTROPES ────────────────────────────────────────────────
function vasopressorTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("💉  VASOPRESSORS & INOTROPES", RED, 4)] }),
      new TableRow({
        children: [
          headerCell("Agent", DKRED, 1),
          headerCell("Dose", DKRED, 1),
          headerCell("Line / Route", DKRED, 1),
          headerCell("Notes", DKRED, 1)
        ]
      }),
      ...[
        ["Norepinephrine\n(1st LINE)", "0.01–0.25 µg/kg/min\nStart 0.05 µg/kg/min, titrate", "Central line preferred\n(peripheral short-term if needed)", "Target MAP ≥65 mmHg; preferred over dopamine"],
        ["Vasopressin\n(2nd LINE — ADD ON)", "Fixed 0.03–0.04 units/min", "Central line", "Add when NE ≥0.25–0.5 µg/kg/min; do NOT use alone; steroid-sparing"],
        ["Epinephrine\n(3rd LINE)", "0.01–0.3 µg/kg/min", "Central line", "Add if NE + vasopressin insufficient; also for septic cardiomyopathy"],
        ["Dobutamine\n(for low CO)", "2–20 µg/kg/min", "Central or peripheral", "Add for low cardiac output; use with vasopressor; monitor for tachycardia"],
        ["Dopamine\n(AVOID routinely)", "Not recommended", "—", "Only in highly selected cases (bradycardia + low arrhythmia risk)"],
        ["Terlipressin / Levosimendan", "NOT RECOMMENDED", "—", "SSC 2021/2026: insufficient evidence"],
      ].map(([a, d, r, n]) => new TableRow({
        children: [
          shadedCell(a, LORANGE, ORANGE, true, 17),
          shadedCell(d, WHITE, "000000", false, 17),
          shadedCell(r, WHITE, "000000", false, 17),
          shadedCell(n, LYELLOW, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── ANTIBIOTICS ─────────────────────────────────────────────────────────────
function antibioticTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("💊  ANTIMICROBIALS", GREEN, 4)] }),
      new TableRow({
        children: [
          headerCell("Item", "1E8449", 1),
          headerCell("Details", "1E8449", 3)
        ]
      }),
      ...[
        ["Timing", "⚡ Administer within 1 HOUR of recognition — every hour of delay worsens mortality"],
        ["Blood Cultures", "Obtain ≥2 sets (peripheral + central) BEFORE antibiotics — do NOT delay >45 min for cultures"],
        ["Empiric Regimen\n(Community-onset)", "Piperacillin-Tazobactam 4.5 g IV q8h + Vancomycin 25–30 mg/kg loading dose\nOR Meropenem 1 g IV q8h if high ESBL/KPC risk"],
        ["Empiric Regimen\n(Hospital/ICU-onset)", "Meropenem 1–2 g IV q8h + Vancomycin 25–30 mg/kg loading\nConsider antifungal (Micafungin 100 mg IV daily) if high fungal risk"],
        ["Specific Source Adjustment", "Urinary: ceftriaxone ± gentamicin\nPulmonary: add azithromycin/levofloxacin\nIntra-abdominal: pip-tazo or meropenem\nSkin/soft tissue: add clindamycin"],
        ["De-escalation", "Daily review of cultures & sensitivities; narrow spectrum as soon as possible"],
        ["Duration", "7–10 days; shorter if good source control; longer for bacteraemia/endocarditis"],
        ["Procalcitonin-guided stop", "Use PCT trend to guide stopping — avoid using to START antibiotics"],
        ["Antifungals", "Only if HIGH risk (prolonged neutropenia, Candida colonisation, TPN, abdominal source)"],
      ].map(([item, details]) => new TableRow({
        children: [
          shadedCell(item, LGREEN, GREEN, true, 17),
          shadedCell(details, WHITE, "000000", false, 17, 3)
        ]
      }))
    ]
  });
}

// ── CORTICOSTEROIDS ─────────────────────────────────────────────────────────
function steroidTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("🧪  CORTICOSTEROIDS", PURPLE, 4)] }),
      new TableRow({
        children: [
          headerCell("Drug", "6C3483", 1),
          headerCell("Dose & Route", "6C3483", 1),
          headerCell("Indication / Condition", "6C3483", 1),
          headerCell("Notes", "6C3483", 1)
        ]
      }),
      ...[
        ["Hydrocortisone", "200 mg/day IV\n(50 mg q6h OR 200 mg infusion over 24h)", "Refractory septic shock: persisting vasopressor requirement despite adequate fluids", "Start when NE dose ≥0.25 µg/kg/min; reduces vasopressor duration; no proven mortality benefit"],
        ["Fludrocortisone\n(optional)", "50 µg PO/NG once daily", "Add-on to hydrocortisone (Annane protocol)", "Mineralocorticoid supplementation; continue for same duration as hydrocortisone"],
        ["Tapering", "Taper once vasopressors weaned", "Do NOT stop abruptly", "Gradual taper over 48–72h post-vasopressor discontinuation"],
      ].map(([d, dose, ind, n]) => new TableRow({
        children: [
          shadedCell(d, LPURPLE, PURPLE, true, 17),
          shadedCell(dose, WHITE, "000000", false, 17),
          shadedCell(ind, WHITE, "000000", false, 17),
          shadedCell(n, LYELLOW, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── RESPIRATORY SUPPORT ─────────────────────────────────────────────────────
function respiratoryTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("🫁  RESPIRATORY SUPPORT", BLUE, 4)] }),
      new TableRow({
        children: [
          headerCell("Mode", DGREY, 1),
          headerCell("Setting / Target", DGREY, 1),
          headerCell("Indication", DGREY, 1),
          headerCell("Notes", DGREY, 1)
        ]
      }),
      ...[
        ["Supplemental O₂", "SpO₂ 90–96% (avoid hyperoxia)", "All septic shock patients", "Nasal cannula 2–6 L/min or simple face mask"],
        ["HFNC (High-Flow Nasal Cannula)", "FiO₂ titrated, flow 40–60 L/min", "Mild-moderate hypoxia with adequate neurology", "First-line for non-intubated patients; delay intubation if tolerating"],
        ["Non-invasive ventilation (NIV)", "CPAP / BiPAP", "Cardiogenic pulmonary oedema / selected ARDS", "Avoid if haemodynamically unstable or altered consciousness"],
        ["Invasive MV (Intubation)", "Tidal volume: 6 mL/kg IBW\nPlateau pressure ≤30 cmH₂O\nDrive pressure ≤15 cmH₂O\nPEEP: titrate per ARDSnet table", "ARDS (P/F <300), refractory hypoxia, respiratory failure, airway protection", "Lung-protective ventilation mandatory; avoid volume-limited barotrauma"],
        ["Prone positioning", "≥12 hours/day", "Moderate-severe ARDS (P/F <150)", "NMB recommended to facilitate; coordinate team turns"],
        ["VV-ECMO", "Refer to ECMO centre", "Refractory ARDS (P/F <80 on optimal MV)", "Only if experienced team available; SSC 2021 suggestion"],
      ].map(([m, s, ind, n]) => new TableRow({
        children: [
          shadedCell(m, LBLUE, BLUE, true, 17),
          shadedCell(s, WHITE, "000000", false, 17),
          shadedCell(ind, WHITE, "000000", false, 17),
          shadedCell(n, LYELLOW, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── ORGAN SUPPORT / SUPPORTIVE CARE ─────────────────────────────────────────
function organSupportTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("🏥  ORGAN SUPPORT & SUPPORTIVE CARE", DGREY, 4)] }),
      new TableRow({
        children: [
          headerCell("System", DGREY, 1),
          headerCell("Intervention", DGREY, 2),
          headerCell("Target / Notes", DGREY, 1)
        ]
      }),
      ...[
        ["RENAL", "• Avoid nephrotoxins (NSAIDs, contrast, aminoglycosides)\n• Renal Replacement Therapy (CVVH/CVVHDF) if indicated", "Indications: progressive AKI, K⁺ >6, pH <7.1, urea >35, fluid overload\nNa-bicarb if AKI + pH <7.2"],
        ["HAEMATOLOGY\n(Transfusion)", "• RBC transfusion\n• FFP\n• Platelets\n• Cryoprecipitate", "Hb <7 g/dL (or <8 if CAD/acute haem)\nActive bleeding + coagulopathy\nPlt <10,000/µL; or <20,000 + bleeding\nFibrinogen <150 mg/dL + bleeding"],
        ["GLYCAEMIC\nCONTROL", "• Start insulin infusion when BGL ≥180 mg/dL\n• Avoid hypoglycaemia", "Target: 140–180 mg/dL\nCheck BGL q1–2h on insulin"],
        ["NUTRITION", "• Early enteral feeding (within 48h if shock controlled)\n• Parenteral if enteral not tolerated by day 7", "Avoid overfeeding; caloric target: 20–25 kcal/kg/day\nNasogastric tube if not eating"],
        ["STRESS ULCER\nPROPHYLAXIS", "• Pantoprazole 40 mg IV/PO once daily", "High-risk: MV ≥48h, coagulopathy, prior GI bleed\nDiscontinue when enteral feeding established"],
        ["DVT\nPROPHYLAXIS", "• Enoxaparin 40 mg SC daily (if no contraindication)\n• Compression stockings / IPC device", "Hold if Plt <50,000 or active bleeding\nUse mechanical prophylaxis if anticoagulation contraindicated"],
        ["SEDATION /\nANALGESIA", "• Analgesia-first (fentanyl/morphine)\n• Light sedation (RASS 0 to -1)\n• Daily sedation interruption", "SAT + SBT protocol daily\nAvoid heavy sedation; reduces ventilator days"],
        ["BOWEL CARE", "• Stool chart; lactulose if constipated", "Prevent ileus; facilitate early enteral nutrition"],
        ["ORAL CARE", "• Chlorhexidine oral rinse q6–8h if MV", "Prevent VAP"],
        ["ELEVATED HOB", "• Head of bed 30–45°", "Prevents aspiration and VAP"],
        ["GOALS OF CARE", "• Discuss prognosis and goals with patient/family\n• Integrate palliative care principles as appropriate", "ICU admission within 6h of diagnosis\nDocument code status"],
      ].map(([sys, int, t]) => new TableRow({
        children: [
          shadedCell(sys, LGREY, DGREY, true, 17),
          shadedCell(int, WHITE, "000000", false, 17, 2),
          shadedCell(t, LYELLOW, ORANGE, false, 16)
        ]
      }))
    ]
  });
}

// ── SOURCE CONTROL ──────────────────────────────────────────────────────────
function sourceControlTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("🎯  SOURCE CONTROL", DKRED, 4)] }),
      new TableRow({
        children: [
          headerCell("Action", DKRED, 1),
          headerCell("Timing", DKRED, 1),
          headerCell("Examples", DKRED, 2)
        ]
      }),
      ...[
        ["Identify source", "Immediate", "Clinical exam + imaging (CT, USS, X-ray) to find abscess, necrosis, obstruction"],
        ["Drain / decompress", "Within 6–12h of identification", "Percutaneous or surgical drainage of abscess; biliary decompression; empyema drainage"],
        ["Debride / resect", "As soon as surgically feasible", "Necrotising fasciitis: emergency OR; infarcted bowel: resection; infected prosthesis"],
        ["Remove IV devices", "Immediately if source suspected", "Remove CVC/peripheral line suspected as source; replace at new site"],
        ["Urology source", "Urgent urology review", "Urinary obstruction → nephrostomy or catheter; pyelonephritis with obstruction"],
        ["Gynaecological source", "Urgent gynaecology review", "Septic abortion, tubo-ovarian abscess, postpartum endometritis"],
      ].map(([a, t, e]) => new TableRow({
        children: [
          shadedCell(a, LORANGE, ORANGE, true, 17),
          shadedCell(t, WHITE, ORANGE, true, 17),
          shadedCell(e, WHITE, "000000", false, 17, 2)
        ]
      }))
    ]
  });
}

// ── ESCALATION / RED FLAGS ───────────────────────────────────────────────────
function escalationTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("🚨  ESCALATION TRIGGERS & RED FLAGS", RED, 4)] }),
      new TableRow({
        children: [
          headerCell("Parameter", DKRED, 1),
          headerCell("Threshold", DKRED, 1),
          headerCell("Action", DKRED, 2)
        ]
      }),
      ...[
        ["MAP", "< 55 mmHg despite vasopressors", "Escalate vasopressor; consider adding hydrocortisone; call senior"],
        ["Lactate", "Rising lactate or not clearing by 10%/2h", "Re-assess fluid status, vasopressors, cardiac output; consider POCUS/Echo"],
        ["Urine Output", "< 0.3 mL/kg/h for >2h", "IV fluid challenge; check foley patency; consider RRT referral"],
        ["SpO₂", "< 88% despite HFNC", "Consider NIV; escalate to intubation"],
        ["GCS", "Falling GCS (drop ≥2 points)", "Airway assessment; CT head; consider intubation"],
        ["HR", "> 150 or < 40 bpm", "12-lead ECG; treat arrhythmia; call cardiologist"],
        ["Temperature", "> 40°C or < 35°C", "Culture again; review antibiotics; cooling/warming measures"],
        ["Glucose", "< 70 mg/dL", "STOP insulin; 50 mL of 50% dextrose IV; recheck in 15 min"],
        ["Vasopressor requirement", "NE > 0.5 µg/kg/min", "Add vasopressin; consider hydrocortisone; senior review"],
        ["New organ dysfunction", "Any new organ involvement", "Review antibiotics; POCUS; source control review; ICU consult"],
      ].map(([p, t, a]) => new TableRow({
        children: [
          shadedCell(p, "FADBD2", DKRED, true, 17),
          shadedCell(t, WHITE, RED, true, 17),
          shadedCell(a, WHITE, "000000", false, 17, 2)
        ]
      }))
    ]
  });
}

// ── NURSING CARE ─────────────────────────────────────────────────────────────
function nursingTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("👩‍⚕️  NURSING CARE PLAN", BLUE, 2)] }),
      new TableRow({
        children: [
          headerCell("Problem / Need", DGREY, 1),
          headerCell("Nursing Interventions", DGREY, 1)
        ]
      }),
      ...[
        ["Haemodynamic instability", "• Continuous ECG, SpO₂, arterial BP monitoring\n• Hourly urine output via IDC\n• Record ALL fluid input and output\n• Report MAP <65 or UO <0.5 mL/kg/h immediately"],
        ["Risk of infection / sepsis progression", "• Strict aseptic technique for all procedures\n• Document IV line insertion date/site; change as per protocol\n• Observe catheter/wound/line sites for signs of infection"],
        ["Impaired tissue perfusion", "• Assess peripheries q2h (CRT, skin colour, temperature)\n• Reposition q2h; pressure area care\n• TED stockings / IPC device"],
        ["Risk of respiratory failure", "• Monitor RR, SpO₂, work of breathing q1h\n• Maintain HOB 30–45°\n• Suction as required; oral chlorhexidine q6h if intubated"],
        ["Altered level of consciousness", "• GCS/AVPU assessment q1h\n• Minimise sedation; agitation-sedation-delirium (CAM-ICU) screening\n• Reorientation; day/night cues; family presence"],
        ["Nutritional deficit", "• Insert NGT if not eating; commence EN per dietitian order\n• Monitor for gastric residuals\n• Blood glucose q1–2h if on insulin"],
        ["Communication / family support", "• Regular updates to family\n• Facilitate goals of care discussion with medical team\n• Chaplaincy/social work referral as needed"],
      ].map(([p, i]) => new TableRow({
        children: [
          shadedCell(p, LGREY, DGREY, true, 17),
          shadedCell(i, WHITE, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── MEDICATION CHART ─────────────────────────────────────────────────────────
function medicationTable() {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    rows: [
      new TableRow({ children: [headerCell("💊  REGULAR MEDICATIONS (Sample — Adjust per local guidelines)", GREEN, 6)] }),
      new TableRow({
        children: [
          headerCell("Drug", "1E8449", 1),
          headerCell("Dose", "1E8449", 1),
          headerCell("Route", "1E8449", 1),
          headerCell("Frequency", "1E8449", 1),
          headerCell("Indication", "1E8449", 1),
          headerCell("✓ Given", "1E8449", 1)
        ]
      }),
      ...[
        ["Norepinephrine", "Start 0.05 µg/kg/min — titrate to MAP ≥65", "IV infusion (CVC)", "Continuous", "Vasopressor", ""],
        ["Piperacillin-Tazobactam", "4.5 g", "IV (over 30 min)", "q8h × 7 days", "Empiric antibiotic", ""],
        ["Vancomycin", "25–30 mg/kg loading; AUC-guided", "IV (over 90–120 min)", "q8–12h (PK-guided)", "MRSA/Gram+ coverage", ""],
        ["Hydrocortisone", "50 mg", "IV bolus", "q6h (or 200 mg/24h infusion)", "Refractory shock", ""],
        ["Pantoprazole", "40 mg", "IV/PO", "Once daily", "Stress ulcer prophylaxis", ""],
        ["Enoxaparin", "40 mg", "SC", "Once daily", "DVT prophylaxis", ""],
        ["Insulin (actrapid)", "Per sliding scale / infusion", "IV infusion", "Continuous (if BGL ≥180)", "Glycaemic control", ""],
        ["Paracetamol", "1 g (if weight ≥50 kg)", "IV/PO/NG", "q6h (max 4 g/day)", "Antipyretic / analgesia", ""],
        ["Morphine / Fentanyl", "As prescribed", "IV PRN / infusion", "PRN or continuous", "Analgesia-first sedation", ""],
        ["Midazolam / Propofol", "Per sedation protocol", "IV infusion", "Continuous (if MV)", "Sedation (RASS target 0 to -1)", ""],
      ].map(([d, dose, r, f, ind, g]) => new TableRow({
        children: [
          shadedCell(d, LGREEN, GREEN, true, 17),
          shadedCell(dose, WHITE, "000000", false, 17),
          shadedCell(r, WHITE, "000000", false, 17),
          shadedCell(f, WHITE, "000000", false, 17),
          shadedCell(ind, WHITE, "000000", false, 17),
          shadedCell(g, WHITE, "000000", false, 17)
        ]
      }))
    ]
  });
}

// ── FOOTER ────────────────────────────────────────────────────────────────────
function footerPara() {
  return new Paragraph({
    alignment: AlignmentType.CENTER,
    spacing: { before: 120 },
    children: [
      new TextRun({
        text: "Based on SSC 2026 Guidelines (Crit Care Med 2026;54:725-812) | Harrison's 22e (2025) | Rosen's EM | Goldman-Cecil Medicine  |  For clinical use under supervising clinician — individualise to patient",
        size: 14,
        color: "888888",
        italics: true,
        font: "Calibri"
      })
    ]
  });
}

// ── ASSEMBLE DOCUMENT ────────────────────────────────────────────────────────
const doc = new Document({
  styles: {
    default: {
      document: {
        run: { font: "Calibri", size: 18 }
      }
    }
  },
  sections: [{
    properties: {
      page: {
        size: { orientation: PageOrientation.PORTRAIT },
        margin: { top: 600, bottom: 600, left: 700, right: 700 }
      }
    },
    children: [
      // Main title
      new Paragraph({
        alignment: AlignmentType.CENTER,
        spacing: { before: 0, after: 160 },
        children: [
          new TextRun({ text: "INTENSIVE CARE PATIENT CARDEX", bold: true, size: 36, color: DKRED, font: "Calibri" }),
          new TextRun({ text: "  |  SEPTIC SHOCK", bold: true, size: 36, color: BLUE, font: "Calibri" })
        ]
      }),

      // Patient block
      titleBlock(),
      spacer(),

      // 1. Monitoring
      sectionTitle("1.  MONITORING & TARGETS", BLUE),
      monitoringTable(),
      spacer(),

      // 2. Investigations
      sectionTitle("2.  INVESTIGATIONS", BLUE),
      investigationsTable(),
      spacer(),

      // 3. Fluid resuscitation
      sectionTitle("3.  FLUID RESUSCITATION", BLUE),
      fluidTable(),
      spacer(),

      // 4. Vasopressors
      sectionTitle("4.  VASOPRESSORS & INOTROPES", RED),
      vasopressorTable(),
      spacer(),

      // 5. Antimicrobials
      sectionTitle("5.  ANTIMICROBIALS", GREEN),
      antibioticTable(),
      spacer(),

      // 6. Source control
      sectionTitle("6.  SOURCE CONTROL", DKRED),
      sourceControlTable(),
      spacer(),

      // 7. Corticosteroids
      sectionTitle("7.  CORTICOSTEROIDS", PURPLE),
      steroidTable(),
      spacer(),

      // 8. Respiratory
      sectionTitle("8.  RESPIRATORY SUPPORT", BLUE),
      respiratoryTable(),
      spacer(),

      // 9. Organ support
      sectionTitle("9.  ORGAN SUPPORT & SUPPORTIVE CARE", DGREY),
      organSupportTable(),
      spacer(),

      // 10. Medications
      sectionTitle("10.  MEDICATION CHART (Sample)", GREEN),
      medicationTable(),
      spacer(),

      // 11. Nursing
      sectionTitle("11.  NURSING CARE PLAN", BLUE),
      nursingTable(),
      spacer(),

      // 12. Escalation
      sectionTitle("12.  ESCALATION TRIGGERS & RED FLAGS", RED),
      escalationTable(),
      spacer(),

      footerPara()
    ]
  }]
});

Packer.toBuffer(doc).then(buffer => {
  fs.writeFileSync("/home/daytona/workspace/septic-shock-cardex/Septic_Shock_iPD_Cardex.docx", buffer);
  console.log("✅ Created: Septic_Shock_iPD_Cardex.docx");
}).catch(err => {
  console.error("❌ Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/septic-shock-cardex && node build.js

Running Command

python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/septic-shock-cardex/Septic_Shock_iPD_Cardex.docx

Running Command

python3 -c " import zipfile, os path = '/home/daytona/workspace/septic-shock-cardex/Septic_Shock_iPD_Cardex.docx' size = os.path.getsize(path) print(f'File size: {size} bytes ({size/1024:.1f} KB)') with zipfile.ZipFile(path) as z: names = z.namelist() print('Contents:', names[:8]) # Check word/document.xml is valid XML import xml.etree.ElementTree as ET xml = z.read('word/document.xml') ET.fromstring(xml) print('XML valid: word/document.xml OK') "

File is valid (20.4 KB, clean XML). Here's your download:

Septic Shock iPD Cardex

Word Document · DOCX


What's inside the cardex (12 colour-coded sections):

#SectionContents
1Patient HeaderName, MRN, age/sex/weight, allergies, source, consultant
2Monitoring & Targets14 parameters with numeric targets and frequency
3Investigations17 tests — timing, purpose, result column
4Fluid ResuscitationInitial bolus → dynamic challenges → de-resuscitation (2026 SSC)
5Vasopressors & InotropesNE → vasopressin → epi → dobutamine with doses and lines
6Antimicrobials1-hour rule, cultures, empiric regimens (community vs. HAP), de-escalation
7Source ControlTiming, drainage, debridement, device removal by source type
8CorticosteroidsHydrocortisone 200 mg/day + fludrocortisone, taper protocol
9Respiratory SupportSpO₂ targets, HFNC, lung-protective MV settings, proning, ECMO
10Organ SupportRenal, transfusion thresholds, glucose, nutrition, SUP, DVT, sedation
11Medication Chart10 common drugs with dose/route/frequency/indication + signature box
12Nursing Care Plan7 care problems with interventions
13Escalation / Red Flags10 thresholds with immediate actions
Based on SSC 2026 Guidelines (Crit Care Med 2026;54:725-812) + Harrison's 22e + Rosen's EM.
This is a shared conversation. Sign in to Orris to start your own chat.