From reference of park give in a flowchart form .
1. National health mission. 2.filariasis control program
A clean medical educational flowchart titled "NATIONAL HEALTH MISSION (NHM)" based on Park's Preventive and Social Medicine textbook. The flowchart should show: Top box: NATIONAL HEALTH MISSION (NHM) - Approved May 2013 by Ministry of Health & Family Welfare Arrow down to two parallel sub-mission boxes: - NRHM (National Rural Health Mission) - Launched 5th April 2005 - NUHM (National Urban Health Mission) - Cities with population 50,000+ Arrow down to: THREE PROGRAMMATIC COMPONENTS box: 1. Health System Strengthening (Rural & Urban) 2. RMNCH+A (Reproductive-Maternal-Newborn-Child-Adolescent Health) 3. Control of Communicable & Non-Communicable Diseases Arrow down to KEY INTERVENTIONS box listing: - Janani Suraksha Yojana (JSY) - institutional deliveries - Janani Shishu Suraksha Karyakram (JSSK) - free delivery - ASHA cadre creation - SNCUs / NRCs / NBSUs setup - Village Health & Nutrition Days - Web-based tracking of pregnant women - IFA supplementation - RMNCH+A for 184 high priority districts - Ayushman Bharat (2018) Arrow down to MILESTONES box: 1992 CSSM → 1997 RCH I → 2005 RCH II → 2005 NRHM → 2013 RMNCH+A → 2013 NHM → 2014 INAP → 2018 Ayushman Bharat Arrow down to TARGETS box: - Reduce IMR to 25/1000 live births - Reduce MMR to 100/100,000 live births - Reduce OPE from 72% to 60% (achieved) - Achieve TFR 2.1 - 100% ANC coverage Use blue color scheme, clear arrows, box borders, professional medical style
A clean medical educational flowchart titled "NATIONAL FILARIA CONTROL PROGRAMME (NFCP)" based on Park's Preventive and Social Medicine textbook. Top box: NATIONAL FILARIA CONTROL PROGRAMME (NFCP) - In operation since 1955. Operational through 206 Filaria Control Units, 199 Filaria Clinics, 27 Survey Units Arrow down to: BURDEN box: - Endemic in 256 districts, 16 states, 5 UTs - ~630 million people at risk - Causative agents: Wuchereria bancrofti (90%), Brugia malayi Arrow down to GOAL box: - Elimination of Lymphatic Filariasis (ELF) - microfilaria rate less than 1% - NHP 2002 target: ELF by 2015 Arrow down to: CONTROL STRATEGY (split into 3 paths): Path 1 - CHEMOTHERAPY: → Mass Drug Administration (MDA) - Annual, since 2004 → DEC + Albendazole (single dose) - since 2007 → Selective Treatment (DEC 6mg/kg x 12 days) - in low endemic areas → DEC-Medicated Salt (1-4g DEC/kg salt) Path 2 - VECTOR CONTROL: → Antilarval Measures: - Chemical control (Temephos, Fenthion, MLO) - Removal of Pistia plant (for Mansonia) - Environmental measures (drain stagnant water) → Anti-adult Measures (Pyrethrum space spray) → Personal Prophylaxis (mosquito nets, house screening) → Integrated Vector Control Path 3 - MORBIDITY MANAGEMENT: → Home-based lymphoedema foot care → Hydrocele operations at CHC/District hospitals → Line-listing of lymphoedema & hydrocele cases Arrow down to: ASSESSMENT PARAMETERS box: - Clinical: ALF episodes, lymphoedema, hydrocele prevalence - Parasitological: Microfilaria rate, Filarial endemicity rate, Mf density - Entomological: Vector density, % mosquitoes Mf positive, Annual biting rate Arrow down to: ACHIEVEMENTS box: - Coverage increased from 72.4% (2004) to 86.8% (2014) - 94 districts completed 1st TAS and stopped MDA by 2017 - Microfilaria rate reduced to <1% in 192/250 districts Use green color scheme, professional medical educational style, clear labeled boxes and arrows


Create a comprehensive summary document on NHM targets & achievements
mkdir -p /home/daytona/workspace/nhm-summary && ls /home/daytona/workspace/nhm-summary
~/nhm-summary/create_nhm_pdf.py
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, PageBreak
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor
OUTPUT = "/home/daytona/workspace/nhm-summary/NHM_Comprehensive_Summary.pdf"
# ── Colour palette ──────────────────────────────────────────────────────────
C_NAVY = HexColor("#1a3c5e")
C_BLUE = HexColor("#2563a8")
C_LBLUE = HexColor("#dbeafe")
C_GREEN = HexColor("#166534")
C_LGREEN = HexColor("#dcfce7")
C_AMBER = HexColor("#92400e")
C_LAMBER = HexColor("#fef3c7")
C_RED = HexColor("#991b1b")
C_LRED = HexColor("#fee2e2")
C_GREY = HexColor("#f1f5f9")
C_DKGREY = HexColor("#475569")
C_WHITE = colors.white
C_BLACK = colors.black
W, H = A4
# ── Header / Footer ──────────────────────────────────────────────────────────
def on_page(canv, doc):
canv.saveState()
# Top bar
canv.setFillColor(C_NAVY)
canv.rect(0, H - 28, W, 28, fill=1, stroke=0)
canv.setFillColor(C_WHITE)
canv.setFont("Helvetica-Bold", 9)
canv.drawString(1.5*cm, H - 18, "NATIONAL HEALTH MISSION — Comprehensive Summary")
canv.setFont("Helvetica", 8)
canv.drawRightString(W - 1.5*cm, H - 18, "Source: Park's Textbook of Preventive & Social Medicine")
# Bottom bar
canv.setFillColor(C_NAVY)
canv.rect(0, 0, W, 22, fill=1, stroke=0)
canv.setFillColor(C_WHITE)
canv.setFont("Helvetica", 8)
canv.drawString(1.5*cm, 7, f"Page {doc.page}")
canv.drawCentredString(W/2, 7, "Ministry of Health & Family Welfare, Government of India")
canv.restoreState()
# ── Doc setup ────────────────────────────────────────────────────────────────
doc = BaseDocTemplate(
OUTPUT, pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=2.0*cm, bottomMargin=1.5*cm,
)
frame = Frame(doc.leftMargin, doc.bottomMargin,
doc.width, doc.height - 28 - 5,
id="main")
doc.addPageTemplates([PageTemplate(id="main", frames=frame, onPage=on_page)])
# ── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
s_title = S("Title", fontSize=22, textColor=C_WHITE, alignment=TA_CENTER,
fontName="Helvetica-Bold", leading=28)
s_subtitle = S("Subtitle", fontSize=12, textColor=C_WHITE, alignment=TA_CENTER,
fontName="Helvetica", leading=16)
s_h1 = S("H1", fontSize=13, textColor=C_WHITE, fontName="Helvetica-Bold",
leading=18, spaceAfter=4)
s_h2 = S("H2", fontSize=11, textColor=C_NAVY, fontName="Helvetica-Bold",
leading=15, spaceBefore=8, spaceAfter=4)
s_h3 = S("H3", fontSize=10, textColor=C_BLUE, fontName="Helvetica-Bold",
leading=14, spaceBefore=6, spaceAfter=3)
s_body = S("Body", fontSize=9.5, textColor=C_BLACK, fontName="Helvetica",
leading=14, alignment=TA_JUSTIFY, spaceAfter=4)
s_bullet = S("Bullet", fontSize=9.5, textColor=C_BLACK, fontName="Helvetica",
leading=14, leftIndent=14, firstLineIndent=-10, spaceAfter=3)
s_note = S("Note", fontSize=8.5, textColor=C_DKGREY, fontName="Helvetica-Oblique",
leading=12, spaceAfter=4, alignment=TA_CENTER)
s_table_hdr = S("TblHdr", fontSize=9, textColor=C_WHITE, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=12)
s_table_cell = S("TblCell", fontSize=9, textColor=C_BLACK, fontName="Helvetica",
leading=12, alignment=TA_LEFT)
s_table_cell_c = S("TblCellC", fontSize=9, textColor=C_BLACK, fontName="Helvetica",
leading=12, alignment=TA_CENTER)
# helper: section header band
def sec_header(text, bg=C_NAVY):
data = [[Paragraph(text, s_h1)]]
t = Table(data, colWidths=[doc.width])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING",(0,0), (-1,-1), 6),
("ROUNDEDCORNERS", [4]),
]))
return t
def bullet(text, color=C_BLUE):
return Paragraph(f"<font color='#{color.hexval()[2:]}'>●</font> {text}", s_bullet)
def sp(h=6):
return Spacer(1, h)
# ─────────────────────────────────────────────────────────────────────────────
story = []
# ══════════════════════════════════════════════════════════════════
# COVER BLOCK
# ══════════════════════════════════════════════════════════════════
cover_data = [[
Paragraph("NATIONAL HEALTH MISSION", s_title),
Paragraph("Comprehensive Summary of Targets & Achievements", s_subtitle),
Paragraph("Based on Park's Textbook of Preventive & Social Medicine", s_note),
]]
cover = Table([[
Paragraph("NATIONAL HEALTH MISSION", s_title),
]], colWidths=[doc.width])
cover.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_NAVY),
("TOPPADDING", (0,0), (-1,-1), 20),
("BOTTOMPADDING",(0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
story.append(cover)
cover2 = Table([[
Paragraph("Comprehensive Summary: Targets & Achievements", s_subtitle),
]], colWidths=[doc.width])
cover2.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_BLUE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING",(0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
story.append(cover2)
cover3 = Table([[
Paragraph("Ministry of Health & Family Welfare, Government of India | Source: Park's PSM", s_note),
]], colWidths=[doc.width])
cover3.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_LBLUE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING",(0,0), (-1,-1), 6),
]))
story.append(cover3)
story.append(sp(12))
# ══════════════════════════════════════════════════════════════════
# SECTION 1 — OVERVIEW
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("1. OVERVIEW OF NATIONAL HEALTH MISSION (NHM)"))
story.append(sp(6))
story.append(Paragraph(
"The <b>National Health Mission (NHM)</b> was approved in <b>May 2013</b> by the Ministry of Health "
"and Family Welfare. It is the overarching umbrella framework that integrates multiple vertical health "
"programmes to provide universal access to quality health care across India. "
"NHM subsumes two sub-missions:", s_body))
story.append(sp(4))
sub_data = [
[Paragraph("<b>NRHM</b>\nNational Rural Health Mission", s_table_cell_c),
Paragraph("<b>NUHM</b>\nNational Urban Health Mission", s_table_cell_c)],
[Paragraph("Launched: <b>5th April 2005</b>\nFocus: Rural population\n18 special focus states", s_table_cell_c),
Paragraph("Cities & towns with population <b>≥50,000</b>\nCovers 779+ cities/towns\n7 metro cities managed by Municipal Corporations", s_table_cell_c)],
]
sub_t = Table(sub_data, colWidths=[doc.width/2, doc.width/2])
sub_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_BLUE),
("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
("BACKGROUND", (0,1), (-1,1), C_LBLUE),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("GRID", (0,0), (-1,-1), 0.5, C_BLUE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 10),
]))
story.append(sub_t)
story.append(sp(8))
story.append(Paragraph("<b>Three Core Programmatic Components:</b>", s_h2))
comp_data = [
["1", "Health System Strengthening", "Rural and urban infrastructure, HR, quality services"],
["2", "RMNCH+A", "Reproductive-Maternal-Newborn-Child-Adolescent Health"],
["3", "Disease Control", "Communicable and non-communicable diseases"],
]
comp_t = Table(comp_data, colWidths=[0.8*cm, 5.5*cm, doc.width - 6.3*cm])
comp_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_GREY),
("ROWBACKGROUNDS",(0,0),(-1,-1),[C_LBLUE, C_GREY, C_LBLUE]),
("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("ALIGN", (0,0), (0,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("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, C_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, C_BLUE),
]))
story.append(comp_t)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 2 — MILESTONES
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("2. HISTORICAL MILESTONES", bg=C_BLUE))
story.append(sp(6))
milestones = [
("1992", "Child Survival and Safe Motherhood Programme (CSSM)", C_LBLUE),
("1997", "Reproductive and Child Health Programme – Phase I (RCH I)", C_GREY),
("2005", "RCH Phase II + National Rural Health Mission (NRHM) launched – 5th April", C_LBLUE),
("2013", "RMNCH+A Strategy & National Health Mission (NHM) formally approved – May 2013", C_GREY),
("2014", "India Newborn Action Plan (INAP)", C_LBLUE),
("2018", "Ayushman Bharat Programme (PMJAY + Health & Wellness Centres)", C_GREY),
]
ml_data = [[Paragraph(f"<b>{y}</b>", s_table_cell_c), Paragraph(desc, s_table_cell)] for y, desc, _ in milestones]
ml_t = Table(ml_data, colWidths=[2.0*cm, doc.width - 2.0*cm])
ml_t.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [C_LBLUE, C_GREY]),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("ALIGN", (0,0), (0,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, C_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, C_BLUE),
("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
("TEXTCOLOR", (0,0), (0,-1), C_NAVY),
]))
story.append(ml_t)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 3 — KEY INTERVENTIONS
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("3. KEY INTERVENTIONS UNDER NHM", bg=C_GREEN))
story.append(sp(6))
story.append(Paragraph("<b>A. Maternal & Child Health Interventions</b>", s_h2))
mch_bullets = [
"<b>Janani Suraksha Yojana (JSY):</b> Conditional cash transfer to promote institutional deliveries",
"<b>Janani Shishu Suraksha Karyakram (JSSK):</b> Entitles pregnant women to free delivery (including C-section), free drugs, diagnostics, blood, diet, and free transport from home to facility and back",
"<b>RMNCH+A Strategy:</b> 184 high-priority districts prioritized for integrated reproductive, maternal, newborn, child, and adolescent health interventions",
"<b>Mother & Child Protection Card:</b> Monitoring of service delivery in collaboration with Ministry of Women & Child Development",
"<b>Name-based web-enabled tracking</b> of pregnant women for ANC, intranatal, and PNC care",
"<b>Special New Born Care Units (SNCUs), Neonatal Intensive Care Units (NICUs), Newborn Stabilisation Units (NBSUs)</b> at facility level",
"<b>IFA supplementation</b> to pregnant & lactating women for anaemia prevention",
"<b>Village Health & Nutrition Days (VHNDs):</b> Monthly outreach in rural areas",
]
for b in mch_bullets:
story.append(bullet(b, C_GREEN))
story.append(sp(6))
story.append(Paragraph("<b>B. Health System Strengthening (NRHM)</b>", s_h2))
hss_bullets = [
"<b>ASHA (Accredited Social Health Activist):</b> Community health volunteer – 1 per 1000 population in rural areas; 1 per 1000–2500 in urban areas",
"<b>Sub-centre strengthening:</b> Untied funds of Rs. 10,000/year; essential drugs (allopathic + AYUSH)",
"<b>PHC strengthening:</b> 24-hour service, AYUSH integration, standard treatment guidelines",
"<b>CHC as First Referral Unit (FRU):</b> 24-hour emergency care, anaesthetist posting, Rogi Kalyan Samiti",
"<b>District Health Mission & State Health Mission:</b> Convergence of vertical programmes",
"<b>Mobile Medical Units:</b> Improved outreach at district level",
"<b>Public Private Partnership (PPP):</b> Involving private sector in RCH services",
"<b>AYUSH mainstreaming:</b> Integration with primary health care",
]
for b in hss_bullets:
story.append(bullet(b, C_GREEN))
story.append(sp(6))
story.append(Paragraph("<b>C. Health System Strengthening (NUHM)</b>", s_h2))
nuhm_bullets = [
"<b>Urban PHCs (U-PHCs):</b> Functional for population of 50,000–60,000; located within/near slums",
"<b>Urban CHCs (U-CHCs):</b> Secondary-level care for urban populations",
"<b>Mahila Arogya Samiti (MAS):</b> Community institution covering 50–100 households; annual grant of Rs. 5,000",
"<b>Female Health Workers (FHWs/ANMs)</b> for outreach in urban slums",
"<b>Rogi Kalyan Samitis (RKS)</b> at U-PHCs and U-CHCs for hospital management",
"<b>Special outreach camps</b> in slums and high-focus areas",
"<b>Focus populations:</b> Slum dwellers, homeless, rag-pickers, street children, sex workers, migrants",
]
for b in nuhm_bullets:
story.append(bullet(b, C_GREEN))
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 4 — TARGETS & ACHIEVEMENTS (TABLE 10)
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("4. NHM TARGETS vs. ACHIEVEMENTS (12th Five-Year Plan: 2012–17)", bg=C_AMBER))
story.append(sp(6))
story.append(Paragraph(
"Table 10 from Park's Textbook presents the official targets set under NHM for the 12th Five-Year "
"Plan period (2012–2017) and the achievements recorded against each:", s_body))
story.append(sp(6))
ta_headers = [
Paragraph("<b>S.No.</b>", s_table_hdr),
Paragraph("<b>Indicator</b>", s_table_hdr),
Paragraph("<b>Target (2012–17)</b>", s_table_hdr),
Paragraph("<b>Achievement</b>", s_table_hdr),
Paragraph("<b>Status</b>", s_table_hdr),
]
ta_rows = [
["1", "Infant Mortality Rate (IMR)",
"Reduce to 25/1000 live births",
"IMR reduced from 42 (2012) to 34 (2016)",
"Improving\n(Target not yet met)"],
["2", "Maternal Mortality Rate (MMR)",
"Reduce to 1/1000 live births\n(i.e. 100/100,000)",
"MMR reduced to 1.30/1000\n(130/100,000) in 2014–16",
"Improving\n(Near target)"],
["3", "Total Fertility Rate (TFR)",
"Reduce to 2.1\n(Replacement level)",
"TFR reduced to 2.3 (2015)",
"Near target"],
["4", "Tuberculosis",
"Reduce annual incidence\n& mortality by half",
"Incidence: 204/lakh\nMortality: 31/lakh (2017)",
"In progress"],
["5", "Leprosy",
"Prevalence <1/10,000\npopulation; zero incidence\nin all districts",
"Prevalence rate <1/10,000\npopulation achieved",
"Target MET"],
["6", "Malaria",
"Annual malaria incidence\n<1/1000 population",
"Annual malaria incidence\n<1/1000 achieved",
"Target MET"],
["7", "Filariasis\n(Microfilaria)",
"Less than 1% microfilaria\nprevalence in all districts",
"222 out of 225 endemic\ndistricts reported Mf rate <1%",
"Near target\n(3 districts remain)"],
["8", "Kala-azar",
"Elimination by 2015\n(<1 case/10,000 population\nin all blocks)",
"539 out of 633 block PHCs\nreported <1 case/10,000",
"In progress\n(85% blocks achieved)"],
["9", "Out-of-Pocket Expenditure",
"Significant reduction",
"Reduced from 72% to 60%",
"Target MET"],
]
def status_color(s):
if "MET" in s: return C_LGREEN
if "Near" in s: return C_LAMBER
return HexColor("#e0f2fe")
ta_data = [ta_headers]
for row in ta_rows:
ta_data.append([
Paragraph(row[0], s_table_cell_c),
Paragraph(f"<b>{row[1]}</b>", s_table_cell),
Paragraph(row[2], s_table_cell),
Paragraph(row[3], s_table_cell),
Paragraph(row[4], s_table_cell_c),
])
col_ws = [0.8*cm, 4.0*cm, 4.0*cm, 4.5*cm, 2.8*cm]
ta_t = Table(ta_data, colWidths=col_ws, repeatRows=1)
style_cmds = [
("BACKGROUND", (0,0), (-1,0), C_NAVY),
("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("ALIGN", (1,1), (3,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("FONTSIZE", (0,0), (-1,-1), 9),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 6),
("BOX", (0,0), (-1,-1), 0.8, C_NAVY),
("INNERGRID", (0,0), (-1,-1), 0.3, C_DKGREY),
]
# Colour status cells
for i, row in enumerate(ta_rows, start=1):
bg = status_color(row[4])
style_cmds.append(("BACKGROUND", (4,i), (4,i), bg))
# Alternating rows
for i in range(1, len(ta_rows)+1):
if i % 2 == 0:
style_cmds.append(("BACKGROUND", (0,i), (3,i), C_GREY))
ta_t.setStyle(TableStyle(style_cmds))
story.append(ta_t)
story.append(sp(6))
story.append(Paragraph(
"Source: Table 10 – Park's Textbook of Preventive and Social Medicine; NHM 12th Five-Year Plan Report.", s_note))
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 5 — NUHM IMPACT TARGETS
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("5. NUHM — IMPACT-LEVEL TARGETS", bg=C_BLUE))
story.append(sp(6))
nuhm_targets = [
("IMR Reduction", "Reduce national urban IMR to 20/1000 live births by 2017 (40% reduction); achieve universal immunization in all urban areas"),
("MMR Reduction", "50% reduction in MMR among urban population; 100% ANC coverage in urban areas"),
("Institutional Delivery", "Achieve universal access to reproductive health including 100% institutional delivery"),
("Fertility", "Achieve replacement level fertility – TFR 2.1"),
("Disease Control", "Achieve all targets of disease control programmes (TB, Malaria, Filariasis, Kala-azar, Leprosy)"),
]
nt_data = [[Paragraph(f"<b>{t}</b>", s_table_cell), Paragraph(d, s_table_cell)] for t, d in nuhm_targets]
nt_t = Table(nt_data, colWidths=[4.5*cm, doc.width - 4.5*cm])
nt_t.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [C_LBLUE, C_GREY]),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, C_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, C_BLUE),
]))
story.append(nt_t)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 6 — NUHM PROCESS INDICATORS
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("6. NUHM — PROCESS & INPUT INDICATORS (Table 12)", bg=C_NAVY))
story.append(sp(6))
indicators = {
"Community Processes": [
"Number of Mahila Arogya Samiti (MAS) formed",
"Number of MAS members trained",
"Number of ASHAs selected and trained",
],
"Health Systems": [
"Number of ANMs recruited",
"No. of Special Outreach health camps organized in slums/HFAs",
"No. of Urban Health & Nutrition Days (UHNDs) organized",
"Number of UPHCs made operational",
"Number of UCHCs made operational",
"No. of RKS created at UPHC and UCHC",
"OPD attendance in UPHCs",
"No. of deliveries conducted in public health facilities",
],
"RCH Services": [
"ANC early registration in first trimester",
"Number of women with ANC check-up in first trimester",
"TT (2nd dose) coverage among pregnant women",
"No. of children fully immunized through public health facilities",
"No. of Severely Acute Malnourished (SAM) children identified & referred",
],
"Communicable Diseases": [
"No. of malaria cases detected through blood examination",
"No. of TB cases identified through chest symptomatic",
"No. of suspected TB cases referred for sputum examination",
"No. of MDR-TB cases put under DOTS-plus",
],
"Non-Communicable Diseases": [
"No. of diabetes cases screened",
"No. of cancer cases screened",
"No. of hypertension cases screened",
],
}
cat_colors = [C_LBLUE, C_LGREEN, C_LAMBER, C_LRED, C_GREY]
for idx, (cat, items) in enumerate(indicators.items()):
bg = cat_colors[idx % len(cat_colors)]
cat_row = [[Paragraph(f"<b>{cat}</b>", S("CatHdr", fontSize=9.5, textColor=C_NAVY,
fontName="Helvetica-Bold", leading=13))]]
ct = Table(cat_row, colWidths=[doc.width])
ct.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("LEFTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("BOX", (0,0), (-1,-1), 0.5, C_BLUE),
]))
story.append(ct)
for i, item in enumerate(items):
row_bg = C_WHITE if i % 2 == 0 else HexColor("#f8fafc")
row = [[Paragraph(f"{i+1}. {item}", s_table_cell)]]
rt = Table(row, colWidths=[doc.width])
rt.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), row_bg),
("LEFTPADDING", (0,0), (-1,-1), 20),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("BOX", (0,0), (-1,-1), 0.3, HexColor("#cbd5e1")),
]))
story.append(rt)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 7 — NRHM INFRASTRUCTURE
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("7. NRHM — INFRASTRUCTURE STRENGTHENING PLAN", bg=C_GREEN))
story.append(sp(6))
nrhm_infra = [
("ASHA Cadre", "1 ASHA per 1000 rural population (married/widow/divorced woman, preferably 8th standard pass). Performance-based incentives through revolving fund held with ANM."),
("Sub-Centres", "Essential drugs (allopathic + AYUSH); untied funds Rs. 10,000/year; additional ANMs in 18 special focus states."),
("Primary Health Centres (PHCs)", "24-hour service (≥50% PHCs); AYUSH integration; standard treatment guidelines; 2nd doctor provision (1 male + 1 female) based on felt need."),
("Community Health Centres (CHCs)", "24-hour First Referral Units; anaesthetist posting; Indian Public Health Standards (IPHS) codification; Rogi Kalyan Samiti for hospital management."),
("District Level", "District Health Mission as core unit of planning, budgeting, implementation; Mobile Medical Units for outreach; convergence of vertical programmes."),
("State Level", "State Health Mission for all vertical health and family welfare programmes."),
("Public Private Partnership (PPP)", "Private sector engagement in RCH services to supplement public health care delivery."),
]
for title, desc in nrhm_infra:
row_data = [[Paragraph(f"<b>{title}</b>", s_table_cell), Paragraph(desc, s_table_cell)]]
rt = Table(row_data, colWidths=[3.8*cm, doc.width - 3.8*cm])
rt.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), C_LGREEN),
("BACKGROUND", (1,0), (1,-1), C_WHITE),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, C_GREEN),
("INNERGRID", (0,0), (-1,-1), 0.3, HexColor("#86efac")),
]))
story.append(rt)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 8 — ASHA SERVICES (NUHM)
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("8. ESSENTIAL SERVICES BY ASHA (NUHM)", bg=C_BLUE))
story.append(sp(6))
asha_services = [
"Active promoter of good health practices and community support",
"Facilitate awareness on RCH services: sexuality, gender equality, age at marriage/pregnancy",
"Motivate contraception adoption, MTP, sterilization, spacing methods",
"Early pregnancy registration; antenatal, intra-natal, postnatal care counselling",
"Depot holder: ORS, IFA tablets, chloroquine, oral pills, condoms",
"Support ANM in monthly outreach sessions and tracking service coverage",
"Facilitate access to Anganwadi/U-PHC/ULB services",
"Form and promote Mahila Arogya Samitis (MAS)",
"Escort pregnant women and sick children to U-PHC/secondary/tertiary facilities",
"Community action for immunization; prevention of water-borne diseases, TB, Malaria, Chikungunya, JE",
"Preventive and promotive health activities with AWW/MAS",
"Maintain records of births, deaths, immunization, ANC; report unusual health events/outbreaks",
]
for i, svc in enumerate(asha_services):
bg = C_LBLUE if i % 2 == 0 else C_WHITE
r = Table([[Paragraph(f"{i+1}. {svc}", s_table_cell)]], colWidths=[doc.width])
r.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("LEFTPADDING", (0,0), (-1,-1), 10),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("BOX", (0,0), (-1,-1), 0.3, C_BLUE),
]))
story.append(r)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 9 — AYUSHMAN BHARAT
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("9. AYUSHMAN BHARAT (2018) — FLAGSHIP INITIATIVE UNDER NHM", bg=C_NAVY))
story.append(sp(6))
ab_data = [
[Paragraph("<b>Component</b>", s_table_hdr),
Paragraph("<b>Details</b>", s_table_hdr)],
[Paragraph("Health & Wellness Centres (HWCs)", s_table_cell),
Paragraph("Comprehensive primary health care beyond RMNCH+A; NCD screening, oral health, mental health, elderly & palliative care; 1.5 lakh HWCs planned", s_table_cell)],
[Paragraph("Pradhan Mantri Jan Arogya Yojana (PM-JAY)", s_table_cell),
Paragraph("Health insurance coverage of Rs. 5 lakh/family/year for secondary and tertiary care hospitalization; targeting 10.74 crore poor and vulnerable families (~50 crore beneficiaries)", s_table_cell)],
]
ab_t = Table(ab_data, colWidths=[5.0*cm, doc.width - 5.0*cm])
ab_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_NAVY),
("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
("ROWBACKGROUNDS",(0,1),(-1,-1),[C_LBLUE, C_GREY]),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, C_NAVY),
("INNERGRID", (0,0), (-1,-1), 0.3, C_DKGREY),
]))
story.append(ab_t)
story.append(sp(10))
# ══════════════════════════════════════════════════════════════════
# SECTION 10 — KEY ACHIEVEMENTS SUMMARY
# ══════════════════════════════════════════════════════════════════
story.append(sec_header("10. SUMMARY OF KEY ACHIEVEMENTS", bg=C_GREEN))
story.append(sp(6))
achiev = [
("Out-of-Pocket Expenditure", "Reduced from 72% → 60% (significant relief for households)", C_LGREEN),
("IMR", "Reduced from 42 (2012) → 34 (2016) per 1000 live births", C_LGREEN),
("MMR", "Reduced to 130/100,000 live births (2014–16)", C_LGREEN),
("TFR", "Reduced to 2.3 (2015) – approaching replacement level of 2.1", C_LAMBER),
("Leprosy Prevalence", "<1/10,000 population – Target MET", C_LGREEN),
("Malaria Incidence", "<1/1000 population – Target MET", C_LGREEN),
("Filariasis (Mf rate)", "222/225 endemic districts now report Mf rate <1%", C_LGREEN),
("Kala-azar", "539/633 block PHCs report <1 case/10,000 – 85% blocks achieved target", C_LAMBER),
("Institutional Deliveries", "Substantial increase via JSY & JSSK schemes", C_LGREEN),
("ASHA", "Over 10 lakh ASHAs trained and deployed nationwide", C_LGREEN),
]
for ind, val, bg in achiev:
r = Table([[
Paragraph(f"<b>{ind}</b>", s_table_cell),
Paragraph(val, s_table_cell),
]], colWidths=[4.5*cm, doc.width - 4.5*cm])
r.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("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, C_GREEN),
("INNERGRID", (0,0), (-1,-1), 0.3, HexColor("#86efac")),
]))
story.append(r)
story.append(sp(12))
story.append(HRFlowable(width="100%", thickness=1, color=C_NAVY))
story.append(sp(6))
story.append(Paragraph(
"This document is based on <b>Park's Textbook of Preventive and Social Medicine</b>. "
"All data reflect the 12th Five-Year Plan period targets and achievements as documented in the textbook. "
"For the most current data, refer to annual reports of the Ministry of Health & Family Welfare, Government of India.",
s_note))
# ── Build ─────────────────────────────────────────────────────────────────────
doc.build(story)
print("PDF created successfully:", OUTPUT)
cd /home/daytona/workspace/nhm-summary && python create_nhm_pdf.py 2>&1
ls -lh /home/daytona/workspace/nhm-summary/NHM_Comprehensive_Summary.pdf
NHM Comprehensive Summary
PDF Document · PDF
| Section | Content |
|---|---|
| 1. Overview | NHM structure, approval date, NRHM vs NUHM comparison table, 3 core programmatic components |
| 2. Historical Milestones | Timeline from CSSM (1992) → RCH I/II → NRHM → RMNCH+A → NHM → INAP → Ayushman Bharat |
| 3. Key Interventions | JSY, JSSK, RMNCH+A, ASHA, SNCUs, IFA, VHNDs, NUHM urban PHCs/CHCs, MAS |
| 4. Targets vs Achievements | Full Table 10 from Park's - IMR, MMR, TFR, TB, Leprosy, Malaria, Filariasis, Kala-azar with colour-coded status (Met/Near/In progress) |
| 5. NUHM Impact Targets | Urban IMR, MMR, TFR, institutional delivery, immunization targets |
| 6. NUHM Process Indicators | All 23 process/input indicators from Table 12 (community, health system, RCH, CD, NCD) |
| 7. NRHM Infrastructure | Sub-centres, PHCs, CHCs, District/State Health Mission, Mobile Medical Units, PPP |
| 8. ASHA Services | All 12 essential services to be rendered under NUHM |
| 9. Ayushman Bharat | HWCs + PM-JAY coverage details |
| 10. Key Achievements Summary | Colour-coded summary of all documented achievements |