Public health pdf for maharashtra cho exam

Asking for Preferences

All 4

Searching the Web

Maharashtra CHO exam syllabus Public Health topics 2025 2026

Searching the Web

Maharashtra Community Health Officer CHO exam pattern important topics

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/mh-cโ€ฆ

Writing File

~/mh-cho-public-health/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.colors import HexColor, white, black, darkblue
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
import os

OUTPUT = "/home/daytona/workspace/mh-cho-public-health/MH_CHO_Public_Health_Study_Guide.pdf"

# Colors
ORANGE     = HexColor("#E65100")
DARK_BLUE  = HexColor("#1A237E")
LIGHT_BLUE = HexColor("#E3F2FD")
TEAL       = HexColor("#00695C")
LIGHT_TEAL = HexColor("#E0F2F1")
YELLOW     = HexColor("#FFF9C4")
RED        = HexColor("#B71C1C")
LIGHT_RED  = HexColor("#FFEBEE")
PURPLE     = HexColor("#4A148C")
LIGHT_PURPLE = HexColor("#F3E5F5")
GREY_BG    = HexColor("#F5F5F5")
DARK_GREY  = HexColor("#424242")
GREEN      = HexColor("#1B5E20")
LIGHT_GREEN = HexColor("#E8F5E9")

styles = getSampleStyleSheet()

def make_styles():
    custom = {}
    custom['Title'] = ParagraphStyle('Title',
        fontName='Helvetica-Bold', fontSize=26, textColor=white,
        alignment=TA_CENTER, spaceAfter=6, leading=32)
    custom['Subtitle'] = ParagraphStyle('Subtitle',
        fontName='Helvetica-Bold', fontSize=14, textColor=white,
        alignment=TA_CENTER, spaceAfter=4, leading=18)
    custom['ChapterHeader'] = ParagraphStyle('ChapterHeader',
        fontName='Helvetica-Bold', fontSize=16, textColor=white,
        alignment=TA_CENTER, leading=20, spaceAfter=4)
    custom['SectionTitle'] = ParagraphStyle('SectionTitle',
        fontName='Helvetica-Bold', fontSize=13, textColor=DARK_BLUE,
        spaceBefore=10, spaceAfter=4, leading=16)
    custom['SubTitle'] = ParagraphStyle('SubTitle',
        fontName='Helvetica-Bold', fontSize=11, textColor=TEAL,
        spaceBefore=6, spaceAfter=3, leading=14)
    custom['Body'] = ParagraphStyle('Body',
        fontName='Helvetica', fontSize=10, textColor=DARK_GREY,
        spaceBefore=2, spaceAfter=2, leading=14, alignment=TA_JUSTIFY)
    custom['Bullet'] = ParagraphStyle('Bullet',
        fontName='Helvetica', fontSize=10, textColor=DARK_GREY,
        spaceBefore=1, spaceAfter=1, leading=13,
        leftIndent=14, bulletIndent=0)
    custom['BulletBold'] = ParagraphStyle('BulletBold',
        fontName='Helvetica-Bold', fontSize=10, textColor=DARK_GREY,
        spaceBefore=1, spaceAfter=1, leading=13,
        leftIndent=14, bulletIndent=0)
    custom['ImportantNote'] = ParagraphStyle('ImportantNote',
        fontName='Helvetica-Bold', fontSize=10, textColor=RED,
        spaceBefore=3, spaceAfter=3, leading=14,
        leftIndent=6, rightIndent=6)
    custom['MCQQuestion'] = ParagraphStyle('MCQQuestion',
        fontName='Helvetica-Bold', fontSize=10, textColor=DARK_GREY,
        spaceBefore=4, spaceAfter=2, leading=14)
    custom['MCQOption'] = ParagraphStyle('MCQOption',
        fontName='Helvetica', fontSize=10, textColor=DARK_GREY,
        spaceBefore=1, spaceAfter=1, leading=13, leftIndent=14)
    custom['MCQAnswer'] = ParagraphStyle('MCQAnswer',
        fontName='Helvetica-Bold', fontSize=10, textColor=GREEN,
        spaceBefore=1, spaceAfter=3, leading=13, leftIndent=14)
    custom['TableHeader'] = ParagraphStyle('TableHeader',
        fontName='Helvetica-Bold', fontSize=10, textColor=white,
        alignment=TA_CENTER, leading=13)
    custom['TableCell'] = ParagraphStyle('TableCell',
        fontName='Helvetica', fontSize=9, textColor=DARK_GREY,
        alignment=TA_LEFT, leading=12)
    custom['PageHeader'] = ParagraphStyle('PageHeader',
        fontName='Helvetica-Bold', fontSize=9, textColor=DARK_BLUE,
        alignment=TA_CENTER, leading=12)
    custom['SmallNote'] = ParagraphStyle('SmallNote',
        fontName='Helvetica-Oblique', fontSize=9, textColor=PURPLE,
        spaceBefore=2, spaceAfter=2, leading=12, leftIndent=6)
    return custom

S = make_styles()

def chapter_header(title, color=DARK_BLUE):
    data = [[Paragraph(title, S['ChapterHeader'])]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), color),
        ('ROUNDEDCORNERS', [8]),
        ('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 highlight_box(text, bg=LIGHT_BLUE, border=DARK_BLUE):
    data = [[Paragraph(text, S['Body'])]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), bg),
        ('BOX', (0,0), (-1,-1), 1.2, border),
        ('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 important_box(text):
    return highlight_box(f"<b>โ˜… KEY POINT:</b> {text}", bg=YELLOW, border=ORANGE)

def two_col_table(rows, headers=None, col_widths=None):
    if col_widths is None:
        col_widths = [6*cm, 11*cm]
    data = []
    if headers:
        data.append([Paragraph(h, S['TableHeader']) for h in headers])
    for r in rows:
        data.append([Paragraph(str(c), S['TableCell']) for c in r])
    t = Table(data, colWidths=col_widths)
    style = [
        ('BACKGROUND', (0,0), (-1,0), DARK_BLUE),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [white, GREY_BG]),
        ('BOX', (0,0), (-1,-1), 0.8, DARK_BLUE),
        ('INNERGRID', (0,0), (-1,-1), 0.4, HexColor("#90CAF9")),
        ('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'),
    ]
    if not headers:
        style[0] = ('ROWBACKGROUNDS', (0,0), (-1,-1), [white, GREY_BG])
    t.setStyle(TableStyle(style))
    return t

def mcq_block(num, question, options, answer, explanation=""):
    elems = []
    elems.append(Paragraph(f"Q{num}. {question}", S['MCQQuestion']))
    for o in options:
        elems.append(Paragraph(o, S['MCQOption']))
    ans_text = f"โœ“ Answer: {answer}"
    if explanation:
        ans_text += f" โ€” {explanation}"
    elems.append(Paragraph(ans_text, S['MCQAnswer']))
    elems.append(HRFlowable(width="100%", thickness=0.4, color=HexColor("#BDBDBD")))
    return elems

def bullet(text, bold=False):
    st = S['BulletBold'] if bold else S['Bullet']
    return Paragraph(f"โ€ข {text}", st)

def sub_bullet(text):
    return Paragraph(f"   - {text}", S['Bullet'])

# โ”€โ”€โ”€ BUILD DOCUMENT โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story = []

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# COVER PAGE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
cover_data = [[
    Paragraph("MAHARASHTRA CHO EXAM", S['Title']),
    Paragraph("Public Health - Complete Study Guide", S['Subtitle']),
    Paragraph("Study Notes  โ€ข  Important Topics  โ€ข  100 Practice MCQs", S['Subtitle']),
    Paragraph("Based on NHM Maharashtra Official Syllabus 2025-26", ParagraphStyle('Sub2',
        fontName='Helvetica', fontSize=11, textColor=HexColor("#BBDEFB"),
        alignment=TA_CENTER, leading=15)),
]]
cover_tbl = Table([[cover_data[0][0]], [cover_data[0][1]], [cover_data[0][2]], [cover_data[0][3]]],
                  colWidths=[17*cm])
cover_tbl.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
    ('ROUNDEDCORNERS', [12]),
    ('TOPPADDING', (0,0), (-1,-1), 14),
    ('BOTTOMPADDING', (0,0), (-1,-1), 14),
    ('LEFTPADDING', (0,0), (-1,-1), 20),
    ('RIGHTPADDING', (0,0), (-1,-1), 20),
]))
story.append(Spacer(1, 1.5*cm))
story.append(cover_tbl)
story.append(Spacer(1, 1*cm))

# Exam Pattern Summary Table
story.append(Paragraph("EXAM PATTERN AT A GLANCE", S['SectionTitle']))
exam_rows = [
    ["Section", "Topics", "Questions", "Marks"],
    ["Section 1", "Health Subjects (Public Health, Maternal, Child, NCD, CD, etc.)", "60", "60"],
    ["Section 2", "General Knowledge & Current Affairs", "20", "20"],
    ["Section 3", "NHM Program Related", "20", "20"],
    ["TOTAL", "", "100", "100"],
]
ep_data = [[Paragraph(c, S['TableHeader'] if i==0 else S['TableCell']) for c in row]
           for i, row in enumerate(exam_rows)]
ep_tbl = Table(ep_data, colWidths=[3*cm, 9*cm, 2.5*cm, 2.5*cm])
ep_tbl.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), ORANGE),
    ('BACKGROUND', (0,4), (-1,4), DARK_BLUE),
    ('ROWBACKGROUNDS', (0,1), (-1,3), [white, GREY_BG]),
    ('BOX', (0,0), (-1,-1), 1, DARK_BLUE),
    ('INNERGRID', (0,0), (-1,-1), 0.4, HexColor("#90CAF9")),
    ('TOPPADDING', (0,0), (-1,-1), 5),
    ('BOTTOMPADDING', (0,0), (-1,-1), 5),
    ('LEFTPADDING', (0,0), (-1,-1), 6),
    ('RIGHTPADDING', (0,0), (-1,-1), 6),
    ('FONTNAME', (0,4), (-1,4), 'Helvetica-Bold'),
    ('TEXTCOLOR', (0,4), (-1,4), white),
    ('ALIGN', (2,0), (-1,-1), 'CENTER'),
]))
story.append(ep_tbl)
story.append(Spacer(1, 0.5*cm))
story.append(important_box("No negative marking. 100 MCQs in 90 minutes. Language: English & Marathi. Qualifying marks: 30%."))
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TABLE OF CONTENTS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chapter_header("TABLE OF CONTENTS", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))
toc_items = [
    ("PART A: STUDY NOTES", ""),
    ("1.", "Basic Concepts of Public Health"),
    ("2.", "Maternal Health"),
    ("3.", "Child Health & Immunization"),
    ("4.", "Adolescent Health (RKSK)"),
    ("5.", "Family Planning"),
    ("6.", "Communicable Diseases"),
    ("7.", "Non-Communicable Diseases (NCD)"),
    ("8.", "Nutrition"),
    ("9.", "Mental Health"),
    ("10.", "Referral Linkage & Health System"),
    ("11.", "Elderly & Palliative Care"),
    ("12.", "Emergency Services & Basic Clinical Skills"),
    ("13.", "Oral & ENT Health"),
    ("14.", "NHM Programs - Key Facts"),
    ("PART B: PRACTICE MCQs", ""),
    ("", "100 Topic-wise MCQs with Answers"),
]
for num, item in toc_items:
    if item == "":
        story.append(Paragraph(num, S['SectionTitle']))
    else:
        story.append(Paragraph(f"<b>{num}</b>  {item}", S['Body']))
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# PART A: STUDY NOTES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chapter_header("PART A: STUDY NOTES", ORANGE))
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€โ”€ CHAPTER 1: BASIC CONCEPTS OF PUBLIC HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("1. BASIC CONCEPTS OF PUBLIC HEALTH", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Definition & Levels of Prevention", S['SectionTitle']))
story.append(highlight_box(
    "<b>Public Health</b>: Science and art of preventing disease, prolonging life and promoting health through organized community efforts. (C.E.A. Winslow, 1920)",
    LIGHT_TEAL, TEAL))
story.append(Spacer(1,0.2*cm))
story.append(two_col_table([
    ["Primordial Prevention", "Prevents emergence of risk factors (e.g., health education, policies)"],
    ["Primary Prevention", "Prevents disease before it occurs โ€” vaccination, health promotion"],
    ["Secondary Prevention", "Early detection & treatment โ€” screening programs (e.g., CBE, PAP smear)"],
    ["Tertiary Prevention", "Reduce disability & rehabilitation (e.g., physiotherapy, DOTS)"],
], headers=["Level", "Description"]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Health Indicators", S['SectionTitle']))
story.append(bullet("IMR (Infant Mortality Rate): Deaths <1 yr per 1000 live births", bold=True))
story.append(sub_bullet("India IMR target: <20 per 1000 live births (SDG)"))
story.append(bullet("MMR (Maternal Mortality Ratio): Maternal deaths per 1,00,000 live births", bold=True))
story.append(sub_bullet("India MMR (2018-20): 97; Target: <70 per 1,00,000"))
story.append(bullet("NMR (Neonatal Mortality Rate): Deaths <28 days per 1000 live births"))
story.append(bullet("U5MR (Under-5 Mortality Rate): Deaths before 5 years per 1000 live births"))
story.append(bullet("TFR (Total Fertility Rate): Avg children per woman; India TFR: 2.0 (NFHS-5)"))
story.append(bullet("Life Expectancy at Birth: India ~69.7 years (2019-23)"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("PHC System & Referral Hierarchy", S['SectionTitle']))
story.append(two_col_table([
    ["Sub-Centre (SC)", "1 ANM + 1 MPW; Population: 3,000 (plains) / 1,000 (hilly/tribal)"],
    ["Primary Health Centre (PHC)", "1 Medical Officer; Population: 30,000 (plains) / 20,000 (hilly); 4โ€“6 bedded"],
    ["Community Health Centre (CHC)", "30 beds; 4 specialists; Population: 1,20,000"],
    ["Sub-District Hospital", "31-100 beds; referral from CHC"],
    ["District Hospital", "100+ beds; apex referral unit"],
], headers=["Facility", "Key Features"], col_widths=[5*cm, 12*cm]))
story.append(Spacer(1, 0.3*cm))
story.append(important_box("CHO works primarily at Health & Wellness Centre (HWC), upgraded from Sub-Centre. CHO provides 12 services under Comprehensive Primary Health Care."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Key National Health Programs (Overview)", S['SectionTitle']))
story.append(two_col_table([
    ["NHM", "National Health Mission (2013) โ€” umbrella program; NRC, NUHM under it"],
    ["RMNCH+A", "Reproductive, Maternal, Newborn, Child, Adolescent Health"],
    ["JSSK", "Janani Shishu Suraksha Karyakram โ€” free delivery services"],
    ["JSY", "Janani Suraksha Yojana โ€” cash incentive for institutional delivery"],
    ["PMSMA", "Pradhan Mantri Surakshit Matritva Abhiyan โ€” free ANC on 9th of every month"],
    ["RBSK", "Rashtriya Bal Swasthya Karyakram โ€” child health screening (0-18 yrs)"],
    ["ASHA", "Accredited Social Health Activist โ€” community health worker at village level"],
], headers=["Program", "Brief Description"], col_widths=[4*cm, 13*cm]))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 2: MATERNAL HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("2. MATERNAL HEALTH", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Antenatal Care (ANC)", S['SectionTitle']))
story.append(highlight_box(
    "<b>Minimum ANC visits:</b> WHO recommends โ‰ฅ8 contacts. India's standard: At least 4 ANC visits (1st, 2nd, 3rd trimester, and near term).",
    LIGHT_TEAL, TEAL))
story.append(Spacer(1,0.2*cm))
story.append(two_col_table([
    ["1st Visit (โ‰ค12 weeks)", "Registration, Hb, Blood group, urine, BP, weight, TT1"],
    ["2nd Visit (14-26 wks)", "Hb, BP, weight, TT2/Booster, abdominal examination"],
    ["3rd Visit (28-34 wks)", "Hb, BP, weight, abdominal exam, fetal position"],
    ["4th Visit (36+ weeks)", "Birth preparedness, danger signs, referral plan"],
], headers=["Visit", "Key Activities"]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Key Supplementation in ANC", S['SubTitle']))
story.append(bullet("Iron Folic Acid (IFA): 100 mg elemental iron + 500 mcg folic acid daily for 180 days"))
story.append(bullet("Calcium: 500 mg twice daily from 2nd trimester"))
story.append(bullet("TT Immunization: TT1 at first contact, TT2 four weeks later (or booster if vaccinated within 3 yrs)"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Danger Signs in Pregnancy (3Bs + extras)", S['SubTitle']))
story.append(bullet("Bleeding per vaginum (antepartum hemorrhage)"))
story.append(bullet("Blurring of vision / severe headache (eclampsia warning)"))
story.append(bullet("Breathlessness / edema of face and hands"))
story.append(bullet("Decreased/absent fetal movements"))
story.append(bullet("High fever / foul-smelling vaginal discharge"))
story.append(bullet("Severe abdominal pain"))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("JSY Incentive: Rs.1400 (rural) / Rs.1000 (urban) for institutional delivery in LPS states. For HPS states (incl. Maharashtra): Rs.700 (rural) / Rs.600 (urban)."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Postnatal Care (PNC)", S['SectionTitle']))
story.append(bullet("PNC visits: Day 1, Day 3, Day 7, Day 42 after delivery"))
story.append(bullet("Breast feeding should be initiated within 1 hour of birth"))
story.append(bullet("Exclusive breastfeeding: 0-6 months (no water, no other food)"))
story.append(bullet("Vitamin A supplementation: Single dose 2 lakh IU after delivery (for mother)"))
story.append(bullet("IFA continuation: 180 days post-delivery"))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 3: CHILD HEALTH & IMMUNIZATION โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("3. CHILD HEALTH & IMMUNIZATION", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Universal Immunization Programme (UIP)", S['SectionTitle']))
story.append(two_col_table([
    ["At Birth", "BCG, OPV-0 (within 24 hrs), Hep B-0 (within 24 hrs)"],
    ["6 weeks", "OPV-1, Penta-1 (DPT+HepB+Hib), PCV-1, Rota-1, fIPV-1"],
    ["10 weeks", "OPV-2, Penta-2, Rota-2"],
    ["14 weeks", "OPV-3, Penta-3, PCV-2, Rota-3, fIPV-2"],
    ["9 months", "Measles-Rubella (MR-1), Vit A-1, JE (endemic areas)"],
    ["12 months", "PCV-Booster"],
    ["16-24 months", "MR-2, DPT Booster-1, OPV Booster, Vit A-2"],
    ["5-6 years", "DPT Booster-2"],
    ["10 years", "Td"],
    ["16 years", "Td"],
    ["Pregnant Women", "TT1, TT2 / Booster"],
], headers=["Age", "Vaccines"], col_widths=[4*cm, 13*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("Cold chain maintenance: Vaccines stored at +2ยฐC to +8ยฐC. BCG viable at room temp for 4 hrs after reconstitution. OPV stored at -15ยฐC to -25ยฐC at district level."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("IMNCI - Integrated Management of Neonatal and Childhood Illness", S['SectionTitle']))
story.append(bullet("Covers children 0-5 years"))
story.append(bullet("Classifies illness into: Very Severe / Severe / No Severe Disease"))
story.append(bullet("Key danger signs: Convulsions, unconscious/lethargic, not feeding, high fever, stiff neck"))
story.append(bullet("Oral Rehydration Therapy (ORT): First-line for diarrhea"))
story.append(sub_bullet("ORS: 3.5g NaCl + 2.9g Na Citrate + 1.5g KCl + 20g glucose in 1L water"))
story.append(sub_bullet("Zinc supplementation: 20 mg/day x 14 days for children >6 months; 10 mg/day for <6 months"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Vitamin A Supplementation", S['SubTitle']))
story.append(two_col_table([
    ["9 months", "1,00,000 IU (Dose 1)"],
    ["16-18 months", "2,00,000 IU (Dose 2)"],
    ["Every 6 months till 5 years", "2,00,000 IU (Doses 3-9)"],
], headers=["Age", "Dose"], col_widths=[6*cm, 11*cm]))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 4: ADOLESCENT HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("4. ADOLESCENT HEALTH (RKSK)", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Rashtriya Kishor Swasthya Karyakram (RKSK)", S['SectionTitle']))
story.append(bullet("Target group: 10-19 years (WHO definition of adolescence)"))
story.append(bullet("6 key components: Nutrition, Sexual & Reproductive Health, Non-communicable disease, Mental health, Substance misuse, Injuries & violence"))
story.append(bullet("AHD (Adolescent Health Day): Monthly at HWC/sub-centre"))
story.append(bullet("WIFS (Weekly Iron Folic Acid Supplementation): IFA (large blue tablet) given weekly to school-going adolescents 10-19 yrs"))
story.append(sub_bullet("Boys & Girls (10-19 yrs): 1 tablet weekly (60 mg elemental iron + 500 mcg folic acid)"))
story.append(bullet("Anemia Mukt Bharat: Targeted at 6 beneficiary groups including adolescents"))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("RKSK Peer Educator: Selected adolescent who acts as health champion in community. ARSH clinics: Adolescent Reproductive and Sexual Health clinics at CHCs/District Hospitals."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Menstrual Hygiene", S['SubTitle']))
story.append(bullet("Sanitary Napkin Scheme (MHS): Free/subsidized pads at Rs.6 per pack (8 pads)"))
story.append(bullet("Promote use of sanitary pads, menstrual cups, and proper disposal"))
story.append(bullet("Menstrual hygiene days: 28 May - World Menstrual Hygiene Day"))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 5: FAMILY PLANNING โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("5. FAMILY PLANNING", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Contraceptive Methods", S['SectionTitle']))
story.append(two_col_table([
    ["Condoms", "Male (85-98% efficacy), Female condoms; dual protection (STI + pregnancy)"],
    ["OCP (Combined Pill)", "Estrogen + Progesterone; 99% efficacy if used correctly; Mala-D/Mala-N"],
    ["Emergency Contraception", "Levonorgestrel 1.5 mg (single dose within 72 hrs); 'i-pill'; 85% effective"],
    ["IUCD 375", "Copper-T; effective for 10-12 years; inserted at PHC/CHC"],
    ["PPIUCD", "Post-Partum IUCD: inserted within 48 hrs or 6 weeks after delivery"],
    ["Antara (DMPA)", "Injectable contraceptive (150mg IM every 3 months); no estrogen"],
    ["Chhaya (Centchroman)", "Non-steroidal; once weekly for 3 months then fortnightly"],
    ["Female Sterilization", "Tubectomy (modified Pomeroy technique); MINILAP or laparoscopic"],
    ["Male Sterilization", "Vasectomy (NSV - No Scalpel Vasectomy); simpler, safer"],
], headers=["Method", "Key Details"], col_widths=[4*cm, 13*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("Mission Parivar Vikas: For 146 high fertility districts (TFR >3). Nishchay pregnancy test kit provided free under JSY. ASHA incentives for IUD, sterilization promotion."))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 6: COMMUNICABLE DISEASES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("6. COMMUNICABLE DISEASES", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Major Communicable Diseases - Quick Reference", S['SectionTitle']))
story.append(two_col_table([
    ["Tuberculosis (TB)", "Mycobacterium tuberculosis; droplet infection; Nikshay Poshan Yojana Rs.500/month; DOTS 6 months"],
    ["Malaria", "Plasmodium vivax / falciparum; Anopheles mosquito; ASHA gets ACT for P.vivax; RDK test"],
    ["Dengue", "Aedes aegypti mosquito; Thrombocytopenia; Dengue NS1 Ag test; no vaccine (in national program)"],
    ["HIV/AIDS", "Sexual, blood, mother-to-child; ICTC testing; ART free under NACO; Window period 3-12 wks"],
    ["Leprosy", "Mycobacterium leprae; MDT treatment; NLEP; Leprosy Elimination <1 per 10,000"],
    ["Filaria", "Wuchereria bancrofti; Culex mosquito; MDA (Mass Drug Administration); DEC + Albendazole"],
    ["Kala Azar", "Leishmania donovani; Phlebotomus sandfly; SSG / Miltefosine treatment"],
    ["Typhoid", "Salmonella typhi; feco-oral route; Widal test; Ciprofloxacin treatment"],
    ["Cholera", "Vibrio cholerae; feco-oral; Rice water stool; ORT; Doxycycline"],
    ["Rabies", "Rhabdovirus; animal bite; PEP (post-exposure prophylaxis) with ARV + HRIG"],
    ["COVID-19", "SARS-CoV-2; droplet; PPE; isolation; COVID vaccines (Covaxin/Covishield/Corbevax)"],
], headers=["Disease", "Key Points"], col_widths=[4*cm, 13*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Disease Reporting (Notifiable Diseases)", S['SubTitle']))
story.append(bullet("Immediately notifiable: Cholera, Plague, Yellow Fever, SARS, COVID-19"))
story.append(bullet("Weekly notifiable: Malaria, Typhoid, Dengue, Acute Encephalitis, AFP"))
story.append(bullet("Reported to: District Health Officer โ†’ State โ†’ Central Surveillance Unit"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Vector Control Methods", S['SubTitle']))
story.append(two_col_table([
    ["Source Reduction", "Eliminate breeding sites; remove stagnant water"],
    ["Biological Control", "Gambusia fish (eats larvae); Bacillus thuringiensis israelensis (Bti)"],
    ["Chemical Control", "DDT (now limited use), Pyrethrum spray, Temephos (larvicide)"],
    ["Personal Protection", "Bed nets, repellents (DEET), long-sleeved clothing"],
], headers=["Method", "Examples"]))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 7: NON-COMMUNICABLE DISEASES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("7. NON-COMMUNICABLE DISEASES (NCD)", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Major NCDs and Risk Factors", S['SectionTitle']))
story.append(two_col_table([
    ["Cardiovascular Disease (CVD)", "Hypertension, smoking, dyslipidemia, diabetes; ECG, Echo; Aspirin 75mg"],
    ["Diabetes Mellitus", "Type 1 (insulin-dependent) / Type 2; FBS >126 mg/dL, PPBS >200, HbA1c โ‰ฅ6.5%; Metformin first-line"],
    ["Hypertension", "BP โ‰ฅ140/90 mmHg; silent killer; low-salt diet; Amlodipine/Lisinopril"],
    ["Cancer", "Cervical (PAP smear, HPV vaccine), Breast (CBE, mammography), Oral (VIA)"],
    ["Chronic Respiratory Diseases", "COPD (smoking), Asthma; Spirometry; Salbutamol inhaler"],
    ["Mental Disorders", "Depression, Schizophrenia โ€” see Mental Health chapter"],
    ["Obesity", "BMI โ‰ฅ25 = overweight; BMI โ‰ฅ30 = obese (for Indians: โ‰ฅ23/27.5)"],
], headers=["NCD", "Key Facts"], col_widths=[5*cm, 12*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("NPCDCS: National Programme for Prevention and Control of Cancer, Diabetes, CVD and Stroke โ€” NCD screening at HWC for 30+ years population. 3 key screenings: Diabetes, Hypertension, 3 cancers (oral, breast, cervical)."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Cancer Screening at HWC", S['SubTitle']))
story.append(bullet("Oral Cancer: Visual examination of oral cavity; VIA for oral pre-cancerous lesions"))
story.append(bullet("Breast Cancer: Clinical Breast Examination (CBE) โ€” palpation by CHO/ANM for women 30+"))
story.append(bullet("Cervical Cancer: VIA (Visual Inspection with Acetic Acid) and HPV DNA test"))
story.append(sub_bullet("PAP smear: Exfoliative cytology; Cervical cells; Bethesda classification"))
story.append(sub_bullet("HPV Vaccine: 2 doses for girls 9-14 yrs; 3 doses for 15+ yrs"))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 8: NUTRITION โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("8. NUTRITION", PURPLE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Nutritional Assessment Methods - ABCD", S['SectionTitle']))
story.append(two_col_table([
    ["A - Anthropometric", "Weight, Height, MUAC, BMI, Head circumference"],
    ["B - Biochemical", "Hb, serum albumin, urine iodine, ferritin"],
    ["C - Clinical", "Signs of deficiency (Bitot spots, glossitis, edema, etc.)"],
    ["D - Dietary", "24-hr recall, food frequency questionnaire"],
], headers=["Method", "Examples"]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Malnutrition Assessment in Children", S['SubTitle']))
story.append(two_col_table([
    ["Severe Acute Malnutrition (SAM)", "Weight for height <-3 SD OR MUAC <11.5 cm OR bilateral pitting edema"],
    ["Moderate Acute Malnutrition (MAM)", "Weight for height -2 to -3 SD OR MUAC 11.5-12.5 cm"],
    ["Stunting", "Height for age <-2 SD (chronic malnutrition)"],
    ["Wasting", "Weight for height <-2 SD (acute malnutrition)"],
    ["Underweight", "Weight for age <-2 SD"],
], headers=["Type", "Criteria"]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("SAM children with complications โ†’ NRC (Nutritional Rehabilitation Centre). CMAM: Community-based Management of Acute Malnutrition using RUTF (Ready-to-Use Therapeutic Food)."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Nutritional Deficiency Diseases", S['SectionTitle']))
story.append(two_col_table([
    ["Protein Energy Malnutrition", "Kwashiorkor (protein def โ€” edema, moon face); Marasmus (total energy โ€” wasting)"],
    ["Vitamin A Deficiency", "Night blindness, Bitot spots, keratomalacia; give 2 lakh IU Vit A"],
    ["Vitamin D Deficiency", "Rickets (children), Osteomalacia (adults); sunlight + Vit D supplements"],
    ["Iodine Deficiency", "Goitre, Cretinism (congenital hypothyroidism); iodized salt (15 ppm at consumer level)"],
    ["Iron Deficiency Anemia", "Most common nutritional deficiency; IFA tablets; Hb <11 g/dL in pregnant women"],
    ["Vitamin B12 Deficiency", "Megaloblastic anemia; neurological symptoms; common in vegetarians"],
    ["Pellagra", "Niacin (Vit B3) deficiency; 3Ds: Dermatitis, Diarrhea, Dementia"],
    ["Scurvy", "Vitamin C deficiency; bleeding gums, perifollicular hemorrhages"],
    ["Beriberi", "Thiamine (Vit B1) deficiency; Wet (cardiac) / Dry (neurological)"],
], headers=["Condition", "Key Features"], col_widths=[5*cm, 12*cm]))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 9: MENTAL HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("9. MENTAL HEALTH", PURPLE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("NMHP and DMHP", S['SectionTitle']))
story.append(bullet("NMHP (National Mental Health Programme) โ€” launched 1982"))
story.append(bullet("DMHP (District Mental Health Programme) โ€” district-level implementation"))
story.append(bullet("Goal: community-based mental health services; integration with primary care"))
story.append(bullet("MHCA (Mental Health Care Act) 2017 โ€” Right to mental healthcare as legal right"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Common Mental Disorders", S['SectionTitle']))
story.append(two_col_table([
    ["Depression", "Low mood >2 weeks; anhedonia; insomnia; PHQ-9 screening tool; SSRIs (Fluoxetine)"],
    ["Anxiety Disorders", "GAD (>6 months), Panic Disorder, Phobia; GAD-7 tool; Counseling + SSRI"],
    ["Schizophrenia", "Hallucinations, delusions, disorganized thinking; Haloperidol/Risperidone"],
    ["Bipolar Disorder", "Manic + depressive episodes; Lithium (mood stabilizer)"],
    ["Alcohol Use Disorder", "ICD-10 diagnosis; Disulfiram / Naltrexone; Motivational Interviewing"],
    ["Dementia", "Progressive cognitive decline; Alzheimer's (most common); Mini-Mental State Exam (MMSE)"],
    ["Autism Spectrum Disorder", "Social communication deficits; repetitive behaviors; early intervention"],
], headers=["Condition", "Key Points"], col_widths=[4*cm, 13*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("iCall: Tele-mental health platform. KIRAN Helpline: 1800-599-0019 (free, 24x7 mental health support). NIMHANS: National apex mental health institute in Bengaluru."))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 10: REFERRAL LINKAGE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("10. REFERRAL LINKAGE & HEALTH SYSTEM", DARK_BLUE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Health & Wellness Centre (HWC)", S['SectionTitle']))
story.append(bullet("Upgraded from Sub-Centres under Ayushman Bharat"))
story.append(bullet("CHO (B.Sc Nursing / BAMS / BUMS) provides 12 service packages"))
story.append(bullet("12 Comprehensive Primary Health Care service packages:"))
story.append(sub_bullet("Pregnancy care, Neonatal & Infant, Child health, Adolescent health"))
story.append(sub_bullet("Family planning, Communicable diseases, NCD care, Mental health"))
story.append(sub_bullet("Elderly care, Palliative care, ENT/Ophthalmology/Oral health, Trauma/Emergency"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Referral System", S['SectionTitle']))
story.append(two_col_table([
    ["Horizontal Referral", "Referral between facilities at same level for special services"],
    ["Vertical Referral (upward)", "Sub-centre โ†’ PHC โ†’ CHC โ†’ Sub-District โ†’ District Hospital"],
    ["Back Referral (downward)", "District Hospital โ†’ CHC โ†’ PHC for follow-up/continuity of care"],
    ["Referral Slip", "Must include: patient details, diagnosis, treatment given, referring facility, contact"],
], headers=["Type", "Description"]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("ASHA: Link between community and health system. ASHA incentive for: JSY, PPIUCD, Sterilization, ANC registration, child immunization, DOTS, TB notification, NCD screening."))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 11: ELDERLY & PALLIATIVE CARE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("11. ELDERLY & PALLIATIVE CARE", PURPLE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Geriatric Health", S['SectionTitle']))
story.append(bullet("Elderly: age โ‰ฅ60 years (India definition)"))
story.append(bullet("NSAP (National Social Assistance Programme): Indira Gandhi National Old Age Pension"))
story.append(bullet("RASHTRIYA VAYOSHRI YOJANA: Free assistive devices for BPL elderly"))
story.append(bullet("Common problems: Hypertension, Diabetes, Osteoporosis, Falls, Dementia, Depression, Polypharmacy"))
story.append(bullet("Geriatric Assessment: ADL (Activities of Daily Living), IADL, Tinetti Fall Risk, MMSE"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Palliative Care", S['SectionTitle']))
story.append(bullet("Goal: Relieve suffering; improve quality of life; not cure"))
story.append(bullet("Target: Terminal illness โ€” cancer, end-stage organ failure, HIV/AIDS"))
story.append(bullet("Pain management: WHO analgesic ladder โ€” Paracetamol โ†’ NSAID โ†’ Weak opioid โ†’ Morphine"))
story.append(bullet("Hospice care: Home-based / inpatient for dying patients"))
story.append(bullet("National Programme for Palliative Care under NHM"))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 12: EMERGENCY SERVICES & BASIC CLINICAL SKILLS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("12. EMERGENCY SERVICES & BASIC CLINICAL SKILLS", ORANGE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Basic Life Support (BLS) - Adult", S['SectionTitle']))
story.append(two_col_table([
    ["Check scene safety", "Ensure no danger to rescuer"],
    ["Check responsiveness", "Tap shoulders, shout 'Are you okay?'"],
    ["Call for help", "Call 108 / activate emergency response"],
    ["Check breathing", "Look, listen, feel for โ‰ค10 seconds"],
    ["Chest compressions", "30 compressions: 100-120/min, depth 5-6 cm, heel of hand, center of chest"],
    ["Rescue breaths", "2 breaths after 30 compressions (30:2 ratio); tilt head-lift chin"],
    ["AED", "Attach as soon as available; follow voice prompts"],
], headers=["Step", "Action"], col_widths=[5*cm, 12*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Vital Signs - Normal Values", S['SectionTitle']))
story.append(two_col_table([
    ["Blood Pressure (Adult)", "120/80 mmHg (normal); โ‰ฅ140/90 = Hypertension; <90/60 = Hypotension"],
    ["Heart Rate (Adult)", "60-100 beats/min"],
    ["Respiratory Rate (Adult)", "12-20 breaths/min; tachypnea >20; bradypnea <12"],
    ["Temperature", "36.5ยฐC - 37.5ยฐC (oral); fever >38ยฐC; hyperpyrexia >41ยฐC"],
    ["SpO2", "โ‰ฅ95% (normal); <90% = hypoxia requiring O2 therapy"],
    ["Blood Glucose", "FBS 70-100 mg/dL; PPBS <140 mg/dL; hypoglycemia <70 mg/dL"],
    ["MUAC (Adult female)", "<19 cm = severe malnutrition; <22.5 cm = risk"],
], headers=["Parameter", "Normal / Action Values"], col_widths=[5*cm, 12*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(important_box("108 (Emergency Ambulance), 104 (Mobile Health Unit / Helpline), 102 (Free Maternity Ambulance), 112 (Police/Emergency)."))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 13: ORAL & ENT HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("13. ORAL & ENT HEALTH", TEAL))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Oral Health", S['SectionTitle']))
story.append(bullet("DMFT Index: Decayed, Missing, Filled Teeth โ€” measures dental caries burden"))
story.append(bullet("Dental caries: Mutans streptococcus; prevention โ€” fluoride toothpaste, pit fissure sealants"))
story.append(bullet("Fluorosis: Excess fluoride (>1.5 ppm in water) โ€” mottling of enamel"))
story.append(bullet("Oral cancer screening: Visual examination for ulcers, patches, leukoplakia"))
story.append(bullet("National Oral Health Programme (NOHP): Integration at HWC level"))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("ENT (Ear, Nose, Throat) Basics", S['SectionTitle']))
story.append(bullet("ASOM (Acute Suppurative Otitis Media): Ear pain, fever, discharge; Amoxicillin"))
story.append(bullet("Hearing Impairment: Newborn hearing screening (OAE test); hearing aids"))
story.append(bullet("RBSK: Screening for hearing defects in children 0-18 yrs"))
story.append(bullet("Allergic rhinitis: Sneezing, rhinorrhea, nasal congestion; Cetrizine/Loratadine"))
story.append(bullet("Tonsillitis: Streptococcal โ€” Penicillin; recurrent โ†’ tonsillectomy"))
story.append(PageBreak())

# โ”€โ”€โ”€ CHAPTER 14: NHM PROGRAMS - KEY FACTS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(chapter_header("14. NHM PROGRAMS - KEY FACTS", ORANGE))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Important Programs at a Glance", S['SectionTitle']))
story.append(two_col_table([
    ["JSY", "Janani Suraksha Yojana โ€” Cash for institutional delivery; ASHA Rs.600 per case"],
    ["JSSK", "Janani Shishu Suraksha Karyakram โ€” Free delivery (C-section too), free drugs, free diet, free transport, free blood"],
    ["PMSMA", "Free ANC on 9th of every month at PHC/CHC/DH; Hb, BP, urine, USG"],
    ["LaQshya", "Labour Room Quality Improvement Initiative โ€” respectful maternity care"],
    ["POSHAN Abhiyaan", "National Nutrition Mission: Reduce stunting, undernutrition, anemia (2022 targets)"],
    ["PM-JAY", "Pradhan Mantri Jan Arogya Yojana (Ayushman Bharat) โ€” Rs.5 lakh/family/year health cover"],
    ["PMBJP", "Pradhan Mantri Bhartiya Janaushadhi Pariyojana โ€” generic medicines at low cost"],
    ["PCPNDT Act", "Pre-Conception and Pre-Natal Diagnostic Techniques Act, 1994 โ€” ban sex determination"],
    ["MTP Act", "Medical Termination of Pregnancy Act 1971 (amended 2021) โ€” up to 20 wks normally, up to 24 wks special cases"],
    ["PNDT / PC-PNDT", "Sex ratio at birth (SRB) monitoring; Beti Bachao Beti Padhao"],
    ["RSBY", "Rashtriya Swasthya Bima Yojana (now replaced by PM-JAY for BPL)"],
    ["RBSK", "Rashtriya Bal Swasthya Karyakram โ€” 4D screening: Defects at birth, Diseases, Deficiencies, Developmental delays"],
    ["Anemia Mukt Bharat", "6 beneficiary groups; IFA supplementation; WIFS for adolescents; IFA for infants 6-59 months"],
    ["NHM ASHA", "Selection: Female, married, widowed/divorced, 25-45 yrs, 8th pass; 1 per 1000 population"],
], headers=["Program/Act", "Key Point"], col_widths=[4*cm, 13*cm]))
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# PART B: PRACTICE MCQs
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chapter_header("PART B: PRACTICE MCQs (100 Questions)", ORANGE))
story.append(Spacer(1, 0.4*cm))
story.append(highlight_box(
    "Instructions: 100 MCQs | 1 mark each | No negative marking | Time: 90 minutes | Answers given below each question.",
    YELLOW, ORANGE))
story.append(Spacer(1, 0.3*cm))

# SECTION A: PUBLIC HEALTH BASICS (Q1-15)
story.append(chapter_header("Section A: Basic Concepts of Public Health (Q1-15)", TEAL))
story.append(Spacer(1, 0.2*cm))

mcqs_ph = [
    (1, "Which level of prevention involves vaccination against disease before it occurs?",
     ["A) Primordial", "B) Primary", "C) Secondary", "D) Tertiary"],
     "B) Primary Prevention", "Vaccination prevents disease from occurring โ€” primary prevention."),
    (2, "The population norm for a Sub-Centre (plains) is:",
     ["A) 1,000", "B) 5,000", "C) 3,000", "D) 10,000"],
     "C) 3,000", "Sub-Centre serves 3,000 population in plains, 1,000 in hilly/tribal areas."),
    (3, "Infant Mortality Rate is defined as deaths per 1,000:",
     ["A) Total population", "B) Live births", "C) Under-5 population", "D) Women of reproductive age"],
     "B) Live births", "IMR = deaths under 1 year per 1,000 live births."),
    (4, "Health & Wellness Centres were launched under which scheme?",
     ["A) NRHM", "B) Ayushman Bharat", "C) JSSK", "D) POSHAN Abhiyaan"],
     "B) Ayushman Bharat", "HWCs are one of the two components of Ayushman Bharat."),
    (5, "Which indicator best reflects overall health status of a country?",
     ["A) Crude Death Rate", "B) IMR", "C) Life expectancy at birth", "D) Crude Birth Rate"],
     "C) Life expectancy at birth", "Life expectancy is the most comprehensive single health status indicator."),
    (6, "ASHA stands for:",
     ["A) Auxiliary Social Health Assistant", "B) Accredited Social Health Activist", "C) Authorized Social Health Agent", "D) Assistant Social Health Aide"],
     "B) Accredited Social Health Activist", "ASHA is the community health worker under NHM."),
    (7, "The Winslow definition of Public Health was given in which year?",
     ["A) 1910", "B) 1920", "C) 1948", "D) 1978"],
     "B) 1920", "C.E.A. Winslow defined public health in 1920."),
    (8, "Which is NOT a component of Primary Health Care (Alma-Ata 1978)?",
     ["A) Food supply and nutrition", "B) Safe water and sanitation", "C) Surgical services", "D) Immunization"],
     "C) Surgical services", "PHC principles do not include specialized surgical services."),
    (9, "MMR in India as per SRS 2018-20 is:",
     ["A) 67", "B) 97", "C) 113", "D) 130"],
     "B) 97", "India's MMR was 97 per 1,00,000 live births per SRS 2018-20."),
    (10, "The number of beds at a Community Health Centre (CHC) is:",
     ["A) 6", "B) 10", "C) 30", "D) 100"],
     "C) 30", "CHC has 30 beds and 4 specialists."),
    (11, "Screening for disease belongs to which level of prevention?",
     ["A) Primordial", "B) Primary", "C) Secondary", "D) Tertiary"],
     "C) Secondary Prevention", "Screening = early detection = secondary prevention."),
    (12, "Total Fertility Rate (TFR) of India as per NFHS-5 is:",
     ["A) 1.8", "B) 2.0", "C) 2.3", "D) 2.7"],
     "B) 2.0", "TFR of India in NFHS-5 (2019-21) is 2.0."),
    (13, "The CHO provides services primarily at:",
     ["A) PHC", "B) CHC", "C) Health & Wellness Centre", "D) District Hospital"],
     "C) Health & Wellness Centre", "CHO is posted at upgraded Sub-Centre / HWC."),
    (14, "Which emergency ambulance number should be called for a medical emergency in Maharashtra?",
     ["A) 102", "B) 104", "C) 108", "D) 112"],
     "C) 108", "108 is the emergency ambulance service; 102 is maternity ambulance."),
    (15, "Under NHM, one ASHA is appointed per how many population?",
     ["A) 500", "B) 1000", "C) 2000", "D) 3000"],
     "B) 1000 population", "1 ASHA per 1,000 population in rural areas."),
]
for q in mcqs_ph:
    for e in mcq_block(*q): story.append(e)

story.append(Spacer(1, 0.3*cm))
story.append(chapter_header("Section B: Maternal & Child Health (Q16-35)", TEAL))
story.append(Spacer(1, 0.2*cm))

mcqs_mch = [
    (16, "Janani Suraksha Yojana (JSY) provides cash incentive for:",
     ["A) Family planning", "B) Institutional delivery", "C) Antenatal registration", "D) Immunization"],
     "B) Institutional delivery", "JSY incentivizes institutional delivery especially in LPS states."),
    (17, "The minimum number of ANC visits recommended in India is:",
     ["A) 2", "B) 3", "C) 4", "D) 8"],
     "C) 4 ANC visits", "India recommends minimum 4 ANC visits; WHO recommends โ‰ฅ8."),
    (18, "IFA tablet given during ANC contains how much elemental iron?",
     ["A) 60 mg", "B) 100 mg", "C) 200 mg", "D) 45 mg"],
     "B) 100 mg elemental iron + 500 mcg folic acid", "ANC IFA: 100 mg iron + 500 mcg folic acid for 180 days."),
    (19, "Post-Partum IUCD (PPIUCD) is inserted within:",
     ["A) 24 hours of delivery", "B) 48 hours or 6 weeks of delivery", "C) 3 months of delivery", "D) Only at 6 weeks postpartum"],
     "B) Within 48 hours or at 6 weeks", "PPIUCD insertion: within 48 hrs postpartum or 6-week checkup."),
    (20, "BCG vaccine is given at:",
     ["A) 6 weeks", "B) At birth", "C) 9 months", "D) 14 weeks"],
     "B) At birth", "BCG is given at birth along with OPV-0 and Hep B-0."),
    (21, "Exclusive breastfeeding should be continued for:",
     ["A) 3 months", "B) 4 months", "C) 6 months", "D) 12 months"],
     "C) 6 months", "WHO and NHM recommend exclusive breastfeeding for 6 months."),
    (22, "OPV Booster is given at which age?",
     ["A) 6 months", "B) 9 months", "C) 16-24 months", "D) 5 years"],
     "C) 16-24 months", "OPV Booster along with MR-2 and DPT Booster-1 at 16-24 months."),
    (23, "JSSK provides free services EXCEPT:",
     ["A) Diet during hospitalization", "B) Blood transfusion", "C) Travel reimbursement", "D) Vaccination for children >1 year"],
     "D) Vaccination for children >1 year", "JSSK covers sick neonates up to 30 days; not older children's vaccines."),
    (24, "Vitamin A dose given at 9 months is:",
     ["A) 50,000 IU", "B) 1,00,000 IU", "C) 2,00,000 IU", "D) 5,00,000 IU"],
     "B) 1,00,000 IU", "First dose at 9 months is 1 lakh IU; subsequent doses are 2 lakh IU."),
    (25, "PNC visit schedule after delivery includes all EXCEPT:",
     ["A) Day 1", "B) Day 3", "C) Day 7", "D) Day 21"],
     "D) Day 21", "PNC visits: Day 1, 3, 7, and 42 days."),
    (26, "PMSMA stands for:",
     ["A) Pradhan Mantri Surakshit Matritva Abhiyan", "B) Pradhan Mantri Swasthya Mission for All", "C) Pradhan Mantri Stree Mangal Abhiyan", "D) Pradhan Mantri Samagra Matritva Abhiyan"],
     "A) Pradhan Mantri Surakshit Matritva Abhiyan", "PMSMA provides free ANC on 9th of every month."),
    (27, "RBSK screens children in the age group:",
     ["A) 0-5 years", "B) 0-18 years", "C) 6-14 years", "D) 5-16 years"],
     "B) 0-18 years", "RBSK covers 0-18 years for 4D screening."),
    (28, "Which of these is a danger sign during pregnancy?",
     ["A) Mild nausea in 1st trimester", "B) Fetal movements", "C) Blurring of vision", "D) Mild back pain"],
     "C) Blurring of vision", "Blurring of vision is a danger sign suggestive of pre-eclampsia/eclampsia."),
    (29, "ORS solution contains which of the following?",
     ["A) NaCl + KCl + Na Citrate + Glucose", "B) NaCl + Sucrose + MgSO4", "C) KCl + Glucose only", "D) NaCl + Glucose only"],
     "A) NaCl + KCl + Na Citrate + Glucose", "WHO-ORS contains NaCl, Na Citrate, KCl, and Glucose."),
    (30, "Breastfeeding should be initiated within how many hours of birth?",
     ["A) 6 hours", "B) 12 hours", "C) 1 hour", "D) 24 hours"],
     "C) Within 1 hour of birth", "Early initiation of breastfeeding within 1 hour is recommended."),
    (31, "Which vaccine is stored at -15ยฐC to -25ยฐC?",
     ["A) BCG", "B) OPV", "C) DPT", "D) Hep B"],
     "B) OPV", "OPV is stored frozen at district level (-15 to -25ยฐC)."),
    (32, "IMNCI covers children up to:",
     ["A) 1 year", "B) 2 years", "C) 3 years", "D) 5 years"],
     "D) 5 years", "IMNCI covers 0-5 years (0-59 months)."),
    (33, "Which component is NOT included in Pentavalent (Penta) vaccine?",
     ["A) DPT", "B) HepB", "C) Hib", "D) MMR"],
     "D) MMR", "Penta = DPT + Hep B + Hib (5 antigens). MMR is separate."),
    (34, "TFR (Total Fertility Rate) of India at which level is replacement fertility?",
     ["A) 1.5", "B) 2.1", "C) 2.5", "D) 3.0"],
     "B) 2.1", "Replacement level fertility (TFR) = 2.1 children per woman."),
    (35, "ASHA receives how much incentive for JSY referral per delivery in rural Maharashtra?",
     ["A) Rs.300", "B) Rs.600", "C) Rs.1400", "D) Rs.700"],
     "B) Rs.600", "ASHA receives Rs.600 per institutional delivery assisted under JSY."),
]
for q in mcqs_mch:
    for e in mcq_block(*q): story.append(e)

story.append(PageBreak())
story.append(chapter_header("Section C: Communicable & Non-Communicable Diseases (Q36-60)", DARK_BLUE))
story.append(Spacer(1, 0.2*cm))

mcqs_cd = [
    (36, "Malaria is transmitted by which mosquito?",
     ["A) Aedes aegypti", "B) Culex quinquefasciatus", "C) Anopheles", "D) Mansonia"],
     "C) Anopheles mosquito", "Anopheles is the vector for malaria."),
    (37, "Dengue fever is caused by which organism?",
     ["A) Bacteria", "B) Protozoa", "C) Virus (Flavivirus)", "D) Helminth"],
     "C) Virus (Flavivirus)", "Dengue is caused by Dengue virus (Flavivirus, 4 serotypes)."),
    (38, "Which is the diagnostic test for TB in India at peripheral level?",
     ["A) X-ray chest", "B) CBNAAT (GeneXpert)", "C) Mantoux test", "D) Culture"],
     "B) CBNAAT (GeneXpert)", "GeneXpert/CBNAAT is the preferred diagnostic test at peripheral level under NIKSHAY."),
    (39, "Duration of treatment in new sputum-positive TB case (Category I) is:",
     ["A) 3 months", "B) 6 months", "C) 9 months", "D) 12 months"],
     "B) 6 months", "New TB: 2HRZE + 4HR (6 months total under DOTS/NTEP)."),
    (40, "Rice-water stools are a hallmark of:",
     ["A) Typhoid", "B) Dysentery", "C) Cholera", "D) Giardiasis"],
     "C) Cholera", "Profuse rice-water stool is the classic presentation of cholera."),
    (41, "Window period of HIV infection is:",
     ["A) 1-2 days", "B) 3-12 weeks", "C) 6-12 months", "D) 2 years"],
     "B) 3-12 weeks", "Window period (HIV antibodies not detectable) is 3-12 weeks."),
    (42, "Widal test is used to diagnose:",
     ["A) Malaria", "B) Typhoid", "C) Dengue", "D) Leptospirosis"],
     "B) Typhoid (Salmonella typhi)", "Widal test detects agglutinating antibodies against Salmonella."),
    (43, "MDT in leprosy stands for:",
     ["A) Mass Drug Therapy", "B) Multi-Drug Therapy", "C) Multi-Disease Treatment", "D) Mandatory Drug Therapy"],
     "B) Multi-Drug Therapy", "MDT = Dapsone + Rifampicin (PB) or + Clofazimine (MB) for leprosy."),
    (44, "Filariasis is caused by:",
     ["A) Plasmodium vivax", "B) Wuchereria bancrofti", "C) Leishmania donovani", "D) Treponema pallidum"],
     "B) Wuchereria bancrofti", "W. bancrofti causes lymphatic filariasis; vector = Culex mosquito."),
    (45, "Post-exposure prophylaxis (PEP) for rabies includes:",
     ["A) Antibiotics only", "B) ARV + HRIG", "C) Steroids", "D) Antivenom"],
     "B) ARV (Anti-Rabies Vaccine) + HRIG (Human Rabies Immunoglobulin)", "PEP for rabies = wound wash + ARV + HRIG."),
    (46, "Normal fasting blood glucose level is:",
     ["A) <70 mg/dL", "B) 70-100 mg/dL", "C) 100-125 mg/dL", "D) >126 mg/dL"],
     "B) 70-100 mg/dL", "Normal FBS is 70-100 mg/dL. Diabetes: FBS โ‰ฅ126 mg/dL."),
    (47, "Hypertension is diagnosed when BP is โ‰ฅ:",
     ["A) 120/80 mmHg", "B) 130/85 mmHg", "C) 140/90 mmHg", "D) 150/95 mmHg"],
     "C) โ‰ฅ140/90 mmHg", "JNC-8 and Indian guidelines: HTN = โ‰ฅ140/90 mmHg on 2 occasions."),
    (48, "HPV vaccine is given to girls to prevent which cancer?",
     ["A) Breast cancer", "B) Ovarian cancer", "C) Cervical cancer", "D) Endometrial cancer"],
     "C) Cervical cancer", "HPV (serotypes 16, 18) causes 70% cervical cancers. Vaccine = primary prevention."),
    (49, "VIA stands for:",
     ["A) Vaginal Inspection by Acrid solution", "B) Visual Inspection with Acetic Acid", "C) Vaginal Inspection Analysis", "D) Visual Immunological Assessment"],
     "B) Visual Inspection with Acetic Acid", "VIA is used for cervical cancer screening; acetowhite areas = positive."),
    (50, "PAP smear is a screening test for:",
     ["A) Breast cancer", "B) Ovarian cancer", "C) Cervical cancer", "D) Vaginal cancer"],
     "C) Cervical cancer", "PAP smear (exfoliative cytology) screens for cervical cancer."),
    (51, "NPCDCS is a national program for:",
     ["A) Cancer, Diabetes, CVD, Stroke", "B) Communicable diseases", "C) Child nutrition", "D) Eye diseases"],
     "A) Cancer, Diabetes, CVD, Stroke", "National Programme for Prevention and Control of Cancer, Diabetes, CVD, and Stroke."),
    (52, "DOTS stands for:",
     ["A) Direct Observation Treatment Short-course", "B) Daily Oral Treatment System", "C) Drug and Oral Treatment Scheme", "D) Directly Observed Therapy Short-course"],
     "D) Directly Observed Therapy Short-course", "DOTS = treatment given under direct observation to ensure adherence."),
    (53, "Gambusia fish is used for biological control of:",
     ["A) Flies", "B) Mosquito larvae", "C) Rats", "D) Cockroaches"],
     "B) Mosquito larvae", "Gambusia affinis eats mosquito larvae โ€” biological control."),
    (54, "Which disease is targeted for elimination <1 per 10,000 population?",
     ["A) TB", "B) Malaria", "C) Leprosy", "D) Filaria"],
     "C) Leprosy", "Leprosy elimination target = <1 case per 10,000 population."),
    (55, "Nikshay Poshan Yojana provides how much per month to TB patients?",
     ["A) Rs.200", "B) Rs.500", "C) Rs.1000", "D) Rs.2000"],
     "B) Rs.500 per month", "Nikshay Poshan Yojana: Rs.500/month to TB patients for nutritional support."),
    (56, "The causative agent of Kala Azar is:",
     ["A) Leishmania donovani", "B) Trypanosoma cruzi", "C) Plasmodium malariae", "D) Wuchereria bancrofti"],
     "A) Leishmania donovani", "Kala Azar = visceral leishmaniasis; vector = Phlebotomus sandfly."),
    (57, "HbA1c of โ‰ฅ how much percent is diagnostic of Diabetes Mellitus?",
     ["A) 5.7%", "B) 6.0%", "C) 6.5%", "D) 7.0%"],
     "C) 6.5%", "HbA1c โ‰ฅ6.5% is diagnostic of DM; 5.7-6.4% = prediabetes."),
    (58, "PCPNDT Act was enacted in:",
     ["A) 1971", "B) 1985", "C) 1994", "D) 2001"],
     "C) 1994", "PCPNDT Act was enacted in 1994 to prevent sex-selective abortion."),
    (59, "MTP Act (1971) allows termination of pregnancy up to how many weeks normally?",
     ["A) 12 weeks", "B) 20 weeks", "C) 24 weeks", "D) 28 weeks"],
     "B) 20 weeks", "MTP Act (amended 2021): up to 20 weeks for single provider, 24 weeks for special categories."),
    (60, "Wuchereria bancrofti is transmitted by which vector?",
     ["A) Anopheles", "B) Culex", "C) Aedes", "D) Sandfly"],
     "B) Culex mosquito", "Culex quinquefasciatus is the vector for lymphatic filariasis in India."),
]
for q in mcqs_cd:
    for e in mcq_block(*q): story.append(e)

story.append(PageBreak())
story.append(chapter_header("Section D: Nutrition & Mental Health (Q61-75)", PURPLE))
story.append(Spacer(1, 0.2*cm))

mcqs_nut = [
    (61, "MUAC < 11.5 cm in a child indicates:",
     ["A) Normal nutrition", "B) MAM", "C) SAM", "D) Stunting"],
     "C) SAM (Severe Acute Malnutrition)", "MUAC <11.5 cm = SAM; 11.5-12.5 cm = MAM."),
    (62, "Bitot's spots are seen in deficiency of:",
     ["A) Vitamin D", "B) Vitamin A", "C) Vitamin C", "D) Iron"],
     "B) Vitamin A deficiency", "Bitot's spots (foamy triangular patches on conjunctiva) = Vitamin A deficiency."),
    (63, "Pellagra is caused by deficiency of:",
     ["A) Niacin (Vit B3)", "B) Riboflavin (Vit B2)", "C) Thiamine (Vit B1)", "D) Pyridoxine (Vit B6)"],
     "A) Niacin (Vitamin B3)", "Pellagra: 3Ds = Dermatitis + Diarrhea + Dementia (4th D = Death if untreated)."),
    (64, "Kwashiorkor is characterized by:",
     ["A) Severe wasting without edema", "B) Protein deficiency with edema", "C) Total calorie deficiency", "D) Vitamin deficiency"],
     "B) Protein deficiency with edema (moon face, distended abdomen)", "Kwashiorkor = protein deficiency; Marasmus = total calorie deficiency."),
    (65, "Iodized salt at consumer level should contain at least:",
     ["A) 5 ppm", "B) 15 ppm", "C) 30 ppm", "D) 50 ppm"],
     "B) 15 ppm at consumer level", "Iodized salt: โ‰ฅ30 ppm at production, โ‰ฅ15 ppm at consumer level."),
    (66, "RUTF stands for:",
     ["A) Ready-to-Use Therapeutic Food", "B) Rapid Urine Test for Failure", "C) Recommended Universal Therapeutic Formula", "D) Ready Universal Therapeutic Feed"],
     "A) Ready-to-Use Therapeutic Food", "RUTF is used in CMAM for SAM management in community."),
    (67, "Hemoglobin level below which is considered anemia in pregnant women?",
     ["A) 10 g/dL", "B) 11 g/dL", "C) 12 g/dL", "D) 13 g/dL"],
     "B) 11 g/dL", "WHO: Anemia in pregnancy = Hb <11 g/dL; severe anemia <7 g/dL."),
    (68, "WIFS provides weekly IFA supplementation for adolescents aged:",
     ["A) 5-10 years", "B) 10-19 years", "C) 15-24 years", "D) 20-30 years"],
     "B) 10-19 years", "WIFS covers school-going adolescents 10-19 years."),
    (69, "NMHP was launched in India in:",
     ["A) 1975", "B) 1982", "C) 1990", "D) 2000"],
     "B) 1982", "NMHP was launched in 1982; DMHP was added in 1996."),
    (70, "PHQ-9 is a screening tool for:",
     ["A) Anxiety", "B) Depression", "C) Schizophrenia", "D) Bipolar disorder"],
     "B) Depression", "PHQ-9 (Patient Health Questionnaire-9) screens for depression severity."),
    (71, "KIRAN helpline number for mental health is:",
     ["A) 1800-500-0019", "B) 1800-599-0019", "C) 1860-266-2345", "D) 14416"],
     "B) 1800-599-0019", "KIRAN: toll-free 24x7 mental health rehabilitation helpline."),
    (72, "Mood stabilizer first-line for Bipolar Disorder is:",
     ["A) Haloperidol", "B) Diazepam", "C) Lithium", "D) Fluoxetine"],
     "C) Lithium", "Lithium is the gold-standard mood stabilizer for Bipolar Disorder."),
    (73, "Beriberi is caused by deficiency of:",
     ["A) Niacin", "B) Riboflavin", "C) Thiamine (B1)", "D) Folate"],
     "C) Thiamine (Vitamin B1)", "Wet beriberi = cardiac failure; Dry beriberi = peripheral neuropathy."),
    (74, "Scurvy is caused by deficiency of:",
     ["A) Vitamin A", "B) Vitamin B12", "C) Vitamin C", "D) Vitamin D"],
     "C) Vitamin C (Ascorbic acid)", "Scurvy = Vitamin C deficiency; perifollicular hemorrhage, bleeding gums."),
    (75, "MMSE is used to assess:",
     ["A) Malnutrition", "B) Cognitive function/dementia", "C) Depression", "D) Motor function"],
     "B) Cognitive function / Dementia screening", "Mini-Mental State Examination (MMSE) โ€” screening for dementia."),
]
for q in mcqs_nut:
    for e in mcq_block(*q): story.append(e)

story.append(PageBreak())
story.append(chapter_header("Section E: NHM Programs, Emergency & Miscellaneous (Q76-100)", ORANGE))
story.append(Spacer(1, 0.2*cm))

mcqs_nhm = [
    (76, "Under RBSK, '4D' refers to:",
     ["A) Defects, Diseases, Deficiencies, Developmental delays", "B) Detection, Diagnosis, Dispensing, Discharge", "C) Diarrhea, Dysentery, Deficiency, Dehydration", "D) Disability, Disease, Distress, Death"],
     "A) Defects at birth, Diseases, Deficiencies, Developmental delays", "RBSK 4D: the 4 categories of childhood conditions screened."),
    (77, "LaQshya initiative is related to:",
     ["A) Nutrition", "B) Labour Room quality improvement", "C) Leprosy", "D) Licensing of drug shops"],
     "B) Labour Room Quality Improvement Initiative", "LaQshya = Labour Room Quality Improvement Initiative for respectful maternity care."),
    (78, "PM-JAY (Ayushman Bharat) provides health cover of:",
     ["A) Rs.1 lakh", "B) Rs.2 lakh", "C) Rs.5 lakh", "D) Rs.10 lakh"],
     "C) Rs.5 lakh per family per year", "PM-JAY provides Rs.5 lakh per family per year for secondary and tertiary hospitalization."),
    (79, "Normal adult respiratory rate is:",
     ["A) 8-12 breaths/min", "B) 12-20 breaths/min", "C) 20-30 breaths/min", "D) 25-35 breaths/min"],
     "B) 12-20 breaths/min", "Normal adult RR = 12-20; tachypnea >20, bradypnea <12."),
    (80, "In BLS for adults, chest compression depth should be:",
     ["A) 2-3 cm", "B) 3-4 cm", "C) 5-6 cm", "D) 7-8 cm"],
     "C) 5-6 cm", "Adult CPR: compressions at 5-6 cm depth, 100-120/min rate."),
    (81, "Anemia Mukt Bharat targets how many beneficiary groups?",
     ["A) 3", "B) 4", "C) 5", "D) 6"],
     "D) 6 beneficiary groups", "Anemia Mukt Bharat: Children 6-59 mo, 5-9 yrs, 10-19 yrs (WIFS), pregnant women, lactating mothers, women of reproductive age."),
    (82, "Maternity ambulance number (free) in India is:",
     ["A) 108", "B) 102", "C) 104", "D) 112"],
     "B) 102", "102 is the free Maternity (Janani) Ambulance Service."),
    (83, "Oral Rehydration Therapy (ORT) โ€” zinc dose for child >6 months is:",
     ["A) 5 mg/day x 14 days", "B) 10 mg/day x 7 days", "C) 20 mg/day x 14 days", "D) 30 mg/day x 10 days"],
     "C) 20 mg/day x 14 days", "Zinc: 20 mg/day x 14 days for >6 months; 10 mg/day for <6 months."),
    (84, "SpO2 < which value requires oxygen therapy?",
     ["A) 95%", "B) 92%", "C) 90%", "D) 85%"],
     "C) <90% SpO2", "SpO2 <90% indicates hypoxia requiring supplemental oxygen therapy."),
    (85, "DMFT index is used to measure:",
     ["A) Malnutrition", "B) Dental caries", "C) Mental health", "D) Disability"],
     "B) Dental caries burden", "DMFT = Decayed, Missing, Filled Teeth index for dental caries."),
    (86, "POSHAN Abhiyaan is also known as:",
     ["A) National Nutrition Mission", "B) National Malnutrition Program", "C) National Supplementary Feeding Program", "D) Integrated Child Development Services"],
     "A) National Nutrition Mission (NNM)", "POSHAN Abhiyaan = National Nutrition Mission, launched March 2018."),
    (87, "Cold chain vaccine storage temperature at PHC level is:",
     ["A) +2ยฐC to +8ยฐC", "B) -15ยฐC to -25ยฐC", "C) 0ยฐC to +4ยฐC", "D) Room temperature"],
     "A) +2ยฐC to +8ยฐC", "PHC/CHC/district: ILR maintains +2ยฐC to +8ยฐC."),
    (88, "Which of the following is a notifiable disease in India?",
     ["A) Common cold", "B) Acne", "C) Cholera", "D) Hypertension"],
     "C) Cholera", "Cholera is an immediately notifiable disease under IHR 2005."),
    (89, "NSV (No-Scalpel Vasectomy) is a method of:",
     ["A) Female sterilization", "B) Male sterilization", "C) Intrauterine contraception", "D) Barrier contraception"],
     "B) Male sterilization", "NSV is the preferred male sterilization technique โ€” simpler and safer than conventional vasectomy."),
    (90, "WHO analgesic ladder for pain management starts with:",
     ["A) Morphine", "B) Codeine", "C) Paracetamol/NSAIDs", "D) Tramadol"],
     "C) Paracetamol / NSAIDs (Step 1)", "WHO pain ladder: Step 1 = Paracetamol/NSAIDs; Step 2 = Weak opioids; Step 3 = Strong opioids."),
    (91, "The ASHA selection criteria includes all EXCEPT:",
     ["A) Female", "B) Minimum 8th class pass", "C) Age 25-45 years", "D) Graduate in any discipline"],
     "D) Graduate in any discipline", "ASHA minimum qualification = 8th pass (preferably 10th pass in special cases)."),
    (92, "Antara is an injectable contraceptive containing:",
     ["A) Combined oral contraceptive", "B) DMPA (Depot Medroxyprogesterone Acetate)", "C) Estrogen only", "D) LNG IUS"],
     "B) DMPA (Depot Medroxyprogesterone Acetate) 150mg", "Antara = DMPA 150mg IM every 3 months; progestin-only."),
    (93, "Emergency contraception should be taken within how many hours?",
     ["A) 24 hours", "B) 48 hours", "C) 72 hours", "D) 120 hours"],
     "C) Within 72 hours", "Levonorgestrel EC pill: most effective within 72 hours (can be up to 120 hrs, reduces efficacy)."),
    (94, "Clinical Breast Examination (CBE) for breast cancer screening is done for women aged:",
     ["A) 20+ years", "B) 25+ years", "C) 30+ years", "D) 40+ years"],
     "C) 30+ years", "NPCDCS: CBE for women aged 30 years and above at HWC."),
    (95, "MTP Act 2021 amendment increased upper limit for single provider to:",
     ["A) 16 weeks", "B) 20 weeks", "C) 24 weeks", "D) 28 weeks"],
     "B) 20 weeks for single provider", "MTP Amendment 2021: single provider up to 20 weeks; 2 providers / special categories up to 24 weeks."),
    (96, "RMNCH+A strategy includes all EXCEPT:",
     ["A) Reproductive health", "B) Maternal health", "C) Accident prevention", "D) Adolescent health"],
     "C) Accident prevention", "RMNCH+A = Reproductive, Maternal, Newborn, Child, Adolescent Health."),
    (97, "The 102 ambulance service is also called:",
     ["A) Emergency Ambulance", "B) Janani (Maternity) Express", "C) Patient Transport Vehicle", "D) Mobile Health Unit"],
     "B) Janani Express (Maternity Ambulance)", "102 = Janani Express / free maternity transport service for pregnant women and sick neonates."),
    (98, "Rashtriya Vayoshri Yojana provides assistive devices to which population?",
     ["A) Disabled children", "B) BPL elderly", "C) Pregnant women", "D) Adolescents"],
     "B) BPL (Below Poverty Line) elderly", "Rashtriya Vayoshri Yojana: free assistive devices (hearing aids, spectacles, dentures) to BPL elderly."),
    (99, "Chhaya (Centchroman) is given:",
     ["A) Daily", "B) Weekly for 3 months, then fortnightly", "C) Monthly", "D) Every 3 months"],
     "B) Once weekly for 3 months, then fortnightly", "Chhaya = Centchroman (Ormeloxifene), non-steroidal SERM contraceptive."),
    (100, "NHM Maharashtra CHO exam consists of how many total questions?",
     ["A) 50", "B) 75", "C) 100", "D) 150"],
     "C) 100 MCQs", "Maharashtra CHO exam: 100 MCQs, 100 marks, 90 minutes, no negative marking."),
]
for q in mcqs_nhm:
    for e in mcq_block(*q): story.append(e)

# โ”€โ”€ FINAL NOTE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(chapter_header("QUICK REVISION TIPS", ORANGE))
story.append(Spacer(1, 0.3*cm))
tips = [
    "Focus on Maternal Health, Child Health, and NHM Programs โ€” highest weightage in Section 1.",
    "Memorize all national health program names, launch years, and key figures (MMR, IMR, TFR).",
    "Know the Universal Immunization Programme schedule by heart โ€” frequently asked.",
    "Review danger signs in pregnancy, IMNCI classifications, and ORT protocol.",
    "Section 3 (NHM Programs) = 20 marks โ€” revise JSY, JSSK, PMSMA, RBSK, POSHAN, PM-JAY.",
    "For General Knowledge (20 marks): Focus on Maharashtra geography, current affairs, Indian Constitution health articles (Article 21, 47).",
    "Practice at least 2 full-length mock tests before the exam.",
    "Read questions carefully โ€” 'EXCEPT' and 'NOT' type questions are common.",
    "Emergency helplines: 108 (Emergency), 102 (Maternity), 104 (Health), 112 (Police), 1800-599-0019 (KIRAN Mental Health).",
    "No negative marking โ€” attempt ALL questions!",
]
for i, tip in enumerate(tips, 1):
    story.append(bullet(f"Tip {i}: {tip}", bold=True))
    story.append(Spacer(1, 0.1*cm))

story.append(Spacer(1, 0.5*cm))
story.append(highlight_box(
    "<b>Best of luck for your Maharashtra CHO Exam!</b> Study systematically, revise regularly, and practice MCQs daily.",
    LIGHT_GREEN, GREEN))

# BUILD
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2*cm, bottomMargin=2*cm,
    title="Maharashtra CHO - Public Health Study Guide",
    author="NHM Maharashtra CHO Preparation",
    subject="Public Health Study Notes + MCQs"
)
doc.build(story)
print(f"PDF generated: {OUTPUT}")
print(f"Size: {os.path.getsize(OUTPUT)/1024:.1f} KB")
Running Command

cd /home/daytona/workspace/mh-cho-public-health && python generate_pdf.py

Your comprehensive PDF is ready! Here's what's inside:

Maharashtra CHO Exam - Public Health Study Guide PDF

MH CHO Public Health Study Guide

PDF Document ยท PDF


What's included in the PDF:

Exam Pattern - Fully updated 2025-26 NHM Maharashtra format (100 MCQs, 100 marks, no negative marking)
PART A - Study Notes (14 chapters):
  1. Basic Concepts of Public Health - definitions, health indicators (MMR, IMR, TFR), PHC hierarchy
  2. Maternal Health - ANC schedule, danger signs, JSY, JSSK, PMSMA, PNC
  3. Child Health & Immunization - full UIP schedule, IMNCI, ORT, Vitamin A
  4. Adolescent Health (RKSK) - WIFS, menstrual hygiene, ARSH clinics
  5. Family Planning - all contraceptive methods (Antara, Chhaya, PPIUCD, NSV)
  6. Communicable Diseases - TB, Malaria, Dengue, HIV, Leprosy, Cholera, Rabies, COVID
  7. Non-Communicable Diseases - NPCDCS, cancer screening (VIA, CBE, PAP), HTN, DM
  8. Nutrition - ABCD assessment, SAM/MAM criteria, deficiency diseases
  9. Mental Health - NMHP, DMHP, KIRAN helpline, common disorders
  10. Referral Linkage & Health System - HWC, 12 services, referral hierarchy
  11. Elderly & Palliative Care - geriatric issues, WHO pain ladder
  12. Emergency Services & Clinical Skills - BLS, vital signs, helpline numbers
  13. Oral & ENT Health - DMFT index, oral cancer screening
  14. NHM Programs Key Facts - all major programs in one table
PART B - 100 Practice MCQs with answers (topic-wise, with explanations):
  • Section A: Public Health Basics (Q1-15)
  • Section B: Maternal & Child Health (Q16-35)
  • Section C: Communicable & Non-Communicable Diseases (Q36-60)
  • Section D: Nutrition & Mental Health (Q61-75)
  • Section E: NHM Programs, Emergency & Miscellaneous (Q76-100)
Quick Revision Tips at the end for last-minute prep.

Thank you

You're welcome! Best of luck with your Maharashtra CHO exam. ๐Ÿ€
A few last tips:
  • Highest priority topics: Maternal Health, Child Immunization, and NHM Programs carry maximum weightage
  • Section 3 (NHM, 20 marks) is easy scoring โ€” memorize program names, launch years, and key figures
  • No negative marking โ€” always attempt every question
Feel free to come back if you need any topic explained in detail, more MCQs, or a Marathi version of the notes!

Most repeated questions in Maharashtra cho exam pdf

Searching the Web

Maharashtra CHO previous year questions most repeated public health NHM 2023 2024

Searching the Web

Maharashtra NHM CHO exam previous year paper repeated questions PDF

Writing File

~/mh-cho-public-health/generate_pyq_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.colors import HexColor, white, black
from reportlab.lib.units import cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    PageBreak, HRFlowable
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
import os

OUTPUT = "/home/daytona/workspace/mh-cho-public-health/MH_CHO_Most_Repeated_Questions.pdf"

# โ”€โ”€ COLORS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ORANGE      = HexColor("#E65100")
DARK_BLUE   = HexColor("#1A237E")
LIGHT_BLUE  = HexColor("#E3F2FD")
TEAL        = HexColor("#00695C")
LIGHT_TEAL  = HexColor("#E0F2F1")
YELLOW      = HexColor("#FFF9C4")
RED         = HexColor("#B71C1C")
LIGHT_RED   = HexColor("#FFEBEE")
PURPLE      = HexColor("#4A148C")
LIGHT_PURPLE= HexColor("#F3E5F5")
GREY_BG     = HexColor("#F5F5F5")
DARK_GREY   = HexColor("#424242")
GREEN       = HexColor("#1B5E20")
LIGHT_GREEN = HexColor("#E8F5E9")
AMBER       = HexColor("#FF6F00")
LIGHT_AMBER = HexColor("#FFF8E1")
CRIMSON     = HexColor("#880E4F")

# โ”€โ”€ STYLES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
def make_styles():
    s = {}
    s['CoverTitle'] = ParagraphStyle('CoverTitle',
        fontName='Helvetica-Bold', fontSize=24, textColor=white,
        alignment=TA_CENTER, spaceAfter=6, leading=30)
    s['CoverSub'] = ParagraphStyle('CoverSub',
        fontName='Helvetica-Bold', fontSize=13, textColor=HexColor("#BBDEFB"),
        alignment=TA_CENTER, spaceAfter=4, leading=17)
    s['CoverNote'] = ParagraphStyle('CoverNote',
        fontName='Helvetica', fontSize=11, textColor=HexColor("#FFE082"),
        alignment=TA_CENTER, spaceAfter=4, leading=15)
    s['ChapHead'] = ParagraphStyle('ChapHead',
        fontName='Helvetica-Bold', fontSize=14, textColor=white,
        alignment=TA_CENTER, leading=18, spaceAfter=4)
    s['SecTitle'] = ParagraphStyle('SecTitle',
        fontName='Helvetica-Bold', fontSize=12, textColor=DARK_BLUE,
        spaceBefore=8, spaceAfter=3, leading=15)
    s['Body'] = ParagraphStyle('Body',
        fontName='Helvetica', fontSize=10, textColor=DARK_GREY,
        spaceBefore=2, spaceAfter=2, leading=14, alignment=TA_JUSTIFY)
    s['Bullet'] = ParagraphStyle('Bullet',
        fontName='Helvetica', fontSize=10, textColor=DARK_GREY,
        spaceBefore=1, spaceAfter=1, leading=13, leftIndent=14)
    s['StarBullet'] = ParagraphStyle('StarBullet',
        fontName='Helvetica-Bold', fontSize=10, textColor=AMBER,
        spaceBefore=1, spaceAfter=1, leading=13, leftIndent=8)
    s['MCQNum'] = ParagraphStyle('MCQNum',
        fontName='Helvetica-Bold', fontSize=10, textColor=DARK_GREY,
        spaceBefore=5, spaceAfter=2, leading=14)
    s['MCQOpt'] = ParagraphStyle('MCQOpt',
        fontName='Helvetica', fontSize=10, textColor=DARK_GREY,
        spaceBefore=1, spaceAfter=1, leading=13, leftIndent=14)
    s['MCQAns'] = ParagraphStyle('MCQAns',
        fontName='Helvetica-Bold', fontSize=10, textColor=GREEN,
        spaceBefore=1, spaceAfter=1, leading=13, leftIndent=14)
    s['MCQExp'] = ParagraphStyle('MCQExp',
        fontName='Helvetica-Oblique', fontSize=9, textColor=PURPLE,
        spaceBefore=1, spaceAfter=3, leading=12, leftIndent=14)
    s['FreqBadge'] = ParagraphStyle('FreqBadge',
        fontName='Helvetica-Bold', fontSize=9, textColor=RED,
        spaceBefore=0, spaceAfter=0, leading=12)
    s['TableHdr'] = ParagraphStyle('TableHdr',
        fontName='Helvetica-Bold', fontSize=10, textColor=white,
        alignment=TA_CENTER, leading=13)
    s['TableCell'] = ParagraphStyle('TableCell',
        fontName='Helvetica', fontSize=9, textColor=DARK_GREY,
        alignment=TA_LEFT, leading=12)
    s['WarnBox'] = ParagraphStyle('WarnBox',
        fontName='Helvetica-Bold', fontSize=10, textColor=RED,
        spaceBefore=3, spaceAfter=3, leading=14, leftIndent=6)
    s['GreenBox'] = ParagraphStyle('GreenBox',
        fontName='Helvetica-Bold', fontSize=10, textColor=GREEN,
        spaceBefore=3, spaceAfter=3, leading=14, leftIndent=6)
    s['SmallGrey'] = ParagraphStyle('SmallGrey',
        fontName='Helvetica-Oblique', fontSize=8, textColor=HexColor("#9E9E9E"),
        alignment=TA_CENTER, leading=11)
    return s

S = make_styles()

# โ”€โ”€ HELPERS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
def chap_hdr(title, color=DARK_BLUE):
    t = Table([[Paragraph(title, S['ChapHead'])]], colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0),(-1,-1), color),
        ('ROUNDEDCORNERS',[8]),
        ('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 info_box(text, bg=LIGHT_BLUE, border=DARK_BLUE):
    t = Table([[Paragraph(text, S['Body'])]], colWidths=[17*cm])
    t.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,-1),bg),
        ('BOX',(0,0),(-1,-1),1.2,border),
        ('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 warn_box(text):
    return info_box(f"โš  MOST REPEATED: {text}", LIGHT_AMBER, AMBER)

def freq_label(times):
    return Paragraph(f"  [Asked {times}x in PYQs]", S['FreqBadge'])

def mcq(num, freq, question, opts, answer, explanation=""):
    elems = []
    q_text = f"Q{num}. {question}"
    elems.append(Paragraph(q_text, S['MCQNum']))
    if freq:
        elems.append(freq_label(freq))
    for o in opts:
        elems.append(Paragraph(o, S['MCQOpt']))
    ans_text = f"โœ“ Answer: {answer}"
    elems.append(Paragraph(ans_text, S['MCQAns']))
    if explanation:
        elems.append(Paragraph(f"Explanation: {explanation}", S['MCQExp']))
    elems.append(HRFlowable(width="100%", thickness=0.4, color=HexColor("#BDBDBD")))
    return elems

def bullet(text, bold=False):
    st = S['StarBullet'] if bold else S['Bullet']
    prefix = "โ˜…" if bold else "โ€ข"
    return Paragraph(f"{prefix} {text}", st)

# โ”€โ”€ BUILD DOCUMENT โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story = []

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# COVER PAGE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
cover_rows = [
    [Paragraph("MAHARASHTRA CHO EXAM", S['CoverTitle'])],
    [Paragraph("MOST REPEATED QUESTIONS", S['CoverTitle'])],
    [Paragraph("Previous Year Question Analysis (2019โ€“2024)", S['CoverSub'])],
    [Paragraph("150+ Most Asked MCQs | Topic-wise | With Answers & Explanations", S['CoverSub'])],
    [Spacer(1, 0.3*cm)],
    [Paragraph("Based on PYQ analysis of Maharashtra NHM CHO exams held in 2019, 2020, 2022, 2023, 2024", S['CoverNote'])],
]
ctbl = Table(cover_rows, colWidths=[17*cm])
ctbl.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,-1),DARK_BLUE),
    ('ROUNDEDCORNERS',[12]),
    ('TOPPADDING',(0,0),(-1,-1),12),
    ('BOTTOMPADDING',(0,0),(-1,-1),12),
    ('LEFTPADDING',(0,0),(-1,-1),20),
    ('RIGHTPADDING',(0,0),(-1,-1),20),
]))
story.append(Spacer(1, 1.5*cm))
story.append(ctbl)
story.append(Spacer(1, 0.5*cm))
story.append(info_box(
    "<b>HOW TO USE THIS BOOKLET:</b> Questions are arranged topic-wise. "
    "Frequency labels [Asked Nx] show how many times the topic appeared in previous exams. "
    "Focus on โ˜… starred questions โ€” they are the highest priority repeaters.",
    LIGHT_AMBER, AMBER))
story.append(Spacer(1, 0.5*cm))

# Topic-wise frequency table
story.append(Paragraph("TOPIC-WISE QUESTION FREQUENCY (PYQ Analysis)", S['SecTitle']))
freq_data = [
    ["Topic", "Avg Questions/Paper", "Priority"],
    ["Maternal Health (ANC, JSY, JSSK, PMSMA, PNC)", "12-15", "โ˜…โ˜…โ˜… HIGHEST"],
    ["Child Health & Immunization (UIP, IMNCI, Vit A)", "10-12", "โ˜…โ˜…โ˜… HIGHEST"],
    ["NHM Programs (JSY, RBSK, POSHAN, PM-JAY)", "8-10", "โ˜…โ˜…โ˜… HIGHEST"],
    ["Communicable Diseases (TB, Malaria, HIV, Dengue)", "8-10", "โ˜…โ˜…โ˜… HIGH"],
    ["Non-Communicable Diseases (NCD, Cancer, DM, HTN)", "6-8", "โ˜…โ˜… HIGH"],
    ["Family Planning (contraceptives, sterilization)", "5-7", "โ˜…โ˜… HIGH"],
    ["Nutrition (ABCD, SAM, deficiency diseases)", "5-6", "โ˜…โ˜… MODERATE"],
    ["Basic Public Health (levels, indicators, PHC)", "4-6", "โ˜…โ˜… MODERATE"],
    ["Adolescent Health (RKSK, WIFS)", "3-5", "โ˜… MODERATE"],
    ["Mental Health (NMHP, disorders, helplines)", "3-4", "โ˜… MODERATE"],
    ["Emergency & Clinical Skills (BLS, vitals)", "3-4", "โ˜… MODERATE"],
    ["Referral Linkage & Health System (HWC, CHO role)", "2-3", "โ˜… LOW-MOD"],
]
fd_data = [[Paragraph(c, S['TableHdr'] if i==0 else S['TableCell']) for c in row]
           for i, row in enumerate(freq_data)]
ft = Table(fd_data, colWidths=[8*cm, 5*cm, 4*cm])
ft.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,0),ORANGE),
    ('ROWBACKGROUNDS',(0,1),(-1,-1),[white, GREY_BG]),
    ('BOX',(0,0),(-1,-1),0.8,DARK_BLUE),
    ('INNERGRID',(0,0),(-1,-1),0.4,HexColor("#90CAF9")),
    ('TOPPADDING',(0,0),(-1,-1),5),
    ('BOTTOMPADDING',(0,0),(-1,-1),5),
    ('LEFTPADDING',(0,0),(-1,-1),6),
    ('RIGHTPADDING',(0,0),(-1,-1),6),
    ('FONTNAME',(2,1),(-1,-1),'Helvetica-Bold'),
    ('TEXTCOLOR',(2,1),(2,3),RED),
    ('TEXTCOLOR',(2,4),(2,7),AMBER),
    ('TEXTCOLOR',(2,8),(-1,-1),TEAL),
]))
story.append(ft)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# SECTION 1: MATERNAL HEALTH โ€” MOST REPEATED
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("SECTION 1: MATERNAL HEALTH โ€” MOST REPEATED (Q1โ€“25)", TEAL))
story.append(Spacer(1,0.2*cm))
story.append(warn_box("Maternal Health is the SINGLE HIGHEST scoring area. Always 12-15 questions. Never skip these topics."))
story.append(Spacer(1,0.2*cm))

mat_mcqs = [
    (1,"5x","JSY cash incentive for institutional delivery in rural Maharashtra (HPS state) is:",
     ["A) Rs.700","B) Rs.1400","C) Rs.600","D) Rs.1000"],
     "A) Rs.700 (rural HPS state)",
     "Maharashtra is a High Performing State (HPS). Rural HPS = Rs.700; Urban HPS = Rs.600."),
    (2,"6x","JSSK provides free services to pregnant women EXCEPT:",
     ["A) Medicines and consumables","B) Diet during hospital stay","C) Blood transfusion","D) Private nursing home services"],
     "D) Private nursing home services",
     "JSSK covers free drugs, diet, diagnostics, transport, blood โ€” but only in government facilities."),
    (3,"7x","Minimum ANC visits recommended in India:",
     ["A) 2","B) 3","C) 4","D) 6"],
     "C) 4 ANC visits",
     "India standard: minimum 4 ANC visits. WHO recommends โ‰ฅ8 contacts (called contacts, not visits)."),
    (4,"5x","PMSMA provides free antenatal check-up on which date every month?",
     ["A) 1st","B) 5th","C) 9th","D) 15th"],
     "C) 9th of every month",
     "Pradhan Mantri Surakshit Matritva Abhiyan (PMSMA) โ€” free ANC on 9th of every month at PHC/CHC/DH."),
    (5,"6x","IFA tablet during pregnancy contains:",
     ["A) 60 mg iron + 400 mcg folic acid","B) 100 mg iron + 500 mcg folic acid","C) 200 mg iron + 1 mg folic acid","D) 45 mg iron + 200 mcg folic acid"],
     "B) 100 mg elemental iron + 500 mcg folic acid",
     "Antenatal IFA (large red tablet): 100 mg iron + 500 mcg folic acid, daily for 180 days."),
    (6,"4x","TT immunization schedule in primigravida:",
     ["A) TT1 at 1st visit; TT2 after 4 weeks","B) TT1 at 16 weeks; TT2 at 32 weeks","C) Single dose TT booster","D) TT at 28 weeks only"],
     "A) TT1 at first contact; TT2 four weeks later",
     "If not immunized previously: TT1 at first ANC contact, TT2 at least 4 weeks later. Booster if immunized within 3 years."),
    (7,"5x","Postnatal care visits are conducted on:",
     ["A) Days 1, 3, 7, and 28","B) Days 1, 3, 7, and 42","C) Days 3, 7, 14, and 42","D) Days 1, 7, 21, and 42"],
     "B) Day 1, Day 3, Day 7, Day 42",
     "4 PNC visits: Day 1, 3, 7, and 42 (6 weeks) after delivery โ€” standard under NHM."),
    (8,"5x","Which is a danger sign during pregnancy?",
     ["A) Mild ankle swelling in evening","B) Nausea and vomiting in 1st trimester","C) Severe headache with blurring of vision","D) Fetal movements after 20 weeks"],
     "C) Severe headache with blurring of vision",
     "Severe headache + blurring of vision = warning sign of pre-eclampsia/eclampsia โ€” refer immediately."),
    (9,"4x","Vitamin A dose for post-partum mother:",
     ["A) 1,00,000 IU","B) 2,00,000 IU","C) 50,000 IU","D) 5,00,000 IU"],
     "B) 2,00,000 IU (single dose) given to the mother after delivery",
     "Post-partum mother receives 2 lakh IU Vitamin A (within 6 weeks of delivery)."),
    (10,"5x","Breastfeeding should be initiated within how many hours after birth?",
     ["A) 6 hours","B) 24 hours","C) 1 hour","D) 12 hours"],
     "C) Within 1 hour of birth",
     "Early initiation of breastfeeding within 1 hour is a key NHM indicator."),
    (11,"4x","Duration of IFA supplementation during pregnancy is:",
     ["A) 90 days","B) 120 days","C) 150 days","D) 180 days"],
     "D) 180 days",
     "ANC IFA: 180 days during pregnancy + 180 days post-delivery = 360 days total."),
    (12,"6x","Calcium supplementation during ANC is:",
     ["A) 500 mg once daily","B) 500 mg twice daily from 2nd trimester","C) 1000 mg once daily","D) 250 mg thrice daily"],
     "B) 500 mg twice daily from 2nd trimester",
     "500 mg calcium twice daily (total 1000 mg/day) from 2nd trimester under NHM."),
    (13,"4x","LaQshya initiative is focused on:",
     ["A) TB control","B) Labour Room quality improvement","C) Leprosy elimination","D) Nutrition programs"],
     "B) Labour Room Quality Improvement Initiative",
     "LaQshya = Labour Room Quality Improvement Initiative โ€” for respectful, dignified maternity care."),
    (14,"3x","Which statement about JSSK is CORRECT?",
     ["A) Cash transfer to mother after delivery","B) Free C-section delivery in government hospitals","C) Only for BPL card holders","D) Valid only for first delivery"],
     "B) Free C-section delivery in government hospitals",
     "JSSK covers free normal + C-section delivery, medicines, diet, transport, blood for ALL pregnant women."),
    (15,"4x","Janani Suraksha Yojana (JSY) was launched under:",
     ["A) NRHM","B) ICDS","C) NPCDCS","D) RMNCH+A"],
     "A) NRHM (National Rural Health Mission)",
     "JSY was launched under NRHM in 2005 to promote institutional deliveries."),
    (16,"3x","ASHA incentive per JSY case (Maharashtra rural) is:",
     ["A) Rs.300","B) Rs.600","C) Rs.1000","D) Rs.1400"],
     "B) Rs.600 per case",
     "ASHA receives Rs.600 for each JSY institutional delivery case facilitated."),
    (17,"3x","WHO recommended contact-based ANC is:",
     ["A) โ‰ฅ4 visits","B) โ‰ฅ6 visits","C) โ‰ฅ8 contacts","D) โ‰ฅ12 contacts"],
     "C) โ‰ฅ8 contacts (WHO 2016 ANC model)",
     "WHO 2016 ANC guidelines recommend โ‰ฅ8 contacts starting from <12 weeks."),
    (18,"3x","Exclusive breastfeeding means giving the baby:",
     ["A) Breast milk + water","B) Breast milk + formula","C) Only breast milk for 6 months","D) Breast milk + semi-solid food"],
     "C) Only breast milk (no water, no other food or drink) for 6 months",
     "Exclusive breastfeeding: breast milk only for first 6 months."),
    (19,"4x","PPIUCD stands for:",
     ["A) Post-Partum Intra-Uterine Contraceptive Device","B) Pre-Pregnancy IUCD","C) Permanent Prevention of IUD Complications","D) Post-Partum Intranasal Contraceptive Drug"],
     "A) Post-Partum Intra-Uterine Contraceptive Device",
     "PPIUCD is copper-T 380A inserted within 48 hours or at 6 weeks postpartum."),
    (20,"3x","Maternal Mortality Ratio (MMR) in India per SRS 2018-20 is:",
     ["A) 67","B) 97","C) 113","D) 130"],
     "B) 97 per 1,00,000 live births",
     "India MMR (SRS 2018-20): 97. SDG target: <70 by 2030."),
    (21,"4x","Minimum hemoglobin in pregnant women to avoid anemia:",
     ["A) 10 g/dL","B) 11 g/dL","C) 12 g/dL","D) 13 g/dL"],
     "B) 11 g/dL",
     "WHO: Hb <11 g/dL = anemia in pregnancy; Hb <7 g/dL = severe anemia."),
    (22,"3x","Eligible couple register is maintained by:",
     ["A) ASHA","B) ANM","C) MPW (Male)","D) CHO"],
     "B) ANM (Auxiliary Nurse Midwife)",
     "ANM maintains eligible couple register, MCH register, and immunization records at sub-centre."),
    (23,"3x","In MTP Act 2021 amendment, termination up to 24 weeks is allowed for:",
     ["A) All women on request","B) Rape survivors, minors, women with fetal anomalies","C) Women with >3 children","D) Only for life-threatening conditions"],
     "B) Rape survivors, minors, women with fetal anomalies (special categories)",
     "MTP Act 2021: Up to 20 weeks for single provider; Up to 24 weeks for special categories (rape, disability, fetal abnormality)."),
    (24,"3x","First colostrum is important because it contains:",
     ["A) High fat content","B) Maternal antibodies (IgA) and nutrients","C) More carbohydrates","D) Growth hormones only"],
     "B) Maternal antibodies (IgA), nutrients, and immune factors",
     "Colostrum = first milk in first few days; rich in IgA, Vitamin A, white blood cells โ€” do NOT discard."),
    (25,"2x","PCPNDT Act 1994 prohibits:",
     ["A) Abortion","B) Sex determination before or after conception","C) IVF procedures","D) Home deliveries"],
     "B) Sex determination before or after conception",
     "PCPNDT Act bans sex determination using ultrasound or any diagnostic technique to prevent female foeticide."),
]
for q in mat_mcqs:
    for e in mcq(*q): story.append(e)

story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# SECTION 2: CHILD HEALTH & IMMUNIZATION
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("SECTION 2: CHILD HEALTH & IMMUNIZATION โ€” MOST REPEATED (Q26โ€“50)", TEAL))
story.append(Spacer(1,0.2*cm))
story.append(warn_box("UIP schedule, cold chain, and IMNCI classifications are asked in EVERY exam. Memorize the complete immunization schedule."))
story.append(Spacer(1,0.2*cm))

child_mcqs = [
    (26,"8x","BCG vaccine is given at which age?",
     ["A) 6 weeks","B) At birth","C) 9 months","D) 14 weeks"],
     "B) At birth (within 24 hours)",
     "BCG (Bacillus Calmette-Guerin) is given at birth to prevent severe childhood tuberculosis."),
    (27,"7x","Pentavalent vaccine contains antigens against:",
     ["A) 3 diseases","B) 4 diseases","C) 5 diseases","D) 6 diseases"],
     "C) 5 diseases โ€” Diphtheria, Pertussis, Tetanus, Hepatitis B, Hib",
     "Penta = DPT + Hep B + Haemophilus influenzae type b (5 antigens in 1 injection)."),
    (28,"6x","OPV is stored at what temperature at district level?",
     ["A) +2ยฐC to +8ยฐC","B) 0ยฐC to +4ยฐC","C) -15ยฐC to -25ยฐC","D) Room temperature"],
     "C) -15ยฐC to -25ยฐC (frozen in deep freezer)",
     "OPV must be stored frozen at -15 to -25ยฐC at district/divisional level."),
    (29,"6x","MR vaccine (Measles-Rubella) first dose is given at:",
     ["A) 6 weeks","B) 6 months","C) 9 months","D) 12 months"],
     "C) 9 months",
     "MR-1 at 9 months along with Vitamin A dose 1. MR-2 at 16-24 months."),
    (30,"5x","Vitamin A dose at 9 months under UIP is:",
     ["A) 50,000 IU","B) 1,00,000 IU","C) 2,00,000 IU","D) 5,00,000 IU"],
     "B) 1,00,000 IU (1 lakh IU)",
     "First dose at 9 months = 1 lakh IU. All subsequent doses (16 months onwards) = 2 lakh IU."),
    (31,"5x","IMNCI stands for:",
     ["A) Integrated Maternal and Neonatal Child Illness","B) Integrated Management of Neonatal and Childhood Illness","C) Indian Maternal and Neonatal Care Index","D) Integrated Management of National Child Initiative"],
     "B) Integrated Management of Neonatal and Childhood Illness",
     "IMNCI covers 0-5 years for assessment and management of childhood illnesses."),
    (32,"6x","MUAC < 11.5 cm in a child indicates:",
     ["A) Normal nutrition","B) Moderate Acute Malnutrition (MAM)","C) Severe Acute Malnutrition (SAM)","D) Stunting"],
     "C) Severe Acute Malnutrition (SAM)",
     "MUAC <11.5 cm = SAM. MUAC 11.5-12.5 cm = MAM. MUAC >12.5 cm = normal."),
    (33,"4x","Zinc dose for a child >6 months with diarrhea is:",
     ["A) 5 mg/day x 7 days","B) 10 mg/day x 14 days","C) 20 mg/day x 14 days","D) 30 mg/day x 10 days"],
     "C) 20 mg/day x 14 days",
     "Zinc for >6 months = 20 mg/day for 14 days. For <6 months = 10 mg/day for 14 days."),
    (34,"4x","RBSK screens for '4D' which includes:",
     ["A) Defects, Diseases, Deficiencies, Developmental delays","B) Diarrhea, Dysentery, Disability, Dehydration","C) Dengue, Diphtheria, Disabilities, Deaths","D) Diet, Disease, Diagnosis, Discharge"],
     "A) Defects at birth, Diseases, Deficiencies, Developmental delays",
     "RBSK 4D: covers 0-18 years for comprehensive health screening."),
    (35,"4x","DPT Booster-2 is given at:",
     ["A) 16-24 months","B) 2 years","C) 5-6 years","D) 10 years"],
     "C) 5-6 years (school entry)",
     "DPT Booster-2 at 5-6 years; Td at 10 years and 16 years."),
    (36,"3x","Oral Rehydration Solution (ORS) composition includes:",
     ["A) Glucose, NaCl, KCl, Na Citrate","B) Glucose and salt only","C) Sucrose and KCl","D) NaCl and MgSO4"],
     "A) Glucose + NaCl + KCl + Sodium Citrate in 1 litre water",
     "WHO-ORS: Glucose 20g + NaCl 3.5g + KCl 1.5g + Na Citrate 2.9g per litre."),
    (37,"3x","Cold chain for vaccines at PHC is maintained at:",
     ["A) +2ยฐC to +8ยฐC","B) -15ยฐC to -25ยฐC","C) 0ยฐC to +4ยฐC","D) -5ยฐC to +5ยฐC"],
     "A) +2ยฐC to +8ยฐC (in ILR - Ice Lined Refrigerator)",
     "PHC/CHC/district ILR: +2ยฐC to +8ยฐC for most vaccines (except OPV which needs freezing at district level)."),
    (38,"4x","Number of vaccines given at birth under UIP:",
     ["A) 1","B) 2","C) 3","D) 4"],
     "C) 3 vaccines โ€” BCG, OPV-0, Hep B-0",
     "At birth: BCG (intradermal), OPV-0 (oral), Hepatitis B-0 (IM), all within 24 hours."),
    (39,"3x","Anemia Mukt Bharat targets which of the following groups?",
     ["A) Only pregnant women","B) 6 beneficiary groups including children, adolescents, pregnant & lactating women","C) Only school children","D) Only women of reproductive age"],
     "B) 6 beneficiary groups",
     "AMB 6 groups: Children 6-59 months, 5-9 years, Adolescents 10-19 yrs (WIFS), Pregnant women, Lactating mothers, Women of reproductive age."),
    (40,"3x","IPV (Inactivated Polio Vaccine) is given as:",
     ["A) Oral drops","B) Fractional Intradermal injection (fIPV)","C) Subcutaneous injection","D) IV infusion"],
     "B) Fractional dose Intradermal (fIPV)",
     "India switched to fractional IPV (fIPV) given intradermally at 6 and 14 weeks since 2016."),
    (41,"3x","WIFS (Weekly Iron Folic Acid Supplementation) IFA tablet for adolescents contains:",
     ["A) 30 mg iron + 250 mcg FA","B) 45 mg iron + 400 mcg FA","C) 60 mg iron + 500 mcg FA","D) 100 mg iron + 500 mcg FA"],
     "C) 60 mg elemental iron + 500 mcg folic acid (large BLUE tablet)",
     "WIFS: large blue tablet (60 mg iron + 500 mcg FA) given once weekly to adolescents."),
    (42,"4x","SAM child with complications should be referred to:",
     ["A) PHC","B) Sub-centre","C) NRC (Nutritional Rehabilitation Centre)","D) ICDS Anganwadi"],
     "C) NRC (Nutritional Rehabilitation Centre)",
     "SAM with complications (edema, infection, hypoglycemia, dehydration) โ†’ NRC for inpatient management."),
    (43,"3x","PCV (Pneumococcal Conjugate Vaccine) protects against:",
     ["A) Polio","B) Pneumonia and meningitis caused by Streptococcus pneumoniae","C) Pertussis","D) Parvovirus"],
     "B) Streptococcus pneumoniae โ€” prevents pneumonia, meningitis",
     "PCV given at 6 weeks, 14 weeks, and 9 months (booster at 12 months)."),
    (44,"2x","Rotavirus vaccine is given at:",
     ["A) At birth, 6 weeks, 10 weeks","B) 6 weeks, 10 weeks, 14 weeks","C) 6 months, 9 months","D) 9 months only"],
     "B) 6 weeks, 10 weeks, 14 weeks (3 doses)",
     "Rotavirus vaccine (oral) protects against rotavirus diarrhea โ€” given at 6, 10, 14 weeks."),
    (45,"3x","ASHA incentive for child immunization (full immunization) is:",
     ["A) Rs.50","B) Rs.100","C) Rs.150","D) Rs.200"],
     "B) Rs.100 per fully immunized child",
     "ASHA receives Rs.100 for each child fully immunized under UIP."),
    (46,"2x","Td vaccine (Tetanus-diphtheria) is given at school level at ages:",
     ["A) 5 and 10 years","B) 10 and 16 years","C) 8 and 14 years","D) 12 and 18 years"],
     "B) 10 years and 16 years",
     "Td (reduced antigen): at 10 years and 16 years for school children."),
    (47,"3x","Key danger sign in IMNCI requiring URGENT referral is:",
     ["A) Mild fever","B) Unable to drink/breastfeed, lethargic, convulsions","C) Mild diarrhea without dehydration","D) Ear discharge"],
     "B) Unable to drink/breastfeed, lethargic/unconscious, convulsions (GENERAL DANGER SIGNS)",
     "IMNCI General Danger Signs = refer urgently: convulsions, cannot drink/feed, lethargic/unconscious, vomiting everything."),
    (48,"2x","Rashtriya Bal Swasthya Karyakram (RBSK) covers children aged:",
     ["A) 0-5 years","B) 0-10 years","C) 0-18 years","D) 6-14 years"],
     "C) 0-18 years",
     "RBSK covers all children from birth to 18 years for health screening and early intervention."),
    (49,"2x","JE (Japanese Encephalitis) vaccine is given at 9 months in:",
     ["A) All states","B) Only endemic districts","C) Only hilly areas","D) Only tribal areas"],
     "B) Only in endemic districts",
     "JE vaccine is part of UIP only in JE-endemic districts, given at 9 months (2nd dose at 16 months)."),
    (50,"2x","Number of doses of OPV in complete primary immunization:",
     ["A) 2","B) 3","C) 4","D) 5"],
     "C) 4 doses โ€” OPV-0 (birth), OPV-1, OPV-2, OPV-3 (6,10,14 weeks)",
     "OPV doses: birth (0), 6 weeks (1), 10 weeks (2), 14 weeks (3) โ€” 4 primary doses, then booster at 16-24 months."),
]
for q in child_mcqs:
    for e in mcq(*q): story.append(e)

story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# SECTION 3: COMMUNICABLE DISEASES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("SECTION 3: COMMUNICABLE DISEASES โ€” MOST REPEATED (Q51โ€“75)", DARK_BLUE))
story.append(Spacer(1,0.2*cm))
story.append(warn_box("TB, Malaria, Dengue and HIV questions are asked in every CHO exam. Know disease-program-treatment linkages."))
story.append(Spacer(1,0.2*cm))

cd_mcqs = [
    (51,"8x","TB is caused by:",
     ["A) Mycobacterium leprae","B) Mycobacterium tuberculosis","C) Clostridium tetani","D) Treponema pallidum"],
     "B) Mycobacterium tuberculosis",
     "Koch's bacillus = M. tuberculosis. Droplet infection. Acid Fast Bacillus (AFB)."),
    (52,"7x","DOTS stands for:",
     ["A) Daily Oral Treatment System","B) Directly Observed Therapy Short-course","C) Drug and Oral Treatment Scheme","D) Direct Observation for Tuberculosis Survival"],
     "B) Directly Observed Therapy Short-course",
     "DOTS ensures patients take medicines under direct observation to prevent drug resistance."),
    (53,"6x","First-line anti-TB drug combination is:",
     ["A) INH + Rifampicin + Pyrazinamide + Ethambutol (HRZE)","B) Streptomycin + INH","C) Rifampicin alone","D) Doxycycline + Ciprofloxacin"],
     "A) HRZE โ€” Isoniazid (H) + Rifampicin (R) + Pyrazinamide (Z) + Ethambutol (E)",
     "NTEP: Intensive phase = 2HRZE (2 months); Continuation phase = 4HR (4 months). Total = 6 months."),
    (54,"5x","Malaria is transmitted by which mosquito?",
     ["A) Aedes aegypti","B) Culex quinquefasciatus","C) Female Anopheles","D) Mansonia uniformis"],
     "C) Female Anopheles mosquito",
     "Only female Anopheles transmits malaria. Plasmodium vivax (BT malaria) and P. falciparum (MT malaria)."),
    (55,"5x","Dengue is transmitted by:",
     ["A) Anopheles mosquito","B) Culex mosquito","C) Aedes aegypti mosquito","D) Sandfly"],
     "C) Aedes aegypti mosquito",
     "Aedes aegypti (day-biting mosquito) transmits Dengue, Chikungunya, Zika, Yellow Fever."),
    (56,"6x","HIV window period is:",
     ["A) 24-48 hours","B) 1-2 weeks","C) 3-12 weeks","D) 6-12 months"],
     "C) 3-12 weeks",
     "Window period: time from infection to detectable antibodies. ELISA may be negative during this period."),
    (57,"5x","Widal test is used for diagnosis of:",
     ["A) Malaria","B) Typhoid","C) Dengue","D) HIV"],
     "B) Typhoid (Salmonella typhi/paratyphi)",
     "Widal test detects agglutinating antibodies. Significant titre: O antigen โ‰ฅ1:160, H antigen โ‰ฅ1:320."),
    (58,"4x","Rice-water stool is characteristic of:",
     ["A) Typhoid","B) Amoebic dysentery","C) Cholera","D) Giardiasis"],
     "C) Cholera (Vibrio cholerae El Tor)",
     "Profuse watery rice-water stools + severe dehydration = cholera. ORT is cornerstone of treatment."),
    (59,"5x","MDT for paucibacillary (PB) leprosy consists of:",
     ["A) Dapsone + Rifampicin for 6 months","B) Dapsone + Rifampicin + Clofazimine for 12 months","C) Rifampicin alone","D) Dapsone alone"],
     "A) Rifampicin 600mg once monthly + Dapsone 100mg daily x 6 months",
     "PB leprosy: 2 drugs x 6 months. MB leprosy: 3 drugs (+ Clofazimine) x 12 months."),
    (60,"4x","Filaria causative agent and vector:",
     ["A) Plasmodium / Anopheles","B) Wuchereria bancrofti / Culex mosquito","C) Leishmania / Sandfly","D) Trypanosoma / Tsetse fly"],
     "B) Wuchereria bancrofti transmitted by Culex quinquefasciatus",
     "Lymphatic filariasis in India: W. bancrofti, vector = Culex. MDA with DEC + Albendazole for elimination."),
    (61,"4x","Nikshay Poshan Yojana provides to TB patients:",
     ["A) Rs.200/month","B) Rs.500/month","C) Rs.1000/month","D) Free food ration"],
     "B) Rs.500 per month for nutritional support",
     "Nikshay Poshan Yojana: DBT of Rs.500/month directly to TB patient's bank account throughout treatment."),
    (62,"4x","Kala Azar is caused by:",
     ["A) Wuchereria bancrofti","B) Plasmodium vivax","C) Leishmania donovani","D) Trypanosoma brucei"],
     "C) Leishmania donovani",
     "Kala Azar (visceral leishmaniasis) vector = Phlebotomus (sandfly). Target: elimination by 2023 (delayed)."),
    (63,"3x","Post-exposure prophylaxis for rabies includes:",
     ["A) Antibiotics","B) ARV (Anti-Rabies Vaccine) + HRIG","C) Steroids + antivirals","D) Wound suturing only"],
     "B) ARV + HRIG (Human Rabies Immunoglobulin)",
     "PEP: Wash wound 15 min + ARV (days 0,3,7,14,28) + HRIG for category III exposure."),
    (64,"3x","Leprosy elimination target in India is:",
     ["A) Zero cases","B) <1 case per 10,000 population","C) <5 cases per 10,000","D) <0.1 per 1000"],
     "B) <1 case per 10,000 population",
     "India achieved leprosy elimination at national level in 2005. Sub-national elimination is ongoing."),
    (65,"3x","CBNAAT/GeneXpert test is used for diagnosis of:",
     ["A) Malaria","B) TB โ€” detects M. tuberculosis and rifampicin resistance","C) HIV","D) Dengue"],
     "B) TB (and Rifampicin resistance detection)",
     "CBNAAT (GeneXpert MTB/RIF) is the preferred diagnostic at peripheral level under NTEP."),
    (66,"3x","Vector for Japanese Encephalitis (JE) is:",
     ["A) Aedes","B) Anopheles","C) Culex tritaeniorhynchus","D) Sandfly"],
     "C) Culex tritaeniorhynchus",
     "JE virus (Flavivirus); vector = Culex tritaeniorhynchus; reservoir = pigs and water birds."),
    (67,"2x","ICTC in HIV program stands for:",
     ["A) Integrated Care and Treatment Centre","B) Integrated Counselling and Testing Centre","C) Indian Centre for TB Control","D) Intensive Care and Treatment of Cholera"],
     "B) Integrated Counselling and Testing Centre",
     "ICTC: free, confidential HIV testing + counselling. ART (Anti-Retroviral Therapy) given free at ART centres."),
    (68,"3x","Gambusia fish is used for:",
     ["A) Water purification","B) Eating mosquito larvae (biological control)","C) Vector control of sandflies","D) As a nutritional supplement"],
     "B) Biological control of mosquito larvae",
     "Gambusia affinis eats mosquito larvae in water bodies โ€” eco-friendly control method."),
    (69,"2x","DOTS is implemented under which national program?",
     ["A) NVBDCP","B) NTEP (National Tuberculosis Elimination Programme)","C) NLEP","D) NPCB"],
     "B) NTEP (formerly RNTCP)",
     "RNTCP renamed to NTEP in 2020 with goal to eliminate TB by 2025 (India target)."),
    (70,"2x","Standard case definition of acute diarrhea in children:",
     ["A) >5 loose stools/day for >14 days","B) โ‰ฅ3 loose/watery stools/day for <14 days","C) Blood in stool only","D) Vomiting + loose stool for 1 day"],
     "B) โ‰ฅ3 loose/watery stools per day for <14 days",
     "Acute diarrhea: <14 days. Persistent diarrhea: โ‰ฅ14 days. Dysentery = blood in stool."),
    (71,"2x","Universal precautions in healthcare include all EXCEPT:",
     ["A) Hand washing","B) Using gloves","C) Avoiding all contact with patients","D) Safe disposal of sharps"],
     "C) Avoiding all contact with patients",
     "Universal precautions: treat all patients as potentially infectious; use PPE, hand hygiene, safe sharps disposal โ€” not patient avoidance."),
    (72,"3x","Cholera is caused by:",
     ["A) Vibrio cholerae","B) Salmonella typhi","C) Shigella dysenteriae","D) Entamoeba histolytica"],
     "A) Vibrio cholerae (El Tor biotype, O1/O139 serogroup)",
     "Cholera = profuse watery diarrhea, severe dehydration. Feco-oral route. ORT is cornerstone."),
    (73,"2x","Notification of communicable disease is the responsibility of:",
     ["A) ANM only","B) ASHA","C) Any medical practitioner/healthcare provider","D) District Collector"],
     "C) Any registered medical practitioner / healthcare provider",
     "Under IHR 2005 and Epidemic Diseases Act, notifiable diseases must be reported by any treating practitioner."),
    (74,"2x","MDA for filariasis elimination uses which drugs?",
     ["A) Dapsone + Rifampicin","B) DEC + Albendazole","C) Chloroquine + Primaquine","D) Ivermectin only"],
     "B) DEC (Diethylcarbamazine) + Albendazole",
     "Annual MDA with DEC 6mg/kg + Albendazole 400mg for eligible population in endemic districts."),
    (75,"2x","Which disease uses RDK (Rapid Diagnostic Kit) for field-level diagnosis?",
     ["A) TB","B) HIV","C) Malaria","D) Leprosy"],
     "C) Malaria",
     "Malaria RDK (HRP2-based for P. falciparum, pLDH for P. vivax) is used by ASHAs for rapid field diagnosis."),
]
for q in cd_mcqs:
    for e in mcq(*q): story.append(e)

story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# SECTION 4: NHM PROGRAMS + NCD + FAMILY PLANNING
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("SECTION 4: NHM PROGRAMS, NCD & FAMILY PLANNING (Q76โ€“110)", ORANGE))
story.append(Spacer(1,0.2*cm))
story.append(warn_box("NHM program questions = 20 marks (Section 3 of exam). Every program name, launch year, and key figure WILL be asked."))
story.append(Spacer(1,0.2*cm))

nhm_mcqs = [
    (76,"6x","PM-JAY (Ayushman Bharat) provides health coverage of:",
     ["A) Rs.1 lakh/family/year","B) Rs.2 lakh/family/year","C) Rs.5 lakh/family/year","D) Rs.10 lakh/family/year"],
     "C) Rs.5 lakh per family per year",
     "PM-JAY covers secondary and tertiary hospitalization for poor families. 10.74 crore families."),
    (77,"5x","POSHAN Abhiyaan is also known as:",
     ["A) ICDS","B) National Nutrition Mission (NNM)","C) Mid-Day Meal Scheme","D) SABLA"],
     "B) National Nutrition Mission (NNM)",
     "POSHAN Abhiyaan (NNM) launched March 2018 with targets to reduce stunting, wasting, anemia by 2022."),
    (78,"5x","Emergency contraceptive pill should be taken within:",
     ["A) 24 hours","B) 48 hours","C) 72 hours","D) 120 hours"],
     "C) 72 hours (most effective; can be used up to 120 hours with reduced efficacy)",
     "Levonorgestrel 1.5mg ('i-pill'): within 72 hours, 85% effective. Does NOT protect from STIs."),
    (79,"4x","Antara injectable contraceptive is given:",
     ["A) Monthly","B) Every 3 months","C) Every 6 months","D) Annually"],
     "B) Every 3 months (quarterly)",
     "Antara = DMPA 150 mg IM. Progestin-only; no estrogen; suitable for lactating women."),
    (80,"4x","NSV (No-Scalpel Vasectomy) is a method of:",
     ["A) Female sterilization","B) Male sterilization","C) Barrier contraception","D) Intrauterine contraception"],
     "B) Male sterilization",
     "NSV is simpler, faster, has fewer complications than conventional vasectomy. Failure rate <0.1%."),
    (81,"5x","HbA1c โ‰ฅ ___ % is diagnostic of Diabetes Mellitus:",
     ["A) 5.5%","B) 6.0%","C) 6.5%","D) 7.0%"],
     "C) HbA1c โ‰ฅ 6.5%",
     "DM criteria: FBS โ‰ฅ126 mg/dL OR PPBS โ‰ฅ200 mg/dL OR HbA1c โ‰ฅ6.5% OR random BG โ‰ฅ200 with symptoms."),
    (82,"5x","Hypertension is diagnosed when BP is:",
     ["A) โ‰ฅ120/80 mmHg","B) โ‰ฅ130/85 mmHg","C) โ‰ฅ140/90 mmHg","D) โ‰ฅ150/95 mmHg"],
     "C) โ‰ฅ140/90 mmHg on 2 separate occasions",
     "JNC-8 / Indian HTN Guidelines: โ‰ฅ140/90 mmHg = Hypertension. Grade 1: 140-159/90-99; Grade 2: โ‰ฅ160/100."),
    (83,"4x","HPV vaccine is given to girls to prevent:",
     ["A) Ovarian cancer","B) Breast cancer","C) Cervical cancer","D) Endometrial cancer"],
     "C) Cervical cancer",
     "HPV serotypes 16 and 18 cause ~70% of cervical cancers. 2 doses for 9-14 yrs; 3 doses for โ‰ฅ15 yrs."),
    (84,"4x","VIA (Visual Inspection with Acetic Acid) is used for screening:",
     ["A) Breast cancer","B) Cervical cancer","C) Oral cancer","D) Colon cancer"],
     "B) Cervical cancer",
     "VIA: 3-5% acetic acid applied; acetowhite area = VIA positive = colposcopy/biopsy needed."),
    (85,"4x","NPCDCS stands for:",
     ["A) National Programme for Communicable Disease Control","B) National Programme for Prevention and Control of Cancer, Diabetes, CVD and Stroke","C) National Primary Care Development and Community Support","D) None of the above"],
     "B) National Programme for Prevention and Control of Cancer, Diabetes, CVD and Stroke",
     "NPCDCS โ€” screening at HWC for all โ‰ฅ30 years for 3 NCDs and 3 cancers."),
    (86,"4x","Chhaya (Centchroman) is taken:",
     ["A) Daily","B) Once weekly for 3 months, then fortnightly","C) Monthly injection","D) Every 3 months"],
     "B) Once weekly for first 3 months, then once every 2 weeks",
     "Chhaya = Ormeloxifene (SERM); non-steroidal; no hormonal side effects; approved for women โ‰ฅ18 yrs."),
    (87,"3x","First line drug for Type 2 Diabetes is:",
     ["A) Insulin","B) Metformin","C) Glibenclamide","D) Sitagliptin"],
     "B) Metformin",
     "Metformin (Biguanide) = first-line for T2DM. Reduces hepatic glucose output. Contraindicated in renal failure."),
    (88,"3x","Oral cancer screening at HWC involves:",
     ["A) CT scan","B) Visual examination of oral cavity","C) Biopsy","D) MRI"],
     "B) Visual examination of oral cavity for ulcers, leukoplakia, erythroplakia",
     "CHO/ANM does visual oral examination at HWC. VIA for cervix, CBE for breast, visual exam for oral."),
    (89,"4x","CBE (Clinical Breast Examination) is done for women aged:",
     ["A) 20+","B) 25+","C) 30+","D) 40+"],
     "C) 30 years and above",
     "NPCDCS: CBE by trained CHO/ANM for women โ‰ฅ30 years at HWC."),
    (90,"3x","RASHTRIYA VAYOSHRI YOJANA is for:",
     ["A) Pregnant women","B) BPL elderly with age-related disabilities","C) Adolescent girls","D) TB patients"],
     "B) BPL elderly (60+ years) with age-related disabilities",
     "Free assistive devices: hearing aids, spectacles, walking sticks, dentures for BPL elderly."),
    (91,"4x","RBSK launch year:",
     ["A) 2005","B) 2010","C) 2013","D) 2016"],
     "C) 2013",
     "RBSK (Rashtriya Bal Swasthya Karyakram) launched in 2013 under NHM."),
    (92,"3x","Eligible for JSSK (free delivery services):",
     ["A) Only BPL women","B) All pregnant women at government health facilities","C) Only for first delivery","D) Only for women with ANC cards"],
     "B) ALL pregnant women (irrespective of BPL/APL) at government health facilities",
     "JSSK is universal โ€” free delivery for all pregnant women + sick newborns up to 30 days."),
    (93,"3x","PMBJP (Pradhan Mantri Bhartiya Janaushadhi Pariyojana) provides:",
     ["A) Free vaccines","B) Generic medicines at affordable prices","C) Free hospitalization","D) Monthly ration"],
     "B) Quality generic medicines at lower prices through Janaushadhi stores",
     "PMBJP Kendras sell generic medicines at 50-90% less than market price."),
    (94,"3x","Anemia Mukt Bharat IFA for infants aged 6-59 months:",
     ["A) Daily 20 mg iron drops","B) Weekly 30 mg iron syrup","C) Daily ferrous sulphate drops","D) Biweekly tablet"],
     "A) Daily liquid iron supplementation (1 mg/kg/day elemental iron) as drops",
     "AMB: infants 6-59 months receive daily iron (1mg/kg/day) as drops or syrup."),
    (95,"3x","LaQshya program aims to improve:",
     ["A) Nutrition of mothers","B) Quality of care in Labour Rooms and Maternity OTs","C) TB treatment compliance","D) Cancer screening"],
     "B) Quality of care in Labour Rooms and Maternity OTs",
     "LaQshya = Labour Room Quality Improvement Initiative for respectful maternity care."),
    (96,"2x","PCPNDT Act was enacted to prevent:",
     ["A) Maternal mortality","B) Sex-selective abortion (female foeticide)","C) Child marriage","D) Malnutrition"],
     "B) Sex-selective abortion / female foeticide",
     "PCPNDT Act 1994 bans sex determination using ultrasound or any diagnostic technique."),
    (97,"2x","National Mental Health Programme (NMHP) was launched in:",
     ["A) 1975","B) 1982","C) 1990","D) 2000"],
     "B) 1982",
     "NMHP (1982) integrated mental health into general healthcare. DMHP added in 1996."),
    (98,"3x","KIRAN helpline (mental health) number is:",
     ["A) 1800-500-0019","B) 1800-599-0019","C) 14416","D) 104"],
     "B) 1800-599-0019",
     "KIRAN: free, 24x7, toll-free mental health rehabilitation helpline launched by Ministry of Social Justice."),
    (99,"2x","Under NHM, one ASHA is appointed per:",
     ["A) 500 population","B) 1,000 population","C) 2,000 population","D) 3,000 population"],
     "B) 1,000 population",
     "1 ASHA per 1,000 rural population; preferably a woman aged 25-45 yrs, 8th pass, resident of the village."),
    (100,"3x","Mission Parivar Vikas is focused on districts with TFR >3 โ€” how many districts?",
     ["A) 50","B) 100","C) 146","D) 200"],
     "C) 146 high fertility districts",
     "Mission Parivar Vikas covers 146 districts (across 7 states) with TFR >3 for accelerated family planning."),
    (101,"2x","ASHA minimum educational qualification:",
     ["A) 5th pass","B) 8th pass","C) 10th pass","D) Graduate"],
     "B) 8th standard pass (preferably 10th pass)",
     "ASHA: Female, age 25-45 years, married/widowed/divorced, resident of the village, 8th pass minimum."),
    (102,"2x","Emergency ambulance number in Maharashtra is:",
     ["A) 102","B) 104","C) 108","D) 112"],
     "C) 108",
     "108 = emergency (medical, fire, police). 102 = free maternity (Janani) ambulance. 104 = health helpline."),
    (103,"2x","Article 47 of Indian Constitution relates to:",
     ["A) Right to Education","B) Duty of State to raise nutrition levels and public health","C) Right to Equality","D) Free legal aid"],
     "B) Duty of State to raise the level of nutrition, standard of living, and public health",
     "Article 47 (Directive Principle): State's duty for public health improvement; Article 21 = Right to life (includes health)."),
    (104,"2x","BMI โ‰ฅ30 kg/mยฒ in adults is classified as:",
     ["A) Overweight","B) Obese","C) Severely obese","D) Normal"],
     "B) Obese (WHO cut-off)",
     "WHO: BMI 25-29.9 = Overweight; โ‰ฅ30 = Obese. Asian Indians: โ‰ฅ23 = overweight; โ‰ฅ27.5 = obese."),
    (105,"2x","JSSK covers sick neonates up to what age?",
     ["A) 7 days","B) 14 days","C) 28 days (1 month)","D) 3 months"],
     "C) 30 days (1 month)",
     "JSSK covers sick newborns up to 30 days for free treatment at government facilities."),
    (106,"2x","RMNCH+A strategy was launched to address health of:",
     ["A) Only pregnant women","B) Reproductive, Maternal, Newborn, Child, and Adolescent health","C) Rural population only","D) Old age population"],
     "B) Reproductive, Maternal, Newborn, Child and Adolescent Health",
     "RMNCH+A: continuum of care approach โ€” lifecycle strategy under NHM."),
    (107,"2x","WHO analgesic ladder for cancer pain โ€” Step 1 includes:",
     ["A) Morphine","B) Codeine","C) Paracetamol + NSAIDs","D) Tramadol"],
     "C) Paracetamol and/or NSAIDs (non-opioid)",
     "Step 1 = non-opioid; Step 2 = weak opioid (codeine/tramadol); Step 3 = strong opioid (morphine)."),
    (108,"2x","DMFT Index is used to measure:",
     ["A) Mental health","B) Dental caries burden","C) Malnutrition","D) Disability"],
     "B) Dental caries (Decayed, Missing, Filled Teeth)",
     "DMFT Index: D=Decayed, M=Missing, F=Filled, T=Teeth. WHO standard for dental caries epidemiology."),
    (109,"2x","Normal SpO2 in adults is:",
     ["A) 80-85%","B) 85-90%","C) 90-94%","D) 95-100%"],
     "D) 95-100%",
     "SpO2 <90% = hypoxia requiring supplemental oxygen; <80% = severe/critical."),
    (110,"2x","BLS compression rate for adults:",
     ["A) 60-80/min","B) 80-100/min","C) 100-120/min","D) 120-140/min"],
     "C) 100-120 compressions per minute",
     "Adult BLS: 30 compressions : 2 breaths; rate 100-120/min; depth 5-6 cm; allow full chest recoil."),
]
for q in nhm_mcqs:
    for e in mcq(*q): story.append(e)

story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# SECTION 5: NUTRITION & MENTAL HEALTH
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("SECTION 5: NUTRITION & MENTAL HEALTH โ€” MOST REPEATED (Q111โ€“130)", PURPLE))
story.append(Spacer(1,0.2*cm))
story.append(warn_box("Nutritional deficiency diseases and SAM/MAM criteria are high-frequency. Know all deficiency-disease-treatment links."))
story.append(Spacer(1,0.2*cm))

nut_mcqs = [
    (111,"6x","MUAC 11.5-12.5 cm in a child indicates:",
     ["A) Normal nutrition","B) Moderate Acute Malnutrition (MAM)","C) Severe Acute Malnutrition (SAM)","D) Stunting"],
     "B) Moderate Acute Malnutrition (MAM)",
     "MAM: MUAC 11.5-12.5 cm. SAM: MUAC <11.5 cm. Normal: >12.5 cm."),
    (112,"5x","Bitot's spots are a sign of deficiency of:",
     ["A) Vitamin D","B) Vitamin A","C) Vitamin C","D) Iron"],
     "B) Vitamin A deficiency",
     "Vitamin A deficiency sequence: Night blindness โ†’ Xerophthalmia โ†’ Bitot spots โ†’ Keratomalacia โ†’ blindness."),
    (113,"5x","Pellagra is caused by deficiency of:",
     ["A) Thiamine (B1)","B) Riboflavin (B2)","C) Niacin (B3)","D) Pyridoxine (B6)"],
     "C) Niacin (Vitamin B3)",
     "Pellagra = 3Ds: Dermatitis (photosensitive), Diarrhea, Dementia. 4th D = Death if untreated."),
    (114,"5x","Kwashiorkor is characterized by:",
     ["A) Total calorie deficiency with severe wasting","B) Protein deficiency with edema, moon face, pot belly","C) Only vitamin deficiency","D) Only mineral deficiency"],
     "B) Protein deficiency โ€” edema, moon face, skin changes, pot belly (hepatomegaly)",
     "Kwashiorkor = protein energy malnutrition (protein deficiency). Marasmus = total calorie deficiency (severe wasting)."),
    (115,"4x","Iodine content of iodized salt at consumer level should be at least:",
     ["A) 5 ppm","B) 15 ppm","C) 30 ppm","D) 45 ppm"],
     "B) โ‰ฅ15 ppm at consumer level",
     "Iodized salt: โ‰ฅ30 ppm at production level; โ‰ฅ15 ppm at consumer level to prevent IDD (Iodine Deficiency Disorders)."),
    (116,"4x","RUTF stands for:",
     ["A) Routine Urine Test Finding","B) Ready-to-Use Therapeutic Food","C) Rapid Universal Treatment Formula","D) Recommended Urea Treatment Feed"],
     "B) Ready-to-Use Therapeutic Food",
     "RUTF (e.g., Plumpy'Nut): peanut-based paste used in CMAM for SAM management. Given without water."),
    (117,"4x","Beriberi is caused by deficiency of:",
     ["A) Vitamin C","B) Vitamin B12","C) Thiamine (Vitamin B1)","D) Niacin"],
     "C) Thiamine (Vitamin B1)",
     "Beriberi: Wet type = cardiac failure (edema, cardiomegaly); Dry type = peripheral neuropathy."),
    (118,"3x","Scurvy is caused by deficiency of:",
     ["A) Vitamin A","B) Vitamin B12","C) Vitamin C","D) Vitamin D"],
     "C) Vitamin C (Ascorbic Acid)",
     "Scurvy: perifollicular hemorrhage, bleeding gums, corkscrew hair, poor wound healing."),
    (119,"3x","Rickets is caused by deficiency of:",
     ["A) Vitamin A","B) Vitamin B12","C) Vitamin C","D) Vitamin D"],
     "D) Vitamin D deficiency (+ Calcium deficiency)",
     "Rickets in children = bowing of legs, frontal bossing, rachitic rosary. Osteomalacia = adult equivalent."),
    (120,"3x","Iron deficiency anemia is the most common nutritional deficiency. Hemoglobin threshold for anemia in children 6-59 months:",
     ["A) Hb <10 g/dL","B) Hb <11 g/dL","C) Hb <12 g/dL","D) Hb <13 g/dL"],
     "B) Hb <11 g/dL",
     "WHO Hb thresholds: Children 6-59 months = <11 g/dL; 5-11 years = <11.5; Pregnant women = <11 g/dL."),
    (121,"3x","SAM child with NO complications can be managed at:",
     ["A) NRC only","B) District Hospital","C) Community level through CMAM","D) AIIMS only"],
     "C) Community level through CMAM (Community-based Management of Acute Malnutrition)",
     "SAM without complications: CMAM with RUTF + amoxicillin + vitamin A + folic acid. NRC for complications."),
    (122,"3x","PHQ-9 is a tool for screening:",
     ["A) Anxiety","B) Depression","C) Dementia","D) Schizophrenia"],
     "B) Depression",
     "PHQ-9 (Patient Health Questionnaire-9): 9 questions scoring 0-27. Score โ‰ฅ10 = moderate-severe depression."),
    (123,"3x","KIRAN helpline is for:",
     ["A) TB patients","B) Mental health rehabilitation","C) Pregnant women","D) HIV patients"],
     "B) Mental health support and rehabilitation",
     "KIRAN (1800-599-0019): 24x7, free, multilingual mental health helpline by Ministry of SJ&E."),
    (124,"2x","GAD-7 is used to screen for:",
     ["A) Depression","B) Generalized Anxiety Disorder","C) Schizophrenia","D) Bipolar disorder"],
     "B) Generalized Anxiety Disorder (GAD)",
     "GAD-7: 7-item questionnaire for anxiety screening. PHQ-9 for depression; AUDIT for alcohol use."),
    (125,"2x","First-line treatment for schizophrenia:",
     ["A) Lithium","B) Haloperidol/Risperidone (antipsychotics)","C) Fluoxetine","D) Diazepam"],
     "B) Antipsychotics โ€” Haloperidol or Risperidone",
     "Typical antipsychotics: Haloperidol, Chlorpromazine. Atypical: Risperidone, Olanzapine, Clozapine."),
    (126,"2x","MMSE is used to assess:",
     ["A) Depression","B) Cognitive function (dementia screening)","C) Anxiety","D) Malnutrition"],
     "B) Cognitive function / dementia screening",
     "Mini-Mental State Examination (MMSE): max score 30. Score <24 = cognitive impairment."),
    (127,"2x","NMHP is integrated with primary care through:",
     ["A) AIIMS","B) NIMHANS","C) DMHP at district level","D) Private hospitals"],
     "C) DMHP (District Mental Health Programme) at district level",
     "DMHP integrates mental health into general health services at district level."),
    (128,"2x","Megaloblastic anemia is due to deficiency of:",
     ["A) Iron","B) Folic acid and/or Vitamin B12","C) Vitamin C","D) Thiamine"],
     "B) Vitamin B12 and/or Folic acid",
     "Megaloblastic anemia: large, abnormal RBCs. Folic acid deficiency + B12 deficiency both cause it."),
    (129,"2x","WIFS program provides IFA once weekly to adolescents โ€” which day?",
     ["A) Monday","B) Wednesday","C) Friday","D) Sunday"],
     "A) Monday (commonly designated, but weekly on any fixed day)",
     "WIFS: fixed weekly day (commonly Monday) for supervised IFA consumption in schools."),
    (130,"2x","Fluorosis of teeth (dental mottling) occurs due to excess:",
     ["A) Chlorine","B) Fluoride (>1.5 ppm in drinking water)","C) Iodine","D) Calcium"],
     "B) Fluoride >1.5 ppm in drinking water",
     "Dental fluorosis: mottling, pitting of enamel. Skeletal fluorosis with >3 ppm. Endemic in some Indian districts."),
]
for q in nut_mcqs:
    for e in mcq(*q): story.append(e)

story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# SECTION 6: BASIC PUBLIC HEALTH & EMERGENCY
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("SECTION 6: BASIC PUBLIC HEALTH, EMERGENCY & GENERAL (Q131โ€“150)", DARK_BLUE))
story.append(Spacer(1,0.2*cm))
story.append(warn_box("PHC system, health indicators, and basic clinical skills are asked every year. These are easy marks โ€” don't lose them."))
story.append(Spacer(1,0.2*cm))

basic_mcqs = [
    (131,"5x","IMR (Infant Mortality Rate) is deaths per 1,000:",
     ["A) Total population","B) Live births","C) Under-5 population","D) Women 15-49 years"],
     "B) Live births",
     "IMR = deaths of infants under 1 year per 1,000 live births. India IMR target: <20 (SDG)."),
    (132,"5x","The APEX referral level in the health system is:",
     ["A) Sub-Centre","B) PHC","C) CHC","D) District Hospital"],
     "D) District Hospital",
     "Referral hierarchy: SC โ†’ PHC โ†’ CHC โ†’ Sub-District โ†’ District Hospital (apex)."),
    (133,"4x","Population covered by one PHC in plains:",
     ["A) 3,000","B) 10,000","C) 30,000","D) 1,20,000"],
     "C) 30,000 (plains); 20,000 (hilly/tribal)",
     "PHC = 1 Medical Officer, 4-6 bedded, covers 30,000 population (plains) or 20,000 (hilly/tribal)."),
    (134,"4x","CHC has how many beds?",
     ["A) 6","B) 10","C) 30","D) 100"],
     "C) 30 beds",
     "CHC: 30 beds, 4 specialists (surgeon, physician, gynecologist, pediatrician), 120,000 population."),
    (135,"4x","Primordial prevention aims to:",
     ["A) Treat existing disease","B) Prevent emergence of risk factors in population","C) Rehabilitate patients","D) Early detection of disease"],
     "B) Prevent emergence of risk factors in the population",
     "Primordial prevention = upstream prevention (social/economic policies, health education at population level)."),
    (136,"4x","Secondary prevention involves:",
     ["A) Immunization","B) Screening and early detection","C) Rehabilitation","D) Health promotion"],
     "B) Screening and early detection of disease",
     "Secondary prevention: detect disease early before symptoms appear. E.g., PAP smear, mammography, blood pressure screening."),
    (137,"3x","TFR of India as per NFHS-5 is:",
     ["A) 1.8","B) 2.0","C) 2.3","D) 2.7"],
     "B) 2.0",
     "TFR (NFHS-5, 2019-21) = 2.0. Replacement level = 2.1. India is at near-replacement level."),
    (138,"3x","Life expectancy at birth in India (2019-23) is approximately:",
     ["A) 58 years","B) 63 years","C) 69.7 years","D) 75 years"],
     "C) ~69.7 years",
     "India life expectancy: ~69.7 years (2019-23). Global average ~73.3 years (WHO 2023)."),
    (139,"3x","Normal adult heart rate is:",
     ["A) 40-60 beats/min","B) 60-100 beats/min","C) 80-120 beats/min","D) 100-140 beats/min"],
     "B) 60-100 beats/min",
     "Normal resting HR: 60-100/min. Bradycardia <60/min; Tachycardia >100/min."),
    (140,"3x","Normal adult blood pressure is:",
     ["A) 100/60 mmHg","B) 120/80 mmHg","C) 130/90 mmHg","D) 140/80 mmHg"],
     "B) 120/80 mmHg (optimal)",
     "Normal BP: <120/80. Elevated: 120-129/<80. HTN Stage 1: 130-139/80-89. HTN Stage 2: โ‰ฅ140/90."),
    (141,"3x","Fever is defined as oral temperature above:",
     ["A) 37ยฐC","B) 37.5ยฐC","C) 38ยฐC","D) 39ยฐC"],
     "C) 38ยฐC (100.4ยฐF)",
     "Normal oral temp: 36.5-37.5ยฐC. Fever: >38ยฐC. Hyperpyrexia: >41ยฐC. Hypothermia: <35ยฐC."),
    (142,"3x","Normal respiratory rate in an adult is:",
     ["A) 8-12 breaths/min","B) 12-20 breaths/min","C) 20-30 breaths/min","D) 25-35 breaths/min"],
     "B) 12-20 breaths/min",
     "Tachypnea >20/min; Bradypnea <12/min; Normal newborn RR: 30-60/min."),
    (143,"3x","BLS compression:breath ratio for adult:",
     ["A) 15:2","B) 30:2","C) 5:1","D) 20:2"],
     "B) 30:2",
     "Adult BLS: 30 chest compressions : 2 rescue breaths. For children (2 rescuer): 15:2."),
    (144,"2x","Notifiable disease must be reported within 24 hours. Which is immediately notifiable?",
     ["A) Typhoid","B) Dengue","C) Cholera","D) Malaria"],
     "C) Cholera",
     "Immediately notifiable (IHR 2005): Cholera, Plague, Yellow Fever, SARS, COVID-19 โ€” report within 24 hours."),
    (145,"2x","Winslow's definition of Public Health was given in:",
     ["A) 1910","B) 1920","C) 1948","D) 1978"],
     "B) 1920",
     "C.E.A. Winslow (1920): 'Science and art of preventing disease, prolonging life and promoting health through organized community efforts.'"),
    (146,"2x","Alma-Ata Declaration on Primary Health Care was in:",
     ["A) 1948","B) 1965","C) 1978","D) 2000"],
     "C) 1978",
     "Alma-Ata Declaration (1978, USSR): Health for All by 2000. Primary Health Care as cornerstone."),
    (147,"2x","Millennium Development Goals (MDGs) were for which period?",
     ["A) 1990-2005","B) 2000-2015","C) 2005-2020","D) 2015-2030"],
     "B) 2000-2015",
     "MDGs (2000-2015): 8 goals. Replaced by SDGs (2015-2030): 17 goals. SDG 3 = Health."),
    (148,"2x","Which article of Indian Constitution makes education a fundamental right?",
     ["A) Article 21","B) Article 21A","C) Article 47","D) Article 45"],
     "B) Article 21A (Right to Education)",
     "Article 21 = Right to Life (includes health). Article 21A = Right to Education. Article 47 = Public Health (DPSP)."),
    (149,"2x","Sustainable Development Goal (SDG) 3 relates to:",
     ["A) Zero hunger","B) Good health and well-being","C) Quality education","D) Clean water"],
     "B) Good Health and Well-Being",
     "SDG 3: Ensure healthy lives and promote well-being for all at all ages. Target includes UHC by 2030."),
    (150,"3x","Under NHM, Health & Wellness Centre (HWC) is upgraded from which facility?",
     ["A) PHC","B) CHC","C) Sub-Centre","D) District Hospital"],
     "C) Sub-Centre (upgraded to HWC)",
     "HWC: Sub-Centre upgraded to provide 12 comprehensive primary health care services under Ayushman Bharat."),
]
for q in basic_mcqs:
    for e in mcq(*q): story.append(e)

story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# QUICK REFERENCE TABLES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story.append(chap_hdr("QUICK REFERENCE: MUST-KNOW FACTS FOR CHO EXAM", ORANGE))
story.append(Spacer(1,0.3*cm))

story.append(Paragraph("Emergency Helplines (Asked repeatedly)", S['SecTitle']))
hl_rows = [
    ["108","Emergency Ambulance (Medical, Fire, Police)"],
    ["102","Janani (Maternity) Express โ€” Free for pregnant women"],
    ["104","Mobile Health Services / Health Helpline"],
    ["112","Unified Emergency Response"],
    ["1800-599-0019","KIRAN Mental Health Helpline (free, 24x7)"],
    ["14416","iCall / Mental health support"],
    ["1800-11-1565","Tobacco Quit Line (NTCP)"],
]
hl_data = [[Paragraph(c, S['TableHdr'] if i==0 else S['TableCell']) for c in row]
           for i, row in enumerate([["Number","Service"]] + hl_rows)]
hlt = Table(hl_data, colWidths=[5*cm, 12*cm])
hlt.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,0),TEAL),
    ('ROWBACKGROUNDS',(0,1),(-1,-1),[white,GREY_BG]),
    ('BOX',(0,0),(-1,-1),0.8,TEAL),
    ('INNERGRID',(0,0),(-1,-1),0.4,HexColor("#80CBC4")),
    ('TOPPADDING',(0,0),(-1,-1),5),
    ('BOTTOMPADDING',(0,0),(-1,-1),5),
    ('LEFTPADDING',(0,0),(-1,-1),6),
    ('RIGHTPADDING',(0,0),(-1,-1),6),
    ('FONTNAME',(0,1),(0,-1),'Helvetica-Bold'),
    ('TEXTCOLOR',(0,1),(0,-1),DARK_BLUE),
]))
story.append(hlt)
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Key Health Indicators โ€” India (Most Asked)", S['SecTitle']))
ki_rows = [
    ["Indicator","Value","Source/Year"],
    ["MMR","97 per 1,00,000 live births","SRS 2018-20"],
    ["IMR","28 per 1,000 live births","SRS 2020"],
    ["NMR","20 per 1,000 live births","SRS 2020"],
    ["U5MR","32 per 1,000 live births","SRS 2020"],
    ["TFR","2.0 (children/woman)","NFHS-5 (2019-21)"],
    ["Life Expectancy","~69.7 years","2019-23"],
    ["Sex Ratio at Birth","929 females per 1000 males","NFHS-5"],
    ["Institutional Delivery","88.6%","NFHS-5"],
    ["Full Immunization","76.4%","NFHS-5"],
    ["Stunting (children <5)","35.5%","NFHS-5"],
    ["Wasting (children <5)","19.3%","NFHS-5"],
    ["Anemia in children 6-59 mo","67.1%","NFHS-5"],
    ["Anemia in pregnant women","52.2%","NFHS-5"],
]
ki_data = [[Paragraph(c, S['TableHdr'] if i==0 else S['TableCell']) for c in row]
           for i, row in enumerate(ki_rows)]
kit = Table(ki_data, colWidths=[6.5*cm, 5*cm, 5.5*cm])
kit.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,0),DARK_BLUE),
    ('ROWBACKGROUNDS',(0,1),(-1,-1),[white,GREY_BG]),
    ('BOX',(0,0),(-1,-1),0.8,DARK_BLUE),
    ('INNERGRID',(0,0),(-1,-1),0.4,HexColor("#90CAF9")),
    ('TOPPADDING',(0,0),(-1,-1),5),
    ('BOTTOMPADDING',(0,0),(-1,-1),5),
    ('LEFTPADDING',(0,0),(-1,-1),6),
    ('RIGHTPADDING',(0,0),(-1,-1),6),
]))
story.append(kit)
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("NHM Program Quick Reference (All repeatedly asked)", S['SecTitle']))
np_rows = [
    ["Program","Year","Key Feature"],
    ["JSY","2005","Cash for institutional delivery; Rs.700 rural (MH)"],
    ["JSSK","2011","Free delivery, drugs, diet, transport โ€” ALL women at govt hospitals"],
    ["PMSMA","2016","Free ANC on 9th of every month"],
    ["RBSK","2013","4D screening 0-18 yrs; Mobile Health Teams at schools/Anganwadi"],
    ["POSHAN Abhiyaan (NNM)","2018","Reduce stunting/wasting/anemia; 6 beneficiary groups"],
    ["Anemia Mukt Bharat","2018","IFA to 6 groups; WIFS for adolescents"],
    ["Ayushman Bharat - HWC","2018","Sub-centre โ†’ HWC; 12 CPHC service packages; CHO posted"],
    ["PM-JAY","2018","Rs.5 lakh/family/year; 10.74 cr families"],
    ["LaQshya","2017","Labour Room quality improvement"],
    ["Mission Parivar Vikas","2016","146 high TFR districts; accelerated FP services"],
    ["PCPNDT Act","1994","Ban sex determination"],
    ["MTP Act (amended)","2021","Up to 20 wks (single provider), 24 wks (special cases)"],
    ["NTEP (was RNTCP)","2020","TB elimination by 2025; DOTS; Nikshay Rs.500/month"],
    ["NLEP","1983","Leprosy elimination; MDT treatment"],
    ["NMHP / DMHP","1982/1996","Mental health at district level; KIRAN 1800-599-0019"],
]
np_data = [[Paragraph(c, S['TableHdr'] if i==0 else S['TableCell']) for c in row]
           for i, row in enumerate(np_rows)]
npt = Table(np_data, colWidths=[5.5*cm, 2*cm, 9.5*cm])
npt.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,0),ORANGE),
    ('ROWBACKGROUNDS',(0,1),(-1,-1),[white,GREY_BG]),
    ('BOX',(0,0),(-1,-1),0.8,ORANGE),
    ('INNERGRID',(0,0),(-1,-1),0.4,HexColor("#FFCC80")),
    ('TOPPADDING',(0,0),(-1,-1),5),
    ('BOTTOMPADDING',(0,0),(-1,-1),5),
    ('LEFTPADDING',(0,0),(-1,-1),6),
    ('RIGHTPADDING',(0,0),(-1,-1),6),
    ('FONTNAME',(1,1),(1,-1),'Helvetica-Bold'),
    ('TEXTCOLOR',(1,1),(1,-1),DARK_BLUE),
]))
story.append(npt)
story.append(Spacer(1, 0.5*cm))

# FINAL TIPS
story.append(chap_hdr("FINAL EXAM TIPS โ€” DAY BEFORE & DAY OF EXAM", TEAL))
story.append(Spacer(1,0.2*cm))
tips = [
    ("โ˜… HIGHEST PRIORITY (memorize 100%)", [
        "Full UIP immunization schedule with ages and doses",
        "JSY amounts โ€” LPS vs HPS states (Maharashtra = HPS: Rs.700 rural / Rs.600 urban for mother; Rs.600 ASHA)",
        "JSSK โ€” who is covered, what is free",
        "PMSMA โ€” 9th of every month, what services",
        "SAM criteria: MUAC <11.5, W/H <-3SD, bilateral pitting edema",
        "Vitamin A schedule โ€” 1 lakh IU at 9 months, 2 lakh IU thereafter",
        "IFA doses: 100mg+500mcg (ANC), 60mg+500mcg (WIFS), 1mg/kg/day (infants)",
    ]),
    ("โ˜… HIGH PRIORITY (very likely to be asked)", [
        "MMR India = 97 (SRS 2018-20), TFR = 2.0 (NFHS-5)",
        "TB treatment: 2HRZE + 4HR = 6 months DOTS (NTEP)",
        "Nikshay Poshan Yojana = Rs.500/month for TB patients",
        "Malaria = Anopheles; Dengue = Aedes aegypti; Filaria = Culex; JE = Culex tritaeniorhynchus; Kala Azar = Sandfly",
        "HIV Window period = 3-12 weeks; ICTC for testing; ART free at ART centres",
        "PM-JAY = Rs.5 lakh/family/year; HWC = 12 service packages; RBSK = 0-18 yrs 4D",
        "Pellagra = Niacin (3Ds); Beriberi = Thiamine; Scurvy = Vit C; Rickets = Vit D; Bitot = Vit A",
    ]),
    ("โ˜… EXAM DAY TIPS", [
        "No negative marking โ€” ALWAYS attempt all 100 questions",
        "Time: 90 minutes = 54 seconds per question. Don't spend >1 min on any question",
        "Read 'EXCEPT' and 'NOT' questions very carefully",
        "If confused between 2 options, go with your first instinct",
        "Section 3 (NHM, 20 marks) = easiest marks โ€” attempt these first if time is short",
        "Emergency helplines, program launch years, and dosage figures are common 1-mark killers",
    ]),
]
for section_title, items in tips:
    story.append(bullet(section_title, bold=True))
    for item in items:
        story.append(Paragraph(f"     - {item}", S['Bullet']))
    story.append(Spacer(1, 0.2*cm))

story.append(Spacer(1, 0.3*cm))
t = Table([[Paragraph("ALL THE BEST FOR YOUR MAHARASHTRA CHO EXAM! You are prepared. Trust your preparation.", S['CoverSub'])]],
          colWidths=[17*cm])
t.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,-1),DARK_BLUE),
    ('ROUNDEDCORNERS',[10]),
    ('TOPPADDING',(0,0),(-1,-1),14),
    ('BOTTOMPADDING',(0,0),(-1,-1),14),
    ('LEFTPADDING',(0,0),(-1,-1),20),
    ('RIGHTPADDING',(0,0),(-1,-1),20),
]))
story.append(t)

# โ”€โ”€ BUILD โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2*cm, bottomMargin=2*cm,
    title="Maharashtra CHO - Most Repeated Questions",
    author="NHM Maharashtra CHO PYQ Analysis",
    subject="Most Repeated Questions - Public Health"
)
doc.build(story)
print(f"PDF generated: {OUTPUT}")
print(f"Size: {os.path.getsize(OUTPUT)/1024:.1f} KB")
Running Command

cd /home/daytona/workspace/mh-cho-public-health && python generate_pyq_pdf.py

Your Most Repeated Questions PDF is ready!

MH CHO Most Repeated Questions

PDF Document ยท PDF


What's inside this PDF:

150 Most Repeated Questions based on PYQ analysis from 2019-2024 Maharashtra CHO exams, with frequency labels showing how many times each topic appeared.
6 Sections:
SectionQuestionsFocus
Maternal HealthQ1-25JSY, JSSK, ANC, PNC, danger signs
Child Health & ImmunizationQ26-50UIP schedule, cold chain, IMNCI, MUAC
Communicable DiseasesQ51-75TB, Malaria, Dengue, HIV, Cholera, Leprosy
NHM Programs + NCD + Family PlanningQ76-110PM-JAY, POSHAN, NPCDCS, contraceptives
Nutrition & Mental HealthQ111-130Deficiency diseases, SAM/MAM, PHQ-9, KIRAN
Basic Public Health & EmergencyQ131-150PHC system, indicators, BLS, vital signs
Bonus Quick Reference Tables:
  • All Emergency Helpline numbers
  • Key India Health Indicators (MMR, IMR, TFR from NFHS-5/SRS)
  • 15 NHM Programs with launch year and key facts
  • Final Exam Day Tips (what to prioritize in last 24 hours)
Every question has: โœ“ Answer + Explanation + [Asked Nx] frequency label

Maharashtra cho previously year all questions in one PDF

Searching the Web

Maharashtra NHM CHO previous year question paper 2019 2020 2022 2023 actual questions with answers

Searching the Web

Maharashtra CHO exam 2023 January question paper PDF download actual questions

Reading Web Page

https://nursingpyq.com/pyq/nhm-cho

High yield topics of cho maharara sth with MCQ give ldf

Writing File

~/mh-cho-public-health/generate_highyield.py

from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.colors import HexColor, white
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
import os

OUTPUT = "/home/daytona/workspace/mh-cho-public-health/MH_CHO_HighYield_Topics_MCQ.pdf"

# โ”€โ”€ COLORS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
C = {
    'navy':    HexColor("#0D1B4B"),
    'blue':    HexColor("#1565C0"),
    'lblue':   HexColor("#E3F2FD"),
    'teal':    HexColor("#00695C"),
    'lteal':   HexColor("#E0F2F1"),
    'orange':  HexColor("#E65100"),
    'lorange': HexColor("#FFF3E0"),
    'red':     HexColor("#B71C1C"),
    'lred':    HexColor("#FFEBEE"),
    'purple':  HexColor("#4A148C"),
    'lpurple': HexColor("#F3E5F5"),
    'green':   HexColor("#1B5E20"),
    'lgreen':  HexColor("#E8F5E9"),
    'amber':   HexColor("#FF6F00"),
    'lamber':  HexColor("#FFF8E1"),
    'grey':    HexColor("#F5F5F5"),
    'dgrey':   HexColor("#424242"),
    'gold':    HexColor("#F9A825"),
    'crimson': HexColor("#880E4F"),
    'lcrimson':HexColor("#FCE4EC"),
}

# โ”€โ”€ STYLES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
def S(name, **kw):
    base = dict(fontName='Helvetica', fontSize=10, textColor=C['dgrey'],
                leading=14, spaceBefore=2, spaceAfter=2)
    base.update(kw)
    return ParagraphStyle(name, **base)

STYLES = {
    'cover_title': S('ct', fontName='Helvetica-Bold', fontSize=26, textColor=white,
                     alignment=TA_CENTER, leading=32, spaceAfter=6),
    'cover_sub':   S('cs', fontName='Helvetica-Bold', fontSize=13, textColor=HexColor("#BBDEFB"),
                     alignment=TA_CENTER, leading=18),
    'cover_note':  S('cn', fontName='Helvetica', fontSize=11, textColor=HexColor("#FFE082"),
                     alignment=TA_CENTER, leading=15),
    'chap':        S('ch', fontName='Helvetica-Bold', fontSize=14, textColor=white,
                     alignment=TA_CENTER, leading=18),
    'topic_title': S('tt', fontName='Helvetica-Bold', fontSize=13, textColor=C['navy'],
                     spaceBefore=10, spaceAfter=4, leading=16),
    'subtopic':    S('st', fontName='Helvetica-Bold', fontSize=11, textColor=C['teal'],
                     spaceBefore=6, spaceAfter=3, leading=14),
    'body':        S('bo', alignment=TA_JUSTIFY),
    'bullet':      S('bu', leftIndent=14),
    'bbold':       S('bb', fontName='Helvetica-Bold', leftIndent=14),
    'note':        S('no', fontName='Helvetica-Oblique', fontSize=9, textColor=C['purple'],
                     leftIndent=6),
    'q':           S('qu', fontName='Helvetica-Bold', spaceBefore=5, spaceAfter=2),
    'opt':         S('op', leftIndent=14, spaceAfter=1),
    'ans':         S('an', fontName='Helvetica-Bold', textColor=C['green'], leftIndent=14),
    'exp':         S('ex', fontName='Helvetica-Oblique', fontSize=9, textColor=C['purple'],
                     leftIndent=14, spaceAfter=3),
    'thdr':        S('th', fontName='Helvetica-Bold', fontSize=9, textColor=white,
                     alignment=TA_CENTER, leading=12),
    'tcell':       S('tc', fontSize=9, textColor=C['dgrey'], leading=12),
    'badge':       S('ba', fontName='Helvetica-Bold', fontSize=8, textColor=C['red'],
                     spaceBefore=0, spaceAfter=0, leading=11),
    'warn':        S('wa', fontName='Helvetica-Bold', textColor=C['red'],
                     spaceBefore=3, spaceAfter=3, leading=14, leftIndent=6),
    'pagenum':     S('pn', fontSize=8, textColor=HexColor("#9E9E9E"), alignment=TA_CENTER),
}

# โ”€โ”€ HELPERS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
W = 17 * cm

def hdr(text, color):
    t = Table([[Paragraph(text, STYLES['chap'])]], colWidths=[W])
    t.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,-1),color),
        ('ROUNDEDCORNERS',[8]),
        ('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 box(text, bg, border, style='body'):
    t = Table([[Paragraph(text, STYLES[style])]], colWidths=[W])
    t.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,-1),bg),
        ('BOX',(0,0),(-1,-1),1.2,border),
        ('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 key_box(text):   return box(f"<b>โ˜… KEY FACT:</b> {text}", C['lamber'], C['amber'])
def warn_box(text):  return box(f"<b>โš  HIGH YIELD:</b> {text}", C['lred'], C['red'])
def green_box(text): return box(f"<b>โœ“ REMEMBER:</b> {text}", C['lgreen'], C['green'])

def tbl(rows, headers, widths):
    data = [[Paragraph(h, STYLES['thdr']) for h in headers]]
    for row in rows:
        data.append([Paragraph(str(c), STYLES['tcell']) for c in row])
    t = Table(data, colWidths=widths)
    t.setStyle(TableStyle([
        ('BACKGROUND',(0,0),(-1,0),C['navy']),
        ('ROWBACKGROUNDS',(0,1),(-1,-1),[white,C['grey']]),
        ('BOX',(0,0),(-1,-1),0.8,C['navy']),
        ('INNERGRID',(0,0),(-1,-1),0.4,HexColor("#90CAF9")),
        ('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5),
        ('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),
        ('VALIGN',(0,0),(-1,-1),'MIDDLE'),
    ]))
    return t

def mcq(num, star, q, opts, ans, exp=""):
    el = []
    prefix = "โ˜… " if star else ""
    el.append(Paragraph(f"Q{num}. {prefix}{q}", STYLES['q']))
    for o in opts:
        el.append(Paragraph(o, STYLES['opt']))
    el.append(Paragraph(f"โœ“ {ans}", STYLES['ans']))
    if exp:
        el.append(Paragraph(f"ยป {exp}", STYLES['exp']))
    el.append(HRFlowable(width="100%", thickness=0.4, color=HexColor("#BDBDBD")))
    return el

def b(text, bold=False):
    st = STYLES['bbold'] if bold else STYLES['bullet']
    return Paragraph(f"{'โ˜…' if bold else 'โ€ข'} {text}", st)

def sb(text):
    return Paragraph(f"   โ†ณ {text}", STYLES['bullet'])

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story = []

# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
# COVER
# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
cov = Table([
    [Paragraph("MAHARASHTRA CHO EXAM", STYLES['cover_title'])],
    [Paragraph("HIGH YIELD TOPICS + MCQs", STYLES['cover_title'])],
    [Spacer(1,4)],
    [Paragraph("Topic-wise Notes  โ€ข  200+ MCQs  โ€ข  Quick Revision Tables", STYLES['cover_sub'])],
    [Spacer(1,4)],
    [Paragraph("Covers all 15 high-yield topics | Based on NHM Maharashtra Syllabus 2025-26", STYLES['cover_note'])],
    [Paragraph("โ˜… = Most repeated / highest probability question", STYLES['cover_note'])],
], colWidths=[W])
cov.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,-1),C['navy']),
    ('ROUNDEDCORNERS',[12]),
    ('TOPPADDING',(0,0),(-1,-1),12),('BOTTOMPADDING',(0,0),(-1,-1),12),
    ('LEFTPADDING',(0,0),(-1,-1),20),('RIGHTPADDING',(0,0),(-1,-1),20),
]))
story += [Spacer(1,1.5*cm), cov, Spacer(1,0.6*cm)]

# Priority map
story.append(Paragraph("HIGH YIELD TOPIC PRIORITY CHART", STYLES['topic_title']))
pri_rows = [
    ["TIER 1 โ€” Must Score (40+ marks)","Maternal Health, Child Health & UIP, NHM Programs, Communicable Diseases"],
    ["TIER 2 โ€” Should Score (30 marks)","NCD + Cancer Screening, Family Planning, Nutrition, Basic Public Health"],
    ["TIER 3 โ€” Good to Score (30 marks)","Adolescent Health, Mental Health, Emergency/BLS, Referral, Elderly Care, Oral/ENT, Human Body"],
]
pd = [[Paragraph(r[0], STYLES['thdr']), Paragraph(r[1], STYLES['thdr'])] if i==0
      else [Paragraph(r[0], STYLES['tcell']), Paragraph(r[1], STYLES['tcell'])]
      for i,r in enumerate([["Priority","Topics"]] + pri_rows)]
pt = Table(pd, colWidths=[6*cm, 11*cm])
pt.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,0),C['orange']),
    ('BACKGROUND',(0,1),(-1,1),HexColor("#FFEBEE")),
    ('BACKGROUND',(0,2),(-1,2),HexColor("#FFF3E0")),
    ('BACKGROUND',(0,3),(-1,3),C['lgreen']),
    ('BOX',(0,0),(-1,-1),0.8,C['orange']),
    ('INNERGRID',(0,0),(-1,-1),0.4,HexColor("#FFCC80")),
    ('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6),
    ('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),
    ('FONTNAME',(0,1),(0,3),'Helvetica-Bold'),
    ('TEXTCOLOR',(0,1),(0,1),C['red']),
    ('TEXTCOLOR',(0,2),(0,2),C['amber']),
    ('TEXTCOLOR',(0,3),(0,3),C['green']),
]))
story += [pt, PageBreak()]

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 1: MATERNAL HEALTH
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 1: MATERNAL HEALTH  [TIER 1 โ€” HIGHEST YIELD]", C['teal']), Spacer(1,0.2*cm)]
story.append(warn_box("12-15 questions every exam. Know ANC schedule, JSY/JSSK amounts, PNC dates, danger signs, and supplementation by heart."))
story += [Spacer(1,0.2*cm)]

story.append(Paragraph("ANC Schedule & Supplementation", STYLES['subtopic']))
story += [
    tbl([
        ["1st Visit (โ‰ค12 wks)","Registration, Hb, blood group, urine, BP, weight, TT-1"],
        ["2nd Visit (14-26 wks)","Hb, BP, weight, TT-2/Booster, abdominal exam"],
        ["3rd Visit (28-34 wks)","Hb, BP, weight, abdominal exam, fetal position"],
        ["4th Visit (36+ wks)","Birth preparedness, danger signs counselling, referral plan"],
    ], ["Visit","Key Actions"], [4*cm,13*cm]),
    Spacer(1,0.2*cm),
    key_box("IFA (ANC): 100 mg iron + 500 mcg folic acid daily for 180 days | Calcium: 500 mg BD from 2nd trimester | TT: TT1 at 1st contact, TT2 four weeks later"),
    Spacer(1,0.2*cm),
]
story.append(Paragraph("JSY & JSSK Key Figures", STYLES['subtopic']))
story += [
    tbl([
        ["JSY โ€” Mother","LPS rural: Rs.1400 | LPS urban: Rs.1000 | HPS rural: Rs.700 | HPS urban: Rs.600"],
        ["JSY โ€” ASHA","Rs.600 per institutional delivery case"],
        ["JSSK","Free: drugs, diagnostics, diet, transport, blood โ€” ALL pregnant women at Govt hospitals"],
        ["PMSMA","Free ANC on 9th of every month at PHC/CHC/DH"],
        ["Maharashtra (HPS)","Rural delivery: Rs.700 | Urban: Rs.600"],
    ], ["Program","Amount/Details"], [4*cm,13*cm]),
    Spacer(1,0.2*cm),
    key_box("PNC visits: Day 1, Day 3, Day 7, Day 42 | Breastfeeding within 1 hour | Exclusive BF: 6 months"),
    Spacer(1,0.2*cm),
]
story.append(Paragraph("Danger Signs in Pregnancy", STYLES['subtopic']))
story += [b("Severe headache with blurring of vision โ†’ pre-eclampsia/eclampsia", True),
          b("Bleeding per vaginum โ†’ refer immediately (APH)", True),
          b("Absent/reduced fetal movements for >12 hours", True),
          b("High fever, foul-smelling discharge, convulsions", True),
          b("Breathlessness, severe edema of face/hands", True),
          Spacer(1,0.3*cm)]

# Maternal MCQs
story.append(Paragraph("MCQs โ€” Maternal Health", STYLES['subtopic']))
mat_q = [
    (1,True,"Minimum ANC visits recommended in India:",
     ["A) 3","B) 4","C) 6","D) 8"],
     "B) 4 ANC visits","India standard = 4 ANC visits; WHO recommends โ‰ฅ8 contacts."),
    (2,True,"JSY cash incentive for institutional delivery โ€” rural Maharashtra (HPS) mother:",
     ["A) Rs.1400","B) Rs.1000","C) Rs.700","D) Rs.500"],
     "C) Rs.700","Maharashtra = HPS. Rural HPS mother gets Rs.700; ASHA gets Rs.600."),
    (3,True,"PMSMA provides free ANC on which date every month?",
     ["A) 1st","B) 5th","C) 9th","D) 15th"],
     "C) 9th of every month","PMSMA = free, guaranteed ANC on 9th every month at PHC/CHC/DH."),
    (4,True,"IFA during pregnancy contains:",
     ["A) 60 mg iron + 400 mcg FA","B) 100 mg iron + 500 mcg FA","C) 200 mg iron + 1 mg FA","D) 45 mg + 200 mcg FA"],
     "B) 100 mg elemental iron + 500 mcg folic acid for 180 days","ANC IFA = large RED tablet."),
    (5,True,"JSSK provides free services to:",
     ["A) Only BPL women","B) All pregnant women at government facilities","C) Women with >2 children only","D) Only for 1st delivery"],
     "B) ALL pregnant women (no BPL restriction) at government facilities","JSSK is universal โ€” no conditionality."),
    (6,True,"PNC visits are scheduled on:",
     ["A) Day 1, 3, 7, 42","B) Day 1, 3, 7, 28","C) Day 3, 7, 14, 42","D) Day 1, 7, 21, 42"],
     "A) Day 1, Day 3, Day 7, Day 42","4 PNC visits post-delivery under NHM."),
    (7,False,"Calcium supplementation during ANC is:",
     ["A) 500 mg once daily","B) 500 mg twice daily from 2nd trimester","C) 1000 mg once daily","D) 250 mg thrice daily"],
     "B) 500 mg twice daily (1000 mg/day) from 2nd trimester",""),
    (8,True,"Which is a danger sign in pregnancy requiring immediate referral?",
     ["A) Mild nausea in 1st trimester","B) Fetal hiccups","C) Blurring of vision with severe headache","D) Mild ankle edema"],
     "C) Blurring of vision + severe headache โ†’ pre-eclampsia/eclampsia","Refer IMMEDIATELY."),
    (9,False,"Breastfeeding should be initiated within:",
     ["A) 6 hours","B) 12 hours","C) 1 hour","D) 24 hours"],
     "C) Within 1 hour of birth","Early initiation = key NHM indicator; protects against infection, hypothermia."),
    (10,True,"MTP Act 2021 amendment: upper limit for single provider is:",
     ["A) 16 weeks","B) 20 weeks","C) 24 weeks","D) 28 weeks"],
     "B) 20 weeks for single provider","Special categories (rape survivors, fetal anomaly, disability) = up to 24 weeks (2 providers)."),
    (11,False,"PCPNDT Act was enacted to prevent:",
     ["A) Maternal mortality","B) Sex determination and female foeticide","C) Child marriage","D) Malnutrition"],
     "B) Sex-selective abortion (female foeticide)","PCPNDT Act 1994 bans sex determination."),
    (12,False,"Exclusive breastfeeding duration is:",
     ["A) 3 months","B) 4 months","C) 6 months","D) 12 months"],
     "C) 6 months โ€” no water, no other food","After 6 months: complementary feeding + breastfeeding continues up to 2 years."),
]
for q in mat_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 2: CHILD HEALTH & IMMUNIZATION
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 2: CHILD HEALTH & IMMUNIZATION  [TIER 1 โ€” HIGHEST YIELD]", C['teal']), Spacer(1,0.2*cm)]
story.append(warn_box("UIP schedule is asked EVERY exam. Memorize ages, vaccine names, doses, cold chain temperatures."))
story += [Spacer(1,0.2*cm)]

story.append(Paragraph("Universal Immunization Programme (UIP) Schedule", STYLES['subtopic']))
story += [tbl([
    ["At Birth","BCG (ID), OPV-0 (oral), Hep B-0 (IM) โ€” all within 24 hrs"],
    ["6 weeks","OPV-1, Penta-1 (DPT+HepB+Hib), PCV-1, Rota-1, fIPV-1 (ID)"],
    ["10 weeks","OPV-2, Penta-2, Rota-2"],
    ["14 weeks","OPV-3, Penta-3, PCV-2, Rota-3, fIPV-2 (ID)"],
    ["9 months","MR-1, Vit A-1 (1 lakh IU), JE (endemic areas)"],
    ["12 months","PCV-Booster"],
    ["16-24 months","MR-2, DPT Booster-1, OPV Booster, Vit A-2 (2 lakh IU)"],
    ["5-6 years","DPT Booster-2"],
    ["10 years","Td"],
    ["16 years","Td"],
    ["Pregnant women","TT-1 (1st contact), TT-2 (4 wks later) / Booster"],
], ["Age","Vaccines"], [3.5*cm,13.5*cm]), Spacer(1,0.2*cm)]
story += [
    key_box("Cold chain: OPV = frozen (-15 to -25ยฐC at district). All others at PHC = +2ยฐC to +8ยฐC (ILR). BCG viable 4 hrs after reconstitution."),
    Spacer(1,0.2*cm),
]
story.append(Paragraph("SAM / MAM Criteria (Very Frequently Asked)", STYLES['subtopic']))
story += [
    tbl([
        ["SAM","Weight/Height <-3 SD  OR  MUAC <11.5 cm  OR  bilateral pitting edema"],
        ["MAM","Weight/Height -2 to -3 SD  OR  MUAC 11.5โ€“12.5 cm"],
        ["Normal","MUAC >12.5 cm"],
        ["SAM + complications","โ†’ NRC (Nutritional Rehabilitation Centre)"],
        ["SAM without complications","โ†’ CMAM (Community-based) + RUTF"],
    ], ["Category","Criteria"], [3.5*cm,13.5*cm]),
    Spacer(1,0.2*cm),
    key_box("IMNCI General Danger Signs: Cannot drink/breastfeed | Vomits everything | Convulsions | Lethargic/unconscious โ†’ URGENT referral"),
    Spacer(1,0.2*cm),
]

story.append(Paragraph("MCQs โ€” Child Health & Immunization", STYLES['subtopic']))
child_q = [
    (13,True,"BCG vaccine is given at:",
     ["A) 6 weeks","B) At birth","C) 9 months","D) 14 weeks"],
     "B) At birth (within 24 hours)","BCG protects against severe childhood TB (miliary TB, TB meningitis)."),
    (14,True,"Pentavalent (Penta) vaccine protects against how many diseases?",
     ["A) 3","B) 4","C) 5","D) 6"],
     "C) 5 diseases โ€” Diphtheria, Pertussis, Tetanus, Hepatitis B, Hib","DPT + HepB + Haemophilus influenzae type b."),
    (15,True,"OPV is stored at district level at:",
     ["A) +2ยฐC to +8ยฐC","B) 0ยฐC to +2ยฐC","C) -15ยฐC to -25ยฐC","D) Room temperature"],
     "C) -15ยฐC to -25ยฐC (frozen in deep freezer)","OPV is the only UIP vaccine stored frozen at district level."),
    (16,True,"MR-1 (Measles-Rubella) first dose is given at:",
     ["A) 6 weeks","B) 6 months","C) 9 months","D) 12 months"],
     "C) 9 months","MR-1 at 9 months + Vitamin A dose 1. MR-2 at 16-24 months."),
    (17,True,"MUAC <11.5 cm in a child indicates:",
     ["A) Normal nutrition","B) MAM","C) SAM","D) Stunting"],
     "C) SAM (Severe Acute Malnutrition)","MUAC <11.5 cm = SAM; 11.5-12.5 cm = MAM; >12.5 cm = normal."),
    (18,True,"Vitamin A dose at 9 months is:",
     ["A) 50,000 IU","B) 1,00,000 IU","C) 2,00,000 IU","D) 5,00,000 IU"],
     "B) 1,00,000 IU (1 lakh IU)","All doses after 9 months = 2 lakh IU every 6 months till 5 years."),
    (19,True,"Zinc dose for child >6 months with diarrhea:",
     ["A) 5 mg x 7 days","B) 10 mg x 14 days","C) 20 mg x 14 days","D) 30 mg x 10 days"],
     "C) 20 mg/day x 14 days","For <6 months = 10 mg/day x 14 days."),
    (20,True,"RBSK '4D' refers to:",
     ["A) Defects, Diseases, Deficiencies, Developmental delays","B) Diarrhea, Dysentery, Disability, Dehydration","C) Dengue, Diphtheria, Disability, Deaths","D) Diet, Disease, Diagnosis, Discharge"],
     "A) Defects at birth, Diseases, Deficiencies, Developmental delays","RBSK covers 0-18 years."),
    (21,False,"ORS composition includes:",
     ["A) NaCl + KCl + Na Citrate + Glucose","B) NaCl + Sucrose only","C) KCl + Glucose only","D) NaCl only"],
     "A) NaCl 3.5g + KCl 1.5g + Na Citrate 2.9g + Glucose 20g per litre","WHO-ORS composition."),
    (22,True,"Number of vaccines given at birth under UIP:",
     ["A) 1","B) 2","C) 3","D) 4"],
     "C) 3 vaccines โ€” BCG, OPV-0, Hep B-0","All given within 24 hours of birth."),
    (23,False,"IMNCI general danger sign requiring urgent referral:",
     ["A) Mild fever >37.5ยฐC","B) Cannot drink or breastfeed","C) Runny nose","D) Mild cough <3 days"],
     "B) Cannot drink or breastfeed (+ convulsions, lethargy, vomiting everything)","General danger signs = refer URGENTLY."),
    (24,False,"Anemia Mukt Bharat covers how many beneficiary groups?",
     ["A) 3","B) 4","C) 5","D) 6"],
     "D) 6 groups","Children 6-59 mo, 5-9 yrs, adolescents 10-19 yrs, pregnant women, lactating mothers, WRA."),
]
for q in child_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 3: NHM PROGRAMS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 3: NHM PROGRAMS  [TIER 1 โ€” HIGHEST YIELD โ€” 20 MARKS]", C['orange']), Spacer(1,0.2*cm)]
story.append(warn_box("Section 3 = 20 marks. Every program name, year, and key figure is fair game. This is the easiest 20 marks โ€” learn all tables below."))
story += [Spacer(1,0.2*cm)]

story += [tbl([
    ["JSY","2005","Cash for institutional delivery. Maharashtra (HPS): Rs.700 rural, Rs.600 urban. ASHA = Rs.600"],
    ["JSSK","2011","Free delivery (incl. C-section), medicines, diet, transport, blood โ€” ALL women at govt hospitals + sick neonates up to 30 days"],
    ["PMSMA","2016","Free guaranteed ANC on 9th of every month"],
    ["LaQshya","2017","Labour Room Quality Improvement โ€” respectful maternity care"],
    ["HWC (Ayushman Bharat)","2018","Sub-centre upgraded; 12 CPHC service packages; CHO posted"],
    ["PM-JAY","2018","Rs.5 lakh/family/year for secondary & tertiary care; 10.74 cr families"],
    ["POSHAN Abhiyaan (NNM)","2018","National Nutrition Mission; reduce stunting/wasting/anemia in 6 groups"],
    ["Anemia Mukt Bharat","2018","IFA for 6 groups; WIFS for adolescents; daily drops for infants"],
    ["RBSK","2013","4D screening; 0-18 years; Mobile Health Teams; 30 conditions"],
    ["Mission Parivar Vikas","2016","146 high-TFR districts (TFR>3); accelerated family planning"],
    ["NTEP (was RNTCP)","2020","TB elimination by 2025; DOTS; Nikshay Poshan Rs.500/month"],
    ["PCPNDT Act","1994","Ban sex determination, prevent female foeticide"],
    ["MTP Act (amended)","2021","Up to 20 wks single provider; 24 wks special categories"],
    ["NMHP / DMHP","1982/1996","Mental health at community level; KIRAN 1800-599-0019"],
    ["NLEP","1983","Leprosy elimination (<1/10,000); MDT treatment"],
    ["ASHA","2005","1 per 1000 pop; female; 25-45 yrs; 8th pass; village resident"],
    ["PM-BJPY","2008","Generic medicines at affordable cost via Janaushadhi Kendras"],
], ["Program","Year","Key Point"], [4*cm,1.7*cm,11.3*cm]), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” NHM Programs", STYLES['subtopic']))
nhm_q = [
    (25,True,"PM-JAY provides health coverage of:",
     ["A) Rs.1 lakh","B) Rs.2 lakh","C) Rs.5 lakh","D) Rs.10 lakh"],
     "C) Rs.5 lakh per family per year","PM-JAY = Pradhan Mantri Jan Arogya Yojana (Ayushman Bharat)."),
    (26,True,"POSHAN Abhiyaan is also known as:",
     ["A) ICDS","B) National Nutrition Mission (NNM)","C) Mid-Day Meal Scheme","D) SABLA"],
     "B) National Nutrition Mission (NNM)","Launched March 2018 to reduce stunting, wasting, and anemia."),
    (27,True,"LaQshya initiative improves quality of care in:",
     ["A) Nutrition centres","B) Labour Rooms and Maternity OTs","C) TB wards","D) ICUs"],
     "B) Labour Rooms and Maternity Operation Theatres","LaQshya = Labour Room Quality Improvement."),
    (28,True,"Nikshay Poshan Yojana provides how much per month to TB patients?",
     ["A) Rs.200","B) Rs.500","C) Rs.1000","D) Rs.2000"],
     "B) Rs.500 per month (direct bank transfer)","Nutritional support for all TB patients under NTEP."),
    (29,True,"RBSK covers children in the age group:",
     ["A) 0-5 years","B) 0-10 years","C) 0-18 years","D) 6-14 years"],
     "C) 0-18 years","RBSK 4D: Defects at birth, Diseases, Deficiencies, Developmental delays."),
    (30,True,"ASHA is appointed per how many population?",
     ["A) 500","B) 1000","C) 2000","D) 3000"],
     "B) 1 ASHA per 1,000 rural population",""),
    (31,True,"HWC (Health & Wellness Centre) is upgraded from:",
     ["A) PHC","B) CHC","C) Sub-Centre","D) District Hospital"],
     "C) Sub-Centre upgraded under Ayushman Bharat","CHO provides 12 CPHC service packages at HWC."),
    (32,False,"Mission Parivar Vikas targets districts with TFR >3 โ€” how many districts?",
     ["A) 50","B) 100","C) 146","D) 200"],
     "C) 146 districts (in 7 high TFR states)","High-focus family planning intervention."),
    (33,True,"JSSK covers sick neonates up to which age?",
     ["A) 7 days","B) 14 days","C) 30 days","D) 3 months"],
     "C) 30 days (1 month)","Sick newborns up to 30 days get free treatment under JSSK."),
    (34,False,"Emergency ambulance number in Maharashtra:",
     ["A) 102","B) 104","C) 108","D) 112"],
     "C) 108","108 = emergency ambulance; 102 = free maternity ambulance; 104 = health helpline."),
    (35,False,"PCPNDT Act 1994 was enacted to:",
     ["A) Control maternal mortality","B) Prevent sex determination and female foeticide","C) Regulate abortions","D) Control TB"],
     "B) Prevent sex determination and female foeticide",""),
]
for q in nhm_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 4: COMMUNICABLE DISEASES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 4: COMMUNICABLE DISEASES  [TIER 1 โ€” HIGHEST YIELD]", C['navy']), Spacer(1,0.2*cm)]
story.append(warn_box("8-10 questions per exam. Disease-vector-treatment-program linkages are the most tested. Know all vectors."))
story += [Spacer(1,0.2*cm)]

story += [tbl([
    ["TB","M. tuberculosis","Droplet","2HRZE+4HR (6 mo)","NTEP/DOTS; Nikshay Rs.500/mo"],
    ["Malaria","Plasmodium vivax/falciparum","Anopheles (F)","ACT / Chloroquine","NVBDCP; RDK test by ASHA"],
    ["Dengue","Dengue virus (Flavivirus)","Aedes aegypti","Supportive","NS1 Ag test; platelet monitoring"],
    ["HIV","HIV retrovirus","Sexual/blood/MTCT","ART (free)","ICTC; NACO; window = 3-12 wks"],
    ["Leprosy","M. leprae","Prolonged contact","MDT 6-12 mo","NLEP; target <1/10,000 pop"],
    ["Filaria","Wuchereria bancrofti","Culex mosquito","DEC + Albendazole","MDA annually"],
    ["Kala Azar","Leishmania donovani","Phlebotomus (sandfly)","Miltefosine/SSG","Elimination target 2023"],
    ["Typhoid","Salmonella typhi","Feco-oral","Ciprofloxacin","Widal test (Oโ‰ฅ1:160, Hโ‰ฅ1:320)"],
    ["Cholera","Vibrio cholerae","Feco-oral","ORT + Doxy","Rice-water stool; notify immediately"],
    ["Rabies","Rhabdovirus","Animal bite","ARV + HRIG (PEP)","Wound wash 15 min; category III = HRIG"],
    ["JE","Flavivirus","Culex tritaeniorhynchus","Supportive","JE vaccine in endemic areas"],
], ["Disease","Agent","Vector/Route","Treatment","Program/Note"],
   [3*cm,4*cm,3.5*cm,3*cm,3.5*cm]), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” Communicable Diseases", STYLES['subtopic']))
cd_q = [
    (36,True,"Malaria is transmitted by which mosquito?",
     ["A) Aedes aegypti","B) Culex","C) Female Anopheles","D) Sandfly"],
     "C) Female Anopheles mosquito","Anopheles = malaria. Aedes = dengue. Culex = filaria/JE. Sandfly = kala azar."),
    (37,True,"First-line TB treatment regimen (new case):",
     ["A) 2HRZE + 4HR","B) Streptomycin + INH","C) Rifampicin alone","D) Doxycycline + Cipro"],
     "A) 2HRZE (intensive) + 4HR (continuation) = 6 months total","H=Isoniazid, R=Rifampicin, Z=Pyrazinamide, E=Ethambutol."),
    (38,True,"HIV window period is:",
     ["A) 24-48 hours","B) 1-2 weeks","C) 3-12 weeks","D) 6-12 months"],
     "C) 3-12 weeks","ELISA may be negative during window period; use p24 antigen test if suspected early."),
    (39,True,"Dengue is transmitted by:",
     ["A) Anopheles","B) Culex","C) Aedes aegypti","D) Mansonia"],
     "C) Aedes aegypti (day-biting mosquito)","Also transmits Chikungunya, Zika, Yellow Fever."),
    (40,True,"Rice-water stools are characteristic of:",
     ["A) Typhoid","B) Dysentery","C) Cholera","D) Giardiasis"],
     "C) Cholera (Vibrio cholerae)","Profuse watery rice-water stools; severe dehydration; ORT cornerstone."),
    (41,True,"Leprosy elimination target is:",
     ["A) Zero cases","B) <1 per 10,000 population","C) <5 per 10,000","D) <1 per 1000"],
     "B) <1 case per 10,000 population","India achieved national elimination in 2005; sub-national ongoing."),
    (42,True,"Nikshay Poshan Yojana provides to TB patients:",
     ["A) Rs.200/month","B) Rs.500/month","C) Rs.1000/month","D) Free food ration"],
     "B) Rs.500 per month (DBT to bank account)","Nutritional support throughout TB treatment."),
    (43,True,"Filaria causative agent and vector:",
     ["A) Plasmodium / Anopheles","B) Wuchereria bancrofti / Culex","C) Leishmania / Sandfly","D) Trypanosoma / Tsetse fly"],
     "B) Wuchereria bancrofti / Culex quinquefasciatus","MDA: DEC + Albendazole annually."),
    (44,True,"Kala Azar causative agent:",
     ["A) W. bancrofti","B) P. vivax","C) Leishmania donovani","D) Trypanosoma brucei"],
     "C) Leishmania donovani (transmitted by Phlebotomus sandfly)","Visceral leishmaniasis."),
    (45,False,"Widal test is used to diagnose:",
     ["A) Malaria","B) Typhoid","C) Dengue","D) HIV"],
     "B) Typhoid (Salmonella typhi)","Significant titre: O antigen โ‰ฅ1:160, H antigen โ‰ฅ1:320."),
    (46,False,"Post-exposure prophylaxis (PEP) for rabies:",
     ["A) Antibiotics only","B) ARV + HRIG","C) Steroids","D) Antivenom"],
     "B) ARV (Anti-Rabies Vaccine) + HRIG (Human Rabies Immunoglobulin) for category III","Wound wash with soap/water for 15 minutes first."),
    (47,False,"DOTS is implemented under which program?",
     ["A) NVBDCP","B) NTEP","C) NLEP","D) NPCB"],
     "B) NTEP (National Tuberculosis Elimination Programme)","Formerly RNTCP; renamed NTEP in 2020; target: eliminate TB by 2025."),
]
for q in cd_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 5: NON-COMMUNICABLE DISEASES + CANCER SCREENING
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 5: NON-COMMUNICABLE DISEASES & CANCER SCREENING  [TIER 2]", C['crimson']), Spacer(1,0.2*cm)]
story.append(warn_box("NPCDCS screening criteria, diagnostic cut-offs for DM & HTN, cancer screening tools (VIA, CBE, PAP) are very frequently asked."))
story += [Spacer(1,0.2*cm)]

story += [tbl([
    ["Diabetes Mellitus","FBS โ‰ฅ126 mg/dL  OR  PPBS โ‰ฅ200 mg/dL  OR  HbA1c โ‰ฅ6.5%  OR  Random BG โ‰ฅ200 + symptoms","Metformin (first line)"],
    ["Hypertension","BP โ‰ฅ140/90 mmHg on 2 occasions","Amlodipine / Lisinopril (first line)"],
    ["Cervical Cancer","VIA (acetic acid 3-5%) โ€” acetowhite positive; HPV DNA test; PAP smear","HPV vaccine (2 doses 9-14 yrs; 3 doses โ‰ฅ15 yrs)"],
    ["Breast Cancer","Clinical Breast Examination (CBE) for women โ‰ฅ30 yrs; mammography โ‰ฅ40 yrs","Surgery / chemo / radiation"],
    ["Oral Cancer","Visual examination of oral cavity for ulcers, leukoplakia, erythroplakia at HWC","Biopsy if suspicious"],
    ["COPD","Smoking is #1 risk factor; spirometry (FEV1/FVC <0.7 = obstruction)","Salbutamol inhaler; smoking cessation"],
], ["NCD","Screening/Diagnosis","Treatment/Prevention"], [3*cm,9*cm,5*cm]), Spacer(1,0.2*cm)]
story += [key_box("NPCDCS: Screening at HWC for ALL persons โ‰ฅ30 years for Diabetes, Hypertension, and 3 cancers (oral, breast, cervical)."), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” NCD & Cancer Screening", STYLES['subtopic']))
ncd_q = [
    (48,True,"HbA1c โ‰ฅ ___ % is diagnostic of Diabetes Mellitus:",
     ["A) 5.5%","B) 6.0%","C) 6.5%","D) 7.0%"],
     "C) HbA1c โ‰ฅ 6.5%","5.7-6.4% = prediabetes; โ‰ฅ6.5% = diabetes."),
    (49,True,"Hypertension is diagnosed when BP is:",
     ["A) โ‰ฅ120/80","B) โ‰ฅ130/85","C) โ‰ฅ140/90","D) โ‰ฅ150/95"],
     "C) โ‰ฅ140/90 mmHg (on 2 separate occasions)","JNC-8 and Indian guidelines."),
    (50,True,"HPV vaccine prevents which cancer?",
     ["A) Breast cancer","B) Ovarian cancer","C) Cervical cancer","D) Endometrial cancer"],
     "C) Cervical cancer","HPV serotypes 16 and 18 cause 70% of cervical cancers."),
    (51,True,"VIA stands for:",
     ["A) Vaginal Inspection by Acid","B) Visual Inspection with Acetic Acid","C) Vaginal Immunological Assessment","D) Visual Immunization Assessment"],
     "B) Visual Inspection with Acetic Acid","Acetowhite area = VIA positive โ†’ colposcopy/LEEP."),
    (52,True,"CBE (Clinical Breast Examination) is done for women aged:",
     ["A) 20+","B) 25+","C) 30+","D) 40+"],
     "C) 30 years and above","Under NPCDCS; performed by trained CHO/ANM."),
    (53,True,"NPCDCS screening at HWC is for persons aged:",
     ["A) 18+","B) 25+","C) 30+","D) 40+"],
     "C) 30 years and above","Screen for 2 NCDs (DM, HTN) + 3 cancers (oral, breast, cervical)."),
    (54,False,"First-line drug for Type 2 Diabetes Mellitus:",
     ["A) Insulin","B) Metformin","C) Glibenclamide","D) Sitagliptin"],
     "B) Metformin","Reduces hepatic glucose output; contraindicated in renal failure (eGFR <30)."),
    (55,False,"PAP smear is used to screen for:",
     ["A) Breast cancer","B) Cervical cancer","C) Ovarian cancer","D) Oral cancer"],
     "B) Cervical cancer","Exfoliative cytology; Bethesda classification; abnormal โ†’ colposcopy."),
]
for q in ncd_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 6: NUTRITION
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 6: NUTRITION  [TIER 2]", C['purple']), Spacer(1,0.2*cm)]
story += [tbl([
    ["Vitamin A deficiency","Night blindness โ†’ Bitot spots โ†’ Keratomalacia โ†’ Blindness","2 lakh IU Vit A (child); 2 lakh IU post-partum (mother)"],
    ["Vitamin D deficiency","Rickets (children), Osteomalacia (adults); bowing of legs","Sunlight + Vit D + Calcium supplements"],
    ["Iodine deficiency","Goitre, Cretinism (congenital hypothyroidism)","Iodized salt โ‰ฅ15 ppm (consumer level)"],
    ["Iron deficiency","Anemia; Hb <11 g/dL (pregnancy); most common nutritional deficiency","IFA tablets; dietary diversity"],
    ["Niacin (B3) deficiency","Pellagra โ€” 3 Ds: Dermatitis, Diarrhea, Dementia","Nicotinamide / Niacin supplementation"],
    ["Thiamine (B1) deficiency","Beriberi โ€” Wet (cardiac failure), Dry (peripheral neuropathy)","Thiamine IV/IM/oral"],
    ["Vitamin C deficiency","Scurvy โ€” bleeding gums, perifollicular hemorrhage, corkscrew hair","Ascorbic acid supplementation"],
    ["Protein deficiency (PEM)","Kwashiorkor โ€” edema, moon face, pot belly | Marasmus โ€” severe wasting (total calories)","RUTF; therapeutic feeding; CMAM/NRC"],
], ["Deficiency","Features","Treatment"], [4*cm,8*cm,5*cm]), Spacer(1,0.2*cm)]
story += [key_box("WIFS: 60 mg iron + 500 mcg FA (blue tablet) once weekly for adolescents 10-19 yrs. Infant drops: 1 mg/kg/day elemental iron for 6-59 months."), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” Nutrition", STYLES['subtopic']))
nut_q = [
    (56,True,"Bitot's spots are seen in deficiency of:",
     ["A) Vitamin D","B) Vitamin A","C) Vitamin C","D) Iron"],
     "B) Vitamin A deficiency","Bitot spots = foamy triangular patches on bulbar conjunctiva."),
    (57,True,"Pellagra is caused by deficiency of:",
     ["A) Thiamine (B1)","B) Riboflavin (B2)","C) Niacin (B3)","D) Pyridoxine (B6)"],
     "C) Niacin (Vitamin B3)","Pellagra 3Ds: Dermatitis (photosensitive) + Diarrhea + Dementia (4th D = Death)."),
    (58,True,"Kwashiorkor is characterized by:",
     ["A) Severe wasting, no edema","B) Protein deficiency with edema, moon face","C) Vitamin deficiency only","D) Fat deficiency"],
     "B) Protein deficiency โ€” edema, moon face, pot belly, skin lesions","Marasmus = total calorie deficiency โ†’ severe wasting."),
    (59,True,"Iodized salt at consumer level should contain at least:",
     ["A) 5 ppm","B) 15 ppm","C) 30 ppm","D) 45 ppm"],
     "B) โ‰ฅ15 ppm at consumer level (โ‰ฅ30 ppm at production level)",""),
    (60,True,"MUAC 11.5โ€“12.5 cm in a child indicates:",
     ["A) Normal","B) MAM (Moderate Acute Malnutrition)","C) SAM","D) Stunting"],
     "B) MAM โ€” MUAC 11.5-12.5 cm","SAM = <11.5 cm; Normal = >12.5 cm."),
    (61,False,"Hemoglobin <___ g/dL indicates anemia in pregnant women (WHO):",
     ["A) 10","B) 11","C) 12","D) 13"],
     "B) Hb <11 g/dL = anemia in pregnancy","Severe anemia = <7 g/dL; very severe = <4 g/dL."),
    (62,False,"RUTF stands for:",
     ["A) Routine Urine Test Finding","B) Ready-to-Use Therapeutic Food","C) Rapid Universal Therapeutic Formula","D) None"],
     "B) Ready-to-Use Therapeutic Food","Peanut-based paste for SAM community management (CMAM)."),
    (63,False,"Scurvy is caused by deficiency of:",
     ["A) Vitamin A","B) Vitamin B12","C) Vitamin C","D) Vitamin D"],
     "C) Vitamin C (Ascorbic Acid)","Bleeding gums, perifollicular hemorrhage, poor wound healing."),
]
for q in nut_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 7: FAMILY PLANNING
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 7: FAMILY PLANNING  [TIER 2]", C['teal']), Spacer(1,0.2*cm)]
story += [tbl([
    ["Condom (male)","85-98%","Dual protection (STI + pregnancy)"],
    ["OCP (Combined)","99%","Mala-D / Mala-N; estrogen + progesterone; daily pill"],
    ["Emergency Contraception","85%","Levonorgestrel 1.5 mg ('i-pill') within 72 hours"],
    ["IUCD 375 (Copper-T)","99%","Effective 10-12 years; inserted at PHC/CHC"],
    ["PPIUCD","99%","Within 48 hours or at 6 weeks postpartum"],
    ["Antara (DMPA)","99%","150 mg IM every 3 months; progestin-only; no estrogen"],
    ["Chhaya (Centchroman)","99%","Non-steroidal SERM; weekly 3 months โ†’ fortnightly"],
    ["Female sterilization (Tubectomy)","99.5%","Modified Pomeroy; MINILAP/laparoscopic"],
    ["Male sterilization (NSV)","99.9%","No-Scalpel Vasectomy; simpler and safer"],
], ["Method","Efficacy","Key Notes"], [4.5*cm,2.5*cm,10*cm]), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” Family Planning", STYLES['subtopic']))
fp_q = [
    (64,True,"Emergency contraceptive pill should be taken within:",
     ["A) 24 hours","B) 48 hours","C) 72 hours","D) 120 hours"],
     "C) Within 72 hours (most effective)","Levonorgestrel 1.5 mg single dose. 85% effective up to 72 hrs."),
    (65,True,"Antara injectable contraceptive is given:",
     ["A) Monthly","B) Every 3 months","C) Every 6 months","D) Annually"],
     "B) Every 3 months (quarterly IM injection)","DMPA 150 mg; progestin-only; safe for lactating women."),
    (66,True,"NSV (No-Scalpel Vasectomy) is:",
     ["A) Female sterilization","B) Male sterilization","C) Intrauterine contraception","D) Hormonal contraception"],
     "B) Male sterilization","NSV has fewer complications, faster recovery than conventional vasectomy."),
    (67,True,"PPIUCD is inserted within:",
     ["A) 24 hours only","B) 48 hours or at 6 weeks","C) 3 months","D) Only at 6 weeks"],
     "B) Within 48 hours OR at the 6-week PNC visit","Copper-T 380A; highly effective; no hormones."),
    (68,False,"Chhaya (Centchroman) schedule:",
     ["A) Daily","B) Weekly for 3 months, then fortnightly","C) Monthly","D) Every 3 months"],
     "B) Once weekly for 3 months, then once every 2 weeks","Non-steroidal oral contraceptive; minimal side effects."),
    (69,False,"Which contraceptive provides dual protection (STI + pregnancy)?",
     ["A) OCP","B) IUCD","C) Condom","D) Tubectomy"],
     "C) Male/Female Condom","Only condoms protect against both pregnancy AND sexually transmitted infections."),
]
for q in fp_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 8: BASIC PUBLIC HEALTH
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 8: BASIC PUBLIC HEALTH  [TIER 2]", C['navy']), Spacer(1,0.2*cm)]
story += [tbl([
    ["IMR","Deaths <1 yr per 1,000 live births","India: 28 (SRS 2020); SDG target: <20"],
    ["MMR","Maternal deaths per 1,00,000 live births","India: 97 (SRS 2018-20); SDG target: <70"],
    ["NMR","Deaths <28 days per 1,000 live births","India: 20 (SRS 2020)"],
    ["U5MR","Deaths <5 yrs per 1,000 live births","India: 32 (SRS 2020)"],
    ["TFR","Avg children per woman","India: 2.0 (NFHS-5); Replacement level: 2.1"],
    ["Life Expectancy","Average years at birth","India: ~69.7 yrs (2019-23)"],
    ["Sex Ratio at Birth","Females per 1000 males","India: 929 (NFHS-5); Normal: 943-952"],
    ["Institutional Delivery","% deliveries in institutions","India: 88.6% (NFHS-5)"],
    ["Full Immunization","% children fully immunized","India: 76.4% (NFHS-5)"],
], ["Indicator","Definition","India Value"], [4*cm,7*cm,6*cm]), Spacer(1,0.2*cm)]
story += [tbl([
    ["Sub-Centre","1 ANM + 1 MPW","3,000 (plains) / 1,000 (hilly)","โ€”"],
    ["PHC","1 MO + staff","30,000 (plains) / 20,000 (hilly)","4-6 beds"],
    ["CHC","4 specialists","1,20,000","30 beds"],
    ["Sub-District Hospital","Specialist care","31-100 beds","โ€”"],
    ["District Hospital","Apex referral","100+ beds","โ€”"],
], ["Facility","Key Staff","Population","Beds"], [4*cm,4*cm,5.5*cm,3.5*cm]), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” Basic Public Health", STYLES['subtopic']))
bph_q = [
    (70,True,"IMR is deaths per 1,000:",
     ["A) Total population","B) Live births","C) Under-5 population","D) Women of reproductive age"],
     "B) Live births","IMR = infant deaths (under 1 year) per 1,000 live births."),
    (71,True,"Population covered by one PHC (plains):",
     ["A) 3,000","B) 10,000","C) 30,000","D) 1,20,000"],
     "C) 30,000 population (plains); 20,000 (hilly/tribal)",""),
    (72,True,"CHC has how many beds?",
     ["A) 6","B) 10","C) 30","D) 100"],
     "C) 30 beds","CHC = 4 specialists (surgeon, physician, OBG, pediatrician) + 30 beds."),
    (73,True,"TFR of India as per NFHS-5:",
     ["A) 1.8","B) 2.0","C) 2.3","D) 2.7"],
     "B) 2.0 children per woman","Replacement level fertility = 2.1. India is near-replacement."),
    (74,True,"MMR of India (SRS 2018-20):",
     ["A) 67","B) 97","C) 113","D) 130"],
     "B) 97 per 1,00,000 live births","SDG 3 target = MMR <70 by 2030."),
    (75,True,"Secondary prevention involves:",
     ["A) Vaccination","B) Screening and early detection","C) Rehabilitation","D) Health promotion"],
     "B) Screening and early detection of disease","Primary = prevent occurrence; Secondary = early detect; Tertiary = rehabilitate."),
    (76,False,"Primordial prevention aims to:",
     ["A) Treat existing disease","B) Prevent risk factors from emerging in population","C) Rehabilitate patients","D) Early detection"],
     "B) Prevent emergence of risk factors at population level","Most upstream level of prevention."),
    (77,False,"Winslow's definition of Public Health was given in:",
     ["A) 1910","B) 1920","C) 1948","D) 1978"],
     "B) 1920","'Science and art of preventing disease, prolonging life and promoting health through organized community efforts.'"),
    (78,False,"Alma-Ata Declaration on PHC was signed in:",
     ["A) 1948","B) 1965","C) 1978","D) 2000"],
     "C) 1978 (Alma-Ata, Kazakhstan, USSR)","'Health for All by 2000'; PHC as cornerstone of health systems."),
]
for q in bph_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 9: ADOLESCENT HEALTH + MENTAL HEALTH
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 9: ADOLESCENT HEALTH & MENTAL HEALTH  [TIER 3]", C['purple']), Spacer(1,0.2*cm)]

story.append(Paragraph("Adolescent Health (RKSK)", STYLES['subtopic']))
story += [
    b("Adolescence: 10-19 years (WHO)", True),
    b("RKSK: 6 key areas โ€” Nutrition, SRH, NCD, Mental health, Substance misuse, Injuries/violence", True),
    b("WIFS: Weekly IFA (60 mg iron + 500 mcg FA โ€” blue tablet) for all adolescents 10-19 yrs"),
    b("AHD (Adolescent Health Day): Monthly at HWC/sub-centre"),
    b("ARSH clinics at CHC/DH: Adolescent Reproductive and Sexual Health services"),
    b("MHS (Menstrual Hygiene Scheme): Sanitary napkins at Rs.6/pack (8 pads) for rural adolescent girls"),
    Spacer(1,0.2*cm),
]
story.append(Paragraph("Mental Health", STYLES['subtopic']))
story += [
    tbl([
        ["Depression","PHQ-9 (โ‰ฅ10 = moderate-severe)","Fluoxetine/SSRI + counselling"],
        ["Anxiety (GAD)","GAD-7 tool","SSRI + CBT"],
        ["Schizophrenia","Clinical; PANSS scale","Haloperidol / Risperidone (antipsychotics)"],
        ["Bipolar Disorder","Mania + depression episodes","Lithium (mood stabilizer)"],
        ["Dementia/Alzheimer's","MMSE (<24 = impaired)","Donepezil; supportive care"],
        ["Alcohol Use Disorder","AUDIT screening tool","Disulfiram / Naltrexone; counselling"],
    ], ["Disorder","Screening Tool","Treatment"], [4*cm,5*cm,8*cm]),
    Spacer(1,0.2*cm),
    key_box("KIRAN Helpline: 1800-599-0019 (free, 24x7, multilingual, mental health). NMHP launched 1982. DMHP at district level (1996). MHCA 2017 = Right to mental healthcare."),
    Spacer(1,0.2*cm),
]

story.append(Paragraph("MCQs โ€” Adolescent Health & Mental Health", STYLES['subtopic']))
adol_q = [
    (79,True,"WIFS provides IFA once weekly to adolescents aged:",
     ["A) 5-10 years","B) 10-19 years","C) 15-24 years","D) 20-30 years"],
     "B) 10-19 years (both boys and girls in schools)","Large blue tablet: 60 mg iron + 500 mcg folic acid."),
    (80,False,"Adolescence is defined as age:",
     ["A) 8-18 years","B) 10-19 years","C) 12-21 years","D) 10-24 years"],
     "B) 10-19 years (WHO definition)","RKSK program targets this group."),
    (81,True,"PHQ-9 is a screening tool for:",
     ["A) Anxiety","B) Depression","C) Schizophrenia","D) Dementia"],
     "B) Depression","PHQ-9: 9 questions; score โ‰ฅ10 = moderate-severe depression."),
    (82,True,"KIRAN mental health helpline number:",
     ["A) 1800-500-0019","B) 1800-599-0019","C) 14416","D) 104"],
     "B) 1800-599-0019","Free, 24x7, toll-free; Ministry of Social Justice & Empowerment."),
    (83,True,"Mood stabilizer first-line for Bipolar Disorder:",
     ["A) Haloperidol","B) Diazepam","C) Lithium","D) Fluoxetine"],
     "C) Lithium","Gold-standard mood stabilizer for Bipolar Disorder."),
    (84,False,"MMSE is used to assess:",
     ["A) Depression","B) Cognitive function/dementia","C) Anxiety","D) Malnutrition"],
     "B) Cognitive function โ€” screening for dementia","MMSE max score = 30; score <24 = cognitive impairment."),
]
for q in adol_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 10: EMERGENCY SERVICES & REFERRAL LINKAGE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 10: EMERGENCY SERVICES, REFERRAL & ELDERLY CARE  [TIER 3]", C['navy']), Spacer(1,0.2*cm)]

story.append(Paragraph("BLS (Basic Life Support) โ€” Adult", STYLES['subtopic']))
story += [tbl([
    ["Step 1","Check scene safety โ€” ensure no danger to rescuer"],
    ["Step 2","Check responsiveness โ€” tap shoulders, shout 'Are you okay?'"],
    ["Step 3","Call for help โ€” activate 108 / emergency response"],
    ["Step 4","Check breathing โ€” look, listen, feel โ‰ค10 seconds"],
    ["Step 5","30 chest compressions โ€” 100-120/min, depth 5-6 cm, heel of hand, center of chest"],
    ["Step 6","2 rescue breaths (tilt head-lift chin) โ€” 30:2 ratio"],
    ["Step 7","Attach AED as soon as available; follow voice prompts"],
], ["Step","Action"], [2.5*cm,14.5*cm]), Spacer(1,0.2*cm)]

story.append(Paragraph("Vital Signs โ€” Normal Values", STYLES['subtopic']))
story += [tbl([
    ["Blood Pressure","120/80 mmHg optimal; โ‰ฅ140/90 = HTN; <90/60 = hypotension"],
    ["Heart Rate","60-100 beats/min; brady <60; tachy >100"],
    ["Respiratory Rate","12-20/min adult; tachy >20; newborn 30-60/min"],
    ["Temperature","36.5ยฐC-37.5ยฐC; fever >38ยฐC; hyperpyrexia >41ยฐC"],
    ["SpO2","95-100% normal; <90% = hypoxia โ†’ O2 therapy needed"],
    ["FBS","70-100 mg/dL normal; <70 = hypoglycemia; โ‰ฅ126 = diabetes"],
    ["MUAC (adult female)","<19 cm = severe malnutrition; <22.5 cm = at risk"],
], ["Parameter","Normal / Action Values"], [5*cm,12*cm]), Spacer(1,0.2*cm)]

story += [key_box("Emergency numbers: 108 (ambulance) | 102 (maternity ambulance) | 104 (health helpline) | 112 (unified emergency) | 1800-599-0019 (KIRAN mental health)"), Spacer(1,0.2*cm)]

story.append(Paragraph("MCQs โ€” Emergency, Referral & Elderly Care", STYLES['subtopic']))
emg_q = [
    (85,True,"BLS compression:breath ratio for adults:",
     ["A) 15:2","B) 30:2","C) 5:1","D) 20:2"],
     "B) 30 compressions : 2 breaths","Rate 100-120/min; depth 5-6 cm; allow full recoil."),
    (86,True,"Normal SpO2 is:",
     ["A) 80-85%","B) 85-90%","C) 90-94%","D) 95-100%"],
     "D) 95-100%","SpO2 <90% = hypoxia; initiate supplemental oxygen immediately."),
    (87,True,"Maternity (Janani) ambulance number in Maharashtra:",
     ["A) 108","B) 102","C) 104","D) 112"],
     "B) 102","102 = free maternity ambulance for pregnant women. 108 = general emergency."),
    (88,False,"Normal adult heart rate:",
     ["A) 40-60/min","B) 60-100/min","C) 80-120/min","D) 100-140/min"],
     "B) 60-100 beats per minute","Bradycardia <60; Tachycardia >100."),
    (89,False,"Fever is defined as oral temperature above:",
     ["A) 37.0ยฐC","B) 37.5ยฐC","C) 38.0ยฐC","D) 39.0ยฐC"],
     "C) 38ยฐC (100.4ยฐF)","Hyperpyrexia = >41ยฐC; Hypothermia = <35ยฐC."),
    (90,False,"WHO analgesic ladder โ€” first step includes:",
     ["A) Morphine","B) Codeine","C) Paracetamol/NSAIDs","D) Tramadol"],
     "C) Paracetamol and/or NSAIDs","Step 1 = non-opioid; Step 2 = weak opioid; Step 3 = strong opioid (morphine)."),
    (91,False,"HWC provides how many comprehensive primary health care service packages?",
     ["A) 6","B) 8","C) 10","D) 12"],
     "D) 12 service packages","CHO at HWC delivers 12 CPHC services including pregnancy, child, adolescent, NCD, mental health care, etc."),
]
for q in emg_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# TOPIC 11: ORAL & ENT + HUMAN BODY BASICS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("TOPIC 11: ORAL, ENT HEALTH & BASICS OF HUMAN BODY  [TIER 3]", C['teal']), Spacer(1,0.2*cm)]
story += [
    b("DMFT Index: Decayed + Missing + Filled Teeth โ€” measures dental caries burden", True),
    b("Dental caries: Mutans streptococcus; prevention = fluoride toothpaste, pit fissure sealants"),
    b("Fluorosis: Excess fluoride >1.5 ppm in water โ†’ mottling of enamel (dental) / skeletal"),
    b("Oral cancer: Visual examination at HWC โ€” leukoplakia, erythroplakia, non-healing ulcer"),
    b("ASOM: Acute Suppurative Otitis Media โ†’ ear pain, fever, discharge; Amoxicillin"),
    b("OAE test: Otoacoustic Emissions โ€” newborn hearing screening test"),
    b("RBSK screens children 0-18 years for hearing defects, vision defects, heart defects"),
    Spacer(1,0.2*cm),
]

story.append(Paragraph("MCQs โ€” Oral, ENT & Human Body", STYLES['subtopic']))
oral_q = [
    (92,True,"DMFT Index measures:",
     ["A) Mental health","B) Dental caries burden","C) Malnutrition","D) Disability"],
     "B) Dental caries โ€” Decayed, Missing, Filled Teeth","WHO standard oral health indicator."),
    (93,False,"Fluorosis is caused by excess fluoride >___ ppm in drinking water:",
     ["A) 0.5 ppm","B) 1 ppm","C) 1.5 ppm","D) 3 ppm"],
     "C) >1.5 ppm causes dental fluorosis","Skeletal fluorosis at >3 ppm; optimal fluoride = 0.5-0.8 ppm."),
    (94,False,"Newborn hearing screening test:",
     ["A) Audiometry","B) OAE (Otoacoustic Emissions)","C) MMSE","D) Tympanometry"],
     "B) OAE (Otoacoustic Emissions) test","Quick, non-invasive; done before hospital discharge or at first visit."),
    (95,False,"Normal human body temperature (oral):",
     ["A) 35ยฐC","B) 36.5-37.5ยฐC","C) 38ยฐC","D) 39ยฐC"],
     "B) 36.5ยฐC to 37.5ยฐC","Fever >38ยฐC; Hypothermia <35ยฐC; Hyperpyrexia >41ยฐC."),
]
for q in oral_q:
    for e in mcq(*q): story.append(e)
story.append(PageBreak())

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
# FINAL RAPID REVISION
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
story += [hdr("RAPID REVISION โ€” MUST-KNOW TABLES", C['orange']), Spacer(1,0.3*cm)]

story.append(Paragraph("All Emergency & Health Helplines", STYLES['subtopic']))
story += [tbl([
    ["108","Emergency Ambulance (Medical, Fire, Police)"],
    ["102","Janani Express โ€” Free Maternity Ambulance"],
    ["104","Mobile Health Services / Health Helpline"],
    ["112","Unified Emergency Response"],
    ["1800-599-0019","KIRAN Mental Health Helpline (free, 24x7)"],
    ["1800-11-1565","Tobacco Quit Line (NTCP)"],
    ["14566","Consumer helpline"],
], ["Number","Service"], [5*cm,12*cm]), Spacer(1,0.2*cm)]

story.append(Paragraph("One-Line Facts โ€” Most Asked in CHO Exam", STYLES['subtopic']))
facts = [
    ("JSY rural Maharashtra (HPS) โ€” mother","Rs.700 | ASHA Rs.600"),
    ("PMSMA date","9th of every month"),
    ("IFA (ANC)","100 mg iron + 500 mcg FA x 180 days"),
    ("IFA (WIFS adolescents)","60 mg iron + 500 mcg FA x weekly (blue tablet)"),
    ("Calcium (ANC)","500 mg BD from 2nd trimester"),
    ("BCG โ€” given at","Birth (within 24 hours) โ€” intradermal"),
    ("OPV storage (district)","โˆ’15ยฐC to โˆ’25ยฐC (frozen)"),
    ("Vaccine storage at PHC","+2ยฐC to +8ยฐC (ILR)"),
    ("MR-1 vaccine age","9 months"),
    ("Vitamin A dose 1","1 lakh IU at 9 months"),
    ("Vitamin A dose 2 onwards","2 lakh IU every 6 months till 5 years"),
    ("MUAC SAM","<11.5 cm"),
    ("MUAC MAM","11.5โ€“12.5 cm"),
    ("Anemia in pregnancy (WHO)","Hb <11 g/dL"),
    ("TB treatment (new case)","2HRZE + 4HR = 6 months"),
    ("Nikshay Poshan Yojana","Rs.500/month to TB patient"),
    ("Leprosy elimination target","<1 per 10,000 population"),
    ("HIV window period","3โ€“12 weeks"),
    ("Cholera โ€” stool appearance","Rice-water stool"),
    ("Dengue vector","Aedes aegypti"),
    ("Malaria vector","Female Anopheles"),
    ("Filaria vector","Culex mosquito"),
    ("Kala Azar vector","Phlebotomus sandfly"),
    ("JE vector","Culex tritaeniorhynchus"),
    ("Diabetes Mellitus (FBS)","โ‰ฅ126 mg/dL"),
    ("Hypertension diagnosis","โ‰ฅ140/90 mmHg"),
    ("HbA1c for DM","โ‰ฅ6.5%"),
    ("MMR India (SRS 2018-20)","97 per 1,00,000 live births"),
    ("IMR India (SRS 2020)","28 per 1,000 live births"),
    ("TFR India (NFHS-5)","2.0; replacement level = 2.1"),
    ("CHC beds","30 beds + 4 specialists"),
    ("PHC population (plains)","30,000"),
    ("Sub-Centre population (plains)","3,000"),
    ("ASHA โ€” 1 per","1,000 rural population"),
    ("PM-JAY coverage","Rs.5 lakh/family/year"),
    ("RBSK age group","0โ€“18 years (4D screening)"),
    ("Pellagra deficiency","Niacin (B3) โ€” 3Ds"),
    ("Beriberi deficiency","Thiamine (B1)"),
    ("Scurvy deficiency","Vitamin C"),
    ("Bitot spots deficiency","Vitamin A"),
    ("Rickets deficiency","Vitamin D"),
    ("BLS compression rate","100-120/min; depth 5-6 cm; 30:2 ratio"),
    ("Normal SpO2","95-100%; O2 if <90%"),
]
fd = [[Paragraph(k, STYLES['tcell']), Paragraph(v, ParagraphStyle('fv',fontName='Helvetica-Bold',fontSize=9,textColor=C['blue'],leading=12))]
      for k,v in facts]
ft2 = Table(fd, colWidths=[9*cm,8*cm])
ft2.setStyle(TableStyle([
    ('ROWBACKGROUNDS',(0,0),(-1,-1),[white, C['grey']]),
    ('BOX',(0,0),(-1,-1),0.8,C['navy']),
    ('INNERGRID',(0,0),(-1,-1),0.3,HexColor("#BBDEFB")),
    ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4),
    ('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),
]))
story += [ft2, Spacer(1,0.5*cm)]

# CLOSING
closing = Table([[Paragraph("ALL THE BEST FOR YOUR MAHARASHTRA CHO EXAM!", STYLES['cover_sub']),]],colWidths=[W])
closing.setStyle(TableStyle([
    ('BACKGROUND',(0,0),(-1,-1),C['navy']),
    ('ROUNDEDCORNERS',[10]),
    ('TOPPADDING',(0,0),(-1,-1),14),('BOTTOMPADDING',(0,0),(-1,-1),14),
    ('LEFTPADDING',(0,0),(-1,-1),20),('RIGHTPADDING',(0,0),(-1,-1),20),
]))
story.append(closing)

# โ”€โ”€ BUILD โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm,
    title="Maharashtra CHO โ€” High Yield Topics + MCQs",
    author="NHM Maharashtra CHO Preparation",
    subject="High Yield Topics with MCQs")
doc.build(story)
print(f"PDF: {OUTPUT}")
print(f"Size: {os.path.getsize(OUTPUT)/1024:.1f} KB")
Running Command

cd /home/daytona/workspace/mh-cho-public-health && python generate_highyield.py

Your High Yield Topics + MCQ PDF is ready!

MH CHO HighYield Topics MCQ

PDF Document ยท PDF


What's inside this PDF:

High Yield Priority Chart โ€” Tier 1 / Tier 2 / Tier 3 topic classification
11 High Yield Topics with Notes + MCQs:
#TopicTierMCQs
1Maternal Health (ANC, JSY, JSSK, PNC)โ˜…โ˜…โ˜… Tier 112
2Child Health & Immunization (UIP, IMNCI, SAM)โ˜…โ˜…โ˜… Tier 112
3NHM Programs (all 17 programs with year + key fact)โ˜…โ˜…โ˜… Tier 111
4Communicable Diseases (TB, Malaria, HIV, Dengue...)โ˜…โ˜…โ˜… Tier 112
5NCD + Cancer Screening (DM, HTN, VIA, CBE)โ˜…โ˜… Tier 28
6Nutrition (deficiency diseases, SAM, WIFS)โ˜…โ˜… Tier 28
7Family Planning (all methods, doses, schedules)โ˜…โ˜… Tier 26
8Basic Public Health (PHC hierarchy, indicators)โ˜…โ˜… Tier 29
9Adolescent Health + Mental Health (RKSK, KIRAN)โ˜… Tier 36
10Emergency Services + Referral + Elderly Careโ˜… Tier 37
11Oral, ENT & Human Body Basicsโ˜… Tier 34
Rapid Revision Section:
  • All emergency helpline numbers
  • 45-point one-liner facts table (every key figure you must know)
โ˜… starred questions = highest probability in exam. Total: 95 MCQs with answers and explanations.
This is a shared conversation. Sign in to Orris to start your own chat.