Describe in detail the classification of exposure, post-exposure prophylaxis, and wound management of dog bite cases. Add a note on advantages of intradermal administration of cell culture vaccines.

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
I now have comprehensive data from Park's, Tintinalli's, and Rosen's textbooks. Let me compile the complete, detailed answer.

Dog Bite: Classification of Exposure, Post-Exposure Prophylaxis, and Wound Management

WHO Classification of Exposure (Categories I, II, III)

The WHO has established a three-category system to guide decision-making after potential rabies exposure. This system is universally used in clinical practice:
CategoryType of Contact with Suspect Rabid AnimalPEP Measures
Category ITouching or feeding animals; licks on intact skinNone required
Category IINibbling of uncovered skin; minor scratches or abrasions without bleedingImmediate vaccination + local wound treatment
Category IIISingle or multiple transdermal bites or scratches; licks on broken skin; contamination of mucous membrane with saliva from licks; contact with batsImmediate vaccination + rabies immunoglobulin (RIG) + local wound treatment
All Category II and III exposures must be assessed as carrying a risk of developing rabies and require PEP. - Park's Textbook of Preventive and Social Medicine; Tintinalli's Emergency Medicine

Factors that increase the risk in Category II and III exposures:

  • The biting mammal is a known rabies reservoir or vector species
  • The animal looks sick or has abnormal behaviour
  • A wound or mucous membrane was contaminated by the animal's saliva
  • The bite was unprovoked
  • The animal has not been vaccinated
  • The biting animal cannot be traced or identified
Important note: In developing countries, the vaccination status of the suspected animal alone should not be used to decide whether to initiate prophylaxis or not. PEP may be discontinued if the animal is proved rabies-free by laboratory examination, or if a domestic dog, cat, or ferret remains healthy throughout a 10-day observation period from the date of the bite. - Park's Textbook of Preventive and Social Medicine

Wound Management (Local Treatment)

Prompt and adequate local treatment is the first and most important step in PEP. Animal experiments have shown local wound treatment can reduce the chance of developing rabies by up to 80%. It should ideally begin within minutes of exposure but should not be neglected even if several hours or days have elapsed. - Park's Textbook of Preventive and Social Medicine
Local treatment comprises four key steps:

(a) Cleansing

Immediate flushing and washing of wound(s), scratches, and adjacent areas with copious soap and water, preferably under a running tap, for at least 15 minutes. If soap is unavailable, flushing with plain water is acceptable as first-aid. For puncture wounds, catheters should be used to irrigate the deeper recesses of the wound.

(b) Chemical Treatment (Virucidal Agents)

After cleansing, residual virus in the wound should be inactivated by irrigation with virucidal agents:
  • Alcohol (400-700 ml/litre)
  • Tincture or aqueous solution of iodine (0.01%)
  • Povidone-iodine

(c) Suturing

Bite wounds should not be immediately sutured, as this can spread the virus into deeper tissues. If suturing is unavoidable, it should be deferred by 24-48 hours, using minimum possible stitches, and performed under local cover of rabies immunoglobulin infiltrated into the wound. - Park's Textbook of Preventive and Social Medicine

(d) Antibiotics and Anti-Tetanus Measures

Application of antibiotics and anti-tetanus procedures (tetanus toxoid +/- TIG) when indicated should follow the local wound treatment steps above.

Post-Exposure Prophylaxis (PEP)

The aim of PEP is to neutralize inoculated virus before it can enter the nervous system. Irrespective of the category of wound, the combined administration of a single dose of RIG (if indicated) + a full course of cell-culture vaccine + local wound treatment is the best prophylactic regimen. - Park's Textbook of Preventive and Social Medicine

1. Vaccines Used

The internationally recommended cell-culture and embryonated egg-based vaccines (CCEEVs) include:
  • Human Diploid Cell Vaccine (HDCV)
  • Purified Vero Cell Rabies Vaccine (PVRV)
  • Purified Chick Embryo Cell Vaccine (PCECV)
  • Primary Syrian Hamster Kidney Cell vaccine
  • Primary duck embryo (embryonated egg-based) vaccine
All WHO-prequalified CCEEVs must meet a potency of ≥ 2.5 IU per single intramuscular dose. They are inactivated vaccines and can be administered to immunocompromised individuals. - Park's Textbook of Preventive and Social Medicine

2. Intramuscular (IM) PEP Regimens

Vaccine is injected into the deltoid muscle (or anterolateral thigh in children < 2 years). Gluteal injection must be avoided (poor immunogenicity due to fat tissue).
a) Essen Regimen (5-dose)
  • 1 IM dose (1.0 ml or 0.5 ml) on Days 0, 3, 7, 14, and 28
b) Zagreb (Abbreviated Multisite) Regimen (2-1-1)
  • 2 doses on Day 0 (1 each in both deltoids or thighs), then 1 dose on Day 7, and 1 dose on Day 21
c) 4-Dose Simplified Schedule
  • 1 dose on Days 0, 3, 7, and 14 - recommended for healthy, fully immunocompetent individuals who receive high-quality RIG plus WHO-prequalified vaccines. This is the current US (ACIP) schedule.
  • Park's Textbook of Preventive and Social Medicine; Tintinalli's Emergency Medicine

3. Intradermal (ID) PEP Regimen

2-site intradermal regimen (2+2+2+0+2):
  • 0.1 ml injected at 2 sites (both deltoids or thighs) on Days 0, 3, 7, and 28
  • The Day 14 dose is omitted
  • Only used in countries where the intradermal route has been endorsed by national health authorities
  • Park's Textbook of Preventive and Social Medicine; Tintinalli's Emergency Medicine

4. Rabies Immunoglobulin (RIG) - Passive Immunization

RIG is indicated only for Category III exposures and is given once only, ideally at or as soon as possible after the first vaccine dose. It must not be given after Day 7 from the first vaccine dose (as active immunity has already begun).
ProductDose
Human RIG (HRIG)20 IU/kg body weight
Equine RIG (ERIG) / F(ab')2 products40 IU/kg body weight
Administration: As much RIG as anatomically feasible should be infiltrated into and around the wound site(s). Any remaining volume is injected intramuscularly at a site distant from the vaccine injection site. RIG may be diluted in saline to allow adequate infiltration of multiple wounds. RIG should never be given in the same syringe or site as the vaccine. - Park's Textbook of Preventive and Social Medicine; Rosen's Emergency Medicine

5. PEP in Previously Vaccinated Individuals

  • Wound care + 2 IM doses (Days 0 and 3), OR 4 ID doses (all on Day 0, in 4 sites)
  • RIG is NOT required in previously vaccinated persons with documented neutralizing antibody titers ≥ 0.5 IU/mL

6. PEP in Immunocompromised Individuals

  • A complete 5-dose IM CCEEV regimen is required along with wound management and local RIG infiltration
  • Rabies-virus neutralizing antibody response should be checked 2-4 weeks after vaccination to assess if a booster is needed

Note on Advantages of Intradermal Administration of Cell-Culture Vaccines

Intradermal administration of rabies CCEEVs offers several important advantages, particularly relevant to resource-limited settings:
  1. Dose economy / Cost reduction: Each ID injection uses only 0.1 ml - approximately one-fifth of the intramuscular dose (0.5 or 1.0 ml). Multiple patients can be vaccinated from a single multidose vial, dramatically reducing the per-patient cost of the complete PEP course. The WHO recommends the ID route as an alternative to IM precisely for reasons of cost and availability.
  2. Equal immunogenicity: When administered correctly by trained staff, the intradermal route is highly efficacious and induces protective neutralizing antibody titers (≥ 0.5 IU/mL) comparable to the IM route. Studies confirm 100% of healthy individuals achieve significant antibody response with WHO-approved CCEEVs. No individual with circulating neutralizing antibody levels above 0.5 IU/mL has ever contracted rabies. - Rosen's Emergency Medicine
  3. Suitability for pre-exposure prophylaxis (PrEP) programs: The lower cost makes mass or traveler PrEP programs feasible in endemic regions, where the IM regimen would be cost-prohibitive.
  4. Same vaccine, different route: The identical CCEEV vials used for IM administration can be repurposed for ID use (in countries where endorsed), without the need for a separate product, simplifying supply chains.
  5. Multiple simultaneous vaccination sites: The ID route allows simultaneous injections at multiple sites on the same day, facilitating accelerated schedules (e.g., the 2-site ID regimen on Days 0, 3, 7, 28).
Limitations to be aware of:
  • Technically more demanding - requires proper intradermal injection technique; subcutaneous deposit gives a poor immune response
  • Staff must be specifically trained
  • Chloroquine (and possibly other antimalarials) can impair immunogenicity of intradermal rabies vaccine; these patients should receive the IM route instead
  • Not licensed for ID administration in the US postexposure setting; the US CDC recommends IM only
  • Park's Textbook of Preventive and Social Medicine; Tintinalli's Emergency Medicine; Rosen's Emergency Medicine

Summary of Key Decision Points in Dog Bite Management:
Dog bite → Assess wound category (I / II / III)
        ↓
Category I → Wash + reassure; no vaccine/RIG
        ↓
Category II → Wound treatment + full CCEEV course (IM or ID)
        ↓
Category III → Wound treatment + CCEEV + RIG (infiltrate wound first)
        ↓
Previously vaccinated? → 2 IM doses (Days 0 & 3), no RIG
        ↓
Observe animal 10 days (dog/cat/ferret) → Stop PEP if animal healthy

Create pdf

Reading File
Running Command

ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"

Running Command

mkdir -p /tmp/workspace/dog-bite-pdf && cat > /tmp/workspace/dog-bite-pdf/generate_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.lib import colors from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY OUTPUT = "/tmp/workspace/dog-bite-pdf/Dog_Bite_Management.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=2*cm, rightMargin=2*cm, topMargin=2.5*cm, bottomMargin=2.5*cm, title="Dog Bite Management: Classification, PEP & Wound Care", author="Orris Medical Reference", ) # ── Colour palette ──────────────────────────────────────────── DARK_BLUE = colors.HexColor("#1a3a5c") MID_BLUE = colors.HexColor("#2563a8") LIGHT_BLUE = colors.HexColor("#dbeafe") TEAL = colors.HexColor("#0f766e") LIGHT_TEAL = colors.HexColor("#ccfbf1") AMBER = colors.HexColor("#d97706") LIGHT_AMBER = colors.HexColor("#fef3c7") RED = colors.HexColor("#dc2626") LIGHT_RED = colors.HexColor("#fee2e2") GREY_BG = colors.HexColor("#f1f5f9") GREY_BORDER = colors.HexColor("#cbd5e1") WHITE = colors.white BLACK = colors.HexColor("#1e293b") # ── Styles ──────────────────────────────────────────────────── styles = getSampleStyleSheet() def S(name, **kw): return ParagraphStyle(name, **kw) title_style = S("DocTitle", fontSize=20, leading=26, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=4) subtitle_style = S("DocSub", fontSize=10, leading=14, textColor=colors.HexColor("#bfdbfe"), fontName="Helvetica", alignment=TA_CENTER, spaceAfter=0) h1 = S("H1", fontSize=13, leading=17, textColor=WHITE, fontName="Helvetica-Bold", spaceBefore=6, spaceAfter=4) h2 = S("H2", fontSize=11, leading=15, textColor=DARK_BLUE, fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4) h3 = S("H3", fontSize=10, leading=14, textColor=TEAL, fontName="Helvetica-Bold", spaceBefore=6, spaceAfter=2) body = S("Body", fontSize=9.5, leading=14, textColor=BLACK, fontName="Helvetica", spaceAfter=4, alignment=TA_JUSTIFY) bullet = S("Bullet", fontSize=9.5, leading=13, textColor=BLACK, fontName="Helvetica", spaceAfter=3, leftIndent=14, firstLineIndent=-10, alignment=TA_LEFT) note_style = S("Note", fontSize=9, leading=13, textColor=colors.HexColor("#92400e"), fontName="Helvetica-Oblique", spaceAfter=4) footer_style = S("Footer", fontSize=8, leading=10, textColor=colors.HexColor("#94a3b8"), fontName="Helvetica", alignment=TA_CENTER) source_style = S("Source", fontSize=8, leading=11, textColor=colors.HexColor("#64748b"), fontName="Helvetica-Oblique", spaceAfter=2) # ── Helper: section header band ─────────────────────────────── def section_header(text, bg=DARK_BLUE): tbl = Table([[Paragraph(text, h1)]], colWidths=[17*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("ROWPADDING", (0,0), (-1,-1), 7), ("BOX", (0,0), (-1,-1), 0, bg), ])) return tbl def sub_header(text): tbl = Table([[Paragraph(text, h2)]], colWidths=[17*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), LIGHT_BLUE), ("ROWPADDING", (0,0), (-1,-1), 5), ("LINEBELOW", (0,0), (-1,-1), 1.5, MID_BLUE), ])) return tbl def info_box(paragraphs, bg=LIGHT_AMBER, border=AMBER): content = [[p] for p in paragraphs] # flatten to single cell cell_content = [p for p in paragraphs] tbl = Table([cell_content], colWidths=[17*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("BOX", (0,0), (-1,-1), 1, border), ("ROWPADDING", (0,0), (-1,-1), 6), ])) return tbl def bp(text): return Paragraph(f"<b>\u2022</b> {text}", bullet) def space(h=0.3): return Spacer(1, h*cm) # ── Build story ─────────────────────────────────────────────── story = [] # ── TITLE BLOCK ─────────────────────────────────────────────── title_data = [[ Paragraph("Dog Bite Management", title_style), Paragraph("Classification of Exposure &bull; Post-Exposure Prophylaxis &bull; Wound Management &bull; Intradermal Vaccines", subtitle_style), ]] title_tbl = Table(title_data, colWidths=[17*cm]) title_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), DARK_BLUE), ("ROWPADDING", (0,0), (-1,-1), 14), ("BOX", (0,0), (-1,-1), 0, DARK_BLUE), ])) story.append(title_tbl) story.append(space(0.5)) story.append(Paragraph("Sources: Park's Textbook of Preventive &amp; Social Medicine | Tintinalli's Emergency Medicine | Rosen's Emergency Medicine", source_style)) story.append(HRFlowable(width="100%", thickness=1, color=GREY_BORDER)) story.append(space(0.4)) # ═══════════════════════════════════════════════════════════════ # SECTION 1 — WHO EXPOSURE CLASSIFICATION # ═══════════════════════════════════════════════════════════════ story.append(section_header("1. WHO Classification of Exposure")) story.append(space(0.3)) story.append(Paragraph( "The WHO three-category system guides all post-exposure decision-making after potential rabies exposure from an animal bite or contact.", body)) story.append(space(0.2)) # Classification table cat_header_style = S("CatH", fontSize=9.5, fontName="Helvetica-Bold", textColor=WHITE, leading=13) cat_body_style = S("CatB", fontSize=9, fontName="Helvetica", textColor=BLACK, leading=13) cat_pep_style = S("CatP", fontSize=9, fontName="Helvetica-Bold", textColor=DARK_BLUE, leading=13) def cp(t, s): return Paragraph(t, s) cat_data = [ [cp("Category", cat_header_style), cp("Type of Contact", cat_header_style), cp("Examples", cat_header_style), cp("PEP Recommended", cat_header_style)], [cp("I\n(No exposure)", cat_body_style), cp("Touching or feeding animals; licks on intact skin", cat_body_style), cp("Petting a dog; handling without wound", cat_body_style), cp("None", cat_pep_style)], [cp("II\n(Minor exposure)", cat_body_style), cp("Nibbling of uncovered skin; minor scratches or abrasions without bleeding", cat_body_style), cp("Superficial scratch; small abrasion on hand", cat_body_style), cp("Immediate vaccination + local wound treatment", cat_pep_style)], [cp("III\n(Severe exposure)", cat_body_style), cp("Transdermal bite(s) or scratch(es); licks on broken skin; mucous membrane contamination; bat contact", cat_body_style), cp("Deep dog bite; scratch that bleeds; saliva in eye/mouth", cat_body_style), cp("Immediate vaccination + Rabies Immunoglobulin (RIG) + local wound treatment", cat_pep_style)], ] cat_tbl = Table(cat_data, colWidths=[2.5*cm, 4.5*cm, 4*cm, 6*cm]) cat_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("BACKGROUND", (0,1), (-1,1), LIGHT_TEAL), ("BACKGROUND", (0,2), (-1,2), LIGHT_AMBER), ("BACKGROUND", (0,3), (-1,3), LIGHT_RED), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(cat_tbl) story.append(space(0.3)) # Risk factors box story.append(Paragraph("<b>Factors that increase risk (Category II &amp; III):</b>", h3)) for f in [ "Biting mammal is a known rabies reservoir or vector species", "Animal looks sick or has abnormal behaviour", "Wound or mucous membrane was contaminated by the animal's saliva", "Bite was unprovoked", "Animal has not been vaccinated", "Biting animal cannot be traced or identified", ]: story.append(bp(f)) story.append(space(0.2)) note_tbl = Table([[Paragraph( "<b>Important:</b> In developing countries, the vaccination status of the suspected animal <b>alone</b> should not " "determine whether to initiate prophylaxis. PEP may be discontinued if the animal is proved rabies-free by " "laboratory examination, or if a domestic dog/cat/ferret remains healthy throughout a <b>10-day observation " "period</b> from the date of the bite.", note_style)]], colWidths=[17*cm]) note_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), LIGHT_AMBER), ("BOX", (0,0), (-1,-1), 1, AMBER), ("ROWPADDING", (0,0), (-1,-1), 7), ])) story.append(note_tbl) story.append(space(0.5)) # ═══════════════════════════════════════════════════════════════ # SECTION 2 — WOUND MANAGEMENT # ═══════════════════════════════════════════════════════════════ story.append(section_header("2. Wound Management (Local Treatment)", bg=TEAL)) story.append(space(0.3)) story.append(Paragraph( "Prompt and adequate local wound treatment is the <b>first and most critical step</b> in post-exposure management. " "Animal experiments have demonstrated that local wound treatment reduces the risk of developing rabies by up to <b>80%</b>. " "It should begin within minutes of exposure but must not be neglected even if hours or days have elapsed.", body)) story.append(space(0.2)) wound_steps = [ ("(a) Cleansing", "Flush and wash all bite wounds, scratches, and adjacent areas with <b>copious soap and water under a running tap " "for at least 15 minutes</b>. If soap is unavailable, flush thoroughly with plain water. " "For puncture wounds, use catheters to irrigate deeply."), ("(b) Chemical Treatment (Virucidal Agents)", "After cleansing, inactivate residual virus by irrigating with: <b>alcohol (400–700 ml/litre)</b>, " "<b>tincture or 0.01% aqueous iodine solution</b>, or <b>povidone-iodine</b>."), ("(c) Suturing", "<b>Do not immediately suture</b> bite wounds — this spreads virus into deeper tissues. " "If suturing is unavoidable, defer by <b>24–48 hours</b>, use minimum stitches, and perform under local cover of " "rabies immunoglobulin infiltrated into the wound."), ("(d) Antibiotics &amp; Anti-Tetanus", "Apply antibiotics and anti-tetanus measures (tetanus toxoid ± tetanus immunoglobulin) when indicated, " "following the local wound treatment steps above."), ] for title, desc in wound_steps: row_data = [[Paragraph(title, h3), Paragraph(desc, body)]] row_tbl = Table(row_data, colWidths=[4.5*cm, 12.5*cm]) row_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (0,0), LIGHT_TEAL), ("BACKGROUND", (1,0), (1,0), WHITE), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 7), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(row_tbl) story.append(space(0.1)) story.append(space(0.5)) # ═══════════════════════════════════════════════════════════════ # SECTION 3 — POST-EXPOSURE PROPHYLAXIS # ═══════════════════════════════════════════════════════════════ story.append(section_header("3. Post-Exposure Prophylaxis (PEP)")) story.append(space(0.3)) story.append(Paragraph( "The aim of PEP is to neutralise inoculated virus <b>before</b> it enters the nervous system. " "The combined administration of a single dose of RIG (if indicated) + a full CCEEV vaccine course " "+ local wound treatment is the gold standard.", body)) story.append(space(0.3)) # 3a — Vaccines story.append(sub_header("3a. Cell-Culture &amp; Embryonated Egg-Based Vaccines (CCEEVs)")) story.append(space(0.2)) vax_data = [ [Paragraph("<b>Vaccine Type</b>", cat_header_style), Paragraph("<b>Cell Substrate</b>", cat_header_style)], [Paragraph("Human Diploid Cell Vaccine (HDCV)", cat_body_style), Paragraph("Human embryonic fibroblast cells", cat_body_style)], [Paragraph("Purified Vero Cell Rabies Vaccine (PVRV)", cat_body_style), Paragraph("Vero cells (African green monkey kidney)", cat_body_style)], [Paragraph("Purified Chick Embryo Cell Vaccine (PCECV)", cat_body_style), Paragraph("Primary chick embryo cells", cat_body_style)], [Paragraph("Purified Duck Embryo Vaccine (PDEV)", cat_body_style), Paragraph("Embryonated duck eggs", cat_body_style)], [Paragraph("Primary Syrian Hamster Kidney Cell Vaccine", cat_body_style), Paragraph("Primary hamster kidney cells", cat_body_style)], ] vax_tbl = Table(vax_data, colWidths=[8*cm, 9*cm]) vax_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), MID_BLUE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ])) story.append(vax_tbl) story.append(space(0.15)) story.append(Paragraph( "All WHO-prequalified CCEEVs must meet a potency of <b>≥ 2.5 IU per single IM dose</b>. " "Stored at +2°C to +8°C; shelf-life ≥ 3 years. Once reconstituted, use within 6–8 hours.", body)) story.append(space(0.3)) # 3b — IM Regimens story.append(sub_header("3b. Intramuscular (IM) PEP Regimens")) story.append(space(0.15)) story.append(Paragraph( "Vaccine injected into the <b>deltoid muscle</b> (anterolateral thigh in children &lt; 2 years). " "<b>Gluteal injection must be avoided</b> (poor immunogenicity due to fat tissue absorption).", body)) story.append(space(0.15)) reg_header = S("RegH", fontSize=9.5, fontName="Helvetica-Bold", textColor=WHITE, leading=13) reg_body = S("RegB", fontSize=9, fontName="Helvetica", textColor=BLACK, leading=13) reg_sched = S("RegS", fontSize=9, fontName="Helvetica-Bold", textColor=TEAL, leading=13) reg_data = [ [Paragraph("<b>Regimen</b>", reg_header), Paragraph("<b>Schedule</b>", reg_header), Paragraph("<b>Notes</b>", reg_header)], [Paragraph("Essen (5-dose)", reg_body), Paragraph("Days 0, 3, 7, 14, 28", reg_sched), Paragraph("Standard worldwide regimen; 1 IM dose each visit", reg_body)], [Paragraph("Zagreb / Abbreviated Multisite (2-1-1)", reg_body), Paragraph("Day 0 (×2 sites), Day 7, Day 21", reg_sched), Paragraph("2 doses on Day 0 (one in each deltoid/thigh); fewer visits", reg_body)], [Paragraph("4-dose simplified (ACIP / US)", reg_body), Paragraph("Days 0, 3, 7, 14", reg_sched), Paragraph("For healthy immunocompetent patients; current US CDC standard", reg_body)], ] reg_tbl = Table(reg_data, colWidths=[4.5*cm, 5*cm, 7.5*cm]) reg_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), MID_BLUE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG, LIGHT_BLUE]), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(reg_tbl) story.append(space(0.3)) # 3c — ID Regimen story.append(sub_header("3c. Intradermal (ID) PEP Regimen")) story.append(space(0.15)) story.append(Paragraph( "<b>2-site intradermal regimen (2+2+2+0+2):</b> Inject <b>0.1 ml at 2 sites</b> (both deltoids or thighs) " "on Days 0, 3, 7 and 28 (Day 14 is omitted). Applicable in countries where the ID route is endorsed by " "national health authorities for Category II and III exposures.", body)) story.append(space(0.1)) story.append(Paragraph( "Each ID dose = one-fifth of the IM dose (0.1 ml vs 0.5–1.0 ml), making this route significantly more economical.", body)) story.append(space(0.3)) # 3d — RIG story.append(sub_header("3d. Rabies Immunoglobulin (RIG) — Passive Immunisation")) story.append(space(0.15)) rig_data = [ [Paragraph("<b>Product</b>", reg_header), Paragraph("<b>Dose</b>", reg_header), Paragraph("<b>Source</b>", reg_header)], [Paragraph("Human Rabies Immunoglobulin (HRIG)", reg_body), Paragraph("20 IU/kg body weight", reg_sched), Paragraph("Human plasma donors", reg_body)], [Paragraph("Equine Rabies Immunoglobulin (ERIG) / F(ab')₂", reg_body), Paragraph("40 IU/kg body weight", reg_sched), Paragraph("Horse-derived; skin test before use", reg_body)], ] rig_tbl = Table(rig_data, colWidths=[6*cm, 4.5*cm, 6.5*cm]) rig_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), TEAL), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ])) story.append(rig_tbl) story.append(space(0.15)) for pt in [ "Indicated <b>only for Category III exposures</b>; given <b>once only</b>.", "Administer at or as soon as possible after the first vaccine dose. <b>Not indicated beyond Day 7</b> from first vaccine dose (active immunity has begun).", "Infiltrate as much RIG as anatomically feasible into and around the wound site(s). Remaining volume injected IM at a site <b>distant</b> from the vaccine site.", "Never administer RIG in the same syringe or at the same site as the vaccine.", "RIG may be diluted in saline to facilitate adequate infiltration of multiple wounds.", ]: story.append(bp(pt)) story.append(space(0.3)) # 3e — Special populations story.append(sub_header("3e. PEP in Special Populations")) story.append(space(0.1)) sp_data = [ [Paragraph("<b>Population</b>", reg_header), Paragraph("<b>Regimen</b>", reg_header), Paragraph("<b>RIG Required?</b>", reg_header)], [Paragraph("Previously vaccinated (documented complete PrEP or PEP)", reg_body), Paragraph("2 IM doses (Days 0 &amp; 3)\nOR 4 ID doses (all Day 0, 4 sites)", reg_body), Paragraph("No", reg_sched)], [Paragraph("Immunocompromised (HIV, steroids, immunosuppressants)", reg_body), Paragraph("5-dose IM course; check neutralising antibody titre 2–4 weeks after completion", reg_body), Paragraph("Yes (Cat III)", reg_sched)], [Paragraph("Chloroquine / antimalarial users", reg_body), Paragraph("Use IM route only (chloroquine impairs ID response)", reg_body), Paragraph("Per category", reg_sched)], ] sp_tbl = Table(sp_data, colWidths=[5.5*cm, 7.5*cm, 4*cm]) sp_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG, LIGHT_AMBER]), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(sp_tbl) story.append(space(0.5)) # ═══════════════════════════════════════════════════════════════ # SECTION 4 — INTRADERMAL ADVANTAGES # ═══════════════════════════════════════════════════════════════ story.append(section_header("4. Advantages of Intradermal Administration of Cell-Culture Vaccines", bg=TEAL)) story.append(space(0.3)) adv_items = [ ("Dose Economy &amp; Cost Reduction", "Each ID injection uses only <b>0.1 ml</b> — approximately one-fifth of the IM dose. Multiple patients " "can be vaccinated from a single multidose vial, dramatically reducing cost per patient. The WHO " "endorses the ID route specifically for reasons of cost and availability in resource-limited settings."), ("Equal Immunogenicity", "When correctly administered by trained staff, the ID route is highly efficacious and induces protective " "neutralising antibody titres (≥ 0.5 IU/mL) comparable to IM administration. Studies confirm that " "<b>100% of healthy individuals</b> achieve a significant antibody response with WHO-approved CCEEVs. " "No individual with circulating neutralising antibody levels &gt; 0.5 IU/mL has ever contracted rabies."), ("Suitability for Mass PrEP Programmes", "The substantially lower cost makes pre-exposure prophylaxis (PrEP) programmes and traveller vaccination " "feasible in endemic regions where the full IM course would be cost-prohibitive."), ("Same Vaccine — No Special Product Required", "The identical CCEEV vials used for IM administration can be repurposed for the ID route (in countries " "where endorsed), without requiring a separate product — simplifying supply chains and storage."), ("Multiple Sites in One Visit", "The ID route allows simultaneous injections at 2 or more sites on the same day (as in the 2-site ID regimen), " "facilitating accelerated schedules and reducing the total number of clinic visits."), ("Safety Profile", "Local reactions (redness, induration at injection site) are the primary adverse effects; systemic " "reactions are uncommon. No deaths have been reported from licensed CCEEV products by either route."), ] for i, (title, desc) in enumerate(adv_items): bg = LIGHT_TEAL if i % 2 == 0 else WHITE row = Table([[Paragraph(f"<b>{i+1}. {title}</b>", h3), Paragraph(desc, body)]], colWidths=[5*cm, 12*cm]) row.setStyle(TableStyle([ ("BACKGROUND", (0,0), (0,0), LIGHT_TEAL), ("BACKGROUND", (1,0), (1,0), bg), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 7), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(row) story.append(space(0.05)) story.append(space(0.2)) # Limitations box lim_tbl = Table([[Paragraph( "<b>Limitations of the ID route:</b> Technically more demanding — requires proper intradermal injection technique " "(subcutaneous depot gives poor immune response); staff must be specifically trained. " "Chloroquine and structurally related antimalarials impair ID immunogenicity — use IM instead in these patients. " "Not licensed for ID administration in the postexposure setting in the United States (CDC recommends IM only).", note_style)]], colWidths=[17*cm]) lim_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), LIGHT_RED), ("BOX", (0,0), (-1,-1), 1, RED), ("ROWPADDING", (0,0), (-1,-1), 8), ])) story.append(lim_tbl) story.append(space(0.5)) # ═══════════════════════════════════════════════════════════════ # SECTION 5 — DECISION SUMMARY # ═══════════════════════════════════════════════════════════════ story.append(section_header("5. Quick Decision Summary")) story.append(space(0.3)) sum_data = [ [Paragraph("<b>Scenario</b>", reg_header), Paragraph("<b>Wound Care</b>", reg_header), Paragraph("<b>Vaccine</b>", reg_header), Paragraph("<b>RIG</b>", reg_header)], [Paragraph("Category I (intact skin contact)", reg_body), Paragraph("Wash if needed", reg_body), Paragraph("None", reg_body), Paragraph("None", reg_body)], [Paragraph("Category II (minor scratch, no bleed)", reg_body), Paragraph("Soap + water 15 min; virucidal agent", reg_body), Paragraph("Full CCEEV course", reg_body), Paragraph("None", reg_body)], [Paragraph("Category III (deep bite / mucous membrane)", reg_body), Paragraph("Soap + water 15 min; virucidal agent; defer suture 24–48 h", reg_body), Paragraph("Full CCEEV course", reg_body), Paragraph("HRIG 20 IU/kg or ERIG 40 IU/kg (Day 0, once only)", reg_body)], [Paragraph("Previously vaccinated (any Category III)", reg_body), Paragraph("Full local wound care", reg_body), Paragraph("2 doses (Days 0 &amp; 3)", reg_body), Paragraph("None needed", reg_body)], ] sum_tbl = Table(sum_data, colWidths=[4*cm, 4.5*cm, 4.5*cm, 4*cm]) sum_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_TEAL, LIGHT_AMBER, LIGHT_RED, GREY_BG]), ("GRID", (0,0), (-1,-1), 0.5, GREY_BORDER), ("ROWPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(sum_tbl) story.append(space(0.4)) # Footer story.append(HRFlowable(width="100%", thickness=0.8, color=GREY_BORDER)) story.append(space(0.2)) story.append(Paragraph( "Sources: Park's Textbook of Preventive &amp; Social Medicine (24th ed.) | " "Tintinalli's Emergency Medicine: A Comprehensive Study Guide | " "Rosen's Emergency Medicine: Concepts and Clinical Practice | WHO PEP Guidelines", footer_style)) story.append(Paragraph( "Generated by Orris Medical Reference \u2022 July 2026 \u2022 For educational use only", footer_style)) # ── Build ───────────────────────────────────────────────────── doc.build(story) print(f"PDF created: {OUTPUT}") PYEOF echo "Script written"

Running Command

cd /tmp/workspace/dog-bite-pdf && python generate_pdf.py

Running Command

ls -lh /tmp/workspace/dog-bite-pdf/Dog_Bite_Management.pdf

Your PDF is ready for download:

Dog Bite Management

PDF Document · PDF

What's inside the PDF (5 colour-coded sections):
  1. WHO Classification of Exposure - Full Category I / II / III table with contact types, examples, and PEP recommendations; risk-increasing factors; 10-day observation rule note
  2. Wound Management - Four-step local treatment protocol (cleansing, virucidal agents, suturing rules, antibiotics/anti-tetanus) in a structured table
  3. Post-Exposure Prophylaxis - CCEEV vaccine types; IM regimens (Essen 5-dose, Zagreb 2-1-1, ACIP 4-dose); ID 2-site regimen; RIG dosing table (HRIG vs ERIG); special populations (previously vaccinated, immunocompromised, antimalarial users)
  4. Advantages of Intradermal Administration - Six advantages (dose economy, equal immunogenicity, PrEP feasibility, same-vial use, multi-site scheduling, safety) plus a highlighted limitations box
  5. Quick Decision Summary - One-page reference table mapping each scenario to wound care, vaccine, and RIG requirements
This is a shared conversation. Sign in to Orris to start your own chat.