Management of septic shock from medicine perspective
Surviving Sepsis Campaign 2021 septic shock management official guideline norepinephrine 30 mL/kg antibiotics source control
"septic shock"[MeSH Terms] AND treatment
https://www.sccm.org/clinical-resources/guidelines/guideline…
https://www.sccm.org/clinical-resources/guidelines/guideline…
| Target/indicator | Desired trend |
|---|---|
| MAP | ≥65 mmHg, individualized when needed |
| Urine output | ≥0.5 mL/kg/hour |
| Lactate | Falling/clearing, interpreted in context |
| Mentation and peripheral perfusion | Improving |
| Capillary refill | Improving |
| Oxygenation and work of breathing | Improving |
| Fluid balance | Avoid progressive overload |
Create a one-page septic shock management algorithm
"septic shock"[MeSH Terms] AND treatment
site:sccm.org Surviving Sepsis Campaign 2021 septic shock antimicrobial 1 hour norepinephrine fluid resuscitation MAP 65
Septic shock: Suspected/confirmed infection with hypotension and tissue hypoperfusion, requiring vasopressors to maintain MAP ≥65 mmHg despite adequate fluid resuscitation.
Action: Treat as a time-critical ICU emergency.
SUSPECT SEPTIC SHOCK
↓
Activate sepsis pathway, call senior/ICU team, ABCDE assessment
• Oxygen; secure airway/intubate if respiratory failure, exhaustion, low GCS, or severe hypoxemia
• Cardiac monitor, SpO2, frequent BP or arterial line, temperature
• 2 large-bore IV lines; urinary catheter; monitor hourly urine output
↓
WITHIN 1 HOUR: RESUSCITATE AND INVESTIGATE IN PARALLEL
• Measure lactate and repeat if elevated
• Blood cultures ×2 and culture likely source, if this does not delay therapy
• CBC, electrolytes, renal/liver function, glucose, coagulation, ABG/VBG
• Imaging directed at likely focus: CXR, ultrasound, CT, echocardiography as indicated
• Give broad-spectrum IV antimicrobials immediately, ideally within 1 hour
↓
FLUID RESUSCITATION
• Balanced crystalloid: 30 mL/kg IV within first 3 hours
• Use smaller aliquots and reassess more frequently if heart failure, CKD, or pulmonary edema
• Assess fluid responsiveness dynamically:
passive leg raise, stroke volume/echo, pulse-pressure variation where appropriate
• Avoid fluid overload. Consider albumin only after large crystalloid requirements.
↓
IS MAP <65 mmHg OR IS HYPOPERFUSION PERSISTENT?
├─ NO → Continue reassessment and treat infection source
└─ YES
↓
VASOPRESSOR SUPPORT
• Start norepinephrine: first-line agent
- May start through a suitable, closely monitored peripheral IV while central access is arranged
- Titrate to initial MAP target ≥65 mmHg
• If escalating norepinephrine requirement: add vasopressin
• If still hypotensive: add epinephrine
• If low cardiac output/myocardial dysfunction with persistent hypoperfusion:
consider dobutamine with norepinephrine
↓
SOURCE CONTROL - AS SOON AS FEASIBLE
• Drain abscess/empyema
• Debride necrotizing infection
• Remove infected line/device after alternate access obtained
• Relieve biliary or urinary obstruction
• Surgery/interventional radiology for perforation or intra-abdominal source
↓
PERSISTENT VASOPRESSOR-DEPENDENT SHOCK?
• Hydrocortisone 200 mg/day IV
(50 mg IV every 6 hours or continuous infusion)
↓
ONGOING ICU CARE
• Reassess perfusion: mental state, capillary refill, skin perfusion, serial lactate
• Urine output target: ≥0.5 mL/kg/hour
• Oxygen/ventilatory support; use lung-protective ventilation if ARDS
• Insulin if glucose ≥180 mg/dL; usual target 144-180 mg/dL
• Restrictive RBC transfusion strategy: usually Hb <7 g/dL,
unless bleeding, acute ischemia, or severe hypoxemia
• Renal replacement therapy for conventional indications
• VTE prophylaxis, stress-ulcer prophylaxis when indicated, early enteral nutrition
• Daily review: cultures, antibiotic de-escalation, duration, source control, fluid balance
Turn this algorithm into a one-page PDF handout
~/
Surviving Sepsis Campaign adult guidelines septic shock 2026 norepinephrine antimicrobials within 1 hour
mkdir -p "/tmp/workspace/septic-shock-handout/src" "/tmp/workspace/septic-shock-handout/output" && python -c "import reportlab, pypdf; print('dependencies available')"
~/septic-shock-handout/src/create_handout.py
from reportlab.lib.pagesizes import landscape, A4
from reportlab.pdfgen import canvas
from reportlab.lib import colors
from reportlab.pdfbase.pdfmetrics import stringWidth
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib.utils import simpleSplit
from pypdf import PdfReader
OUT = '/tmp/workspace/septic-shock-handout/output/Septic_Shock_Management_Algorithm.pdf'
W, H = landscape(A4)
# Use standard Helvetica for widest compatibility
FONT = 'Helvetica'
BOLD = 'Helvetica-Bold'
NAVY = colors.HexColor('#12324A')
BLUE = colors.HexColor('#1E6E93')
TEAL = colors.HexColor('#008C95')
GREEN = colors.HexColor('#247A55')
AMBER = colors.HexColor('#B56B00')
RED = colors.HexColor('#A83232')
PALE_BLUE = colors.HexColor('#EAF4F8')
PALE_TEAL = colors.HexColor('#E9F7F5')
PALE_AMBER = colors.HexColor('#FFF5DE')
PALE_RED = colors.HexColor('#FCEDED')
PALE_GREY = colors.HexColor('#F3F6F7')
TEXT = colors.HexColor('#1F2D36')
MUTED = colors.HexColor('#52636D')
def text(c, x, y, s, size=8, font=FONT, color=TEXT):
c.setFont(font, size)
c.setFillColor(color)
c.drawString(x, y, s)
def wrapped(c, x, y_top, width, s, size=7.2, leading=8.5, font=FONT, color=TEXT, bullet=None):
c.setFont(font, size)
c.setFillColor(color)
lines = simpleSplit(s, font, size, width - (9 if bullet else 0))
y = y_top
for i, line in enumerate(lines):
if bullet and i == 0:
c.drawString(x, y, bullet)
c.drawString(x + (9 if bullet else 0), y, line)
y -= leading
return y
def box(c, x, y, w, h, title, items, accent=BLUE, fill=colors.white, title_size=8.5, body_size=7.1):
c.setFillColor(fill)
c.setStrokeColor(colors.HexColor('#C7D6DD'))
c.roundRect(x, y, w, h, 5, fill=1, stroke=1)
c.setFillColor(accent)
c.roundRect(x, y+h-20, w, 20, 5, fill=1, stroke=0)
c.rect(x, y+h-20, w, 6, fill=1, stroke=0)
text(c, x+7, y+h-13.5, title, title_size, BOLD, colors.white)
cursor = y+h-29
for item in items:
cursor = wrapped(c, x+7, cursor, w-14, item, body_size, body_size+1.5, FONT, TEXT, '•') - 2
def arrow(c, x1, y1, x2, y2, color=TEAL):
c.setStrokeColor(color)
c.setFillColor(color)
c.setLineWidth(1.6)
c.line(x1, y1, x2, y2)
# downward arrowhead
if abs(x2-x1) < 2:
c.line(x2, y2, x2-3.5, y2+5)
c.line(x2, y2, x2+3.5, y2+5)
c = canvas.Canvas(OUT, pagesize=landscape(A4))
c.setTitle('Adult Septic Shock Management Algorithm')
c.setAuthor('Orris')
c.setSubject('One-page clinical handout')
# Header
c.setFillColor(NAVY)
c.rect(0, H-53, W, 53, fill=1, stroke=0)
text(c, 24, H-27, 'ADULT SEPTIC SHOCK', 19, BOLD, colors.white)
text(c, 24, H-44, 'One-page management algorithm | Treat as a time-critical ICU emergency', 9, FONT, colors.HexColor('#D7EBF4'))
# Definition capsule
c.setFillColor(colors.HexColor('#1F5879'))
c.roundRect(W-315, H-43, 291, 25, 11, fill=1, stroke=0)
text(c, W-305, H-33, 'Shock: infection + hypoperfusion + vasopressor need after fluids', 7.5, BOLD, colors.white)
# Main lane dimensions
left, gap = 24, 10
col_w = 178
x1, x2, x3, x4 = left, left+col_w+gap, left+2*(col_w+gap), left+3*(col_w+gap)
y_top = H-65
# Column 1
box(c, x1, 303, col_w, 185, '1. RECOGNIZE & ACT NOW', [
'Activate sepsis pathway. Call senior clinician and ICU team.',
'ABCDE: oxygen, monitors, 2 large-bore IV lines. Consider arterial line.',
'Insert urinary catheter and chart hourly output.',
'Airway/ventilation support if hypoxemia, fatigue, reduced consciousness, or respiratory failure.'
], RED, PALE_RED)
arrow(c, x1+col_w/2, 303, x1+col_w/2, 290)
box(c, x1, 108, col_w, 174, '2. FIRST HOUR: DO IN PARALLEL', [
'Measure lactate. CBC, renal/liver profile, electrolytes, glucose, coagulation, ABG/VBG.',
'Obtain blood cultures x2 and cultures from suspected focus if this does not delay therapy.',
'Give empiric broad-spectrum IV antimicrobials immediately, ideally within 1 hour.',
'Obtain source-directed imaging: CXR, ultrasound, CT, echocardiography as appropriate.'
], AMBER, PALE_AMBER)
# Column 2
box(c, x2, 303, col_w, 185, '3. FLUID RESUSCITATION', [
'Use balanced crystalloid as first-line fluid.',
'Give 30 mL/kg IV crystalloid in the first 3 hours, with frequent reassessment.',
'Use smaller boluses in heart failure, CKD, or pulmonary edema.',
'Assess response dynamically: passive leg raise, bedside echo/stroke volume, pulse-pressure variation where appropriate.',
'Avoid fluid overload. Consider albumin only after large crystalloid requirements.'
], BLUE, PALE_BLUE)
arrow(c, x2+col_w/2, 303, x2+col_w/2, 290)
box(c, x2, 108, col_w, 174, 'RESUSCITATION ENDPOINTS', [
'Initial MAP target: 65 mmHg.',
'Urine output: at least 0.5 mL/kg/hour.',
'Improving mentation, capillary refill, skin perfusion, and lactate trend.',
'Repeat clinical and dynamic fluid assessment frequently. Do not chase fixed CVP/ScvO2 targets.'
], TEAL, PALE_TEAL)
# Column 3
box(c, x3, 303, col_w, 185, '4. HYPOTENSION OR POOR PERFUSION?', [
'If MAP remains below 65 mmHg or hypoperfusion continues during fluids, begin vasopressor promptly.',
'A well-monitored peripheral IV may be used while central access is obtained.'
], RED, PALE_RED)
arrow(c, x3+col_w/2, 303, x3+col_w/2, 290)
box(c, x3, 108, col_w, 174, '5. VASOPRESSOR ESCALATION', [
'Norepinephrine: first-line. Titrate to MAP at least 65 mmHg.',
'Escalating norepinephrine requirement: add vasopressin.',
'Persistent inadequate MAP: add epinephrine.',
'Persistent hypoperfusion with low cardiac output or septic myocardial dysfunction: consider dobutamine with norepinephrine.',
'Avoid dopamine as routine first-line therapy.'
], BLUE, PALE_BLUE)
# Column 4
box(c, x4, 303, col_w, 185, '6. SOURCE CONTROL', [
'Identify an anatomical source and achieve control as soon as medically and logistically feasible.',
'Drain abscess/empyema; debride necrotizing infection; remove infected line after alternative access; relieve biliary/urinary obstruction; surgery or IR for intra-abdominal source.'
], GREEN, PALE_TEAL)
arrow(c, x4+col_w/2, 303, x4+col_w/2, 290)
box(c, x4, 108, col_w, 174, '7. PERSISTENT SHOCK & ICU CARE', [
'Ongoing vasopressor requirement: hydrocortisone 200 mg/day IV.',
'ARDS: lung-protective ventilation. Treat glucose at 180 mg/dL or higher; usual target 144-180 mg/dL.',
'Restrictive RBC strategy: usually transfuse at Hb below 7 g/dL, unless special circumstances.',
'RRT for conventional indications. VTE prophylaxis, stress-ulcer prophylaxis when indicated, and early enteral nutrition.',
'Review cultures and de-escalate antimicrobials daily.'
], TEAL, PALE_TEAL)
# Caution strip
c.setFillColor(NAVY)
c.roundRect(24, 65, W-48, 29, 5, fill=1, stroke=0)
text(c, 33, 82, 'AVOID ROUTINE USE:', 7.8, BOLD, colors.white)
text(c, 129, 82, 'hydroxyethyl starch, dopamine as first-line vasopressor, IV vitamin C, IV immunoglobulin,', 7.5, FONT, colors.white)
text(c, 129, 72, 'or bicarbonate solely to improve hemodynamics in lactic acidosis.', 7.5, FONT, colors.white)
# Footer
text(c, 24, 45, 'Clinical aid for adult patients. Apply local antimicrobial guidance and seek critical-care support early.', 6.7, BOLD, MUTED)
text(c, 24, 32, 'Reference: Surviving Sepsis Campaign Adult Guidelines (SCCM, 2026). Adapt to patient factors, local protocols, and senior advice.', 6.2, FONT, MUTED)
text(c, W-137, 32, 'Educational handout | 02 Oct 2026', 6.2, FONT, MUTED)
c.showPage()
c.save()
reader = PdfReader(OUT)
assert len(reader.pages) == 1, f'Expected 1 page, got {len(reader.pages)}'
text_out = reader.pages[0].extract_text() or ''
for phrase in ['ADULT SEPTIC SHOCK', 'FIRST HOUR', 'Norepinephrine', 'SOURCE CONTROL']:
assert phrase in text_out, f'Missing text: {phrase}'
print(f'Created {OUT} | pages={len(reader.pages)} | extracted_chars={len(text_out)}')
python "/tmp/workspace/septic-shock-handout/src/create_handout.py" && ls -lh "/tmp/workspace/septic-shock-handout/output/Septic_Shock_Management_Algorithm.pdf"
Septic Shock Management Algorithm
PDF Document · PDF