Prevalence, incidence, eradication and surveillance of the polio melodies.
polio eradication prevalence incidence surveillance 2025 2026 WHO GPEI
poliomyelitis eradication surveillance
https://www.who.int/health-topics/poliomyelitis
| Era | Burden |
|---|---|
| Pre-vaccine (before 1954) | Endemic worldwide in all countries; predominantly a childhood disease |
| Peak epidemic period (1951-1955, USA) | 24 cases per 100,000 population (Adams & Victor's Neurology) |
| 1988 (GPEI launch) | ~350,000 annual cases in 125+ endemic countries; ~1,000 children paralyzed per day |
| 2017 | 22 WPV cases globally (Afghanistan 14, Pakistan 8, Nigeria 4) |
| 2021 | 6 reported WPV cases globally |
| 2022 | 22 reported cases (uptick, reflecting cVDPV outbreaks) |
| Post-1979 (USA) | Wild poliovirus eradicated; annual incidence <0.01 per 100,000 |
| 2020 onward | Only 2 countries remain WPV-endemic: Afghanistan and Pakistan |
| Type | Description |
|---|---|
| cVDPV | Person-to-person community transmission confirmed |
| iVDPV | Isolated from immunodeficient individuals (prolonged shedding) |
| aVDPV | Ambiguous origin - from people with unknown immunodeficiency or from environmental samples |
| Indicator | Minimum Standard |
|---|---|
| Completeness of reporting | ≥80% of expected weekly/monthly AFP reports received on time (including zero reports) |
| Sensitivity of surveillance | ≥1 non-polio AFP case detected per 100,000 population aged <15 years/year (≥2/100,000 in endemic regions) |
| Completeness of case investigation | ≥80% of AFP cases have "adequate" stool specimens (2 specimens, 24 hrs apart, within 14 days, proper cold chain) |
| Completeness of follow-up | ≥80% of AFP cases have residual paralysis follow-up at 60 days after onset |
| Laboratory performance | All specimens processed in a WHO-accredited GPLN laboratory |
| Strategy | Description |
|---|---|
| Routine immunization | High immunization coverage (IPV in developed countries; bOPV + IPV in endemic areas) |
| Supplementary Immunization Activities (SIAs) | National Immunization Days (NIDs) / Pulse Polio days - every child under 5 receives OPV regardless of prior immunization status |
| Mopping up | Door-to-door vaccination in high-risk districts where WPV is suspected to circulate |
| AFP surveillance | Detect and respond to every AFP case as a potential polio case |
| Outbreak response | Single confirmed case = treated as outbreak; response initiated within 48 hours |
| OPV withdrawal | Sequential withdrawal of tOPV → bOPV → eventual cessation of all OPV |
| IPV introduction | At least 1 IPV dose universally as risk mitigation during OPV phase-out |
| Laboratory containment | Post-eradication containment of all WPV stocks under Polio Essential Facilities (PEF) protocol |
Recent literature note: A 2025 review (PMID 40962176) addresses poliomyelitis as "the paradigm of an eliminated disease" and discusses ongoing sequelae and remaining challenges to eradication - consistent with the above findings.
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "workspace ready"
mkdir -p /tmp/workspace/polio-pdf && python3 << '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, PageBreak) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY OUTPUT = "/tmp/workspace/polio-pdf/Poliomyelitis_Prevalence_Incidence_Eradication_Surveillance.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=2.5*cm, rightMargin=2.5*cm, topMargin=2.5*cm, bottomMargin=2.5*cm, title="Poliomyelitis: Prevalence, Incidence, Eradication & Surveillance", author="Orris AI" ) styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle( 'DocTitle', parent=styles['Title'], fontSize=22, leading=28, spaceAfter=6, textColor=colors.HexColor('#1a3a5c'), alignment=TA_CENTER ) subtitle_style = ParagraphStyle( 'DocSubtitle', parent=styles['Normal'], fontSize=11, leading=14, spaceAfter=18, textColor=colors.HexColor('#4a6fa5'), alignment=TA_CENTER ) h1_style = ParagraphStyle( 'H1', parent=styles['Heading1'], fontSize=14, leading=18, spaceBefore=16, spaceAfter=6, textColor=colors.HexColor('#1a3a5c'), borderPad=4, ) h2_style = ParagraphStyle( 'H2', parent=styles['Heading2'], fontSize=11.5, leading=15, spaceBefore=10, spaceAfter=4, textColor=colors.HexColor('#2e5fa3'), ) body_style = ParagraphStyle( 'Body', parent=styles['Normal'], fontSize=10, leading=15, spaceAfter=6, alignment=TA_JUSTIFY ) bullet_style = ParagraphStyle( 'Bullet', parent=styles['Normal'], fontSize=10, leading=14, spaceAfter=3, leftIndent=18, bulletIndent=6 ) source_style = ParagraphStyle( 'Source', parent=styles['Normal'], fontSize=8, leading=11, spaceAfter=3, textColor=colors.HexColor('#666666'), leftIndent=10 ) note_style = ParagraphStyle( 'Note', parent=styles['Normal'], fontSize=9, leading=13, textColor=colors.HexColor('#555555'), backColor=colors.HexColor('#f0f4fa'), borderPad=6, spaceAfter=8, leftIndent=8, rightIndent=8 ) def hr(): return HRFlowable(width="100%", thickness=1, color=colors.HexColor('#c0cfe0'), spaceAfter=8, spaceBefore=4) def h1(text): return Paragraph(text, h1_style) def h2(text): return Paragraph(text, h2_style) def body(text): return Paragraph(text, body_style) def bullet(text): return Paragraph(f"• {text}", bullet_style) def sp(n=6): return Spacer(1, n) story = [] # ─── TITLE PAGE ─────────────────────────────────────────────────────────────── story.append(Spacer(1, 1.5*cm)) story.append(Paragraph("POLIOMYELITIS", title_style)) story.append(Paragraph("Prevalence, Incidence, Eradication & Surveillance", subtitle_style)) story.append(hr()) story.append(Spacer(1, 0.4*cm)) story.append(Paragraph( "A comprehensive review drawing on Park's Textbook of Preventive and Social Medicine, " "Campbell's Operative Orthopaedics (2026), Tintinalli's Emergency Medicine, " "Adams & Victor's Principles of Neurology, Goldman-Cecil Medicine, WHO, and GPEI data.", note_style )) story.append(Spacer(1, 0.3*cm)) # ─── SECTION 1: Disease Overview ────────────────────────────────────────────── story.append(h1("1. Disease Overview")) story.append(hr()) story.append(body( "Poliomyelitis (polio) is a neurotropic enteroviral infection caused by one of three wild poliovirus " "(WPV) serotypes (type 1, 2, and 3). Transmission is primarily <b>fecal-oral</b> in resource-poor " "settings with poor sanitation, or <b>oral-oral</b> in developed countries. The virus enters via the " "gastrointestinal tract, replicates in gut-associated lymphoid tissue, and at a critical concentration " "invades the large motor nuclei of the spinal cord, brainstem, and reticular formation, causing " "irreversible lower motor neuron destruction and muscle denervation." )) story.append(h2("Clinical Spectrum")) spectrum_data = [ ["Form", "Frequency", "Key Features"], ["Subclinical / Asymptomatic", ">90% of infections", "No symptoms; virus shed in stool"], ["Abortive (Minor illness)", "~5-8%", "Fever, malaise, sore throat, GI upset; no paralysis"], ["Non-paralytic (Aseptic meningitis)", "~1-2%", "Meningism without paralysis"], ["Paralytic polio", "0.5-1% of infected\n(1-2% of all infections)", "Asymmetric flaccid paralysis; anterior horn cell destruction"], ] t = Table(spectrum_data, colWidths=[4.5*cm, 4.5*cm, 7*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t) story.append(sp(8)) # ─── SECTION 2: Prevalence ──────────────────────────────────────────────────── story.append(h1("2. Prevalence & Historical Burden")) story.append(hr()) story.append(body( "In the pre-vaccination era, poliomyelitis was found in <b>all countries of the world</b>, predominantly " "affecting children (hence the former name 'infantile paralysis'). Extensive use of polio vaccines since " "1954 eliminated the disease in developed countries. Since 1988, global eradication strategies have " "reduced the number of endemic countries from more than 125 to just 2." )) story.append(h2("Global Burden Over Time")) burden_data = [ ["Period / Year", "Case Burden / Status"], ["Pre-vaccine era (before 1954)", "Endemic worldwide; all countries affected"], ["1951-1955 (USA peak)", "Incidence of 24 cases per 100,000 population"], ["1979 (USA)", "Indigenous wild poliovirus eradicated"], ["1988 (GPEI launch)", "~350,000 annual cases in 125+ endemic countries; ~1,000 children paralyzed/day"], ["1991", "Western Hemisphere certified polio-free"], ["1999", "Wild poliovirus type 2 last detected globally"], ["2000", "Western Pacific Region certified polio-free"], ["2002", "European Region certified polio-free"], ["2014", "India certified polio-free (last WPV case: January 2011)"], ["2015", "WPV type 2 officially declared ERADICATED (Sept 2015)"], ["2017", "22 WPV cases globally (Afghanistan 14, Pakistan 8, Nigeria 4)"], ["2020", "African Region certified free of WPV; only 2 endemic countries remain"], ["2021", "6 reported WPV cases globally"], ["2022", "22 reported cases (includes cVDPV outbreaks)"], ["2025-2026", "WPV1 only in Afghanistan & Pakistan; cVDPV outbreaks in multiple regions"], ] t2 = Table(burden_data, colWidths=[6*cm, 10*cm]) t2.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t2) story.append(sp(8)) story.append(body( "<b>Wild poliovirus type 2</b> was last detected in 1999 and officially declared eradicated in " "<b>September 2015</b>. <b>WPV type 3</b> has not been detected since <b>November 2012</b> and is " "considered likely eradicated. As of 2026, only <b>WPV type 1</b> continues to circulate, " "restricted to Afghanistan and Pakistan." )) # ─── SECTION 3: Incidence ───────────────────────────────────────────────────── story.append(PageBreak()) story.append(h1("3. Incidence")) story.append(hr()) story.append(h2("3.1 General Incidence Figures")) for txt in [ "<b>Overall reduction:</b> >99% reduction in global incidence since 1988 (WHO/GPEI).", "<b>Paralytic rate:</b> Only 0.5% of infected individuals in endemic areas develop paralytic poliomyelitis " "(Campbell's Operative Orthopaedics 15th Ed 2026, p. 1616).", "<b>USA post-eradication:</b> Annual incidence of WPV polio has been <0.01 per 100,000 since 1965 " "(compared to 24/100,000 during 1951-1955).", ]: story.append(bullet(txt)) story.append(sp(6)) story.append(h2("3.2 Vaccine-Associated Paralytic Polio (VAPP)")) story.append(body( "VAPP is the most important rare adverse event associated with oral polio vaccine (OPV). " "It is clinically indistinguishable from WPV polio but can be identified by laboratory analysis." )) vapp_data = [ ["VAPP Scenario", "Risk Estimate"], ["Countries using OPV (general)", "~4 cases per 1,000,000 birth cohort/year"], ["OPV recipients", "1 in 1.4 to 2.8 million"], ["Contacts of OPV vaccinees", "1 in 6.7 million exposed contacts"], ["Immunocompromised individuals", "Significantly higher risk"], ["Most commonly associated serotype", "Sabin 3 (60%), then Sabin 2, Sabin 1"], ] t3 = Table(vapp_data, colWidths=[9*cm, 7*cm]) t3.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t3) story.append(sp(8)) story.append(h2("3.3 Post-Polio Syndrome Incidence")) for txt in [ "Expected to affect up to <b>100,000 of ~250,000 U.S. adults</b> with a history of polio.", "Onset typically <b>20-35 years</b> after the initial infection.", "Patients now diagnosed are typically <b>>50 years old</b> (pre-mass-vaccination era survivors).", "Risk factors for earlier onset: advanced age at initial infection, greater residual motor disability, " "recent limb immobilization.", "It is a <b>diagnosis of exclusion</b>.", ]: story.append(bullet(txt)) story.append(sp(6)) story.append(h2("3.4 Additional Incidence Risk Factors (Developing Countries)")) for txt in [ "Recent intramuscular injections", "Tonsillectomy", "Strenuous exercise", "These are associated with increased severity of polio infection.", ]: story.append(bullet(txt)) story.append(sp(6)) # ─── SECTION 4: Eradication ─────────────────────────────────────────────────── story.append(PageBreak()) story.append(h1("4. Eradication Efforts")) story.append(hr()) story.append(h2("4.1 Global Polio Eradication Initiative (GPEI)")) story.append(body( "Launched in <b>1988</b> following a World Health Assembly resolution, the GPEI is a partnership of: " "WHO, Rotary International, US CDC, UNICEF, Bill & Melinda Gates Foundation, and Gavi, the Vaccine Alliance. " "Since inception, GPEI has reduced global WPV incidence by <b>over 99%</b>." )) story.append(sp(4)) story.append(h2("4.2 Polio Eradication & Endgame Strategic Plan")) story.append(body( "The plan (initially 2013-2018, extended through 2022-2026, and now further extended to <b>2029</b>) " "has four core objectives:" )) end_data = [ ["Objective", "Description"], ["1. Detect & Interrupt", "Eradicate all WPV transmission; stop cVDPV outbreaks"], ["2. Strengthen Immunization", "Withdraw OPV sequentially; introduce IPV universally"], ["3. Contain & Certify", "Biocontainment of all WPV stocks; achieve global certification"], ["4. Post-eradication planning", "Transition to IPV-only world; use polio infrastructure for broader health"], ] t4 = Table(end_data, colWidths=[5*cm, 11*cm]) t4.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t4) story.append(sp(8)) story.append(h2("4.3 OPV to IPV Transition (Endgame Steps)")) for txt in [ "Globally switch from <b>trivalent OPV (tOPV)</b> to <b>bivalent OPV (bOPV)</b> - completed April 2016.", "Introduce at least <b>1 dose of IPV</b> in all routine national immunization schedules as risk mitigation.", "Sequentially phase out all OPV serotypes as each WPV type is eradicated.", "Eventually <b>stop all OPV use worldwide</b> to eliminate the risk of cVDPV.", "India introduced IPV into the national immunization programme from <b>30 November 2015</b>.", ]: story.append(bullet(txt)) story.append(sp(6)) story.append(h2("4.4 Vaccine-Derived Poliovirus (VDPV) - A Persistent Challenge")) story.append(body( "OPV strains can undergo genetic reversion during replication in under-immunized communities, " "producing VDPVs that are biologically similar to WPVs and cause clinically identical disease." )) vdpv_data = [ ["VDPV Type", "Description"], ["cVDPV (circulating)", "Person-to-person community transmission confirmed; occurs in low-coverage populations"], ["iVDPV (immunodeficiency-assoc.)", "Isolated from persons with primary immunodeficiencies; prolonged shedding"], ["aVDPV (ambiguous)", "Unclear origin - from persons with unknown immunodeficiency or environmental samples"], ] t5 = Table(vdpv_data, colWidths=[5.5*cm, 10.5*cm]) t5.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t5) story.append(sp(6)) story.append(body( "Diagnosis of VDPV uses <b>real-time reverse transcription PCR (rRT-PCR)</b> to detect nucleotide " "substitutions that occur early in VDPV emergence. All poliovirus isolates are characterized by the " "<b>Global Polio Laboratory Network (GPLN)</b>." )) story.append(h2("4.5 Current Status (2025-2026)")) story.append(body( "The GPEI's strategic plan has been extended to <b>2029</b>. The 24th Independent Monitoring Board " "report (September 2025) identified key concerns: geopolitical instability in Afghanistan and Pakistan, " "US funding reductions, and the need for more transformative approaches. " "WHO prequalified an additional <b>novel oral polio vaccine (nOPV2)</b> in <b>February 2026</b> " "to strengthen outbreak response. The Polio IHR Emergency Committee held its 44th meeting in " "<b>March 2026</b>, maintaining polio as a Public Health Emergency of International Concern (PHEIC)." )) story.append(h2("4.6 Eradication Strategies Summary")) strat_data = [ ["Strategy", "Description"], ["Routine Immunization", "High coverage with IPV (developed) or bOPV+IPV (endemic settings)"], ["Supplementary Immunization Activities (SIAs)", "National Immunization Days / Pulse Polio - every child <5 receives OPV regardless of prior vaccination"], ["Mopping Up", "Door-to-door vaccination in high-risk districts where WPV is known/suspected to circulate"], ["AFP Surveillance", "Detect every AFP case as a potential polio case; respond within 48 hours"], ["Outbreak Response", "A single confirmed case = treated as outbreak; response within 48 hours of notification"], ["OPV Withdrawal", "Sequential: tOPV → bOPV → cessation of all OPV"], ["IPV Introduction", "At least 1 IPV dose universally as risk mitigation"], ["Lab Containment", "Post-eradication containment of all WPV stocks under Polio Essential Facilities protocol"], ] t6 = Table(strat_data, colWidths=[5.5*cm, 10.5*cm]) t6.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t6) # ─── SECTION 5: Surveillance ────────────────────────────────────────────────── story.append(PageBreak()) story.append(h1("5. Surveillance")) story.append(hr()) story.append(body( "Surveillance is described as <b>\"the most important part of the whole polio eradication initiative.\"</b> " "Without surveillance, it is impossible to pinpoint where wild poliovirus is still circulating or to " "verify that the virus has been eradicated. Surveillance identifies new cases and detects importation " "of wild poliovirus. (Park's Textbook of Preventive and Social Medicine)" )) story.append(sp(4)) story.append(h2("5.1 Acute Flaccid Paralysis (AFP) Surveillance - The Cornerstone")) story.append(body( "Every case of AFP in a child under 15 years must be reported - even in polio-free countries - " "because AFP cases serve as the sentinel for circulating poliovirus. " "A country's surveillance system must be sensitive enough to detect <b>at least 1 case of AFP " "per 100,000 children under 15</b>, even in the absence of polio." )) story.append(sp(4)) afp_data = [ ["Step", "Action", "Key Details"], ["Step 1", "Find & Report AFP", "All health facilities report every AFP case in children <15 yrs. Public health staff actively search hospitals and rehab centres."], ["Step 2", "Transport Stool Samples", "Two specimens collected 24-48 hrs apart, within 14 days of onset. Stored at 4-8°C, shipped to lab within 72 hrs."], ["Step 3", "Isolate & Type Poliovirus", "Lab distinguishes wild vs. vaccine-related poliovirus by cell culture and PCR. WPV type identified (1, 2, or 3)."], ["Step 4", "Map the Virus", "Full genome sequencing determines geographic origin and transmission chains. Compared against GPLN reference database."], ] t7 = Table(afp_data, colWidths=[2*cm, 3*cm, 11*cm]) t7.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t7) story.append(sp(8)) story.append(h2("5.2 WHO Certification-Standard Surveillance Indicators")) ind_data = [ ["Indicator", "Minimum Standard"], ["Completeness of reporting", "≥80% of expected weekly/monthly AFP reports received on time, including zero reports"], ["Sensitivity of surveillance", "≥1 non-polio AFP case detected per 100,000 population aged <15 years/year\n(≥2/100,000 in endemic regions)"], ["Completeness of case investigation", "≥80% of AFP cases have 'adequate' stool specimens: 2 specimens, ≥24 hrs apart, within 14 days of onset, proper cold chain"], ["Completeness of follow-up", "≥80% of AFP cases have residual paralysis follow-up examination at 60 days after onset"], ["Laboratory performance", "All specimens processed in a WHO-accredited GPLN laboratory"], ] t8 = Table(ind_data, colWidths=[6.5*cm, 9.5*cm]) t8.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t8) story.append(sp(8)) story.append(h2("5.3 Environmental Surveillance")) story.append(body( "Sewage and wastewater samples are tested in high-risk areas to detect poliovirus circulation " "<b>before clinical cases appear</b>. This is especially valuable given that >90% of infections " "are asymptomatic. It complements AFP surveillance and can detect importation events early." )) story.append(sp(6)) story.append(h2("5.4 Epidemiological Investigation Protocol")) story.append(body( "The occurrence of a <b>single case of polio</b> is now considered an epidemic and prompts " "an immediate epidemiological investigation. Essential data collected:" )) for txt in [ "Name of the administrative area and locality; date first case reported", "Name, age, sex, and complete address of patient", "Father's name, vaccination status", "Date of onset of paralysis and date of reporting", "Clinical diagnosis, treating doctor's details", "Fecal specimens from all cases/suspected cases for virus isolation", "Paired sera: first at clinical suspicion, second at convalescence (rising neutralizing antibody titer = confirmatory)", ]: story.append(bullet(txt)) story.append(sp(6)) story.append(h2("5.5 Line Listing of Cases")) story.append(body( "Line listing of all reported AFP cases has been maintained since <b>1989</b> in India. Purpose:" )) for txt in [ "Check for duplication (same child reported at multiple facilities)", "Screen for children with pre-existing residual paralysis (onset prior to reporting year)", "Identify high-risk geographic pockets", "Document high-risk age groups and inform vaccination scheduling", ]: story.append(bullet(txt)) story.append(sp(6)) story.append(h2("5.6 India-Specific Surveillance")) story.append(body( "Since <b>1992</b>, active AFP surveillance in India was extended to all AFP cases regardless of " "etiology. Stool samples are sent to ICMR National Enterovirus Units at " "<b>Mumbai, Coonoor, Chennai, Delhi, and Kasauli</b>. " "All AFP cases in children under 15 must be reported immediately to the Chief Medical Officer / " "District Immunization Officer." )) # ─── SECTION 6: IPV vs OPV ──────────────────────────────────────────────────── story.append(PageBreak()) story.append(h1("6. IPV vs OPV - Key Differences")) story.append(hr()) ipv_data = [ ["Feature", "IPV (Salk)", "OPV (Sabin)"], ["Virus type", "Killed (inactivated)", "Live attenuated"], ["Route", "Subcutaneous or IM injection", "Oral"], ["Immunity", "Humoral (circulating antibody); no intestinal immunity", "Humoral + intestinal (mucosal) immunity"], ["Prevention of transmission", "Prevents paralysis; does NOT prevent intestinal reinfection", "Prevents paralysis AND intestinal reinfection"], ["Epidemic control", "Not useful in controlling outbreaks", "Can control epidemics; even a single dose elicits substantial immunity"], ["Manufacture", "More complex; ~10,000x more virus content", "Easier; cheaper"], ["Storage", "Longer shelf-life; no stringent cold-chain requirement", "Must be stored at sub-zero temperatures (unless stabilized)"], ["VAPP risk", "No VAPP risk", "1 in 1.4-2.8 million recipients"], ] t9 = Table(ipv_data, colWidths=[4*cm, 6*cm, 6*cm]) t9.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t9) story.append(sp(8)) # ─── SECTION 7: Post-Polio Syndrome ────────────────────────────────────────── story.append(h1("7. Post-Polio Syndrome")) story.append(hr()) story.append(body( "Post-polio syndrome (also called post-poliomyelitis progressive muscular atrophy) is an important " "late sequel of acute poliomyelitis, expected to affect up to <b>40% of prior polio survivors</b> " "(up to 100,000 of ~250,000 U.S. adults with polio history)." )) pps_data = [ ["Feature", "Details"], ["Onset timing", "20-35 years after initial infection; requires at least 15 years of stable, disease-free period"], ["Typical patient age", ">50 years (pre-mass-vaccination era survivors)"], ["Key features", "Recurrence of motor weakness/fatigue; new muscle pain; decreased endurance"], ["Pathophysiology", "Dysfunction in individual nerve axons within surviving motor neurons (exact cause unknown)"], ["Risk factors for earlier onset", "Advanced age at initial infection; greater residual motor disability; bulbar/respiratory signs; recent limb immobilization"], ["Diagnosis", "Diagnosis of exclusion - no definitive test"], ] t10 = Table(pps_data, colWidths=[5*cm, 11*cm]) t10.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e5fa3')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f2f6fc'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#c0cfe0')), ('VALIGN', (0,0), (-1,-1), 'MIDDLE'), ('PADDING', (0,0), (-1,-1), 5), ])) story.append(t10) story.append(sp(10)) # ─── REFERENCES ─────────────────────────────────────────────────────────────── story.append(h1("References & Sources")) story.append(hr()) refs = [ "Park's Textbook of Preventive and Social Medicine - Poliomyelitis section (pp. 241-246)", "Campbell's Operative Orthopaedics 15th Ed 2026 - Poliomyelitis (p. 1616)", "Tintinalli's Emergency Medicine: A Comprehensive Study - Poliomyelitis and Post-Polio Syndrome (p. 1212)", "Adams and Victor's Principles of Neurology, 12th Edition - Prevention section", "Goldman-Cecil Medicine International Edition - Polio (travel medicine chapter)", "Red Book 2021: Report of the Committee on Infectious Diseases - Poliovirus Infections", "WHO. Poliomyelitis. https://www.who.int/health-topics/poliomyelitis (accessed July 2026)", "Global Polio Eradication Initiative (GPEI). https://polioeradication.org", "Bill & Melinda Gates Foundation. Polio Eradication Program. https://www.gatesfoundation.org", "GPEI Independent Monitoring Board 24th Report, September 2025. https://polioeradication.org/wp-content/uploads/2025/09/24th-IMB-Report-20250922.pdf", "Tuells J, Hurtado-Sanchez JA. Poliomyelitis: The paradigm of an eliminated disease. Rev Esp Anestesiol Reanim. 2025. PMID: 40962176", "BMJ Global Health. The impact of the regime change on polio outbreaks in Afghanistan. 2024.", ] for r in refs: story.append(Paragraph(f"• {r}", source_style)) story.append(sp(10)) story.append(Paragraph( "Generated by Orris AI | July 24, 2026 | For educational purposes only.", ParagraphStyle('Footer', parent=styles['Normal'], fontSize=8, textColor=colors.HexColor('#999999'), alignment=TA_CENTER) )) doc.build(story) print("PDF created successfully:", OUTPUT) PYEOF
Poliomyelitis Prevalence Incidence Eradication Surveillance
PDF Document · PDF