mx of urticaria
urticaria management treatment
| Type | Definition |
|---|---|
| Acute | Episodes lasting <6 weeks |
| Chronic | Recurrence over >6 weeks (often unknown cause) |
| Inducible | Triggered by physical stimuli (cold, pressure, dermatographism, solar, cholinergic) |
acute gastroenteritis
acute gastroenteritis management treatment
| Pathogen | Key Features |
|---|---|
| Norovirus | Most common cause in adults AND children (in areas with rotavirus vaccination); outbreaks in closed settings; all ages |
| Rotavirus | Leading cause in unvaccinated children; vaccine now available; may cause transient lactase deficiency |
| Adenovirus | Children; prolonged course |
| Astrovirus | Young children, elderly |
| Pathogen | Key Features |
|---|---|
| Campylobacter jejuni | #1 or #2 cause of culture-proven bacterial enteritis in developed countries; poultry source |
| Salmonella | #1 or #2; eggs, poultry; do NOT treat unless severe (prolongs shedding) |
| Shigella | Dysentery; treat with antibiotics |
| ETEC | Most common cause of traveler's diarrhea |
| E. coli O157:H7 / STEC | Bloody diarrhea; do NOT give antibiotics - increases risk of HUS/TTP |
| Vibrio cholerae | Profuse rice-water stools; doxycycline |
| C. difficile | Post-antibiotic; hospitalized/LTC patients |
| Yersinia | Can mimic appendicitis |
| Staph aureus / B. cereus / C. perfringens | Preformed toxin; onset within 1-6 h; self-limited (<24 h) - "food poisoning" |
| Score | Appearance | Eyes | Mucosa | Tears |
|---|---|---|---|---|
| 0 | Normal | Normal | Moist | Normal |
| 1 | Thirsty/restless/irritable | Mildly sunken | Sticky | Decreased |
| 2 | Drowsy/limp/cold/diaphoretic | Very sunken | Dry | None |
Note: WBC count and CRP are not reliable for distinguishing viral from bacterial gastroenteritis. - Tintinalli's
| Solution | Na (mmol/L) | Osmolarity (mOsm/L) |
|---|---|---|
| WHO reduced-osmolarity ORS (2002) | 75 | 245 (preferred) |
| Pedialyte | 45 | 250 |
| Standard WHO ORS | 90 | 331 |
| Organism | Treatment |
|---|---|
| Shigella | Ciprofloxacin 500 mg PO BID x 3 days or Azithromycin 500 mg PO daily x 3 days |
| Salmonella typhi | Ciprofloxacin 500 mg BID x 7 days; Azithromycin 500 mg x 7d; Ceftriaxone 1-2 g IV x 7d |
| Salmonella non-typhi | No treatment in mild cases; Levofloxacin 500 mg x 7-10 days if severe (fever, bloody diarrhea, bacteraemia) |
| Campylobacter | Azithromycin 500 mg PO daily x 3d; or Erythromycin 500 mg BID x 5d |
| Vibrio cholerae | Doxycycline 4-6 mg/kg (up to 300 mg) once daily x 3 days |
| ETEC (traveler's diarrhea) | Ciprofloxacin 750 mg once or 500 mg BID x 3d; Rifaximin 200 mg TID x 3d; Azithromycin 1g once |
| E. coli O157:H7 / STEC | NO antibiotics - increases HUS/TTP risk |
| C. difficile | Vancomycin 125 mg PO q6h x 10 days (first-line); Fidaxomicin if available; Metronidazole for mild cases |
| Giardia | Metronidazole 250 mg TID x 5-7d; Tinidazole single dose |
| Cryptosporidium | Nitazoxanide (immunocompetent); no reliable treatment in HIV |
Key rule: Antibiotics prolong shedding of non-typhi Salmonella - avoid in uncomplicated cases.
Create a quick reference guide for ORS compositions and antibiotic dosing
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && ls -la /tmp/workspace/
mkdir -p /tmp/workspace/ors-abx-guide && python3 << 'EOF' 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, Table, TableStyle, Paragraph, Spacer, HRFlowable, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/ors-abx-guide/AGE_Quick_Reference.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.8*cm, bottomMargin=1.8*cm, title="Acute Gastroenteritis Quick Reference Guide", author="Orris Medical Reference" ) W = A4[0] - 3*cm # usable width # ── Colour palette ───────────────────────────────────────────────────────── TEAL = colors.HexColor("#0B6E8A") TEAL_LIGHT = colors.HexColor("#E0F4F8") TEAL_MID = colors.HexColor("#B3E0EC") ORANGE = colors.HexColor("#D4611A") ORANGE_LIGHT= colors.HexColor("#FDF0E6") RED = colors.HexColor("#C0392B") RED_LIGHT = colors.HexColor("#FDECEA") GREEN = colors.HexColor("#1A7A4A") GREEN_LIGHT = colors.HexColor("#E8F5EE") GREY_DARK = colors.HexColor("#2C3E50") GREY_MID = colors.HexColor("#7F8C8D") GREY_LIGHT = colors.HexColor("#F4F6F8") YELLOW_LIGHT= colors.HexColor("#FFFDE7") WHITE = colors.white # ── Styles ────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() def S(name, **kw): return ParagraphStyle(name, **kw) title_style = S("Title", fontName="Helvetica-Bold", fontSize=18, textColor=WHITE, alignment=TA_CENTER, leading=22) subtitle_style = S("Subtitle", fontName="Helvetica", fontSize=10, textColor=WHITE, alignment=TA_CENTER, leading=13) section_style = S("Section", fontName="Helvetica-Bold", fontSize=11, textColor=WHITE, alignment=TA_LEFT, leading=14) body_style = S("Body", fontName="Helvetica", fontSize=8.5, textColor=GREY_DARK, leading=12) bold_style = S("Bold", fontName="Helvetica-Bold", fontSize=8.5, textColor=GREY_DARK, leading=12) small_style = S("Small", fontName="Helvetica", fontSize=7.5, textColor=GREY_MID, leading=10) warn_style = S("Warn", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=11) note_style = S("Note", fontName="Helvetica-Oblique", fontSize=7.5, textColor=GREY_MID, leading=10, alignment=TA_CENTER) def cell(text, style=body_style, color=None): p = Paragraph(text, style) return p def section_header(text, bg=TEAL): data = [[Paragraph(text, section_style)]] t = Table(data, colWidths=[W]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 10), ])) return t story = [] # ══════════════════════════════════════════════════════════ # HEADER BANNER # ══════════════════════════════════════════════════════════ header_data = [[ Paragraph("ACUTE GASTROENTERITIS", title_style), ],[ Paragraph("Quick Reference Guide — ORS Compositions & Antibiotic Dosing", subtitle_style), ],[ Paragraph("Sources: Rosen's EM · Tintinalli's EM · Goldman-Cecil Medicine · Yamada's Gastroenterology", note_style), ]] header_table = Table(header_data, colWidths=[W]) header_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), TEAL), ("TOPPADDING", (0,0), (0,0), 12), ("BOTTOMPADDING",(0,2),(0,2), 10), ("TOPPADDING", (0,1), (0,1), 2), ("BOTTOMPADDING",(0,1),(0,1), 2), ("ALIGN", (0,0), (-1,-1), "CENTER"), ])) story.append(header_table) story.append(Spacer(1, 6)) # ══════════════════════════════════════════════════════════ # SECTION 1 — ORS COMPOSITIONS # ══════════════════════════════════════════════════════════ story.append(section_header(" SECTION 1 — ORAL REHYDRATION SOLUTION (ORS) COMPOSITIONS")) story.append(Spacer(1, 4)) ors_headers = [ Paragraph("Solution", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Na⁺\n(mmol/L)", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("K⁺\n(mmol/L)", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("Cl⁻\n(mmol/L)", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("Base\n(mmol/L)", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("CHO\n(mmol/L)", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("Osmolarity\n(mOsm/L)", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("Notes", S("h", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), ] c = S("c", fontName="Helvetica", fontSize=8, textColor=GREY_DARK, leading=11, alignment=TA_CENTER) cl = S("cl", fontName="Helvetica", fontSize=8, textColor=GREY_DARK, leading=11, alignment=TA_LEFT) cb = S("cb", fontName="Helvetica-Bold", fontSize=8, textColor=TEAL, leading=11, alignment=TA_CENTER) cbg = S("cbg", fontName="Helvetica-Bold", fontSize=8, textColor=GREEN, leading=11, alignment=TA_CENTER) ors_data = [ors_headers] ors_rows = [ # [Solution, Na, K, Cl, Base, CHO, Osm, Note] ["WHO Reduced-Osmolarity ORS (2002) ★", "75", "20", "65", "10", "75", "245", Paragraph("<b>★ PREFERRED</b> — 1st line; less vomiting, fewer IV failures", S("n1", fontName="Helvetica-Bold", fontSize=7.5, textColor=GREEN, leading=10))], ["WHO Standard ORS", "90", "20", "80", "10", "111", "311", Paragraph("Older formulation; still effective for cholera", cl)], ["Pedialyte®", "45", "20", "35", "20", "139", "250", Paragraph("Common paediatric ORS in North America", cl)], ["Enfalyte® / Ricelyte®", "50", "25", "45", "34", "167", "200", Paragraph("Rice-based; lower osmolarity", cl)], ] for row in ors_rows: r = [Paragraph(str(row[0]), cl)] + [Paragraph(str(v), c) for v in row[1:7]] + [row[7]] ors_data.append(r) # Inappropriate fluids ors_data.append([ Paragraph("<b>⚠ INAPPROPRIATE FLUIDS</b>", S("warn2", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=10)), "", "", "", "", "", "", Paragraph("Do NOT use for rehydration", S("warn3", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=10)) ]) inapt = [ ["Apple juice", "0.4", "44", "45", "—", "666", "730", Paragraph("High sugar, low Na — worsens diarrhoea", cl)], ["Coca-Cola Classic®", "1.6", "—", "—", "13", "622", "650", Paragraph("High osmolarity, negligible Na", cl)], ["Gatorade®", "20", "—", "—", "3", "322", "350", Paragraph("Low Na, high sugar — not suitable", cl)], ["Chicken broth", "260", "0.5", "260", "—", "44", "450", Paragraph("Excessive Na, no glucose/base", cl)], ] for row in inapt: r = [Paragraph(str(row[0]), S("ri", fontName="Helvetica", fontSize=8, textColor=RED, leading=11, alignment=TA_LEFT))] r += [Paragraph(str(v), S("rc", fontName="Helvetica", fontSize=8, textColor=RED, leading=11, alignment=TA_CENTER)) for v in row[1:7]] r += [row[7]] ors_data.append(r) col_w = [5.5*cm, 1.2*cm, 1.1*cm, 1.1*cm, 1.1*cm, 1.3*cm, 1.6*cm, 4.9*cm] ors_table = Table(ors_data, colWidths=col_w, repeatRows=1) ors_table.setStyle(TableStyle([ # Header ("BACKGROUND", (0,0), (-1,0), TEAL), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("ROWBACKGROUNDS", (0,1), (-1,4), [TEAL_LIGHT, WHITE, TEAL_LIGHT, WHITE]), # Preferred row highlight ("BACKGROUND", (0,1), (-1,1), GREEN_LIGHT), # Warning row ("BACKGROUND", (0,5), (-1,5), RED_LIGHT), ("SPAN", (1,5), (6,5)), ("ROWBACKGROUNDS", (0,6), (-1,9), [RED_LIGHT, colors.HexColor("#FFF5F5"), RED_LIGHT, colors.HexColor("#FFF5F5")]), # Grid ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("LINEABOVE", (0,5), (-1,5), 1.5, RED), # Padding ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ])) story.append(ors_table) story.append(Spacer(1, 4)) story.append(Paragraph( "★ WHO 2002 reduced-osmolarity ORS is associated with fewer treatment failures, less need for IV fluid, and shorter hospital stay (Cochrane Review). " "Resume normal feeding as soon as rehydration is achieved. Do not withhold breast-feeding.", S("foot", fontName="Helvetica-Oblique", fontSize=7.5, textColor=GREY_MID, leading=10) )) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════ # SECTION 2 — DEHYDRATION ASSESSMENT # ══════════════════════════════════════════════════════════ story.append(section_header(" SECTION 2 — DEHYDRATION ASSESSMENT & REHYDRATION APPROACH", bg=ORANGE)) story.append(Spacer(1, 4)) deh_headers = [ Paragraph("Grade", S("dh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Clinical Features", S("dh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Fluid Deficit", S("dh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11, alignment=TA_CENTER)), Paragraph("Approach", S("dh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("ORS Volume (WHO)", S("dh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), ] cl2 = S("cl2", fontName="Helvetica", fontSize=8, textColor=GREY_DARK, leading=11) deh_rows = [ [Paragraph("<b>Mild</b>", S("g", fontName="Helvetica-Bold", fontSize=8, textColor=GREEN, leading=11)), Paragraph("Thirsty, normal vitals, moist mucosa", cl2), Paragraph("<5%", S("pc", fontName="Helvetica-Bold", fontSize=8, textColor=GREEN, leading=11, alignment=TA_CENTER)), Paragraph("ORT at home / clinic", cl2), Paragraph("50 mL/kg over 4 h", cl2)], [Paragraph("<b>Moderate</b>", S("g2", fontName="Helvetica-Bold", fontSize=8, textColor=ORANGE, leading=11)), Paragraph("Tachycardia, sunken eyes, dry mucosa, reduced skin turgor, decreased urine output", cl2), Paragraph("5–10%", S("pc2", fontName="Helvetica-Bold", fontSize=8, textColor=ORANGE, leading=11, alignment=TA_CENTER)), Paragraph("ORT in clinic/ED; IV only if ORT fails", cl2), Paragraph("100 mL/kg over 4 h", cl2)], [Paragraph("<b>Severe</b>", S("g3", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=11)), Paragraph("Shock, altered consciousness, sunken fontanelle (infant), cold extremities, no tears", cl2), Paragraph(">10%", S("pc3", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=11, alignment=TA_CENTER)), Paragraph("<b>IV rehydration immediately</b> — NS or RL 20 mL/kg bolus; reassess", S("rdb", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=11)), Paragraph("IV — not ORT", cl2)], ] deh_data = [deh_headers] + deh_rows deh_table = Table(deh_data, colWidths=[2.2*cm, 5.8*cm, 1.6*cm, 4.8*cm, 3.4*cm], repeatRows=1) deh_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), ORANGE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("BACKGROUND", (0,1), (-1,1), GREEN_LIGHT), ("BACKGROUND", (0,2), (-1,2), ORANGE_LIGHT), ("BACKGROUND", (0,3), (-1,3), RED_LIGHT), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ])) story.append(deh_table) story.append(Spacer(1, 4)) story.append(Paragraph( "Replace ongoing losses: ~10 mL/kg per diarrhoeal stool and ~2 mL/kg per vomiting episode. " "Cochrane: ORT vs IV — no difference in rehydration failure; ORT gives shorter hospital stay.", S("foot2", fontName="Helvetica-Oblique", fontSize=7.5, textColor=GREY_MID, leading=10) )) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════ # SECTION 3 — ANTIBIOTIC DOSING # ══════════════════════════════════════════════════════════ story.append(section_header(" SECTION 3 — PATHOGEN-SPECIFIC ANTIBIOTIC DOSING (ADULTS)")) story.append(Spacer(1, 4)) abx_headers = [ Paragraph("Organism", S("ah", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("When to Treat", S("ah", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("First-Line Antibiotic(s)", S("ah", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Dose & Duration", S("ah", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Alternatives", S("ah", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), ] def P(t, s=None, **kw): if s is None: s = S("p_", fontName="Helvetica", fontSize=8, textColor=GREY_DARK, leading=11) return Paragraph(t, s) def PB(t, col=GREY_DARK): return Paragraph(t, S("pb_", fontName="Helvetica-Bold", fontSize=8, textColor=col, leading=11)) def PI(t): return Paragraph(t, S("pi_", fontName="Helvetica-Oblique", fontSize=8, textColor=GREY_DARK, leading=11)) TREAT = S("tr", fontName="Helvetica", fontSize=7.5, textColor=GREEN, leading=10) AVOID = S("av", fontName="Helvetica-Bold", fontSize=7.5, textColor=RED, leading=10) COND = S("co", fontName="Helvetica", fontSize=7.5, textColor=ORANGE, leading=10) abx_rows = [ # Organism | When | 1st line | Dose/Duration | Alternatives [PB("Shigella spp.", TEAL), Paragraph("All cases (dysentery)", TREAT), P("Ciprofloxacin\nAzithromycin"), P("500 mg PO BID × 3 days\n500 mg PO daily × 3 days"), P("TMP-SMX (if susceptible)")], [PB("Salmonella typhi\n(Typhoid)", TEAL), Paragraph("All confirmed/suspected", TREAT), P("Ciprofloxacin\nAzithromycin\nCeftriaxone (IV)"), P("500 mg PO BID × 7 days\n500 mg PO daily × 7 days\n1–2 g IV daily × 7 days"), P("TMP-SMX or chloramphenicol\nif susceptible (resistance common)")], [PB("Salmonella\n(non-typhi)", TEAL), Paragraph("Mild: NO Rx\n(prolongs shedding)\nSevere only: fever,\nbloody diarrhoea, bacteraemia", COND), P("Levofloxacin (if severe)"), P("500 mg IV/PO daily × 7–10 days"), P("Ciprofloxacin or azithromycin")], [PB("Campylobacter\njejuni", TEAL), Paragraph("Severe/prolonged >\n1 week; immunocomp.", COND), P("Azithromycin"), P("500 mg PO daily × 3 days"), P("Erythromycin 500 mg\nPO BID × 5 days\n(Fluoroquinolone resistance high)")], [PB("Vibrio cholerae", TEAL), Paragraph("All cases\n(reduces duration\n& volume loss)", TREAT), P("Doxycycline"), P("4–6 mg/kg up to 300 mg\nPO once daily × 3 days\n(single dose also effective)"), P("Azithromycin 1 g PO once\nTetracycline 500 mg PO QID × 3d")], [PB("ETEC\n(Traveler's diarrhea)", TEAL), Paragraph("All symptomatic\ntravellers", TREAT), P("Rifaximin\nCiprofloxacin\nAzithromycin"), P("200 mg PO TID × 3 days\n750 mg PO once OR 500 mg BID × 3d\n1 g PO once"), P("Rifaximin preferred (non-invasive);\nAzithromycin for SE Asia\n(quinolone-resistant ETEC)")], [PB("E. coli O157:H7 /\nSTEC / Shiga toxin", TEAL), Paragraph("⚠ DO NOT TREAT\nwith antibiotics!", AVOID), Paragraph("SUPPORTIVE CARE ONLY", S("no", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=11)), Paragraph("Antibiotics ↑ risk of\nHUS & TTP", S("hus", fontName="Helvetica-Bold", fontSize=8, textColor=RED, leading=11)), Paragraph("Monitor renal function,\nplatelet count, haemoglobin\nfor HUS signs", S("husn", fontName="Helvetica", fontSize=7.5, textColor=RED, leading=10))], [PB("Yersinia\nenterocolitica", TEAL), Paragraph("Mild: supportive\nSevere/systemic: treat", COND), P("TMP-SMX"), P("160/800 mg PO BID × 3 days"), P("Ciprofloxacin 500 mg BID\nDoxycycline 100 mg BID")], [PB("C. difficile", TEAL), Paragraph("All diagnosed cases\n(recent antibiotics,\nhospitalised, LTC)", TREAT), P("Vancomycin\nFidaxomicin"), P("125 mg PO q6h × 10 days\n200 mg PO BID × 10 days"), P("Metronidazole 500 mg PO TID × 10d\n(mild cases or if others unavailable)\nBezlotoxumab if recurrent")], [PB("Giardia lamblia", TEAL), Paragraph("All symptomatic cases", TREAT), P("Metronidazole\nTinidazole"), P("250 mg PO TID × 5–7 days\n2 g PO single dose"), P("Nitazoxanide 500 mg BID × 3d\nAlbendazole 400 mg daily × 5d")], [PB("Cryptosporidium", TEAL), Paragraph("Immunocompetent:\nmild; usually self-limiting\nImmunocomp.: treat", COND), P("Nitazoxanide"), P("500 mg PO BID × 3 days\n(immunocompetent)"), P("No reliable Rx in HIV/AIDS;\nART optimisation key")], ] abx_data = [abx_headers] + abx_rows col_w2 = [3.0*cm, 2.5*cm, 3.5*cm, 4.8*cm, 4.0*cm] abx_table = Table(abx_data, colWidths=col_w2, repeatRows=1) row_colors = [] for i in range(1, len(abx_data)): bg = TEAL_LIGHT if i % 2 == 1 else WHITE row_colors.append(("BACKGROUND", (0, i), (-1, i), bg)) abx_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), TEAL), ("TEXTCOLOR", (0,0), (-1,0), WHITE), *row_colors, # STEC warning row (index 7) ("BACKGROUND", (0,7), (-1,7), RED_LIGHT), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(abx_table) story.append(Spacer(1, 4)) story.append(Paragraph( "Fluoroquinolone resistance is increasing in Campylobacter — azithromycin is preferred. " "Non-typhi Salmonella: antibiotics prolong shedding; reserve for fever, bloody diarrhoea, or bacteraemia. " "STEC/O157:H7: antibiotics are contraindicated — risk of HUS/TTP.", S("foot3", fontName="Helvetica-Oblique", fontSize=7.5, textColor=GREY_MID, leading=10) )) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════ # SECTION 4 — ANTIEMETICS & ADJUNCTS # ══════════════════════════════════════════════════════════ story.append(section_header(" SECTION 4 — ANTIEMETICS & ADJUNCTIVE THERAPY", bg=colors.HexColor("#6C3483"))) story.append(Spacer(1, 4)) adj_headers = [ Paragraph("Drug", S("xh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Class", S("xh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Dose", S("xh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), Paragraph("Notes", S("xh", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE, leading=11)), ] PURPLE_LIGHT = colors.HexColor("#F5EEF8") PURPLE = colors.HexColor("#6C3483") cl3 = S("cl3", fontName="Helvetica", fontSize=8, textColor=GREY_DARK, leading=11) adj_rows = [ [PB("Ondansetron", PURPLE), P("5-HT3 antagonist"), P("0.15 mg/kg (up to 8 mg)\nPO or IV"), P("★ First-line antiemetic. Reduces IV fluid needs & hospitalisations. Side effects: headache, diarrhoea (Rosen's EM)")], [PB("Dimenhydrinate", PURPLE), P("Antihistamine"), P("1–1.25 mg/kg PO/IV"), P("Reduces time to vomiting cessation by ~0.34 days (Yamada's). Sedating.")], [PB("Metoclopramide", PURPLE), P("Dopamine antagonist\n/ prokinetic"), P("10 mg IV/IM/PO"), P("Adults; extrapyramidal risk. Avoid in children.")], [PB("Loperamide", PURPLE), P("Antimotility\n(opioid-like)"), P("4 mg initially, then\n2 mg after each stool\n(max 16 mg/day)"), P("Adults only. Traveler's diarrhea (non-bloody, afebrile). AVOID: children, fever, bloody stools, STEC, C. diff.")], [PB("Zinc supplementation", PURPLE), P("Mineral"), P("<6 months: 10 mg/day\n>6 months: 20 mg/day\n× 10–14 days"), P("Developing countries: reduces duration & severity; also preventive. WHO/UNICEF recommendation.")], [PB("Probiotics\n(Lactobacillus GG)", PURPLE), P("Probiotic"), P("Variable by prep."), P("Moderate evidence for rotavirus diarrhoea. Preparations vary; no universal recommendation.")], [PB("Racecadotril", PURPLE), P("Enkephalinase\ninhibitor"), P("4.5 mg/kg/day (children)"), P("Adjunct for rotaviral diarrhoea. Reduces secretion without affecting motility.")], ] adj_data = [adj_headers] + adj_rows adj_row_colors = [] for i in range(1, len(adj_data)): bg = PURPLE_LIGHT if i % 2 == 1 else WHITE adj_row_colors.append(("BACKGROUND", (0, i), (-1, i), bg)) adj_table = Table(adj_data, colWidths=[3.0*cm, 2.8*cm, 3.5*cm, 8.5*cm], repeatRows=1) adj_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), PURPLE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), *adj_row_colors, ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(adj_table) story.append(Spacer(1, 8)) # ══════════════════════════════════════════════════════════ # SECTION 5 — KEY WARNINGS BOX # ══════════════════════════════════════════════════════════ warn_data = [ [Paragraph("⚠ KEY WARNINGS & PEARLS", S("wtitle", fontName="Helvetica-Bold", fontSize=10, textColor=RED, leading=13, alignment=TA_CENTER))], [Paragraph( "<b>1. STEC / E. coli O157:H7:</b> Antibiotics are CONTRAINDICATED — significantly increase risk of HUS and TTP.<br/>" "<b>2. Non-typhi Salmonella:</b> Antibiotics prolong carrier state — treat only if severe (bacteraemia, fever, bloody diarrhoea).<br/>" "<b>3. Sports drinks / juices / sodas:</b> NOT suitable for rehydration — high osmolarity, insufficient sodium.<br/>" "<b>4. Loperamide:</b> AVOID in children, febrile diarrhoea, bloody stools, STEC, and C. difficile (risk of toxic megacolon).<br/>" "<b>5. C. difficile:</b> Consider in any patient with recent antibiotics (1–4 weeks) or hospitalisation. CT abdomen if toxic/distended.<br/>" "<b>6. Fluoroquinolones + Campylobacter:</b> High resistance rates — prefer azithromycin.<br/>" "<b>7. Fasting worsens GI recovery</b> — early refeeding is evidence-based; do not withhold breast milk.", S("wbody", fontName="Helvetica", fontSize=8.5, textColor=GREY_DARK, leading=13) )], ] warn_table = Table(warn_data, colWidths=[W]) warn_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), RED_LIGHT), ("BACKGROUND", (0,1), (-1,1), colors.HexColor("#FFF9F9")), ("BOX", (0,0), (-1,-1), 1.5, RED), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10), ])) story.append(warn_table) story.append(Spacer(1, 6)) # Footer story.append(HRFlowable(width=W, thickness=0.5, color=GREY_MID)) story.append(Spacer(1, 3)) story.append(Paragraph( "Sources: Rosen's Emergency Medicine (9e) · Tintinalli's Emergency Medicine · Goldman-Cecil Medicine · " "Yamada's Textbook of Gastroenterology (7e) · WHO Oral Rehydration Therapy Guidelines", S("ftfoot", fontName="Helvetica-Oblique", fontSize=7, textColor=GREY_MID, leading=10, alignment=TA_CENTER) )) story.append(Paragraph( "For clinical use — verify doses against current local formulary and guidelines. Generated: July 2026.", S("ftfoot2", fontName="Helvetica-Oblique", fontSize=7, textColor=GREY_MID, leading=10, alignment=TA_CENTER) )) doc.build(story) print("PDF created:", OUTPUT) EOF
AGE Quick Reference
PDF Document · PDF
antibiotic ise critesria
Antibiotics are NOT indicated for the vast majority of acute gastroenteritis cases. Most episodes are viral, self-limited, and require only supportive care and rehydration.
| Indication | Source |
|---|---|
| Profuse diarrhea with dehydration | Harrison's |
| Overtly bloody stools | Harrison's, Rosen's |
| Fever ≥ 38.5°C (101°F) | Harrison's, Rosen's, Tintinalli's |
| Dysentery (bloody diarrhea + tenesmus) | Rosen's |
| Duration > 48 h without improvement | Harrison's |
| Duration > 1 week | Tintinalli's |
| Recent antibiotic use (1-4 weeks) - suspect C. difficile | Rosen's |
| Hospitalized patients | Goldman-Cecil |
| Immunocompromised host (HIV, transplant, chemotherapy) | All sources |
| Elderly (≥ 65-70 years) | Harrison's, Tintinalli's |
| Severe abdominal pain in patients aged > 50 years | Harrison's |
| New community outbreaks | Harrison's |
| Suspected enteric fever / travel to endemic area | Rosen's |
| Infants < 3 months | Rosen's |
| Pregnant women | Tintinalli's |
| Clinical Scenario | Recommended Empirical Agent |
|---|---|
| Toxic-appearing patient + fever ≥ 38.5°C | Azithromycin 500 mg PO daily × 3 days or Ciprofloxacin 500 mg PO BID × 3-5 days |
| Dysentery (bloody diarrhea + fever + tenesmus) | Same as above (but caution - exclude STEC first in children) |
| Severe traveler's diarrhea | Rifaximin 200 mg TID × 3d; or ciprofloxacin; or azithromycin (SE Asia) |
| Suspected C. difficile | Vancomycin 125 mg PO q6h × 10 days |
| Immunocompromised patient with febrile diarrhea | Start early; broader coverage; guide by cultures |
| Known organism in a community outbreak | Targeted therapy as per organism |
Important: In adults with bloody diarrhea, empirical antibiotics are generally recommended only if temperature > 38.5°C - because significant fever suggests a pathogen other than STEC/O157:H7, where antibiotics are harmful. - Rosen's EM
In children with bloody diarrhea: empirical antibiotics are NOT recommended - risk of triggering HUS. - Rosen's EM
| Organism | Treat? | Rationale |
|---|---|---|
| Shigella | YES - always | Reduces duration, prevents spread; invasive organism |
| Salmonella typhi | YES - always | Enteric fever; severe systemic disease |
| Salmonella non-typhi | NO in mild/moderate disease | Antibiotics prolong shedding - only treat if severe (bacteraemia, fever, bloody diarrhea, immunocompromised) |
| Campylobacter | Severe/prolonged > 7 days or immunocomp. | Azithromycin preferred (high fluoroquinolone resistance) |
| Vibrio cholerae | YES - all cases | Reduces volume loss and duration significantly |
| ETEC (traveler's diarrhea) | YES - symptomatic | Rifaximin/ciprofloxacin/azithromycin |
| E. coli O157:H7 / STEC | NEVER | Antibiotics increase HUS risk by 17x - eliminate competing flora, increase Shiga toxin release |
| C. difficile | YES - all confirmed | Vancomycin PO (first-line); fidaxomicin |
| Giardia | YES - symptomatic | Metronidazole or tinidazole |
| Yersinia | Mild: NO; Severe/systemic: YES | Supportive usually sufficient |
| Viral gastroenteritis (norovirus, rotavirus) | NEVER | No antiviral available; purely supportive |
| Food poisoning (Staph, B. cereus, C. perfringens) | NO | Preformed toxin; self-limited < 24 h; antibiotics unhelpful |
Antibiotics are absolutely contraindicated in STEC/O157:H7 infection.
| Severity | Management |
|---|---|
| Well-appearing, mild/moderate dehydration, no red flags | Outpatient ORT; no antibiotics; written discharge instructions |
| Fever + dysentery + toxic appearance | Cultures + empirical antibiotics |
| Bloody diarrhea in child | Cultures; NO empirical antibiotics; exclude STEC |
| Immunocompromised | Lower threshold for cultures, antibiotics, and admission |
| Severe dehydration, cannot tolerate oral fluids, electrolyte disturbance | Admit for IV rehydration |
| C. difficile + toxic/distended abdomen | CT abdomen; vancomycin PO; ID consult |