Explain national tuberculosis elimination program
National Tuberculosis Elimination Program India NTEP 2025 guidelines objectives
National Tuberculosis Elimination Program India NTEP
https://dghs.mohfw.gov.in/national-tuberculosis-elimination-…
| Target | 2015 Baseline | 2024 Status | 2025 Goal |
|---|---|---|---|
| Reduction in TB incidence | 208/lakh/year | 153/lakh/year (27% reduction) | 42/lakh/year (80% reduction) |
| Reduction in TB mortality | 4.47% death rate | 3.6% death rate (19% reduction) | 0.5% death rate (90% reduction) |
| Catastrophic costs to TB households | Present | Ongoing mitigation | Zero |
| Scheme | Details |
|---|---|
| Nikshay Poshan Yojana | Rs 500/month nutrition support via DBT |
| PMTBMBA | Ni-kshay Mitra adoption scheme; community/CSR mobilization |
| CBNAAT/TrueNAT | Rapid molecular diagnostics for TB + drug resistance |
| Bedaquiline/Delamanid | Newer drugs for DR-TB |
| Daily FDC regimen | Modern drug delivery replacing 3x/week DOTS |
| TPT (TB Preventive Therapy) | 6H (6 months isoniazid) or 3HP regimen for high-risk contacts |
| Sub-national certification | District/state-level disease burden estimation surveys |
1962 → National TB Programme (District TB Centre model)
↓
1997 → RNTCP with DOTS (Directly Observed Treatment, Short-course)
↓
2006 → Stop TB Strategy adopted
↓
2014 → End TB Strategy (WHO) adopted
↓
2017 → NSP 2017-25 (Detect-Treat-Prevent-Build pillars)
↓
2020 → RNTCP renamed NTEP; NSP 2020-25 launched
↓
2022 → PMTBMBA launched
↓
Goal: TB elimination by 2025 (vs global target of 2030)
Summarise this for 10 marks questions
| Initiative | Details |
|---|---|
| Ni-kshay Portal | Real-time case notification and treatment tracking |
| Nikshay Poshan Yojana | Rs 500/month DBT for nutrition; Rs 2,781 crore disbursed to ~1 crore beneficiaries till 2023 |
| PMTBMBA | PM TB Mukt Bharat Abhiyaan (Sept 2022) - Ni-kshay Mitra adoption, CSR engagement, TB Champions (TB Vijetas), Jan Andolan |
| Daily FDC Regimen | Modern patient-wise drug delivery; child-friendly paediatric formulations in 6 weight bands |
| CBNAAT / TrueNAT | Decentralized rapid molecular diagnosis for TB + drug resistance |
Exam Tip: Remember the acronym DTPB (Detect-Treat-Prevent-Build) and the year 2020 (NTEP renamed), 2025 (India's elimination target), and 2030 (global SDG target). Key schemes: NPY (Rs 500/month) and PMTBMBA (Sept 2022).
Create a concise revision PDF on NTEP covering key points
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "Created workspace"
mkdir -p /tmp/workspace/ntep-revision && 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, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import BaseDocTemplate, PageTemplate, Frame from reportlab.lib.colors import HexColor # ── Colour palette ──────────────────────────────────────────────────────────── TEAL = HexColor("#0B6E6E") TEAL_LIGHT = HexColor("#D6EFEF") ORANGE = HexColor("#E06C1A") ORANGE_LT = HexColor("#FDE9D8") GREEN = HexColor("#2E7D32") GREEN_LT = HexColor("#E8F5E9") BLUE = HexColor("#1565C0") BLUE_LT = HexColor("#E3F2FD") PURPLE = HexColor("#6A1B9A") PURPLE_LT = HexColor("#F3E5F5") RED = HexColor("#C62828") RED_LT = HexColor("#FFEBEE") YELLOW_LT = HexColor("#FFFDE7") GREY_DARK = HexColor("#37474F") GREY_MID = HexColor("#78909C") GREY_LIGHT = HexColor("#ECEFF1") WHITE = colors.white BLACK = colors.black W, H = A4 # ── Document ────────────────────────────────────────────────────────────────── doc = SimpleDocTemplate( "/tmp/workspace/ntep-revision/NTEP_Revision.pdf", pagesize=A4, leftMargin=1.8*cm, rightMargin=1.8*cm, topMargin=1.5*cm, bottomMargin=1.5*cm, title="NTEP Revision Notes", author="Orris Medical" ) story = [] styles = getSampleStyleSheet() # ── Custom styles ───────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) title_style = S("Title2", fontName="Helvetica-Bold", fontSize=22, textColor=WHITE, alignment=TA_CENTER, spaceAfter=4) subtitle_style = S("Subtitle", fontName="Helvetica", fontSize=11, textColor=WHITE, alignment=TA_CENTER, spaceAfter=2) h1 = S("H1", fontName="Helvetica-Bold", fontSize=12, textColor=WHITE, backColor=TEAL, leading=16, spaceAfter=4, spaceBefore=8, leftIndent=6, rightIndent=6, borderPad=4) h2 = S("H2", fontName="Helvetica-Bold", fontSize=10.5, textColor=TEAL, spaceBefore=6, spaceAfter=2, leading=14) body = S("Body2", fontName="Helvetica", fontSize=9.5, leading=14, textColor=GREY_DARK, spaceAfter=3, alignment=TA_JUSTIFY) bullet = S("Bullet2", fontName="Helvetica", fontSize=9.2, leading=13, textColor=GREY_DARK, leftIndent=14, firstLineIndent=-10, spaceAfter=2) bold_bullet = S("BoldBullet", fontName="Helvetica-Bold", fontSize=9.2, leading=13, textColor=GREY_DARK, leftIndent=14, firstLineIndent=-10, spaceAfter=2) small = S("Small", fontName="Helvetica-Oblique", fontSize=8.5, textColor=GREY_MID, alignment=TA_CENTER) tag = S("Tag", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE, alignment=TA_CENTER) note = S("Note", fontName="Helvetica-Oblique", fontSize=8.5, textColor=PURPLE, leftIndent=8, spaceAfter=4) # ── Helper: section header ──────────────────────────────────────────────────── def sec(text, color=TEAL): p = ParagraphStyle("SecH", fontName="Helvetica-Bold", fontSize=11, textColor=WHITE, backColor=color, leading=16, spaceAfter=5, spaceBefore=10, leftIndent=0, borderPad=5) return Paragraph(text, p) def subsec(text): p = ParagraphStyle("SubH", fontName="Helvetica-Bold", fontSize=10, textColor=TEAL, spaceBefore=6, spaceAfter=3, leading=14, borderPadding=(0,0,1,0)) return Paragraph(text, p) def b(text): return f"<b>{text}</b>" def u(text): return f"<u>{text}</u>" def col(text, c): return f'<font color="{c}">{text}</font>' def bullet_item(text, style=bullet): return Paragraph(f"• {text}", style) def hr(color=TEAL_LIGHT, thickness=1): return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=4, spaceBefore=2) def sp(h=4): return Spacer(1, h) # ───────────────────────────────────────────────────────────────────────────── # TITLE BANNER # ───────────────────────────────────────────────────────────────────────────── banner_data = [[ Paragraph("NATIONAL TUBERCULOSIS ELIMINATION PROGRAMME", title_style), ]] banner_tbl = Table(banner_data, colWidths=[W - 3.6*cm]) banner_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), TEAL), ("ROUNDEDCORNERS", [8]), ("TOPPADDING", (0,0), (-1,-1), 14), ("BOTTOMPADDING",(0,0),(-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING",(0,0), (-1,-1), 10), ])) story.append(banner_tbl) sub_data = [[ Paragraph("NTEP | Quick Revision Notes | Community Medicine", subtitle_style) ]] sub_tbl = Table(sub_data, colWidths=[W - 3.6*cm]) sub_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), ORANGE), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), ])) story.append(sub_tbl) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # QUICK FACTS BOX # ───────────────────────────────────────────────────────────────────────────── qf_style = ParagraphStyle("QF", fontName="Helvetica", fontSize=9, textColor=GREY_DARK, leading=13) qf_bold = ParagraphStyle("QFB", fontName="Helvetica-Bold", fontSize=9, textColor=TEAL, leading=13) facts = [ [Paragraph(b("Launched"), qf_bold), Paragraph("1962 (National TB Programme) → RNTCP (1997) → NTEP (2020)", qf_style)], [Paragraph(b("India's Goal"), qf_bold), Paragraph("Eliminate TB by <b>2025</b> (5 years ahead of global SDG target of 2030)", qf_style)], [Paragraph(b("Global Burden"), qf_bold), Paragraph("India accounts for <b>~27%</b> of global TB burden — highest in the world", qf_style)], [Paragraph(b("Nodal Body"), qf_bold), Paragraph("Central TB Division (CTD), DGHS, Ministry of Health & Family Welfare", qf_style)], [Paragraph(b("Key Pillars"), qf_bold), Paragraph("<b>D</b>etect – <b>T</b>reat – <b>P</b>revent – <b>B</b>uild (DTPB)", qf_style)], ] facts_tbl = Table(facts, colWidths=[3.2*cm, 13.5*cm]) facts_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), TEAL_LIGHT), ("BACKGROUND", (0,0), (0,-1), HexColor("#C8E6E6")), ("GRID", (0,0), (-1,-1), 0.4, HexColor("#A0CECE")), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 8), ("ROUNDEDCORNERS", [4]), ])) story.append(KeepTogether([sec(" QUICK FACTS AT A GLANCE"), facts_tbl])) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # SDG TARGETS # ───────────────────────────────────────────────────────────────────────────── sdg_header = [ Paragraph(b("Target"), tag), Paragraph(b("Baseline 2015"), tag), Paragraph(b("Status 2024"), tag), Paragraph(b("Goal 2025"), tag), ] sdg_rows = [ sdg_header, [Paragraph("TB Incidence", qf_bold), Paragraph("208/lakh/yr", qf_style), Paragraph("153/lakh/yr\n(27% ↓)", qf_style), Paragraph("42/lakh/yr\n(80% ↓)", qf_style)], [Paragraph("TB Mortality", qf_bold), Paragraph("4.47% death rate", qf_style), Paragraph("3.6% death rate\n(19% ↓)", qf_style), Paragraph("0.5% death rate\n(90% ↓)", qf_style)], [Paragraph("Catastrophic Costs", qf_bold), Paragraph("Present", qf_style), Paragraph("Ongoing mitigation", qf_style), Paragraph("Zero", qf_style)], ] sdg_tbl = Table(sdg_rows, colWidths=[4.2*cm, 3.5*cm, 3.8*cm, 5.2*cm]) sdg_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), ORANGE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("BACKGROUND", (0,1), (-1,-1), ORANGE_LT), ("BACKGROUND", (0,1), (0,-1), HexColor("#FACFAA")), ("GRID", (0,0), (-1,-1), 0.5, ORANGE), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("ALIGN", (1,0), (-1,-1), "CENTER"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ])) story.append(KeepTogether([sec(" SDG / END TB TARGETS", ORANGE), sdg_tbl])) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # ORGANIZATIONAL STRUCTURE # ───────────────────────────────────────────────────────────────────────────── org_rows = [ [Paragraph(b("Level"), tag), Paragraph(b("Body"), tag), Paragraph(b("Key Person / Function"), tag)], [Paragraph("National", qf_bold), Paragraph("Central TB Division (CTD), DGHS", qf_style), Paragraph("DDG-TB; NTI Bengaluru + 6 National Reference Labs (NIRT, NITRD, JALMA…)", qf_style)], [Paragraph("State", qf_bold), Paragraph("State TB Cell (STC)", qf_style), Paragraph("State TB Officer (STO) — planning, training, supervision", qf_style)], [Paragraph("District", qf_bold), Paragraph("District TB Centre (DTC)", qf_style), Paragraph("District TB Officer (DTO) — nodal for district activities", qf_style)], [Paragraph("Sub-district", qf_bold), Paragraph("Tuberculosis Unit (TU)", qf_style), Paragraph("STS + STLS — TU is the key innovation of NTEP", qf_style)], [Paragraph("Peripheral", qf_bold), Paragraph("PHI / Designated Microscopy Centre (DMC)", qf_style), Paragraph("1 DMC per 1,00,000 pop (plains); 50,000 (hilly areas)", qf_style)], ] org_tbl = Table(org_rows, colWidths=[2.8*cm, 5.5*cm, 8.4*cm]) org_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), BLUE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("BACKGROUND", (0,1), (-1,-1), BLUE_LT), ("BACKGROUND", (0,1), (0,-1), HexColor("#BBDEFB")), ("GRID", (0,0), (-1,-1), 0.5, BLUE), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ])) story.append(KeepTogether([sec(" ORGANIZATIONAL STRUCTURE — 5 LEVELS", BLUE), org_tbl])) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # FOUR PILLARS — DTPB # ───────────────────────────────────────────────────────────────────────────── story.append(sec(" FOUR STRATEGIC PILLARS — D T P B", GREEN)) pillar_data = [ # DETECT ("D — DETECT", GREEN, GREEN_LT, [ "<b>CBNAAT</b> — 1,180 machines covering all districts; diagnoses TB + drug resistance", "<b>TrueNAT MTB</b> — portable, battery-operated; ideal for tribal/remote areas", "<b>Active Case Finding (ACF)</b> — systematic screening in slums, prisons, tribal areas, old age homes, orphanages", "<b>Universal Drug Susceptibility Testing (UDST)</b> — ~55% of notified TB cases offered UDST", "<b>Ni-kshay Portal</b> — mandatory online notification for ALL providers (public + private); tracks from notification to outcome", ]), # TREAT ("T — TREAT", ORANGE, ORANGE_LT, [ "<b>Daily FDC (Fixed Dose Combination) regimen</b> — replaces older 3×/week DOTS", "<b>Patient-wise boxes (PWBs)</b> — blister-packed; daily pack (intensive phase), weekly pack (continuation phase); Red = Cat I, Blue = Cat II", "<b>Paediatric TB</b> — child-friendly FDCs in 6 weight bands; family DOT option incorporated", "<b>DR-TB management</b> — Bedaquiline, Delamanid, Pretomanid; shorter 9-month regimen; >46,000 DR-TB patients on shorter regimen since 2018", "<b>Nikshay Poshan Yojana (NPY)</b> — ₹500/month DBT for nutrition to ALL TB patients for entire treatment duration", ]), # PREVENT ("P — PREVENT", BLUE, BLUE_LT, [ "<b>TB Preventive Therapy (TPT)</b> — 6H (6-month isoniazid) or 3HP regimen for household contacts + high-risk groups", "<b>Contact tracing</b> in vulnerable populations", "<b>Airborne Infection Control (AIC)</b> guidelines — healthcare facilities", "<b>BCG vaccination</b> — National Immunization Schedule", "<b>HIV–TB co-management</b> — single-window services; isoniazid preventive therapy for HIV+", ]), # BUILD ("B — BUILD", PURPLE, PURPLE_LT, [ "<b>Private sector engagement</b> — mandatory notification, ban on TB serodiagnostics, govt. drug supply to private patients", "<b>Multi-sectoral convergence</b> — addressing social determinants: poverty, malnutrition, housing", "<b>Sub-national certification</b> — district/state TB burden estimation via community-level surveys (inverse sampling)", "<b>Health system strengthening</b> — training, HR development, lab network expansion", "<b>Research & innovation</b> — in-country TB burden models, new diagnostics, new drug trials", ]), ] for title, color, bg, points in pillar_data: header_para = ParagraphStyle("PH", fontName="Helvetica-Bold", fontSize=10, textColor=WHITE, leading=14) bp = ParagraphStyle("BP2", fontName="Helvetica", fontSize=9, leading=12.5, textColor=GREY_DARK, leftIndent=12, firstLineIndent=-10, spaceAfter=2) content = [[Paragraph(f"• {p}", bp)] for p in points] content_tbl = Table(content, colWidths=[15.5*cm]) content_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 8), ])) hdr_tbl = Table([[Paragraph(title, header_para)]], colWidths=[15.5*cm]) hdr_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), color), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 10), ])) story.append(KeepTogether([hdr_tbl, content_tbl, sp(6)])) story.append(sp(4)) # ───────────────────────────────────────────────────────────────────────────── # KEY SCHEMES # ───────────────────────────────────────────────────────────────────────────── scheme_rows = [ [Paragraph(b("Scheme"), tag), Paragraph(b("Key Details"), tag)], [Paragraph("Ni-kshay Portal", qf_bold), Paragraph("Web-based IT platform; mandatory electronic notification for public + private providers; tracks all events from notification to outcome", qf_style)], [Paragraph("Nikshay Poshan Yojana (NPY)", qf_bold), Paragraph("Launched April 2018 | ₹500/month DBT for nutrition | ₹2,781 crore disbursed to ~1 crore beneficiaries till 2023", qf_style)], [Paragraph("PMTBMBA", qf_bold), Paragraph("PM TB Mukt Bharat Abhiyaan | Launched 9 Sept 2022 by President | Ni-kshay Mitras adopt TB patients | CSR + NGO + community engagement | TB Vijetas (champions) + Ni-kshay SAATHI (family caregiver model) | Jan Andolan", qf_style)], [Paragraph("CBNAAT / TrueNAT", qf_bold), Paragraph("Rapid molecular diagnostics for TB + drug resistance | CBNAAT: 1,180 labs across all districts | TrueNAT: portable, battery-operated for peripheral areas", qf_style)], [Paragraph("Daily FDC Regimen", qf_bold), Paragraph("Replaces 3×/week DOTS | Patient-wise blister-packed boxes | Paediatric: 6 weight bands, child-friendly formulations, family DOT option", qf_style)], [Paragraph("TB Preventive Therapy (TPT)", qf_bold), Paragraph("6H or 3HP regimen | For household contacts + HIV+ + immunosuppressed (biologics) | Expanding to all high-risk groups", qf_style)], [Paragraph("Drug Resistance Surveillance (DRS)", qf_bold), Paragraph("Monitors prevalence of drug resistance in new + previously treated PTB patients | Guides regimen choices nationally", qf_style)], ] scheme_tbl = Table(scheme_rows, colWidths=[4.2*cm, 12.5*cm]) scheme_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), RED), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("BACKGROUND", (0,1), (-1,-1), RED_LT), ("BACKGROUND", (0,1), (0,-1), HexColor("#FFCDD2")), ("GRID", (0,0), (-1,-1), 0.5, RED), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 7), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ])) story.append(KeepTogether([sec(" KEY SCHEMES & INITIATIVES", RED), scheme_tbl])) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # EVOLUTION TIMELINE # ───────────────────────────────────────────────────────────────────────────── story.append(sec(" EVOLUTION TIMELINE", GREY_DARK)) timeline = [ ("1962", "National TB Programme launched — District TB Centre model + BCG vaccination"), ("1997", "RNTCP launched — DOTS strategy introduced"), ("2006", "Stop TB Strategy adopted by RNTCP (WHO)"), ("2014", "End TB Strategy approved by World Health Assembly"), ("2017", "NSP 2017-25 launched — DTPB pillars introduced"), ("2018", "Nikshay Poshan Yojana (₹500/month DBT); Bedaquiline expanded"), ("2020", "RNTCP renamed NTEP; NSP 2020-25 launched (revised targets)"), ("2022", "Pradhan Mantri TB Mukt Bharat Abhiyaan (PMTBMBA) — 9 Sept 2022"), ("2025", "TARGET: 80% reduction in incidence, 90% reduction in mortality"), ("2030", "Global SDG End TB target"), ] tl_style_yr = ParagraphStyle("TLY", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, alignment=TA_CENTER) tl_style_ev = ParagraphStyle("TLE", fontName="Helvetica", fontSize=9, textColor=GREY_DARK, leading=12) tl_rows = [[Paragraph(yr, tl_style_yr), Paragraph(ev, tl_style_ev)] for yr, ev in timeline] tl_tbl = Table(tl_rows, colWidths=[1.8*cm, 14.9*cm]) row_colors = [TEAL, TEAL, GREY_DARK, GREY_DARK, GREEN, ORANGE, TEAL, RED, HexColor("#1B5E20"), HexColor("#0D47A1")] style_cmds = [ ("GRID", (0,0), (-1,-1), 0.3, GREY_LIGHT), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ("BACKGROUND", (1,0), (1,-1), GREY_LIGHT), ] for i, c in enumerate(row_colors): style_cmds.append(("BACKGROUND", (0,i), (0,i), c)) tl_tbl.setStyle(TableStyle(style_cmds)) story.append(tl_tbl) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # NATIONAL STRATEGIC PLANS # ───────────────────────────────────────────────────────────────────────────── nsp_rows = [ [Paragraph(b("NSP"), tag), Paragraph(b("Period"), tag), Paragraph(b("Highlights"), tag)], [Paragraph("NSP 2017-25\n(Original)", qf_bold), Paragraph("2017-2025", qf_style), Paragraph("Introduced DTPB pillars; universal CBNAAT; mandatory notification; daily FDC; Bedaquiline rollout", qf_style)], [Paragraph("NSP 2020-25\n(Revised)", qf_bold), Paragraph("2020-2025", qf_style), Paragraph("Relaunched after NSP 2017-25 fell short; intensified private sector engagement; TB Mukt Bharat Abhiyaan; expanded TPT; TrueNAT rollout; community-level burden estimation", qf_style)], ] nsp_tbl = Table(nsp_rows, colWidths=[3.2*cm, 2.8*cm, 10.7*cm]) nsp_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), PURPLE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("BACKGROUND", (0,1), (-1,-1), PURPLE_LT), ("BACKGROUND", (0,1), (0,-1), HexColor("#E1BEE7")), ("GRID", (0,0), (-1,-1), 0.5, PURPLE), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 7), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ])) story.append(KeepTogether([sec(" NATIONAL STRATEGIC PLANS", PURPLE), nsp_tbl])) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # CHALLENGES & EXAM TIPS # ───────────────────────────────────────────────────────────────────────────── left_content = [ sec(" CHALLENGES", RED), sp(2), bullet_item("<b>India carries ~27%</b> of global TB burden", bullet), bullet_item("<b>Private sector under-reporting</b> — majority of TB patients first seen privately", bullet), bullet_item("<b>TB co-morbidities</b> — diabetes, HIV, malnutrition", bullet), bullet_item("<b>Drug resistance</b> — significant MDR-TB and XDR-TB burden", bullet), bullet_item("<b>Social determinants</b> — poverty, overcrowding, indoor air pollution", bullet), bullet_item("<b>2025 target gap</b> — 2024 incidence 153/lakh vs target 42/lakh", bullet), ] tip_style = ParagraphStyle("Tip", fontName="Helvetica", fontSize=9, leading=12.5, textColor=GREY_DARK, leftIndent=12, firstLineIndent=-10, spaceAfter=3) right_content = [ sec(" EXAM TIPS", HexColor("#F57F17")), sp(2), Paragraph("★ NTEP renamed from RNTCP in <b>2020</b>", tip_style), Paragraph("★ India target: <b>2025</b> (global SDG: <b>2030</b>)", tip_style), Paragraph("★ 4 pillars: <b>D-T-P-B</b>", tip_style), Paragraph("★ 5 org levels: National→State→District→Sub-district→PHI", tip_style), Paragraph("★ NPY: <b>₹500/month DBT</b> — launched April 2018", tip_style), Paragraph("★ PMTBMBA: <b>9 Sept 2022</b> — President launched", tip_style), Paragraph("★ CBNAAT: <b>1,180 labs</b>; TrueNAT for peripheral", tip_style), Paragraph("★ TU = key sub-district level innovation", tip_style), ] two_col = Table( [[left_content, right_content]], colWidths=[8.3*cm, 8.4*cm] ) two_col.setStyle(TableStyle([ ("VALIGN", (0,0), (-1,-1), "TOP"), ("LEFTPADDING", (0,0), (-1,-1), 0), ("RIGHTPADDING",(0,0), (-1,-1), 4), ])) story.append(two_col) story.append(sp(10)) # ───────────────────────────────────────────────────────────────────────────── # FOOTER NOTE # ───────────────────────────────────────────────────────────────────────────── footer_data = [[Paragraph( "Source: Park's Textbook of Preventive & Social Medicine (26th ed.) | DGHS-MoHFW NTEP Portal | NSP 2020-25 | PMC Review (PMID: 9672688) | Prepared by Orris Medical", small )]] footer_tbl = Table(footer_data, colWidths=[W - 3.6*cm]) footer_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), GREY_LIGHT), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 8), ("BOX", (0,0), (-1,-1), 0.5, GREY_MID), ])) story.append(footer_tbl) # ───────────────────────────────────────────────────────────────────────────── # BUILD # ───────────────────────────────────────────────────────────────────────────── doc.build(story) print("PDF created successfully!") EOF
NTEP Revision
PDF Document · PDF
| Section | Content |
|---|---|
| Quick Facts | Renamed year, India's target, global burden, nodal body, DTPB pillars |
| SDG Targets Table | Baseline 2015 vs 2024 status vs 2025 goal for incidence, mortality, costs |
| Organizational Structure | All 5 levels with key personnel and functions |
| Four Pillars (DTPB) | Color-coded blocks for Detect, Treat, Prevent, Build - each with bullet points |
| Key Schemes | Ni-kshay, NPY, PMTBMBA, CBNAAT/TrueNAT, FDC regimen, TPT, DRS |
| Evolution Timeline | 1962 → 2030 with color-coded milestones |
| National Strategic Plans | NSP 2017-25 vs NSP 2020-25 comparison |
| Challenges | Real barriers to elimination |
| Exam Tips | High-yield facts with dates and numbers to memorize |