Cho exam syllabus
India NHM Community Health Officer CHO exam syllabus 2025 2026
https://www.pw.live/nursing/exams/cho
| Parameter | Details |
|---|---|
| Conducted by | State Health Societies under NHM |
| Eligibility | GNM / B.Sc. Nursing / Post Basic B.Sc. Nursing |
| Exam Mode | Online CBT or Offline OMR (state-wise) |
| Total Questions | 100-150 MCQs |
| Duration | 2 to 2.5 hours |
| Negative Marking | State-specific (present in RJ, GJ, MP, HR) |
| State | Nursing % | Public Health % | GK/Aptitude % | -ve Marking |
|---|---|---|---|---|
| Uttar Pradesh | 80% | - | 20% | No |
| Madhya Pradesh | 65% | 20% | 15% | Yes |
| Rajasthan | 80% | - | 20% | Yes |
| Maharashtra | 70% | 20% | 10% | No |
| Bihar | 50% | 30% | 20% | No |
| Gujarat | 75% | - | 25% | Yes |
| Punjab | 80% | - | 20% | No |
| Haryana | 75% | - | 25% | Yes |
| Chhattisgarh | 50% | 30% | 20% | No |
| Odisha | 70% | 20% | 10% | No |
Create a study guide PDF for CHO exam preparation
mkdir -p /home/daytona/workspace/cho-study-guide && ls /home/daytona/workspace/cโฆ
~/cho-study-guide/generate_cho_guide.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,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
# โโโ Colors โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
DARK_BLUE = colors.HexColor("#1B3A6B")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#D6E8F7")
ACCENT_TEAL = colors.HexColor("#1A8C8C")
ACCENT_GREEN= colors.HexColor("#2E7D32")
ORANGE = colors.HexColor("#E65100")
LIGHT_GRAY = colors.HexColor("#F5F5F5")
MID_GRAY = colors.HexColor("#BDBDBD")
WHITE = colors.white
RED_ALERT = colors.HexColor("#C62828")
# โโโ Output path โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
OUTPUT = "/home/daytona/workspace/cho-study-guide/CHO_Exam_Study_Guide.pdf"
# โโโ Document setup โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=1.8*cm,
leftMargin=1.8*cm,
topMargin=2*cm,
bottomMargin=2*cm,
title="CHO Exam Study Guide",
author="NHM CHO Preparation",
)
W, H = A4
styles = getSampleStyleSheet()
# โโโ Custom styles โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
def make_style(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = make_style("CoverTitle",
fontSize=32, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_CENTER, spaceAfter=10)
cover_sub = make_style("CoverSub",
fontSize=16, fontName="Helvetica",
textColor=colors.HexColor("#D6E8F7"), alignment=TA_CENTER, spaceAfter=6)
cover_info = make_style("CoverInfo",
fontSize=12, fontName="Helvetica",
textColor=WHITE, alignment=TA_CENTER, spaceAfter=4)
ch_heading = make_style("ChHeading",
fontSize=18, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_LEFT,
leftIndent=8, spaceAfter=4, spaceBefore=4)
sec_heading = make_style("SecHeading",
fontSize=13, fontName="Helvetica-Bold",
textColor=DARK_BLUE, alignment=TA_LEFT,
spaceBefore=10, spaceAfter=4)
sub_heading = make_style("SubHeading",
fontSize=11, fontName="Helvetica-Bold",
textColor=ACCENT_TEAL, spaceBefore=8, spaceAfter=3)
body = make_style("Body",
fontSize=10, fontName="Helvetica",
textColor=colors.HexColor("#212121"),
leading=15, spaceBefore=2, spaceAfter=2, alignment=TA_JUSTIFY)
bullet_style = make_style("Bullet",
fontSize=10, fontName="Helvetica",
textColor=colors.HexColor("#212121"),
leading=14, leftIndent=14, spaceBefore=1, spaceAfter=1)
note_style = make_style("Note",
fontSize=9.5, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#555555"),
leading=13, leftIndent=10, spaceBefore=4, spaceAfter=4)
highlight_style = make_style("Highlight",
fontSize=10, fontName="Helvetica-Bold",
textColor=ORANGE, spaceBefore=4, spaceAfter=4)
toc_style = make_style("TOC",
fontSize=11, fontName="Helvetica",
textColor=DARK_BLUE, leading=20, leftIndent=20)
toc_heading_style = make_style("TOCHeading",
fontSize=12, fontName="Helvetica-Bold",
textColor=DARK_BLUE, leading=22, leftIndent=0)
footer_style = make_style("Footer",
fontSize=8, fontName="Helvetica",
textColor=MID_GRAY, alignment=TA_CENTER)
# โโโ Helper builders โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
def chapter_header(title, subtitle=""):
data = [[Paragraph(title, ch_heading)]]
if subtitle:
data.append([Paragraph(subtitle, make_style("ChSub",
fontSize=10, fontName="Helvetica",
textColor=colors.HexColor("#BBDEFB"), alignment=TA_LEFT, leftIndent=8))])
t = Table(data, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 1, MED_BLUE),
]))
return t
def info_box(text, bg=LIGHT_BLUE, border=MED_BLUE):
t = Table([[Paragraph(text, make_style("IB",
fontSize=10, fontName="Helvetica",
textColor=DARK_BLUE, leading=14, leftIndent=0))]],
colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, border),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def key_points_box(points, title="Key Points"):
rows = [[Paragraph(f"<b>{title}</b>", make_style("KPH",
fontSize=10, fontName="Helvetica-Bold",
textColor=WHITE))]]
for p in points:
rows.append([Paragraph(f"โข {p}", make_style("KP",
fontSize=9.5, fontName="Helvetica",
textColor=DARK_BLUE, leading=13))])
t = Table(rows, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), ACCENT_TEAL),
("BACKGROUND", (0,1), (-1,-1), colors.HexColor("#E0F2F1")),
("BOX", (0,0), (-1,-1), 1, ACCENT_TEAL),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def simple_table(headers, rows, col_widths=None):
col_w = col_widths or ([( W - 3.6*cm) / len(headers)] * len(headers))
data = [[Paragraph(f"<b>{h}</b>", make_style("TH",
fontSize=9.5, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_CENTER)) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), make_style("TD",
fontSize=9, fontName="Helvetica",
textColor=colors.HexColor("#212121"), leading=13)) for c in row])
t = Table(data, colWidths=col_w)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [LIGHT_GRAY, WHITE]),
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
return t
def bullet_list(items):
return [Paragraph(f"<b>โข</b> {item}", bullet_style) for item in items]
def sp(n=1):
return Spacer(1, n * 5)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=MID_GRAY, spaceAfter=4)
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CONTENT BUILDING
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story = []
# โโโ COVER PAGE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cover_data = [
[Paragraph("NHM", make_style("CL1", fontSize=14, fontName="Helvetica",
textColor=colors.HexColor("#90CAF9"), alignment=TA_CENTER))],
[Paragraph("Community Health Officer", cover_title)],
[Paragraph("Exam Study Guide", cover_title)],
[Spacer(1, 8)],
[HRFlowable(width="60%", thickness=2, color=ACCENT_TEAL, spaceAfter=10)],
[Paragraph("Comprehensive Preparation Resource", cover_sub)],
[Spacer(1, 20)],
[Paragraph("Covers All Core Subjects | State-wise Exam Patterns", cover_info)],
[Paragraph("National Health Programmes | MCH | Epidemiology | Nursing", cover_info)],
[Spacer(1, 30)],
[Paragraph("July 2026 Edition", make_style("Ed", fontSize=10, fontName="Helvetica",
textColor=colors.HexColor("#90CAF9"), alignment=TA_CENTER))],
]
cover_table = Table(cover_data, colWidths=[W - 3.6*cm])
cover_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
("BOX", (0,0), (-1,-1), 3, ACCENT_TEAL),
]))
story.append(Spacer(1, 60))
story.append(cover_table)
story.append(Spacer(1, 20))
story.append(Paragraph(
"For GNM / B.Sc. Nursing / Post Basic B.Sc. Nursing candidates",
make_style("CoverFooter", fontSize=10, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#546E7A"), alignment=TA_CENTER)))
story.append(PageBreak())
# โโโ TABLE OF CONTENTS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Table of Contents"))
story.append(sp(2))
toc_items = [
("1", "Exam Overview & Pattern", "3"),
("2", "Anatomy & Physiology", "4"),
("3", "Community Health Nursing", "5"),
("4", "Maternal & Child Health (MCH)", "6"),
("5", "National Health Programmes (NHP)", "7"),
("6", "Medical-Surgical Nursing", "9"),
("7", "Midwifery & Gynecology", "10"),
("8", "Mental Health Nursing", "11"),
("9", "Nutrition", "11"),
("10","Microbiology & Infection Control", "12"),
("11","Health Statistics & Demography", "13"),
("12","High-Priority Topics & Quick Revision", "14"),
("13","Mock Questions", "15"),
("14","Study Plan & Tips", "16"),
]
toc_data = [[
Paragraph(f"<b>{no}.</b>", make_style("TN", fontSize=11, fontName="Helvetica-Bold", textColor=DARK_BLUE)),
Paragraph(title, toc_style),
Paragraph(f"<b>{pg}</b>", make_style("TP", fontSize=11, fontName="Helvetica-Bold",
textColor=MED_BLUE, alignment=TA_CENTER)),
] for no, title, pg in toc_items]
toc_t = Table(toc_data, colWidths=[1.2*cm, W - 3.6*cm - 1.2*cm - 1.5*cm, 1.5*cm])
toc_t.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_GRAY, WHITE]),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
]))
story.append(toc_t)
story.append(PageBreak())
# โโโ CHAPTER 1: EXAM OVERVIEW โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 1: Exam Overview & Pattern", "NHM CHO Recruitment 2026"))
story.append(sp(2))
story.append(Paragraph("About the CHO Exam", sec_heading))
story.append(Paragraph(
"The Community Health Officer (CHO) exam is conducted by State Health Societies under the "
"National Health Mission (NHM). CHOs manage Health and Wellness Centres (HWCs) at sub-centre "
"level and serve as mid-level healthcare providers in rural and underserved areas.",
body))
story.append(sp(2))
story.append(Paragraph("Eligibility", sec_heading))
story.append(simple_table(
["Qualification", "Details"],
[
["Education", "GNM / B.Sc. Nursing / Post Basic B.Sc. Nursing"],
["Registration", "Valid registration with State Nursing Council"],
["Age", "18-40 years (relaxation for SC/ST/OBC as per state rules)"],
["Nationality", "Indian Citizen"],
],
[4*cm, W - 3.6*cm - 4*cm]
))
story.append(sp(3))
story.append(Paragraph("State-Wise Exam Pattern", sec_heading))
story.append(simple_table(
["State", "Mode", "Questions", "Duration", "-ve Marking"],
[
["Uttar Pradesh", "CBT Online", "100", "2 hrs", "No"],
["Madhya Pradesh", "CBT Online", "100", "2 hrs", "Yes"],
["Rajasthan", "OMR Offline", "150", "2.5 hrs", "Yes"],
["Maharashtra", "CBT Online", "100", "2 hrs", "No"],
["Bihar", "OMR Offline", "100", "2 hrs", "No"],
["Gujarat", "CBT Online", "100", "2 hrs", "Yes"],
["Punjab", "CBT Online", "100", "2 hrs", "No"],
["Haryana", "OMR Offline", "120", "2 hrs", "Yes"],
["Chhattisgarh", "OMR Offline", "100", "2 hrs", "No"],
["Odisha", "CBT Online", "100", "2 hrs", "No"],
],
[4*cm, 3*cm, 2.5*cm, 2.5*cm, 3*cm]
))
story.append(sp(3))
story.append(key_points_box([
"Nursing subjects carry 50-80% of total marks in all states",
"National Health Programmes are high-yield - always 15-20% weightage",
"States like Bihar and Chhattisgarh have separate Public Health section (30%)",
"Read the official state notification before the exam for last-minute changes",
]))
story.append(PageBreak())
# โโโ CHAPTER 2: ANATOMY & PHYSIOLOGY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 2: Anatomy & Physiology"))
story.append(sp(2))
story.append(Paragraph("Cardiovascular System", sec_heading))
for line in [
"Heart has 4 chambers: 2 atria (receiving) and 2 ventricles (pumping)",
"Normal heart rate: 60-100 bpm; BP: 120/80 mmHg",
"SA node (sinoatrial node) is the pacemaker of the heart - located in right atrium",
"Cardiac output = Stroke Volume x Heart Rate (Normal CO = 4-6 L/min)",
"Systole = contraction phase; Diastole = relaxation/filling phase",
"Coronary arteries supply blood to the heart muscle itself",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(2))
story.append(Paragraph("Respiratory System", sec_heading))
for line in [
"Normal respiratory rate (adults): 12-20 breaths/min",
"Tidal volume = 500 mL; Total lung capacity = ~6 L",
"Surfactant is produced by Type II pneumocytes - prevents alveolar collapse",
"Oxygen is transported by hemoglobin (HbO2 = oxyhemoglobin)",
"CO2 is mainly transported as bicarbonate ions (HCO3-) in plasma",
"Breathing is controlled by the respiratory centre in the medulla oblongata",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(2))
story.append(Paragraph("Reproductive System", sec_heading))
for line in [
"Menstrual cycle: 28 days (average); ovulation on Day 14",
"Follicular phase (Day 1-14): estrogen dominant; Luteal phase (Day 14-28): progesterone dominant",
"Corpus luteum secretes progesterone to maintain pregnancy",
"Spermatogenesis occurs in seminiferous tubules of testes",
"FSH stimulates follicle growth; LH triggers ovulation",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(2))
story.append(Paragraph("Other Key Systems", sec_heading))
story.append(simple_table(
["System", "Key Organ", "Main Function", "Important Facts"],
[
["Nervous", "Brain / Spinal cord", "Control & coordination", "Neuron = basic unit; CNS + PNS"],
["Endocrine", "Pituitary gland", "Hormone secretion", "Pituitary = master gland"],
["Urinary", "Kidneys", "Filtration & excretion", "GFR = 125 mL/min (normal)"],
["Digestive", "Liver", "Digestion & metabolism", "Liver = largest internal organ"],
["Immune", "Lymph nodes / Spleen", "Defence against pathogens","B-cells -> antibodies; T-cells -> cellular immunity"],
],
[2.5*cm, 3.5*cm, 3.5*cm, 5.5*cm]
))
story.append(PageBreak())
# โโโ CHAPTER 3: COMMUNITY HEALTH NURSING โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 3: Community Health Nursing"))
story.append(sp(2))
story.append(Paragraph("Levels of Healthcare", sec_heading))
story.append(simple_table(
["Level", "Facility", "Services"],
[
["Primary", "Sub-centre / PHC / HWC", "Preventive, promotive, basic curative care"],
["Secondary", "Community Health Centre (CHC)", "Specialist care, 30-bed hospital"],
["Tertiary", "District Hospital / Medical College", "Advanced specialist & super-specialist care"],
],
[2.5*cm, 5.5*cm, 7*cm]
))
story.append(sp(2))
story.append(Paragraph("Epidemiology", sec_heading))
for line in [
"Epidemiology: Study of distribution and determinants of health and disease in populations",
"Endemic: Disease constantly present in a region (e.g., malaria in certain states)",
"Epidemic: Disease affecting more people than expected in a region at a given time",
"Pandemic: Epidemic that has spread worldwide (e.g., COVID-19)",
"Attack Rate = No. of new cases / Population at risk x 100",
"Incubation period: Time between exposure and appearance of symptoms",
"Reservoir: Natural habitat of an infectious agent (humans, animals, environment)",
"Modes of disease transmission: Direct contact, droplet, airborne, fecal-oral, vector-borne, fomite",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(2))
story.append(Paragraph("Disease Prevention Levels", sec_heading))
story.append(simple_table(
["Level", "Definition", "Examples"],
[
["Primordial Prevention", "Prevent risk factors from emerging in society", "Health education, policy change"],
["Primary Prevention", "Prevent disease before it occurs", "Vaccination, sanitation, health promotion"],
["Secondary Prevention", "Early detection and prompt treatment", "Screening, early diagnosis (PAP smear, mammography)"],
["Tertiary Prevention", "Limit disability and promote rehabilitation", "Physiotherapy, disability aids, support groups"],
],
[4*cm, 5*cm, 6*cm]
))
story.append(sp(2))
story.append(Paragraph("Environmental Health", sec_heading))
for line in [
"Safe drinking water standards (BIS): TDS < 500 mg/L; Turbidity < 1 NTU; pH 6.5-8.5",
"Chlorination of water: Residual chlorine should be 0.2 mg/L at consumer end",
"IMRb rule for water pollution: Check Coliform count (indicator of fecal contamination)",
"Sewage disposal methods: Septic tank, oxidation pond, activated sludge process",
"Air pollution: PM2.5 and PM10 are key pollutants; major cause of respiratory diseases",
"Safe excreta disposal prevents diarrhea, typhoid, hepatitis A, cholera, polio",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(PageBreak())
# โโโ CHAPTER 4: MCH โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 4: Maternal & Child Health (MCH)"))
story.append(sp(2))
story.append(Paragraph("Antenatal Care (ANC)", sec_heading))
story.append(info_box(
"<b>Minimum ANC Visits (GoI):</b> At least 4 ANC visits - 1st visit before 12 weeks, "
"2nd at 14-26 weeks, 3rd at 28-34 weeks, 4th at 36 weeks onwards."
))
story.append(sp(2))
for line in [
"Weight gain in pregnancy: ~10-12 kg (underweight may gain up to 18 kg)",
"BP >140/90 mmHg in pregnancy = Hypertension in Pregnancy (PIH)",
"Pre-eclampsia: Hypertension + Proteinuria after 20 weeks",
"Eclampsia: Pre-eclampsia + Convulsions - EMERGENCY, give MgSO4",
"Iron + Folic acid: 100 tablets from 2nd trimester (180 days); IFA daily during pregnancy",
"TT vaccination: 2 doses in first pregnancy (TT1 at first contact, TT2 after 4 weeks)",
"Fundal height = weeks of gestation (after 20 weeks, 1 cm = 1 week)",
"Fetal heart sounds audible from 20 weeks with stethoscope; Doppler from 10-12 weeks",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(2))
story.append(Paragraph("Normal Labour (Stages)", sec_heading))
story.append(simple_table(
["Stage", "Description", "Duration (Primi/Multi)"],
[
["Stage 1", "Onset of labour to full cervical dilation (10 cm)", "12-16 hrs / 6-8 hrs"],
["Stage 2", "Full dilation to delivery of baby", "1-2 hrs / 30-60 min"],
["Stage 3", "Delivery of placenta (within 30 min)", "15-30 min / 10-15 min"],
["Stage 4", "1 hour after placenta delivery - monitoring", "60 min"],
],
[2*cm, 7.5*cm, 5.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Immunization Schedule (UIP - Universal Immunization Programme)", sec_heading))
story.append(simple_table(
["Age", "Vaccines"],
[
["At Birth", "BCG, OPV-0 (birth dose), Hepatitis B (birth dose)"],
["6 weeks", "OPV-1, IPV-1, Pentavalent-1 (DPT+HepB+Hib), Rotavirus-1, PCV-1"],
["10 weeks", "OPV-2, Pentavalent-2, Rotavirus-2, PCV-2"],
["14 weeks", "OPV-3, IPV-2, Pentavalent-3, Rotavirus-3, PCV-3"],
["9-12 months", "MR-1, JE-1 (endemic areas), Vitamin A (1st dose)"],
["16-24 months", "DPT Booster-1, OPV Booster, MR-2, JE-2, Vitamin A (2nd dose)"],
["5-6 years", "DPT Booster-2"],
["10 & 16 years", "Td (Tetanus-diphtheria)"],
["Pregnant women", "Td-1, Td-2 (or Td booster)"],
],
[3.5*cm, 11.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Child Health", sec_heading))
for line in [
"IMNCI: Integrated Management of Neonatal and Childhood Illness - assesses danger signs",
"IMNCI danger signs (child 2mo-5yr): Unable to drink, vomits everything, convulsions, lethargic/unconscious",
"KMC (Kangaroo Mother Care): Skin-to-skin contact for preterm/LBW babies",
"LBW (Low Birth Weight): <2500 g at birth; VLBW: <1500 g",
"Growth monitoring: Weight, height, MUAC (Mid Upper Arm Circumference)",
"MUAC: < 11.5 cm = SAM; 11.5-12.5 cm = MAM; > 12.5 cm = Normal (children 6-59 months)",
"SAM treatment: RUTF (Ready to Use Therapeutic Food), NRC (Nutrition Rehabilitation Centre)",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(PageBreak())
# โโโ CHAPTER 5: NATIONAL HEALTH PROGRAMMES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 5: National Health Programmes (NHP)", "Highest Weightage Section"))
story.append(sp(2))
story.append(info_box(
"<b>Exam Tip:</b> National Health Programmes carry 15-30% weightage in most state CHO exams. "
"Memorize the programme names, target groups, and key interventions."
))
story.append(sp(2))
story.append(Paragraph("Reproductive & Child Health", sec_heading))
story.append(simple_table(
["Programme", "Full Form / Key Features"],
[
["RMNCH+A", "Reproductive, Maternal, Newborn, Child & Adolescent Health - umbrella programme"],
["JSY", "Janani Suraksha Yojana - cash incentive for institutional delivery (LPS: Rs.1400; HPS: Rs.700)"],
["JSSK", "Janani Shishu Suraksha Karyakram - free services for pregnant women and sick newborns"],
["PMMVY", "Pradhan Mantri Matru Vandana Yojana - Rs.5000 maternity benefit for first live birth"],
["RBSK", "Rashtriya Bal Swasthya Karyakram - screening for 4Ds (Defects, Diseases, Deficiencies, Developmental delays)"],
["SABLA", "Scheme for Adolescent Girls (11-18 yrs) - nutrition, health, education"],
],
[3*cm, 12*cm]
))
story.append(sp(2))
story.append(Paragraph("Disease Control Programmes", sec_heading))
story.append(simple_table(
["Programme", "Target Disease", "Key Strategy"],
[
["NTEP (formerly RNTCP)", "Tuberculosis", "Nikshay portal, DSTB/DRTB treatment, DOTS, 2025 elimination target"],
["NVBDCP", "Malaria, Dengue, Filaria","IRS (indoor residual spraying), LLIN, vector control"],
["NLEP", "Leprosy", "MDT (Multi-Drug Therapy): PB-6 months, MB-12 months"],
["NACP", "HIV/AIDS", "ICTC, ART centres, PPTCT, 100% condom programme"],
["NPCB", "Blindness", "Cataract operations, school eye screening"],
["NPCDCS", "NCDs (DM, HTN, Cancer)", "Population-based screening at HWC, 30+ years"],
["NPHCE", "Elderly health", "8 geriatric centres, weekly OPD at district hospitals"],
["NMHP", "Mental Health", "District Mental Health Programme (DMHP)"],
],
[4.5*cm, 3.5*cm, 7*cm]
))
story.append(sp(2))
story.append(Paragraph("Ayushman Bharat - Health & Wellness Centres (HWCs)", sec_heading))
story.append(info_box(
"<b>CHO's Role:</b> CHOs are the in-charge of Health and Wellness Centres (HWCs) at sub-centre level. "
"HWCs provide Comprehensive Primary Health Care (CPHC) including 12 service packages."
))
story.append(sp(1))
story.append(Paragraph("12 Service Packages at HWC:", sub_heading))
services = [
"Pregnancy care and child birth services",
"Neonatal and infant health care",
"Childhood and adolescent health care",
"Family planning and contraceptive services",
"Management of communicable diseases",
"General OPD care (fever, diarrhea, minor injuries)",
"Screening and management of NCDs (diabetes, hypertension)",
"Basic oral health care",
"Eye care and ENT services",
"Mental health and substance abuse services",
"Palliative and rehabilitative care",
"Emergency and trauma care (first aid)",
]
for i, s in enumerate(services, 1):
story.append(Paragraph(f"{i}. {s}", bullet_style))
story.append(sp(2))
story.append(Paragraph("Other Key Schemes", sec_heading))
story.append(simple_table(
["Scheme", "Benefit"],
[
["PM-JAY (Ayushman Bharat)", "Health cover Rs.5 lakh per family per year for 40 crore beneficiaries"],
["Mission Indradhanush", "Immunization of children and pregnant women left out of UIP"],
["Poshan Abhiyan", "Reduce stunting, wasting, anemia in children and women"],
["PM-POSHAN (MDM)", "Mid-day meal for school children (formerly Mid Day Meal Scheme)"],
["ASHA", "Accredited Social Health Activist - link worker; 1 per 1000 rural population"],
["Pradhan Mantri Surakshit Matritva Abhiyan", "Free ANC on 9th of every month at govt facilities"],
],
[5.5*cm, 9.5*cm]
))
story.append(PageBreak())
# โโโ CHAPTER 6: MEDICAL-SURGICAL NURSING โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 6: Medical-Surgical Nursing"))
story.append(sp(2))
story.append(Paragraph("Common Diseases & Nursing Management", sec_heading))
story.append(simple_table(
["Disease", "Key S/S", "Nursing Management"],
[
["Tuberculosis (TB)", "Persistent cough >2 wks, hemoptysis, night sweats, weight loss",
"DOTS, sputum AFB, isolation, nutrition, medication compliance"],
["Diabetes Mellitus", "Polyuria, polydipsia, polyphagia, hyperglycemia",
"Blood sugar monitoring, insulin/OHA, diet, foot care"],
["Hypertension", "Headache, dizziness, BP >140/90 mmHg",
"Antihypertensives, low-salt diet, exercise, stress reduction"],
["Malaria", "Cyclical fever with chills (P.vivax every 48 hrs, P.malariae 72 hrs)",
"ACT (Artemisinin Combination Therapy), mosquito protection"],
["Dengue", "High fever, rash, thrombocytopenia, joint/muscle pain",
"IV fluids, platelet monitoring, no aspirin/NSAIDS, rest"],
["Diarrhea", "Loose stools >3/day, dehydration",
"ORS, zinc supplementation (14 days in children), hygiene"],
["Anemia", "Pallor, fatigue, tachycardia, Hb <12 g/dL (women)",
"Iron supplements, IFA, dietary advice, treat cause"],
],
[3.5*cm, 4.5*cm, 7*cm]
))
story.append(sp(2))
story.append(Paragraph("Basic Pharmacology", sec_heading))
for line in [
"Routes of drug administration: Oral (PO), IM (intramuscular), IV (intravenous), SC (subcutaneous), ID (intradermal), SL (sublingual), Rectal, Topical, Inhalation",
"Half-life: Time for drug concentration to reduce by 50%; important for dosing intervals",
"Analgesics: Paracetamol (fever/pain), Ibuprofen (NSAID, anti-inflammatory), Morphine (opioid)",
"Antibiotics: Penicillin (gram+ve), Cotrimoxazole (UTI, PCP), Metronidazole (anaerobes, amoeba)",
"ORS composition: Sodium 75 mEq/L, Glucose 75 mmol/L, Chloride 65 mEq/L, Potassium 20 mEq/L",
"Injection sites: Deltoid (IM, vaccines), Anterolateral thigh (IM, children), Dorsogluteal (IM, adults)",
"Cold chain: Vaccines stored at 2-8 degrees C; Polio vaccine at -20 degrees C (for freezing)",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(PageBreak())
# โโโ CHAPTER 7: MIDWIFERY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 7: Midwifery & Gynecology"))
story.append(sp(2))
story.append(Paragraph("Complications of Pregnancy", sec_heading))
story.append(simple_table(
["Condition", "Signs", "Management"],
[
["Placenta Previa", "Painless bright red PV bleeding", "No PV exam, C-section, IV access"],
["Abruptio Placentae", "Painful dark PV bleeding, rigid uterus", "Emergency delivery, treat shock"],
["Eclampsia", "Seizures + HTN + Proteinuria", "MgSO4, deliver baby, ICU care"],
["PPH", "Blood loss >500 mL after delivery", "Oxytocin, bimanual compression, refer"],
["Ectopic Pregnancy", "Amenorrhea + abdominal pain + PV bleeding","Emergency surgery"],
],
[3.5*cm, 5*cm, 6.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Family Planning Methods", sec_heading))
story.append(simple_table(
["Method", "Type", "Effectiveness / Notes"],
[
["OCP (oral contraceptive pills)", "Hormonal", "99%+ if taken correctly; start on Day 1-5 of cycle"],
["IUCD (Cu-T 380A)", "Intrauterine","10-year protection; inserted by trained provider; best post-partum"],
["Male condom", "Barrier", "85-98% effective; only method protecting against STIs"],
["DMPA (Depo-Provera)", "Injectable", "3-month injection; irregular bleeding common"],
["Tubectomy", "Permanent", "Female sterilization; Minilap or laparoscopic"],
["Vasectomy", "Permanent", "Male sterilization; simpler, safer than tubectomy"],
["Emergency Contraception", "Hormonal", "Levonorgestrel 1.5 mg within 72 hours of unprotected sex"],
],
[5*cm, 2.5*cm, 7.5*cm]
))
story.append(PageBreak())
# โโโ CHAPTER 8 & 9: MENTAL HEALTH & NUTRITION โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 8: Mental Health Nursing"))
story.append(sp(2))
story.append(Paragraph("Key Concepts", sec_heading))
for line in [
"NMHP: National Mental Health Programme - launched 1982; DMHP started 1996",
"DMHP covers: Awareness, treatment at community level, training PHC staff",
"Schizophrenia: Positive symptoms (hallucinations, delusions), Negative symptoms (flat affect, social withdrawal)",
"Antipsychotics: Haloperidol, Chlorpromazine, Risperidone",
"Depression: Persistent sadness >2 weeks; anhedonia, sleep/appetite changes",
"Anxiety disorders: GAD, panic disorder, phobias - treated with CBT, SSRIs",
"Suicide risk assessment: ASK (Ask, Suicidality, Keep safe) - always document and refer",
"De-addiction: Nicotine replacement therapy, Bupropion; Alcohol withdrawal - Diazepam",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(3))
story.append(chapter_header("Chapter 9: Nutrition"))
story.append(sp(2))
story.append(Paragraph("Nutritional Deficiency Diseases", sec_heading))
story.append(simple_table(
["Nutrient", "Deficiency Disease", "Signs & Symptoms", "Source / Treatment"],
[
["Vitamin A", "Night blindness, Xerophthalmia", "Bitot spots, corneal ulcer, keratomalacia", "Carrots, egg yolk; Vit A capsules"],
["Iron", "Iron Deficiency Anemia", "Pallor, koilonychia (spoon nails), fatigue", "Green leafy veg; IFA supplements"],
["Iodine", "Goitre, Cretinism", "Enlarged thyroid, intellectual disability", "Iodized salt (standard policy)"],
["Vitamin C", "Scurvy", "Bleeding gums, perifollicular hemorrhages", "Citrus fruits; Vit C supplements"],
["Vitamin D", "Rickets (children), Osteomalacia","Bow legs, bone pain, tetany", "Sunlight, fortified milk"],
["Vitamin B12","Megaloblastic anemia", "Macrocytes, neurological symptoms", "Animal products; B12 injections"],
["Protein", "Kwashiorkor", "Edema, moon face, skin lesions", "High protein diet, RUTF"],
["Protein + Energy", "Marasmus", "Severe wasting, skin & bones appearance", "Graduated refeeding, RUTF"],
],
[2.5*cm, 4*cm, 4.5*cm, 4*cm]
))
story.append(sp(2))
story.append(Paragraph("Dietary Requirements", sec_heading))
story.append(simple_table(
["Group", "Calories/day", "Protein/day", "Key Micronutrients"],
[
["Adult man (moderate work)", "2875 kcal", "60 g", "Iron 17 mg, Calcium 600 mg"],
["Adult woman (moderate work)","2225 kcal", "55 g", "Iron 21 mg, Calcium 600 mg"],
["Pregnant woman", "2425 kcal", "75 g", "Iron 35 mg, Calcium 1200 mg, Folic acid 500 mcg"],
["Lactating woman (0-6 mo)", "2950 kcal", "80 g", "Iron 21 mg, Calcium 1200 mg"],
["Children (1-3 yr)", "1240 kcal", "22 g", "Iron 9 mg, Calcium 600 mg"],
],
[5*cm, 3*cm, 3*cm, 4*cm]
))
story.append(PageBreak())
# โโโ CHAPTER 10 & 11 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 10: Microbiology & Infection Control"))
story.append(sp(2))
story.append(Paragraph("Sterilization & Disinfection", sec_heading))
story.append(simple_table(
["Method", "Type", "Used For", "Temperature / Details"],
[
["Autoclave", "Sterilization", "Surgical instruments, dressings", "121 deg C, 15 psi, 15-20 min"],
["Dry Heat Oven", "Sterilization", "Glassware, oil, powders", "160 deg C for 1 hr / 170 deg C for 45 min"],
["Boiling", "Disinfection", "Utensils, rubber goods", "100 deg C for 20 minutes"],
["Chemical (Glutaraldehyde 2%)", "High-level disinfection", "Endoscopes", "20 min immersion"],
["Bleaching powder (1%)", "Disinfection", "Floors, toilets, spills", "Chlorine-releasing compound"],
["UV Radiation", "Sterilization", "OT air, laminar flow cabinets", "254 nm wavelength"],
],
[4*cm, 3.5*cm, 4*cm, 3.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Biomedical Waste Management (BMW Rules 2016)", sec_heading))
story.append(simple_table(
["Category / Bag Color", "Type of Waste", "Disposal"],
[
["Yellow bag", "Anatomical waste, soiled/blood-soaked, expired medicine", "Incineration / Deep burial"],
["Red bag", "Recyclable contaminated waste (IV sets, syringes without needle)", "Autoclaving + shredding"],
["White (translucent) box", "Sharps (needles, blades, glass)", "Needle cutter; Autoclaving + puncture-proof pit"],
["Blue bag", "Glassware, metallic implants", "Autoclaving + shredding / recycling"],
],
[4*cm, 5.5*cm, 5.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Universal Precautions (Standard Precautions)", sec_heading))
for line in [
"Treat ALL blood and body fluids as potentially infectious regardless of known status",
"Hand hygiene: WHO 5 Moments - before patient contact, before aseptic procedure, after body fluid exposure, after patient contact, after touching patient surroundings",
"PPE: Gloves, gown, mask, eye protection as appropriate",
"Safe injection practice: One needle, one syringe, one patient, one time",
"Needle stick injury: Wash with soap & water, report, PEP (post-exposure prophylaxis) for HIV within 72 hours",
]:
story.append(Paragraph(f"โข {line}", bullet_style))
story.append(sp(3))
story.append(chapter_header("Chapter 11: Health Statistics & Demography"))
story.append(sp(2))
story.append(Paragraph("Important Health Indicators", sec_heading))
story.append(simple_table(
["Indicator", "Formula", "India (Current)"],
[
["Birth Rate (CBR)", "Live births per 1000 population per year", "~18 (2024 est.)"],
["Death Rate (CDR)", "Deaths per 1000 population per year", "~6"],
["Infant Mortality Rate", "Deaths < 1 year per 1000 live births", "~28 (SRS 2020)"],
["Maternal Mortality Ratio","Maternal deaths per 1,00,000 live births", "~97 (SRS 2018-20)"],
["Total Fertility Rate", "Avg children per woman in reproductive life", "~2.0 (SRS 2020)"],
["Neonatal Mortality Rate", "Deaths in 1st 28 days per 1000 live births", "~20"],
["Under-5 Mortality Rate", "Deaths < 5 years per 1000 live births", "~32"],
["Life Expectancy at Birth","Expected years of life from birth", "~70 years"],
],
[4.5*cm, 5.5*cm, 5*cm]
))
story.append(sp(2))
story.append(key_points_box([
"Census of India: Conducted every 10 years; last was 2011 (2021 census postponed due to COVID)",
"India's population: ~1.44 billion (2024 estimate); 2nd most populous country",
"Sex ratio: 943 females per 1000 males (Census 2011)",
"Literacy rate: 74.04% overall; Male 82.14%, Female 65.46% (Census 2011)",
"NSS (National Sample Survey) and NFHS (National Family Health Survey) are key health data sources",
"NFHS-5 (2019-21) is the most recent NFHS; provides state-level health data",
]))
story.append(PageBreak())
# โโโ CHAPTER 12: HIGH-PRIORITY & QUICK REVISION โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 12: High-Priority Topics & Quick Revision"))
story.append(sp(2))
story.append(info_box(
"<b>These facts appear in almost every CHO exam. Revise them the day before your exam.</b>"
))
story.append(sp(2))
story.append(Paragraph("Must-Know Facts", sec_heading))
quick_facts = [
"ASHA incentive for JSY: Rural LPS = Rs.600, Urban = Rs.400 (facilitator fee)",
"Sub-centre norm: 1 per 5000 rural population (3000 in hilly/tribal areas)",
"PHC norm: 1 per 30,000 rural population (20,000 in hilly/tribal areas)",
"CHC norm: 1 per 1,20,000 population (4 PHCs feed 1 CHC)",
"DOTS: Directly Observed Treatment Short-course - for TB",
"BCG: Bacille Calmette-Guerin - vaccine for TB, given at birth intradermally (0.05 mL)",
"ORS: 1 litre water + 6 tsp sugar + 1/2 tsp salt (home-made); packaged ORS also available",
"APGAR score: Assessed at 1 and 5 minutes after birth; 7-10 = Normal; <7 = needs attention",
"Colostrum: First milk, rich in IgA and antibodies; should be given within 1 hour of birth",
"Exclusive breastfeeding: For first 6 months of life - no water, no other food",
"Safe motherhood: 4 ANC, institutional delivery, skilled birth attendant, postnatal care",
"Cold chain for vaccines: Vaccines stored 2-8 deg C; only OPV stored at -20 deg C",
"Iodized salt: > 15 ppm at household level; >30 ppm at production level",
"MUAC tape: Green (>13.5 cm normal), Yellow (11.5-13.5 MAM), Red (<11.5 SAM)",
"Vitamin A megadose: 2 lakh IU to children 12-59 months every 6 months",
"IFA supplementation: Weekly for adolescent girls (WIFS program); daily during pregnancy",
"Hand washing with soap: 5 critical times - before eating, before feeding child, after toilet, after cleaning child, after handling animal/garbage",
"BMI classification: <18.5 Underweight; 18.5-24.9 Normal; 25-29.9 Overweight; >/= 30 Obese",
]
for fact in quick_facts:
story.append(Paragraph(f"โข {fact}", bullet_style))
story.append(PageBreak())
# โโโ CHAPTER 13: MOCK QUESTIONS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 13: Mock Questions (Practice MCQs)"))
story.append(sp(2))
mcqs = [
("1. CHO manages which type of facility under Ayushman Bharat?",
["A. Primary Health Centre", "B. Community Health Centre",
"C. Health and Wellness Centre (HWC)", "D. District Hospital"],
"C. Health and Wellness Centre (HWC)"),
("2. The APGAR score is assessed at which time intervals?",
["A. 2 and 10 minutes", "B. 1 and 5 minutes",
"C. 5 and 10 minutes", "D. 1 and 10 minutes"],
"B. 1 and 5 minutes"),
("3. What is the recommended storage temperature for OPV vaccine?",
["A. 2-8 degrees C", "B. 0 degrees C",
"C. -20 degrees C", "D. Room temperature"],
"C. -20 degrees C"),
("4. Eclampsia is defined as pre-eclampsia with:",
["A. Severe headache", "B. Proteinuria",
"C. Convulsions", "D. Edema"],
"C. Convulsions"),
("5. Which is the 'pacemaker' of the heart?",
["A. AV node", "B. SA node",
"C. Bundle of His", "D. Purkinje fibers"],
"B. SA node"),
("6. MUAC of 10.5 cm in a child aged 2 years indicates:",
["A. Normal nutrition", "B. Mild malnutrition",
"C. Moderate Acute Malnutrition (MAM)", "D. Severe Acute Malnutrition (SAM)"],
"D. Severe Acute Malnutrition (SAM)"),
("7. Cash benefit under PMMVY is:",
["A. Rs.3000", "B. Rs.5000",
"C. Rs.6000", "D. Rs.1400"],
"B. Rs.5000"),
("8. Bitot spots are a feature of deficiency of:",
["A. Vitamin D", "B. Vitamin C",
"C. Vitamin A", "D. Vitamin B12"],
"C. Vitamin A"),
("9. Which colour bag is used for sharps (needles) in BMW management?",
["A. Yellow", "B. Red",
"C. White (translucent) box", "D. Blue"],
"C. White (translucent) box"),
("10. The '5 Moments of Hand Hygiene' is recommended by:",
["A. ICMR", "B. NHM India",
"C. WHO", "D. Ministry of Health"],
"C. WHO"),
]
for q_text, options, answer in mcqs:
story.append(Paragraph(f"<b>{q_text}</b>", make_style("QText",
fontSize=10, fontName="Helvetica-Bold",
textColor=DARK_BLUE, spaceBefore=8, spaceAfter=4)))
for opt in options:
color = ACCENT_GREEN if opt == answer else colors.HexColor("#424242")
fn = "Helvetica-Bold" if opt == answer else "Helvetica"
story.append(Paragraph(f" {opt}", make_style(f"Opt{opt[0]}",
fontSize=9.5, fontName=fn,
textColor=color, leading=14, leftIndent=20)))
story.append(Paragraph(f"<i>Correct: {answer}</i>", make_style("Ans",
fontSize=9, fontName="Helvetica-Oblique",
textColor=ACCENT_GREEN, leftIndent=20, spaceBefore=2, spaceAfter=6)))
story.append(PageBreak())
# โโโ CHAPTER 14: STUDY PLAN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 14: Study Plan & Exam Tips"))
story.append(sp(2))
story.append(Paragraph("30-Day Study Plan", sec_heading))
story.append(simple_table(
["Week", "Focus Topics", "Daily Target"],
[
["Week 1\n(Days 1-7)", "Anatomy & Physiology (all systems)\nMicrobiology basics",
"3-4 hours study\n50 MCQs practice"],
["Week 2\n(Days 8-14)", "Community Health Nursing\nEpidemiology\nEnvironmental Health",
"3-4 hours study\n50 MCQs practice"],
["Week 3\n(Days 15-21)", "MCH, Immunization, Child Health\nNational Health Programmes",
"4 hours study\n75 MCQs practice"],
["Week 4\n(Days 22-30)", "Medical-Surgical Nursing\nMidwifery, Mental Health, Nutrition\nFull mock tests",
"Full mock test daily\nRevise weak areas"],
],
[3*cm, 7*cm, 5*cm]
))
story.append(sp(2))
story.append(Paragraph("Top Exam Day Tips", sec_heading))
tips = [
"Read the question carefully - look for keywords like 'EXCEPT', 'NOT', 'MOST appropriate'",
"For negative marking exams (RJ, MP, GJ, HR): DO NOT guess; skip if unsure",
"Attempt high-confidence questions first; mark doubtful ones for review",
"National Health Programme questions: focus on targets, cash amounts, and beneficiaries",
"Carry original ID proof and admit card to the exam centre",
"Revise immunization schedule, health indicators, and key statistics the morning of exam",
"Time management: For 100 questions in 2 hours = 1.2 minutes per question",
]
for tip in tips:
story.append(Paragraph(f"โข {tip}", bullet_style))
story.append(sp(3))
story.append(key_points_box([
"Best books: K.P. Nair (Textbook of Community Health Nursing), Marlow (Pediatric Nursing), Annamma Jacob (Clinical Nursing Procedures)",
"Online resources: NHM official website, IGNOU CPHC material, previous year papers",
"Join state-specific telegram groups for latest notifications and updates",
"Practice at least 500-1000 MCQs before the exam",
], title="Recommended Resources"))
story.append(sp(3))
story.append(hr())
story.append(Paragraph(
"Best of luck for your CHO exam! Regular revision and consistent practice of MCQs "
"are the keys to success. Focus on NHPs, MCH, and Community Health Nursing - they form the core of the exam.",
make_style("FinalNote", fontSize=10, fontName="Helvetica-Oblique",
textColor=DARK_BLUE, alignment=TA_CENTER, spaceBefore=6)))
story.append(Paragraph(
"CHO Exam Study Guide | NHM India | July 2026 Edition",
footer_style))
# โโโ BUILD โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/cho-study-guide && python generate_cho_guide.py 2>&1
ls -lh /home/daytona/workspace/cho-study-guide/CHO_Exam_Study_Guide.pdf
CHO Exam Study Guide
PDF Document ยท PDF
| # | Chapter | Content |
|---|---|---|
| 1 | Exam Overview & Pattern | State-wise table (UP, MP, RJ, MH, Bihar, GJ, PB, HR, CG, OD), eligibility |
| 2 | Anatomy & Physiology | CVS, Respiratory, Reproductive, all key systems summary table |
| 3 | Community Health Nursing | Levels of care, epidemiology terms, disease prevention levels, env. health |
| 4 | Maternal & Child Health | ANC visits, stages of labour, full UIP immunization schedule, IMNCI, MUAC |
| 5 | National Health Programmes | RMNCH+A, JSY, JSSK, PMMVY, RBSK, NTEP, NVBDCP, NLEP, NACP, NPCDCS, HWC 12 services |
| 6 | Medical-Surgical Nursing | TB, Diabetes, Malaria, Dengue management table + pharmacology basics |
| 7 | Midwifery & Gynecology | Pregnancy complications table, family planning methods |
| 8 | Mental Health | NMHP, DMHP, common disorders, medications |
| 9 | Nutrition | Deficiency diseases table, dietary requirements by age/group |
| 10 | Microbiology & Infection Control | Sterilization methods table, BMW color coding, universal precautions |
| 11 | Health Statistics | All key health indicators with current India values, census facts |
| 12 | Quick Revision | 18 must-know exam facts in bullet form |
| 13 | Mock MCQs | 10 practice questions with highlighted correct answers |
| 14 | Study Plan & Tips | 30-day week-by-week plan, exam day strategy |
Cho exam maharashtra study guidelines
Maharashtra CHO exam syllabus 2025 2026 NHM AROGYA detailed topics
https://www.pw.live/nursing/exams/maharashtra-cho-syllabus
~/cho-study-guide/generate_mh_cho_guide.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
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
# โโโ Colors โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
SAFFRON = colors.HexColor("#FF6F00") # Maharashtra saffron
DARK_SAFFRON= colors.HexColor("#E65100")
MAROON = colors.HexColor("#880E4F")
DARK_BLUE = colors.HexColor("#1B3A6B")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#E3F2FD")
GREEN = colors.HexColor("#2E7D32")
LIGHT_GREEN = colors.HexColor("#E8F5E9")
ORANGE_LIGHT= colors.HexColor("#FFF3E0")
LIGHT_GRAY = colors.HexColor("#F5F5F5")
MID_GRAY = colors.HexColor("#BDBDBD")
WHITE = colors.white
DARK_TEXT = colors.HexColor("#212121")
TEAL = colors.HexColor("#00695C")
PURPLE = colors.HexColor("#4A148C")
PURPLE_LIGHT= colors.HexColor("#F3E5F5")
OUTPUT = "/home/daytona/workspace/cho-study-guide/MH_CHO_Exam_Study_Guide.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Maharashtra CHO Exam Study Guide",
author="NHM Maharashtra CHO Preparation",
)
W, H = A4
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
# Styles
body = S("body", fontSize=10, fontName="Helvetica", textColor=DARK_TEXT, leading=15, spaceBefore=2, spaceAfter=2, alignment=TA_JUSTIFY)
bullet_s = S("bullet_s", fontSize=10, fontName="Helvetica", textColor=DARK_TEXT, leading=14, leftIndent=14, spaceBefore=1, spaceAfter=1)
sec_h = S("sec_h", fontSize=13, fontName="Helvetica-Bold", textColor=DARK_BLUE, spaceBefore=10, spaceAfter=4)
sub_h = S("sub_h", fontSize=11, fontName="Helvetica-Bold", textColor=TEAL, spaceBefore=8, spaceAfter=3)
note_s = S("note_s", fontSize=9.5, fontName="Helvetica-Oblique", textColor=colors.HexColor("#555555"), leading=13, leftIndent=10, spaceBefore=4, spaceAfter=4)
footer_s = S("footer_s", fontSize=8, fontName="Helvetica", textColor=MID_GRAY, alignment=TA_CENTER)
cover_h = S("cover_h", fontSize=30, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER, spaceAfter=6)
cover_sub = S("cover_sub", fontSize=15, fontName="Helvetica", textColor=colors.HexColor("#FFE0B2"), alignment=TA_CENTER, spaceAfter=4)
cover_info = S("cover_info", fontSize=11, fontName="Helvetica", textColor=WHITE, alignment=TA_CENTER, spaceAfter=3)
def chapter_header(title, subtitle=""):
rows = [[Paragraph(title, S("ch_h", fontSize=17, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_LEFT, leftIndent=8))]]
if subtitle:
rows.append([Paragraph(subtitle, S("ch_s", fontSize=10, fontName="Helvetica",
textColor=colors.HexColor("#FFE0B2"), alignment=TA_LEFT, leftIndent=8))])
t = Table(rows, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), SAFFRON),
("TOPPADDING", (0,0), (-1,-1), 9), ("BOTTOMPADDING", (0,0), (-1,-1), 9),
("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 1.5, DARK_SAFFRON),
]))
return t
def info_box(text, bg=LIGHT_BLUE, border=MED_BLUE, bold_color=DARK_BLUE):
t = Table([[Paragraph(text, S("ib", fontSize=10, fontName="Helvetica",
textColor=bold_color, leading=14))]], colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, border),
("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12),
]))
return t
def key_box(points, title="Key Points", hdr_color=TEAL):
rows = [[Paragraph(f"<b>{title}</b>", S("kph", fontSize=10.5,
fontName="Helvetica-Bold", textColor=WHITE))]]
for p in points:
rows.append([Paragraph(f"โข {p}", S("kp", fontSize=9.5,
fontName="Helvetica", textColor=DARK_BLUE, leading=14))])
t = Table(rows, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), hdr_color),
("BACKGROUND", (0,1), (-1,-1), LIGHT_GREEN),
("BOX", (0,0), (-1,-1), 1, hdr_color),
("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def tbl(headers, rows, col_widths=None):
cw = col_widths or ([(W - 3.6*cm) / len(headers)] * len(headers))
data = [[Paragraph(f"<b>{h}</b>", S("th", fontSize=9.5,
fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), S("td", fontSize=9,
fontName="Helvetica", textColor=DARK_TEXT, leading=13)) for c in row])
t = Table(data, colWidths=cw)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_GRAY, WHITE]),
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
return t
def sp(n=1): return Spacer(1, n * 5)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=MID_GRAY, spaceAfter=4)
story = []
# โโโโโโโโโโ COVER PAGE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cover_rows = [
[Paragraph("NHM Maharashtra", S("cl1", fontSize=13, fontName="Helvetica",
textColor=colors.HexColor("#FFE0B2"), alignment=TA_CENTER))],
[Paragraph("Community Health Officer", cover_h)],
[Paragraph("(CHO) Exam", cover_h)],
[Spacer(1, 6)],
[HRFlowable(width="70%", thickness=2.5, color=WHITE, spaceAfter=8)],
[Paragraph("Maharashtra-Specific Study Guide", cover_sub)],
[Spacer(1, 12)],
[Paragraph("Exam Pattern | Detailed Syllabus | Topic-wise Notes", cover_info)],
[Paragraph("NHM Programs | Mock MCQs | 30-Day Plan | Exam Tips", cover_info)],
[Spacer(1, 20)],
[Paragraph("100 MCQs | No Negative Marking | Bilingual (Marathi + English)", S("ci2",
fontSize=10, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER))],
[Spacer(1, 20)],
[Paragraph("July 2026 Edition", S("ed", fontSize=9, fontName="Helvetica",
textColor=colors.HexColor("#FFCC80"), alignment=TA_CENTER))],
]
cover_t = Table(cover_rows, colWidths=[W - 3.6*cm])
cover_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), SAFFRON),
("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 20), ("RIGHTPADDING", (0,0), (-1,-1), 20),
("BOX", (0,0), (-1,-1), 3, DARK_SAFFRON),
]))
story.append(Spacer(1, 50))
story.append(cover_t)
story.append(sp(3))
story.append(Paragraph(
"For GNM / B.Sc. Nursing / Post Basic B.Sc. Nursing candidates applying to NHM Maharashtra",
S("cf", fontSize=10, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#546E7A"), alignment=TA_CENTER)))
story.append(PageBreak())
# โโโโโโโโโโ TABLE OF CONTENTS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Table of Contents"))
story.append(sp(2))
toc_items = [
("1", "MH CHO Exam Pattern & Eligibility", "3"),
("2", "Section 1: Health Subjects (60 Marks)", "4"),
("3", "Child Health", "4"),
("4", "Maternal Health", "5"),
("5", "Adolescent Health", "6"),
("6", "Family Planning", "6"),
("7", "Communicable Diseases", "7"),
("8", "Non-Communicable Diseases (NCDs)", "8"),
("9", "Nutrition", "9"),
("10","Mental Health", "9"),
("11","Skill-Based, Referral & Emergency", "10"),
("12","Elderly & Palliative Care + Oral/ENT", "10"),
("13","Section 2: General Knowledge (20 Marks)", "11"),
("14","Section 3: NHM Programs (20 Marks)", "12"),
("15","High-Yield Facts & Quick Revision", "14"),
("16","Maharashtra-Specific Facts", "14"),
("17","Mock MCQs (30 Questions)", "15"),
("18","30-Day Study Plan & Exam Tips", "17"),
]
toc_data = [[
Paragraph(f"<b>{no}.</b>", S("tn", fontSize=11, fontName="Helvetica-Bold", textColor=DARK_BLUE)),
Paragraph(title, S("toc", fontSize=11, fontName="Helvetica", textColor=DARK_BLUE, leading=20, leftIndent=10)),
Paragraph(f"<b>{pg}</b>", S("tp", fontSize=11, fontName="Helvetica-Bold",
textColor=SAFFRON, alignment=TA_CENTER)),
] for no, title, pg in toc_items]
toc_t = Table(toc_data, colWidths=[1.2*cm, W - 3.6*cm - 1.2*cm - 1.5*cm, 1.5*cm])
toc_t.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_GRAY, WHITE]),
("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
]))
story.append(toc_t)
story.append(PageBreak())
# โโโโโโโโโโ CH 1: EXAM PATTERN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 1: MH CHO Exam Pattern & Eligibility", "NHM Maharashtra 2026"))
story.append(sp(2))
story.append(tbl(
["Exam Component", "Details"],
[
["Exam Type", "Online Objective Test (Computer-Based Test - CBT)"],
["Total Questions", "100 MCQs"],
["Total Marks", "100 Marks (1 mark per question)"],
["Duration", "2 Hours (120 minutes)"],
["Negative Marking", "No negative marking"],
["Language", "Bilingual - Marathi and English"],
["Qualifying Marks", "Minimum 45 marks (45%)"],
["Syllabus Source", "NHSRC Delhi recommended syllabus"],
["Exam Centre", "Across Maharashtra districts"],
],
[5*cm, 10*cm]
))
story.append(sp(3))
story.append(Paragraph("Mark Distribution by Section", sec_h))
story.append(tbl(
["Section", "Topics", "Questions", "Marks", "Weightage"],
[
["Section 1", "Health Subjects (15 topic areas)", "60", "60", "60%"],
["Section 2", "General Knowledge", "20", "20", "20%"],
["Section 3", "NHM Programme-related", "20", "20", "20%"],
["", "TOTAL", "100","100","100%"],
],
[2.5*cm, 6.5*cm, 2.5*cm, 2*cm, 2.5*cm]
))
story.append(sp(3))
story.append(Paragraph("Eligibility Criteria", sec_h))
story.append(tbl(
["Criteria", "Details"],
[
["Educational Qualification", "GNM (General Nursing & Midwifery) OR B.Sc. Nursing OR Post Basic B.Sc. Nursing"],
["Registration", "Valid Maharashtra Nursing Council (MNC) registration"],
["Age Limit", "18-38 years (relaxation for SC/ST/OBC/VJNT/SBC as per Maharashtra rules)"],
["Domicile", "Maharashtra state domicile preferred"],
["Certificate", "Certificate Programme in Community Health (CPHC by IGNOU) - mandatory before joining"],
],
[5*cm, 10*cm]
))
story.append(sp(2))
story.append(key_box([
"MOST important: No negative marking - attempt ALL 100 questions",
"Bilingual paper (Marathi + English) - read in your comfortable language",
"Minimum qualifying marks = 45 out of 100",
"Merit list is based on written test score + educational qualifications",
"CHO is posted at Health and Wellness Centres (HWCs) at sub-centre level",
], title="Important Exam Facts"))
story.append(PageBreak())
# โโโโโโโโโโ CH 2-12: SECTION 1 HEALTH SUBJECTS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Section 1: Health Subjects (60 Marks)", "15 Topic Areas - Most Important Section"))
story.append(sp(2))
story.append(info_box(
"<b>Exam Strategy:</b> Section 1 carries 60% of total marks. "
"Master these 15 areas to secure at least 40-45 marks from this section alone."
))
story.append(sp(2))
# CHILD HEALTH
story.append(Paragraph("1. Child Health", sec_h))
story.append(tbl(
["Topic", "Key Points to Study"],
[
["IMNCI", "Integrated Management of Neonatal & Childhood Illness; danger signs; classification and treatment"],
["Newborn Care", "KMC (Kangaroo Mother Care), resuscitation, thermoregulation, exclusive breastfeeding"],
["Growth & Development", "Milestones (motor, language, social); growth charts; MUAC tape; weight-for-height"],
["Malnutrition", "SAM (MUAC <11.5 cm), MAM (11.5-12.5 cm); RUTF, NRC protocol, F75/F100"],
["Immunization", "Full UIP schedule; cold chain; AEFI management"],
["Child Diseases", "Diarrhea (ORS+Zinc), ARI (IMNCI classification), malaria, anemia, worm infestation"],
["Disability", "Autism, ADHD, hearing loss, vision loss, cognitive impairment - RBSK screening"],
["Hematology", "Leukemia basics, hypovolemic shock in children, HIV in children, cellular therapy basics"],
["Cardiomyopathy", "Basic understanding of pediatric cardiac conditions"],
],
[4*cm, 11*cm]
))
story.append(sp(2))
for line in [
"APGAR score: Assessed at 1 and 5 min; 7-10 = Normal; 4-6 = Moderate distress; 0-3 = Severe distress",
"LBW (Low Birth Weight) = <2500 g; VLBW = <1500 g; ELBW = <1000 g",
"Exclusive breastfeeding for 6 months; complementary feeding starts at 6 months",
"Colostrum must be given within 1 hour of birth - rich in IgA, antibodies, nutrients",
"Vitamin A megadose: 1 lakh IU at 9 months; 2 lakh IU every 6 months from 12-59 months",
"RBSK (Rashtriya Bal Swasthya Karyakram): Screens for 4Ds - Defects, Deficiencies, Diseases, Developmental delays",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(3))
# MATERNAL HEALTH
story.append(Paragraph("2. Maternal Health", sec_h))
story.append(tbl(
["Topic", "Key Points"],
[
["ANC (Antenatal Care)", "Minimum 4 ANC visits; first before 12 weeks; H&W, BP, weight, fundal height, fetal heartbeat"],
["Postnatal Care", "PNC at 48 hrs, 1 week, 6 weeks; check for PPH, infection, breastfeeding, contraception"],
["Hypertension in Pregnancy", "PIH: BP >140/90; Pre-eclampsia: HTN + Proteinuria; Eclampsia: + Convulsions (give MgSO4)"],
["Anemia in Pregnancy", "Hb <11 g/dL in pregnancy; IFA 180 tablets during pregnancy + 180 days postpartum"],
["HIV in Pregnancy", "PPTCT (Prevention of Parent-to-Child Transmission); ART to mother and neonate"],
["Malaria in Pregnancy", "High-risk group; use IPTp (Intermittent Preventive Treatment in Pregnancy) where applicable"],
["Preterm Birth", "<37 weeks gestation; risk factors: PIH, multiple pregnancy, infection; KMC for preterm babies"],
["PPH", "Postpartum Hemorrhage: >500 mL blood loss; Oxytocin 10 IU IM immediately after birth (AMTSL)"],
["Perinatal Mental Health", "Postpartum depression; baby blues; psychosis - refer to psychiatry if needed"],
["Respectful Maternity Care", "Rights of pregnant woman; no verbal/physical abuse in facilities"],
["Family Planning linkage", "Counsel during ANC/PNC about spacing methods (IUCD, pills) and permanent methods"],
],
[4.5*cm, 10.5*cm]
))
story.append(sp(2))
story.append(info_box(
"<b>AMTSL (Active Management of 3rd Stage of Labour):</b> Oxytocin 10 IU IM within 1 min of delivery + "
"Controlled cord traction + Uterine massage. This prevents PPH. CHOs must know this protocol."
))
story.append(PageBreak())
# ADOLESCENT HEALTH
story.append(Paragraph("3. Adolescent Health", sec_h))
for line in [
"Adolescent age group: 10-19 years (WHO); SABLA scheme targets 11-18 year girls",
"RKSK (Rashtriya Kishor Swasthya Karyakram): Comprehensive adolescent health programme",
"Adolescent-Friendly Health Services (AFHS): 1 day/week dedicated session at HWC",
"WIFS (Weekly Iron and Folic Acid Supplementation): Weekly IFA for adolescent girls AND boys (6-19 yrs in school)",
"Menstrual hygiene: Kishori Shakti Yojana, free sanitary napkins in schools",
"ARSH clinics: Adolescent Reproductive and Sexual Health - confidential services",
"Key issues: Anemia, malnutrition, early marriage, teen pregnancy, substance abuse, mental health",
"Menarche counselling, reproductive health education part of HWC responsibilities",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(3))
# FAMILY PLANNING
story.append(Paragraph("4. Family Planning", sec_h))
story.append(tbl(
["Method", "Type", "Key Facts for Exam"],
[
["Copper-T (Cu-T 380A)", "Intrauterine", "10-year protection; insert within 48 hrs or after 6 weeks postpartum; CHO can insert"],
["OCP", "Hormonal (oral)", "Start Day 1-5 of cycle; 99%+ effective; not for lactating women in first 6 months"],
["POP (Progestin-only)", "Hormonal (oral)", "Safe for breastfeeding mothers; start at 6 weeks postpartum"],
["DMPA", "Injectable", "Every 3 months; Depo-Provera; irregular bleeding common; delay return to fertility"],
["Male condom", "Barrier", "Only method protecting against STIs; 85-98% effective; promote in NACP"],
["Tubectomy (Minilap)", "Permanent", "Female sterilization; <48 hrs or >6 weeks after delivery; Laparoscopic also used"],
["Vasectomy", "Permanent", "Male sterilization; simpler, safer, less complication than tubectomy"],
["Emergency Pill", "Post-coital", "Levonorgestrel 1.5 mg within 72 hours; Ella (ulipristal) within 5 days"],
],
[3.5*cm, 2.5*cm, 9*cm]
))
story.append(sp(2))
story.append(key_box([
"CHO's role: Counsel on all family planning methods, provide condoms, OCPs, DMPA",
"CHOs CAN insert IUCD after training - this is a high-yield topic",
"Family planning targets: India aims for TFR of 2.1 (replacement level)",
"MTP (Medical Termination of Pregnancy): Legal up to 20 weeks; 24 weeks for special cases",
], title="CHO and Family Planning"))
story.append(PageBreak())
# COMMUNICABLE DISEASES
story.append(Paragraph("5. Communicable Diseases", sec_h))
story.append(tbl(
["Disease", "Causative Agent", "Mode of Transmission", "Key Management / Prevention"],
[
["Tuberculosis (TB)", "Mycobacterium tuberculosis", "Airborne (droplet nuclei)",
"NTEP: DOTS, Nikshay portal, DSTB 6 months, DRTB 18-24 months; Nikshay Poshan Yojana"],
["Malaria", "Plasmodium (P.vivax, P.falciparum)", "Anopheles mosquito bite",
"Rapid diagnostic test (RDT), ACT treatment, LLIN, IRS, case notification"],
["Dengue", "Dengue virus (Aedes mosquito)", "Aedes aegypti mosquito",
"No specific treatment; IV fluids, platelet monitoring; no aspirin; vector control"],
["HIV/AIDS", "Human Immunodeficiency Virus", "Sexual contact, blood, mother-to-child",
"ICTC testing, ART, PPTCT, condom promotion; CD4 count monitoring"],
["Cholera", "Vibrio cholerae", "Fecal-oral (contaminated water/food)",
"ORS, IV fluids; Doxycycline; safe water, sanitation"],
["Typhoid", "Salmonella typhi", "Fecal-oral (contaminated food/water)",
"Ciprofloxacin/Azithromycin; Widal test; typhoid vaccine; hygiene"],
["Hepatitis B", "HBV (virus)", "Blood, sexual, mother-to-child",
"Hepatitis B vaccine (3 doses); birth dose essential; HBsAg screening in ANC"],
["Leprosy", "Mycobacterium leprae", "Prolonged contact (respiratory)",
"MDT: PB-6 months (2 drugs), MB-12 months (3 drugs); NLEP programme"],
["Filariasis", "Wuchereria bancrofti", "Culex mosquito bite",
"MDA (Mass Drug Administration): DEC + Albendazole annually in endemic districts"],
["Kala-azar (VL)", "Leishmania donovani", "Sandfly bite",
"Liposomal Amphotericin B; IRS; elimination target for Maharashtra"],
],
[3*cm, 3.5*cm, 3.5*cm, 5*cm]
))
story.append(PageBreak())
# NCDs
story.append(Paragraph("6. Non-Communicable Diseases (NCDs)", sec_h))
story.append(info_box(
"<b>NPCDCS:</b> National Programme for Prevention and Control of Cancer, Diabetes, CVD and Stroke - "
"population-based screening at HWC for all persons 30 years and above."
))
story.append(sp(2))
story.append(tbl(
["NCD", "Screening Criteria / Risk Factors", "CHO's Role at HWC"],
[
["Hypertension", "BP >140/90 mmHg; risk: obesity, salt, smoking, family history",
"Measure BP; initiate treatment; refer uncontrolled HTN; lifestyle counselling"],
["Type 2 Diabetes", "FPG >126 mg/dL; PPBG >200 mg/dL; risk: obesity, family history",
"Blood glucose testing; refer for diagnosis; metformin initiation; diet counselling"],
["Oral Cancer", "Tobacco use, smoking; white/red patches in mouth",
"Mouth examination; visual inspection; refer suspicious lesions"],
["Cervical Cancer", "HPV infection; multiple partners; VIA/VILI screening",
"VIA (Visual Inspection with Acetic Acid) screening; refer positive cases"],
["Breast Cancer", "CBE (Clinical Breast Examination); age >30, family history",
"Teach BSE (Breast Self-Examination); perform CBE; refer lumps"],
["COPD/Asthma", "Smoking, air pollution, occupational exposure",
"Spirometry referral; inhalers; avoid triggers; refer for diagnosis"],
],
[2.5*cm, 5.5*cm, 7*cm]
))
story.append(sp(2))
for line in [
"HWC screens ALL adults 30+ years for HTN, Diabetes, and 3 cancers (oral, cervical, breast)",
"VIA screening: Apply 5% acetic acid on cervix; acetowhite = positive = refer for colposcopy",
"CBE: Clinical Breast Examination - to be performed for all women 30-60 years at HWC",
"NPCDCS: Covers Cancer, Diabetes, CVD, Stroke; screening + treatment + IEC",
"Tobacco cessation: NicoRette (NRT), Bupropion, Varenicline; motivational counselling",
"NTCP (National Tobacco Control Programme): 85% pictorial warning on tobacco products",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(PageBreak())
# NUTRITION
story.append(Paragraph("7. Nutrition", sec_h))
story.append(tbl(
["Deficiency", "Disease", "Signs", "Prevention / Treatment"],
[
["Vitamin A", "Night blindness / Xerophthalmia", "Bitot spots, corneal ulcer, keratomalacia", "Vit A capsule (megadose); diet - carrots, eggs"],
["Iron", "Iron Deficiency Anemia (IDA)", "Pallor, koilonychia, fatigue, Hb <12 g/dL", "IFA tablets; green leafy vegetables; WIFS"],
["Iodine", "Goitre / Cretinism", "Enlarged thyroid; intellectual disability", "Iodized salt; testing by iodine kit"],
["Vitamin D", "Rickets / Osteomalacia", "Bow legs, bone pain, tetany, delayed dentition", "Sunlight; Vit D supplementation"],
["Vitamin C", "Scurvy", "Bleeding gums, perifollicular haemorrhage", "Citrus fruits, amla; Vit C supplements"],
["Protein", "Kwashiorkor", "Edema, pot belly, moon face, skin lesions", "RUTF, high-protein diet, NRC admission"],
["Protein+Energy", "Marasmus", "Severe wasting, loose skin, thin, alert", "RUTF, F75, F100, graduated refeeding"],
["Zinc", "Growth retardation, diarrhea", "Poor wound healing, taste changes", "Zinc 10-20 mg for 14 days in diarrhea"],
],
[2.5*cm, 3*cm, 3.5*cm, 6*cm]
))
story.append(sp(2))
story.append(key_box([
"Poshan Abhiyan (PM POSHAN Mission): Reduce stunting, wasting, LBW, and anemia",
"POSHAN Targets: Reduce stunting by 2%/yr; wasting by 2%/yr; anemia in children 6-59 months by 3%/yr",
"MUAC (Mid-Upper Arm Circumference): <11.5 cm = SAM (Red); 11.5-12.5 = MAM (Yellow); >12.5 = Normal (Green)",
"Anganwadi worker provides: Supplementary nutrition, growth monitoring, pre-school education, nutrition counselling",
"Breastfeeding: Initiate within 1 hour; exclusive for 6 months; continue up to 2 years with complementary food",
], title="Nutrition Key Points"))
story.append(PageBreak())
# MENTAL HEALTH
story.append(Paragraph("8. Mental Health", sec_h))
story.append(tbl(
["Condition", "Key Features", "CHO's Role"],
[
["Depression", "Persistent sadness >2 wks, anhedonia, sleep/appetite changes, suicidal thoughts",
"Screen with PHQ-9; basic counselling; refer to DMHP; ensure medication compliance"],
["Anxiety Disorders","Excessive worry, palpitations, sweating, avoidance behavior",
"Psychoeducation; relaxation techniques; refer for CBT/medications"],
["Schizophrenia", "Hallucinations, delusions, disorganized speech, negative symptoms",
"Ensure antipsychotic compliance; family counselling; refer to DMHP"],
["Substance Abuse", "Alcohol, tobacco, drugs; CAGE questionnaire for alcohol screening",
"Brief intervention; de-addiction referral; NRT for tobacco; naltrexone for alcohol"],
["Postpartum Depression", "Sadness, crying, inability to care for baby after childbirth",
"Screen at PNC visits (Edinburgh Postnatal Depression Scale); refer psychiatry"],
["Suicide", "Suicidal ideation, plan, attempt; risk factors: depression, substance abuse",
"Direct assessment (SLAP); safety planning; emergency referral; no means access"],
],
[3.5*cm, 4.5*cm, 7*cm]
))
story.append(sp(2))
for line in [
"NMHP: National Mental Health Programme - launched 1982; DMHP (District Mental Health Programme) from 1996",
"DMHP services: Outpatient, inpatient, day care, emergency, community outreach, rehabilitation",
"MANODARPAN: GoI initiative for mental health support for students",
"iCALL: TISS-run helpline for mental health (9152987821)",
"Mental Health Act 2017: Rights-based; decriminalized suicide; advance directives; supported decision-making",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(PageBreak())
# SKILL-BASED / REFERRAL / EMERGENCY
story.append(Paragraph("9. Skill-Based Questions, Referral Linkage & Emergency Services", sec_h))
story.append(Paragraph("Skills the CHO Must Know:", sub_h))
for line in [
"IUCD insertion and removal",
"Subcutaneous and intramuscular injections; IV cannulation (basic)",
"Wound dressing and bandaging",
"Blood pressure measurement (manual sphygmomanometer)",
"Blood glucose measurement (glucometer)",
"Haemoglobin estimation (Sahli's method / digital Hb meter)",
"Urine dipstick testing for glucose, protein, ketones",
"VIA (Visual Inspection with Acetic Acid) for cervical cancer screening",
"Basic obstetric emergencies: PPH management, eclampsia - MgSO4 protocol",
"Nebulization; oxygen administration; bag-valve-mask resuscitation",
"Basic Life Support (BLS) / CPR",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Referral Linkage System:", sub_h))
story.append(tbl(
["Condition / Situation", "Refer To", "Transport"],
[
["SAM (Severe Acute Malnutrition)", "NRC (Nutrition Rehabilitation Centre) at CHC/DH", "108 Ambulance if critical"],
["High-risk pregnancy", "PHC / CHC with specialist", "108 Ambulance"],
["Eclampsia (seizures)", "FRU (First Referral Unit) / District Hospital", "Emergency - 108 immediately"],
["TB (suspected)", "PHC for sputum AFB / CBNAAT", "Routine referral"],
["Mental illness (acute)", "DMHP / District Hospital psychiatry", "With family support"],
["Stroke / Heart attack", "District Hospital / Cath lab", "108 Ambulance - URGENT"],
["Child with danger signs (IMNCI)", "PHC / CHC OPD", "108 or private vehicle"],
],
[5*cm, 5.5*cm, 4.5*cm]
))
story.append(sp(3))
# ELDERLY & PALLIATIVE / ORAL & ENT
story.append(Paragraph("10. Elderly & Palliative Care + Oral / ENT Health", sec_h))
story.append(tbl(
["Area", "Key Topics"],
[
["Elderly Health (NPHCE)", "National Programme for Health Care of Elderly; geriatric OPD weekly at PHC; 4 regional geriatric centres; home visits for bedridden elderly"],
["Palliative Care", "End-of-life care; pain management (WHO analgesic ladder - Step 1 non-opioid, Step 2 weak opioid, Step 3 strong opioid); opioid policy; psychosocial support"],
["Oral Health", "Daily brushing x2; dental caries prevention; fluoride toothpaste; tobacco cessation; school dental screening"],
["ENT Health", "Ear wax removal; basic audiometry; tympanometry referral; tonsillitis; sinusitis; nasal polyps - refer to specialist"],
["Eye Health", "Cataract screening (BCR - Cataract Blindness Rate); school eye screening; referral to eye camp/hospital"],
],
[3.5*cm, 11.5*cm]
))
story.append(PageBreak())
# โโโโโโโโโโ SECTION 2: GK โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Section 2: General Knowledge (20 Marks)", "Current Affairs, Maharashtra & India"))
story.append(sp(2))
story.append(tbl(
["Sub-area", "Key Topics to Revise"],
[
["Maharashtra Geography", "Districts (36), divisions (6 + Mumbai city); Vidarbha, Marathwada, Konkan; major rivers (Godavari, Krishna, Tapi)"],
["Maharashtra History", "Chhatrapati Shivaji Maharaj; Maratha Empire; Babasaheb Ambedkar; Maharashtra formation (1 May 1960)"],
["Maharashtra Government", "Current CM, Governor; state legislature structure; Zila Parishad, Gram Panchayat structure"],
["Health Infrastructure MH", "NHM Maharashtra; MAHATMA JYOTIBA PHULE JAN AROGYA YOJANA (state health insurance scheme)"],
["India - General", "Constitution basics; Fundamental Rights; DPSP; Preamble; Articles related to health (Article 47, 21)"],
["Current Affairs", "Recent government schemes, Union Budget health allocations, WHO updates, new vaccines/drugs approved in India"],
["Science & Technology", "Basic biology, chemistry; recent space missions (ISRO); health technology (digital health ID - ABHA)"],
["Computer Knowledge", "MS Office basics, internet, email, health data entry; e-Sanjeevani (telemedicine platform for HWC)"],
],
[4.5*cm, 10.5*cm]
))
story.append(sp(2))
story.append(key_box([
"Mahatma Jyotiba Phule Jan Arogya Yojana (MJPJAY): Maharashtra's state health insurance; Rs.1.5 lakh per family per year; includes PM-JAY",
"Maharashtra state capital: Mumbai (commercial), Nagpur (winter session of legislature)",
"Maharashtra has 36 districts, 6 revenue divisions",
"e-Sanjeevani: National telemedicine platform - used at HWCs; teleconsultation with specialists",
"ABHA (Ayushman Bharat Health Account): 14-digit digital health ID for every Indian citizen",
"Article 47 (DPSP): State's duty to raise nutritional levels and improve public health",
], title="High-Priority GK for MH CHO Exam"))
story.append(PageBreak())
# โโโโโโโโโโ SECTION 3: NHM PROGRAMS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Section 3: NHM Programme-Related (20 Marks)", "Highest Return-on-Investment Section"))
story.append(sp(2))
story.append(info_box(
"<b>Exam Tip:</b> 20 questions directly from NHM programmes. Memorize full forms, "
"cash incentives, targets, and the CHO's specific role in each programme."
))
story.append(sp(2))
story.append(Paragraph("Ayushman Bharat", sec_h))
story.append(tbl(
["Programme", "Full Form / Description", "Key Facts"],
[
["PM-JAY", "Pradhan Mantri Jan Arogya Yojana",
"Rs.5 lakh health cover per family per year; 40 crore beneficiaries; cashless at empanelled hospitals"],
["HWC", "Health and Wellness Centre",
"Sub-centre upgraded to HWC; CHO is in-charge; 12 service packages; 1.5 lakh HWCs planned by 2022 (Ayushman Bharat)"],
["CPHC", "Comprehensive Primary Health Care",
"Delivered at HWC; preventive + promotive + curative + rehabilitative; e-Sanjeevani teleconsultation"],
],
[2*cm, 5*cm, 8*cm]
))
story.append(sp(2))
story.append(Paragraph("RMNCH+A Programmes", sec_h))
story.append(tbl(
["Scheme", "Full Form", "Benefit / Key Feature"],
[
["JSY", "Janani Suraksha Yojana",
"Cash incentive for institutional delivery: LPS = Rs.1400 rural, Rs.1000 urban; HPS = Rs.700 rural, Rs.600 urban; ASHA gets Rs.600 LPS, Rs.400 HPS"],
["JSSK", "Janani Shishu Suraksha Karyakram",
"Free: delivery, C-section, drugs, diagnostics, diet, blood transfusion, transport for pregnant women and sick newborns up to 30 days"],
["PMMVY", "Pradhan Mantri Matru Vandana Yojana",
"Rs.5000 maternity benefit in 3 installments for first live birth; eligible: registered pregnancy, ANC check-up, immunization of child"],
["KSSY", "Kshay Sampoorna Suraksha Yojana",
"Maharashtra-specific TB scheme; nutritional support + additional incentives; Rs.500/month to TB patients (in addition to Nikshay)"],
["RBSK", "Rashtriya Bal Swasthya Karyakram",
"Mobile Health Teams screen 0-18 years at schools and Anganwadis for 4Ds; 30 conditions; refer to DEIC"],
["SABLA", "Scheme for Adolescent Girls / KISHORI",
"For 11-18 year girls; nutrition, IFA, health check-up, life skills, vocational training through AWC"],
["PMSMA", "Pradhan Mantri Surakshit Matritva Abhiyan",
"Free ANC on 9th of every month at government facilities; specialist examination (OBG, physician)"],
],
[2*cm, 5*cm, 8*cm]
))
story.append(sp(2))
story.append(Paragraph("Disease Control & Other Key Programmes", sec_h))
story.append(tbl(
["Programme", "Full Form", "Target / Strategy"],
[
["NTEP", "National Tuberculosis Elimination Programme",
"Elimination by 2025; DSTB: 6-month DOTS; DRTB: 18-24 months; Nikshay Poshan Yojana Rs.500/month; Universal Drug Sensitivity Testing"],
["NVBDCP", "National Vector Borne Disease Control Programme",
"Controls malaria, dengue, chikungunya, filariasis, kala-azar, JE; IRS + LLIN + larval source management"],
["NLEP", "National Leprosy Eradication Programme",
"MDT-PB 6 months; MDT-MB 12 months; Grade-2 disability target <1/million; SPARSH Leprosy Awareness Campaign"],
["NACP", "National AIDS Control Programme",
"100% condom programme; ICTC (Integrated Counselling & Testing); ART; PPTCT; targeted interventions for HRGs"],
["NPCDCS", "National Programme for Cancer, Diabetes, CVD, Stroke",
"Population screening 30+ yrs; Lifestyle modification; drugs at HWC; NCD Clinic at CHC/DH"],
["NMHP", "National Mental Health Programme",
"DMHP in all districts; treatment gap reduction; community awareness; integration at PHC/HWC level"],
["NPHCE", "National Programme for Health Care of Elderly",
"Geriatric OPD weekly at PHC; 8 regional centres; home visits; day care for elderly"],
["NPCB+VI", "National Programme for Control of Blindness + Visual Impairment",
"Cataract operations; school eye screening; corneal transplantation; trachoma control"],
],
[2*cm, 5.5*cm, 7.5*cm]
))
story.append(sp(2))
story.append(Paragraph("ASHA and ANM - Key Roles", sec_h))
story.append(tbl(
["Worker", "Selection & Norm", "Key Responsibilities"],
[
["ASHA",
"Village-level; 1 per 1000 rural population; selected by Gram Sabha; minimum 8th class pass",
"Community mobilization; accompany pregnant women for ANC, delivery; JSY incentive; household surveys; IFA distribution; newborn home visits"],
["ANM (Auxiliary Nurse Midwife)",
"Sub-centre level; covers 5000 population; 2-year ANM course",
"ANC, immunization, family planning, deliveries at sub-centre; disease surveillance; health education"],
["CHO",
"Health and Wellness Centre; GNM/BSc Nursing; 6-month CPHC certificate",
"Manages HWC; 12 service packages; teleconsultation via e-Sanjeevani; NPCDCS screening; supervisory role over ASHA/ANM"],
],
[2*cm, 4.5*cm, 8.5*cm]
))
story.append(PageBreak())
# โโโโโโโโโโ QUICK REVISION โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 15-16: High-Yield Facts & Maharashtra Specifics"))
story.append(sp(2))
story.append(Paragraph("Must-Know Numbers & Facts", sec_h))
facts = [
"Sub-centre: 1 per 5000 rural (3000 hilly/tribal); 1 ANM + 1 MPW",
"PHC: 1 per 30,000 rural (20,000 hilly/tribal); 1 Medical Officer + supporting staff",
"CHC: 1 per 1,20,000 population; 30 beds; 4 specialists (Surgeon, OBG, Physician, Pediatrician)",
"ASHA: 1 per 1000 rural; incentive-based; not salary; JSY incentive Rs.600 (LPS rural)",
"BCG: Intradermal, 0.05 mL (<1 yr), right upper arm; BCG scar = proof of vaccination",
"OPV 0 (Birth dose): Within 24 hours of birth; prevents vaccine-derived poliovirus",
"Pentavalent vaccine: DPT + HepB + Hib (5-in-1); given at 6, 10, 14 weeks",
"Measles-Rubella (MR): Replaced measles vaccine in UIP from 2017",
"PCV (Pneumococcal Conjugate Vaccine): Prevents bacterial pneumonia; in UIP since 2017",
"Rotavirus vaccine: Prevents severe diarrhea in children; 3 doses at 6, 10, 14 weeks",
"IPV (Inactivated Polio Vaccine): Added to UIP; 2 doses (6 and 14 weeks) along with OPV",
"Cold chain: Vaccines at 2-8 deg C (ILR/Deep Freezer); only OPV at -20 deg C",
"ORS composition: Na 75, Cl 65, Glucose 75, K 20, Citrate 10 mmol/L; osmolarity 245 mOsm/L",
"WHO 5 Moments of Hand Hygiene: Before patient contact, before aseptic procedure, after body fluid exposure, after patient contact, after touching patient environment",
"BMI: <18.5 = Underweight; 18.5-24.9 = Normal; 25.0-29.9 = Overweight; >/= 30.0 = Obese",
"Malaria RDT: HRP2 antigen test for P.falciparum; pLDH for P.vivax; result in 20 min",
"IMNCI danger signs (2 months-5 years): Unable to drink/breastfeed, vomits everything, convulsions, lethargic/unconscious",
"VIA positive = acetowhite area on cervix after applying 5% acetic acid; refer to colposcopy",
"Integrated Disease Surveillance Programme (IDSP): Weekly reporting; S (syndromic), P (probable), L (lab confirmed)",
]
for f in facts:
story.append(Paragraph(f"โข {f}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Maharashtra-Specific Facts", sec_h))
mh_facts = [
"MJPJAY: Mahatma Jyotiba Phule Jan Arogya Yojana - Rs.1.5 lakh per family; 972 procedures covered; statewide",
"Maharashtra Arogya Vibhag (Health Dept) + NHM Maharashtra jointly recruit CHOs",
"Rajiv Gandhi Jeevandayee Arogya Yojana (RGJAY): Predecessor to MJPJAY",
"Maharashtra has 36 districts; Mumbai, Pune, Nagpur are major urban health hubs",
"Thane, Palghar tribal areas: Higher malnutrition; more NRC centres; ITDP support",
"Tribal districts (Gadchiroli, Nandurbar): Higher IMR, MMR - priority focus of NHM Maharashtra",
"Pune (NIV): National Institute of Virology - for disease surveillance and outbreak investigation",
"Maharashtra state language: Marathi; exam paper is bilingual (Marathi + English)",
"Health Minister, Maharashtra: check latest before exam",
"SNDT Women's University, Pune: Prominent B.Sc. Nursing institution in Maharashtra",
]
for f in mh_facts:
story.append(Paragraph(f"โข {f}", bullet_s))
story.append(PageBreak())
# โโโโโโโโโโ MOCK MCQs โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 17: Mock MCQs (30 Practice Questions)", "Maharashtra CHO Pattern"))
story.append(sp(2))
mcqs = [
("1. The MH CHO exam is conducted in which language(s)?",
["A. English only", "B. Hindi and English", "C. Marathi and English", "D. Marathi only"],
"C. Marathi and English"),
("2. What is the minimum qualifying marks for MH CHO exam?",
["A. 35 marks", "B. 40 marks", "C. 45 marks", "D. 50 marks"],
"C. 45 marks"),
("3. How many questions are from NHM programme-related topics?",
["A. 10", "B. 15", "C. 20", "D. 25"],
"C. 20"),
("4. Which scheme provides Rs.5000 maternity benefit for first live birth?",
["A. JSY", "B. JSSK", "C. PMMVY", "D. SABLA"],
"C. PMMVY"),
("5. MJPJAY provides health coverage of how much per family per year in Maharashtra?",
["A. Rs.50,000", "B. Rs.1 lakh", "C. Rs.1.5 lakh", "D. Rs.5 lakh"],
"C. Rs.1.5 lakh"),
("6. CHO manages which facility under Ayushman Bharat?",
["A. Primary Health Centre", "B. Community Health Centre",
"C. Health and Wellness Centre", "D. District Hospital"],
"C. Health and Wellness Centre"),
("7. MUAC of 10.8 cm in a 2-year-old child indicates:",
["A. Normal", "B. Mild malnutrition", "C. MAM", "D. SAM"],
"D. SAM"),
("8. Which vaccine is stored at -20 degrees Celsius?",
["A. BCG", "B. DPT", "C. OPV", "D. Hepatitis B"],
"C. OPV"),
("9. What is given first in AMTSL to prevent PPH?",
["A. Misoprostol orally", "B. Ergometrine IV", "C. Oxytocin 10 IU IM within 1 minute of delivery", "D. Manual removal of placenta"],
"C. Oxytocin 10 IU IM within 1 minute of delivery"),
("10. Which programme screens 30+ year adults for NCDs at HWC?",
["A. NRHM", "B. NPCDCS", "C. SABLA", "D. NMHP"],
"B. NPCDCS"),
("11. VIA stands for:",
["A. Visual Inspection of Anus", "B. Visual Inspection with Acetic Acid",
"C. Vital Index Assessment", "D. Vaginal Inspection Approach"],
"B. Visual Inspection with Acetic Acid"),
("12. WIFS programme provides weekly IFA to:",
["A. Pregnant women only", "B. Children under 5",
"C. Adolescent boys and girls in schools", "D. Lactating mothers"],
"C. Adolescent boys and girls in schools"),
("13. National Tuberculosis Elimination Programme targets elimination by which year?",
["A. 2022", "B. 2025", "C. 2030", "D. 2035"],
"B. 2025"),
("14. Nikshay Poshan Yojana provides TB patient with:",
["A. Rs.300/month", "B. Rs.500/month", "C. Rs.1000/month", "D. Rs.1500/month"],
"B. Rs.500/month"),
("15. RBSK screens children for '4Ds' - which is NOT one of the 4Ds?",
["A. Defects at birth", "B. Deficiencies", "C. Deformities in adults", "D. Developmental delays"],
"C. Deformities in adults"),
("16. Exclusive breastfeeding is recommended for:",
["A. 3 months", "B. 4 months", "C. 6 months", "D. 12 months"],
"C. 6 months"),
("17. 'Bitot spots' are associated with deficiency of which vitamin?",
["A. Vitamin D", "B. Vitamin B12", "C. Vitamin C", "D. Vitamin A"],
"D. Vitamin A"),
("18. ASHA receives how much incentive for facilitating institutional delivery in rural LPS state?",
["A. Rs.200", "B. Rs.400", "C. Rs.600", "D. Rs.1000"],
"C. Rs.600"),
("19. Which telemedicine platform is used at Health and Wellness Centres?",
["A. Aarogya Setu", "B. e-Sanjeevani", "C. CoWIN", "D. NHA portal"],
"B. e-Sanjeevani"),
("20. MDT for Multibacillary (MB) Leprosy is given for how long?",
["A. 3 months", "B. 6 months", "C. 9 months", "D. 12 months"],
"D. 12 months"),
("21. The APGAR score is normally assessed at:",
["A. 1 and 10 minutes", "B. 1 and 5 minutes", "C. 2 and 5 minutes", "D. 5 and 10 minutes"],
"B. 1 and 5 minutes"),
("22. Which article of the Indian Constitution deals with state duty to improve public health?",
["A. Article 21", "B. Article 32", "C. Article 47", "D. Article 51A"],
"C. Article 47"),
("23. Colostrum should ideally be given to newborn within:",
["A. 30 minutes of birth", "B. 1 hour of birth", "C. 2 hours of birth", "D. 6 hours of birth"],
"B. 1 hour of birth"),
("24. Emergency contraceptive pill (Levonorgestrel 1.5 mg) is effective up to:",
["A. 24 hours", "B. 48 hours", "C. 72 hours", "D. 5 days"],
"C. 72 hours"),
("25. WHO 5 Moments of Hand Hygiene does NOT include:",
["A. Before patient contact", "B. After touching patient surroundings",
"C. Before going to toilet", "D. Before aseptic procedure"],
"C. Before going to toilet"),
("26. In Maharashtra, how many districts are there?",
["A. 30", "B. 33", "C. 36", "D. 38"],
"C. 36"),
("27. DMHP (District Mental Health Programme) was launched in year:",
["A. 1982", "B. 1990", "C. 1996", "D. 2005"],
"C. 1996"),
("28. Which colour bag is used for sharps (needles) in BMW management?",
["A. Yellow", "B. Red", "C. White/translucent", "D. Blue"],
"C. White/translucent"),
("29. Pentavalent vaccine is a combination of how many antigens?",
["A. 3", "B. 4", "C. 5", "D. 6"],
"C. 5"),
("30. The 12 service packages at HWC are provided under which programme?",
["A. RNTCP", "B. NPCDCS", "C. Ayushman Bharat - CPHC", "D. NVBDCP"],
"C. Ayushman Bharat - CPHC"),
]
for q_text, options, answer in mcqs:
story.append(KeepTogether([
Paragraph(f"<b>{q_text}</b>", S("qt", fontSize=10, fontName="Helvetica-Bold",
textColor=DARK_BLUE, spaceBefore=8, spaceAfter=3)),
*[Paragraph(f" {opt}", S(f"opt{opt[0]}", fontSize=9.5,
fontName="Helvetica-Bold" if opt == answer else "Helvetica",
textColor=GREEN if opt == answer else DARK_TEXT,
leading=13, leftIndent=18)) for opt in options],
Paragraph(f"<i>Ans: {answer}</i>", S("ans", fontSize=9,
fontName="Helvetica-Oblique", textColor=GREEN,
leftIndent=18, spaceBefore=2, spaceAfter=5)),
]))
story.append(PageBreak())
# โโโโโโโโโโ STUDY PLAN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(chapter_header("Chapter 18: 30-Day Study Plan & Exam Tips"))
story.append(sp(2))
story.append(tbl(
["Week", "Focus Topics", "Daily Target", "Resources"],
[
["Week 1\n(Days 1-7)",
"Section 1: Child Health, Maternal Health, Adolescent Health\nBasics of human body (anatomy & physiology)",
"3-4 hrs study\n50 MCQs daily\nRevise notes",
"K.P. Nair Community Health Nursing\nIGNOU CPHC material"],
["Week 2\n(Days 8-14)",
"Family Planning, Communicable Diseases\nNCDs, Nutrition, Mental Health",
"4 hrs study\n75 MCQs daily\nFlash cards",
"Marlow Pediatric Nursing\nNHM programme guidelines"],
["Week 3\n(Days 15-21)",
"Section 3: All NHM Programmes (deep revision)\nSkill-based, Emergency, Referral",
"4 hrs study\n50 NHP MCQs\nPrevious year papers",
"NHM India official website\nPrevious year MH CHO papers"],
["Week 4\n(Days 22-30)",
"Section 2: GK, Maharashtra facts, current affairs\nFull mock tests, weak area revision",
"2 full mock tests/day\nRevise highlighted notes\nTimed practice",
"Newspaper (Hindu/Loksatta)\nMH Govt. health website"],
],
[2.5*cm, 5.5*cm, 3.5*cm, 4.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Top 10 Exam Day Tips", sec_h))
tips = [
"Arrive 30 minutes early with Admit Card + 1 original photo ID (Aadhar, passport, etc.)",
"No negative marking - ATTEMPT ALL 100 QUESTIONS; never leave blank",
"Read question TWICE before selecting an answer; watch for 'EXCEPT', 'NOT', 'MOST appropriate'",
"High-confidence questions first (Section 1 - nursing); then Section 3 (NHM) then Section 2 (GK)",
"Time per question: 120 min / 100 Q = 1.2 minutes max; don't spend more than 2 min on any question",
"For NHM questions: focus on cash amounts, full forms, target groups",
"For disease management questions: default CHO action is REFER if serious; treat if within CHO scope",
"Choose Marathi version of paper if more comfortable - saves reading time",
"Flag doubtful questions and revisit - don't change answers unless you're very sure",
"Stay hydrated; carry water and a small snack for the break (if any); avoid stress",
]
for i, tip in enumerate(tips, 1):
story.append(Paragraph(f"{i}. {tip}", bullet_s))
story.append(sp(3))
story.append(key_box([
"Best books: K.P. Nair (Community Health Nursing), Annamma Jacob (Clinical Nursing Procedures), Marlow (Pediatric Nursing)",
"NHM programmes: Read official MoHFW / NHM.gov.in pages for correct incentive amounts",
"Previous year MH CHO papers: Best single resource; available on Telegram and NPrep / Toppersexam",
"Practice at least 500-1000 MCQs total before exam day",
"Join MH CHO WhatsApp/Telegram groups for last-minute notifications and NHM Maharashtra updates",
], title="Recommended Resources for MH CHO"))
story.append(sp(3))
story.append(hr())
story.append(Paragraph(
"Yash Mila! All the best for your Maharashtra CHO exam. "
"Consistent daily practice, revision of NHM programmes, and mastery of CHO-specific skills "
"will ensure your success in the NHM Maharashtra CHO recruitment.",
S("fn", fontSize=10, fontName="Helvetica-Oblique",
textColor=DARK_BLUE, alignment=TA_CENTER, spaceBefore=6)))
story.append(sp(2))
story.append(Paragraph(
"MH CHO Exam Study Guide | NHM Maharashtra | July 2026 Edition",
footer_s))
# โโโ BUILD โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/cho-study-guide && python generate_mh_cho_guide.py 2>โฆ
ls -lh /home/daytona/workspace/cho-study-guide/MH_CHO_Exam_Study_Guide.pdf
MH CHO Exam Study Guide
PDF Document ยท PDF
| Section | Content |
|---|---|
| Exam Pattern | CBT online, 100 MCQs, 100 marks, 2 hours, no negative marking, bilingual (Marathi+English), min. 45 marks to qualify |
| Mark Split | Section 1: Health Subjects 60 marks - Section 2: GK 20 marks - Section 3: NHM Programs 20 marks |
| Section 1 (60 marks) | All 15 topic areas: Child Health, Maternal Health, Adolescent Health, Family Planning, Communicable Diseases, NCDs, Nutrition, Mental Health, Skill-based, Referral, Emergency, Elderly, Palliative, Oral, ENT |
| Section 2 (20 marks) | Maharashtra geography, history, MJPJAY, Indian Constitution (Articles 21, 47), current affairs, e-Sanjeevani, ABHA |
| Section 3 (20 marks) | All NHM programs with full forms, cash incentives, targets - JSY, JSSK, PMMVY, NTEP, NVBDCP, NACP, NPCDCS, HWC 12 packages, ASHA/ANM/CHO roles |
| Maharashtra Facts | MJPJAY, 36 districts, tribal areas (Gadchiroli, Nandurbar), Pune NIV, state-specific schemes |
| Mock MCQs | 30 Maharashtra-pattern practice questions with highlighted correct answers |
| Study Plan | 30-day week-wise plan with resources, daily targets, and 10 exam-day tips |
Public health topics for maharastra cho exam
Maharashtra CHO exam public health topics epidemiology community health nursing syllabus 2025 2026
https://nprep.in/blogs/mh-cho-exam-pattern-and-detailed-syllโฆ
| Section | Area | Marks |
|---|---|---|
| Section 1 - Topic 1 | Basic Concepts of Public Health | ~8-10 Qs |
| Section 1 - Topics 7 & 8 | Communicable + Non-Communicable Diseases | ~10-12 Qs |
| Section 3 | NHM Programmes (public health delivery) | 20 Qs |
Public Health concepts (directly + indirectly) influence 40-45 out of 100 marks. This is the single most important area.
| Level | Definition | Examples |
|---|---|---|
| Primordial | Prevent risk factors from emerging in society | Policies against tobacco ads, junk food |
| Primary | Prevent disease before it occurs | Vaccination, hand washing, safe water |
| Secondary | Early detection + prompt treatment | Screening (VIA, CBE, BP check), DOTS |
| Tertiary | Limit disability, promote rehabilitation | Physiotherapy, prosthetics, support groups |
| Indicator | Formula | India Value |
|---|---|---|
| Crude Birth Rate (CBR) | Live births / 1000 population/year | ~18 |
| Crude Death Rate (CDR) | Deaths / 1000 population/year | ~6 |
| Infant Mortality Rate (IMR) | Deaths <1 yr / 1000 live births | ~28 (SRS 2020) |
| Maternal Mortality Ratio (MMR) | Maternal deaths / 1,00,000 live births | ~97 (SRS 2018-20) |
| Total Fertility Rate (TFR) | Avg. children per woman | ~2.0 |
| Under-5 Mortality Rate (U5MR) | Deaths <5 yrs / 1000 live births | ~32 |
| Life Expectancy at Birth | Years from birth | ~70 years |
| Neonatal Mortality Rate | Deaths <28 days / 1000 live births | ~20 |
| Facility | Population Norm (Plain) | Population Norm (Hilly/Tribal) | Staff |
|---|---|---|---|
| Sub-centre | 5,000 | 3,000 | 1 ANM + 1 MPW |
| PHC | 30,000 | 20,000 | 1 MO + 14 staff |
| CHC | 1,20,000 | 80,000 | 4 specialists, 30 beds |
| District Hospital | Per district | - | Full specialist team |
| HWC (Ayushman Bharat) | Upgraded sub-centre | - | CHO is in-charge |
| Term | Definition | Example |
|---|---|---|
| Endemic | Constant presence of disease in a region | Malaria in certain tribal areas |
| Epidemic | More cases than normally expected | Dengue outbreak in Mumbai |
| Pandemic | Epidemic spread worldwide | COVID-19 (2020) |
| Sporadic | Irregular, occasional cases, no clear pattern | Rabies |
| Outbreak | Two or more cases linked in time and place | Food poisoning at a wedding |
| Rate | Formula |
|---|---|
| Attack rate | New cases / Population at risk ร 100 |
| Case Fatality Rate (CFR) | Deaths due to disease / Cases of disease ร 100 |
| Proportional Mortality Rate | Deaths due to a cause / Total deaths ร 100 |
| Crude Death Rate | Total deaths / Mid-year population ร 1000 |
| Study Type | Direction | Use | Example |
|---|---|---|---|
| Cross-sectional (survey) | Snapshot | Prevalence; hypothesis generation | NFHS |
| Case-control | Retrospective | Rare diseases; identify risk factors | Smoking and lung cancer |
| Cohort | Prospective | Incidence; causation | Framingham Heart Study |
| RCT | Experimental | Test interventions | Vaccine trials |
| Ecological | Population level | Correlation | Air pollution & COPD rates |
| Disease | Incubation Period |
|---|---|
| Cholera | 6 hours - 5 days |
| Typhoid | 3 - 60 days (usually 10-14 days) |
| Malaria (P.vivax) | 12-17 days |
| Malaria (P.falciparum) | 7-14 days |
| Dengue | 3-14 days |
| Hepatitis A | 15-50 days |
| HIV | Weeks to years (acute: 2-4 weeks) |
| Tuberculosis | Weeks to years (primary: 4-12 weeks) |
| Mode | Examples | Prevention |
|---|---|---|
| Airborne | TB, measles, varicella | Ventilation, masks, isolation |
| Droplet | Influenza, COVID-19 | Distance >1 m, mask |
| Fecal-oral | Cholera, typhoid, hepatitis A, polio | Safe water, sanitation, hand washing |
| Vector-borne | Malaria (Anopheles), dengue (Aedes), filaria (Culex) | Mosquito control, LLIN, IRS |
| Contact (direct) | Leprosy, STIs, impetigo | Personal hygiene, condoms |
| Blood-borne | HIV, HBV, HCV | Safe injection, blood screening |
| Vertical (mother-to-child) | HIV, HBV, syphilis | PPTCT, ART, screening |
| Zoonotic | Rabies, leptospirosis, brucellosis | Animal control, protective gear |
| Parameter | Permissible Limit |
|---|---|
| TDS (Total Dissolved Solids) | < 500 mg/L |
| Turbidity | < 1 NTU |
| pH | 6.5 - 8.5 |
| Residual chlorine (at consumer end) | 0.2 mg/L |
| Coliform count | Zero (indicator of fecal contamination) |
| BMW Bag Color | Waste Type | Disposal |
|---|---|---|
| Yellow | Anatomical waste, soiled items, expired drugs | Incineration / deep burial |
| Red | Contaminated recyclables (IV sets, syringes without needle) | Autoclaving + shredding |
| White (translucent) | Sharps (needles, blades, glass) | Needle cutter + puncture-proof pit |
| Blue | Glassware, metallic body implants | Autoclaving + shredding |
| Method | Type | Temperature / Details | Use |
|---|---|---|---|
| Autoclave | Sterilization | 121ยฐC, 15 psi, 15-20 min | Surgical instruments, dressings |
| Dry heat oven | Sterilization | 160ยฐC for 1 hr / 170ยฐC 45 min | Glassware, oils, powders |
| Boiling | Disinfection | 100ยฐC for 20 min | Utensils, rubber items |
| 2% Glutaraldehyde | High-level disinfection | 20 min immersion | Endoscopes |
| 1% Bleach / NaOCl | Disinfection | Chlorine-releasing | Floors, spillage, toilets |
| UV radiation (254 nm) | Sterilization | OT air, laminar flow | OT, labs |
| Source | Content |
|---|---|
| Census (every 10 years) | Population, literacy, sex ratio, housing |
| SRS (Sample Registration System) | Vital events (births, deaths, IMR, MMR) |
| NFHS (National Family Health Survey) | Health, nutrition, family planning indicators |
| NSSO / NSS | Morbidity, health expenditure surveys |
| Fact | Value |
|---|---|
| Winslow's definition year | 1920 |
| Alma-Ata Declaration year | 1978 |
| Ottawa Charter (Health Promotion) year | 1986 |
| "Health for All" goal set year | 1977 |
| IMR India (SRS 2020) | ~28 |
| MMR India (SRS 2018-20) | ~97 |
| Sub-centre population norm | 5,000 (plain); 3,000 (hilly) |
| PHC population norm | 30,000 (plain); 20,000 (hilly) |
| Residual chlorine at consumer end | 0.2 mg/L |
| Cold chain temperature for most vaccines | 2-8ยฐC |
| Only vaccine stored at -20ยฐC | OPV (Oral Polio Vaccine) |
| IDSP reporting levels | S (community), P (PHC), L (lab) |
| Epidemiology definition | Distribution + Determinants of health/disease in populations |
| Prevalence = | Incidence ร Duration |
| Case Fatality Rate = | Deaths / Cases ร 100 |
| John Snow's contribution | Removed pump handle - controlled cholera (first epidemiological intervention) |
| Ottawa Charter action areas | 5 (build policy, supportive env, community action, personal skills, reorient services) |
| Book | Use |
|---|---|
| Park's Textbook of Preventive & Social Medicine (K. Park) | Complete public health - the Bible for this section |
| K.P. Nair - Community Health Nursing | Nursing perspective on public health |
| NHSRC CPHC Training material (IGNOU) | CHO-specific community health modules |
| NHM Maharashtra + MoHFW official guidelines | NHM programme details (Section 3) |
G8vevpdf
~/cho-study-guide/generate_mh_cho_pubhealth.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
# โโโ Colors โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
SAFFRON = colors.HexColor("#FF6F00")
DARK_SAFFRON = colors.HexColor("#E65100")
DARK_BLUE = colors.HexColor("#1B3A6B")
MED_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#E3F2FD")
TEAL = colors.HexColor("#00695C")
LIGHT_TEAL = colors.HexColor("#E0F2F1")
GREEN = colors.HexColor("#2E7D32")
LIGHT_GREEN = colors.HexColor("#E8F5E9")
PURPLE = colors.HexColor("#4A148C")
PURPLE_LIGHT = colors.HexColor("#F3E5F5")
ORANGE_LIGHT = colors.HexColor("#FFF3E0")
RED_LIGHT = colors.HexColor("#FFEBEE")
RED = colors.HexColor("#C62828")
LIGHT_GRAY = colors.HexColor("#F5F5F5")
MID_GRAY = colors.HexColor("#BDBDBD")
WHITE = colors.white
DARK_TEXT = colors.HexColor("#212121")
AMBER = colors.HexColor("#FF8F00")
OUTPUT = "/home/daytona/workspace/cho-study-guide/MH_CHO_PublicHealth_Guide.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="MH CHO Public Health Study Guide",
author="NHM Maharashtra CHO Preparation",
)
W, H = A4
def S(name, **kw):
return ParagraphStyle(name, **kw)
body = S("body", fontSize=10, fontName="Helvetica", textColor=DARK_TEXT, leading=15, spaceBefore=2, spaceAfter=2, alignment=TA_JUSTIFY)
bullet_s = S("bul", fontSize=9.5, fontName="Helvetica", textColor=DARK_TEXT, leading=14, leftIndent=14, spaceBefore=1, spaceAfter=1)
sec_h = S("sec_h", fontSize=13, fontName="Helvetica-Bold", textColor=DARK_BLUE, spaceBefore=10, spaceAfter=4)
sub_h = S("sub_h", fontSize=11, fontName="Helvetica-Bold", textColor=TEAL, spaceBefore=8, spaceAfter=3)
mini_h = S("mini_h",fontSize=10, fontName="Helvetica-Bold", textColor=PURPLE, spaceBefore=6, spaceAfter=2)
footer_s = S("foot", fontSize=8, fontName="Helvetica", textColor=MID_GRAY, alignment=TA_CENTER)
cover_big = S("cb", fontSize=28, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER, spaceAfter=6)
cover_sub = S("cs", fontSize=14, fontName="Helvetica", textColor=colors.HexColor("#FFE0B2"), alignment=TA_CENTER, spaceAfter=4)
cover_inf = S("ci", fontSize=11, fontName="Helvetica", textColor=WHITE, alignment=TA_CENTER, spaceAfter=3)
def ch_hdr(title, subtitle="", color=SAFFRON):
rows = [[Paragraph(title, S("ch", fontSize=16, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_LEFT, leftIndent=8))]]
if subtitle:
rows.append([Paragraph(subtitle, S("chs", fontSize=9.5, fontName="Helvetica",
textColor=colors.HexColor("#FFE0B2"), alignment=TA_LEFT, leftIndent=8))])
t = Table(rows, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 9), ("BOTTOMPADDING", (0,0), (-1,-1), 9),
("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 1.5, DARK_SAFFRON),
]))
return t
def box(text, bg=LIGHT_BLUE, border=MED_BLUE):
t = Table([[Paragraph(text, S("bx", fontSize=9.5, fontName="Helvetica",
textColor=DARK_BLUE, leading=14))]], colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, border),
("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12),
]))
return t
def key_box(points, title="Key Points", hdr=TEAL, bg=LIGHT_TEAL):
rows = [[Paragraph(f"<b>{title}</b>", S("kph", fontSize=10, fontName="Helvetica-Bold", textColor=WHITE))]]
for p in points:
rows.append([Paragraph(f"โข {p}", S("kp", fontSize=9.5, fontName="Helvetica", textColor=DARK_BLUE, leading=13))])
t = Table(rows, colWidths=[W - 3.6*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), hdr),
("BACKGROUND", (0,1), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, hdr),
("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def tbl(headers, rows, col_widths=None):
cw = col_widths or ([(W - 3.6*cm) / len(headers)] * len(headers))
data = [[Paragraph(f"<b>{h}</b>", S("th", fontSize=9, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_CENTER)) for h in headers]]
for row in rows:
data.append([Paragraph(str(c), S("td", fontSize=9, fontName="Helvetica",
textColor=DARK_TEXT, leading=13)) for c in row])
t = Table(data, colWidths=cw)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_GRAY, WHITE]),
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
return t
def sp(n=1): return Spacer(1, n * 5)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=MID_GRAY, spaceAfter=4)
story = []
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# COVER
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cover_rows = [
[Paragraph("NHM Maharashtra | Community Health Officer", S("cl", fontSize=12,
fontName="Helvetica", textColor=colors.HexColor("#FFE0B2"), alignment=TA_CENTER))],
[Spacer(1, 8)],
[Paragraph("Public Health", cover_big)],
[Paragraph("Complete Study Guide", cover_big)],
[Spacer(1, 6)],
[HRFlowable(width="60%", thickness=2.5, color=WHITE, spaceAfter=8)],
[Paragraph("Based on Park's Textbook of Preventive & Social Medicine", cover_sub)],
[Spacer(1, 10)],
[Paragraph("Epidemiology | PHC | Disease Prevention | Environmental Health", cover_inf)],
[Paragraph("Health Promotion | Infection Control | Surveillance | Statistics", cover_inf)],
[Spacer(1, 16)],
[Paragraph("Section 1 + Section 3 Coverage | 100 High-Yield Facts | MCQ Practice", S("ci2",
fontSize=10, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER))],
[Spacer(1, 20)],
[Paragraph("July 2026 Edition", S("ed", fontSize=9, fontName="Helvetica",
textColor=colors.HexColor("#FFCC80"), alignment=TA_CENTER))],
]
cov_t = Table(cover_rows, colWidths=[W - 3.6*cm])
cov_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), SAFFRON),
("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 20), ("RIGHTPADDING", (0,0), (-1,-1), 20),
("BOX", (0,0), (-1,-1), 3, DARK_SAFFRON),
]))
story.append(Spacer(1, 45))
story.append(cov_t)
story.append(sp(3))
story.append(Paragraph(
"Reference: Park's Textbook of Preventive & Social Medicine (PSM) | "
"NHSRC CPHC Material | NHM Maharashtra Syllabus",
S("cf", fontSize=9, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#546E7A"), alignment=TA_CENTER)))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# TABLE OF CONTENTS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Table of Contents"))
story.append(sp(2))
toc = [
("1", "Basic Concepts of Public Health", "3"),
("2", "Primary Health Care (PHC) & Alma-Ata", "4"),
("3", "Epidemiology - Definitions & Study Designs", "5"),
("4", "Epidemiological Rates & Measures", "6"),
("5", "Disease Transmission & Control", "7"),
("6", "Environmental Health", "8"),
("7", "Immunization & Vaccines", "9"),
("8", "Health Promotion & Education", "10"),
("9", "Infection Control & Sterilization", "11"),
("10", "Surveillance, IDSP & Vital Statistics", "12"),
("11", "Occupational & School Health", "13"),
("12", "Health Indicators - India Data", "13"),
("13", "100 High-Yield Public Health Facts", "14"),
("14", "Mock MCQs - Public Health (30 Questions)", "16"),
]
toc_data = [[
Paragraph(f"<b>{no}.</b>", S("tn", fontSize=11, fontName="Helvetica-Bold", textColor=DARK_BLUE)),
Paragraph(t, S("tt", fontSize=11, fontName="Helvetica", textColor=DARK_BLUE, leading=20, leftIndent=10)),
Paragraph(f"<b>{p}</b>", S("tp", fontSize=11, fontName="Helvetica-Bold", textColor=SAFFRON, alignment=TA_CENTER)),
] for no, t, p in toc]
toc_t = Table(toc_data, colWidths=[1.2*cm, W - 3.6*cm - 2.7*cm, 1.5*cm])
toc_t.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [LIGHT_GRAY, WHITE]),
("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
]))
story.append(toc_t)
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 1: BASIC CONCEPTS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 1: Basic Concepts of Public Health", "Park's PSM - Core Definitions"))
story.append(sp(2))
story.append(box(
'<b>Winslow\'s Definition (1920):</b> "The science and art of preventing disease, prolonging life, '
'and promoting physical health and efficiency through organized community effort." '
'- This is the MOST cited definition in exams.'
))
story.append(sp(2))
story.append(Paragraph("WHO Definition of Health", sec_h))
story.append(Paragraph(
'"A state of complete physical, mental and social well-being, and not merely the absence of disease or infirmity." '
'(WHO, 1948). Later, spiritual health was added as a 4th dimension.',
body))
story.append(sp(2))
story.append(Paragraph("Spectrum of Health", sec_h))
story.append(tbl(
["State", "Description"],
[
["Positive health", "Optimal physical, mental, social functioning; 'Wellness'"],
["Better health", "Above average health; active and productive"],
["Freedom from sickness", "No symptoms; 'average' health"],
["Unrecognised sickness", "Subclinical disease - part of ICEBERG"],
["Mild illness", "Recognizable but minor symptoms"],
["Severe illness", "Significant symptoms, requires treatment"],
["Death", "End of spectrum"],
],
[4.5*cm, 10.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Determinants of Health", sec_h))
for line in [
"Biological factors: Age, sex, genetics, immune status, nutrition",
"Behavioural factors: Smoking, alcohol, diet, physical activity, sexual behaviour",
"Socioeconomic factors: Poverty, education, employment, social support",
"Environmental factors: Safe water, air quality, sanitation, housing",
"Health care services: Availability, accessibility, affordability, quality",
"Lifestyle factors: Stress, sleep, hygiene habits",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Levels of Prevention (Leavell & Clark)", sec_h))
story.append(tbl(
["Level", "Phase of Disease", "Definition", "Examples"],
[
["Primordial Prevention",
"Before risk factors exist in society",
"Prevent risk factors from emerging",
"Policies banning tobacco ads; urban planning; food labelling laws"],
["Primary Prevention",
"Pre-pathogenesis phase",
"Prevent disease before it occurs",
"Vaccination, hand washing, safe water, condom use, IFA tablets"],
["Secondary Prevention",
"Early pathogenesis",
"Early detection and prompt treatment",
"Screening (VIA, CBE, Hb, blood glucose); DOTS; contact tracing"],
["Tertiary Prevention",
"Late pathogenesis",
"Limit disability and rehabilitate",
"Physiotherapy, prosthetics, vocational rehab, support groups, palliative care"],
],
[3.5*cm, 3*cm, 3.5*cm, 5*cm]
))
story.append(sp(2))
story.append(Paragraph("Natural History of Disease (Leavell & Clark Model)", sec_h))
for line in [
"Phase 1 - Pre-pathogenesis: Agent-Host-Environment interact; NO disease yet; primary prevention window",
"Phase 2 - Pathogenesis: Disease begins; Early stage (subclinical) โ Advanced stage โ Outcome",
"Outcomes: Recovery / Disability / Death",
"ICEBERG phenomenon: Only visible tip = clinical cases; submerged = subclinical/carrier cases",
"Significance of iceberg: True burden of disease is MUCH higher than reported; important for surveillance",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Ecological Triad (Epidemiological Triangle)", sec_h))
story.append(tbl(
["Component", "Elements", "How to Attack"],
[
["Host", "Age, sex, race, immunity, nutrition, behaviour, genetics",
"Immunization, nutrition, health education, chemoprophylaxis"],
["Agent", "Biological (bacteria, virus, parasite, fungi)\nPhysical (heat, radiation, trauma)\nChemical (poisons, allergens)\nNutritional (deficiency/excess)",
"Treatment, elimination, pasteurisation, food safety"],
["Environment", "Physical: climate, geography, water, air\nBiological: vectors, reservoirs\nPsychosocial: crowding, poverty, stress",
"Sanitation, vector control, water treatment, poverty reduction"],
],
[2.5*cm, 6*cm, 6.5*cm]
))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 2: PRIMARY HEALTH CARE
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 2: Primary Health Care (PHC) & Alma-Ata Declaration"))
story.append(sp(2))
story.append(box(
'<b>Alma-Ata Declaration (1978, USSR):</b> International Conference on Primary Health Care. '
'Adopted "Health for All by 2000 AD" as global goal. '
'PHC = "Essential health care... universally accessible to individuals and families '
'in the community... at a cost the community can afford."'
))
story.append(sp(2))
story.append(Paragraph("8 Components of Primary Health Care (Alma-Ata)", sec_h))
components = [
("1", "Health education about prevailing health problems and methods of prevention and control"),
("2", "Promotion of food supply and proper nutrition"),
("3", "Adequate supply of safe water and basic sanitation"),
("4", "Maternal and child health care, including family planning"),
("5", "Immunization against major infectious diseases"),
("6", "Prevention and control of locally endemic diseases"),
("7", "Appropriate treatment of common diseases and injuries"),
("8", "Provision of essential drugs"),
]
comp_data = [[Paragraph(f"<b>{n}</b>", S("cn", fontSize=10, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
Paragraph(c, S("cd", fontSize=9.5, fontName="Helvetica", textColor=DARK_TEXT, leading=13))]
for n, c in components]
comp_t = Table(comp_data, colWidths=[1*cm, W - 3.6*cm - 1*cm])
comp_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), TEAL),
("ROWBACKGROUNDS", (1,0), (1,-1), [LIGHT_TEAL, WHITE]),
("BOX", (0,0), (-1,-1), 0.5, TEAL),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8), ("RIGHTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(comp_t)
story.append(sp(2))
story.append(Paragraph("India's Health Infrastructure (Population Norms)", sec_h))
story.append(tbl(
["Facility", "Plains Norm", "Hilly/Tribal Norm", "Staff", "CHO Role"],
[
["Sub-centre", "5,000", "3,000", "1 ANM + 1 MPW (M)", ""],
["PHC", "30,000", "20,000", "1 MO + 14 paramedical staff", ""],
["CHC", "1,20,000", "80,000", "4 Specialists + 30 beds", ""],
["District Hospital","Per district","", "Full specialist team", ""],
["HWC (Ayushman Bharat)", "Upgraded sub-centre", "-", "CHO is In-charge", "MANAGES HWC"],
],
[3.5*cm, 2.5*cm, 3*cm, 4.5*cm, 2.5*cm]
))
story.append(sp(2))
story.append(key_box([
"ASHA: 1 per 1000 rural population; village-level; incentive-based (not salaried)",
"ANM: Sub-centre level; 1 per 5000 population; 2-year diploma course",
"CHO: HWC level; GNM/BSc Nursing + CPHC certificate; in-charge of HWC",
"12 service packages at HWC under CPHC (Ayushman Bharat) - see previous guide",
"e-Sanjeevani: Telemedicine at HWC - connects CHO with specialist doctors",
"Declarations: Alma-Ata 1978 (PHC), Ottawa 1986 (Health Promotion), Astana 2018 (renewal of PHC)",
], title="PHC Key Points for MH CHO Exam"))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 3: EPIDEMIOLOGY
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 3: Epidemiology - Definitions & Study Designs"))
story.append(sp(2))
story.append(box(
'<b>Definition (Last, 1988):</b> "The study of the distribution and determinants of '
'health-related states or events in specified populations, and the application of this '
'study to the control of health problems."'
))
story.append(sp(2))
story.append(Paragraph("Core Epidemiological Terms", sec_h))
story.append(tbl(
["Term", "Definition", "Example"],
[
["Incidence", "Number of NEW cases occurring in a defined population during a defined time period", "100 new TB cases in Pune in 2025"],
["Prevalence", "ALL existing cases (new + old) at a point in time", "500 TB patients currently on treatment"],
["Point prevalence", "Cases at ONE specific moment in time", "Prevalence on Jan 1, 2025"],
["Period prevalence", "Cases during a defined period", "Cases during Jan-June 2025"],
["Attack rate", "New cases / population at risk x 100; used in outbreaks", "Food poisoning: 50 sick / 200 ate = 25%"],
["Incubation period", "Time between exposure and appearance of first symptoms", "Cholera: 6 hrs - 5 days"],
["Carrier", "Person infected but without symptoms; can transmit disease", "Typhoid carrier; HIV carrier"],
["Reservoir", "Natural habitat of an infectious agent (human, animal, environment)", "Humans = reservoir for TB"],
["Zoonosis", "Disease transmitted from animals to humans", "Rabies, leptospirosis, brucellosis"],
["Herd immunity", "Enough immune people in population to protect non-immune individuals", "Polio eradication strategy"],
],
[3.5*cm, 5.5*cm, 6*cm]
))
story.append(sp(2))
story.append(Paragraph("Disease Frequency Terms", sec_h))
story.append(tbl(
["Term", "Definition"],
[
["Endemic", "Disease constantly present at expected levels in a region (e.g., malaria in tribal Maharashtra)"],
["Epidemic", "Disease occurrence clearly in excess of normal expectancy in a defined community, region, or season"],
["Pandemic", "Epidemic that has spread across countries or continents, usually affecting large numbers (e.g., COVID-19)"],
["Sporadic", "Cases occurring irregularly without consistent pattern; no direct link between cases (e.g., tetanus)"],
["Outbreak", "Two or more linked cases in same time and place (smaller geographic area than epidemic)"],
["Hyperendemic", "Disease consistently high above what is expected (e.g., malaria in parts of Gadchiroli, Maharashtra)"],
],
[3*cm, 12*cm]
))
story.append(sp(2))
story.append(Paragraph("Types of Epidemiological Studies", sec_h))
story.append(tbl(
["Study Type", "Direction", "Key Use", "Example"],
[
["Cross-sectional (survey)", "Snapshot at one point", "Prevalence; hypothesis generation", "NFHS, malnutrition survey"],
["Case-control", "Retrospective (past)", "Rare diseases; identify risk factors", "Smoking & lung cancer"],
["Cohort", "Prospective (future)", "Incidence; causation; relative risk", "Smoking cohort followed for cancer"],
["RCT (Randomized Controlled Trial)", "Experimental", "Test interventions; gold standard", "Vaccine efficacy trial"],
["Ecological", "Population-level correlation", "Hypothesis; large trends", "Air pollution & COPD rates in cities"],
["Systematic Review / Meta-analysis", "Synthesis", "Strongest evidence; pooled results", "Cochrane reviews"],
],
[4*cm, 2.5*cm, 3.5*cm, 5*cm]
))
story.append(sp(2))
story.append(Paragraph("Important Incubation Periods", sec_h))
story.append(tbl(
["Disease", "Incubation Period", "Disease", "Incubation Period"],
[
["Cholera", "6 hrs - 5 days", "Hepatitis A", "15-50 days"],
["Typhoid", "3-60 days (usual 10-14)", "Hepatitis B", "45-180 days"],
["Malaria (P.vivax)", "12-17 days", "HIV (acute)", "2-4 weeks"],
["Malaria (P.falciparum)", "7-14 days", "Tuberculosis", "4-12 weeks"],
["Dengue", "3-14 days", "Rabies", "2-8 weeks (can be months)"],
["Measles", "10-12 days", "Chickenpox (VZV)", "14-21 days"],
["Mumps", "14-21 days", "Tetanus", "3-21 days"],
["Leprosy", "Months to years", "COVID-19", "2-14 days (usual 5 days)"],
],
[4*cm, 3*cm, 4*cm, 4*cm]
))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 4: RATES
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 4: Epidemiological Rates & Measures"))
story.append(sp(2))
story.append(Paragraph("Key Rates and Formulas", sec_h))
story.append(tbl(
["Rate / Measure", "Formula", "Multiplier", "India Value (Latest)"],
[
["Crude Birth Rate (CBR)", "Live births / mid-year population", "x 1000", "~18 (SRS)"],
["Crude Death Rate (CDR)", "Deaths / mid-year population", "x 1000", "~6"],
["Infant Mortality Rate (IMR)", "Deaths <1 year / live births", "x 1000", "~28 (SRS 2020)"],
["Neonatal Mortality Rate (NMR)", "Deaths <28 days / live births", "x 1000", "~20"],
["Post-neonatal Mortality Rate", "Deaths 28 days-1 year / live births", "x 1000", "~8"],
["Under-5 Mortality Rate (U5MR)", "Deaths <5 yrs / live births", "x 1000", "~32"],
["Maternal Mortality Ratio (MMR)","Maternal deaths / live births", "x 1,00,000","~97 (SRS 2018-20)"],
["Total Fertility Rate (TFR)", "Avg. children per woman in reproductive lifetime", "-", "~2.0"],
["Gross Reproduction Rate (GRR)", "Female babies per woman", "-", "~1.0"],
["Sex Ratio", "Females per 1000 males", "x 1000", "943 (Census 2011)"],
["Life Expectancy at Birth", "Expected years from birth", "-", "~70 years"],
["Attack Rate", "New cases / population at risk", "x 100", "Outbreak-specific"],
["Case Fatality Rate (CFR)", "Deaths from disease / cases of disease", "x 100", "COVID CFR ~1-2%"],
["Proportional Mortality Rate", "Deaths from cause / total deaths", "x 100", "CVD ~26% of deaths"],
["Prevalence", "Incidence x Average Duration of Disease", "-", "Relationship"],
],
[4.5*cm, 4.5*cm, 2*cm, 4*cm]
))
story.append(sp(2))
story.append(key_box([
"MMR = Maternal deaths per 1,00,000 LIVE BIRTHS (not total births)",
"IMR = Deaths under 1 year per 1000 LIVE BIRTHS (NOT total births)",
"Prevalence = Incidence x Duration - so chronic diseases have high prevalence",
"India's MMR target (SDG): <70 per 1,00,000 live births by 2030",
"India's U5MR SDG target: <25 per 1000 live births by 2030",
"Birth rate > Death rate = Population growth (India's NRR is declining toward 1.0)",
"TFR of 2.1 = Replacement level fertility (population stabilizes)",
], title="Must-Know Relationships & Targets"))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 5: DISEASE TRANSMISSION
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 5: Disease Transmission & Control"))
story.append(sp(2))
story.append(Paragraph("Chain of Infection", sec_h))
story.append(box(
"<b>Chain:</b> Agent โ Reservoir โ Portal of Exit โ Mode of Transmission โ Portal of Entry โ Susceptible Host\n"
"Breaking ANY link controls the disease. CHO's job = identify and break the WEAKEST link."
))
story.append(sp(2))
story.append(Paragraph("Modes of Transmission", sec_h))
story.append(tbl(
["Mode", "Mechanism", "Diseases", "Prevention"],
[
["Airborne", "Droplet nuclei (<5 microns) suspended in air; travel >1 m",
"TB, Measles, Chickenpox, COVID-19",
"Ventilation, N95 mask, isolation, UVGI"],
["Droplet", "Large droplets (>5 microns) that fall within 1 m",
"Influenza, Whooping cough, Mumps, Rubella",
"Surgical mask, 1-m distancing"],
["Fecal-oral", "Contaminated food, water, or hands ingested",
"Cholera, Typhoid, Hepatitis A, Polio, Diarrhea",
"Safe water, ORT, hand washing, food safety, sanitation"],
["Vector-borne (biological)", "Pathogen multiplies in vector before transmission",
"Malaria (Anopheles), Dengue (Aedes), Filaria (Culex), JE",
"LLIN, IRS, vector control, personal protection"],
["Vector-borne (mechanical)", "Vector carries pathogen on body surface without replication",
"Flies carrying typhoid, cholera",
"Fly control, food covering"],
["Direct contact", "Skin-to-skin or mucous membrane contact",
"Leprosy, Scabies, STIs, impetigo",
"Personal hygiene, condoms, early treatment"],
["Blood-borne", "Contact with infected blood or body fluids",
"HIV, HBV, HCV, Malaria (transfusion)",
"Safe injection, blood screening, universal precautions, PEP"],
["Vertical (MTCT)", "Mother-to-child during pregnancy, delivery, breastfeeding",
"HIV, HBV, Syphilis, Rubella",
"PPTCT, ART, VDRL screening, HBsAg screening in ANC"],
["Zoonotic", "Animal-to-human transmission",
"Rabies, Leptospirosis, Brucellosis, Anthrax",
"Animal control, vaccination (rabies), protective equipment"],
["Iatrogenic", "Through medical procedures",
"HIV, HBV, HCV via unsafe injections; SSI",
"Safe injection (1 needle, 1 syringe, 1 patient), BMW, asepsis"],
],
[2.5*cm, 3.5*cm, 3.5*cm, 5.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Disease Control Measures - Targeting the Triad", sec_h))
story.append(tbl(
["Target", "Method", "Examples"],
[
["Reservoir / Source", "Treatment of cases, isolation, quarantine, carrier treatment, disinfection",
"Isolate TB patients; treat malaria; screen contacts"],
["Mode of Transmission","Safe water, food hygiene, vector control, safe sex, safe injection",
"Chlorination; LLIN; condoms; single-use syringes"],
["Susceptible Host", "Immunization, chemoprophylaxis, nutrition, health education, PPE",
"Vaccines; IFA; ORS; BCG; hand washing"],
],
[3.5*cm, 5*cm, 6.5*cm]
))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 6: ENVIRONMENTAL HEALTH
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 6: Environmental Health", "Water, Air, Sanitation, Waste"))
story.append(sp(2))
story.append(Paragraph("Safe Drinking Water Standards (BIS / WHO)", sec_h))
story.append(tbl(
["Parameter", "Acceptable Limit", "Permissible Limit (No Alt.)", "Health Significance"],
[
["TDS (Total Dissolved Solids)", "< 500 mg/L", "< 2000 mg/L", "Taste, mineral excess"],
["Turbidity", "< 1 NTU", "< 5 NTU", "Indicator of contamination"],
["pH", "6.5 - 8.5", "6.5 - 8.5", "Corrosion / scaling"],
["Residual Chlorine (consumer)", "0.2 mg/L", "1.0 mg/L", "Disinfection effectiveness"],
["Fluoride", "< 1.0 mg/L", "< 1.5 mg/L", "> 1.5 causes dental fluorosis"],
["Nitrate", "< 45 mg/L", "< 45 mg/L", "Methaemoglobinaemia in infants"],
["Coliform bacteria", "ZERO / 100 mL", "ZERO", "Indicator of fecal contamination"],
["Arsenic", "< 0.01 mg/L", "< 0.05 mg/L", "Skin cancer; keratosis"],
],
[4*cm, 3*cm, 3.5*cm, 4.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Water Purification Methods", sec_h))
for line in [
"Boiling: Most effective domestic method; kills all pathogens; 1 min boil sufficient",
"Chlorination: Most practical large-scale method; bleaching powder or HTH; residual chlorine = 0.2 mg/L at consumer end",
"Slow sand filtration: Schmutzdecke (biological layer) removes 99% bacteria; no chemicals needed",
"Rapid sand filtration: Faster; used with coagulation (alum); less effective vs. bacteria - needs chlorination after",
"UV disinfection: Effective but no residual protection; used for small communities / HWC",
"Reverse Osmosis (RO): Removes all contaminants including dissolved salts; removes beneficial minerals too",
"Boil + cool + store in clean container: Recommended at household level for drinking water safety",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Air Pollution", sec_h))
story.append(tbl(
["Pollutant", "Source", "Health Effect"],
[
["PM2.5 (fine particles <2.5 microns)", "Vehicles, industries, crop burning", "Penetrates alveoli; most dangerous; lung cancer, CVD, COPD"],
["PM10 (coarse particles <10 microns)", "Dust, construction, roads", "Respiratory tract irritation; asthma"],
["Carbon monoxide (CO)", "Incomplete combustion, vehicle exhaust", "Binds Hb (carboxyHb); hypoxia; fatal in enclosed spaces"],
["SO2 (Sulphur dioxide)", "Coal burning, industries", "Acid rain; respiratory irritation; bronchospasm"],
["NO2 (Nitrogen dioxide)", "Vehicle exhaust, power plants", "Lung damage; contributes to smog and acid rain"],
["Lead (Pb)", "Leaded petrol (historical), batteries", "Neurotoxin; affects children's brain development"],
["Ozone (O3)", "Secondary pollutant from sunlight + NOx", "Respiratory irritant; eye irritation"],
],
[4.5*cm, 3.5*cm, 7*cm]
))
story.append(sp(2))
story.append(Paragraph("Sanitation & Excreta Disposal", sec_h))
for line in [
"Open defecation spreads: Diarrhea, cholera, typhoid, hepatitis A, polio, hookworm, roundworm",
"Swachh Bharat Mission (SBM): India declared ODF (Open Defecation Free) in 2019",
"Twin-pit pour flush latrine: Recommended; one pit fills while other decomposes",
"Septic tank: For urban areas; anaerobic digestion; effluent must be further treated",
"Biomedical waste (BMW Rules 2016): 4 categories - Yellow / Red / White / Blue bags",
"Health effects of poor sanitation: Diarrhea kills ~1.5 million children/year globally (preventable)",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 7: IMMUNIZATION
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 7: Immunization & Vaccines", "UIP - Universal Immunization Programme"))
story.append(sp(2))
story.append(Paragraph("Types of Immunity", sec_h))
story.append(tbl(
["Type", "Mechanism", "Onset", "Duration", "Example"],
[
["Active Natural", "Infection with pathogen", "Slow (weeks)", "Long (years/life)", "Measles infection"],
["Active Artificial", "Vaccination", "Slow (weeks)", "Long (years/life)", "DPT vaccine"],
["Passive Natural", "Maternal IgG across placenta; IgA in breast milk", "Immediate", "Short (weeks-months)", "Newborn immunity"],
["Passive Artificial","Injection of antibodies/antiserum","Immediate", "Short (weeks)", "Anti-tetanus serum (ATS), anti-rabies immunoglobulin"],
],
[3*cm, 3.5*cm, 2.5*cm, 3*cm, 4*cm]
))
story.append(sp(2))
story.append(Paragraph("Universal Immunization Programme (UIP) - Complete Schedule", sec_h))
story.append(tbl(
["Age", "Vaccines"],
[
["At Birth", "BCG (0.05 mL ID, right upper arm), OPV-0 (birth dose), Hepatitis B-1 (birth dose, IM)"],
["6 Weeks", "OPV-1, IPV-1 (IM, thigh), Pentavalent-1 (DPT+HepB+Hib), Rotavirus-1, PCV-1"],
["10 Weeks", "OPV-2, Pentavalent-2, Rotavirus-2, PCV-2"],
["14 Weeks", "OPV-3, IPV-2, Pentavalent-3, Rotavirus-3, PCV-3"],
["9-12 Months", "MR-1 (measles-rubella), JE-1 (endemic areas), Vitamin A 1st dose (1 lakh IU)"],
["16-24 Months", "DPT Booster-1, OPV Booster, MR-2, JE-2, Vitamin A 2nd dose (2 lakh IU)"],
["5-6 Years", "DPT Booster-2"],
["10 Years & 16 Years", "Td (Tetanus-diphtheria)"],
["Pregnant Women", "Td-1 (early pregnancy), Td-2 (4 weeks after Td-1) OR Td Booster (if vaccinated before)"],
],
[3.5*cm, 11.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Cold Chain for Vaccines", sec_h))
story.append(tbl(
["Level", "Equipment", "Temperature"],
[
["State store", "ILR (Ice-Lined Refrigerator), Deep Freezer", "+2 to +8 deg C / -20 deg C (for OPV)"],
["District / Divisional","ILR, Deep Freezer", "+2 to +8 deg C / -20 deg C"],
["PHC / Sub-centre", "ILR or cold box, icepacks", "+2 to +8 deg C"],
["Field (CHO / ANM)", "Vaccine carrier with ice packs", "+2 to +8 deg C during session"],
["ONLY OPV", "Deep Freezer", "-20 deg C (stored frozen)"],
],
[3.5*cm, 5.5*cm, 6*cm]
))
story.append(sp(2))
story.append(key_box([
"BCG: Only live bacterial vaccine in UIP; given ID 0.05 mL at birth; right upper arm; BCG scar = evidence",
"OPV: Only vaccine stored at -20 deg C (all others 2-8 deg C); oral route; 2 drops",
"Pentavalent = DPT + HepB + Hib (5 antigens in 1 injection) - reduces pain and visits",
"PCV: Protects against S. pneumoniae (bacterial pneumonia); reduces childhood pneumonia deaths",
"VVM (Vaccine Vial Monitor): Heat-sensitive label on each vial; discard if inner square = outer circle color",
"AEFI (Adverse Events Following Immunization): Must be reported; BCG can cause local abscess, Koch's phenomenon",
"Contraindication to ALL vaccines: Anaphylaxis to previous dose; severe acute illness",
"Mission Indradhanush: Catch-up immunization for children and pregnant women missed by UIP",
], title="Immunization High-Yield Points"))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 8: HEALTH PROMOTION & EDUCATION
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 8: Health Promotion & Education"))
story.append(sp(2))
story.append(Paragraph("Ottawa Charter (1986) - 5 Action Areas", sec_h))
story.append(tbl(
["Action Area", "Description", "Example"],
[
["Build healthy public policy", "Laws, taxes, regulations that support health", "Tobacco tax; helmet laws; food labelling"],
["Create supportive environments", "Safe, stimulating, satisfying living and working conditions", "Safe workplaces; clean air standards"],
["Strengthen community action", "Community empowerment; ownership of health", "Gram sabha health planning; ASHA selection"],
["Develop personal skills", "Health education; life skills; self-care ability", "Counselling; IEC; school health education"],
["Reorient health services", "Focus beyond curative - preventive + promotive", "HWC model; community outreach; ASHA"],
],
[4.5*cm, 4.5*cm, 6*cm]
))
story.append(sp(2))
story.append(Paragraph("KAP & Behaviour Change Models", sec_h))
for line in [
"KAP Study: Knowledge, Attitude, Practice - baseline assessment before any health education programme",
"Health Belief Model: People act if they perceive susceptibility, severity, benefits outweigh barriers",
"Stages of Change (Prochaska): Pre-contemplation โ Contemplation โ Preparation โ Action โ Maintenance",
"Motivational Interviewing: Non-judgmental, collaborative counselling for behaviour change",
"SBCC: Social and Behaviour Change Communication - used in NHM programmes (ASHA training)",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Health Education Methods", sec_h))
story.append(tbl(
["Level", "Method", "Audience Size", "CHO's Role"],
[
["Individual", "Counselling, home visit, bedside teaching", "1-1", "ANC counselling, RMNCH counselling, NCD counselling"],
["Group", "Health talks, demonstrations, discussions, role play", "5-30", "Village health & nutrition day (VHND), Gram Sabha health talks"],
["Mass / Community", "Posters, radio, TV, nukkad nataks, street plays, social media", "Large", "Coordinate IEC activities; display materials at HWC"],
],
[2.5*cm, 5*cm, 3*cm, 5.5*cm]
))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 9: INFECTION CONTROL
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 9: Infection Control & Sterilization"))
story.append(sp(2))
story.append(Paragraph("Sterilization vs. Disinfection", sec_h))
story.append(box(
"<b>Sterilization</b> = Destruction of ALL microorganisms including spores.\n"
"<b>Disinfection</b> = Destruction of MOST organisms (not spores) by physical or chemical means.\n"
"<b>Antiseptic</b> = Chemical applied to LIVING tissue (skin) to inhibit microorganism growth.\n"
"<b>Asepsis</b> = Preventing introduction of microorganisms into sterile body areas."
))
story.append(sp(2))
story.append(tbl(
["Method", "Type", "Temp / Details", "Time", "Use at HWC"],
[
["Autoclave (moist heat)", "Sterilization", "121 deg C, 15 psi", "15-20 min", "Surgical instruments, dressings"],
["Dry Heat Oven", "Sterilization", "160 deg C / 170 deg C", "60 / 45 min","Glassware, sharp instruments, oils"],
["Boiling (100 deg C)", "Disinfection", "100 deg C", "20 min", "Utensils, rubber gloves, syringes"],
["2% Glutaraldehyde", "High-level disinfection","Room temp", "20 min", "Endoscopes, heat-sensitive items"],
["0.5% NaOCl (Bleach)", "Intermediate disinfection","Freshly prepared", "30 min soak","Surfaces, blood spills, toilets"],
["1% Chlorhexidine", "Low-level disinfection","Skin antiseptic", "Contact time","Wound cleaning, hand rub"],
["Alcohol 70%", "Intermediate disinfection","Isopropyl or ethyl alcohol", "30 sec rub", "Skin antisepsis, thermometers"],
["UV radiation (254 nm)", "Sterilization (air/surface)","Low-pressure mercury lamp","30-60 min", "OT, labs, sterile rooms"],
["Formaldehyde (formalin)","Sterilization (chemical)","Gaseous; fumigation", "Several hrs","Terminal disinfection of rooms"],
],
[3.5*cm, 3*cm, 3*cm, 2*cm, 4.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Standard (Universal) Precautions", sec_h))
for line in [
"Treat ALL blood and body fluids from ALL patients as potentially infectious",
"HAND HYGIENE: WHO 5 Moments - before patient contact / before aseptic procedure / after body fluid exposure / after patient contact / after touching patient environment",
"Hand rub: 20-30 seconds; Hand wash with soap + water: 40-60 seconds",
"PPE: Gloves (body fluid contact), gown, mask (droplet/airborne), eye shield (splash risk)",
"Safe injection: 1 needle + 1 syringe + 1 patient + 1 time; NEVER recap needle two-handed",
"Sharps disposal: Immediately into white puncture-proof container after use; never bend or break",
"Needlestick Injury (NSI): Wash wound with soap and water x 5 min; do NOT suck; report to supervisor; HIV PEP within 72 hours; HBV immunoglobulin if not vaccinated",
"Spill management: Blood spill - apply 1% bleach solution for 30 minutes; remove with gloves; dispose as BMW",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 10: SURVEILLANCE & STATISTICS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 10: Disease Surveillance, IDSP & Vital Statistics"))
story.append(sp(2))
story.append(Paragraph("Integrated Disease Surveillance Programme (IDSP)", sec_h))
story.append(box(
"<b>IDSP:</b> Launched 2004; central and state-level surveillance; weekly disease reporting. "
"Goal: Detect outbreaks early, respond fast, monitor disease trends."
))
story.append(sp(2))
story.append(tbl(
["Reporting Form", "Level", "Reporter", "Diseases"],
[
["S Form (Syndromic)", "Community / Village", "ASHA, AWW, ANM", "Fever with rash, fever with chills, watery diarrhea, jaundice, acute flaccid paralysis"],
["P Form (Probable)", "PHC / CHC", "MO, CHO, Lab technician", "Clinically diagnosed; probable cases with history and examination"],
["L Form (Lab Confirmed)", "District lab / Medical college", "Microbiologist, Pathologist", "Lab-confirmed diagnoses (blood culture, PCR, serology)"],
],
[3.5*cm, 3*cm, 3.5*cm, 5*cm]
))
story.append(sp(2))
story.append(Paragraph("Key Notifiable Diseases (India)", sec_h))
for line in [
"Cholera, Plague, Yellow Fever: MANDATORY international notification (IHR 2005)",
"Tuberculosis, Malaria, Dengue, Diphtheria, Whooping cough, Typhoid, Hepatitis: State-notifiable",
"AFP (Acute Flaccid Paralysis): Suspected polio; MUST report within 24 hours; stool specimens sent to lab",
"All outbreak investigations: IDSP rapid response team deployed within 24-48 hours",
"NIKSHAY portal: Mandatory TB case notification and treatment tracking (NTEP)",
"HMIS (Health Management Information System): Monthly data entry by HWC/PHC/CHC",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(Paragraph("Sources of Vital Statistics in India", sec_h))
story.append(tbl(
["Source", "Frequency", "Data Provided"],
[
["Census of India", "Every 10 years (last 2011; 2021 postponed)", "Population, sex ratio, literacy, housing, disability"],
["SRS (Sample Registration System)", "Annual", "Birth rate, death rate, IMR, MMR, TFR, cause of death"],
["NFHS (National Family Health Survey)", "~5 years (NFHS-5: 2019-21)", "MCH indicators, nutrition, family planning, disease prevalence"],
["NSSO / NSS surveys", "Periodic", "Morbidity, health expenditure, disability"],
["HMIS (Health Management Info)", "Monthly", "Facility-level data on OPD, ANC, deliveries, immunization"],
["IDSP", "Weekly", "Disease surveillance, outbreak detection"],
["Civil Registration System (CRS)", "Continuous", "Birth and death registration at local level"],
],
[4.5*cm, 4*cm, 6.5*cm]
))
story.append(sp(2))
story.append(key_box([
"Census 2011: India population = 121 crore; Sex ratio = 943/1000; Literacy = 74.04%; Male 82.14%, Female 65.46%",
"Child Sex Ratio (0-6 yrs, Census 2011) = 914 girls per 1000 boys - declining trend",
"NFHS-5 (2019-21): India TFR = 2.0; IMR = 35.2; MMR (SRS) ~97; Stunting = 35.5%, Wasting = 19.3%",
"Maharashtra NFHS-5: IMR lower than national average; better urban health indicators",
"SDG 3.1: MMR < 70 / 1 lakh live births by 2030",
"SDG 3.2: U5MR < 25 / 1000 live births; NMR < 12 / 1000 live births by 2030",
], title="Census & Survey Key Facts"))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 11: OCCUPATIONAL & SCHOOL HEALTH
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 11: Occupational Health & School Health"))
story.append(sp(2))
story.append(Paragraph("Occupational Diseases", sec_h))
story.append(tbl(
["Disease", "Occupation / Exposure", "Causative Agent", "Prevention"],
[
["Silicosis", "Stone quarry, mining, sand blasting", "Silica dust", "Dust control, wet drilling, PPE; most common occupational lung disease in India"],
["Coal workers' pneumoconiosis", "Coal mining", "Coal dust", "Dust control; ventilation; health surveillance"],
["Asbestosis", "Asbestos industry, shipbuilding", "Asbestos fibres", "Substitute materials; PPE; causes mesothelioma and lung cancer"],
["Byssinosis", "Cotton, jute, flax textile workers", "Cotton dust", "Ventilation; respiratory protection; Monday fever = classic early sign"],
["Occupational asthma", "Isocyanates, chemicals, flour", "Sensitizers", "Avoid exposure; PPE; spirometry monitoring"],
["Lead poisoning", "Battery, paint, printing industry", "Lead (Pb)", "Engineering controls; blood lead monitoring; chelation if toxic"],
["Mercury poisoning", "Chloralkali plants, dentistry", "Mercury (Hg)", "Closed systems; monitoring; Minamata disease = environmental mercury poisoning"],
],
[3*cm, 3*cm, 2.5*cm, 6.5*cm]
))
story.append(sp(2))
story.append(Paragraph("Hierarchy of Occupational Health Controls", sec_h))
for line in [
"1. Elimination: Remove the hazard completely (best)",
"2. Substitution: Replace with less hazardous material",
"3. Engineering controls: Enclosure, ventilation, barriers",
"4. Administrative controls: Job rotation, reduced exposure time, training",
"5. PPE (Personal Protective Equipment): Last resort; masks, gloves, goggles (least effective alone)",
]:
story.append(Paragraph(line, bullet_s))
story.append(sp(2))
story.append(Paragraph("School Health Programme", sec_h))
for line in [
"Components: Health appraisal, remedial measures, health education, nutrition (PM-POSHAN), environmental hygiene, first aid, school health records",
"RBSK (Rashtriya Bal Swasthya Karyakram): Mobile health teams screen children at schools + Anganwadis for 4Ds",
"School health cards: Physical examination at school entry and periodically every 2-3 years",
"Eye testing: Snellen chart; refractive errors corrected with glasses (free of cost under RBSK)",
"Scoliosis, dental caries, skin diseases: Detected by school health team",
"Menstrual Hygiene Management (MHM): Free sanitary napkins in schools; Kishori Shakti Yojana",
]:
story.append(Paragraph(f"โข {line}", bullet_s))
story.append(sp(2))
story.append(ch_hdr("Chapter 12: Health Indicators - India Data", "Memorize These for the Exam", color=TEAL))
story.append(sp(2))
story.append(tbl(
["Indicator", "India Value", "Source/Year", "SDG/National Target"],
[
["IMR (Infant Mortality Rate)", "~28 / 1000 LB", "SRS 2020", "SDG: <12 by 2030"],
["NMR (Neonatal Mortality Rate)", "~20 / 1000 LB", "SRS 2020", "SDG: <12 by 2030"],
["MMR (Maternal Mortality Ratio)", "~97 / 1 lakh LB", "SRS 2018-20", "SDG: <70 by 2030"],
["U5MR (Under-5 Mortality Rate)", "~32 / 1000 LB", "SRS 2020", "SDG: <25 by 2030"],
["TFR (Total Fertility Rate)", "~2.0", "SRS 2020", "Replacement: 2.1"],
["Life Expectancy at Birth", "~70 years", "SRS 2018-22", "Increase to 75 by 2030"],
["CBR (Crude Birth Rate)", "~18 / 1000 pop", "SRS 2021", "Declining trend"],
["CDR (Crude Death Rate)", "~6 / 1000 pop", "SRS 2021", "Declining"],
["Stunting (children <5 yrs)", "35.5%", "NFHS-5 2019-21","Reduce to <25% by 2022 (Poshan)"],
["Wasting (children <5 yrs)", "19.3%", "NFHS-5 2019-21","Reduce by 2%/yr"],
["Anemia (children 6-59 months)", "67.1%", "NFHS-5 2019-21","Reduce by 3%/yr"],
["Anemia (women 15-49 yrs)", "57.0%", "NFHS-5 2019-21","Reduce to <33% by 2022"],
["Sex Ratio (Census 2011)", "943 F/1000 M", "Census 2011", "Improve with BBBP"],
["Literacy Rate", "74.04%", "Census 2011", "Universal literacy"],
],
[5*cm, 3.5*cm, 3*cm, 3.5*cm]
))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 13: 100 HIGH-YIELD FACTS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 13: 100 High-Yield Public Health Facts", "Read these the day before your exam!"))
story.append(sp(2))
story.append(box(
"<b>Instruction:</b> All 100 facts below are direct MCQ material. "
"If you know all of these, you will score at least 35-40 marks in MH CHO exam.",
bg=ORANGE_LIGHT, border=AMBER
))
story.append(sp(2))
facts_col1 = [
"1. Winslow's definition of Public Health: 1920",
"2. WHO Health definition: 1948",
"3. Alma-Ata Declaration: 1978 (PHC)",
"4. Ottawa Charter: 1986 (Health Promotion)",
"5. Astana Declaration: 2018 (renewed PHC commitment)",
"6. HFA (Health for All): World Health Assembly 1977",
"7. PHC components: 8 (Alma-Ata)",
"8. Ottawa Charter action areas: 5",
"9. Ecological triad: Host, Agent, Environment",
"10. ICEBERG phenomenon: Subclinical cases exceed clinical cases",
"11. Prevalence = Incidence x Duration",
"12. IMR India (SRS 2020): ~28",
"13. MMR India (SRS 2018-20): ~97 / 1 lakh LB",
"14. TFR India: ~2.0 (replacement level = 2.1)",
"15. Sub-centre norm: 1 per 5000 (plain); 1 per 3000 (hilly)",
"16. PHC norm: 1 per 30,000 (plain); 20,000 (hilly)",
"17. CHC norm: 1 per 1,20,000; 30 beds; 4 specialists",
"18. ASHA: 1 per 1000 rural population; incentive-based",
"19. John Snow's cholera intervention: Removed pump handle (first epidemiological intervention)",
"20. Coliform bacteria in drinking water: ZERO (acceptable limit)",
"21. Residual chlorine at consumer end: 0.2 mg/L",
"22. Boiling for drinking water: 1 min sufficient to kill pathogens",
"23. OPV stored at: -20 deg C (ONLY vaccine stored frozen)",
"24. All other vaccines: +2 to +8 deg C",
"25. VVM: Vaccine Vial Monitor; discard if inner square = outer circle",
"26. BCG: Intradermal, 0.05 mL, right upper arm at birth",
"27. Pentavalent = DPT + HepB + Hib (5 antigens)",
"28. MR vaccine: Replaced standalone measles vaccine in UIP (2017)",
"29. IPV: 2 doses at 6 and 14 weeks; inactivated; intramuscular",
"30. Rotavirus vaccine: 3 doses; 6, 10, 14 weeks; prevents severe diarrhea",
"31. Vitamin A 1st dose: 1 lakh IU at 9 months",
"32. Vitamin A subsequent doses: 2 lakh IU every 6 months (12-59 months)",
"33. Mission Indradhanush: Catch-up immunization; includes left-out children",
"34. Autoclave: 121 deg C, 15 psi, 15-20 min",
"35. Dry heat oven: 160 deg C for 60 min OR 170 deg C for 45 min",
"36. WHO 5 Moments of Hand Hygiene: Standard precautions",
"37. Needlestick injury: HIV PEP within 72 hours; HBV Ig if not vaccinated",
"38. BMW Yellow bag: Anatomical/soiled waste; Incineration",
"39. BMW Red bag: Contaminated recyclables; Autoclaving",
"40. BMW White box: Sharps (needles); Needle cutter",
"41. BMW Blue bag: Glassware, metallic implants",
"42. Hand washing with soap duration: 40-60 seconds",
"43. Alcohol hand rub duration: 20-30 seconds",
"44. IDSP: S form = syndromic (ASHA/ANM); P form = probable (MO); L form = lab confirmed",
"45. AFP: Report within 24 hours; stool samples x 2 to lab (polio surveillance)",
"46. Cholera incubation: 6 hrs - 5 days",
"47. Typhoid incubation: 3-60 days (usual 10-14 days)",
"48. Dengue incubation: 3-14 days; Aedes aegypti mosquito",
"49. Malaria P.vivax incubation: 12-17 days; P.falciparum: 7-14 days",
"50. Malaria vector: Anopheles (female); breeds in clean, stagnant water",
]
facts_col2 = [
"51. Dengue vector: Aedes aegypti; breeds in clean water containers in and around homes",
"52. Filaria vector: Culex mosquito; lymphatic filariasis; MDA annually",
"53. TB transmission: Airborne droplet nuclei; DOT = Directly Observed Treatment",
"54. Leprosy: MDT-PB 6 months (2 drugs); MDT-MB 12 months (3 drugs - Rifampicin, Dapsone, Clofazimine)",
"55. HIV - CD4 count for ART: Start ART regardless of CD4 (Test and Treat policy)",
"56. PPTCT: Prevention of Parent-to-Child Transmission of HIV; ART to mother + neonate",
"57. Hepatitis B birth dose: Within 24 hours of birth; prevents MTCT",
"58. ORS composition: Na 75, Glucose 75, Cl 65, K 20 (mEq/L); Osmolarity 245 mOsmol/L",
"59. Zinc for diarrhea: 20 mg/day x 14 days (children >6 months); 10 mg (<6 months)",
"60. Bitot spots: Vitamin A deficiency (xerophthalmia)",
"61. Koilonychia (spoon nails): Iron deficiency anemia",
"62. Bow legs in children: Vitamin D deficiency (rickets)",
"63. Goitre: Iodine deficiency; iodized salt >15 ppm at household level",
"64. Scurvy: Vitamin C deficiency; bleeding gums, perifollicular haemorrhages",
"65. Kwashiorkor: Protein deficiency; edema, moon face, skin lesions",
"66. Marasmus: Protein + energy deficiency; severe wasting, no edema",
"67. MUAC <11.5 cm = SAM; 11.5-12.5 cm = MAM; >12.5 cm = Normal (6-59 months)",
"68. IFA during pregnancy: 180 mg elemental iron + 500 mcg folic acid daily",
"69. IFA postpartum: 180 days of IFA continuation after delivery",
"70. WIFS: Weekly IFA for adolescent boys and girls (6-19 yrs in school)",
"71. DOTS: Directly Observed Treatment Short-course (TB); supervisor watches each dose",
"72. NTEP target: TB elimination by 2025 (5 years ahead of SDG 2030)",
"73. Nikshay Poshan Yojana: Rs.500/month nutritional support to TB patients",
"74. NPCDCS: NCD screening at HWC; all adults 30+ years for HTN, DM, 3 cancers",
"75. VIA: Visual Inspection with Acetic Acid; cervical cancer screening; acetowhite = positive",
"76. CBE: Clinical Breast Examination; women 30-60 yrs; annually at HWC",
"77. SBM: Swachh Bharat Mission; India declared ODF in 2019",
"78. PM2.5: Most dangerous air pollutant; penetrates alveoli; <2.5 microns",
"79. Silicosis: Most common occupational lung disease in India; stone quarry workers",
"80. KAP study: Knowledge, Attitude, Practice; baseline before health education",
"81. Herd immunity: When enough proportion immune to prevent epidemic spread",
"82. Passive immunity in newborn: IgG crosses placenta; IgA in breast milk",
"83. Colostrum: First milk; rich in IgA; give within 1 hour of birth",
"84. Exclusive breastfeeding: 6 months; no water, no other food",
"85. BMI: Underweight <18.5; Normal 18.5-24.9; Overweight 25-29.9; Obese >/=30",
"86. Census 2011: Population 121 crore; Literacy 74.04%; Sex ratio 943",
"87. NFHS-5 (2019-21): TFR 2.0; Stunting 35.5%; Wasting 19.3%; Anemia (child) 67.1%",
"88. Prevalence of disease depends on: Incidence AND duration (chronicity)",
"89. Case-control study: Best for rare diseases; looks backward (retrospective)",
"90. Cohort study: Best for incidence + causation; looks forward (prospective)",
"91. RCT: Gold standard; random allocation; eliminates selection bias",
"92. Cross-sectional study: Snapshot; gives prevalence; cheap and quick",
"93. HMIS: Monthly reporting by all health facilities; monitored by NHM",
"94. JSY: Cash incentive for institutional delivery; LPS rural = Rs.1400 (mother) + Rs.600 (ASHA)",
"95. JSSK: Free delivery, drugs, diet, diagnostics, blood, transport for pregnant women and sick neonates",
"96. PMMVY: Rs.5000 maternity benefit in 3 installments for first live birth",
"97. RBSK: 4Ds - Defects at birth, Deficiencies, Diseases, Developmental delays; 0-18 years",
"98. HWC: CHO is in-charge; 12 service packages; CPHC; teleconsultation via e-Sanjeevani",
"99. MJPJAY (Maharashtra): Rs.1.5 lakh per family per year health cover; 972 procedures",
"100. Article 47 (DPSP): State duty to raise nutritional levels and improve public health",
]
# Two-column facts layout
fact_rows = []
for i in range(len(facts_col1)):
f1 = facts_col1[i] if i < len(facts_col1) else ""
f2 = facts_col2[i] if i < len(facts_col2) else ""
bg = LIGHT_GRAY if i % 2 == 0 else WHITE
fact_rows.append((f1, f2, bg))
all_fact_data = []
for f1, f2, bg in fact_rows:
all_fact_data.append([
Paragraph(f1, S("ff1", fontSize=9, fontName="Helvetica", textColor=DARK_TEXT, leading=13)),
Paragraph(f2, S("ff2", fontSize=9, fontName="Helvetica", textColor=DARK_TEXT, leading=13)),
])
fact_t = Table(all_fact_data, colWidths=[(W - 3.6*cm)/2, (W - 3.6*cm)/2])
row_colors = []
for i in range(len(all_fact_data)):
bg = LIGHT_GRAY if i % 2 == 0 else WHITE
row_colors.append(("BACKGROUND", (0, i), (-1, i), bg))
style_cmds = [
("BOX", (0,0), (-1,-1), 0.5, MID_GRAY),
("INNERGRID", (0,0), (-1,-1), 0.25, MID_GRAY),
("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
] + row_colors
fact_t.setStyle(TableStyle(style_cmds))
story.append(fact_t)
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# CH 14: MOCK MCQs
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(ch_hdr("Chapter 14: Mock MCQs - Public Health (30 Questions)", "Maharashtra CHO Pattern"))
story.append(sp(2))
mcqs = [
("1. Winslow's definition of Public Health was given in which year?",
["A. 1900", "B. 1920", "C. 1948", "D. 1978"], "B. 1920"),
("2. 'Health for All by 2000 AD' was adopted as a global goal by WHO General Assembly in:",
["A. 1973", "B. 1975", "C. 1977", "D. 1978"], "C. 1977"),
("3. The Alma-Ata Declaration on Primary Health Care was held in:",
["A. 1974, Geneva", "B. 1976, New York", "C. 1978, USSR", "D. 1986, Ottawa"], "C. 1978, USSR"),
("4. How many components of Primary Health Care were identified at Alma-Ata?",
["A. 5", "B. 6", "C. 8", "D. 10"], "C. 8"),
("5. The Ottawa Charter on Health Promotion was adopted in:",
["A. 1978", "B. 1982", "C. 1984", "D. 1986"], "D. 1986"),
("6. How many action areas does the Ottawa Charter define for health promotion?",
["A. 3", "B. 4", "C. 5", "D. 6"], "C. 5"),
("7. The 'Iceberg phenomenon' in epidemiology refers to:",
["A. Cold-chain failure in vaccines", "B. Subclinical cases being far more than clinical cases",
"C. Tip of disease visible in X-ray", "D. Late presentation of disease to hospital"], "B. Subclinical cases being far more than clinical cases"),
("8. Prevalence is related to incidence by which formula?",
["A. Prevalence = Incidence / Duration", "B. Prevalence = Incidence x Duration",
"C. Prevalence = Incidence + Duration", "D. Prevalence = Incidence - Duration"], "B. Prevalence = Incidence x Duration"),
("9. The 'weakest link' concept in disease control was demonstrated by John Snow by:",
["A. Developing the first vaccine", "B. Removing the Broad Street pump handle",
"C. Introducing chlorination of water", "D. Quarantining cholera patients"], "B. Removing the Broad Street pump handle"),
("10. Residual chlorine at consumer end in drinking water should be:",
["A. 0.05 mg/L", "B. 0.1 mg/L", "C. 0.2 mg/L", "D. 0.5 mg/L"], "C. 0.2 mg/L"),
("11. Coliform bacteria count in drinking water should be:",
["A. Less than 10/100 mL", "B. Less than 5/100 mL",
"C. Less than 1/100 mL", "D. Zero"], "D. Zero"),
("12. Which is the ONLY vaccine in UIP stored at -20 degrees Celsius?",
["A. BCG", "B. DPT", "C. OPV", "D. Hepatitis B"], "C. OPV"),
("13. BCG vaccine is given by which route?",
["A. Oral", "B. Subcutaneous", "C. Intradermal", "D. Intramuscular"], "C. Intradermal"),
("14. Pentavalent vaccine protects against how many antigens?",
["A. 3", "B. 4", "C. 5", "D. 6"], "C. 5"),
("15. At what temperature should autoclave be set for sterilization?",
["A. 100 deg C, 5 psi", "B. 121 deg C, 15 psi", "C. 134 deg C, 30 psi", "D. 160 deg C, 15 psi"], "B. 121 deg C, 15 psi"),
("16. According to WHO 5 Moments of Hand Hygiene, hand hygiene should be performed:",
["A. Only before patient contact and after body fluid exposure",
"B. Before patient contact, before aseptic procedure, after fluid exposure, after patient contact, after touching environment",
"C. Only when hands are visibly dirty",
"D. Three times per shift"], "B. Before patient contact, before aseptic procedure, after fluid exposure, after patient contact, after touching environment"),
("17. IDSP 'P' form is filled at which level?",
["A. Community level by ASHA", "B. PHC level by Medical Officer",
"C. District lab by microbiologist", "D. State level by epidemiologist"], "B. PHC level by Medical Officer"),
("18. In disease epidemiology, an EPIDEMIC means:",
["A. Disease constantly present at expected levels", "B. Disease affecting many countries",
"C. Disease occurrence clearly exceeding normal expectancy in a defined area",
"D. A disease with very high mortality"], "C. Disease occurrence clearly exceeding normal expectancy in a defined area"),
("19. The Case Fatality Rate (CFR) is calculated as:",
["A. Deaths / Population x 100", "B. Deaths from disease / Cases of disease x 100",
"C. Deaths / Live births x 1000", "D. Cases / Population at risk x 100"], "B. Deaths from disease / Cases of disease x 100"),
("20. Which study design is BEST for studying rare diseases?",
["A. Cross-sectional study", "B. Cohort study",
"C. Case-control study", "D. Ecological study"], "C. Case-control study"),
("21. Most dangerous air pollutant in terms of health impact is:",
["A. Carbon monoxide", "B. Sulfur dioxide", "C. PM10", "D. PM2.5"], "D. PM2.5"),
("22. Which bag color is used for anatomical waste in BMW management?",
["A. Red", "B. Yellow", "C. Blue", "D. White"], "B. Yellow"),
("23. HIV Post-Exposure Prophylaxis (PEP) should be started within:",
["A. 24 hours", "B. 48 hours", "C. 72 hours", "D. 7 days"], "C. 72 hours"),
("24. The 'Iceberg' phenomenon is most relevant for which disease?",
["A. Rabies", "B. Cholera", "C. Polio", "D. Tetanus"], "C. Polio"),
("25. Silicosis is most common in workers engaged in:",
["A. Cotton textile industry", "B. Stone quarrying and mining",
"C. Asbestos manufacturing", "D. Lead battery manufacturing"], "B. Stone quarrying and mining"),
("26. KAP study stands for:",
["A. Knowledge, Action, Prevention", "B. Knowledge, Attitude, Practice",
"C. Knowledge, Assessment, Planning", "D. Key Action Points"], "B. Knowledge, Attitude, Practice"),
("27. The sub-centre serves a population of how many in hilly/tribal areas?",
["A. 5000", "B. 3000", "C. 1000", "D. 10000"], "B. 3000"),
("28. In Maharashtra, the Mahatma Jyotiba Phule Jan Arogya Yojana (MJPJAY) provides health cover of:",
["A. Rs.50,000", "B. Rs.1 lakh", "C. Rs.1.5 lakh", "D. Rs.5 lakh"], "C. Rs.1.5 lakh"),
("29. According to NFHS-5, what percentage of children under 5 years are stunted in India?",
["A. 25.5%", "B. 30.9%", "C. 35.5%", "D. 40.2%"], "C. 35.5%"),
("30. Article 47 of the Indian Constitution deals with:",
["A. Right to life and personal liberty", "B. Right to equality",
"C. State duty to raise nutritional levels and improve public health",
"D. Prohibition of discrimination"], "C. State duty to raise nutritional levels and improve public health"),
]
for q_text, options, answer in mcqs:
story.append(KeepTogether([
Paragraph(f"<b>{q_text}</b>", S("qt", fontSize=10, fontName="Helvetica-Bold",
textColor=DARK_BLUE, spaceBefore=8, spaceAfter=3)),
*[Paragraph(f" {opt}", S(f"opt{opt[0]}{id(opt)}", fontSize=9.5,
fontName="Helvetica-Bold" if opt == answer else "Helvetica",
textColor=GREEN if opt == answer else DARK_TEXT,
leading=13, leftIndent=18)) for opt in options],
Paragraph(f"<i>Ans: {answer}</i>", S("ans", fontSize=9,
fontName="Helvetica-Oblique", textColor=GREEN,
leftIndent=18, spaceBefore=2, spaceAfter=5)),
]))
story.append(sp(3))
story.append(hr())
story.append(Paragraph(
"All the best for your Maharashtra CHO Exam! "
"Master Public Health (Park's PSM) + NHM Programmes = guaranteed high score. "
"Practice 50 MCQs daily.",
S("fn", fontSize=10, fontName="Helvetica-Oblique",
textColor=DARK_BLUE, alignment=TA_CENTER, spaceBefore=6)))
story.append(sp(2))
story.append(Paragraph(
"MH CHO Public Health Study Guide | Park's PSM Reference | NHM Maharashtra | July 2026 Edition",
footer_s))
# BUILD
doc.build(story)
print(f"PDF created: {OUTPUT}")
Failed to create session: bad request: failed to resolve container IP after 3 attempts: no IP address found. Is the Sandbox started?
We encountered an error while processing your request. Please try again or reach out to us for help.