Dengue shock syndrome management
dengue shock AND fluid
WHO dengue shock syndrome management fluid resuscitation guideline
site:cdc.gov dengue clinical care severe dengue shock intravenous fluid resuscitation
https://www.cdc.gov/dengue/media/pdfs/2024/05/20240521_34284…
| Clinical pattern after fluids | Likely issue | Action |
|---|---|---|
| Persistent shock + rising/high Hct | Ongoing plasma leakage, inadequate intravascular replacement | Repeat carefully assessed isotonic-fluid bolus; ICU input. Consider colloid only for refractory shock after adequate crystalloid, following local protocol. |
| Persistent shock + falling Hct, especially with bleeding | Occult or overt hemorrhage | Give blood, not repeated large crystalloid volumes. |
| Improving perfusion + stable/minimally changing Hct | Response to resuscitation | Taper fluid rate promptly. |
| Respiratory distress, crackles, rising JVP, effusions, falling Hct during recovery | Fluid overload/reabsorption | Reduce or stop IV fluid, give oxygen, reassess cardiac function and consider diuresis only when intravascular status is adequate. |
Create a quick-reference PDF for dengue shock management
dengue shock AND fluid
CDC dengue shock case management 20 mL/kg 15 30 minutes PDF
~/
mkdir -p "/tmp/workspace/dengue-shock-quick-reference/src" "/tmp/workspace/dengue-shock-quick-reference/output" && python -c "import reportlab; print('reportlab available')"
~/dengue-shock-quick-reference/src/create_pdf.py
from reportlab.lib import colors
from reportlab.lib.colors import HexColor
from reportlab.lib.pagesizes import landscape, A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_LEFT, TA_CENTER
from reportlab.lib.units import mm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib.fonts import addMapping
OUT = '/tmp/workspace/dengue-shock-quick-reference/output/Dengue_Shock_Management_Quick_Reference.pdf'
PAGE = landscape(A4)
MARGIN = 11*mm
NAVY = HexColor('#0B2942')
TEAL = HexColor('#007C83')
PALE_TEAL = HexColor('#E7F5F5')
RED = HexColor('#A82F2F')
PALE_RED = HexColor('#FDEBEC')
AMBER = HexColor('#A65B00')
PALE_AMBER = HexColor('#FFF4E2')
GRAY = HexColor('#53616B')
LIGHT = HexColor('#F3F6F7')
BORDER = HexColor('#C8D3D7')
styles = getSampleStyleSheet()
base = ParagraphStyle('base', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.25, leading=9.1, textColor=NAVY, spaceAfter=0)
small = ParagraphStyle('small', parent=base, fontSize=6.55, leading=7.7)
tiny = ParagraphStyle('tiny', parent=base, fontSize=5.85, leading=6.8, textColor=GRAY)
section = ParagraphStyle('section', parent=base, fontName='Helvetica-Bold', fontSize=8.3, leading=10, textColor=colors.white, alignment=TA_LEFT)
title = ParagraphStyle('title', parent=base, fontName='Helvetica-Bold', fontSize=18, leading=21, textColor=colors.white)
subtitle = ParagraphStyle('subtitle', parent=base, fontSize=7.6, leading=9.5, textColor=HexColor('#DCEBF0'))
boxhead = ParagraphStyle('boxhead', parent=base, fontName='Helvetica-Bold', fontSize=8.1, leading=10, textColor=NAVY)
center = ParagraphStyle('center', parent=base, alignment=TA_CENTER, fontName='Helvetica-Bold', fontSize=7.8, leading=9)
P = lambda text, style=base: Paragraph(text, style)
def box(title_text, body, bg=colors.white, head_color=NAVY):
data = [[P(title_text, ParagraphStyle('bh_'+title_text[:5], parent=boxhead, textColor=head_color)), P(body, base)]]
t = Table(data, colWidths=[42*mm, 75*mm])
t.setStyle(TableStyle([
('BACKGROUND',(0,0),(-1,-1),bg), ('BOX',(0,0),(-1,-1),0.45,BORDER),
('VALIGN',(0,0),(-1,-1),'TOP'), ('LEFTPADDING',(0,0),(-1,-1),4.5),
('RIGHTPADDING',(0,0),(-1,-1),4.5), ('TOPPADDING',(0,0),(-1,-1),4), ('BOTTOMPADDING',(0,0),(-1,-1),4),
('LINEAFTER',(0,0),(0,0),0.35,BORDER),
]))
return t
story=[]
# Header
header = Table([[P('DENGUE SHOCK MANAGEMENT', title), P('QUICK REFERENCE | ADULTS & CHILDREN', subtitle)]], colWidths=[165*mm, 100*mm])
header.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),NAVY),('VALIGN',(0,0),(-1,-1),'MIDDLE'),('LEFTPADDING',(0,0),(-1,-1),7),('RIGHTPADDING',(0,0),(-1,-1),7),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)]))
story += [header, Spacer(1,4)]
alert = Table([[P('<b>EMERGENCY:</b> DSS = severe dengue with plasma leakage causing compensated or hypotensive shock. Admit, obtain senior/critical-care support, and start isotonic IV resuscitation immediately.', ParagraphStyle('alert', parent=base, fontSize=8, leading=10, textColor=RED))]], colWidths=[265*mm])
alert.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),PALE_RED),('BOX',(0,0),(-1,-1),0.7,RED),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)]))
story += [alert, Spacer(1,4)]
# Two-column body
left = []
left.append(box('1. RECOGNIZE SHOCK', '<b>Compensated:</b> tachycardia, cool extremities, delayed capillary refill, weak pulse, narrow pulse pressure, oliguria, restlessness. <b>Hypotensive:</b> late and preterminal. Warning signs: abdominal pain, persistent vomiting, fluid accumulation, mucosal bleeding, lethargy/restlessness, hepatomegaly, oliguria.', PALE_AMBER, AMBER))
left.append(Spacer(1,3))
left.append(box('2. FIRST 5 MINUTES', '• ABC, oxygen if hypoxemic/respiratory distress<br/>• 1-2 large-bore IV lines; monitor ECG, BP, SpO<sub>2</sub><br/>• CBC + <b>hematocrit before and after bolus</b>, group & crossmatch, glucose, electrolytes/renal function, blood gas/lactate; coagulation tests if bleeding<br/>• Strict input-output, catheterize in shock; frequent reassessment', PALE_TEAL, TEAL))
left.append(Spacer(1,3))
left.append(box('3. INITIAL FLUID', '<b>Use isotonic crystalloid only:</b> 0.9% saline or Ringer lactate.<br/><br/><b>20 mL/kg IV over 15-30 min</b> → reassess perfusion, BP/pulse pressure, mental status, urine output, Hct, breathing and fluid overload. If shock persists without overload, give up to <b>2 additional 20 mL/kg boluses</b>, reassessing after every bolus.', colors.white, NAVY))
right = []
right.append(box('4. AFTER EACH BOLUS', '<b>Improved:</b> taper promptly: 10 mL/kg/h for 1-2 h, then 5-7 mL/kg/h for 2-4 h, 3-5 mL/kg/h for 2-4 h, then 2-4 mL/kg/h. Stop IV fluids when oral intake is adequate and critical phase is resolving.<br/><br/><b>Target:</b> restored perfusion with minimum fluid needed. Urine output generally ≥0.5 mL/kg/h in adults; often >1 mL/kg/h in children.', PALE_TEAL, TEAL))
right.append(Spacer(1,3))
right.append(box('5. PERSISTENT SHOCK: USE HCT', '<b>Shock + rising/high Hct:</b> ongoing plasma leakage → carefully reassess and repeat guided crystalloid. Consider colloid only for refractory shock after adequate crystalloid, per local protocol.<br/><br/><b>Shock + falling Hct / overt bleeding:</b> hemorrhage → transfuse blood, not repeated large crystalloid volumes. <b>PRBC 5-10 mL/kg</b> or <b>whole blood 10-20 mL/kg</b>.', PALE_AMBER, AMBER))
right.append(Spacer(1,3))
right.append(box('6. ICU / REFRACTORY SHOCK', 'Evaluate occult bleeding, acidosis, myocarditis/cardiac dysfunction, sepsis/coinfection and other causes. Use bedside ultrasound/echocardiography where available. Correct hypoglycemia and severe metabolic derangements. If hypoperfusion persists after appropriately guided volume resuscitation, use vasopressors with critical-care support.', colors.white, NAVY))
columns = Table([[left, right]], colWidths=[130*mm,130*mm])
columns.setStyle(TableStyle([('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),0),('RIGHTPADDING',(0,0),(-1,-1),0)]))
story += [columns, Spacer(1,4)]
# Bottom safety band
avoid_body = '<b>AVOID:</b> prophylactic platelet transfusion (does not prevent bleeding and may overload), aspirin/NSAIDs, IM injections, hypotonic fluids, routine corticosteroids or IVIG, and excessive IV fluid after leakage resolves.'
overload_body = '<b>FLUID OVERLOAD:</b> respiratory distress, crackles, pleural effusion, rising JVP, falling Hct during recovery. Reduce/stop IV fluid, oxygenate, assess cardiac function. Diuresis only after intravascular volume is adequate.'
bottom = Table([[P(avoid_body, small), P(overload_body, small)]], colWidths=[130*mm,130*mm])
bottom.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),PALE_RED),('BOX',(0,0),(-1,-1),0.45,RED),('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),('LINEAFTER',(0,0),(0,0),0.35,RED)]))
story += [bottom, Spacer(1,3)]
foot = P('<b>Clinical-use note:</b> This aid supports, but does not replace, local dengue protocols, senior clinical judgement, or ICU consultation. Use lower volumes and closer monitoring in pregnancy, age >65 years, heart failure, chronic liver disease, or kidney failure. Sources: CDC Dengue Case Management Pocket Guide (2024); CDC Yellow Book Dengue guidance; <i>Red Book 2021</i>, p. 523; <i>Park\'s Textbook of Preventive and Social Medicine</i>, p. 292.', tiny)
story.append(foot)
doc = SimpleDocTemplate(OUT, pagesize=PAGE, rightMargin=MARGIN, leftMargin=MARGIN, topMargin=8*mm, bottomMargin=7*mm, title='Dengue Shock Management Quick Reference', author='Orris')
doc.build(story)
print(OUT)
python "/tmp/workspace/dengue-shock-quick-reference/src/create_pdf.py" && ls -lh "/tmp/workspace/dengue-shock-quick-reference/output/Dengue_Shock_Management_Quick_Reference.pdf"
python -c "from pypdf import PdfReader; p='/tmp/workspace/dengue-shock-quick-reference/output/Dengue_Shock_Management_Quick_Reference.pdf'; r=PdfReader(p); print('pages=',len(r.pages)); text=r.pages[0].extract_text(); print('chars=',len(text)); print(text[:1000])"
Dengue Shock Management Quick Reference
PDF Document · PDF