Describe, describe the epidemiology and prevention of pulmonary tuberculosis and mention the national programs.
"tuberculosis" AND "epidemiology" AND "prevention"
| Risk Factor | Effect |
|---|---|
| HIV infection | 20-30x higher risk of developing TB; TB causes 1 in 3 HIV deaths |
| Diabetes mellitus | Triples the risk; increases poor treatment outcomes |
| Malnutrition | Impairs cellular immunity |
| Poverty and overcrowding | Facilitates transmission; crowded, poorly ventilated spaces |
| Tobacco and alcohol abuse | Impairs pulmonary defenses |
| Indoor air pollution | Damages mucociliary clearance |
| Age extremes | Very young (<5 years) and elderly are more vulnerable |
| Category | Key Points |
|---|---|
| Global burden | 10 million new cases/year; 1.4 million deaths; 1/4 world population infected |
| Highest burden country | India (26% of global cases) |
| Key risk factors | HIV, diabetes, malnutrition, poverty, overcrowding |
| Drug resistance threat | 465,000 rifampicin-resistant cases/year; India, China, Russia top contributors |
| Prevention pillars | Case-finding + treatment + BCG vaccination |
| India's national program | NTP (1962) → RNTCP (1993, DOTS) → NTEP (2020, End TB) |
| Core strategy | DOTS (Directly Observed Treatment, Short-course) |
| Digital surveillance | NIKSHAY web-based case-tracking system |
| India's elimination target | 2025 (5 years ahead of global 2030 target) |
Create pdf
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/tb-pdf && cat > /tmp/workspace/tb-pdf/create_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 from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/tb-pdf/Pulmonary_Tuberculosis_Epidemiology_Prevention.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=2*cm, leftMargin=2*cm, topMargin=2.5*cm, bottomMargin=2.5*cm, title="Pulmonary Tuberculosis: Epidemiology, Prevention & National Programs", author="Orris Medical Reference" ) W = A4[0] - 4*cm # usable width styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle( 'CustomTitle', parent=styles['Title'], fontSize=22, leading=28, textColor=colors.HexColor('#1a3a5c'), spaceAfter=6, alignment=TA_CENTER, fontName='Helvetica-Bold' ) subtitle_style = ParagraphStyle( 'Subtitle', parent=styles['Normal'], fontSize=11, leading=14, textColor=colors.HexColor('#4a6fa5'), spaceAfter=4, alignment=TA_CENTER, fontName='Helvetica-Oblique' ) h1_style = ParagraphStyle( 'H1', parent=styles['Heading1'], fontSize=14, leading=18, textColor=colors.white, spaceBefore=16, spaceAfter=8, fontName='Helvetica-Bold', backColor=colors.HexColor('#1a3a5c'), leftIndent=-0.2*cm, rightIndent=-0.2*cm, borderPad=6 ) h2_style = ParagraphStyle( 'H2', parent=styles['Heading2'], fontSize=12, leading=15, textColor=colors.HexColor('#1a3a5c'), spaceBefore=10, spaceAfter=4, fontName='Helvetica-Bold', borderColor=colors.HexColor('#4a6fa5'), borderWidth=0, leftIndent=0 ) h3_style = ParagraphStyle( 'H3', parent=styles['Heading3'], fontSize=11, leading=14, textColor=colors.HexColor('#2c5282'), spaceBefore=8, spaceAfter=3, fontName='Helvetica-BoldOblique' ) body_style = ParagraphStyle( 'Body', parent=styles['Normal'], fontSize=10, leading=14, textColor=colors.HexColor('#2d2d2d'), spaceAfter=6, fontName='Helvetica', alignment=TA_JUSTIFY ) bullet_style = ParagraphStyle( 'Bullet', parent=styles['Normal'], fontSize=10, leading=13, textColor=colors.HexColor('#2d2d2d'), spaceAfter=3, fontName='Helvetica', leftIndent=14, firstLineIndent=-10 ) source_style = ParagraphStyle( 'Source', parent=styles['Normal'], fontSize=8.5, leading=11, textColor=colors.HexColor('#666666'), fontName='Helvetica-Oblique', alignment=TA_CENTER ) def section_header(text): """Returns a section header paragraph with blue background.""" return Paragraph(f" {text}", h1_style) def sub_header(text): return Paragraph(text, h2_style) def sub2_header(text): return Paragraph(text, h3_style) def body(text): return Paragraph(text, body_style) def bullet(text): return Paragraph(f"• {text}", bullet_style) def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#4a6fa5'), spaceAfter=4, spaceBefore=4) def spacer(h=0.3): return Spacer(1, h*cm) story = [] # ── TITLE PAGE ────────────────────────────────────────────────────────────── story.append(spacer(1.5)) story.append(Paragraph("Pulmonary Tuberculosis", title_style)) story.append(Paragraph("Epidemiology, Prevention & National Programs", subtitle_style)) story.append(spacer(0.4)) story.append(hr()) story.append(spacer(0.3)) story.append(Paragraph("Sources: Park's Textbook of Preventive & Social Medicine | Murray & Nadel's Textbook of Respiratory Medicine", source_style)) story.append(spacer(2)) # ── SECTION 1: EPIDEMIOLOGY ────────────────────────────────────────────────── story.append(section_header("1. EPIDEMIOLOGY")) story.append(spacer(0.2)) story.append(sub_header("A. Global Burden")) story.append(body( "Tuberculosis (TB) remains one of the world's leading infectious disease killers. Approximately " "<b>one-quarter of the world's population</b> (~1.7 billion) is infected with <i>Mycobacterium tuberculosis</i>, " "though the distribution is highly heterogeneous. The WHO declared TB a global public health emergency, " "with heads of state endorsing a commitment to end TB by 2030 at the UN high-level meeting in 2018." )) story.append(body( "In 2019, an estimated <b>10 million new cases</b> occurred globally; only 7.1 million were officially " "notified, leaving a gap of ~2.9 million due to under-reporting and underdiagnosis. TB causes " "<b>approximately 1.2–1.4 million deaths per year</b>, with a case fatality rate of around 15%. " "Despite declining incidence over the past 15 years, the annual reduction trend is insufficient " "to reach the End TB target of a 90% incidence reduction (relative to 2015) by 2035." )) story.append(sub_header("B. Geographic Distribution")) geo_data = [ ["Region", "Share of Cases", "Incidence (per 100,000)"], ["South-East Asia", "44%", "220"], ["Africa", "25%", "231"], ["Western Pacific", "18%", "96"], ["High-income countries", "<10%", "<10"], ] geo_table = Table(geo_data, colWidths=[W*0.45, W*0.25, W*0.30]) geo_table.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.5), ('FONTNAME', (0,1), (-1,-1), 'Helvetica'), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fa'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')), ('ALIGN', (1,0), (-1,-1), 'CENTER'), ('ALIGN', (0,0), (0,-1), 'LEFT'), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 8), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('ROUNDEDCORNERS', [4]), ])) story.append(geo_table) story.append(spacer(0.3)) story.append(body( "<b>India</b> bears the highest single-country burden — <b>26% of global cases</b> — followed by " "Indonesia (8.5%) and China (8.4%). Five countries account for more than half the global gap in " "case notifications: India (17%), Nigeria (11%), Indonesia (10%), Pakistan (8%), Philippines (7%)." )) story.append(sub_header("C. Agent Factors")) story.append(body( "The causative agent is <b><i>Mycobacterium tuberculosis</i></b> — an aerobic, non-spore-forming, " "non-motile, acid-fast bacillus. The M. tuberculosis phylogenetic tree has a geographic structure " "with recognized lineages:" )) lineages = [ "Lineage 1: Indo-Oceanic", "Lineage 2: East-Asian", "Lineage 3: Indian and East-African", "Lineage 4: Euro-American", "Lineages 5 & 6: West-African (together comprising M. africanum)", "Lineage 7: Ethiopian", ] for l in lineages: story.append(bullet(l)) story.append(body("Different lineages show differing degrees of pathogenicity, including varying rates of tuberculin skin test conversion and virulence.")) story.append(spacer(0.2)) story.append(sub_header("D. Host and Risk Factors")) risk_data = [ ["Risk Factor", "Effect / Magnitude"], ["HIV infection", "20–30× higher risk; TB causes 1 in 3 HIV deaths"], ["Diabetes mellitus", "Triples the risk; worsens treatment outcomes"], ["Malnutrition", "Impairs cellular immunity, increases susceptibility"], ["Poverty & overcrowding", "Crowded, poorly ventilated spaces facilitate transmission"], ["Tobacco & alcohol abuse", "Impairs pulmonary defense mechanisms"], ["Indoor air pollution", "Damages mucociliary clearance"], ["Age extremes", "Very young (<5 yrs) and elderly more vulnerable"], ] risk_table = Table(risk_data, colWidths=[W*0.38, W*0.62]) risk_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2c5282')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9.5), ('FONTNAME', (0,1), (-1,-1), 'Helvetica'), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fa'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')), ('ALIGN', (0,0), (-1,-1), 'LEFT'), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 8), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'), ])) story.append(risk_table) story.append(spacer(0.3)) story.append(body( "Paediatric TB accounts for ~10% of total TB burden globally, with approximately <b>1 million cases per year</b> " "and over 100,000 deaths annually. Childhood TB deaths are usually caused by meningitis or disseminated disease." )) story.append(sub_header("E. Drug-Resistant TB")) story.append(body( "Drug resistance is a major threat to global TB control. In 2019, an estimated <b>465,000 incident cases " "of rifampicin-resistant TB</b> occurred; 78% had MDR-TB." )) story.append(bullet("<b>MDR-TB</b>: Resistance to at least isoniazid AND rifampicin")) story.append(bullet("<b>XDR-TB</b>: MDR-TB plus resistance to at least one fluoroquinolone and one injectable second-line agent")) story.append(bullet("<b>India (27%), China (14%), Russia (8%)</b> account for the largest MDR-TB burdens")) story.append(bullet("XDR-TB reported by 131 WHO member states by end of 2018")) story.append(bullet("Cure rates: MDR-TB (56%) vs. drug-susceptible TB (85%)")) story.append(spacer(0.2)) story.append(sub_header("F. TB and HIV Co-infection")) story.append(body( "People living with HIV (PLHIV) are <b>20–30 times more likely</b> to develop TB than HIV-negative individuals. " "TB causes <b>1 in 3 HIV deaths</b>. In 2019, 456,426 TB cases among PLHIV were reported, with 88% of HIV-positive " "TB patients on antiretroviral therapy. Africa bears 70% of the HIV-TB dual burden." )) # ── SECTION 2: PREVENTION ──────────────────────────────────────────────────── story.append(PageBreak()) story.append(section_header("2. PREVENTION AND CONTROL")) story.append(spacer(0.2)) story.append(body( "TB control means <b>reduction in the prevalence and incidence of disease</b> in the community. Since TB is an " "infectious disease, its prevention follows the same basic principles as other infectious diseases. Control rests on " "two fundamental pillars: <b>(a) case-finding and treatment</b> (curative component) and <b>(b) BCG vaccination</b> " "(preventive component). The most powerful weapon is the combination of case-finding and treatment." )) story.append(sub_header("A. Case-Finding")) story.append(sub2_header("1. Passive Case-Finding")) story.append(body( "Over 60% of pulmonary TB patients present on their own initiative with symptoms (persistent cough, fever, haemoptysis). " "This is the most productive group for case-finding and should be actively utilized at all health facilities." )) story.append(sub2_header("2. Intensified TB Case Finding (ICF)")) story.append(body( "A provider-initiated activity with the primary objective of detecting TB cases early in targeted high-risk groups. " "Targets include PLHIV, contacts of smear-positive cases, prisoners, healthcare workers, migrants, slum dwellers, and tribal communities." )) story.append(body("<b>Screening strategies:</b>")) story.append(bullet("<b>Community screening:</b> Mobile/fixed facility outreach; door-to-door household screening; targeted invitations")) story.append(bullet("<b>Institutional screening:</b> Active systematic screening in hospitals, prisons, workplaces")) story.append(spacer(0.2)) story.append(sub_header("B. Diagnosis")) story.append(body("Confirmed early diagnosis breaks the chain of transmission. NTEP-endorsed diagnostic tools include:")) diag_data = [ ["Method", "Details"], ["Sputum Smear Microscopy", "ZN stain or LED fluorescence microscopy — most widely used; two samples collected (on-spot + early morning)"], ["Culture", "Lowenstein-Jensen (solid) or MGIT/Bactec (liquid) — gold standard; 2–8 weeks for results"], ["CB-NAAT / GeneXpert", "Real-time PCR; detects MTB DNA and rifampicin resistance within 90 minutes from unprocessed sputum"], ["Line Probe Assay (LPA)", "1st-line LPA: RMP (rpoB) & INH (katG, inhA) resistance; 2nd-line LPA: FQ & injectable resistance"], ["Chest X-Ray", "Smear-negative TB, children, pleural/pericardial effusion, miliary TB; not routinely needed in smear-positive"], ["Tuberculin Skin Test (TST)", "Measures community prevalence of infection; read at 48–72 hours; 10 mm induration = positive"], ["IGRA", "Blood test measuring interferon-gamma; more specific than TST; unaffected by BCG vaccination"], ] diag_table = Table(diag_data, colWidths=[W*0.30, W*0.70]) diag_table.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), ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'), ('FONTNAME', (1,1), (1,-1), 'Helvetica'), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fa'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')), ('ALIGN', (0,0), (-1,-1), 'LEFT'), ('LEFTPADDING', (0,0), (-1,-1), 7), ('RIGHTPADDING', (0,0), (-1,-1), 7), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('VALIGN', (0,0), (-1,-1), 'TOP'), ])) story.append(diag_table) story.append(spacer(0.3)) story.append(sub_header("C. Treatment (the Most Powerful Preventive Tool)")) story.append(body( "Chemotherapy of every active case is both curative and preventive — it removes the infectious source from the community. " "Key principles:" )) story.append(bullet("Treatment must be <b>free of charge</b>, adequate, and appropriate for every patient")) story.append(bullet("<b>Standard first-line regimen:</b> 2HRZE (intensive phase, 2 months) + 4HR (continuation phase)")) story.append(bullet("<b>DOTS</b> (Directly Observed Treatment, Short-course) ensures adherence and prevents resistance")) story.append(bullet("Incomplete treatment leads to relapse and emergence of drug resistance in the community")) story.append(spacer(0.2)) story.append(sub_header("D. BCG Vaccination")) story.append(body( "BCG (Bacillus Calmette-Guerin) is the preventive component of the national TB programme. Key points:" )) story.append(bullet("Provides <b>70–80% protection</b> against severe forms in children: tuberculous meningitis and miliary TB")) story.append(bullet("Given at birth or as early as possible under India's Universal Immunization Programme (UIP)")) story.append(bullet("Does not reliably prevent primary infection or adult reactivation disease")) story.append(bullet("In high BCG-coverage countries, tuberculin test loses sensitivity as a true indicator of TB prevalence")) story.append(spacer(0.2)) story.append(sub_header("E. Environmental and Social Measures")) story.append(bullet("Improving ventilation and reducing overcrowding in homes, workplaces, and institutions")) story.append(bullet("Addressing poverty, malnutrition, and indoor air pollution")) story.append(bullet("Health education and community awareness campaigns")) story.append(bullet("TB/HIV collaborative activities: HIV testing for all TB patients; ART for all HIV-positive TB patients")) story.append(spacer(0.2)) story.append(sub_header("F. Latent TB Infection (LTBI) Treatment")) story.append(body( "Preventive therapy is recommended for high-risk groups to prevent progression from infection to active disease:" )) story.append(bullet("Isoniazid (INH) 6–9 months, or Rifapentine + INH for 12 weeks (3HP)")) story.append(bullet("Priority groups: contacts of smear-positive cases (especially children <5 years), PLHIV")) story.append(body( "The WHO End TB Strategy emphasizes expanding preventive treatment. However, most eligible individuals are currently not receiving it." )) # ── SECTION 3: NATIONAL PROGRAMS ──────────────────────────────────────────── story.append(PageBreak()) story.append(section_header("3. NATIONAL PROGRAMS IN INDIA")) story.append(spacer(0.2)) story.append(sub_header("A. National Tuberculosis Programme (NTP) — 1962")) story.append(body( "India launched the NTP in <b>1962</b>, one of the oldest national TB programs in the world. It was built on district " "TB centres and aimed at integrating TB services with the general health system. However, treatment success rates remained " "unacceptably low, death and default rates were high, and spreading multidrug-resistant TB threatened to worsen the situation." )) story.append(sub_header("B. Revised National TB Control Programme (RNTCP) — 1993")) story.append(body( "In <b>1993</b>, the Government of India revamped the NTP with international assistance to form the <b>RNTCP</b>, adopting the " "internationally recommended <b>DOTS strategy</b> as the most cost-effective approach. By <b>March 2006</b>, RNTCP covered the entire country." )) story.append(sub2_header("Objectives of RNTCP:")) story.append(bullet("Achievement of at least <b>85% cure rate</b> of infectious cases through DOTS")) story.append(bullet("Detection of at least <b>70% of estimated cases</b> through quality sputum microscopy")) story.append(sub2_header("The Five Core DOTS Components:")) dots_data = [ ["1.", "Political will and administrative commitment"], ["2.", "Diagnosis by quality-assured sputum smear microscopy"], ["3.", "Adequate supply of quality-assured short-course chemotherapy drugs"], ["4.", "Directly Observed Treatment (DOT)"], ["5.", "Systematic monitoring and accountability"], ] dots_table = Table(dots_data, colWidths=[W*0.06, W*0.94]) dots_table.setStyle(TableStyle([ ('FONTNAME', (0,0), (-1,-1), 'Helvetica'), ('FONTSIZE', (0,0), (-1,-1), 10), ('FONTNAME', (0,0), (0,-1), 'Helvetica-Bold'), ('TEXTCOLOR', (0,0), (0,-1), colors.HexColor('#1a3a5c')), ('ROWBACKGROUNDS', (0,0), (-1,-1), [colors.HexColor('#eef2fa'), colors.white]), ('LEFTPADDING', (0,0), (-1,-1), 8), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ('GRID', (0,0), (-1,-1), 0.3, colors.HexColor('#c0cfde')), ])) story.append(dots_table) story.append(spacer(0.3)) story.append(sub_header("C. STOP TB Strategy (2006) — Adopted by RNTCP")) story.append(body("In 2006, WHO's STOP TB Strategy was announced and adopted by RNTCP with six components:")) stop_tb = [ "Pursuing quality DOTS — expansion and enhancement", "Addressing TB/HIV and MDR-TB", "Contributing to health system strengthening", "Engaging all care providers (including private sector)", "Empowering patients and communities", "Enabling and promoting research (diagnosis, treatment, vaccine)", ] for s in stop_tb: story.append(bullet(s)) story.append(spacer(0.2)) story.append(sub_header("D. National TB Elimination Programme (NTEP) — 2020")) story.append(body( "In view of the End TB targets, the programme was <b>renamed from RNTCP to NTEP</b> (National Tuberculosis Elimination Programme) " "in <b>2020</b>, reflecting India's ambition to eliminate TB by <b>2025</b> — five years ahead of the global target of 2030. " "India's goal: reduce TB incidence to <1 per million population." )) story.append(sub2_header("NTEP Organogram — Five Levels:")) org_data = [ ["Level", "Unit / Institution"], ["National", "Central TB Division (CTD); National Reference Laboratories (NRLs)"], ["State", "State TB Cell"], ["District", "District TB Centre (DTC)"], ["Sub-district", "Tuberculosis Unit (TU)"], ["Peripheral", "PHCs, CHCs, Dispensaries (Peripheral Health Institutions — PHIs)"], ] org_table = Table(org_data, colWidths=[W*0.20, W*0.80]) org_table.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2c5282')), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,-1), 9.5), ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'), ('FONTNAME', (1,1), (1,-1), 'Helvetica'), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fa'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')), ('LEFTPADDING', (0,0), (-1,-1), 8), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ])) story.append(org_table) story.append(spacer(0.3)) story.append(sub2_header("Six National Reference Laboratories (NRLs):")) nrls = [ "National Tuberculosis Institute (NTI), Bengaluru — WHO Collaborating Centre for training", "National Institute for Research in Tuberculosis (NIRT), Chennai — WHO Supra-National Reference Lab for SE Asia", "National Institute of Tuberculosis and Respiratory Diseases (NITRD), Delhi — WHO Centre of Excellence in TB laboratory services", "National JALMA Institute, Agra", "Regional Medical Research Centre, Bhubaneswar", "Bhopal Memorial Hospital & Research Centre (BMHRC), Bhopal", ] for n in nrls: story.append(bullet(n)) story.append(spacer(0.3)) story.append(sub_header("E. Key NTEP Initiatives")) story.append(sub2_header("1. NIKSHAY (launched May 2012)")) story.append(body( "<b>NIKSHAY</b> is a case-based, web-based IT surveillance system. The name is a combination of Hindi words " "<b>NI + KSHAY</b> = eradication of TB. Developed by Central TB Division in collaboration with National Informatics Centre." )) nikshay = [ "TB patient registration with details of diagnosis, DOT provider, HIV status, follow-up, and outcomes", "DR-TB patient registration and management", "Private health facility registration and mandatory TB notification", "Mobile application for TB notification", "SMS alerts to patients on registration and to programme officers", "Automated periodic reports: case finding, sputum conversion, treatment outcome", "IT-enabled adherence tools including 99DOTS", ] for n in nikshay: story.append(bullet(n)) story.append(spacer(0.2)) story.append(sub2_header("2. Programmatic Management of Drug-Resistant TB (PMDT)")) story.append(body("A two-tiered structure for managing drug-resistant TB:")) pmdt_data = [ ["Centre Type", "Role", "Location"], ["District DR-TB Centre\n(DDR-TBC)", "Manages uncomplicated DR-TB (RR-TB, H mono/poly DR-TB)\nboth inpatient and outpatient", "Preference: Medical College > District Hospital > TB Hospital"], ["Nodal DR-TB Centre\n(NDR-TBC)", "Complex cases: additional resistance, drug intolerance, failing regimens, NTMs, palliative care", "Preferably tertiary care; separate wards ≥10 beds each (M/F)"], ] pmdt_table = Table(pmdt_data, colWidths=[W*0.22, W*0.48, W*0.30]) pmdt_table.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), ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'), ('FONTNAME', (1,1), (-1,-1), 'Helvetica'), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f4fa'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')), ('LEFTPADDING', (0,0), (-1,-1), 7), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('VALIGN', (0,0), (-1,-1), 'TOP'), ])) story.append(pmdt_table) story.append(spacer(0.2)) story.append(body("<b>Standard NTEP DR-TB Regimens:</b>")) story.append(bullet("All oral H mono/poly DR-TB regimen")) story.append(bullet("Shorter MDR-TB regimen")) story.append(bullet("All oral longer MDR-TB regimen")) story.append(spacer(0.2)) story.append(sub2_header("3. Private Sector Engagement")) story.append(body( "Since approximately <b>70% of patients</b> in India seek care in private clinics and hospitals (NSSO data), " "NTEP mandates TB notification from all private facilities and links private practitioners to the programme " "for free diagnostics and drugs." )) story.append(sub_header("F. WHO End TB Strategy (2014–2030)")) story.append(body("Adopted by the World Health Assembly in May 2014, this blueprint targets:")) story.append(bullet("<b>90% reduction in TB deaths</b> between 2015 and 2030")) story.append(bullet("<b>80% reduction in TB incidence</b> between 2015 and 2030")) story.append(bullet("No family burdened with catastrophic costs due to TB")) story.append(bullet("WHO's 2035 target: 95% reduction in deaths and 90% decline in incidence")) story.append(body( "The September 2018 UN General Assembly High-Level Meeting on TB set global targets: 40 million people treated " "from 2018–2022; at least 30 million people provided TB preventive treatment. India pledged to achieve TB " "elimination by <b>2025</b> under the <b>\"TB Harega, Desh Jitega\"</b> campaign." )) # ── SUMMARY TABLE ──────────────────────────────────────────────────────────── story.append(PageBreak()) story.append(section_header("4. SUMMARY AT A GLANCE")) story.append(spacer(0.3)) summary_data = [ ["Category", "Key Points"], ["Global burden", "10 million new cases/year; ~1.4 million deaths; 1 in 4 people infected"], ["Highest burden country", "India — 26% of global cases"], ["Key risk factors", "HIV (20-30×↑ risk), diabetes (3×↑), malnutrition, poverty, overcrowding"], ["Drug resistance", "465,000 rifampicin-resistant cases/year; India, China, Russia top contributors"], ["Two prevention pillars", "Case-finding + treatment AND BCG vaccination"], ["BCG efficacy", "70–80% against severe childhood TB (meningitis, miliary TB)"], ["India program timeline", "NTP (1962) → RNTCP/DOTS (1993) → NTEP (2020, End TB)"], ["Core strategy", "DOTS — 5 components; political commitment to patient monitoring"], ["Nikshay", "Case-based web IT system for real-time TB surveillance (launched 2012)"], ["India's elimination target", "2025 — 5 years ahead of global 2030 SDG target"], ["Treatment success (2018)", "85% for DS-TB; 57% for MDR/RR-TB; 76% for HIV-TB"], ] summ_table = Table(summary_data, colWidths=[W*0.35, W*0.65]) summ_table.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.5), ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'), ('TEXTCOLOR', (0,1), (0,-1), colors.HexColor('#1a3a5c')), ('FONTNAME', (1,1), (1,-1), 'Helvetica'), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eef2fa'), colors.white]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')), ('ALIGN', (0,0), (-1,-1), 'LEFT'), ('LEFTPADDING', (0,0), (-1,-1), 8), ('RIGHTPADDING', (0,0), (-1,-1), 8), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('VALIGN', (0,0), (-1,-1), 'TOP'), ])) story.append(summ_table) story.append(spacer(1.5)) story.append(hr()) story.append(spacer(0.3)) story.append(Paragraph( "References: Park's Textbook of Preventive and Social Medicine (pp. 209–218, 484–486) • " "Murray & Nadel's Textbook of Respiratory Medicine (pp. 1161–1164) • WHO Global TB Report 2020", source_style )) story.append(Paragraph( "Generated by Orris Medical Reference | July 2026", source_style )) doc.build(story) print("PDF created:", OUTPUT) PYEOF echo "Script written"
cd /tmp/workspace/tb-pdf && python create_pdf.py
ls -lh /tmp/workspace/tb-pdf/Pulmonary_Tuberculosis_Epidemiology_Prevention.pdf
Pulmonary Tuberculosis Epidemiology Prevention
PDF Document · PDF