Doxycycline will effective in gastroentritis pt had vomiting since4 day no fever loose stool

Reading File
Finding Sources
Finding Sources
Searching PubMed

doxycycline gastroenteritis treatment

Reading File
Finding Sources
I now have enough data to give a thorough, evidence-based answer.

Doxycycline in Gastroenteritis - Clinical Assessment

Short answer: Doxycycline is NOT routinely appropriate for this patient. The presentation (vomiting x4 days, loose stools, no fever) is most consistent with viral or non-invasive bacterial gastroenteritis, where antibiotics provide no benefit. Doxycycline has specific, narrow indications in GI infections.

Is an Antibiotic Even Needed?

Per Rosen's Emergency Medicine (a major EM reference):
"In general, antibiotics are not indicated for the treatment of the vast majority of cases of acute gastroenteritis."
Empirical antibiotic therapy is only considered when the patient:
  • Appears toxic
  • Has fever (your patient has NONE)
  • Has dysentery (bloody stools - not described here)
  • Is immunocompromised
  • Has severe traveler's diarrhea
  • Has suspected C. difficile colitis
Your patient has none of these indications.

When Is Doxycycline Actually Used in GI Infections?

Doxycycline is a second-line/specific-pathogen antibiotic for these GI conditions:
PathogenRole of DoxycyclineNotes
Vibrio cholerae (Cholera)First-line adjunct to rehydration (single dose 300 mg)Reduces duration and stool shedding
Yersinia enterocoliticaAlternative (with TMP-SMX or fluoroquinolone)Rarely needed
BrucellaWith gentamicinNot typical GI presentation
V. parahaemolyticusMay shorten illness; used if severeUsually self-limiting
Source: Jawetz Medical Microbiology 28E; Rosen's Emergency Medicine; Katzung Pharmacology 16E
Cholera presents with profuse watery ("rice-water") stools, often severe dehydration - very different from a routine gastroenteritis presentation.

What Should This Patient Actually Receive?

Priority: Rehydration
  • Oral rehydration solution (ORS) is the cornerstone of treatment
  • 4 days of vomiting raises concern for dehydration - assess for IV fluids if oral intake is not tolerated
Antiemetics (to help with vomiting):
  • Ondansetron (ODT) 4-8 mg is the preferred antiemetic for acute gastroenteritis
Antimotility agents (if not bacterial dysentery):
  • Loperamide 4 mg initially, then 2 mg after each loose stool (max 16 mg/day) - for adults only
Empirical antibiotics (if you feel they are warranted):
  • If fever develops or the patient looks toxic: Azithromycin 500 mg/day x3 days or Ciprofloxacin 500 mg BID x3-5 days are the first-line empirical choices - NOT doxycycline
Diet: Continue feeding; avoid dairy and fatty foods temporarily

Red Flags Requiring Reassessment

  • Development of fever or bloody stools - suggests bacterial dysentery (Shigella, Campylobacter, invasive E. coli)
  • Signs of severe dehydration (sunken eyes, decreased urine output, altered mentation)
  • Persistence beyond 7 days - consider parasitic causes (Giardia, Cryptosporidium) - requires different treatment entirely
  • No improvement or worsening despite ORS

Bottom Line

Doxycycline is not the right drug here. This patient's presentation (no fever, vomiting + loose stool x4 days) points to viral gastroenteritis or non-invasive bacterial gastroenteritis - both of which are self-limiting and managed with rehydration + symptomatic treatment. Unnecessary antibiotics risk disrupting gut flora and do not shorten illness duration in viral or non-invasive causes.

Find recent guidelines for acute gastroenteritis management

Searching PubMed

acute gastroenteritis management guidelines

Searching the Web

acute gastroenteritis management guidelines 2024 2025 WHO IDSA

Finding Sources
Searching PubMed

infectious diarrhea clinical practice guideline IDSA

Reading Web Page

https://infectology.by/wp-content/uploads/2025/12/2025_state…

Finding Sources
Searching PubMed

infectious diarrhea diagnosis management adults

Finding Sources
I now have comprehensive data from all key sources. Here is the synthesized guideline summary:

Recent Guidelines: Acute Gastroenteritis Management

The most current evidence comes from:

1. Assessment & Triage - Key Clinical Decisions

PresentationAction
>3 watery stools/24h, volume replete, no fever, no bloody stoolsORS only, avoid antibiotics, consider anti-diarrheal
>3 watery stools + signs of dehydration (dark urine, decreased skin turgor, orthostatic hypotension)ORS preferred, avoid antibiotics, consider anti-diarrheal
Hypovolemic shock (SBP <90, tachycardia, elevated lactate)IV fluids (not Lactated Ringers), avoid antibiotics
Bloody stools / fever / tenesmus / severe abdominal painORS + antibiotic therapy
Age <5 or >65, cardiac disease, immunocompromise, pregnancyORS + antibiotic therapy; low threshold for admission
Source: Shane et al., CID 2025; Rosen's Emergency Medicine

2. Rehydration (Cornerstone of Treatment)

  • Oral Rehydration Solution (ORS) is the treatment of choice for mild-moderate dehydration - endorsed by WHO, AAP, ESPGHAN, IDSA
  • Standard WHO-ORS: sodium 75 mEq/L, glucose 75 mmol/L, osmolarity 245 mOsm/L
  • IV fluids reserved for: shock, unable to tolerate oral intake, severe dehydration
  • Avoid Lactated Ringers in suspected C. difficile or immunocompromised patients
  • Continue feeding - bowel rest is not recommended; BRAT diet (bananas, rice, applesauce, toast), avoid high-fat/dairy initially
  • Temporary lactose avoidance may help (secondary lactase deficiency can persist weeks)

3. Antibiotic Therapy - When & What

Do NOT give antibiotics routinely. Reserve for:
IndicationPreferred AntibioticAlternative
Empirical (toxic, fever, suspected bacterial dysentery)Azithromycin 500 mg/day x 3 daysCiprofloxacin 500 mg BID x 3-5 days
Traveler's diarrhea (severe)Azithromycin 1g single dose or 500 mg/day x 3dCiprofloxacin 500 mg BID x 3d
CampylobacterAzithromycin 500 mg/day x 3dCiprofloxacin (if sensitive)
ShigellaAzithromycin or ciprofloxacinTMP-SMX (if sensitive)
Cholera (V. cholerae)Doxycycline 300 mg single doseAzithromycin 1g single dose
C. difficileFidaxomicin 200 mg BID x 10d (preferred)Vancomycin 125 mg QID x 10d
Salmonella (non-typhoidal)Only for high-risk groups; ciprofloxacin or azithromycinCeftriaxone for bacteremia
YersiniaTMP-SMX or ciprofloxacinDoxycycline (alternative)
CAUTION: Avoid antibiotics in STEC O157:H7 (E. coli) - increases HUS risk up to 17-fold.

4. Symptomatic Treatment

  • Antiemetics: Ondansetron ODT 4-8 mg (adults) - most effective for acute vomiting; reduces need for IV fluids
  • Anti-diarrheals: Loperamide 4 mg then 2 mg after each stool (max 16 mg/day) - use shared decision-making; avoid in children <3 years and suspected bacterial dysentery unless given with antibiotics
  • Zinc 20 mg/day for malnourished children >6 months - reduces diarrhea duration by ~1 day
  • Probiotics: Not proven in adults (2025 guidelines); Lactobacillus rhamnosus GG showed no benefit vs. placebo in children (NEJM 2018)
  • Bismuth subsalicylate - mild benefit for traveler's diarrhea prophylaxis

5. Diagnostic Workup - When to Investigate

Skip routine stool cultures for mild, uncomplicated cases. Investigate when:
  • Fever + bloody stool (dysentery)
  • Immunocompromised
  • Diarrhea persisting >7 days (consider parasites: Giardia, Cryptosporidium)
  • Outbreak setting or suspected foodborne illness
  • Recent antibiotic use or healthcare exposure (rule out C. difficile)
  • Recent travel to endemic area
Testing: Stool culture, C. difficile toxin PCR, ova & parasites, multiplex PCR GI panel (BioFire) in complex cases per IDSA/ASM 2024 Microbiology Guideline

6. Admission Criteria

Hospitalize if:
  • Toxic/septic appearance
  • Severe or persistent dehydration
  • Unable to tolerate oral fluids
  • Significant electrolyte disturbances
  • Age extremes or immunocompromised
  • Bloody diarrhea with high fever

Summary of Guideline Sources

GuidelineYearPublisher
IDSA Clinical Practice Guidelines: Infectious Diarrhea2017Infectious Diseases Society of America
ACG Clinical Guideline: Acute Diarrheal Infections in Adults2016American College of Gastroenterology
State-of-the-Art Review: Infectious Diarrhea2025Clinical Infectious Diseases
IDSA/ASM Microbiology Laboratory Guide2024IDSA + American Society for Microbiology
AGA Update: C. difficile Management2026American Gastroenterological Association
No new overarching IDSA guideline replacing 2017 has been published as of mid-2026 - the 2017 document remains the primary reference, supplemented by the 2025 CID state-of-the-art review.

Create a management flowchart PDF for acute gastroenteritis

Reading File
Running Command

mkdir -p /home/daytona/workspace/gastroenteritis-flowchart && ls /home/daytona/w…

Writing File

~/gastroenteritis-flowchart/generate_flowchart.py

from reportlab.lib.pagesizes import A3, landscape
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor

OUTPUT = "/home/daytona/workspace/gastroenteritis-flowchart/AGE_Management_Flowchart.pdf"

# ── colour palette ──────────────────────────────────────────────────────────
C_TITLE_BG   = HexColor("#1A3C5E")   # deep navy
C_TITLE_FG   = colors.white
C_START_BG   = HexColor("#2980B9")   # mid-blue  (patient entry)
C_ASSESS_BG  = HexColor("#2980B9")
C_DIAMOND_BG = HexColor("#E67E22")   # amber     (decisions)
C_GREEN_BG   = HexColor("#27AE60")   # green     (no-AB boxes)
C_RED_BG     = HexColor("#C0392B")   # red       (danger/admit)
C_BLUE_BG    = HexColor("#2471A3")   # blue      (treatment)
C_TEAL_BG    = HexColor("#148F77")   # teal      (antibiotics)
C_GREY_BG    = HexColor("#95A5A6")   # grey      (disposition)
C_LIGHT      = HexColor("#EBF5FB")   # very light blue (symptom box)
C_WARN       = HexColor("#F9E79F")   # yellow    (warning)
C_TEXT       = HexColor("#1B2631")   # dark text

W, H = landscape(A3)   # 420 × 297 mm  →  ~1190 × 842 pt

# ── helpers ─────────────────────────────────────────────────────────────────

def rounded_rect(c, x, y, w, h, r=8, fill_color=colors.white,
                 stroke_color=colors.grey, stroke_w=1):
    c.setFillColor(fill_color)
    c.setStrokeColor(stroke_color)
    c.setLineWidth(stroke_w)
    c.roundRect(x, y, w, h, r, stroke=1, fill=1)


def diamond(c, cx, cy, hw, hh, fill_color=C_DIAMOND_BG,
            stroke_color=HexColor("#CA6F1E"), stroke_w=1.5):
    """Draw a diamond centred at (cx,cy) with half-widths hw, hh."""
    path = c.beginPath()
    path.moveTo(cx,      cy + hh)
    path.lineTo(cx + hw, cy)
    path.lineTo(cx,      cy - hh)
    path.lineTo(cx - hw, cy)
    path.close()
    c.setFillColor(fill_color)
    c.setStrokeColor(stroke_color)
    c.setLineWidth(stroke_w)
    c.drawPath(path, fill=1, stroke=1)


def wrap_text(c, text, x, y, max_w, font="Helvetica", size=8,
              color=C_TEXT, leading=10, align="center"):
    """Very simple word-wrap inside a box."""
    c.setFont(font, size)
    c.setFillColor(color)
    words = text.split()
    lines, line = [], ""
    for w in words:
        test = (line + " " + w).strip()
        if c.stringWidth(test, font, size) <= max_w:
            line = test
        else:
            if line:
                lines.append(line)
            line = w
    if line:
        lines.append(line)
    total_h = len(lines) * leading
    start_y = y + total_h / 2 - leading
    for i, ln in enumerate(lines):
        yy = start_y - i * leading
        if align == "center":
            c.drawCentredString(x, yy, ln)
        else:
            c.drawString(x - max_w / 2, yy, ln)


def arrow(c, x1, y1, x2, y2, label="", color=HexColor("#2C3E50"), lw=1.5):
    """Arrow from (x1,y1) to (x2,y2) with optional midpoint label."""
    c.setStrokeColor(color)
    c.setLineWidth(lw)
    c.line(x1, y1, x2, y2)
    # arrowhead
    import math
    ang = math.atan2(y2 - y1, x2 - x1)
    size = 7
    c.setFillColor(color)
    path = c.beginPath()
    path.moveTo(x2, y2)
    path.lineTo(x2 - size * math.cos(ang - 0.4),
                y2 - size * math.sin(ang - 0.4))
    path.lineTo(x2 - size * math.cos(ang + 0.4),
                y2 - size * math.sin(ang + 0.4))
    path.close()
    c.drawPath(path, fill=1, stroke=0)
    if label:
        mx, my = (x1 + x2) / 2, (y1 + y2) / 2
        c.setFont("Helvetica-Bold", 7)
        c.setFillColor(color)
        c.drawCentredString(mx, my + 4, label)


def box(c, cx, cy, bw, bh, text, bg, fg=colors.white,
        font="Helvetica-Bold", size=8, r=7, border=None):
    """Convenience: draw rounded rect + centred wrapped text."""
    stroke = border if border else bg.clone() if hasattr(bg, "clone") else bg
    # darken stroke slightly
    rounded_rect(c, cx - bw/2, cy - bh/2, bw, bh, r,
                 fill_color=bg, stroke_color=stroke, stroke_w=1.2)
    wrap_text(c, text, cx, cy, bw - 8, font=font, size=size, color=fg)


# ── page setup ───────────────────────────────────────────────────────────────
c = canvas.Canvas(OUTPUT, pagesize=landscape(A3))
c.setTitle("Acute Gastroenteritis – Management Flowchart")

# ── TITLE BANNER ────────────────────────────────────────────────────────────
c.setFillColor(C_TITLE_BG)
c.rect(0, H - 48, W, 48, fill=1, stroke=0)
c.setFillColor(colors.white)
c.setFont("Helvetica-Bold", 18)
c.drawCentredString(W / 2, H - 28, "ACUTE GASTROENTERITIS — MANAGEMENT FLOWCHART")
c.setFont("Helvetica", 9)
c.drawCentredString(W / 2, H - 40,
    "Based on IDSA 2017 Guidelines, ACG 2016, Shane et al. CID 2025 State-of-the-Art Review")

# ── FOOTER ───────────────────────────────────────────────────────────────────
c.setFillColor(C_TITLE_BG)
c.rect(0, 0, W, 18, fill=1, stroke=0)
c.setFillColor(colors.white)
c.setFont("Helvetica", 7)
c.drawCentredString(W / 2, 5,
    "For clinical reference only | IDSA 2017 | ACG 2016 | Shane et al. CID 2025 | Harrison's 22E (2025) | Rosen's EM")

# ── LEGEND ───────────────────────────────────────────────────────────────────
lx, ly = 30, 55
c.setFont("Helvetica-Bold", 7.5)
c.setFillColor(C_TEXT)
c.drawString(lx, ly + 10, "LEGEND:")
items = [
    (C_START_BG,   "Entry / Assessment"),
    (C_DIAMOND_BG, "Decision"),
    (C_GREEN_BG,   "Conservative Tx"),
    (C_TEAL_BG,    "Antibiotic Indicated"),
    (C_RED_BG,     "Admit / High Risk"),
    (C_GREY_BG,    "Disposition"),
]
for i, (col, lbl) in enumerate(items):
    xx = lx + i * 130
    c.setFillColor(col)
    c.rect(xx, ly - 5, 12, 10, fill=1, stroke=0)
    c.setFillColor(C_TEXT)
    c.setFont("Helvetica", 7)
    c.drawString(xx + 15, ly + 1, lbl)

# ─────────────────────────────────────────────────────────────────────────────
# LAYOUT  (all coords in points, origin bottom-left)
# We'll draw top-down.  Top of drawing area: H-55 (below banner).
# ─────────────────────────────────────────────────────────────────────────────

TOP  = H - 62
BOT  = 75           # above footer + legend

# Row Y positions (centres)
R1 = TOP - 28         # Patient Presentation
R2 = R1 - 58          # Initial Assessment box
R3 = R2 - 60          # Diamond: Red flags?
R4 = R3 - 65          # Diamond: Dehydration?  |  RED FLAG pathway
R5 = R4 - 65          # Diamond: Special pop?   |  Admit box
R6 = R5 - 65          # Mild path splits
R7 = R6 - 65          # Treatment boxes (Mild / Moderate / AB)
R8 = R7 - 58          # Disposition row

CX = W / 2            # centre x

# ── BOX DIMENSIONS ──────────────────────────────────────────────────────────
BW_STD  = 148   # standard box width
BH_STD  = 36
BW_WIDE = 175
BH_TALL = 42
BW_SM   = 130
BH_SM   = 32

# ═══════════════════════════════════════════════════════════════════════════
# ROW 1 – Patient Presentation
# ═══════════════════════════════════════════════════════════════════════════
box(c, CX, R1, 320, 34,
    "PATIENT PRESENTS WITH SUSPECTED ACUTE GASTROENTERITIS\n"
    "(Diarrhoea ≥3 stools/24h ± nausea, vomiting, cramps, ±fever)",
    C_START_BG, colors.white, size=9, r=17)

arrow(c, CX, R1 - 17, CX, R2 + BH_STD/2)

# ═══════════════════════════════════════════════════════════════════════════
# ROW 2 – Initial Assessment
# ═══════════════════════════════════════════════════════════════════════════
box(c, CX, R2, 360, BH_TALL,
    "INITIAL ASSESSMENT: History (duration, stool character, fever, travel, diet, "
    "contacts, antibiotics) • Exam (HR, BP, skin turgor, mucosae) • "
    "Labs if indicated (CBC, electrolytes, stool culture/PCR)",
    C_LIGHT, C_TEXT, font="Helvetica", size=7.5, r=6,
    border=HexColor("#2980B9"))

arrow(c, CX, R2 - BH_TALL/2, CX, R3 + 28)

# ═══════════════════════════════════════════════════════════════════════════
# ROW 3 – Diamond: RED FLAGS?
# ═══════════════════════════════════════════════════════════════════════════
diamond(c, CX, R3, 130, 28, C_DIAMOND_BG)
c.setFont("Helvetica-Bold", 8)
c.setFillColor(colors.white)
c.drawCentredString(CX, R3 + 5,  "RED FLAGS present?")
c.setFont("Helvetica", 7)
c.drawCentredString(CX, R3 - 6,
    "Bloody stool • Fever >38.5°C • Severe abd pain • Tenesmus")

# NO branch – arrow down
arrow(c, CX, R3 - 28, CX, R4 + 28, label="NO")
# YES branch – arrow RIGHT to admit
arrow(c, CX + 130, R3, CX + 310, R3, label="YES")

# ADMIT / HIGH RISK box (far right)
RF_X = CX + 385
box(c, RF_X, R3, 140, BH_TALL,
    "BACTERIAL DYSENTERY PATHWAY\n"
    "Stool culture + C. diff PCR\n"
    "ORS/IV fluids\n"
    "Empirical ABs (see antibiotic box)",
    C_RED_BG, colors.white, size=7.5)
# arrow down from red box
arrow(c, RF_X, R3 - BH_TALL/2 - 2, RF_X, R5 - 16)

# ═══════════════════════════════════════════════════════════════════════════
# ROW 4 – Diamond: DEHYDRATION?
# ═══════════════════════════════════════════════════════════════════════════
diamond(c, CX, R4, 130, 28, C_DIAMOND_BG)
c.setFont("Helvetica-Bold", 8)
c.setFillColor(colors.white)
c.drawCentredString(CX, R4 + 5,  "DEHYDRATION?")
c.setFont("Helvetica", 7)
c.drawCentredString(CX, R4 - 6,
    "Dark urine • Decreased turgor • Orthostatic hypotension • Shock")

# NO (mild) → left
arrow(c, CX - 130, R4, CX - 270, R4, label="NONE/MILD")
# MODERATE → down
arrow(c, CX, R4 - 28, CX, R5 + 28, label="MODERATE")
# SEVERE/SHOCK → right
arrow(c, CX + 130, R4, CX + 270, R4, label="SEVERE/SHOCK")

# ═══════════════════════════════════════════════════════════════════════════
# ROW 4 SIDE BOXES (Mild left, Severe right)
# ═══════════════════════════════════════════════════════════════════════════
MILD_X   = CX - 340
SEVERE_X = CX + 340

box(c, MILD_X, R4, BW_WIDE, BH_TALL,
    "MILD / NO DEHYDRATION\nVolume replete\nOral intake tolerated",
    C_GREEN_BG, colors.white, size=8)

box(c, SEVERE_X, R4, BW_WIDE, BH_TALL,
    "SEVERE DEHYDRATION / SHOCK\nIV Fluids (NS preferred)\nAvoid Lactated Ringers\nConsider ICU/HDU",
    C_RED_BG, colors.white, size=8)

# arrows from side boxes down to row 6
arrow(c, MILD_X,   R4 - BH_TALL/2, MILD_X,   R6 + BH_STD/2)
arrow(c, SEVERE_X, R4 - BH_TALL/2, SEVERE_X, R6 + BH_STD/2)

# ═══════════════════════════════════════════════════════════════════════════
# ROW 5 – Diamond: SPECIAL POPULATION? (centre column only)
# ═══════════════════════════════════════════════════════════════════════════
diamond(c, CX, R5, 130, 28, C_DIAMOND_BG)
c.setFont("Helvetica-Bold", 8)
c.setFillColor(colors.white)
c.drawCentredString(CX, R5 + 5,  "SPECIAL POPULATION?")
c.setFont("Helvetica", 7)
c.drawCentredString(CX, R5 - 6,
    "Age <5 or >65 • Immunocomp. • Pregnancy • Cardiac disease")

# YES → right to lower admit
arrow(c, CX + 130, R5, CX + 270, R5, label="YES")
box(c, CX + 370, R5, 165, BH_TALL,
    "HIGHER RISK PATHWAY\nLow threshold for admission\nIV hydration preferred\nEarly antibiotic therapy\nClose monitoring",
    C_RED_BG, colors.white, size=7.5)

# NO → down
arrow(c, CX, R5 - 28, CX, R6 + BH_STD/2, label="NO")

# ═══════════════════════════════════════════════════════════════════════════
# ROW 6 – Three treatment pathway boxes
# ═══════════════════════════════════════════════════════════════════════════
# Centre (moderate dehydration ORS)
box(c, CX, R6, BW_WIDE, BH_STD,
    "MODERATE DEHYDRATION\nORS 50–100 mL/kg over 2–4 h\n(NG tube if vomiting persists)\nReassess in 2–4 h",
    C_BLUE_BG, colors.white, size=8)

# Left (mild) – already positioned at MILD_X
box(c, MILD_X, R6, BW_WIDE, BH_STD,
    "CONSERVATIVE MANAGEMENT\nORS / encourage oral fluids\nDiet: starchy foods, avoid dairy/fat\nLoperamide (adults, non-dysentery)\nOndansetron for vomiting",
    C_GREEN_BG, colors.white, size=7.5)

# Right (severe) – already at SEVERE_X
box(c, SEVERE_X, R6, BW_WIDE, BH_STD,
    "IV FLUID RESUSCITATION\n0.9% NS bolus 20 mL/kg\nMonitor electrolytes/renal Fn\nAntiemetics IV\nNPO initially → advance diet",
    C_BLUE_BG, colors.white, size=7.5)

# ═══════════════════════════════════════════════════════════════════════════
# ROW 7 – ANTIBIOTIC decision + Symptomatic Rx
# ═══════════════════════════════════════════════════════════════════════════
arrow(c, CX,      R6 - BH_STD/2, CX,      R7 + BH_TALL/2)
arrow(c, MILD_X,  R6 - BH_STD/2, MILD_X,  R7 + BH_TALL/2)
arrow(c, SEVERE_X,R6 - BH_STD/2, SEVERE_X,R7 + BH_TALL/2)

# Centre: ANTIBIOTIC GUIDE
box(c, CX, R7, 210, BH_TALL + 10,
    "ANTIBIOTIC GUIDE (when indicated)\n"
    "Empirical: Azithromycin 500 mg/day × 3d  OR\n"
    "Ciprofloxacin 500 mg BID × 3–5d\n"
    "Traveler's diarrhea: Azithromycin 1g single dose\n"
    "Cholera: Doxycycline 300 mg single dose\n"
    "C. difficile: Fidaxomicin 200 mg BID × 10d\n"
    "⚠ AVOID ABs in STEC O157:H7 (↑HUS risk)",
    C_TEAL_BG, colors.white, size=7.5)

# Left: Symptomatic Treatment
box(c, MILD_X, R7, BW_WIDE + 10, BH_TALL + 10,
    "SYMPTOMATIC TREATMENT\n"
    "Ondansetron 4–8 mg (antiemetic 1st line)\n"
    "Loperamide 4 mg then 2 mg/stool (max 16 mg/d)\n"
    "Zinc 20 mg/day (malnourished children >6 mo)\n"
    "Probiotics: not proven in adults\n"
    "Avoid antimotility in dysentery without ABs",
    C_BLUE_BG, colors.white, size=7.5)

# Right: Monitoring
box(c, SEVERE_X, R7, BW_WIDE + 10, BH_TALL + 10,
    "MONITORING & ESCALATION\n"
    "Repeat vitals & hydration status 2–4 h\n"
    "Electrolytes if IV fluids given\n"
    "Stool culture if: fever + bloody stool,\n"
    "immunocomp., outbreak, duration >7 days\n"
    "C. diff PCR if: recent ABs or hospital stay",
    C_BLUE_BG, colors.white, size=7.5)

# Red flag admit arrow to row 7 region
arrow(c, RF_X, R5 - 16, RF_X, R7 + BH_TALL/2 + 5)
box(c, RF_X, R7, 148, BH_TALL + 10,
    "DYSENTERY ANTIBIOTICS\n"
    "Shigella: Azithromycin 500 mg/d × 3d\n"
    "Campylobacter: Azithromycin × 3d\n"
    "Salmonella (high risk): Cipro × 5–7d\n"
    "NTS: ABs only if bacteraemia suspected\n"
    "Stool cx before starting if possible",
    C_TEAL_BG, colors.white, size=7.5)

# ═══════════════════════════════════════════════════════════════════════════
# ROW 8 – DISPOSITION
# ═══════════════════════════════════════════════════════════════════════════
arrow(c, MILD_X,  R7 - (BH_TALL+10)/2, MILD_X,  R8 + BH_STD/2)
arrow(c, CX,      R7 - (BH_TALL+10)/2, CX,      R8 + BH_STD/2)
arrow(c, SEVERE_X,R7 - (BH_TALL+10)/2, SEVERE_X,R8 + BH_STD/2)

box(c, MILD_X, R8, BW_WIDE, BH_STD,
    "DISCHARGE\nWritten ORS/diet instructions\nReturn precautions\nFollow-up if >7 days",
    C_GREY_BG, colors.white, size=8)

box(c, CX, R8, BW_WIDE, BH_STD,
    "DISCHARGE (reassess after rehydration)\nOutpatient if tolerating oral fluids\nFollow-up in 24–48 h",
    C_GREY_BG, colors.white, size=8)

box(c, SEVERE_X, R8, BW_WIDE, BH_STD,
    "ADMIT\nIV hydration & electrolyte correction\nConsult if no improvement 48–72 h\nIsolation precautions",
    C_RED_BG, colors.white, size=8)

# ── COLUMN HEADERS ──────────────────────────────────────────────────────────
hdr_y = R4 + 50
for hx, label in [(MILD_X, "MILD / NO DEHYDRATION"),
                  (CX,     "MODERATE DEHYDRATION"),
                  (SEVERE_X,"SEVERE / SHOCK")]:
    c.setFont("Helvetica-Bold", 7)
    c.setFillColor(C_TITLE_BG)
    c.drawCentredString(hx, hdr_y, f"── {label} ──")

c.save()
print("PDF saved to:", OUTPUT)
Running Command

cd /home/daytona/workspace/gastroenteritis-flowchart && python generate_flowchar…

Running Command

ls -lh /home/daytona/workspace/gastroenteritis-flowchart/AGE_Management_Flowchar…

The flowchart PDF has been generated successfully. Download it here:

AGE Management Flowchart

PDF Document · PDF


What's included in the flowchart (A3 landscape, colour-coded):
Flow structure (top to bottom):
  1. Patient Entry - Suspected AGE presentation
  2. Initial Assessment - History, exam, labs decision
  3. Red Flags Decision (diamond) - Bloody stool, fever >38.5°C, tenesmus, severe pain → branches to Bacterial Dysentery Pathway
  4. Dehydration Assessment (diamond) - None/Mild → Moderate → Severe/Shock (3 columns split here)
  5. Special Population Check (diamond) - Age extremes, immunocompromised, pregnancy
  6. Treatment Boxes per severity column - ORS volumes, IV fluids, diet
  7. Antibiotic Guide - Empirical (Azithromycin/Cipro), pathogen-specific (Cholera→Doxycycline, C. diff→Fidaxomicin), STEC warning
  8. Symptomatic Rx - Ondansetron, Loperamide, Zinc
  9. Disposition - Discharge / Admit criteria
Colour coding:
  • 🔵 Blue = Entry/Assessment
  • 🟠 Amber = Decision diamonds
  • 🟢 Green = Conservative/no-antibiotic management
  • 🔴 Red = Admit/high-risk pathways
  • 🩵 Teal = Antibiotic boxes
  • ⚪ Grey = Disposition
Based on: IDSA 2017 | ACG 2016 | Shane et al. CID 2025 | Harrison's 22E | Rosen's Emergency Medicine
This is a shared conversation. Sign in to Orris to start your own chat.