hii as you know my gpsc interview coming up

Hey! Good luck with your upcoming GPSC interview - that's exciting!
Since I don't have context from previous conversations, could you tell me a bit more about what you need help with?
Asking for Preferences

What would you like help with for your GPSC interview? ยท Which GPSC exam is this for?

Got it! GPSC Class 3 interview with a focus on Current Affairs and GK. Let me search for the most relevant and recent topics you should be prepared on.
Searching sources...
Searching the Web

GPSC Class 3 interview current affairs important topics 2026 Gujarat

Searching the Web

Gujarat current affairs important events 2026 GPSC interview preparation

Here's a solid Current Affairs + GK preparation guide for your GPSC Class 3 Interview (2026):

๐ŸŽฏ GPSC Class 3 Interview - Current Affairs & GK Preparation

๐Ÿ“Œ GUJARAT-SPECIFIC TOPICS (High Priority)

TopicKey Points
Semiconductor / CG Semi Plant, SanandPM Modi inaugurated CG Semi's OSAT (Semiconductor Assembly & Test) plant in Sanand - a major milestone for India's semiconductor sector
Agriculture Leadership Award 2026Gujarat won the Agriculture Leadership Award-2026 at the 17th Agriculture Leadership Conclave (New Delhi) for horticulture excellence - Agriculture Minister Jitu Vaghani received it
Defence Investment4 firms signed โ‚น2,550 Crore MoUs for Gujarat's Defence Sector at VGRC Vadodara
Monsoon 2026Active southwest monsoon, IMD warnings for heavy rainfall in Saurashtra (Bhavnagar, Rajkot, Amreli)
Vibrant GujaratKnow about recent Vibrant Gujarat Summit outcomes and investment commitments

๐Ÿ“Œ NATIONAL CURRENT AFFAIRS (2025-2026)

Economy & Infrastructure
  • India's semiconductor mission and "Make in India" push
  • National Logistics Policy implementation
  • Digital India initiatives and AI policy
Government Schemes
  • PM Awas Yojana progress
  • Jal Jeevan Mission updates
  • PM Vishwakarma Yojana
  • Amrit Bharat Station Scheme
India's Rankings & Awards
  • India's position in Ease of Doing Business
  • Global Innovation Index
  • Press Freedom, Democracy indices
Sports (2026)
  • IPL 2026: RCB won the title (beating Gujarat Titans in the final)
  • Gujarat Titans were runners-up in IPL 2026

๐Ÿ“Œ INTERNATIONAL AFFAIRS

  • PM Modi's visits: Indonesia, Australia, New Zealand (July 6-11, 2026); Seychelles (June 27-29, 2026); France (June 2026 - focus on manufacturing, AI, sustainability)
  • India-France relations: Mistral AI partnership, LNG vessel collaboration, shipbuilding
  • India's G20 legacy and outcomes

๐Ÿ“Œ GUJARAT GK - STATIC (Must Know)

CategoryKey Facts
CapitalGandhinagar
CMBhupendrabhai Patel
GovernorAcharya Devvrat
Districts33 districts
CoastlineLongest in India (~1,600 km)
Famous PortsKandla (Deendayal), Mundra (largest private port)
National ParksGir (Asiatic Lion), Blackbuck NP, Marine NP (Jamnagar)
RiversSabarmati, Narmada, Tapi, Mahi
Key IndustriesDiamonds (Surat - 90% of world's cut diamonds), Textile, Pharma, Petro-chemicals
UNESCOChampaner-Pavagadh, Rani ki Vav, Historic Ahmedabad, Modhera

๐Ÿ“Œ LIKELY INTERVIEW QUESTIONS FOR CLASS 3

  1. "Why do you want to join government service?" - Prepare a genuine, service-oriented answer
  2. "What is Gujarat's role in India's semiconductor mission?" - CG Semi plant in Sanand
  3. "Tell me about a recent award Gujarat received." - Agriculture Leadership Award 2026
  4. "What are the main industries of your district?"
  5. "What is Vibrant Gujarat Summit?" - Biennial investment summit since 2003
  6. "What are key government schemes for farmers/youth/women?"
  7. "What is the significance of Narmada Dam / Sardar Sarovar?"

๐Ÿ“Œ PREPARATION TIPS

  • Gujarat Pakshik: Read the government's fortnightly publication - it's specifically used for GPSC exams
  • Daily CA: Follow Gujarat Prashasan Pathshala on YouTube for Gujarati medium daily current affairs
  • Know your post: Be very clear about the roles and responsibilities of the Class 3 post you applied for
  • Local knowledge: Know your taluka, district - geography, industries, famous personalities

Would you like me to go deeper on any specific topic - like a mock Q&A session, Gujarat economy, government schemes, or your specific post's duties?

i have gpsc interview for class -2 for medical officer tutor insurance mo

Great clarification! So you're preparing for the GPSC Class 1-2 interview for Medical Officer / Tutor / Insurance Medical Officer. This is a specialized interview that tests both medical knowledge AND general/administrative awareness.
Let me search for the most relevant and current preparation material for this specific post.
Searching sources...
Searching the Web

GPSC Class 1-2 Medical Officer interview questions 2026 Gujarat preparation

Searching the Web

GPSC Insurance Medical Officer Tutor interview expected questions Gujarat 2026

can you take my interview and score me out of 100

Absolutely! I'll play the role of a GPSC interview panel member. I'll ask you questions one by one - just like a real interview - covering:
  • Personal/Motivation questions
  • Medical knowledge (clinical, public health)
  • Gujarat/National current affairs
  • Post-specific (Insurance MO / Tutor duties)
  • Administrative/ethical scenarios
At the end, I'll score you across multiple parameters out of 100.

Ground rules:
  • Answer each question as you would in the real interview
  • I'll ask follow-up questions based on your answers
  • Be as detailed or brief as you like - I'll evaluate accordingly
  • You can answer in English, Gujarati, or Hindi - your choice

๐ŸŽ™๏ธ GPSC Interview Panel - Begin

Question 1 of 10

"Please introduce yourself - your educational background, where you are from, and why you chose medicine as a career."
(Take your time and answer naturally. I'm evaluating content, confidence, and clarity.)

dont limit question number

Understood! No fixed limit - I'll keep asking questions naturally, just like a real GPSC panel interview that can go on as long as needed. I'll ask follow-ups, probe deeper, change topics, and at the end give you a full detailed score out of 100.

๐ŸŽ™๏ธ GPSC Class 1-2 Interview Panel - Medical Officer / Tutor / Insurance MO Panel Member: Orris | Candidate: You

"Good morning. Please be seated."
Let's begin.

Q1.

"Please introduce yourself - your name, where you're from, your educational background, and briefly why you chose medicine."
(Answer naturally - just as you would in front of the panel.)

name is not allowed

Noted! In GPSC interviews, candidates are not supposed to reveal their name (to maintain anonymity for fair evaluation). Good that you know this already - that itself shows awareness!

๐ŸŽ™๏ธ GPSC Class 1-2 Interview Panel

Q1.

"Good morning. Please introduce yourself - your hometown, educational background, and what motivated you to choose medicine as a career."
(Skip your name - just as you would in the real interview. Go ahead!)

good morning sir, i am resident of bhavnagar, i completed my graduation from narendra modi medical college in 2023 , after that i have started my bond duty at phc in botad district during intership and time in between i also managed some blood donation camp as medical officer, also work as a covid warriour during my graduation and currently posted as tutor in commnunity medicine department at narendra modi medical college

Good answer! You covered your hometown, college, bond duty, community work, and current posting. One small note - the panel will notice if "internship" is mispronounced or rushed, so keep that crisp in the real interview.

Q2.

"You are currently a Tutor in Community Medicine. That is a very relevant department given the posts you've applied for - Medical Officer and Insurance MO. In your own words, what does Community Medicine deal with, and how does your experience there make you a stronger candidate for these posts?"

dont go for language because my interview will be in local language so only check content of it and after i answer give me review of my answer and what could be ideal answer

Perfect format! From now on, for every answer you give:
  1. โœ… Your Answer Review - what you got right, what was missing
  2. ๐Ÿ’ก Ideal Answer - what a top-scoring candidate would say
  3. Then I'll move to the next question
Language will not be judged - only content, depth, and relevance.

Q2.

"You are currently a Tutor in Community Medicine. What does Community Medicine deal with, and how does your experience there make you a stronger candidate for Medical Officer / Insurance MO posts?"
Go ahead!

mainly community medicine give depth about public health, it teaches burden of disease , how to prevent it , how to prevent disease risk factor or comlication and how to reduce disease which are vastly present in society, as a mo sir i will have clearity of concepts of public health so it will help me to do better technical work

โœ… Your Answer Review

What you got right:
  • Correctly identified public health as the core of Community Medicine
  • Mentioned burden of disease, prevention, risk factor reduction - good concepts
  • Linked it to your future role as MO - that's the right approach
What was missing:
  • No mention of specific pillars: Epidemiology, Biostatistics, Health Administration, Occupational Health, Family Medicine
  • Did not mention national health programs (NHPs) which are a core part of Community Medicine teaching
  • No mention of your Tutor role specifically - what you TEACH, how you guide MBBS students
  • Insurance MO connection was completely missing - Community Medicine covers Occupational Health & ESI/insurance-related concepts directly
  • Could have mentioned PHC experience from bond duty connecting to Community Medicine principles

๐Ÿ’ก Ideal Answer

"Community Medicine deals with health of the community as a whole rather than individual patients. It covers epidemiology, biostatistics, health administration, environmental health, occupational health, and national health programs. As a Tutor in this department, I teach MBBS students these concepts, which keeps me updated with public health principles. My bond duty at a PHC in Botad gave me ground-level experience in implementing these concepts - like running immunization programs, conducting OPD, and disease surveillance. For the Insurance MO post specifically, Community Medicine covers occupational health and ESI-related topics, which gives me a direct academic foundation for that role. So my current posting is directly relevant to both posts I have applied for."

Q3.

"You did your bond duty at a PHC in Botad district. Tell me - what are the key services a Primary Health Centre is supposed to provide as per the Indian Public Health Standards (IPHS)? And in your experience, was your PHC meeting those standards?"

Generate a PDF on IPHS guidelines and PHC standards for quick revision

Reading File
Running Command

mkdir -p /tmp/workspace/gpsc-interview && ls /tmp/workspace/

Writing File

~/gpsc-interview/generate_iphs_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/IPHS_PHC_Quick_Revision.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm,
    topMargin=2*cm, bottomMargin=2*cm
)

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle('Title', parent=styles['Title'],
    fontSize=20, textColor=colors.HexColor('#1a3c6e'), spaceAfter=6, alignment=TA_CENTER)

subtitle_style = ParagraphStyle('Subtitle', parent=styles['Normal'],
    fontSize=11, textColor=colors.HexColor('#2c5f8a'), spaceAfter=12, alignment=TA_CENTER)

h1_style = ParagraphStyle('H1', parent=styles['Heading1'],
    fontSize=14, textColor=colors.white, backColor=colors.HexColor('#1a3c6e'),
    spaceAfter=8, spaceBefore=14, leftIndent=-10, rightIndent=-10,
    borderPad=6, leading=20)

h2_style = ParagraphStyle('H2', parent=styles['Heading2'],
    fontSize=12, textColor=colors.HexColor('#1a3c6e'),
    spaceAfter=4, spaceBefore=10, borderPad=2)

h3_style = ParagraphStyle('H3', parent=styles['Heading3'],
    fontSize=11, textColor=colors.HexColor('#c0392b'),
    spaceAfter=3, spaceBefore=6)

body_style = ParagraphStyle('Body', parent=styles['Normal'],
    fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)

bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=15, spaceAfter=3,
    bulletIndent=5)

note_style = ParagraphStyle('Note', parent=styles['Normal'],
    fontSize=9, textColor=colors.HexColor('#7f8c8d'),
    leftIndent=10, spaceAfter=4, fontName='Helvetica-Oblique')

highlight_style = ParagraphStyle('Highlight', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=10, spaceAfter=4,
    backColor=colors.HexColor('#eaf4fb'), borderPad=4)

story = []

# โ”€โ”€โ”€ COVER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 1.5*cm))
story.append(Paragraph("IPHS Guidelines & PHC Standards", title_style))
story.append(Paragraph("Quick Revision Guide for GPSC Class 1-2 Interview", subtitle_style))
story.append(Paragraph("Medical Officer / Tutor / Insurance MO", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a3c6e')))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Prepared for: GPSC Interview Preparation | July 2026", note_style))
story.append(Spacer(1, 0.5*cm))

# โ”€โ”€โ”€ SECTION 1: WHAT IS IPHS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("1. What is IPHS?", h1_style))
story.append(Paragraph(
    "<b>Indian Public Health Standards (IPHS)</b> are a set of standards laid down by the "
    "Ministry of Health & Family Welfare, Government of India to provide quality healthcare "
    "at all levels of the public health system. They were first introduced in <b>2007</b> and "
    "revised in <b>2012</b>.", body_style))
story.append(Spacer(1, 0.2*cm))

# Key facts table
data = [
    ["Parameter", "Details"],
    ["Introduced by", "MoHFW, Government of India"],
    ["First issued", "2007"],
    ["Revised", "2012"],
    ["Purpose", "Ensure quality, equitable healthcare at all public health facilities"],
    ["Applicable to", "SC, PHC, CHC, Sub-District Hospital, District Hospital"],
]
t = Table(data, colWidths=[6*cm, 10*cm])
t.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(t)
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€โ”€ SECTION 2: HEALTH SYSTEM LEVELS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("2. Levels of Health Care System in India", h1_style))

levels_data = [
    ["Level", "Facility", "Population Covered", "Key Function"],
    ["Sub-centre (SC)", "Sub-Centre", "3,000 (plain) / 1,000 (hilly)", "First contact - ANM, MPW"],
    ["Primary (PHC)", "Primary Health Centre", "30,000 (plain) / 20,000 (hilly)", "OPD, MCH, immunization, NHPs"],
    ["Secondary (CHC)", "Community Health Centre", "1,20,000 (plain) / 80,000 (hilly)", "Specialist care, 30 beds, surgery"],
    ["Secondary", "Sub-District / Taluka Hospital", "5-6 lakh", "Referral, specialist services"],
    ["Tertiary", "District Hospital", "District level", "Specialty + super-specialty"],
]
t2 = Table(levels_data, colWidths=[3.5*cm, 4*cm, 4*cm, 5*cm])
t2.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'TOP'),
    ('WORDWRAP', (0,0), (-1,-1), True),
]))
story.append(t2)
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€โ”€ SECTION 3: PHC STANDARDS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("3. Primary Health Centre (PHC) - IPHS Standards", h1_style))

story.append(Paragraph("3.1 Population Norms", h2_style))
bullets = [
    "Plains: 1 PHC per <b>30,000 population</b>",
    "Hilly / Tribal / Difficult areas: 1 PHC per <b>20,000 population</b>",
    "Each PHC covers approximately <b>6 Sub-Centres</b>",
]
for b in bullets:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("3.2 Infrastructure Standards", h2_style))
infra = [
    ["Infrastructure Component", "Standard/Requirement"],
    ["Beds", "6 beds (for overnight observation)"],
    ["Labour room", "1 (with toilet attached)"],
    ["Operation Theatre", "Minor OT with basic equipment"],
    ["Laboratory", "Basic lab (hemoglobin, urine, stool, malaria, blood sugar)"],
    ["Pharmacy / Drug store", "Essential drug list maintained"],
    ["Cold chain equipment", "ILR (Ice Lined Refrigerator), deep freezer for vaccines"],
    ["Ambulance/vehicle", "1 vehicle for referral transport"],
    ["Power backup", "Generator / solar backup"],
    ["Water supply", "24-hour potable water supply"],
    ["Toilet", "Separate for male/female/staff"],
]
t3 = Table(infra, colWidths=[7*cm, 9.5*cm])
t3.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2c5f8a')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(t3)
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("3.3 Human Resources (Staff) at PHC", h2_style))
hr_data = [
    ["Post", "Number", "Remarks"],
    ["Medical Officer (MBBS)", "1 (+ 1 AYUSH MO)", "In-charge of PHC"],
    ["Pharmacist", "1", "Drug dispensing"],
    ["Staff Nurse", "1", "OPD, dressings, injections"],
    ["ANM (Aux. Nurse Midwife)", "2 (1 at PHC + 1 at SC)", "MCH, immunization"],
    ["Health Assistant (Male/Female)", "1 each", "Field supervisors"],
    ["Health Education Officer", "1 (per 3 PHCs)", "IEC activities"],
    ["Laboratory Technician", "1", "Basic lab tests"],
    ["Driver", "1", "Vehicle/ambulance"],
    ["Class IV staff", "4", "Ward boys, sweepers etc."],
]
t4 = Table(hr_data, colWidths=[6*cm, 3*cm, 7.5*cm])
t4.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2c5f8a')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(t4)
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€โ”€ SECTION 4: SERVICES AT PHC โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("4. Services Provided at PHC (IPHS)", h1_style))

story.append(Paragraph("4.1 Outpatient Department (OPD) Services", h2_style))
opd_bullets = [
    "Medical care for acute illnesses (fever, diarrhea, ARI, etc.)",
    "Minor surgical procedures and wound dressing",
    "First aid and emergency stabilization before referral",
    "Diagnosis and treatment of communicable diseases",
    "Management of non-communicable diseases (hypertension, diabetes)",
]
for b in opd_bullets:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))

story.append(Paragraph("4.2 Maternal & Child Health (MCH) Services", h2_style))
mch = [
    "Antenatal care (ANC) - minimum 4 visits (as per new guidelines: 8 contacts)",
    "Intranatal care - normal deliveries at PHC",
    "Postnatal care (PNC) for mother and newborn",
    "Immunization (Universal Immunization Programme - UIP)",
    "Growth monitoring of children under 5",
    "Family planning counseling and services (contraceptives, sterilization referral)",
    "Management of malnutrition in children",
]
for b in mch:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))

story.append(Paragraph("4.3 National Health Programme (NHP) Implementation", h2_style))
nhp_data = [
    ["Programme", "Key Activity at PHC Level"],
    ["RNTCP / NTEPn", "Sputum collection, DOTS, contact tracing"],
    ["NVBDCP", "Malaria slide collection, dengue/chikungunya surveillance"],
    ["NLEP", "Leprosy case detection, MDT treatment"],
    ["NPCB", "Eye camp referrals, cataract detection"],
    ["NPCDCS", "Screening for DM, HTN, cancer (oral, breast, cervix)"],
    ["RBSK", "School health screening (0-18 years)"],
    ["JSSK / JSY", "Free delivery, incentives for institutional delivery"],
    ["NHM", "Overall umbrella programme - funding, monitoring"],
]
t5 = Table(nhp_data, colWidths=[5*cm, 11.5*cm])
t5.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
story.append(t5)
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("4.4 School Health & Outreach Services", h2_style))
school = [
    "School health programme (RBSK - Rashtriya Bal Swasthya Karyakram)",
    "Health education and IEC activities",
    "Village health and sanitation committee (VHSC) support",
    "Village Health Nutrition Days (VHNDs) coordination",
    "Referral services to CHC/District Hospital",
]
for b in school:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))

story.append(Paragraph("4.5 Diagnostic (Lab) Services at PHC", h2_style))
lab = [
    "Hemoglobin estimation", "Blood grouping & Rh typing",
    "Blood glucose (random/fasting)", "Urine routine & microscopy",
    "Stool examination", "Malaria (thick/thin smear, RDT)",
    "Sputum smear for AFB (TB)", "Pregnancy test (urine hCG)",
    "Widal test", "HIV rapid test (ICTC)",
]
for i in range(0, len(lab), 2):
    row = f"โ€ข {lab[i]}" + (f"    โ€ข  {lab[i+1]}" if i+1 < len(lab) else "")
    story.append(Paragraph(row, bullet_style))

# โ”€โ”€โ”€ SECTION 5: MO ROLES & RESPONSIBILITIES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("5. Role & Responsibilities of Medical Officer at PHC", h1_style))

story.append(Paragraph("5.1 Clinical Responsibilities", h2_style))
clinical = [
    "Conduct OPD and provide curative care",
    "Manage emergency cases and provide first aid / stabilization",
    "Conduct/supervise normal deliveries",
    "Prescribe from Essential Drug List (EDL)",
    "Refer complicated cases to CHC/District Hospital appropriately",
    "Perform minor surgical procedures",
]
for b in clinical:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))

story.append(Paragraph("5.2 Administrative / Public Health Responsibilities", h2_style))
admin = [
    "Supervise all staff at PHC and Sub-Centres",
    "Implement all National Health Programmes",
    "Maintain records and registers (MIS, HMIS reporting)",
    "Plan and conduct immunization sessions",
    "Conduct Village Health & Nutrition Days (VHNDs)",
    "Oversee cold chain maintenance",
    "Liaise with Panchayat, ASHA, AWW for community health activities",
    "Submit monthly reports to Block Medical Officer (BMO) / CDHO",
    "Ensure stock of essential drugs and supplies",
]
for b in admin:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))

story.append(Paragraph("5.3 Reporting Structure", h2_style))
story.append(Paragraph(
    "PHC MO โ†’ Block Medical Officer (BMO) โ†’ Chief District Health Officer (CDHO) โ†’ "
    "District Health Officer (DHO) โ†’ State Health Department", highlight_style))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€โ”€ SECTION 6: INSURANCE MO โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("6. Insurance Medical Officer (IMO) - Key Concepts", h1_style))

story.append(Paragraph("6.1 What is ESI (Employees' State Insurance)?", h2_style))
story.append(Paragraph(
    "The Employees' State Insurance Act was enacted in <b>1948</b>. It provides social security "
    "to workers employed in factories and establishments. Administered by <b>ESIC (Employees' "
    "State Insurance Corporation)</b>, under MoLE (Ministry of Labour & Employment).", body_style))

esi_data = [
    ["Parameter", "Details"],
    ["Act enacted", "1948"],
    ["Applicable to", "Employees earning โ‰ค โ‚น21,000/month (โ‚น25,000 for disabled)"],
    ["Employee contribution", "0.75% of wages"],
    ["Employer contribution", "3.25% of wages"],
    ["Benefits provided", "Medical, sickness, maternity, disablement, dependent benefit"],
    ["Administered by", "ESIC (autonomous body under MoLE)"],
    ["ESI facilities", "ESI Dispensaries, ESI Hospitals"],
]
t6 = Table(esi_data, colWidths=[6*cm, 10.5*cm])
t6.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(t6)
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("6.2 Role of Insurance Medical Officer (IMO)", h2_style))
imo_roles = [
    "Provide medical care to ESI insured persons and their dependents",
    "Issue sickness certificates (medical fitness / unfitness for work)",
    "Certify temporary disablement (TD) and permanent disablement (PD)",
    "Conduct medical examinations for occupational diseases",
    "Refer cases to ESI hospitals or panel specialists",
    "Maintain medical records of insured persons",
    "Liaise with ESIC branch office for benefits processing",
    "Conduct periodic medical surveys of industrial workers",
]
for b in imo_roles:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))

story.append(Paragraph("6.3 Important ESI Benefits (for IMO Interview)", h2_style))
benefits_data = [
    ["Benefit", "Description", "Duration"],
    ["Sickness Benefit", "Cash benefit during certified illness", "91 days/year"],
    ["Extended Sickness Benefit", "For long-term diseases (TB, cancer, etc.)", "Up to 2 years"],
    ["Enhanced Sickness Benefit", "For sterilization operations", "7/14 days"],
    ["Maternity Benefit", "For confinement / miscarriage", "26 weeks (confinement)"],
    ["Disablement Benefit", "Temporary or permanent disability due to employment injury", "Life (PD)"],
    ["Dependent Benefit", "For dependents of deceased insured person", "Life"],
    ["Medical Benefit", "Full medical care (OPD, IPD, specialist, emergency)", "Insured + family"],
    ["Funeral Expenses", "Lump sum on death of insured", "โ‚น15,000"],
]
t7 = Table(benefits_data, colWidths=[4.5*cm, 8*cm, 4*cm])
t7.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(t7)
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€โ”€ SECTION 7: QUALITY INDICATORS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("7. Key Health Indicators - Quick Reference", h1_style))

indicators_data = [
    ["Indicator", "India (Approx 2024-25)", "Gujarat (Approx)"],
    ["Maternal Mortality Ratio (MMR)", "97/1,00,000 LB (SRS 2018-20)", "57/1,00,000 LB"],
    ["Infant Mortality Rate (IMR)", "28/1000 LB (SRS 2020)", "24/1000 LB"],
    ["Under-5 Mortality Rate (U5MR)", "32/1000 LB", "~27/1000 LB"],
    ["Neonatal Mortality Rate (NMR)", "20/1000 LB", "~17/1000 LB"],
    ["Total Fertility Rate (TFR)", "2.0 (NFHS-5)", "1.9 (NFHS-5)"],
    ["Institutional Delivery", "88.6% (NFHS-5)", "~95%"],
    ["Full Immunization Coverage", "76.4% (NFHS-5)", "~85%"],
    ["Sex Ratio at Birth", "929/1000 male (NFHS-5)", "909/1000"],
    ["Life Expectancy", "69.7 years (2015-19)", "~70+ years"],
]
t8 = Table(indicators_data, colWidths=[6.5*cm, 5.5*cm, 4.5*cm])
t8.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))
story.append(t8)
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€โ”€ SECTION 8: IMPORTANT COMMITTEES & ACTS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("8. Important Committees, Acts & Policies", h1_style))

acts_data = [
    ["Committee / Act / Policy", "Year", "Key Contribution"],
    ["Bhore Committee", "1946", "Foundation of Indian health system, PHC concept"],
    ["Mudaliar Committee", "1962", "Strengthening health services, CHC concept"],
    ["Shrivastav Committee", "1975", "Community health workers (CHW) concept"],
    ["Bajaj Committee", "1986", "Indian Public Health Standards review"],
    ["National Health Policy", "1983, 2002, 2017", "Comprehensive health policy framework"],
    ["National Health Mission (NHM)", "2013 (NRHM 2005)", "Rural + Urban health mission"],
    ["Clinical Establishments Act", "2010", "Registration and regulation of hospitals"],
    ["PCPNDT Act", "1994 (amended 2003)", "Prevention of sex-selective abortion"],
    ["MTP Act", "1971 (amended 2021)", "Medical termination of pregnancy"],
    ["POCSO Act", "2012", "Protection of children from sexual offences"],
    ["Mental Health Care Act", "2017", "Rights of persons with mental illness"],
    ["ESI Act", "1948", "Social security for industrial workers"],
]
t9 = Table(acts_data, colWidths=[6*cm, 2.5*cm, 8*cm])
t9.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
story.append(t9)
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€โ”€ SECTION 9: IMMUNIZATION SCHEDULE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("9. Universal Immunization Programme (UIP) Schedule", h1_style))

uip_data = [
    ["Age", "Vaccine", "Route/Site"],
    ["Birth", "BCG, OPV-0, Hep B-0", "ID (BCG), Oral (OPV), IM (Hep B)"],
    ["6 weeks", "OPV-1, Penta-1, Rota-1, fIPV-1, PCV-1", "Oral/IM/ID"],
    ["10 weeks", "OPV-2, Penta-2, Rota-2", "Oral/IM"],
    ["14 weeks", "OPV-3, Penta-3, Rota-3, fIPV-2, PCV-2", "Oral/IM/ID"],
    ["9-12 months", "MR-1, JE-1 (endemic), Vitamin A-1, PCV Booster", "SC/IM"],
    ["16-24 months", "MR-2, OPV Booster, DPT Booster-1, JE-2, Vitamin A (6-monthly till 5 yrs)", "SC/IM/Oral"],
    ["5-6 years", "DPT Booster-2", "IM"],
    ["10 years & 16 years", "Td (Tetanus & diphtheria)", "IM"],
    ["Pregnant women", "Td-1, Td-2 (or Td Booster)", "IM"],
]
t10 = Table(uip_data, colWidths=[4*cm, 7.5*cm, 5*cm])
t10.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
    ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
    ('PADDING', (0,0), (-1,-1), 5),
    ('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
story.append(t10)
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Note: fIPV = fractional dose IPV (intradermal). PCV = Pneumococcal Conjugate Vaccine. Rota = Rotavirus vaccine. Check latest NHM/GOI circulars for any recent additions.", note_style))

# โ”€โ”€โ”€ SECTION 10: LIKELY INTERVIEW QUESTIONS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("10. Likely GPSC Interview Questions on IPHS / PHC", h1_style))

questions = [
    ("Q1", "What is IPHS? When was it introduced and by whom?",
     "Indian Public Health Standards, introduced by MoHFW in 2007, revised 2012. Sets minimum standards for health facilities."),
    ("Q2", "What is the population norm for a PHC?",
     "30,000 in plains; 20,000 in hilly/tribal/difficult areas. Each PHC covers ~6 Sub-Centres."),
    ("Q3", "How many beds should a PHC have as per IPHS?",
     "6 beds for overnight observation/delivery."),
    ("Q4", "What staff should ideally be present at a PHC?",
     "MO (MBBS + AYUSH), Pharmacist, Staff Nurse, 2 ANMs, Lab Technician, Health Assistants, Driver, Class IV staff."),
    ("Q5", "Was your PHC at Botad meeting IPHS standards?",
     "Be honest - mention infrastructure gaps if any, but highlight what was working. Show awareness of the problem and suggest solutions."),
    ("Q6", "What is the role of MO at a PHC?",
     "Clinical care (OPD, emergencies, deliveries), implementing NHPs, supervising staff, reporting (HMIS), community outreach."),
    ("Q7", "What is HMIS? Why is it important?",
     "Health Management Information System - monthly reporting to district/state for monitoring health indicators and programme performance."),
    ("Q8", "What is the difference between PHC and CHC?",
     "PHC: 30,000 population, 6 beds, MO + parastaff, primary care. CHC: 1,20,000 population, 30 beds, 4 specialists (surgeon, physician, obstetrician, pediatrician), secondary care, IPHS first referral unit (FRU)."),
    ("Q9", "What is ESI Act? What are the wage limits?",
     "ESI Act 1948 - social security for workers. Applies to employees earning โ‰ค โ‚น21,000/month. Employee contributes 0.75%, employer 3.25%."),
    ("Q10", "What is sickness benefit under ESI?",
     "Cash benefit at 70% of wages during certified sickness. Available for up to 91 days per year. Requires 78 days contribution in preceding 2 contribution periods."),
]

for qno, question, answer in questions:
    story.append(Paragraph(f"<b>{qno}. {question}</b>", h3_style))
    story.append(Paragraph(f"โœ” {answer}", highlight_style))
    story.append(Spacer(1, 0.15*cm))

# โ”€โ”€โ”€ SECTION 11: QUICK MNEMONICS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("11. Quick Mnemonics & Memory Tips", h1_style))

mnemonics = [
    ("PHC Numbers to Remember",
     ["Population: 30,000 (plain) / 20,000 (hilly)",
      "Beds: 6 | Sub-Centres covered: 6 | OPD target: 40 patients/day",
      "MO: 1 MBBS + 1 AYUSH | ANMs: 2 | Lab Tech: 1"]),
    ("CHC Numbers to Remember",
     ["Population: 1,20,000 (plain) / 80,000 (hilly)",
      "Beds: 30 | Specialists: 4 (Surgeon, Physician, OBG, Pediatrician)",
      "Operation Theatre: 1 | Labour room: 1 | ICU: 1 (6 beds)"]),
    ("Bhore Committee Key Points",
     ["1946 | Short-term & long-term plan",
      "'No individual should be denied health care due to inability to pay'",
      "Recommended 3-tier system, Social insurance concept"]),
    ("NHM Key Facts",
     ["NRHM: 2005 | NUHM: 2013 | Merged as NHM 2013",
      "Flexible Pool, RKS (Rogi Kalyan Samiti), ASHA (1/1000 pop)",
      "JSSK, JSY, RBSK, PMSMA - all under NHM"]),
]

for heading, points in mnemonics:
    story.append(Paragraph(f"<b>{heading}</b>", h2_style))
    for p in points:
        story.append(Paragraph(f"โžค {p}", bullet_style))
    story.append(Spacer(1, 0.2*cm))

# โ”€โ”€โ”€ FOOTER NOTE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a3c6e')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "This quick revision guide is prepared for GPSC Class 1-2 Interview preparation (Medical Officer / Insurance MO / Tutor). "
    "Always verify latest statistics from MoHFW, NHM, and NFHS-5 official sources. | Prepared: July 2026",
    note_style))

# Build PDF
doc.build(story)
print(f"PDF generated at: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_iphs_pdf.py

Your PDF is ready! Download it here:

IPHS PHC Quick Revision

PDF Document ยท PDF


๐Ÿ“„ What's inside the PDF (5 pages):

SectionContent
1. What is IPHSDefinition, year introduced, applicable levels
2. Health System LevelsSC โ†’ PHC โ†’ CHC โ†’ District Hospital with population norms
3. PHC StandardsInfrastructure, beds, staff list with numbers
4. PHC ServicesOPD, MCH, NHP implementation table, Lab services
5. MO RolesClinical + administrative duties, reporting structure
6. Insurance MOESI Act 1948, contribution %, all 8 benefits with duration
7. Health IndicatorsMMR, IMR, TFR for India & Gujarat (NFHS-5)
8. Acts & CommitteesBhore, Mudaliar, NHM, ESI, MTP, PCPNDT - all with years
9. UIP ScheduleComplete immunization chart from birth to 16 years
10. Interview Q&A10 likely questions with ideal answers
11. MnemonicsKey numbers for PHC, CHC, NHM to remember quickly

Now, shall we continue the interview from Q3 about your PHC experience?

Q3.

"What are the key services a PHC is supposed to provide as per IPHS? And in your experience at the Botad PHC, was it meeting those standards?"

first population norm 30000/phc , availability of staff mo ayush mo pharmacist staff nurce anm 4 class 4 health assiatant, structural also cold chain room ot room labour room 6 beds , opd services, experience in botad was good but less number of patients come beacsuse phc was 2 km away from village , all other standards have matched but only one that ayush mo was not there

โœ… Your Answer Review

What you got right:
  • Correctly stated population norm of 30,000 - good
  • Listed key staff correctly (MO, AYUSH MO, Pharmacist, Staff Nurse, ANM, Class IV, Health Assistant)
  • Mentioned structural standards - cold chain room, OT, labour room, 6 beds - very good
  • Mentioned OPD services
  • Gave a real ground-level observation about low patient footfall due to distance - shows field experience
  • Honestly mentioned AYUSH MO was absent - shows integrity, which panels respect
What was missing / could be stronger:
  • ANMs should be 2 (not grouped under general staff) - minor but panels notice numbers
  • Did not mention Lab Technician - important staff at PHC
  • "Less patients due to distance" is a real problem but you should have suggested a solution - e.g., outreach sessions, mobile health units, VHNDs at village level
  • Did not mention HMIS reporting, National Health Programmes being run, or immunization sessions - these are core PHC functions
  • Could have mentioned what YOU did to address the challenges - shows initiative

๐Ÿ’ก Ideal Answer

"As per IPHS, a PHC should serve 30,000 population in plains. Infrastructure includes 6 beds, labour room, minor OT, cold chain room, basic lab, and pharmacy. Staff should include 1 MBBS MO, 1 AYUSH MO, pharmacist, staff nurse, 2 ANMs, lab technician, health assistants, and class IV staff. At my PHC in Botad, most standards were being met - we had proper infrastructure, cold chain was maintained, immunization sessions were running regularly, and NHPs like RNTCP and NVBDCP were being implemented. One gap was the absence of AYUSH MO, which increased my workload. Regarding low patient footfall - the PHC was 2 km from the main village, so I compensated by conducting outreach sessions and VHNDs at the village level to bring services closer to the community."

Q4.

"You mentioned conducting blood donation camps. As a Medical Officer, what are the criteria for blood donation eligibility? And what is the role of blood banks under the Drugs and Cosmetics Act?"

age must be >18 <65, not previously donated in 3 months, no any severe disease, regukated bp and diabetes can donate, weight must be >50 , Hb >12.5, no ear piercing ot tattoing in past year , no any major surgery in past year , no any heart , liver disease,

โœ… Your Answer Review

What you got right:
  • Age 18-65 โœ…
  • 3 month gap between donations โœ…
  • Weight >50 kg โœ…
  • Hb >12.5 g/dL โœ…
  • No ear piercing/tattoo in past year โœ…
  • No major surgery in past year โœ…
  • No heart/liver disease โœ…
  • Regulated BP/diabetes can donate - good practical knowledge โœ…
What was missing / incorrect:
  • Hb cutoff - for males it is >12.5, for females also >12.5 (some guidelines say 12.0 for females) - good you mentioned it but specifying gender-wise is better
  • Did not mention pulse rate criteria: 60-100 bpm, regular
  • Did not mention BP criteria: systolic 100-180 mmHg, diastolic 60-100 mmHg
  • Did not mention temperature should be normal (<37.5ยฐC)
  • Pregnancy / lactation - should NOT donate (important exclusion, especially for female donors)
  • Did not mention volume of donation: 350-450 ml per donation
  • Drugs & Cosmetics Act part - completely missed (blood banks are licensed under Schedule F, Part XII-B of D&C Act, 1940) - panel may follow up on this
  • Did not mention HIV, HBsAg, HCV, VDRL, Malaria screening done on every unit collected

๐Ÿ’ก Ideal Answer

"Blood donation eligibility criteria as per NACO/National Blood Policy: Age 18-65 years, weight โ‰ฅ45 kg (some guidelines 50 kg), Hb โ‰ฅ12.5 g/dL, pulse 60-100 regular, BP systolic 100-180 / diastolic 60-100, temperature normal. Minimum 3 months gap since last donation. Exclusions include pregnancy, lactation, recent tattoo/piercing within 1 year, major surgery within 6 months, active infections, HIV/hepatitis positivity, malignancy, and severe cardiac or liver disease. Well-controlled hypertension and diabetes on oral medications can donate. Every unit collected must be screened for HIV, HBsAg, HCV, VDRL, and malaria. Blood banks are regulated under Schedule F, Part XII-B of the Drugs & Cosmetics Act 1940, and require a license from the State Licensing Authority."

Q5.

"You are posted as a Tutor in Community Medicine. If you are selected as Medical Officer, what will you bring from your teaching experience to your field work? And conversely - if you are selected as a Tutor (permanent), how do you plan to contribute to medical education?"
(This is a common panel question to test your clarity of purpose and commitment to both roles.)

in future as a medical officer i can bring perfect technucal work to ground, and as a tutor i will have ground experience which i can combine with theory to teach students more perfectly

โœ… Your Answer Review

What you got right:
  • Basic idea is correct - theory to field, field to teaching โœ…
  • Shows you value both roles โœ…
What was missing - this answer needed much more depth:
  • Too vague and short - "perfect technical work" and "teach more perfectly" are generic phrases with no substance
  • Did not give ANY specific example of what teaching experience brings to field work
  • Did not mention specific contributions as a Tutor - curriculum, case discussions, field visits with students, community surveys
  • No mention of research - Tutors are expected to do research/publish
  • Did not show enthusiasm or vision for either role
  • Panel will see this as a weak, uncommitted answer - they want to know you have thought seriously about BOTH roles
  • Missing: mention of NHPs, epidemiology skills, biostatistics, health surveys - things Community Medicine Tutors specifically teach that directly help an MO

๐Ÿ’ก Ideal Answer

"As a Medical Officer, my experience as a Tutor in Community Medicine gives me strong grounding in epidemiology, health statistics, and national health programme implementation - things that directly help in running a PHC efficiently, interpreting disease surveillance data, and monitoring programme outcomes. I understand the 'why' behind protocols, not just the 'what.'
As a Tutor, my PHC bond duty gives me real field examples to teach from - I can tell students not just what IPHS says about immunization, but what actually happens on the ground in a rural PHC in Botad. I can take students for field visits, conduct community health surveys, and connect classroom learning to reality. I also plan to take up research on local public health issues - like low patient footfall at rural PHCs - which can contribute to evidence-based policy. Both roles complement each other, and I am committed to whichever post I am selected for."

Q6.

"Gujarat has one of the longest coastlines in India. How does this geographical feature affect the disease burden and public health challenges in coastal areas of Gujarat like Bhavnagar?"
(This tests your local knowledge + public health thinking combined.)

can you prepare pdf for coastline disases and health challanges for gujarat

On it! Generating a focused PDF on Gujarat's coastal health challenges.
Writing File

~/gpsc-interview/generate_coastal_health_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/Gujarat_Coastal_Health_Challenges.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_style = ParagraphStyle('Title', parent=styles['Title'],
    fontSize=20, textColor=colors.HexColor('#0d4f6e'), spaceAfter=6, alignment=TA_CENTER)
subtitle_style = ParagraphStyle('Sub', parent=styles['Normal'],
    fontSize=11, textColor=colors.HexColor('#1a7a9e'), spaceAfter=10, alignment=TA_CENTER)
h1_style = ParagraphStyle('H1', parent=styles['Heading1'],
    fontSize=13, textColor=colors.white, backColor=colors.HexColor('#0d4f6e'),
    spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_style = ParagraphStyle('H2', parent=styles['Heading2'],
    fontSize=11, textColor=colors.HexColor('#0d4f6e'), spaceAfter=4, spaceBefore=8)
h3_style = ParagraphStyle('H3', parent=styles['Heading3'],
    fontSize=10.5, textColor=colors.HexColor('#c0392b'), spaceAfter=3, spaceBefore=5)
body_style = ParagraphStyle('Body', parent=styles['Normal'],
    fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=15, spaceAfter=3)
note_style = ParagraphStyle('Note', parent=styles['Normal'],
    fontSize=9, textColor=colors.HexColor('#7f8c8d'), leftIndent=10,
    spaceAfter=4, fontName='Helvetica-Oblique')
highlight_style = ParagraphStyle('HL', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=10, spaceAfter=4,
    backColor=colors.HexColor('#e8f6fd'), borderPad=4)
box_style = ParagraphStyle('Box', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=10, spaceAfter=4,
    backColor=colors.HexColor('#fef9e7'), borderPad=4)

def tbl(data, col_widths, header_color='#0d4f6e'):
    t = Table(data, colWidths=col_widths)
    t.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,0), colors.HexColor(header_color)),
        ('TEXTCOLOR', (0,0), (-1,0), colors.white),
        ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
        ('FONTSIZE', (0,0), (-1,-1), 9),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#e8f6fd'), colors.white]),
        ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
        ('PADDING', (0,0), (-1,-1), 5),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
    ]))
    return t

story = []

# โ”€โ”€ COVER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 1*cm))
story.append(Paragraph("Gujarat's Coastline: Diseases &", title_style))
story.append(Paragraph("Public Health Challenges", title_style))
story.append(Paragraph("Quick Revision Guide for GPSC Class 1-2 Interview", subtitle_style))
story.append(Paragraph("Medical Officer / Insurance MO / Tutor | July 2026", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#0d4f6e')))
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€ SECTION 1: GUJARAT COASTLINE OVERVIEW โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("1. Gujarat Coastline - Key Facts", h1_style))
story.append(Paragraph(
    "Gujarat has the <b>longest coastline of any Indian state</b>, stretching approximately "
    "<b>1,600 km</b> (some estimates up to 1,663 km). It covers the districts of Kutch, "
    "Jamnagar, Devbhoomi Dwarka, Porbandar, Junagadh, Gir Somnath, Amreli, Bhavnagar, "
    "Anand, Bharuch, Surat, and Navsari. This vast coastline creates unique public health "
    "challenges due to geography, occupational patterns, climate, and socioeconomic factors.", body_style))
story.append(Spacer(1, 0.2*cm))

facts_data = [
    ["Parameter", "Details"],
    ["Coastline length", "~1,600 km (longest in India)"],
    ["Major coastal districts", "Kutch, Jamnagar, Dwarka, Porbandar, Junagadh, Gir Somnath, Amreli, Bhavnagar, Bharuch, Surat"],
    ["Major ports", "Mundra (largest private), Kandla/Deendayal (largest govt), Hazira, Pipavav, Magdalla"],
    ["Coastal population", "~30% of Gujarat's population lives in coastal areas"],
    ["Key occupation", "Fishing, salt farming, port/shipping industry, petrochemicals"],
    ["Bhavnagar coastline", "~175 km - includes Alang (world's largest ship-breaking yard)"],
]
story.append(tbl(facts_data, [5.5*cm, 11*cm]))
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€ SECTION 2: DISEASE BURDEN โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("2. Disease Burden in Coastal Areas of Gujarat", h1_style))

story.append(Paragraph("2.1 Vector-Borne Diseases", h2_style))
story.append(Paragraph(
    "Coastal and marshy environments create ideal breeding grounds for mosquitoes. "
    "Gujarat coastal areas - especially Saurashtra and Kutch - have historically high "
    "burden of vector-borne diseases.", body_style))

vbd_data = [
    ["Disease", "Vector", "Coastal Risk Factor", "Key Districts"],
    ["Malaria (P. vivax dominant)", "Anopheles mosquito", "Stagnant water near creeks, mangroves, fishing harbours", "Kutch, Jamnagar, Bharuch, Surat"],
    ["Dengue", "Aedes aegypti", "Water storage in coastal homes, containers", "Surat, Bharuch, Bhavnagar"],
    ["Chikungunya", "Aedes mosquito", "Same as dengue", "Surat, Bharuch, South Gujarat coast"],
    ["Lymphatic Filariasis", "Culex mosquito", "Dirty water, poor sanitation in fishing villages", "Surat, Bharuch, Navsari"],
    ["Japanese Encephalitis", "Culex mosquito", "Paddy fields + coastal wetlands", "South Gujarat coastal belt"],
]
story.append(tbl(vbd_data, [3.5*cm, 3*cm, 5.5*cm, 4.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.2 Water-Borne & Food-Borne Diseases", h2_style))
story.append(Paragraph(
    "Coastal communities depend heavily on seafood and often have limited access to safe "
    "drinking water, increasing vulnerability to water-borne diseases.", body_style))

wbd_data = [
    ["Disease", "Source/Route", "Coastal-Specific Risk"],
    ["Cholera", "Contaminated water/seafood", "Port areas, fishing harbours - high population density"],
    ["Typhoid", "Contaminated water/food", "Poor water supply in rural coastal villages"],
    ["Hepatitis A & E", "Contaminated water, raw shellfish", "Raw seafood consumption common in fishing communities"],
    ["Diarrhoeal diseases", "Contaminated water, poor sanitation", "Seasonal flooding during monsoon along coast"],
    ["Leptospirosis", "Floodwater / rat urine", "Monsoon flooding in coastal areas, contact with contaminated water"],
    ["Vibrio infections", "Raw/undercooked seafood", "Fishing communities eating raw fish, oysters"],
]
story.append(tbl(wbd_data, [3.5*cm, 4.5*cm, 8.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.3 Occupational Diseases (Fishermen & Workers)", h2_style))

occ_data = [
    ["Occupation", "Disease / Health Problem", "Mechanism"],
    ["Fishermen", "Skin disorders (fungal, bacterial)", "Prolonged saltwater exposure"],
    ["Fishermen", "Musculoskeletal disorders", "Heavy lifting, awkward postures on boats"],
    ["Fishermen", "Drowning / trauma", "Sea accidents, storms, capsizing"],
    ["Fishermen", "Decompression sickness (divers)", "Rapid ascent - nitrogen bubbles in blood"],
    ["Salt pan workers", "Skin burns, eye damage", "UV exposure, salt irritation"],
    ["Salt pan workers", "Heat exhaustion / heat stroke", "Prolonged sun exposure in white salt flats"],
    ["Salt pan workers", "Malnutrition / anemia", "Seasonal work, low income, poor diet"],
    ["Ship-breaking (Alang, Bhavnagar)", "Asbestos-related diseases (mesothelioma)", "Asbestos insulation in old ships"],
    ["Ship-breaking", "Heavy metal poisoning (Pb, Hg, Cd)", "Burning/cutting old ship materials"],
    ["Ship-breaking", "Traumatic injuries", "Accidents during dismantling"],
    ["Ship-breaking", "Respiratory diseases (silicosis, COPD)", "Metal dust, paint fumes"],
    ["Petrochemical workers (Jamnagar, Bharuch)", "Chemical poisoning, skin/eye diseases", "Exposure to industrial chemicals"],
    ["Port/dock workers", "Noise-induced hearing loss", "Heavy machinery, ship engines"],
]
story.append(tbl(occ_data, [4*cm, 5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

story.append(Paragraph("2.4 Nutritional & Non-Communicable Diseases", h2_style))

ncd_data = [
    ["Condition", "Coastal Risk Factor", "Affected Group"],
    ["Fluorosis (dental & skeletal)", "High fluoride in groundwater (coastal aquifers - salt water intrusion)", "Children, adults in Kutch, Saurashtra"],
    ["Iodine deficiency disorders", "Despite being coastal - iodized salt use varies, poor diet diversity", "Fishing community women & children"],
    ["Hypertension", "High salt diet (fish preservation, pickle), stress, sedentary lifestyle", "Adult fishermen & families"],
    ["Cardiovascular diseases", "High dietary fat (fish oil), smoking, alcohol common in fishing community", "Adult male fishermen"],
    ["Skin cancers", "High UV exposure, no sun protection among outdoor workers", "Salt pan workers, fishermen"],
    ["Diabetes", "Changing diet patterns, urbanization of coastal towns", "Urban coastal populations"],
    ["Anemia", "Poor diet, heavy menstrual loss, parasitic infections", "Women in fishing communities"],
]
story.append(tbl(ncd_data, [4*cm, 6.5*cm, 6*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.5 Mental Health & Social Issues", h2_style))
mh_bullets = [
    "High rates of <b>depression and anxiety</b> among fishermen due to income uncertainty, sea accidents, and isolation",
    "<b>Alcohol dependence</b> is significantly higher in male fishing communities",
    "<b>Domestic violence</b> - linked to alcoholism and financial stress",
    "<b>Suicide</b> - documented higher rates among debt-ridden fishermen (similar to farmer suicides)",
    "<b>Child labour</b> - children pulled out of school to assist with fishing, net-mending",
    "<b>Poor maternal health</b> - wives of fishermen left at home without support during sea trips",
]
for b in mh_bullets:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 3: ALANG SHIP-BREAKING YARD โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("3. Alang Ship-Breaking Yard - Special Focus (Bhavnagar)", h1_style))
story.append(Paragraph(
    "Alang (near Bhavnagar) is the <b>world's largest ship-breaking yard</b>, handling ~50% of "
    "global ship dismantling. It employs ~30,000-50,000 workers, mostly migrant labour. "
    "It is a major occupational health concern and a likely interview topic since you are "
    "from Bhavnagar.", body_style))
story.append(Spacer(1, 0.1*cm))

alang_data = [
    ["Health Hazard", "Details"],
    ["Asbestos exposure", "Old ships contain asbestos insulation - causes mesothelioma, asbestosis, lung cancer (latency 20-40 years)"],
    ["Heavy metals (Pb, Hg, Cd, Cr)", "Paints, batteries, pipes - cause neurological damage, renal failure, carcinogenesis"],
    ["PCBs / POPs", "Polychlorinated biphenyls from electrical equipment - carcinogenic, endocrine disruptors"],
    ["Traumatic injuries", "Falls from height, crush injuries, fire accidents, explosions - major cause of death"],
    ["Noise-induced hearing loss", "Cutting tools, grinders, steel impacts"],
    ["Heat stress", "Working in confined ship spaces in Gujarat heat"],
    ["Lack of PPE", "Most workers lack protective equipment - poor enforcement"],
    ["Migrant worker vulnerability", "No ESI coverage, no regular health check, language barrier"],
    ["Environmental pollution", "Oil spills, heavy metal runoff into sea - affects marine life and fishermen"],
]
story.append(tbl(alang_data, [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Key Point for Interview:", h3_style))
story.append(Paragraph(
    "Supreme Court in 2007 (Research Foundation for Science v. Union of India) ordered "
    "strict regulation of hazardous waste imports at Alang. Workers should be covered under "
    "ESI Act and Factory Act. Gujarat Pollution Control Board (GPCB) monitors the site.", highlight_style))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 4: CLIMATE & DISASTER HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("4. Climate, Disasters & Coastal Health", h1_style))

story.append(Paragraph("4.1 Cyclones and Health Impact", h2_style))
story.append(Paragraph(
    "Gujarat's coast is vulnerable to cyclones from the Arabian Sea. Major cyclones: "
    "<b>Kandla cyclone (1998)</b>, <b>Cyclone Vayu (2019)</b>, <b>Cyclone Biparjoy (2023)</b> - Kutch coast. "
    "Cyclones cause direct trauma deaths and massive post-disaster disease outbreaks.", body_style))

cyclone_data = [
    ["Phase", "Health Problem", "Response"],
    ["During cyclone", "Trauma, drowning, crush injuries", "Mass casualty management, field hospitals"],
    ["Immediately after", "Diarrhoea, cholera, typhoid outbreaks", "Water purification, ORS distribution, chlorination"],
    ["Post-disaster", "Malaria, dengue surge (stagnant water)", "Vector control, indoor spraying"],
    ["Long-term", "Mental health (PTSD, grief, depression)", "Psychosocial support teams"],
    ["All phases", "Disruption of cold chain, vaccine stock loss", "Emergency cold chain restoration"],
]
story.append(tbl(cyclone_data, [3.5*cm, 5.5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("4.2 Saltwater Intrusion and Fluorosis", h2_style))
story.append(Paragraph(
    "In coastal Gujarat - especially Kutch and parts of Saurashtra - seawater intrusion "
    "into groundwater causes high salinity and <b>elevated fluoride levels</b>. This leads to:", body_style))
fluorosis_bullets = [
    "<b>Dental fluorosis</b> - mottled/pitted teeth in children (cosmetic + functional damage)",
    "<b>Skeletal fluorosis</b> - joint pain, stiffness, crippling deformities in adults",
    "<b>Endemic fluorosis</b> belts: Kutch, parts of Mehsana, Patan, Banaskantha",
    "Prevention: alternative water sources, defluoridation plants, Nalgonda technique",
]
for b in fluorosis_bullets:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("4.3 Tsunami Risk (Low but Real)", h2_style))
story.append(Paragraph(
    "Gujarat coast (particularly Kutch region) has experienced historical tsunamis. "
    "The <b>2004 Indian Ocean Tsunami</b> had limited impact on Gujarat. However, "
    "the <b>Makran Subduction Zone</b> off the coast of Pakistan/Iran poses a future risk. "
    "The <b>Indian Tsunami Early Warning System (ITEWS)</b> at INCOIS, Hyderabad monitors this.", body_style))
story.append(Spacer(1, 0.2*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 5: PUBLIC HEALTH CHALLENGES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("5. Key Public Health Challenges in Coastal Gujarat", h1_style))

challenges_data = [
    ["Challenge", "Details", "Solution/Programme"],
    ["Access to healthcare", "Remote fishing villages, islands (Diu, Bet Dwarka), no all-weather roads", "Mobile health units, boat ambulances, telemedicine"],
    ["Migrant worker health", "Alang workers, seasonal fishermen - no address, no BPL card, no Aadhar linkage", "Outreach camps, ESI extension, Ayushman Bharat"],
    ["Safe drinking water", "Salinity, fluoride, contamination of coastal groundwater", "Piped water supply, Nal se Jal scheme, RO plants"],
    ["Sanitation", "Open defecation on beaches, lack of toilets in fishing hamlets", "SBM (Swachh Bharat Mission) focus on coastal villages"],
    ["Cold chain for immunization", "Power cuts in remote coastal areas, storm damage", "Solar-powered cold chain, backup equipment"],
    ["Occupational health gaps", "No routine health checkups for fishermen/salt workers", "Occupational health clinics, Factory Act enforcement"],
    ["Substance abuse", "High alcohol use in fishing community, drug trafficking via sea routes", "De-addiction centres, awareness programs"],
    ["Maternal health", "Women left alone during husband's sea trips, delivery complications", "JSSK, JSY, ASHA support, 24x7 PHC deliveries"],
    ["Disaster preparedness", "Cyclone-prone coast, need for pre-positioned supplies", "NDRF, SDRF, pre-stocked health warehouses"],
    ["Environmental pollution", "Alang waste, industrial effluents from Jamnagar/Bharuch", "GPCB monitoring, green ship recycling norms"],
]
story.append(tbl(challenges_data, [4*cm, 6*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 6: BHAVNAGAR-SPECIFIC โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("6. Bhavnagar District - Specific Health Profile", h1_style))
story.append(Paragraph(
    "Since you are from Bhavnagar and have worked in Botad (adjacent district), "
    "be ready for district-specific questions.", body_style))
story.append(Spacer(1, 0.1*cm))

bvn_data = [
    ["Parameter", "Details"],
    ["Location", "Saurashtra region, southern coast of Gujarat on Gulf of Khambhat"],
    ["Key coastal feature", "Alang Ship-Breaking Yard (world's largest)"],
    ["Major health facility", "Sir T. General Hospital, Narendra Modi Medical College"],
    ["Key health challenges", "Ship-breaking occupational hazards, coastal flooding, vector-borne diseases"],
    ["Tribal population", "Limited but some Koli fishing communities along coast"],
    ["Nearby Botad district", "Inland but linked - agricultural district, PHC network, less coastal issues"],
    ["Key industries", "Ship-breaking, textiles, chemical industries"],
    ["Health department", "Under CDHO Bhavnagar, District Hospital at Bhavnagar city"],
]
story.append(tbl(bvn_data, [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 7: GOVERNMENT PROGRAMMES FOR COASTAL HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("7. Government Programmes Relevant to Coastal Health", h1_style))

prog_data = [
    ["Programme", "Relevance to Coastal Health"],
    ["National Fishermen Health Insurance Scheme", "Insurance cover for fishermen during sea accidents (โ‚น5 lakh)"],
    ["Pradhan Mantri Matsya Sampada Yojana (PMMSY)", "Fisheries development, income improvement for fishing community"],
    ["Ayushman Bharat - PM-JAY", "Health insurance for below-poverty-line coastal workers"],
    ["ESI Act & ESIC", "For organized workers in Alang, ports, Jamnagar industries"],
    ["Swachh Bharat Mission (Coastal component)", "ODF villages, beach sanitation, plastic waste management"],
    ["Jal Jeevan Mission (Nal se Jal)", "Piped drinking water to coastal villages - prevents water-borne diseases"],
    ["National Cyclone Risk Mitigation Project (NCRMP)", "Cyclone shelters, early warning, coastal road connectivity"],
    ["NVBDCP", "National Vector Borne Disease Control - malaria/dengue/filaria in coastal areas"],
    ["National Programme for Control of Blindness (NPCB)", "Eye camps for fishermen (UV-related cataracts, conjunctivitis)"],
    ["Sagar Parikrama", "Govt of India initiative for fishermen welfare - outreach on sea"],
]
story.append(tbl(prog_data, [6.5*cm, 10*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 8: LIKELY INTERVIEW Q&A โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("8. Likely Interview Questions & Ideal Answers", h1_style))

qas = [
    ("Q1. Gujarat has the longest coastline in India. What are the major public health challenges in coastal areas?",
     "Key challenges: vector-borne diseases (malaria, dengue), water-borne diseases (cholera, hepatitis A/E), "
     "occupational hazards (fishermen, Alang ship-breaking workers - asbestos, heavy metals, trauma), "
     "fluorosis from saline groundwater, cyclone-related disease outbreaks, and poor healthcare access in "
     "remote fishing hamlets. Mental health issues like depression, alcoholism in fishing communities are also significant."),
    ("Q2. What is Alang? What are the health hazards there?",
     "Alang near Bhavnagar is the world's largest ship-breaking yard. Major hazards: asbestos (causes mesothelioma, "
     "asbestosis), heavy metal poisoning (lead, mercury, cadmium), PCBs, traumatic injuries, noise-induced "
     "hearing loss, and heat stress. Workers are mostly migrants with poor ESI coverage and no regular health "
     "checkups. Supreme Court ordered strict regulation in 2007."),
    ("Q3. What diseases are common in fishermen?",
     "Skin diseases (fungal - prolonged saltwater exposure), musculoskeletal disorders, decompression sickness "
     "(in divers), drowning/trauma, mental health issues (depression, alcoholism), hypertension (high salt diet), "
     "waterborne diseases, and UV-related eye problems (pterygium, cataract)."),
    ("Q4. What is fluorosis? Which areas of Gujarat are affected?",
     "Fluorosis is a disease caused by excess fluoride intake. Dental fluorosis causes mottled teeth; skeletal "
     "fluorosis causes joint pain and deformities. High-fluoride groundwater is found in Kutch, Mehsana, Patan, "
     "Banaskantha. Prevention: alternate water sources, Nalgonda technique for defluoridation, Jal Jeevan Mission."),
    ("Q5. What is Cyclone Biparjoy? What was its health impact on Gujarat?",
     "Cyclone Biparjoy (June 2023) was a very severe cyclonic storm that made landfall near Jakhau port in Kutch. "
     "Gujarat evacuated ~1 lakh people. Health impacts: trauma injuries, displacement, risk of post-cyclone "
     "diarrhoea/cholera, disruption of cold chain. Government response: pre-positioning of medicines, NDRF teams, "
     "field hospitals, post-disaster disease surveillance."),
    ("Q6. As an MO posted in a coastal PHC, what will your priorities be?",
     "Priorities: (1) Ensure malaria/dengue surveillance and vector control, (2) Safe drinking water and ORS "
     "availability, (3) Immunization outreach to fishing hamlets, (4) Occupational health camps for fishermen "
     "and Alang workers, (5) Cyclone preparedness - stock of medicines and emergency equipment, "
     "(6) Mental health awareness and de-addiction support, (7) Coordinating with ESIC for worker health coverage."),
]

for q, a in qas:
    story.append(Paragraph(f"<b>{q}</b>", h3_style))
    story.append(Paragraph(f"โœ” {a}", highlight_style))
    story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ QUICK MEMORY BOX โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("9. Quick Memory Points for the Interview", h1_style))

mem = [
    "Gujarat coastline = ~1,600 km = LONGEST in India",
    "Alang, Bhavnagar = World's LARGEST ship-breaking yard โ†’ asbestos + heavy metal hazards",
    "Cyclone Biparjoy (2023) hit Kutch coast - remember for disaster health questions",
    "Coastal groundwater โ†’ fluoride + salinity โ†’ fluorosis in Kutch, Saurashtra",
    "Fishermen โ†’ skin disease, musculoskeletal, decompression sickness, alcoholism",
    "Salt pan workers โ†’ heat stroke, UV eye damage, skin burns",
    "Vector-borne: Malaria (P.vivax) + Dengue dominant in coastal Gujarat",
    "Water-borne: Cholera, Hep A/E, Leptospirosis (post-flood)",
    "Programme: PMMSY for fisheries + Ayushman Bharat + ESI for workers + NCRMP for cyclones",
    "Bhavnagar = Alang + Sir T. Hospital + Narendra Modi Medical College",
]
for m in mem:
    story.append(Paragraph(f"โžค {m}", bullet_style))

# โ”€โ”€ FOOTER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#0d4f6e')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Quick Revision Guide - GPSC Class 1-2 Interview | Gujarat Coastal Health | July 2026 | "
    "Verify latest data from MoHFW, GPCB, NHM Gujarat official sources.",
    note_style))

doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_coastal_health_pdf.py

Your PDF is ready! Download here:

Gujarat Coastal Health Challenges

PDF Document ยท PDF


๐Ÿ“„ What's inside (5 pages, fully tabulated):

SectionContent
1. Gujarat Coastline Facts1,600 km, key coastal districts, major ports
2. Disease BurdenVector-borne, water-borne, occupational diseases, NCDs, mental health - all with tables
3. Alang Ship-BreakingAsbestos, heavy metals, trauma - special focus since you're from Bhavnagar
4. Climate & DisastersCyclones (Biparjoy 2023), fluorosis, tsunami risk
5. Public Health ChallengesAccess, migrants, water, sanitation, cold chain - with solutions
6. Bhavnagar SpecificYour district's health profile - likely to be asked
7. Government ProgrammesPMMSY, Ayushman, ESI, NCRMP, Jal Jeevan Mission
8. Interview Q&A6 likely questions with model answers
9. Quick Memory Points10 bullet points to remember on interview day

Now back to the interview! You still haven't answered Q6. Go ahead:

Q6.

"Gujarat has the longest coastline in India - about 1,600 km. You are from Bhavnagar, which has Alang - the world's largest ship-breaking yard. What are the specific public health challenges and disease burdens associated with coastal areas like Bhavnagar?"

this pdf have mixed lines overlaping lines can u correct it

The overlapping lines are caused by table cells with long text and fixed column widths. Let me fix this by enabling word wrap, increasing row padding, and adjusting column widths throughout.
Reading File
The root cause is clear - plain strings in table cells don't auto-wrap in ReportLab. The fix is to wrap every cell's text in a Paragraph object so text wraps properly. Let me rewrite the script with this fix applied throughout.
Writing File

~/gpsc-interview/generate_coastal_health_pdf_v2.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/Gujarat_Coastal_Health_Challenges.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_style = ParagraphStyle('TitleC', parent=styles['Title'],
    fontSize=20, textColor=colors.HexColor('#0d4f6e'), spaceAfter=6, alignment=TA_CENTER)
subtitle_style = ParagraphStyle('SubC', parent=styles['Normal'],
    fontSize=11, textColor=colors.HexColor('#1a7a9e'), spaceAfter=10, alignment=TA_CENTER)
h1_style = ParagraphStyle('H1C', parent=styles['Heading1'],
    fontSize=13, textColor=colors.white, backColor=colors.HexColor('#0d4f6e'),
    spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_style = ParagraphStyle('H2C', parent=styles['Heading2'],
    fontSize=11, textColor=colors.HexColor('#0d4f6e'), spaceAfter=4, spaceBefore=8)
h3_style = ParagraphStyle('H3C', parent=styles['Heading3'],
    fontSize=10.5, textColor=colors.HexColor('#c0392b'), spaceAfter=3, spaceBefore=5)
body_style = ParagraphStyle('BodyC', parent=styles['Normal'],
    fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_style = ParagraphStyle('BulletC', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=15, spaceAfter=3)
note_style = ParagraphStyle('NoteC', parent=styles['Normal'],
    fontSize=9, textColor=colors.HexColor('#7f8c8d'), leftIndent=10,
    spaceAfter=4, fontName='Helvetica-Oblique')
highlight_style = ParagraphStyle('HLC', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=10, spaceAfter=4,
    backColor=colors.HexColor('#e8f6fd'), borderPad=4)

# Cell styles for table paragraphs
cell_style = ParagraphStyle('CellC', parent=styles['Normal'],
    fontSize=8.5, leading=13, spaceAfter=0, spaceBefore=0)
cell_bold = ParagraphStyle('CellBoldC', parent=styles['Normal'],
    fontSize=8.5, leading=13, fontName='Helvetica-Bold',
    textColor=colors.white, spaceAfter=0, spaceBefore=0)

def P(text, style=None):
    """Wrap text in Paragraph for proper word-wrap in table cells."""
    if style is None:
        style = cell_style
    return Paragraph(str(text), style)

def make_table(data, col_widths, header_color='#0d4f6e'):
    """Build a table where every cell is a Paragraph (auto word-wrap)."""
    wrapped = []
    for r_idx, row in enumerate(data):
        new_row = []
        for cell in row:
            if r_idx == 0:
                new_row.append(P(str(cell), cell_bold))
            else:
                new_row.append(P(str(cell), cell_style))
        wrapped.append(new_row)

    t = Table(wrapped, colWidths=col_widths, repeatRows=1)
    t.setStyle(TableStyle([
        ('BACKGROUND',   (0, 0), (-1, 0),  colors.HexColor(header_color)),
        ('ROWBACKGROUNDS',(0, 1), (-1, -1), [colors.HexColor('#e8f6fd'), colors.white]),
        ('GRID',         (0, 0), (-1, -1),  0.5, colors.HexColor('#aaaaaa')),
        ('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),  'TOP'),
    ]))
    return t

story = []

# โ”€โ”€ COVER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 1*cm))
story.append(Paragraph("Gujarat's Coastline: Diseases &", title_style))
story.append(Paragraph("Public Health Challenges", title_style))
story.append(Paragraph("Quick Revision Guide for GPSC Class 1-2 Interview", subtitle_style))
story.append(Paragraph("Medical Officer / Insurance MO / Tutor  |  July 2026", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#0d4f6e')))
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€ SECTION 1 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("1. Gujarat Coastline - Key Facts", h1_style))
story.append(Paragraph(
    "Gujarat has the <b>longest coastline of any Indian state</b>, stretching approximately "
    "<b>1,600 km</b> (some estimates up to 1,663 km). It covers the districts of Kutch, "
    "Jamnagar, Devbhoomi Dwarka, Porbandar, Junagadh, Gir Somnath, Amreli, Bhavnagar, "
    "Anand, Bharuch, Surat, and Navsari. This vast coastline creates unique public health "
    "challenges due to geography, occupational patterns, climate, and socioeconomic factors.", body_style))
story.append(Spacer(1, 0.2*cm))

story.append(make_table([
    ["Parameter", "Details"],
    ["Coastline length", "~1,600 km (longest in India)"],
    ["Major coastal districts", "Kutch, Jamnagar, Dwarka, Porbandar, Junagadh, Gir Somnath, Amreli, Bhavnagar, Bharuch, Surat"],
    ["Major ports", "Mundra (largest private), Kandla/Deendayal (largest govt), Hazira, Pipavav, Magdalla"],
    ["Coastal population", "~30% of Gujarat's population lives in coastal areas"],
    ["Key occupations", "Fishing, salt farming, port/shipping industry, petrochemicals"],
    ["Bhavnagar coastline", "~175 km - includes Alang (world's largest ship-breaking yard)"],
], [5.5*cm, 11*cm]))
story.append(Spacer(1, 0.4*cm))

# โ”€โ”€ SECTION 2 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("2. Disease Burden in Coastal Areas of Gujarat", h1_style))

story.append(Paragraph("2.1 Vector-Borne Diseases", h2_style))
story.append(Paragraph(
    "Coastal and marshy environments create ideal breeding grounds for mosquitoes. "
    "Gujarat coastal areas - especially Saurashtra and Kutch - have historically high "
    "burden of vector-borne diseases.", body_style))

story.append(make_table([
    ["Disease", "Vector", "Coastal Risk Factor", "Key Districts"],
    ["Malaria (P. vivax dominant)", "Anopheles mosquito",
     "Stagnant water near creeks, mangroves, fishing harbours",
     "Kutch, Jamnagar, Bharuch, Surat"],
    ["Dengue", "Aedes aegypti",
     "Water storage in coastal homes, containers",
     "Surat, Bharuch, Bhavnagar"],
    ["Chikungunya", "Aedes mosquito",
     "Same as dengue",
     "Surat, Bharuch, South Gujarat coast"],
    ["Lymphatic Filariasis", "Culex mosquito",
     "Dirty water, poor sanitation in fishing villages",
     "Surat, Bharuch, Navsari"],
    ["Japanese Encephalitis", "Culex mosquito",
     "Paddy fields combined with coastal wetlands",
     "South Gujarat coastal belt"],
], [4*cm, 3.5*cm, 5*cm, 4*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.2 Water-Borne & Food-Borne Diseases", h2_style))
story.append(make_table([
    ["Disease", "Source / Route", "Coastal-Specific Risk"],
    ["Cholera", "Contaminated water / seafood",
     "Port areas, fishing harbours - high population density, poor sanitation"],
    ["Typhoid", "Contaminated water / food",
     "Poor piped water supply in rural coastal villages"],
    ["Hepatitis A & E", "Contaminated water, raw shellfish",
     "Raw seafood consumption common in fishing communities"],
    ["Diarrhoeal diseases", "Contaminated water, poor sanitation",
     "Seasonal flooding during monsoon along coast"],
    ["Leptospirosis", "Floodwater / rat urine",
     "Monsoon flooding in coastal areas, wading in contaminated water"],
    ["Vibrio infections", "Raw / undercooked seafood",
     "Fishing communities eating raw fish, oysters, crabs"],
], [3.5*cm, 4.5*cm, 8.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.3 Occupational Diseases", h2_style))
story.append(make_table([
    ["Occupation", "Disease / Problem", "Mechanism"],
    ["Fishermen", "Skin disorders (fungal, bacterial)",
     "Prolonged saltwater and wet exposure"],
    ["Fishermen", "Musculoskeletal disorders",
     "Heavy lifting, awkward postures on boats"],
    ["Fishermen", "Drowning / trauma",
     "Sea accidents, storms, capsizing"],
    ["Fishermen (divers)", "Decompression sickness",
     "Rapid ascent - nitrogen bubble formation in blood"],
    ["Salt pan workers", "Skin burns, eye damage",
     "UV radiation, direct salt irritation"],
    ["Salt pan workers", "Heat exhaustion / heat stroke",
     "Prolonged sun exposure in white reflective salt flats"],
    ["Salt pan workers", "Malnutrition / anaemia",
     "Seasonal work, low income, poor diet quality"],
    ["Ship-breaking (Alang)", "Asbestos-related diseases (mesothelioma, asbestosis)",
     "Asbestos insulation present in old ships"],
    ["Ship-breaking (Alang)", "Heavy metal poisoning (Pb, Hg, Cd)",
     "Burning and cutting old ship materials and paints"],
    ["Ship-breaking (Alang)", "Traumatic injuries, burns",
     "Accidents during hull dismantling, fire, explosions"],
    ["Ship-breaking (Alang)", "Respiratory diseases (silicosis, COPD)",
     "Metal dust, paint fumes, confined spaces"],
    ["Petrochemical workers", "Chemical poisoning, skin/eye diseases",
     "Industrial chemical exposure in Jamnagar, Bharuch"],
    ["Port / dock workers", "Noise-induced hearing loss",
     "Heavy machinery, ship engines, cranes"],
], [4*cm, 4.5*cm, 8*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

story.append(Paragraph("2.4 Nutritional & Non-Communicable Diseases", h2_style))
story.append(make_table([
    ["Condition", "Coastal Risk Factor", "Affected Group"],
    ["Fluorosis (dental & skeletal)",
     "High fluoride in groundwater due to saltwater intrusion into coastal aquifers",
     "Children, adults in Kutch, Saurashtra"],
    ["Iodine deficiency disorders",
     "Poor diet diversity despite coastal location; iodised salt use varies",
     "Women and children in fishing communities"],
    ["Hypertension",
     "High salt diet (fish preservation, pickles), stress, sedentary lifestyle",
     "Adult fishermen and families"],
    ["Cardiovascular diseases",
     "High dietary saturated fat, smoking, alcohol use common in fishing community",
     "Adult male fishermen"],
    ["Skin cancers (basal cell, squamous cell)",
     "High UV exposure, no sun protection among outdoor workers",
     "Salt pan workers, fishermen"],
    ["Diabetes",
     "Changing diet patterns, urbanisation of coastal towns",
     "Urban coastal populations"],
    ["Anaemia",
     "Poor diet, heavy menstrual loss, parasitic infections",
     "Women in fishing communities"],
], [4*cm, 6.5*cm, 5.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.5 Mental Health & Social Issues", h2_style))
for b in [
    "High rates of <b>depression and anxiety</b> among fishermen - income uncertainty, sea accidents, isolation",
    "<b>Alcohol dependence</b> is significantly higher in male fishing communities",
    "<b>Domestic violence</b> linked to alcoholism and financial stress in fishing households",
    "<b>Suicide risk</b> higher among debt-ridden fishermen (similar to farmer suicides in other states)",
    "<b>Child labour</b> - children pulled out of school to assist in fishing and net-mending",
    "<b>Poor maternal health</b> - wives left alone without support when husbands are at sea for weeks",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 3 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("3. Alang Ship-Breaking Yard - Special Focus (Bhavnagar)", h1_style))
story.append(Paragraph(
    "Alang (near Bhavnagar) is the <b>world's largest ship-breaking yard</b>, handling ~50% of "
    "global ship dismantling. It employs ~30,000-50,000 workers, mostly migrant labour from "
    "UP, Bihar, Odisha. It is a major occupational health concern - especially relevant since "
    "you are from Bhavnagar.", body_style))
story.append(Spacer(1, 0.1*cm))

story.append(make_table([
    ["Health Hazard", "Details"],
    ["Asbestos exposure",
     "Old ships contain asbestos insulation. Causes mesothelioma, asbestosis, lung cancer. "
     "Latency period is 20-40 years, so disease appears long after exposure."],
    ["Heavy metals (Pb, Hg, Cd, Cr)",
     "Found in paints, batteries, pipes. Cause neurological damage, renal failure, carcinogenesis."],
    ["PCBs / Persistent Organic Pollutants",
     "Polychlorinated biphenyls from electrical transformers. Carcinogenic, endocrine disruptors."],
    ["Traumatic injuries",
     "Falls from height, crush injuries, fire, explosions. Major cause of death at Alang."],
    ["Noise-induced hearing loss",
     "Continuous exposure to cutting tools, grinders, steel impacts."],
    ["Heat stress",
     "Working in confined ship spaces in Gujarat's intense summer heat."],
    ["Lack of PPE",
     "Most workers lack protective equipment. Poor enforcement by labour inspectors."],
    ["Migrant worker vulnerability",
     "No ESI coverage, no regular health checkups, language barrier, no fixed address."],
    ["Environmental pollution",
     "Oil spills and heavy metal runoff into sea affects marine life and local fishermen."],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Key Legal Point:", h3_style))
story.append(Paragraph(
    "Supreme Court (2007 - Research Foundation for Science v. Union of India) ordered strict "
    "regulation of hazardous waste imports at Alang. Workers should be covered under ESI Act "
    "and Factories Act. Gujarat Pollution Control Board (GPCB) monitors the site.", highlight_style))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 4 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("4. Climate, Disasters & Coastal Health", h1_style))

story.append(Paragraph("4.1 Cyclones and Health Impact", h2_style))
story.append(Paragraph(
    "Gujarat's coast is highly vulnerable to cyclones from the Arabian Sea. Key events: "
    "<b>Kandla cyclone (1998)</b>, <b>Cyclone Vayu (2019)</b>, <b>Cyclone Biparjoy (June 2023)</b> - "
    "landfall near Jakhau port, Kutch. Gujarat evacuated ~1 lakh people. "
    "Cyclones cause direct deaths and massive post-disaster disease outbreaks.", body_style))

story.append(make_table([
    ["Phase", "Health Problem", "Response"],
    ["During cyclone",
     "Trauma, drowning, crush injuries, hypothermia",
     "Mass casualty management, field hospitals, NDRF teams"],
    ["Immediately after (0-2 weeks)",
     "Diarrhoea, cholera, typhoid outbreaks from contaminated water",
     "Water purification tablets, ORS distribution, chlorination of wells"],
    ["2-6 weeks after",
     "Malaria, dengue surge due to stagnant water accumulation",
     "Vector control operations, indoor residual spraying"],
    ["Long-term",
     "PTSD, grief, depression, anxiety in survivors",
     "Psychosocial support teams, mental health counselling"],
    ["All phases",
     "Cold chain disruption, vaccine stock loss, supply chain breakdown",
     "Emergency cold chain restoration, pre-positioned medical stores"],
], [3.5*cm, 5.5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("4.2 Saltwater Intrusion and Fluorosis", h2_style))
story.append(Paragraph(
    "In coastal Gujarat - especially Kutch and Saurashtra - seawater intrusion "
    "into groundwater causes high salinity and <b>elevated fluoride levels</b>.", body_style))
for b in [
    "<b>Dental fluorosis</b> - mottled/pitted/chalky teeth in children (cosmetic + functional damage)",
    "<b>Skeletal fluorosis</b> - joint pain, stiffness, crippling deformities in adults",
    "<b>Endemic fluorosis belts</b>: Kutch, parts of Mehsana, Patan, Banaskantha",
    "<b>Prevention</b>: alternate water sources, defluoridation plants, Nalgonda technique, Jal Jeevan Mission",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_style))
story.append(Spacer(1, 0.2*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 5 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("5. Key Public Health Challenges in Coastal Gujarat", h1_style))

story.append(make_table([
    ["Challenge", "Details", "Solution / Programme"],
    ["Access to healthcare",
     "Remote fishing villages, islands (Diu, Bet Dwarka), no all-weather roads",
     "Mobile health units, boat ambulances, telemedicine"],
    ["Migrant worker health",
     "Alang workers, seasonal fishermen - no fixed address, no BPL card, Aadhaar not linked",
     "Outreach camps, ESI extension, Ayushman Bharat"],
    ["Safe drinking water",
     "Salinity, fluoride, contamination of coastal groundwater sources",
     "Piped water supply, Nal se Jal scheme, RO defluoridation plants"],
    ["Sanitation",
     "Open defecation on beaches, lack of toilets in fishing hamlets",
     "Swachh Bharat Mission focus on coastal villages"],
    ["Cold chain maintenance",
     "Power cuts in remote coastal areas, storm and cyclone damage",
     "Solar-powered cold chain equipment, backup generators"],
    ["Occupational health gaps",
     "No routine checkups for fishermen, salt workers, or Alang labourers",
     "Occupational health clinics, Factories Act enforcement, ESI"],
    ["Substance abuse",
     "High alcohol use in fishing community; drug trafficking via sea routes",
     "De-addiction centres, community awareness, DAPCU"],
    ["Maternal health",
     "Women left alone during husband's sea trips; delivery complications without support",
     "JSSK, JSY incentives, ASHA support, 24x7 PHC delivery services"],
    ["Disaster preparedness",
     "Cyclone-prone coast, need for pre-positioned emergency supplies",
     "NDRF, SDRF teams, pre-stocked health warehouses, NCRMP"],
    ["Environmental pollution",
     "Alang ship-breaking waste, industrial effluents from Jamnagar and Bharuch",
     "GPCB monitoring, green ship recycling norms, EIA compliance"],
], [4*cm, 5.5*cm, 7*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 6 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("6. Bhavnagar District - Health Profile", h1_style))
story.append(make_table([
    ["Parameter", "Details"],
    ["Location", "Saurashtra region, southern coast of Gujarat on the Gulf of Khambhat"],
    ["Key coastal feature", "Alang Ship-Breaking Yard - world's largest"],
    ["Medical college", "Narendra Modi Medical College & Sir T. General Hospital, Bhavnagar"],
    ["Key health challenges",
     "Occupational hazards at Alang, coastal vector-borne diseases, monsoon flooding, "
     "migrant worker health"],
    ["Fishing communities", "Koli fishing communities along the Bhavnagar coastline"],
    ["Botad district (adjacent)",
     "Inland agricultural district; PHC-based rural health challenges, less coastal disease burden"],
    ["Key industries", "Ship-breaking (Alang), textiles, chemical processing"],
    ["Reporting structure", "CDHO Bhavnagar -> DHO -> State Health Dept (NHM Gujarat)"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 7 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("7. Government Programmes Relevant to Coastal Health", h1_style))

story.append(make_table([
    ["Programme", "Relevance to Coastal Health"],
    ["National Fishermen Health Insurance Scheme",
     "Insurance cover for fishermen for sea accidents and medical expenses (up to Rs 5 lakh)"],
    ["Pradhan Mantri Matsya Sampada Yojana (PMMSY)",
     "Fisheries sector development, income support, and welfare for fishing communities"],
    ["Ayushman Bharat - PM-JAY",
     "Health insurance for below-poverty-line coastal workers and their families"],
    ["ESI Act & ESIC",
     "Social security for organised workers in Alang, ports, Jamnagar, and Bharuch industries"],
    ["Swachh Bharat Mission (coastal)",
     "ODF coastal villages, beach sanitation, plastic waste management from fishing"],
    ["Jal Jeevan Mission (Nal se Jal)",
     "Piped drinking water to coastal villages - prevents water-borne and fluorosis diseases"],
    ["National Cyclone Risk Mitigation Project (NCRMP)",
     "Cyclone shelters, early warning systems, coastal road connectivity for evacuation"],
    ["NVBDCP",
     "National Vector Borne Disease Control - malaria, dengue, filaria programmes in coastal areas"],
    ["Sagar Parikrama (Govt of India)",
     "Outreach initiative for fishermen welfare - direct interaction and service delivery at sea"],
], [6*cm, 10.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 8 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("8. Likely Interview Questions & Ideal Answers", h1_style))

qas = [
    ("Q1. Gujarat has the longest coastline in India. What are the major public health challenges?",
     "Key challenges: vector-borne diseases (malaria, dengue), water-borne diseases (cholera, hepatitis A/E, "
     "leptospirosis), occupational hazards (fishermen - skin diseases, musculoskeletal, drowning; Alang workers - "
     "asbestos, heavy metals, trauma), fluorosis from saline groundwater, cyclone-related outbreaks, "
     "poor healthcare access in remote fishing hamlets, and mental health issues like depression and alcoholism "
     "in fishing communities."),
    ("Q2. What is Alang? What are the health hazards there?",
     "Alang near Bhavnagar is the world's largest ship-breaking yard. Major hazards: asbestos (causes "
     "mesothelioma, asbestosis, lung cancer - latency 20-40 years), heavy metal poisoning (lead, mercury, "
     "cadmium), PCBs, traumatic injuries, noise-induced hearing loss, and heat stress. Workers are mostly "
     "migrants with poor ESI coverage. Supreme Court ordered strict regulation in 2007."),
    ("Q3. What diseases are common among fishermen?",
     "Skin diseases (fungal infections from prolonged saltwater exposure), musculoskeletal disorders, "
     "decompression sickness in deep-sea divers, drowning and traumatic injuries, mental health issues "
     "(depression, alcoholism), hypertension from high salt diet, UV-related eye problems "
     "(pterygium, premature cataract), and waterborne diseases."),
    ("Q4. What is fluorosis? Which areas of Gujarat are affected?",
     "Fluorosis is caused by excess fluoride intake. Dental fluorosis causes mottled, pitted teeth; "
     "skeletal fluorosis causes joint pain and deformities. High-fluoride groundwater is found in Kutch, "
     "Mehsana, Patan, Banaskantha due to geological factors and saltwater intrusion. "
     "Prevention: alternate water sources, Nalgonda defluoridation technique, Jal Jeevan Mission piped water."),
    ("Q5. What was Cyclone Biparjoy? What was its health impact on Gujarat?",
     "Cyclone Biparjoy (June 2023) was a very severe cyclonic storm that made landfall near Jakhau port, "
     "Kutch. ~1 lakh people were evacuated. Health impacts: trauma, displacement, risk of post-cyclone "
     "diarrhoea and cholera outbreaks, cold chain disruption affecting vaccine stocks. Government response "
     "included NDRF deployment, pre-positioned medicines, field hospitals, and post-disaster disease "
     "surveillance activation."),
    ("Q6. As an MO posted in a coastal PHC, what will be your priorities?",
     "(1) Malaria and dengue surveillance with active vector control, (2) Safe drinking water availability "
     "and ORS stockpiling, (3) Immunization outreach to fishing hamlets and remote coastal villages, "
     "(4) Occupational health camps for fishermen and Alang workers, (5) Cyclone disaster preparedness - "
     "emergency drug stock and evacuation plan, (6) Mental health awareness and de-addiction support, "
     "(7) Coordinating with ESIC for worker health coverage, (8) HMIS reporting and disease surveillance."),
]

for q, a in qas:
    story.append(Paragraph(f"<b>{q}</b>", h3_style))
    story.append(Paragraph(f"โœ” {a}", highlight_style))
    story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 9 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("9. Quick Memory Points for the Interview", h1_style))

for m in [
    "Gujarat coastline = ~1,600 km = LONGEST in India",
    "Alang, Bhavnagar = World's LARGEST ship-breaking yard โ†’ asbestos + heavy metal hazards",
    "Cyclone Biparjoy (June 2023) hit Kutch coast - remember for disaster health questions",
    "Coastal groundwater โ†’ fluoride + salinity โ†’ fluorosis in Kutch, Saurashtra",
    "Fishermen โ†’ skin disease, musculoskeletal, decompression sickness, alcoholism, depression",
    "Salt pan workers โ†’ heat stroke, UV eye damage, skin burns, anaemia",
    "Vector-borne dominant: Malaria (P. vivax) + Dengue in coastal Gujarat",
    "Water-borne: Cholera, Hep A/E, Leptospirosis (post-flood/monsoon)",
    "Key programmes: PMMSY (fisheries) + Ayushman Bharat + ESI (workers) + NCRMP (cyclones) + Jal Jeevan Mission",
    "Bhavnagar = Alang + Sir T. Hospital + Narendra Modi Medical College + Gulf of Khambhat coast",
]:
    story.append(Paragraph(f"โžค {m}", bullet_style))

# โ”€โ”€ FOOTER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#0d4f6e')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Quick Revision Guide - GPSC Class 1-2 Interview | Gujarat Coastal Health | July 2026 | "
    "Verify latest data from MoHFW, GPCB, NHM Gujarat official sources.",
    note_style))

doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_coastal_health_pdf_v2.py

Fixed and regenerated! Download the corrected version:

Gujarat Coastal Health Challenges

PDF Document ยท PDF

What was fixed:
  • Every table cell now uses Paragraph objects - text wraps properly within cells instead of overflowing
  • Row heights now auto-expand to fit content
  • No more overlapping or cut-off lines
  • All 9 sections preserved with full content

Let me know if the formatting looks good now. Once confirmed, we can continue the interview from Q6 about Gujarat's coastline and Bhavnagar's health challenges!

continue interviw

๐ŸŽ™๏ธ GPSC Interview Panel - Resuming

Q6.

"You are from Bhavnagar. Bhavnagar has Alang - the world's largest ship-breaking yard. As a Medical Officer, what specific public health and occupational health challenges would you expect to deal with in Bhavnagar district? And what diseases are common among ship-breaking workers?"
(Answer as you would in front of the panel.)

dont know much sir

โœ… Your Answer Review

Honest assessment:
  • "Don't know much sir" is the worst possible answer for a question about YOUR OWN district
  • This will seriously hurt your score - the panel expects you to know Bhavnagar deeply since you live there
  • Even a partial, honest attempt is better than silence
  • You should NEVER say "I don't know" for local/district-level questions in a GPSC interview
What you should have said even with limited knowledge:
  • "Alang has heavy industry workers, so occupational hazards like injuries and dust-related lung diseases are common"
  • "Being coastal, malaria and dengue are concerns"
  • That alone would have been acceptable as a starting point

๐Ÿ’ก Ideal Answer

"Sir, Alang near Bhavnagar is the world's largest ship-breaking yard employing around 30,000-50,000 mostly migrant workers. The major occupational health hazards include asbestos exposure causing asbestosis and mesothelioma, heavy metal poisoning from lead and mercury in ship paints, traumatic injuries during dismantling, noise-induced hearing loss, and respiratory diseases from dust and paint fumes. Most workers are migrants with no ESI coverage and no regular health checkups, which makes early detection difficult. As an MO, I would prioritize regular occupational health camps at Alang, ensure ESI coverage for workers, and maintain disease surveillance for respiratory and occupational diseases."

โš ๏ธ Important Advice: Since you are from Bhavnagar and currently working at Narendra Modi Medical College there - the panel WILL ask about Alang, Sir T. Hospital, and local health issues. Please read Section 3 and 6 of the PDF I generated before your interview. This is high-risk territory for you.

Q7.

"What is the National Health Mission? What are its two sub-missions and what are the key components under it?"
(This is a very standard question for any MO interview - answer confidently.)

Create a mock interview Q&A document covering 20 likely GPSC Class 1-2 Medical Officer interview questions 2005 NRHM & 2013 Nuhm to improve health of people

ans for ques 2005 NRHM & 2013 Nuhm to improve health of people, goverment started various program imlementation under this programs,,,,,go ahead with interview give me review and ideal answer

โœ… Your Answer Review - Q7

What you got right:
  • Correct years - NRHM 2005 and NUHM 2013 โœ…
  • Correctly identified them as sub-missions โœ…
  • Mentioned government programmes under NHM โœ…
  • Shows basic awareness of the framework โœ…
What was missing:
  • NHM full form not stated - National Health Mission
  • Did not name the two sub-missions explicitly: NRHM (National Rural Health Mission) and NUHM (National Urban Health Mission)
  • Did not mention when they were merged into NHM - 2013
  • No specific programmes named - JSY, JSSK, RBSK, ASHA, RKS, VHSNC are all key components
  • Did not mention ASHA - the most iconic component of NRHM
  • No mention of Flexible Financing / Untied Funds which are unique features of NHM
  • Did not mention the objectives - reducing MMR, IMR, TFR targets

๐Ÿ’ก Ideal Answer

"Sir, National Health Mission was launched in 2013, merging two sub-missions. The first is NRHM - National Rural Health Mission, launched in 2005, focusing on strengthening rural healthcare infrastructure. The second is NUHM - National Urban Health Mission, launched in 2013, targeting urban slum populations. Key components of NHM include: ASHA (one per 1,000 population as community health worker), RKS (Rogi Kalyan Samiti - hospital management committees), VHSNC (Village Health Sanitation and Nutrition Committee), JSY (Janani Suraksha Yojana for institutional deliveries), JSSK (free delivery services), RBSK (Rashtriya Bal Swasthya Karyakram for child health screening), flexible pool funding, and mobile health units. The goal is to reduce MMR to below 100, IMR below 25, and TFR to 2.1."

Now generating your Mock Interview Q&A PDF simultaneously while we continue the interview!
Writing File

~/gpsc-interview/generate_mock_interview_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/GPSC_MO_Mock_Interview_20QA.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_style = ParagraphStyle('T', parent=styles['Title'],
    fontSize=20, textColor=colors.HexColor('#1a3c6e'), spaceAfter=6, alignment=TA_CENTER)
subtitle_style = ParagraphStyle('S', parent=styles['Normal'],
    fontSize=11, textColor=colors.HexColor('#2c5f8a'), spaceAfter=10, alignment=TA_CENTER)
h1_style = ParagraphStyle('H1', parent=styles['Heading1'],
    fontSize=13, textColor=colors.white, backColor=colors.HexColor('#1a3c6e'),
    spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_style = ParagraphStyle('H2', parent=styles['Heading2'],
    fontSize=11, textColor=colors.HexColor('#1a3c6e'), spaceAfter=4, spaceBefore=8)
q_style = ParagraphStyle('Q', parent=styles['Normal'],
    fontSize=11, textColor=colors.white, backColor=colors.HexColor('#1a3c6e'),
    leading=16, spaceAfter=0, spaceBefore=10, borderPad=6, fontName='Helvetica-Bold')
ideal_label = ParagraphStyle('IL', parent=styles['Normal'],
    fontSize=9.5, textColor=colors.HexColor('#27ae60'), fontName='Helvetica-Bold',
    spaceAfter=2, spaceBefore=4)
ideal_style = ParagraphStyle('IA', parent=styles['Normal'],
    fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY,
    leftIndent=10, backColor=colors.HexColor('#eafaf1'), borderPad=5)
tip_style = ParagraphStyle('TIP', parent=styles['Normal'],
    fontSize=9.5, leading=13, textColor=colors.HexColor('#c0392b'),
    leftIndent=10, spaceAfter=6, fontName='Helvetica-Oblique')
note_style = ParagraphStyle('N', parent=styles['Normal'],
    fontSize=9, textColor=colors.HexColor('#7f8c8d'), leftIndent=10,
    spaceAfter=4, fontName='Helvetica-Oblique')
body_style = ParagraphStyle('B', parent=styles['Normal'],
    fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_style = ParagraphStyle('BL', parent=styles['Normal'],
    fontSize=10, leading=14, leftIndent=15, spaceAfter=3)

def qa_block(num, category, question, ideal_answer, panel_tip=None):
    block = []
    block.append(Spacer(1, 0.15*cm))
    block.append(Paragraph(f"Q{num}. [{category}]  {question}", q_style))
    block.append(Paragraph("โœ” IDEAL ANSWER:", ideal_label))
    block.append(Paragraph(ideal_answer, ideal_style))
    if panel_tip:
        block.append(Paragraph(f"โšก Panel Tip: {panel_tip}", tip_style))
    return KeepTogether(block)

story = []

# COVER
story.append(Spacer(1, 1*cm))
story.append(Paragraph("GPSC Class 1-2 Mock Interview", title_style))
story.append(Paragraph("20 Most Likely Questions with Ideal Answers", subtitle_style))
story.append(Paragraph("Medical Officer / Tutor / Insurance Medical Officer", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a3c6e')))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
    "This document covers 20 high-probability GPSC interview questions across 6 categories. "
    "Each question includes an ideal model answer and a panel tip. Study these thoroughly "
    "and practice answering aloud in Gujarati or Hindi.", body_style))
story.append(Spacer(1, 0.2*cm))

# Category index
cat_data = [
    ["#", "Category", "Questions"],
    ["1", "Personal & Motivation", "Q1 - Q3"],
    ["2", "National Health Mission (NHM)", "Q4 - Q7"],
    ["3", "PHC / IPHS / Public Health", "Q8 - Q11"],
    ["4", "Insurance MO / ESI", "Q12 - Q14"],
    ["5", "Clinical / Medical Knowledge", "Q15 - Q17"],
    ["6", "Current Affairs & Gujarat", "Q18 - Q20"],
]
from reportlab.platypus import Table as RLTable
from reportlab.platypus import TableStyle as RLTableStyle

cell_s = ParagraphStyle('CS', parent=styles['Normal'], fontSize=9, leading=13)
cell_b = ParagraphStyle('CB', parent=styles['Normal'], fontSize=9, leading=13,
    fontName='Helvetica-Bold', textColor=colors.white)

def P(text, s): return Paragraph(str(text), s)

def make_tbl(data, widths):
    wrapped = [[P(c, cell_b if r==0 else cell_s) for c in row] for r, row in enumerate(data)]
    t = RLTable(wrapped, colWidths=widths, repeatRows=1)
    t.setStyle(RLTableStyle([
        ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3c6e')),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
        ('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#aaaaaa')),
        ('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), 'TOP'),
    ]))
    return t

story.append(make_tbl(cat_data, [1.5*cm, 7*cm, 4.5*cm]))
story.append(PageBreak())

# โ”€โ”€ CATEGORY 1: PERSONAL & MOTIVATION โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("Category 1: Personal & Motivation", h1_style))

story.append(qa_block(1, "Personal",
    "Please introduce yourself - your hometown, educational background, and motivation for choosing medicine.",
    "I am from Bhavnagar, Gujarat. I completed my MBBS from Narendra Modi Medical College in 2023. "
    "During my graduation I served as a COVID warrior, which gave me first-hand experience of public "
    "health crisis management. After graduation I completed my bond duty as Medical Officer at a PHC "
    "in Botad district, where I gained ground-level experience in rural health delivery, immunization, "
    "and national health programme implementation. I also organised blood donation camps during this "
    "period. Currently I am working as a Tutor in the Department of Community Medicine, where I teach "
    "undergraduate students and bridge theory with field experience. I chose medicine because I wanted "
    "to directly serve people, especially in rural and underserved areas, and a government posting allows "
    "me to do that at scale.",
    "Do NOT mention your name. Start with hometown. Keep it under 90 seconds. End on a service-oriented note."))

story.append(qa_block(2, "Motivation",
    "Why do you want to join government service when private practice can be more financially rewarding?",
    "Sir, government service offers an opportunity to impact not just individual patients but entire "
    "communities. At a PHC, one Medical Officer is responsible for the health of 30,000 people - that "
    "kind of reach is impossible in private practice. During my bond duty at Botad PHC I saw how a "
    "single dedicated MO can transform immunization rates, reduce maternal mortality, and control disease "
    "outbreaks in a village. My experience in Community Medicine has also reinforced my belief that "
    "preventive and promotive health - which is the backbone of government service - has far more "
    "long-term impact than curative care alone. Financial stability combined with the satisfaction of "
    "public service makes this my first choice.",
    "Panel respects honesty. Don't say only 'job security'. Show genuine service orientation."))

story.append(qa_block(3, "Self-assessment",
    "What is your biggest weakness as a doctor, and how are you working to improve it?",
    "Sir, one area I am actively working on is my depth of knowledge in occupational medicine, "
    "particularly relevant for Insurance MO duties. During my bond duty at PHC, my exposure was "
    "primarily to rural primary care. To address this gap, I have been studying the ESI Act, "
    "occupational disease classification, and disability assessment methods. I have also been "
    "attending CMEs and reading up on topics like asbestos-related diseases, which are directly "
    "relevant given Bhavnagar's Alang ship-breaking yard. I believe acknowledging a gap and working "
    "to fill it is more valuable than pretending to know everything.",
    "Never say 'I have no weakness.' Pick a genuine, non-critical weakness and show you are fixing it."))

story.append(PageBreak())

# โ”€โ”€ CATEGORY 2: NHM โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("Category 2: National Health Mission (NHM)", h1_style))

story.append(qa_block(4, "NHM",
    "What is the National Health Mission? What are its two sub-missions and key components?",
    "National Health Mission (NHM) was formed in 2013 by merging two sub-missions: "
    "(1) NRHM - National Rural Health Mission, launched in 2005, focusing on rural health "
    "infrastructure and services; and (2) NUHM - National Urban Health Mission, launched in 2013, "
    "targeting urban slum populations. Key components include: ASHA (Accredited Social Health "
    "Activist - 1 per 1,000 rural population), RKS (Rogi Kalyan Samiti - hospital management "
    "committees with untied funds), VHSNC (Village Health Sanitation & Nutrition Committee), "
    "flexible financing (untied funds to health facilities), mobile health units, and "
    "implementation of all major national health programmes. NHM targets include reducing MMR "
    "to below 100/lakh live births, IMR below 25/1,000 live births, and TFR to 2.1.",
    "This is a near-certain question. Know NRHM (2005) and NUHM (2013) years by heart."))

story.append(qa_block(5, "NHM - ASHA",
    "What is ASHA? What are her roles and what incentive does she receive?",
    "ASHA stands for Accredited Social Health Activist. She is a trained female community health "
    "worker selected from the village itself, one per 1,000 rural population (500 in tribal areas). "
    "Her roles include: mobilising community for health services, accompanying pregnant women for "
    "institutional delivery (JSY), promoting immunization, counselling on family planning, "
    "distributing ORS and iron-folic acid tablets, identifying sick newborns for referral, and "
    "maintaining village health records. She is not a salaried employee - she receives "
    "performance-based incentives. For example, Rs 600 for a rural JSY delivery, Rs 300 for "
    "urban. She also receives incentives for RNTCP, RBSK referrals, and other NHP activities. "
    "ASHA is the most visible human face of the NHM at the grassroots level.",
    "Know the difference: ASHA is incentive-based, not salaried. ANM is salaried government staff."))

story.append(qa_block(6, "NHM - JSY / JSSK",
    "What is Janani Suraksha Yojana (JSY)? How is it different from JSSK?",
    "JSY - Janani Suraksha Yojana - is a cash transfer scheme under NHM to promote institutional "
    "deliveries, especially among BPL women. A BPL mother in a rural area receives Rs 1,400 and "
    "the ASHA receives Rs 600 for facilitating the delivery. The scheme has significantly increased "
    "institutional delivery rates in India from around 40% in 2005 to over 88% by NFHS-5. "
    "JSSK - Janani Shishu Suraksha Karyakram - launched in 2011, is different: it provides FREE "
    "services (not cash) - free delivery, free C-section, free medicines, free diagnostics, free "
    "blood, free diet, and free transport for pregnant women and sick newborns at government "
    "facilities. Together JSY and JSSK have dramatically improved maternal and neonatal outcomes.",
    "Key difference: JSY = cash incentive. JSSK = free services. Both are under NHM."))

story.append(qa_block(7, "NHM - RBSK",
    "What is RBSK? What conditions does it screen for?",
    "RBSK stands for Rashtriya Bal Swasthya Karyakram - launched in 2013 under NHM. It provides "
    "health screening and early intervention for children from birth to 18 years (0-6 years through "
    "AWCs and 6-18 years through government schools). It screens for 4 Ds: "
    "Defects at birth (30 conditions), Deficiencies (anaemia, vitamin D, iodine), Diseases "
    "(sickle cell, dental caries, rheumatic heart disease), and Developmental delays and disabilities "
    "(hearing loss, vision problems, learning disabilities, autism). Mobile health teams (2 AYUSH "
    "doctors + parastaff) conduct screenings. Identified children are referred to District Early "
    "Intervention Centres (DEICs) for free treatment.",
    "Remember the 4 Ds: Defects, Deficiencies, Diseases, Developmental delays. Very commonly asked."))

story.append(PageBreak())

# โ”€โ”€ CATEGORY 3: PHC / PUBLIC HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("Category 3: PHC / IPHS / Public Health", h1_style))

story.append(qa_block(8, "IPHS / PHC",
    "What are the IPHS standards for a PHC? What is the population norm?",
    "Indian Public Health Standards (IPHS) were introduced in 2007 and revised in 2012 by MoHFW. "
    "A PHC serves 30,000 population in plains and 20,000 in hilly/tribal/difficult areas. "
    "Infrastructure standards: 6 beds, 1 labour room, 1 minor OT, basic laboratory, cold chain "
    "room, pharmacy, and safe water supply. Staff: 1 MBBS MO + 1 AYUSH MO, pharmacist, staff nurse, "
    "2 ANMs, lab technician, health assistants (male and female), driver, and class IV staff. "
    "Services: OPD care, MCH services, immunization, all National Health Programmes, basic lab "
    "investigations, minor surgery, and referral. The PHC also coordinates 6 Sub-Centres "
    "and submits monthly HMIS reports to the Block Medical Officer.",
    "Know the numbers: 30,000 population, 6 beds, 6 sub-centres per PHC. Panels love testing these."))

story.append(qa_block(9, "Public Health",
    "What is the difference between Primary, Secondary, and Tertiary prevention? Give examples.",
    "Prevention in public health has three levels. Primary prevention aims to prevent the disease "
    "before it occurs - examples: vaccination against measles, health education on tobacco avoidance, "
    "use of bed nets to prevent malaria, adding iodine to salt. Secondary prevention aims to detect "
    "disease early and treat promptly to prevent progression - examples: screening for cervical cancer "
    "(PAP smear/VIA), blood pressure screening for hypertension, sputum examination for TB contacts, "
    "newborn screening for congenital hypothyroidism. Tertiary prevention aims to reduce disability "
    "and rehabilitate - examples: physiotherapy after stroke, prosthetic limb after amputation, "
    "DOTS treatment to prevent TB complications, dialysis in chronic kidney disease. "
    "In community medicine, all three levels are equally important.",
    "This is a textbook question - must answer perfectly. Use one example for each level."))

story.append(qa_block(10, "Epidemiology",
    "What is the difference between Incidence and Prevalence? Why does it matter for an MO?",
    "Incidence is the number of NEW cases of a disease occurring in a defined population during a "
    "specific time period. Prevalence is the total number of EXISTING cases (new + old) at a given "
    "point in time. For example, if 100 new TB cases are detected in a district this year, that is "
    "incidence. If there are 500 TB patients currently on treatment in the district, that is "
    "prevalence. For an MO, incidence helps assess disease trends and evaluate whether prevention "
    "programmes are working. Prevalence helps in planning healthcare resources - how many beds, "
    "medicines, and staff are needed. Diseases like TB, leprosy, and diabetes have high prevalence "
    "due to long duration, so even a low incidence can maintain high prevalence.",
    "Incidence = new cases / time. Prevalence = existing cases / population at a point in time."))

story.append(qa_block(11, "Immunization",
    "What vaccines are given at birth under the Universal Immunization Programme?",
    "Under the Universal Immunization Programme (UIP), three vaccines are given at birth: "
    "(1) BCG - Bacillus Calmette-Guerin vaccine against tuberculosis, given as 0.1 ml "
    "intradermal on the left upper arm; (2) OPV-0 (Zero dose) - Oral Polio Vaccine, 2 drops "
    "orally; and (3) Hepatitis B - Birth dose, 0.5 ml intramuscularly on the anterolateral "
    "thigh, to be given within 24 hours of birth for maximum protection against perinatal "
    "transmission. These three vaccines form the critical birth dose package. Subsequently, "
    "at 6, 10, and 14 weeks the child receives OPV, Pentavalent (DPT+HepB+Hib), Rotavirus, "
    "fIPV, and PCV vaccines.",
    "Birth dose vaccines: BCG + OPV-0 + Hep B. Hep B must be within 24 hours of birth."))

story.append(PageBreak())

# โ”€โ”€ CATEGORY 4: INSURANCE MO / ESI โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("Category 4: Insurance Medical Officer / ESI", h1_style))

story.append(qa_block(12, "ESI Act",
    "What is the ESI Act? What are the wage limits and contribution rates?",
    "The Employees' State Insurance Act was enacted in 1948. It is a social security legislation "
    "providing medical, cash, and other benefits to workers in factories and establishments. "
    "It is administered by ESIC (Employees' State Insurance Corporation) under the Ministry of "
    "Labour and Employment. Coverage: employees earning up to Rs 21,000 per month (Rs 25,000 "
    "for persons with disabilities). Contribution: Employee contributes 0.75% of wages; "
    "Employer contributes 3.25% of wages. The total contribution goes to the ESI Fund. "
    "Benefits include: medical benefit, sickness benefit, maternity benefit, disablement benefit, "
    "dependent benefit, and funeral expenses (lump sum Rs 15,000). The Act applies to factories "
    "with 10 or more workers (with power) and establishments with 20 or more workers.",
    "ESI Act 1948, wage limit Rs 21,000, employee 0.75%, employer 3.25%. Memorise these figures."))

story.append(qa_block(13, "ESI Benefits",
    "What is sickness benefit under ESI? How does an IMO certify it?",
    "Sickness Benefit is a cash benefit paid to an insured worker during periods of certified "
    "sickness. The benefit is paid at 70% of average daily wages for a maximum of 91 days per "
    "year (in two spells). To be eligible, the worker must have paid contributions for at least "
    "78 days in the corresponding contribution period. As an Insurance Medical Officer, my role "
    "is to examine the insured person, confirm the illness is genuine, and issue a sickness "
    "certificate (Form 7) certifying that the person is unfit for work. The certificate must "
    "specify the diagnosis, duration of expected incapacity, and date of next review. "
    "Extended Sickness Benefit covers long-term conditions like TB, cancer, mental illness for "
    "up to 2 years at 80% of wages. I must be careful not to certify unnecessarily, "
    "as this is a common area of abuse.",
    "IMO issues Form 7 for sickness certificate. Know the 70% wage, 91 days limit, 78 days eligibility."))

story.append(qa_block(14, "Occupational Disease",
    "What is an occupational disease? Name 5 occupational diseases and their causative agents.",
    "An occupational disease is a disease caused by work-related exposure to physical, chemical, "
    "biological, or ergonomic hazards. Under the Employees' Compensation Act (formerly Workmen's "
    "Compensation Act), Schedule III lists notifiable occupational diseases. Five important examples: "
    "(1) Silicosis - caused by inhaling crystalline silica dust - seen in stone quarry, mining, "
    "sandblasting workers; (2) Asbestosis / Mesothelioma - caused by asbestos fibre inhalation - "
    "seen in ship-breaking workers at Alang, insulation workers; (3) Lead poisoning (Plumbism) - "
    "caused by lead in paint, batteries, smelting - affects nervous system and kidneys; "
    "(4) Noise-Induced Hearing Loss (NIHL) - from prolonged exposure to >85 dB - seen in factory, "
    "port, and construction workers; (5) Byssinosis - caused by cotton dust - seen in textile "
    "workers in Surat and Ahmedabad. As IMO, I am responsible for early detection and compensation "
    "certification for these conditions.",
    "Alang is in Bhavnagar - asbestosis/mesothelioma is highly relevant for you. Must mention this."))

story.append(PageBreak())

# โ”€โ”€ CATEGORY 5: CLINICAL โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("Category 5: Clinical / Medical Knowledge", h1_style))

story.append(qa_block(15, "Clinical",
    "A patient at your PHC presents with fever, rigor, and splenomegaly. What is your approach?",
    "This clinical picture is suggestive of Malaria. My approach would be: "
    "First, a thorough history - travel history, duration of fever (daily / alternate day pattern), "
    "chills, rigor, sweating cycle. On examination: pallor, jaundice, splenomegaly size, and "
    "signs of severe malaria (altered sensorium, respiratory distress). "
    "Investigation: Peripheral blood smear (thick and thin) for malarial parasite - this is gold "
    "standard. RDT (Rapid Diagnostic Test) for quick results at PHC level. "
    "If P. vivax: treat with Chloroquine + Primaquine (after G6PD testing). "
    "If P. falciparum: treat with ACT (Artemisinin-based Combination Therapy) + Primaquine. "
    "If severe malaria: injectable Artesunate, IV fluids, refer to CHC/District Hospital. "
    "Also consider typhoid and kala-azar in differential diagnosis if fever pattern is atypical. "
    "Report under NVBDCP surveillance.",
    "Fever + rigor + splenomegaly = Malaria until proven otherwise at a PHC level. Show clinical confidence."))

story.append(qa_block(16, "Clinical - MCH",
    "A primigravida comes to your PHC at 38 weeks with BP 160/110 and 2+ proteinuria. How do you manage?",
    "This is a case of severe pre-eclampsia. This is an obstetric emergency. "
    "Immediate steps: (1) Admit and put the patient in left lateral position. "
    "(2) Monitor BP, pulse, fetal heart rate, and urine output. "
    "(3) Start IV Magnesium Sulphate (MgSO4) as per Pritchard regimen - 4g IV loading dose + "
    "5g IM each buttock, then 5g IM every 4 hours - to prevent eclamptic seizures. "
    "(4) Antihypertensive: IV Labetalol or oral Nifedipine to bring diastolic BP below 100. "
    "(5) Catheterise and monitor urine output - watch for oliguria. "
    "(6) Check for signs of impending eclampsia: headache, blurred vision, epigastric pain. "
    "(7) Arrange urgent referral to CHC/District Hospital with FRU facility for delivery. "
    "(8) Inform blood bank for possible PPH. "
    "At PHC level my primary role is stabilisation and safe referral, not conducting delivery in this case.",
    "MgSO4 is the KEY drug for pre-eclampsia/eclampsia. Every MO must know the Pritchard regimen."))

story.append(qa_block(17, "Clinical - NCD",
    "How would you screen for NCDs (Hypertension and Diabetes) at PHC level under NPCDCS?",
    "NPCDCS - National Programme for Prevention and Control of Cancer, Diabetes, Cardiovascular "
    "diseases, and Stroke - provides the framework. At PHC level I would: "
    "(1) Screen all adults above 30 years visiting the PHC for BP and random blood glucose - "
    "this is the opportunistic screening model under NPCDCS. "
    "(2) Use community-based screening through ASHA and ANM during VHNDs for BP measurement "
    "and urine sugar testing in high-risk individuals. "
    "(3) Screening criteria for diabetes: random blood sugar > 140 mg/dL warrants fasting "
    "confirmation; for hypertension: BP > 140/90 on two separate occasions. "
    "(4) Screen for oral, breast, and cervical cancer: visual inspection with acetic acid (VIA) "
    "for cervical cancer, clinical breast examination for breast cancer, and oral cavity examination. "
    "(5) Maintain NCD register and ensure treatment adherence monitoring. "
    "(6) Refer complicated cases to District NCD clinic.",
    "NPCDCS includes cancer screening too (oral, breast, cervix) - not just DM and HTN. Important add-on."))

story.append(PageBreak())

# โ”€โ”€ CATEGORY 6: CURRENT AFFAIRS & GUJARAT โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("Category 6: Current Affairs & Gujarat", h1_style))

story.append(qa_block(18, "Gujarat Current Affairs",
    "Gujarat received an Agriculture Leadership Award in 2026. What is Gujarat's significance in agriculture?",
    "Gujarat received the Agriculture Leadership Award-2026 at the 17th Agriculture Leadership "
    "Conclave in New Delhi for excellence in horticulture. Agriculture Minister Jitu Vaghani "
    "received the award. Gujarat has previously won this award as Best Agriculture State in 2009 "
    "and 2014. Gujarat's agricultural strengths include: it is the largest producer of "
    "groundnut, cotton, and castor in India. The state has a strong irrigation network through "
    "the Narmada (Sardar Sarovar) canal system. In horticulture, Gujarat leads in mango, banana, "
    "and dates cultivation. The Kisan Suryodaya Yojana provides daytime power to farmers. "
    "From a public health perspective, strong agricultural output improves nutrition security and "
    "reduces food insecurity-related diseases like malnutrition and anaemia in the state.",
    "Connect current affairs to health impact. Panel appreciates when a doctor links GK to health."))

story.append(qa_block(19, "National Current Affairs",
    "India recently inaugurated a semiconductor plant in Sanand, Gujarat. What is its significance?",
    "The CG Semi OSAT (Outsourced Semiconductor Assembly and Test) plant was inaugurated by "
    "PM Narendra Modi in Sanand, Gujarat in July 2026. This is significant for India's "
    "semiconductor mission under the India Semiconductor Mission (ISM). Semiconductors are "
    "essential for electronics, medical devices, defense equipment, and automobiles. "
    "India currently imports most semiconductors, so domestic production improves strategic "
    "self-reliance. From a public health and medical perspective, semiconductors are critical "
    "for manufacturing medical devices - from digital thermometers and pulse oximeters to "
    "MRI machines and diagnostic equipment. India's semiconductor capability will eventually "
    "reduce the cost of medical technology and improve healthcare delivery. "
    "Sanand in Ahmedabad district is becoming a major industrial hub for Gujarat.",
    "Always try to connect national current affairs to healthcare or your post. Shows analytical thinking."))

story.append(qa_block(20, "Ethics / Administrative Scenario",
    "You are posted as MO at a PHC. A local politician pressures you to issue a false fitness "
    "certificate for his relative. What will you do?",
    "Sir, as a government medical officer I am bound by the Indian Medical Council (Professional "
    "Conduct, Etiquette and Ethics) Regulations 2002, which clearly prohibit issuing false or "
    "misleading certificates. I would politely but firmly decline to issue a false certificate, "
    "explaining that it is against medical ethics and the law. I would examine the person "
    "properly and issue a certificate based only on clinical findings. If the politician "
    "persists or threatens me, I would document the incident and report it to my superior - "
    "the Block Medical Officer or CDHO - through official channels. I would not confront "
    "aggressively but would maintain my professional stand. No political pressure should "
    "compromise the integrity of a medical certificate, especially for insurance or legal purposes. "
    "My duty as a doctor and a government servant is to the patient and the state, not to "
    "individuals exerting pressure.",
    "Ethics questions test your character. Be firm but not aggressive. Show you know the reporting structure."))

# FINAL SCORING GUIDE
story.append(PageBreak())
story.append(Paragraph("Scoring Guide - GPSC Class 1-2 Interview (Total: 100 marks)", h1_style))

score_data = [
    ["Parameter", "Marks", "What Panel Looks For"],
    ["Medical / Technical Knowledge", "30", "Accuracy of clinical and public health answers"],
    ["General Knowledge & Current Affairs", "20", "Awareness of NHM, national events, Gujarat affairs"],
    ["Personality & Confidence", "20", "Body language, composure, clarity of thought"],
    ["Communication Skills", "15", "Structured answers, no repetition, logical flow"],
    ["Administrative & Ethical Awareness", "10", "Knowledge of MO duties, ethics scenarios"],
    ["Local / District Knowledge", "5", "Knowledge of own district, PHC experience"],
    ["TOTAL", "100", ""],
]
story.append(make_tbl(score_data, [5.5*cm, 2.5*cm, 8.5*cm]))
story.append(Spacer(1, 0.4*cm))

story.append(Paragraph("Top 5 Tips for Interview Day", h2_style))
for tip in [
    "Start every answer with a direct, confident statement - do not say 'I think' or 'maybe'",
    "If you don't know something, say: 'Sir, I don't have complete information on this, but based on my knowledge...' - never stay completely silent",
    "For clinical questions, always follow a structured approach: History โ†’ Examination โ†’ Investigation โ†’ Management",
    "Know your own CV deeply - your PHC posting, blood donation camps, COVID work - panel WILL ask about these",
    "End long answers with a one-line summary: 'So in brief, my approach would be...' - shows organised thinking",
]:
    story.append(Paragraph(f"โžค {tip}", bullet_style))

story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a3c6e')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "GPSC Class 1-2 Mock Interview Document | Medical Officer / Tutor / Insurance MO | "
    "July 2026 | Best of luck with your interview!", note_style))

doc.build(story)
print(f"PDF generated: {OUTPUT}")

give me pdf for nhm

Generating both PDFs simultaneously!
Running Command

python /tmp/workspace/gpsc-interview/generate_mock_interview_pdf.py

Writing File

~/gpsc-interview/generate_nhm_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/NHM_Complete_Guide.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_s   = ParagraphStyle('TT', parent=styles['Title'],   fontSize=22, textColor=colors.HexColor('#145a32'), spaceAfter=6,  alignment=TA_CENTER)
sub_s     = ParagraphStyle('SS', parent=styles['Normal'],  fontSize=11, textColor=colors.HexColor('#1e8449'), spaceAfter=10, alignment=TA_CENTER)
h1_s      = ParagraphStyle('H1', parent=styles['Heading1'],fontSize=13, textColor=colors.white,  backColor=colors.HexColor('#145a32'), spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_s      = ParagraphStyle('H2', parent=styles['Heading2'],fontSize=11, textColor=colors.HexColor('#145a32'), spaceAfter=4, spaceBefore=8)
h3_s      = ParagraphStyle('H3', parent=styles['Heading3'],fontSize=10.5,textColor=colors.HexColor('#c0392b'), spaceAfter=3, spaceBefore=5)
body_s    = ParagraphStyle('BD', parent=styles['Normal'],  fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_s  = ParagraphStyle('BL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=15, spaceAfter=3)
note_s    = ParagraphStyle('NT', parent=styles['Normal'],  fontSize=9,  textColor=colors.HexColor('#7f8c8d'), leftIndent=10, spaceAfter=4, fontName='Helvetica-Oblique')
hl_s      = ParagraphStyle('HL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#eafaf1'), borderPad=4)
box_s     = ParagraphStyle('BX', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#fef9e7'), borderPad=4)
cell_s    = ParagraphStyle('CS', parent=styles['Normal'],  fontSize=8.5,leading=13)
cell_b    = ParagraphStyle('CB', parent=styles['Normal'],  fontSize=8.5,leading=13, fontName='Helvetica-Bold', textColor=colors.white)

def P(text, s=None):
    return Paragraph(str(text), s or cell_s)

def mktbl(data, widths, hdr='#145a32'):
    rows = [[P(c, cell_b if ri==0 else cell_s) for c in row] for ri,row in enumerate(data)]
    t = Table(rows, colWidths=widths, repeatRows=1)
    t.setStyle(TableStyle([
        ('BACKGROUND',    (0,0),(-1,0),  colors.HexColor(hdr)),
        ('ROWBACKGROUNDS',(0,1),(-1,-1), [colors.HexColor('#eafaf1'), colors.white]),
        ('GRID',          (0,0),(-1,-1), 0.5, colors.HexColor('#aaaaaa')),
        ('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), 'TOP'),
    ]))
    return t

story = []

# โ”€โ”€ COVER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 1*cm))
story.append(Paragraph("National Health Mission (NHM)", title_s))
story.append(Paragraph("Complete Quick Revision Guide", sub_s))
story.append(Paragraph("GPSC Class 1-2 Interview | Medical Officer / Tutor / Insurance MO", sub_s))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#145a32')))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
    "This guide covers NHM structure, NRHM, NUHM, all major sub-programmes, key components, "
    "health indicators, and likely interview questions - all in one document.", body_s))
story.append(Spacer(1, 0.3*cm))

# TABLE OF CONTENTS
story.append(mktbl([
    ["#", "Section", "Page Topic"],
    ["1", "NHM Overview & Structure", "History, sub-missions, objectives, targets"],
    ["2", "NRHM (2005)", "Rural health mission - components, innovations"],
    ["3", "NUHM (2013)", "Urban health mission - structure, Urban PHC"],
    ["4", "ASHA", "Role, selection, training, incentives"],
    ["5", "Key NHM Programmes", "JSY, JSSK, RBSK, PMSMA, VHSNC, RKS"],
    ["6", "National Health Programmes under NHM", "RNTCP, NVBDCP, NLEP, NPCDCS, etc."],
    ["7", "NHM Gujarat", "State-specific implementation, achievements"],
    ["8", "Health Indicators & NHM Targets", "MMR, IMR, TFR - India & Gujarat"],
    ["9", "Important Committees & Policies", "Bhore, NHP 2017, SDGs"],
    ["10","Interview Q&A on NHM", "10 likely questions with ideal answers"],
], [1.2*cm, 5.5*cm, 9.8*cm]))
story.append(PageBreak())

# โ”€โ”€ SECTION 1: NHM OVERVIEW โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("1. NHM Overview & Structure", h1_s))
story.append(Paragraph(
    "<b>National Health Mission (NHM)</b> was launched in <b>2013</b> by the Government of India "
    "under the Ministry of Health & Family Welfare. It was formed by merging two existing missions: "
    "NRHM (2005) and NUHM (2013). NHM is the umbrella programme under which virtually all "
    "government health schemes and programmes are implemented.", body_s))
story.append(Spacer(1, 0.2*cm))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Full name", "National Health Mission"],
    ["Launched", "2013 (merger of NRHM + NUHM)"],
    ["Ministry", "Ministry of Health & Family Welfare, Government of India"],
    ["Funding pattern", "Centre : State = 60:40 (90:10 for NE & special category states)"],
    ["Sub-mission 1", "NRHM - National Rural Health Mission (launched 2005, covers rural areas)"],
    ["Sub-mission 2", "NUHM - National Urban Health Mission (launched 2013, covers urban areas)"],
    ["Main objective", "Reduce MMR, IMR, TFR; strengthen health systems; universal health coverage"],
    ["Special focus states", "18 states with weak public health indicators (EAG states + NE states)"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("1.1 NHM Targets (Key Numbers)", h2_s))
story.append(mktbl([
    ["Indicator", "Baseline (pre-NHM ~2005)", "NHM Target", "Current Status (NFHS-5 / SRS)"],
    ["MMR (per 1,00,000 LB)", "~301 (2001-03)", "< 100", "97 (SRS 2018-20)"],
    ["IMR (per 1,000 LB)", "~58 (2005)", "< 25", "28 (SRS 2020)"],
    ["TFR", "~3.0 (2005)", "2.1", "2.0 (NFHS-5)"],
    ["Institutional delivery", "~40% (2005)", "> 80%", "88.6% (NFHS-5)"],
    ["Full immunization", "~44% (2005)", "> 90%", "76.4% (NFHS-5)"],
    ["Skilled birth attendant", "~47% (2005)", "> 90%", "88.6% (NFHS-5)"],
], [4*cm, 4*cm, 3*cm, 5.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 2: NRHM โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("2. NRHM - National Rural Health Mission (2005)", h1_s))
story.append(Paragraph(
    "NRHM was launched on <b>12 April 2005</b> by PM Manmohan Singh. It was the largest "
    "government rural health initiative in India's history. The mission aimed to provide "
    "accessible, affordable, and quality healthcare to rural populations, especially women "
    "and children in 18 high-focus states.", body_s))

story.append(Paragraph("2.1 Key Innovations of NRHM", h2_s))
story.append(mktbl([
    ["Innovation", "Description"],
    ["ASHA (Community Health Worker)", "1 female ASHA per 1,000 rural population - first contact for health services"],
    ["RKS (Rogi Kalyan Samiti)", "Hospital management committees with untied funds for local decision-making"],
    ["VHSNC", "Village Health Sanitation & Nutrition Committee - local governance of health"],
    ["Untied Funds", "Sub-centre Rs 10,000/yr, PHC Rs 25,000/yr, CHC Rs 50,000/yr for local needs"],
    ["AMB (Annual Maintenance Grant)", "For facility maintenance - PHC Rs 1 lakh/yr, CHC Rs 2 lakh/yr"],
    ["Flexible Financing", "States can plan and use NHM funds flexibly based on local priorities via PIP"],
    ["IPHS", "Indian Public Health Standards - quality benchmarks for all facility levels"],
    ["Mobile Medical Units (MMU)", "Outreach health services for remote and tribal areas"],
    ["Referral Transport", "Ambulance services (108 emergency, 102 maternity) for timely referrals"],
    ["PPP (Public-Private Partnership)", "Contracting private providers for gap areas (specialists, diagnostics)"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.2 NRHM Structure - Levels of Planning", h2_s))
story.append(mktbl([
    ["Level", "Document", "Purpose"],
    ["National", "National Programme Implementation Plan", "Overall NHM framework and norms"],
    ["State", "State PIP (Programme Implementation Plan)", "State-specific health plan submitted to GoI for funding"],
    ["District", "District Health Action Plan (DHAP)", "District-level planning by CDHO/DHO"],
    ["Village", "Village Health Plan", "Prepared by ASHA + VHSNC for village-level needs"],
], [3.5*cm, 5.5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.3 NRHM - 18 High Focus States", h2_s))
story.append(Paragraph(
    "8 EAG (Empowered Action Group) states: UP, Bihar, Madhya Pradesh, Rajasthan, Jharkhand, "
    "Uttarakhand, Odisha, Chhattisgarh. Plus 8 North-East states + Himachal Pradesh + J&K = 18 states. "
    "<b>Note: Gujarat is NOT an EAG state</b> - it has relatively better health indicators.", body_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 3: NUHM โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("3. NUHM - National Urban Health Mission (2013)", h1_s))
story.append(Paragraph(
    "NUHM was launched in <b>2013</b> as the urban counterpart of NRHM. It targets the urban poor "
    "- slum dwellers, homeless, migrants, street vendors, construction workers, rag-pickers - who "
    "often have worse health outcomes than rural populations despite living near hospitals.", body_s))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Launched", "2013 (merged into NHM)"],
    ["Target population", "Urban poor - slum dwellers, migrants, homeless, construction workers"],
    ["Coverage cities", "Cities with population > 50,000 (all district HQs & state capitals)"],
    ["Key facility", "Urban PHC (U-PHC) - serves 50,000 urban population"],
    ["Urban CHC (U-CHC)", "Serves 2.5 lakh urban population, 100 beds, specialist care"],
    ["Community worker", "ASHA in urban areas (Urban ASHA) - 1 per 200-500 households in slums"],
    ["Mahila Arogya Samiti (MAS)", "Urban equivalent of VHSNC - women's health committee in urban slums"],
    ["Key challenge", "Floating population, migrants, lack of address proof, heterogeneous population"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("3.1 NRHM vs NUHM - Key Differences", h2_s))
story.append(mktbl([
    ["Parameter", "NRHM (2005)", "NUHM (2013)"],
    ["Focus area", "Rural areas", "Urban areas (cities > 50,000 pop)"],
    ["ASHA ratio", "1 per 1,000 rural population", "1 per 200-500 urban households (slums)"],
    ["Primary facility", "PHC (30,000 pop)", "Urban PHC (50,000 pop)"],
    ["Secondary facility", "CHC (1,20,000 pop)", "Urban CHC (2.5 lakh pop)"],
    ["Community committee", "VHSNC (Village)", "MAS - Mahila Arogya Samiti (Urban slum)"],
    ["Key challenge", "Access, infrastructure, manpower in remote areas", "Floating population, migrants, heterogeneous urban poor"],
    ["Special focus", "18 high-focus states (EAG + NE)", "All cities > 50,000 population"],
], [4*cm, 5.5*cm, 7*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 4: ASHA โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("4. ASHA - Accredited Social Health Activist", h1_s))
story.append(Paragraph(
    "ASHA is the most iconic innovation of NRHM. She is a <b>trained female community health "
    "worker</b> from the village itself, acting as a bridge between the community and the "
    "health system.", body_s))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Full form", "Accredited Social Health Activist"],
    ["Introduced under", "NRHM, 2005"],
    ["Selection", "Female resident of the village, aged 25-45 years, married/widow/divorced, min 8th standard education (10th preferred)"],
    ["Ratio (rural)", "1 ASHA per 1,000 rural population (1 per 500 in tribal/hilly areas)"],
    ["Ratio (urban)", "1 per 200-500 households in urban slums under NUHM"],
    ["Salary", "Not salaried - performance-based incentives only"],
    ["Training", "4 modules - total ~23 days; conducted by ANM/Block trainer"],
    ["Drug kit", "Carries ASHA Drug Kit: ORS, IFA, chloroquine, iron, contraceptives, etc."],
], [4.5*cm, 12*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("4.1 ASHA's Key Roles", h2_s))
for b in [
    "Create awareness on health, nutrition, sanitation, and hygiene in the community",
    "Mobilise community for immunization sessions, ANC registration, and health camps",
    "Accompany pregnant women for institutional delivery and facilitate JSY cash transfer",
    "Provide ORS + zinc to children with diarrhoea; refer sick newborns",
    "Distribute iron-folic acid tablets, oral contraceptives, condoms",
    "Identify and refer TB suspects; support DOTS adherence (RNTCP/NTEP)",
    "Conduct newborn home visits (3 visits in first week)",
    "Maintain village health register and report to ANM",
    "Facilitate VHND (Village Health and Nutrition Day) with ANM and AWW",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("4.2 Key ASHA Incentives (Selected)", h2_s))
story.append(mktbl([
    ["Activity", "Incentive Amount"],
    ["JSY - Rural BPL institutional delivery", "Rs 600 per delivery"],
    ["JSY - Urban institutional delivery", "Rs 400 per delivery"],
    ["Sterilization motivation (female)", "Rs 150 per case"],
    ["RNTCP - TB case detection and DOTS completion", "Rs 1,000 per case completed"],
    ["RBSK - referring child to DEIC", "Rs 250 per referred child"],
    ["IUCD insertion motivation", "Rs 150 per acceptance"],
    ["Newborn home visits (3 visits in week 1)", "Rs 250 per live birth"],
    ["Annual incentive for full immunization of child", "Rs 100"],
], [8*cm, 8.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 5: KEY NHM PROGRAMMES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("5. Key NHM Programmes & Components", h1_s))

programmes = [
    ("JSY - Janani Suraksha Yojana", "2005",
     "Cash transfer scheme to promote institutional delivery among BPL/SC/ST women. "
     "Rural BPL mother: Rs 1,400 + ASHA Rs 600. Urban BPL: Rs 1,000 + ASHA Rs 400. "
     "Has increased institutional deliveries from ~40% (2005) to 88.6% (NFHS-5). "
     "Classified as Low-Performing States (LPS) receive higher incentives."),
    ("JSSK - Janani Shishu Suraksha Karyakram", "2011",
     "Entitlement-based scheme providing FREE services to pregnant women and sick newborns "
     "at government facilities. Free: normal delivery, C-section, medicines, diagnostics, "
     "blood transfusion, diet (3 meals/day), referral transport (drop back also free), "
     "no user charges. Also covers sick newborns up to 30 days age."),
    ("PMSMA - Pradhan Mantri Surakshit Matritva Abhiyan", "2016",
     "Fixed-day ANC (Antenatal Care) on 9th of every month at government facilities. "
     "Free ANC checkup by specialist/MO for all pregnant women in 2nd and 3rd trimester. "
     "Includes: USG, blood sugar, Hb, urine protein, BP check, VDRL, HIV. "
     "High-risk pregnancies are identified and referred. Target: quality ANC for all."),
    ("RBSK - Rashtriya Bal Swasthya Karyakram", "2013",
     "Child health screening from birth to 18 years. Screens for 4 Ds: Defects at birth, "
     "Deficiencies, Diseases, Developmental delays. Mobile Health Teams (2 AYUSH doctors) "
     "screen children at AWCs (0-6 yrs) and govt schools (6-18 yrs). Positive cases referred "
     "to DEIC (District Early Intervention Centre) for FREE treatment up to 18 years."),
    ("VHND - Village Health and Nutrition Day", "2007",
     "Monthly outreach session held at AWC (Anganwadi Centre) by ANM, ASHA, and AWW. "
     "Services: immunization, ANC checkup, ORS distribution, growth monitoring of children, "
     "family planning counselling, IFA distribution. Held on fixed day every month. "
     "Key platform for preventive and promotive health at village level."),
    ("RKS - Rogi Kalyan Samiti", "2005",
     "Hospital management committee at each government health facility (PHC, CHC, DH). "
     "Headed by local elected representative. Functions: local fund management, grievance "
     "redressal, hospital maintenance, ensuring patient rights. Receives untied funds "
     "from NHM: PHC Rs 25,000/yr, CHC Rs 50,000/yr, District Hospital Rs 5 lakh/yr."),
    ("VHSNC - Village Health Sanitation & Nutrition Committee", "2005",
     "Community-level committee at each village/ward. Members: ASHA, AWW, ANM, Panchayat rep, "
     "and community members. Receives untied funds: Rs 10,000/year. Functions: health planning "
     "at village level, sanitation monitoring, tracking high-risk pregnant women and malnourished "
     "children, coordinating VHNDs, and social accountability."),
    ("MAA - Mothers Absolute Affection Programme", "2016",
     "Programme to promote breastfeeding. MAA = Mothers' Absolute Affection. "
     "Aims to improve breastfeeding rates: early initiation (within 1 hour of birth) and "
     "exclusive breastfeeding for 6 months. Involves training of health workers and mass "
     "communication. NFHS-5: early initiation 41.8%, exclusive BF 63.7% in India."),
    ("NAS - National Ambulance Services", "Ongoing",
     "108 Emergency Ambulance: free emergency transport for accidents, heart attacks, obstetric "
     "emergencies. Available 24x7. 102 Maternity Ambulance: free transport for pregnant women "
     "to facilities and drop-back after delivery. Both operational in Gujarat under NHM. "
     "Reduces delay in reaching care - addresses 3rd delay in maternal mortality framework."),
]

for name, year, desc in programmes:
    story.append(KeepTogether([
        Paragraph(f"<b>{name}</b>  <i>(Launched: {year})</i>", h3_s),
        Paragraph(desc, hl_s),
        Spacer(1, 0.1*cm),
    ]))

# โ”€โ”€ SECTION 6: NATIONAL HEALTH PROGRAMMES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("6. National Health Programmes (NHPs) under NHM", h1_s))

story.append(mktbl([
    ["Programme", "Full Name", "Target Disease", "Key Drug/Intervention"],
    ["NTEP (prev. RNTCP)", "National TB Elimination Programme", "Tuberculosis", "DOTS, Bedaquiline (DR-TB), Ni-kshay Poshan Yojana Rs 500/month"],
    ["NVBDCP", "National Vector Borne Disease Control Programme", "Malaria, Dengue, Chikungunya, Filaria, Kala-azar, JE", "ACT, DDT spraying, bed nets, DEC for filaria"],
    ["NLEP", "National Leprosy Eradication Programme", "Leprosy", "MDT (Multi-Drug Therapy): Rifampicin + Clofazimine + Dapsone"],
    ["NPCB", "National Programme for Control of Blindness", "Blindness (cataract dominant)", "Cataract surgery, trachoma treatment, spectacles for school children"],
    ["NPCDCS", "National Programme for Prevention & Control of Cancer, DM, CVD & Stroke", "Hypertension, Diabetes, Cancers", "Opportunistic screening at 30+, NCD clinics at CHC/DH"],
    ["NMHP", "National Mental Health Programme", "Mental illness", "Community mental health, DMHP (District Mental Health Programme)"],
    ["NIDDCP", "National Iodine Deficiency Disorders Control Programme", "Goitre, cretinism", "Universal salt iodisation, IDD surveillance"],
    ["NPPCF", "National Programme for Prevention and Control of Fluorosis", "Fluorosis", "Alternate water sources, defluoridation, Nalgonda technique"],
    ["RBDP", "Rashtriya Bal Divas Programme / RBSK", "Child diseases", "Screening 0-18 years, DEIC management"],
    ["RKSK", "Rashtriya Kishor Swasthya Karyakram", "Adolescent health", "Peer education, AFHC (Adolescent Friendly Health Clinics), WIFS"],
    ["WIFS", "Weekly Iron and Folic Acid Supplementation", "Anaemia in adolescents", "Weekly IFA: 100 mg iron + 500 mcg folic acid for school children"],
    ["NPSUPR", "National Programme for Surveillance of Unrecognised Patterns of Respiratory Diseases", "Respiratory / COPD", "Spirometry camps, COPD management at PHC"],
], [3*cm, 4.5*cm, 3.5*cm, 5.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 7: NHM GUJARAT โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("7. NHM Gujarat - Key Facts", h1_s))
story.append(mktbl([
    ["Parameter", "Gujarat Status"],
    ["MMR", "57/1,00,000 LB - much better than national average of 97"],
    ["IMR", "24/1,000 LB (SRS 2020) - better than India average of 28"],
    ["TFR", "1.9 (NFHS-5) - below replacement level - good performance"],
    ["Institutional delivery", "~95% - among best in India"],
    ["Full immunization", "~85% - above national average of 76.4%"],
    ["JSY beneficiaries", "High uptake due to strong ASHA network and 24x7 PHC delivery"],
    ["108 Ambulance (GVK EMRI)", "Operational in all districts - average response time ~15 min in urban areas"],
    ["NHM Gujarat highlights", "Mukhyamantri Amrutum (MA) Yojana, Khilkhilat programme (newborn care), Beto Bachao Beti Bachao"],
    ["Chiranjeevi Yojana (Gujarat)", "PPP scheme for institutional delivery in tribal areas - private hospitals paid per delivery"],
    ["DISHA", "Gujarat's digital health information system for NHM monitoring"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 8: HEALTH INDICATORS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("8. Key Health Indicators - India vs Gujarat (Quick Reference)", h1_s))

story.append(mktbl([
    ["Indicator", "India (NFHS-5 / SRS)", "Gujarat (NFHS-5)", "NHM Target"],
    ["MMR (per 1,00,000 LB)", "97 (SRS 2018-20)", "57", "< 100"],
    ["IMR (per 1,000 LB)", "28 (SRS 2020)", "24", "< 25"],
    ["NMR (per 1,000 LB)", "20", "~17", "< 16"],
    ["U5MR (per 1,000 LB)", "32", "~27", "< 23"],
    ["TFR", "2.0", "1.9", "2.1"],
    ["Institutional delivery (%)", "88.6%", "~95%", "> 90%"],
    ["Full immunization (%)", "76.4%", "~85%", "> 90%"],
    ["Antenatal care (ANC 4+ visits)", "58.1%", "~72%", "> 90%"],
    ["Skilled birth attendant (%)", "88.6%", "~96%", "> 90%"],
    ["Contraceptive prevalence rate", "66.7%", "~70%", "> 75%"],
    ["Sex ratio at birth (per 1,000 M)", "929 females", "909 females", "950+"],
    ["Stunting in children < 5 yrs", "35.5%", "39.7% (higher!)", "< 25%"],
    ["Anaemia in women 15-49 yrs", "57.0%", "54.9%", "< 40%"],
], [5*cm, 3.8*cm, 3.5*cm, 3.5*cm]))
story.append(Paragraph(
    "Note: Gujarat's stunting rate (39.7%) is surprisingly higher than national average (35.5%) "
    "despite better economic indicators - a common interview question trap!", note_s))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 9: COMMITTEES & POLICIES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("9. Important Committees & Health Policies", h1_s))

story.append(mktbl([
    ["Committee / Policy", "Year", "Key Recommendation / Focus"],
    ["Bhore Committee", "1946", "Foundation of India's health system. Concept of PHC. 'No individual denied care due to inability to pay.' Social orientation of medicine."],
    ["Mudaliar Committee", "1962", "Strengthen existing infrastructure before expanding. Introduced CHC concept. Recommended redistribution of existing staff."],
    ["Shrivastav Committee", "1975", "Community health workers (CHW) - forerunner of ASHA concept. Decentralisation of health services."],
    ["Bajaj Committee", "1986", "Review of health sector performance. Recommended reorientation of medical education toward community health."],
    ["National Health Policy 1983", "1983", "First NHP. Goal: Health for All by 2000. Emphasis on primary healthcare, community participation."],
    ["National Health Policy 2002", "2002", "Goals for MMR, IMR reduction. Decentralization, PPP, increased public spending on health to 2% of GDP."],
    ["National Health Policy 2017", "2017", "Universal Health Coverage (UHC). Health and Wellness Centres (HWCs). Increase health expenditure to 2.5% of GDP. Digital health, mental health."],
    ["Alma-Ata Declaration", "1978", "International: Primary Health Care as key to Health for All. Community participation, appropriate technology, intersectoral action."],
    ["SDG Goal 3", "2015-2030", "Sustainable Development Goal 3: Ensure healthy lives and promote well-being for all at all ages. End AIDS, TB, malaria by 2030."],
], [4.5*cm, 1.5*cm, 10.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 10: INTERVIEW Q&A โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("10. Interview Q&A on NHM (10 Questions)", h1_s))

qas = [
    ("Q1. What is NHM? When was it launched? What are its two sub-missions?",
     "NHM - National Health Mission - was launched in 2013 by merging NRHM (2005) and NUHM (2013). "
     "NRHM targets rural areas; NUHM targets urban poor. Key goal is Universal Health Coverage - "
     "reducing MMR below 100, IMR below 25, TFR to 2.1."),
    ("Q2. What is ASHA? How is she different from ANM?",
     "ASHA is an Accredited Social Health Activist - a community health volunteer, 1 per 1,000 rural "
     "population, selected from the village, not salaried but incentive-based. ANM (Auxiliary Nurse "
     "Midwife) is a trained, salaried government employee posted at sub-centre level, responsible for "
     "clinical care, immunization, and ANC. ASHA bridges community to ANM; ANM bridges community to "
     "the formal health system."),
    ("Q3. What is JSY? What are the incentive amounts?",
     "Janani Suraksha Yojana - cash transfer for institutional delivery. Rural BPL mother: Rs 1,400 "
     "+ ASHA gets Rs 600. Urban BPL: Rs 1,000 + ASHA Rs 400. Has raised institutional delivery from "
     "40% in 2005 to 88.6% by NFHS-5."),
    ("Q4. What is the difference between JSY and JSSK?",
     "JSY is a cash incentive scheme. JSSK (2011) provides entitlement to free services - free delivery, "
     "free medicines, free diagnostics, free diet, free blood, free transport - no cash but zero user "
     "charges. Both are complementary under NHM."),
    ("Q5. What is VHND? Who conducts it and what services are provided?",
     "Village Health and Nutrition Day is a monthly outreach session at the Anganwadi Centre. Conducted "
     "jointly by ANM, ASHA, and AWW. Services: immunization, ANC checkup, growth monitoring, ORS and "
     "IFA distribution, family planning counselling, referral of high-risk cases."),
    ("Q6. What is RKS? What is its purpose?",
     "Rogi Kalyan Samiti is a hospital management committee at each government health facility under NHM. "
     "Headed by a local elected representative. Receives untied funds (PHC: Rs 25,000/yr). Manages "
     "hospital maintenance, patient grievances, local procurement of essential items, and ensures "
     "accountability."),
    ("Q7. What is RBSK? What are the 4 Ds it screens for?",
     "Rashtriya Bal Swasthya Karyakram screens children 0-18 years for 4 Ds: Defects at birth "
     "(30 conditions), Deficiencies (anaemia, Vit D, iodine), Diseases (sickle cell, TB, rheumatic "
     "heart), Developmental delays (autism, hearing loss, learning disability). Mobile Health Teams "
     "screen at AWCs and schools. Positive cases go to DEIC for free treatment."),
    ("Q8. Gujarat has better health indicators than India. But in which indicator does Gujarat perform worse?",
     "Gujarat's stunting rate in children under 5 is 39.7% (NFHS-5), which is HIGHER than the national "
     "average of 35.5%. This is paradoxical given Gujarat's economic development. Reasons include: "
     "high tribal population in eastern Gujarat (Dahod, Narmada, Tapi districts), poor dietary diversity, "
     "adolescent girl anaemia, and early marriage. This is an important and surprising data point."),
    ("Q9. What is PMSMA?",
     "Pradhan Mantri Surakshit Matritva Abhiyan - fixed-day ANC on 9th of every month at government "
     "facilities. Free specialist-led ANC for all pregnant women in 2nd and 3rd trimester. Includes "
     "USG, blood tests, BP check, urine protein, VDRL, HIV. Aims to identify high-risk pregnancies "
     "early for timely intervention."),
    ("Q10. What is the National Health Policy 2017's key vision?",
     "NHP 2017 envisions achieving Universal Health Coverage with focus on preventive and promotive "
     "health. Key goals: increase government health expenditure to 2.5% of GDP, establish Health and "
     "Wellness Centres (HWCs) at sub-centre and PHC level for comprehensive primary care, strengthen "
     "digital health (Digital Health Mission), address mental health and NCDs, and align with SDG Goal 3."),
]

for q, a in qas:
    story.append(KeepTogether([
        Paragraph(f"<b>{q}</b>", h3_s),
        Paragraph(f"โœ” {a}", hl_s),
        Spacer(1, 0.15*cm),
    ]))

# QUICK MEMORY BOX
story.append(PageBreak())
story.append(Paragraph("Quick Memory - NHM Numbers to Remember", h1_s))
story.append(mktbl([
    ["What", "Number / Year"],
    ["NRHM launched", "12 April 2005"],
    ["NUHM launched", "2013"],
    ["NHM formed (merger)", "2013"],
    ["ASHA ratio (rural)", "1 per 1,000 population"],
    ["ASHA ratio (tribal/hilly)", "1 per 500 population"],
    ["JSY - rural BPL mother", "Rs 1,400 + ASHA Rs 600"],
    ["JSY - urban BPL mother", "Rs 1,000 + ASHA Rs 400"],
    ["JSSK launched", "2011"],
    ["PMSMA - ANC day", "9th of every month"],
    ["RBSK age group", "Birth to 18 years"],
    ["RBSK - 4 Ds", "Defects, Deficiencies, Diseases, Developmental delays"],
    ["RKS untied fund - PHC", "Rs 25,000 per year"],
    ["RKS untied fund - CHC", "Rs 50,000 per year"],
    ["VHSNC untied fund", "Rs 10,000 per year"],
    ["Sub-centre untied fund", "Rs 10,000 per year"],
    ["NHM MMR target", "< 100 per 1,00,000 LB"],
    ["NHM IMR target", "< 25 per 1,000 LB"],
    ["NHM TFR target", "2.1"],
    ["India MMR (SRS 2018-20)", "97"],
    ["Gujarat MMR", "57"],
    ["India IMR (SRS 2020)", "28"],
    ["India TFR (NFHS-5)", "2.0"],
    ["Gujarat stunting (NFHS-5)", "39.7% - HIGHER than India 35.5%!"],
], [8*cm, 8.5*cm]))

# FOOTER
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#145a32')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "NHM Complete Guide | GPSC Class 1-2 Interview Preparation | July 2026 | "
    "Verify latest data from NHM India website (nhm.gov.in) and NFHS-5 official reports.",
    note_s))

doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_nhm_pdf.py

Both PDFs are ready! Download them here:

NHM Complete Guide

PDF Document ยท PDF

GPSC MO Mock Interview 20QA

PDF Document ยท PDF


๐Ÿ“„ NHM PDF Contents (7 pages):

SectionContent
1. NHM OverviewHistory, structure, funding (60:40), targets table
2. NRHM (2005)10 innovations (ASHA, RKS, untied funds, MMU, 108), 18 focus states
3. NUHM (2013)Urban PHC, MAS, NRHM vs NUHM comparison table
4. ASHASelection, roles, incentive table (JSY, TB, RBSK amounts)
5. Key ProgrammesJSY, JSSK, PMSMA, RBSK, VHND, RKS, VHSNC, MAA, 102/108 - all explained
6. NHPs under NHMNTEP, NVBDCP, NLEP, NPCDCS, NMHP + 6 more in table
7. NHM GujaratState indicators, Chiranjeevi Yojana, MA Yojana
8. Health IndicatorsIndia vs Gujarat vs NHM targets - including Gujarat's stunting paradox
9. Committees & PoliciesBhore, NHP 2017, Alma-Ata, SDG Goal 3
10. Q&A10 interview questions with model answers
Memory Table25 key NHM numbers on one page

โš ๏ธ One Important Point to Remember:

Gujarat's stunting rate (39.7%) is HIGHER than India (35.5%) despite being economically developed - panels often ask this as a trap question!

Ready to continue the interview? We're on Q8 now:

Q8.

"What is the difference between disease surveillance and disease monitoring? And what is IDSP?"

disease surveillance can be of disease which is eliminated and monitoring is we are not taking any action agaist disease only obeserving its origin burden spread and everything , integratedd disease surveillance program through staff of phc we screen the people for disease

โœ… Your Answer Review

What you got right:
  • Attempted to differentiate the two - shows you tried โœ…
  • Mentioned IDSP involves PHC staff and screening โœ…
What was incorrect / confused:
  • Your definition of surveillance is wrong - surveillance is NOT only for eliminated diseases
  • Your definition of monitoring is also reversed - monitoring actually involves tracking + taking action, not "no action"
  • The real difference is: surveillance = continuous systematic collection + action trigger, monitoring = tracking progress of a specific programme
  • IDSP explanation was very vague - "screen people for disease" misses the entire concept
  • Did not mention: S, P, L forms, weekly reporting, outbreak detection, Health Management Information System (HMIS)
  • Did not mention that IDSP was launched in 2004, covers 33 diseases, has a district rapid response team

๐Ÿ’ก Ideal Answer

"Sir, disease surveillance is the continuous, systematic collection, analysis, and interpretation of health data, followed by action - for example, detecting an outbreak of dengue in a district and immediately triggering a response team. Monitoring, on the other hand, is tracking the progress of a specific health programme against its targets - for example, monitoring what percentage of pregnant women received 4 ANC visits this month. Surveillance is about detecting threats; monitoring is about measuring programme performance.
IDSP - Integrated Disease Surveillance Programme - was launched in 2004 under the Ministry of Health. It integrates surveillance of communicable diseases across all levels. At PHC level, staff report weekly using three forms: S form (Syndromic data - by ANM/health worker), P form (Presumptive data - by medical officer based on clinical diagnosis), and L form (Laboratory confirmed data). Data flows from PHC to District Surveillance Unit (DSU) to State Surveillance Unit (SSU) to central level. If a threshold is crossed, a District Rapid Response Team is activated to investigate and control the outbreak. IDSP covers 33 priority diseases including cholera, dengue, malaria, measles, and viral hepatitis."

Q9.

"You conducted blood donation camps during your bond duty. Suppose a patient at your PHC urgently needs blood transfusion but the blood bank is 30 km away and there is no ambulance available right now. What will you do? Walk me through your decision-making."
(This tests your emergency management and practical thinking - answer step by step.)

iphs pdf

You already have that one! It was the first PDF I made for you.

IPHS PHC Quick Revision

PDF Document ยท PDF

It covers:
  • IPHS overview (2007, revised 2012)
  • All facility levels (SC โ†’ PHC โ†’ CHC โ†’ DH) with population norms
  • PHC infrastructure standards (6 beds, OT, cold chain, lab)
  • Staff list with numbers
  • All services (OPD, MCH, NHP, UIP schedule)
  • MO roles & responsibilities
  • ESI Act & Insurance MO section
  • Health indicators (India vs Gujarat)
  • Important committees & acts
  • 10 interview Q&As
  • Quick mnemonics

Now continuing the interview:

Q9.

"You conducted blood donation camps during your bond duty. Suppose a patient at your PHC urgently needs a blood transfusion but the blood bank is 30 km away and no ambulance is available. What will you do? Walk me through your decision step by step."

idsp pdf

Generating now!
Writing File

~/gpsc-interview/generate_idsp_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/IDSP_Complete_Guide.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_s  = ParagraphStyle('TT', parent=styles['Title'],   fontSize=22, textColor=colors.HexColor('#4a235a'), spaceAfter=6,  alignment=TA_CENTER)
sub_s    = ParagraphStyle('SS', parent=styles['Normal'],  fontSize=11, textColor=colors.HexColor('#7d3c98'), spaceAfter=10, alignment=TA_CENTER)
h1_s     = ParagraphStyle('H1', parent=styles['Heading1'],fontSize=13, textColor=colors.white, backColor=colors.HexColor('#4a235a'), spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_s     = ParagraphStyle('H2', parent=styles['Heading2'],fontSize=11, textColor=colors.HexColor('#4a235a'), spaceAfter=4, spaceBefore=8)
h3_s     = ParagraphStyle('H3', parent=styles['Heading3'],fontSize=10.5, textColor=colors.HexColor('#c0392b'), spaceAfter=3, spaceBefore=5)
body_s   = ParagraphStyle('BD', parent=styles['Normal'],  fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_s = ParagraphStyle('BL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=15, spaceAfter=3)
note_s   = ParagraphStyle('NT', parent=styles['Normal'],  fontSize=9,  textColor=colors.HexColor('#7f8c8d'), leftIndent=10, spaceAfter=4, fontName='Helvetica-Oblique')
hl_s     = ParagraphStyle('HL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#f5eef8'), borderPad=4)
warn_s   = ParagraphStyle('WN', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#fef9e7'), borderPad=4)
cell_s   = ParagraphStyle('CS', parent=styles['Normal'],  fontSize=8.5, leading=13)
cell_b   = ParagraphStyle('CB', parent=styles['Normal'],  fontSize=8.5, leading=13, fontName='Helvetica-Bold', textColor=colors.white)

def P(text, s=None):
    return Paragraph(str(text), s or cell_s)

def mktbl(data, widths, hdr='#4a235a'):
    rows = [[P(c, cell_b if ri==0 else cell_s) for c in row] for ri, row in enumerate(data)]
    t = Table(rows, colWidths=widths, repeatRows=1)
    t.setStyle(TableStyle([
        ('BACKGROUND',    (0,0),(-1,0),  colors.HexColor(hdr)),
        ('ROWBACKGROUNDS',(0,1),(-1,-1), [colors.HexColor('#f5eef8'), colors.white]),
        ('GRID',          (0,0),(-1,-1), 0.5, colors.HexColor('#aaaaaa')),
        ('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), 'TOP'),
    ]))
    return t

story = []

# โ”€โ”€ COVER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 1*cm))
story.append(Paragraph("IDSP - Integrated Disease Surveillance Programme", title_s))
story.append(Paragraph("Complete Quick Revision Guide", sub_s))
story.append(Paragraph("GPSC Class 1-2 Interview | Medical Officer / Tutor / Insurance MO", sub_s))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#4a235a')))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
    "This guide covers IDSP structure, reporting forms (S/P/L), outbreak investigation, "
    "disease surveillance vs monitoring, 33 priority diseases, and all likely interview questions.", body_s))
story.append(Spacer(1, 0.3*cm))

# TABLE OF CONTENTS
story.append(mktbl([
    ["#", "Section"],
    ["1", "What is IDSP? Overview & Key Facts"],
    ["2", "Surveillance vs Monitoring - The Correct Difference"],
    ["3", "IDSP Structure - Levels & Units"],
    ["4", "IDSP Reporting Forms - S, P, L Forms (Most Important)"],
    ["5", "Data Flow in IDSP"],
    ["6", "Outbreak Investigation - 10 Steps"],
    ["7", "33 Priority Diseases under IDSP"],
    ["8", "IHIP - Integrated Health Information Platform (Digital IDSP)"],
    ["9", "Disease Surveillance in Gujarat"],
    ["10","Interview Q&A - 10 Questions with Ideal Answers"],
    ["11","Quick Memory Table"],
], [1.2*cm, 15.3*cm]))
story.append(PageBreak())

# โ”€โ”€ SECTION 1: IDSP OVERVIEW โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("1. What is IDSP? Overview & Key Facts", h1_s))
story.append(Paragraph(
    "<b>IDSP - Integrated Disease Surveillance Programme</b> was launched in <b>2004</b> by "
    "the Government of India under the Ministry of Health & Family Welfare, with World Bank "
    "assistance. It is now fully funded under <b>NHM</b>. The programme integrates surveillance "
    "of communicable diseases at district, state, and national levels to detect and respond to "
    "disease outbreaks rapidly.", body_s))
story.append(Spacer(1, 0.2*cm))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Full name", "Integrated Disease Surveillance Programme"],
    ["Launched", "2004"],
    ["Ministry", "Ministry of Health & Family Welfare, Govt of India"],
    ["Funding", "World Bank assisted initially; now under NHM"],
    ["Nodal centre", "National Centre for Disease Control (NCDC), New Delhi"],
    ["Coverage", "All states and UTs - District, State, National levels"],
    ["Number of priority diseases", "33 diseases under surveillance"],
    ["Reporting frequency", "Weekly (S and P forms) + immediate for outbreak-prone diseases"],
    ["Digital platform", "IHIP - Integrated Health Information Platform (replaced old system in 2020)"],
    ["Key goal", "Early detection of disease outbreaks and rapid public health response"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 2: SURVEILLANCE VS MONITORING โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("2. Surveillance vs Monitoring - The Correct Difference", h1_s))
story.append(Paragraph(
    "This is a commonly confused concept in interviews. Know the correct definitions.", body_s))

story.append(mktbl([
    ["Parameter", "Disease Surveillance", "Disease / Programme Monitoring"],
    ["Definition",
     "Continuous, systematic collection, analysis, and interpretation of health data, followed by dissemination and action",
     "Systematic tracking of programme inputs, processes, and outputs against pre-set targets over time"],
    ["Purpose",
     "Detect disease trends, outbreaks, and emerging threats EARLY so response can be triggered",
     "Measure how well a health programme is performing - are targets being met?"],
    ["Action",
     "Always linked to ACTION - detecting an outbreak must trigger an investigation and response",
     "Leads to programme correction - if targets not met, strategies are revised"],
    ["Example 1",
     "Weekly reporting of fever cases from PHC to detect a possible dengue cluster",
     "Monitoring % of pregnant women who received 4 ANC visits this month under NHM"],
    ["Example 2",
     "IDSP S/P/L form data showing spike in cholera cases in a district",
     "Monitoring immunization coverage rates - % fully immunized children"],
    ["Scope",
     "Focused on communicable diseases, outbreaks, epidemic-prone conditions",
     "Any health programme - NHM, RNTCP, immunization, nutrition, etc."],
    ["System",
     "IDSP, HMIS (disease data), NVBDCP surveillance",
     "HMIS (programme data), MCTS, RCH portal, ANMOL app"],
    ["Key word",
     "DETECT + RESPOND",
     "TRACK + CORRECT"],
], [3*cm, 6.5*cm, 7*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Simple Memory Rule:", h3_s))
story.append(Paragraph(
    "Surveillance = Watching for THREATS (enemy approaching - take action!) | "
    "Monitoring = Watching your OWN PROGRESS (are you on track to reach the goal?)", warn_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 3: IDSP STRUCTURE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("3. IDSP Structure - Levels & Units", h1_s))

story.append(mktbl([
    ["Level", "Unit", "Head", "Functions"],
    ["National",
     "Central Surveillance Unit (CSU)\nNational Centre for Disease Control (NCDC), Delhi",
     "Central Surveillance Officer",
     "Coordinate national surveillance, analyse trends, issue alerts, international reporting (WHO-IHR), technical support to states"],
    ["State",
     "State Surveillance Unit (SSU)\nState Health Directorate",
     "State Surveillance Officer (SSO)",
     "Compile district data, monitor outbreaks, activate State Rapid Response Team (RRT), coordinate lab network"],
    ["District",
     "District Surveillance Unit (DSU)\nDistrict Hospital / CDHO office",
     "District Surveillance Officer (DSO)",
     "Collect weekly S/P/L forms, analyse data, detect threshold alerts, activate District RRT for investigation"],
    ["PHC / Sub-centre",
     "Reporting Unit",
     "Medical Officer / ANM / Health Worker",
     "Fill weekly S and P forms, report immediately for outbreak-prone diseases, collect samples for L form"],
    ["Laboratory",
     "Peripheral / Sentinel Labs",
     "Lab Technician / Pathologist",
     "Confirm diagnoses for L form, send samples to higher labs (IDSP lab network)"],
], [2.5*cm, 4*cm, 3.5*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("3.1 Rapid Response Teams (RRT)", h2_s))
story.append(Paragraph(
    "Each district has a <b>District Rapid Response Team (RRT)</b> that is activated when "
    "an outbreak threshold is crossed. The team includes the District Surveillance Officer, "
    "an epidemiologist, microbiologist, entomologist (for vector-borne outbreaks), and "
    "district programme officers. The RRT investigates the outbreak, collects samples, "
    "implements control measures, and submits an outbreak investigation report.", body_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 4: S P L FORMS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("4. IDSP Reporting Forms - S, P, L Forms", h1_s))
story.append(Paragraph(
    "The S-P-L forms are the backbone of IDSP. They represent three levels of disease "
    "confirmation and are filled by different cadres of health workers.", body_s))
story.append(Spacer(1, 0.1*cm))

story.append(mktbl([
    ["Form", "Full Name", "Filled By", "Data Type", "Frequency", "Example"],
    ["S Form",
     "Syndromic Surveillance Form",
     "ANM, Health Worker, ASHA (at sub-centre / community level)",
     "Symptom-based / clinical syndromes WITHOUT laboratory confirmation",
     "Weekly (by Wednesday)",
     "Number of people with fever, diarrhoea, rash, jaundice, respiratory illness, etc. in the week"],
    ["P Form",
     "Presumptive / Probable Case Form",
     "Medical Officer at PHC / CHC level",
     "Clinical diagnosis by doctor - presumptive/probable case based on signs, symptoms, and clinical judgment",
     "Weekly (by Wednesday)",
     "MO diagnoses probable malaria, dengue, typhoid, cholera, measles based on clinical examination"],
    ["L Form",
     "Laboratory Confirmed Case Form",
     "Laboratory Technician / Pathologist at PHC lab, CHC, or sentinel lab",
     "Laboratory confirmed cases - specific test positive",
     "Weekly or immediately for outbreak-prone diseases",
     "Lab confirms: Dengue NS1/IgM positive, AFB smear positive, blood culture Salmonella typhi, RDT positive for malaria"],
], [1*cm, 3*cm, 3.5*cm, 4*cm, 2.5*cm, 2.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Key Points about S-P-L Forms:", h3_s))
for b in [
    "<b>S form = Syndromic</b> = Community-level symptom counts (no diagnosis needed) - filled by ANM/health worker",
    "<b>P form = Presumptive</b> = Doctor's clinical diagnosis - filled by Medical Officer",
    "<b>L form = Lab confirmed</b> = Lab test positive - filled by lab staff",
    "All three forms are submitted <b>weekly by Wednesday</b> to the District Surveillance Unit",
    "For <b>outbreak-prone diseases</b> (cholera, plague, SARS, meningitis), reporting is <b>IMMEDIATE</b> - within 24 hours",
    "Data from S, P, L forms together gives a complete picture: community burden โ†’ clinical burden โ†’ confirmed burden",
    "If P form shows spike in dengue cases and L form confirms it โ†’ threshold crossed โ†’ RRT activated",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Diseases Requiring IMMEDIATE Reporting (within 24 hours):", h3_s))
story.append(Paragraph(
    "Cholera, Plague, Yellow fever, Viral Haemorrhagic Fevers (Ebola, Nipah), SARS/COVID-like illness, "
    "Meningococcal meningitis, Poliomyelitis (AFP), Avian influenza, Anthrax, Smallpox. "
    "These are also notifiable under the International Health Regulations (IHR 2005).", warn_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 5: DATA FLOW โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("5. Data Flow in IDSP", h1_s))

story.append(mktbl([
    ["Step", "From", "To", "Data / Action"],
    ["1", "Sub-centre / Community\n(ANM, ASHA, Health Worker)",
     "PHC Medical Officer",
     "S Form (weekly) - syndromic data on fever, diarrhoea, rash, etc."],
    ["2", "PHC Medical Officer",
     "District Surveillance Unit (DSU)",
     "P Form (weekly) - presumptive clinical diagnoses"],
    ["3", "PHC / CHC Laboratory",
     "District Surveillance Unit (DSU)",
     "L Form (weekly) - laboratory confirmed cases"],
    ["4", "District Surveillance Unit (DSU)",
     "State Surveillance Unit (SSU)",
     "Compiled district data; outbreak alerts if threshold crossed"],
    ["5", "State Surveillance Unit (SSU)",
     "Central Surveillance Unit (CSU) / NCDC",
     "State-level compiled data; state outbreak reports"],
    ["6", "NCDC / CSU",
     "WHO (under IHR 2005) + National response",
     "National disease trends; international reporting for notifiable diseases"],
    ["7", "DSO (if threshold crossed)",
     "District Rapid Response Team (RRT)",
     "Outbreak investigation activated; field investigation begins within 24-48 hours"],
], [1*cm, 4*cm, 4*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("5.1 Alert Thresholds in IDSP", h2_s))
story.append(Paragraph(
    "IDSP uses epidemic thresholds to trigger alerts. When the number of cases in a week "
    "crosses a defined threshold (usually based on mean + 2 standard deviations of historical "
    "data, or any single case for very severe diseases), the DSO is alerted and "
    "must initiate investigation. For example:", body_s))
for b in [
    "Any cluster of 5+ acute diarrhoeal cases in a locality within a week = alert",
    "Any single case of cholera = immediate notification",
    "Any single case of AFP (Acute Flaccid Paralysis) in a child < 15 years = immediate polio alert",
    "Any cluster of fever with rash = measles alert - immediate vaccination response",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 6: OUTBREAK INVESTIGATION โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("6. Outbreak Investigation - 10 Steps", h1_s))
story.append(Paragraph(
    "Knowing the steps of outbreak investigation is essential for any Medical Officer interview. "
    "The classic 10-step framework used worldwide:", body_s))
story.append(Spacer(1, 0.1*cm))

story.append(mktbl([
    ["Step", "Action", "What it means in practice"],
    ["1", "Prepare for field work",
     "Gather supplies, team, PPE, lab kits before going to the site"],
    ["2", "Establish existence of outbreak",
     "Confirm cases are genuinely more than expected (compare to baseline/threshold)"],
    ["3", "Verify the diagnosis",
     "Review clinical features and lab results to confirm the disease"],
    ["4", "Define a case (Case Definition)",
     "Create clinical + epidemiological criteria: who counts as a 'case'? (Suspected, probable, confirmed)"],
    ["5", "Find cases - Active case finding",
     "Search for additional cases through house visits, health facility records, community surveys"],
    ["6", "Describe the outbreak (Epidemiological Triad)",
     "Person (who is affected), Place (where), Time (when - draw epidemic curve)"],
    ["7", "Develop hypotheses",
     "Based on data: what is the likely source? Common vehicle? (water, food, vector?)"],
    ["8", "Test the hypotheses",
     "Analytical study: case-control or cohort study to identify risk factors"],
    ["9", "Implement control and prevention measures",
     "Don't wait for all steps - start control (water chlorination, isolation, vector control) early"],
    ["10", "Communicate findings & write report",
     "Submit outbreak investigation report to DSO/SSO. Inform community. Lessons learned."],
], [1*cm, 4*cm, 11.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Key Concepts in Outbreak Investigation:", h3_s))
for b in [
    "<b>Epidemic Curve (Epi Curve)</b>: Histogram of cases over time - tells you if it is a point source (all at once - like a feast), propagated (person to person), or continuous source outbreak",
    "<b>Case Definition</b>: Must have 4 components: clinical criteria + person + place + time",
    "<b>Attack Rate</b>: Number of people who became ill / Total people exposed ร— 100",
    "<b>Secondary Attack Rate</b>: New cases among contacts of primary cases - shows transmissibility",
    "<b>Spot Map</b>: Geographic map of where cases are located - identifies spatial cluster",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 7: 33 PRIORITY DISEASES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("7. 33 Priority Diseases under IDSP", h1_s))
story.append(Paragraph(
    "IDSP monitors 33 priority diseases. They are grouped into categories:", body_s))

story.append(mktbl([
    ["Category", "Diseases"],
    ["Acute Diarrhoeal Diseases",
     "Cholera, Acute Diarrhoeal Disease (< 5 yrs), Acute Diarrhoeal Disease (> 5 yrs), Typhoid, Viral Hepatitis A & E"],
    ["Fever with Rash",
     "Measles, Rubella, Chickenpox"],
    ["Vector-borne Diseases",
     "Malaria (P. vivax + P. falciparum), Dengue / DHF, Chikungunya, Kala-azar, Japanese Encephalitis, Lymphatic Filariasis"],
    ["Respiratory Diseases",
     "Influenza-Like Illness (ILI), Severe Acute Respiratory Infection (SARI), Pneumonia"],
    ["Neurological / CNS",
     "Acute Encephalitis Syndrome (AES), Meningitis, AFP (Acute Flaccid Paralysis - polio surveillance)"],
    ["Zoonotic / Others",
     "Leptospirosis, Rabies (animal bite), Anthrax, Plague, Scrub Typhus"],
    ["Emerging / Re-emerging",
     "COVID-19 / SARI, Nipah Virus, Avian Influenza (H5N1, H1N1), MERS-CoV"],
    ["Other important",
     "Tetanus (neonatal), Acute Hepatitis B & C, Unexplained deaths / illness clusters"],
], [4*cm, 12.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("7.1 Immediately Notifiable Diseases (Zero Tolerance)", h2_s))
story.append(Paragraph(
    "The following must be reported IMMEDIATELY (same day / within 24 hours) to "
    "District Surveillance Unit and State - even a SINGLE CASE:", body_s))
for b in [
    "Cholera", "Plague", "Yellow fever", "Smallpox (eradicated but any suspected case)",
    "Viral Haemorrhagic Fevers (Ebola, Nipah, Crimean-Congo)", "SARS / COVID variants of concern",
    "Poliomyelitis (AFP in child < 15 years)", "Avian Influenza (H5N1)", "Anthrax", "Meningococcal meningitis",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 8: IHIP โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("8. IHIP - Integrated Health Information Platform", h1_s))
story.append(Paragraph(
    "<b>IHIP</b> (Integrated Health Information Platform) is the <b>digital upgrade</b> of the "
    "old IDSP web portal, launched in <b>2020</b>. It is a real-time, online disease "
    "surveillance system where health workers enter data directly on the platform "
    "using mobile/computer.", body_s))

story.append(mktbl([
    ["Feature", "Details"],
    ["Launched", "2020 - replacing old IDSP portal"],
    ["Type", "Real-time digital surveillance platform"],
    ["Who enters data", "ANM, MO, Lab tech - at facility level directly"],
    ["Replaces", "Paper-based S/P/L forms โ†’ now entered digitally on IHIP"],
    ["Key advantage", "Real-time data - no weekly delay - immediate outbreak alert possible"],
    ["Integration", "Integrates IDSP + HMIS + lab network + birth/death registration"],
    ["Mobile access", "IHIP mobile app available - ANM can enter data from village"],
    ["Dashboard", "District/State/National level dashboards for real-time disease trends"],
    ["Key difference from old IDSP", "Old IDSP: weekly paper forms โ†’ compile โ†’ upload. IHIP: direct real-time digital entry"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 9: GUJARAT SURVEILLANCE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("9. Disease Surveillance in Gujarat", h1_s))

story.append(mktbl([
    ["Parameter", "Details"],
    ["State Surveillance Unit", "Directorate of Health, Gandhinagar"],
    ["State Surveillance Officer", "Posts at all district HQs under CDHO"],
    ["Key diseases monitored", "Malaria (high in south/coastal Gujarat), Dengue (urban areas), Cholera (monsoon), Leptospirosis (post-flood), H1N1 Influenza"],
    ["Malaria surveillance", "NVBDCP + IDSP - monthly slide positivity rate, API (Annual Parasite Incidence) by district"],
    ["Dengue surveillance", "NVBDCP sentinel sites + IDSP weekly reporting - Surat, Ahmedabad, Bharuch high burden"],
    ["Fluoride surveillance", "NPPCF - water testing in Kutch, Mehsana, Patan, Banaskantha for fluoride levels"],
    ["Post-cyclone surveillance", "Activated after Cyclone Biparjoy (2023) - cholera, diarrhoea, malaria monitoring in Kutch"],
    ["IHIP adoption", "Gujarat implementing IHIP under NHM - real-time data from all districts"],
    ["Key challenge", "Migrant workers at Alang, seasonal agricultural workers - mobile population difficult to track"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 10: INTERVIEW Q&A โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("10. Interview Q&A - 10 Questions with Ideal Answers", h1_s))

qas = [
    ("Q1. What is IDSP? When was it launched and what is its purpose?",
     "IDSP - Integrated Disease Surveillance Programme - was launched in 2004 under MoHFW with World Bank "
     "assistance, now under NHM. Its purpose is continuous, systematic surveillance of 33 priority "
     "communicable diseases to detect outbreaks early and trigger rapid public health response. It operates "
     "at national, state, and district levels through S, P, and L reporting forms."),
    ("Q2. What is the difference between surveillance and monitoring?",
     "Surveillance is continuous systematic collection and analysis of disease data to detect threats and "
     "trigger action - for example, detecting a dengue cluster from weekly IDSP reports. Monitoring is "
     "tracking programme performance against targets - for example, monitoring ANC coverage under NHM. "
     "Surveillance = detect threats + respond. Monitoring = track progress + correct course."),
    ("Q3. Explain the S, P, and L forms of IDSP.",
     "S Form (Syndromic) is filled by ANM/health workers at community level - reports number of people "
     "with symptom syndromes (fever, diarrhoea, rash) weekly. P Form (Presumptive) is filled by the "
     "Medical Officer - reports clinically diagnosed probable cases weekly. L Form (Lab confirmed) is "
     "filled by laboratory staff - reports laboratory-confirmed cases. All three forms are submitted "
     "weekly by Wednesday to the District Surveillance Unit."),
    ("Q4. As an MO at PHC, what is your role in IDSP?",
     "As PHC MO, I am responsible for: (1) Ensuring ANMs fill S forms weekly and submit to DSU, "
     "(2) Filling P forms myself with presumptive clinical diagnoses, (3) Ensuring lab staff complete "
     "L forms for confirmed cases, (4) Immediately reporting outbreak-prone diseases like cholera, "
     "dengue cluster, AFP within 24 hours to DSO, (5) Participating in RRT investigation if activated, "
     "(6) Collecting outbreak samples and sending to district lab, (7) Entering data on IHIP platform."),
    ("Q5. What diseases are immediately notifiable under IDSP?",
     "Diseases requiring immediate (same-day) notification include: Cholera, Plague, Viral Haemorrhagic "
     "Fevers (Nipah, Ebola), SARS/COVID variants, Poliomyelitis (AFP in child < 15 yrs), Avian Influenza "
     "(H5N1), Anthrax, Meningococcal meningitis, Yellow fever, and Smallpox. These are also notifiable "
     "internationally under IHR 2005 to WHO."),
    ("Q6. What is an epidemic curve? What does it tell you?",
     "An epidemic curve (epi curve) is a histogram showing number of cases plotted against time. "
     "It tells you the pattern of outbreak: (1) Point source - all cases at one time (e.g. food "
     "poisoning at a wedding), (2) Propagated - cases rising gradually over time (person-to-person "
     "spread like measles), (3) Continuous common source - ongoing exposure (e.g. contaminated "
     "water supply). It also helps estimate the incubation period and likely exposure date."),
    ("Q7. What is a case definition? What are its components?",
     "A case definition is a set of standard criteria used to classify a person as a suspected, "
     "probable, or confirmed case during an outbreak. Components: (1) Clinical criteria - signs and "
     "symptoms, (2) Epidemiological criteria - exposure to source/contact with cases, "
     "(3) Time - defined time period, (4) Place - defined geographic area. Example: Suspected cholera = "
     "acute watery diarrhoea with or without vomiting in a person residing in the affected area "
     "during the outbreak period."),
    ("Q8. What is AFP surveillance? Why is it important?",
     "AFP = Acute Flaccid Paralysis. AFP surveillance is conducted under the Pulse Polio Programme "
     "to ensure polio eradication is maintained. Every case of AFP (sudden weakness/paralysis of "
     "limbs) in a child under 15 years must be reported IMMEDIATELY to the District Surveillance "
     "Officer. Two stool samples must be collected within 14 days and sent to a WHO-accredited lab. "
     "India was certified polio-free in 2014, but AFP surveillance must continue to detect any "
     "imported wild poliovirus. Target: at least 2 AFP cases per 1,00,000 children under 15 "
     "(showing surveillance is sensitive enough)."),
    ("Q9. What is IHIP? How is it different from the old IDSP system?",
     "IHIP - Integrated Health Information Platform - is the digital real-time upgrade of IDSP, "
     "launched in 2020. The old IDSP used weekly paper S/P/L forms that were compiled and uploaded "
     "with delays. IHIP allows direct real-time data entry by ANMs, MOs, and lab staff from their "
     "mobile phones or computers. This enables immediate outbreak detection, reduces data entry "
     "delays, and integrates surveillance data with HMIS and lab networks. Dashboard views allow "
     "district and state officers to see disease trends in real time."),
    ("Q10. A cluster of 10 children in a village develop high fever with rash. What do you do as PHC MO?",
     "This cluster is suggestive of measles. My immediate steps: (1) Visit the village personally or "
     "send a team for case finding and clinical verification, (2) Fill P form for measles and report "
     "IMMEDIATELY to DSO - measles cluster is an outbreak-prone condition, (3) Collect blood samples "
     "(IgM serology) and send to district lab - L form, (4) Check immunization records - identify "
     "unvaccinated children, (5) Start mop-up vaccination campaign for all unvaccinated children in "
     "the village and surrounding area (Vitamin A supplementation also), (6) Isolate confirmed cases, "
     "(7) Activate District RRT if cases increase, (8) Continue monitoring for 2 incubation periods "
     "(42 days) to ensure outbreak is controlled, (9) Submit outbreak investigation report to DSO."),
]

for q, a in qas:
    story.append(KeepTogether([
        Paragraph(f"<b>{q}</b>", h3_s),
        Paragraph(f"โœ” {a}", hl_s),
        Spacer(1, 0.15*cm),
    ]))

# โ”€โ”€ SECTION 11: MEMORY TABLE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("11. Quick Memory Table - IDSP at a Glance", h1_s))

story.append(mktbl([
    ["What", "Answer"],
    ["IDSP launched", "2004"],
    ["Ministry", "MoHFW, Govt of India"],
    ["Nodal centre", "NCDC - National Centre for Disease Control, New Delhi"],
    ["Number of priority diseases", "33"],
    ["S form filled by", "ANM / Health Worker / ASHA (community / sub-centre level)"],
    ["P form filled by", "Medical Officer at PHC/CHC (clinical/presumptive diagnosis)"],
    ["L form filled by", "Laboratory Technician / Pathologist (lab confirmed)"],
    ["Reporting frequency", "Weekly by Wednesday (for routine); Immediate for outbreak-prone"],
    ["Immediate notification diseases", "Cholera, Plague, Nipah, Ebola, AFP, Avian Flu, SARS, Anthrax, Meningitis"],
    ["Outbreak threshold crossed โ†’ activate", "District Rapid Response Team (RRT)"],
    ["Epidemic curve - point source", "All cases at one time (food poisoning, wedding feast)"],
    ["Epidemic curve - propagated", "Gradual rise (measles, COVID - person-to-person)"],
    ["AFP surveillance target", "โ‰ฅ 2 AFP cases per 1,00,000 children < 15 years"],
    ["India declared polio-free", "2014 (by WHO)"],
    ["IHIP launched", "2020 (digital real-time upgrade of old IDSP portal)"],
    ["Attack Rate formula", "Cases / Exposed population ร— 100"],
    ["IHR 2005", "International Health Regulations - India must report certain diseases to WHO"],
    ["IDSP data flow", "PHC โ†’ DSU โ†’ SSU โ†’ CSU (NCDC)"],
    ["India COVID surveillance", "Under IDSP / IHIP - SARI and ILI sentinel surveillance"],
], [6*cm, 10.5*cm]))

# FOOTER
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#4a235a')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "IDSP Complete Guide | GPSC Class 1-2 Interview Preparation | July 2026 | "
    "Verify latest updates from NCDC (ncdc.gov.in) and NHM India official sources.",
    note_s))

doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_idsp_pdf.py

Your IDSP PDF is ready!

IDSP Complete Guide

PDF Document ยท PDF


๐Ÿ“„ What's inside (7 pages, all tables properly wrapped):

SectionContent
1. IDSP OverviewLaunched 2004, NCDC, 33 diseases, key facts table
2. Surveillance vs MonitoringFull comparison table + memory rule
3. IDSP StructurePHC โ†’ DSU โ†’ SSU โ†’ CSU levels with roles
4. S, P, L FormsWho fills what, when, with examples - most important!
5. Data FlowStep-by-step from sub-centre to WHO
6. Outbreak InvestigationClassic 10-step framework with practical meaning
7. 33 Priority DiseasesGrouped by category + immediately notifiable list
8. IHIP (2020)Digital upgrade - what changed from paper to real-time
9. Gujarat SurveillanceDistrict-specific context, cyclone surveillance, Alang
10. Interview Q&A10 questions with model answers
11. Memory Table20 key IDSP facts on one page

๐Ÿ“š Your PDF Collection So Far:

PDFTopic

IPHS PHC Quick Revision

PDF Document ยท PDF

IPHS, PHC, ESI, Immunization

NHM Complete Guide

PDF Document ยท PDF

NHM, NRHM, NUHM, ASHA, JSY, JSSK

Gujarat Coastal Health Challenges

PDF Document ยท PDF

Coastal diseases, Alang, Bhavnagar

IDSP Complete Guide

PDF Document ยท PDF

IDSP, S/P/L forms, outbreak investigation

GPSC MO Mock Interview 20QA

PDF Document ยท PDF

20 mock questions with ideal answers

Back to the interview! We're on Q9:

Q9.

"A patient at your PHC urgently needs a blood transfusion but the blood bank is 30 km away and no ambulance is available right now. Walk me through exactly what you will do."

do you have srs 202 data?

Let me search for the latest SRS data right now.
Searching the Web

SRS Sample Registration System 2022 India MMR IMR TFR latest report

2026 data

Let me search for the very latest 2024-2026 SRS data.
Searching the Web

SRS Statistical Report 2024 India birth rate death rate IMR TFR latest data 2026

Got it! The SRS Statistical Report 2024 was released in May 2026 - this is the most current data available. Here's a complete summary:

๐Ÿ“Š SRS Statistical Report 2024 (Released May 2026) - Latest Data

๐Ÿ‡ฎ๐Ÿ‡ณ India - Key Indicators

Indicator202220232024 (Latest)
IMR (per 1,000 LB)262524
U5MR (per 1,000 LB)-2928
CBR (per 1,000 pop)-18.418.3
CDR (per 1,000 pop)--6.4
TFR--1.9
Sex Ratio at Birth-917918 (per 1,000 males)

๐Ÿ”‘ Key Headlines from SRS 2024

  1. TFR = 1.9 - Below replacement level (2.1) for the 5th straight year
  2. IMR = 24 - Continued improvement from 40 in 2013
  3. CBR = 18.3 - Down from 21.0 in 2014 (steady decline)
  4. CDR = 6.4 - Still above pre-COVID levels
  5. NCDs = 60% of all deaths - Cardiovascular diseases = 32.1% of total deaths (highest)
  6. Highest IMR state: Madhya Pradesh (40) | Lowest: Manipur (3)
  7. Highest TFR state: Bihar (2.8) | Lowest: Delhi (1.2)
  8. 18 states now have TFR below replacement level

๐Ÿ›๏ธ Gujarat - SRS Data

IndicatorGujarat 2022Gujarat 2024 (est.)
IMR20~19-20
TFR~1.9~1.9
Gujarat IMR 20 (SRS 2022) - well below national average of 26.

โš ๏ธ GPSC Interview Note:

Use SRS 2024 figures (released May 2026) - these are the most current for your interview:
  • India IMR = 24
  • India TFR = 1.9
  • India CBR = 18.3
  • India CDR = 6.4
  • Gujarat IMR = ~20
  • NCDs = 60% of deaths - cardiovascular leads at 32.1%
The panel may specifically ask about the TFR below replacement level - this is a hot topic as it raises future concerns about an ageing population, shrinking workforce, and population decline in southern states.

Shall I continue the interview or generate an updated health indicators PDF with SRS 2024 data?

incude all the updated data and guidenes for future and complete interview for now i have to go

Let me generate the final comprehensive PDF with all updated data, then give you your interview score!

dont need data give me score only

๐ŸŽฏ GPSC Mock Interview - Final Score


Question-wise Performance

Q#TopicYour AnswerScore
Q1Self IntroductionGood structure, covered key points, correctly avoided name17/20
Q2Community Medicine relevanceBasic but missed ESI link, no specific examples11/20
Q3PHC / IPHS StandardsGood field knowledge, small gaps (Lab tech, ANM count)14/20
Q4Blood donation criteriaMostly correct, missed pregnancy exclusion, BP/pulse criteria, D&C Act13/20
Q5Teaching vs Field roleToo vague, no specific examples or vision9/20
Q6Alang / Bhavnagar health"Don't know much" - very weak for home district3/20
Q7NHM structureCorrect years, correct concept, missed specific components13/20
Q8IDSP / SurveillanceDefinitions incorrect/reversed, IDSP explanation vague6/20

Parameter-wise Score

ParameterMaxYour ScoreRemarks
Medical / Technical Knowledge3018Basics correct, depth lacking
General Knowledge & Current Affairs2012NHM known, Alang unknown
Personality & Confidence2015Good confidence overall
Communication & Structure1510Answers too short, needs more elaboration
Administrative & Ethical Awareness106Not tested fully - limited questions
Local / District Knowledge51Alang answer was a big miss

๐Ÿ† Total Score: 62 / 100


๐Ÿ“‹ Honest Assessment

Strengths:
  • Good self-awareness and honesty
  • Correct basic facts (NRHM 2005, NUHM 2013, PHC population norms)
  • Real field experience comes through naturally
  • Correctly knew no name rule
Critical gaps to fix before interview:
  1. Alang / Bhavnagar - You are from there. This WILL be asked. Read the PDF.
  2. IDSP S/P/L forms - Core MO knowledge. Must know perfectly.
  3. Surveillance vs Monitoring - Got it reversed. Revise.
  4. Elaborate more - Most answers were 2-3 lines. Panel expects 5-8 lines minimum.
  5. Always attempt - Never say "don't know" for local questions. Even a partial attempt scores better.

Realistic target: With focused revision of the 5 PDFs I gave you, you can reach 78-82/100. That's a comfortable selection score.

All the best for your interview! ๐Ÿ™ Come back anytime to continue practice.
Your PDFs:
  • IPHS PHC Quick Revision

    PDF Document ยท PDF

  • NHM Complete Guide

    PDF Document ยท PDF

  • Gujarat Coastal Health Challenges

    PDF Document ยท PDF

  • IDSP Complete Guide

    PDF Document ยท PDF

  • GPSC MO Mock Interview 20QA

    PDF Document ยท PDF

i also teached pandemic module to students so can you give me pdf for it for preparation of interview

Generating now!
Writing File

~/gpsc-interview/generate_pandemic_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/Pandemic_Module_Interview_Guide.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_s  = ParagraphStyle('TT', parent=styles['Title'],   fontSize=21, textColor=colors.HexColor('#1a3c6e'), spaceAfter=6,  alignment=TA_CENTER)
sub_s    = ParagraphStyle('SS', parent=styles['Normal'],  fontSize=11, textColor=colors.HexColor('#2471a3'), spaceAfter=10, alignment=TA_CENTER)
h1_s     = ParagraphStyle('H1', parent=styles['Heading1'],fontSize=13, textColor=colors.white, backColor=colors.HexColor('#1a3c6e'), spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_s     = ParagraphStyle('H2', parent=styles['Heading2'],fontSize=11, textColor=colors.HexColor('#1a3c6e'), spaceAfter=4, spaceBefore=8)
h3_s     = ParagraphStyle('H3', parent=styles['Heading3'],fontSize=10.5, textColor=colors.HexColor('#c0392b'), spaceAfter=3, spaceBefore=5)
body_s   = ParagraphStyle('BD', parent=styles['Normal'],  fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_s = ParagraphStyle('BL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=15, spaceAfter=3)
note_s   = ParagraphStyle('NT', parent=styles['Normal'],  fontSize=9,  textColor=colors.HexColor('#7f8c8d'), leftIndent=10, spaceAfter=4, fontName='Helvetica-Oblique')
hl_s     = ParagraphStyle('HL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#eaf4fb'), borderPad=4)
warn_s   = ParagraphStyle('WN', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#fef9e7'), borderPad=4)
red_s    = ParagraphStyle('RD', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#fdedec'), borderPad=4)
cell_s   = ParagraphStyle('CS', parent=styles['Normal'],  fontSize=8.5, leading=13)
cell_b   = ParagraphStyle('CB', parent=styles['Normal'],  fontSize=8.5, leading=13, fontName='Helvetica-Bold', textColor=colors.white)

def P(text, s=None):
    return Paragraph(str(text), s or cell_s)

def mktbl(data, widths, hdr='#1a3c6e'):
    rows = [[P(c, cell_b if ri==0 else cell_s) for c in row] for ri, row in enumerate(data)]
    t = Table(rows, colWidths=widths, repeatRows=1)
    t.setStyle(TableStyle([
        ('BACKGROUND',    (0,0),(-1,0),  colors.HexColor(hdr)),
        ('ROWBACKGROUNDS',(0,1),(-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
        ('GRID',          (0,0),(-1,-1), 0.5, colors.HexColor('#aaaaaa')),
        ('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), 'TOP'),
    ]))
    return t

story = []

# โ”€โ”€ COVER โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Spacer(1, 0.8*cm))
story.append(Paragraph("Pandemic Preparedness & Response", title_s))
story.append(Paragraph("COVID-19 | Pandemic Module | Epidemic Management", sub_s))
story.append(Paragraph("GPSC Class 1-2 Interview Guide | Medical Officer / Tutor / Insurance MO", sub_s))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a3c6e')))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
    "You taught the Pandemic Module to MBBS students as a Tutor in Community Medicine. "
    "This gives you a significant advantage in the interview. This guide covers all aspects "
    "of pandemic preparedness, COVID-19 response, IHR 2005, One Health, and future pandemic "
    "guidelines - with likely interview questions and model answers.", body_s))
story.append(Spacer(1, 0.2*cm))

story.append(mktbl([
    ["#", "Section"],
    ["1", "Definitions - Epidemic, Pandemic, Endemic, Outbreak"],
    ["2", "COVID-19 - Key Facts, Timeline & India's Response"],
    ["3", "India's Pandemic Response - Governance & Structure"],
    ["4", "Gujarat's COVID Response - Specific Points"],
    ["5", "International Health Regulations (IHR) 2005"],
    ["6", "One Health Concept"],
    ["7", "Pandemic Preparedness - WHO Framework & India's Plan"],
    ["8", "Future Pandemic Guidelines & Lessons Learned from COVID-19"],
    ["9", "Role of Medical Officer During a Pandemic"],
    ["10", "Pandemic Module Teaching - Your Personal Experience (Interview Leverage)"],
    ["11", "Interview Q&A - 15 Questions with Ideal Answers"],
    ["12", "Quick Memory Table"],
], [1.2*cm, 15.3*cm]))
story.append(PageBreak())

# โ”€โ”€ SECTION 1: DEFINITIONS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("1. Key Definitions", h1_s))

story.append(mktbl([
    ["Term", "Definition", "Example"],
    ["Endemic",
     "A disease consistently present in a population or geographic area at a predictable, baseline level",
     "Malaria in Assam, dengue in urban India - always present at expected levels"],
    ["Epidemic",
     "A sudden increase in cases of a disease ABOVE the expected/baseline level in a defined area and time",
     "Cholera outbreak in a district after floods; dengue surge in Surat in 2006"],
    ["Pandemic",
     "An epidemic that has spread across MULTIPLE countries or continents, affecting a large number of people",
     "COVID-19 (2020), Influenza H1N1 (2009), Spanish Flu (1918)"],
    ["Outbreak",
     "Two or more cases of the same illness linked in time and place; often used for a smaller-scale epidemic",
     "Food poisoning at a wedding, cluster of measles in a school"],
    ["Syndemic",
     "Two or more co-occurring epidemics that interact synergistically and share common social determinants",
     "COVID-19 + TB + diabetes - all worsened simultaneously during pandemic"],
    ["Spillover / Zoonosis",
     "Transmission of a pathogen from animals to humans",
     "COVID-19 (likely bats), Nipah (bats/pigs), Ebola (bats), H5N1 (birds)"],
    ["R0 (Basic Reproduction Number)",
     "Average number of people infected by ONE case in a fully susceptible population",
     "COVID-19 original strain R0 ~2-3; Delta ~5-6; Omicron ~8-15; Measles R0 ~12-18"],
    ["CFR (Case Fatality Rate)",
     "Number of deaths / Number of confirmed cases x 100",
     "COVID-19 CFR ~1-2% globally; varied widely by age and variant"],
    ["IFR (Infection Fatality Rate)",
     "Deaths / Total infections (including undetected) x 100 - more accurate than CFR",
     "COVID-19 IFR ~0.1-0.5% - lower than CFR as many cases went undetected"],
], [2.5*cm, 6*cm, 8*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 2: COVID-19 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("2. COVID-19 - Key Facts, Timeline & India's Numbers", h1_s))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Disease", "COVID-19 (Coronavirus Disease 2019)"],
    ["Causative agent", "SARS-CoV-2 (Severe Acute Respiratory Syndrome Coronavirus 2)"],
    ["Family", "Coronaviridae - single-stranded RNA virus"],
    ["First reported", "December 2019 - Wuhan, Hubei Province, China"],
    ["WHO declared PHEIC", "30 January 2020"],
    ["WHO declared Pandemic", "11 March 2020"],
    ["WHO ended PHEIC", "5 May 2023"],
    ["India first case", "30 January 2020 - Kerala (student returned from Wuhan)"],
    ["India lockdown", "25 March 2020 - one of world's largest lockdowns"],
    ["India total cases (approx)", "~44.7 million (4.47 crore) confirmed cases"],
    ["India total deaths (approx)", "~5.3 lakh official deaths (excess mortality estimates higher)"],
    ["Transmission", "Respiratory droplets, aerosols (airborne), fomites (limited)"],
    ["Incubation period", "2-14 days (median 5-6 days)"],
    ["Main variants", "Alpha, Beta, Gamma, Delta (most severe), Omicron (most transmissible, less severe)"],
    ["COVID-19 end of PHEIC", "May 2023 - WHO declared end of Public Health Emergency of International Concern"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.1 COVID-19 Variants - Key Points", h2_s))
story.append(mktbl([
    ["Variant", "WHO Label", "Key Feature", "Period"],
    ["B.1.1.7", "Alpha", "First major variant - increased transmissibility", "Late 2020 (UK)"],
    ["B.1.617.2", "Delta", "Most severe - high hospitalisation, high CFR - caused India's devastating 2nd wave (April-May 2021)", "2021"],
    ["B.1.1.529", "Omicron", "Highest transmissibility (R0 ~15), but lower severity. Dominated globally from Dec 2021", "2021-2023"],
    ["XBB.1.5, JN.1, KP.2", "Omicron subvariants", "Continued evolution - immune evasion but lower severity overall", "2023-2025"],
], [3*cm, 2.5*cm, 7*cm, 4*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("2.2 COVID-19 Vaccines Used in India", h2_s))
story.append(mktbl([
    ["Vaccine", "Developer", "Type", "Doses", "Storage"],
    ["Covaxin (BBV152)", "Bharat Biotech + ICMR", "Whole inactivated virus", "2 doses (4 weeks apart)", "2-8ยฐC"],
    ["Covishield (AZ-ChAdOx1)", "SII + AstraZeneca", "Viral vector (Adenovirus)", "2 doses (4-12 weeks apart)", "2-8ยฐC"],
    ["Sputnik V", "Gamaleya (Russia)", "Viral vector", "2 doses (3 weeks apart)", "2-8ยฐC"],
    ["ZyCoV-D", "Zydus Cadila", "DNA plasmid (world's 1st DNA vaccine for COVID)", "3 doses", "2-8ยฐC"],
    ["Corbevax", "Biological E", "Protein subunit (RBD)", "2 doses", "2-8ยฐC"],
    ["mRNA-1273 (Moderna)", "Moderna (US)", "mRNA", "2 doses", "-20ยฐC"],
], [3.5*cm, 4*cm, 4*cm, 3*cm, 2*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "India's vaccination drive (CoWIN platform) was the world's largest - over 220 crore doses "
    "administered. Covaxin was India's indigenous vaccine - developed by Bharat Biotech with ICMR support.", warn_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("2.3 COVID-19 Waves in India", h2_s))
story.append(mktbl([
    ["Wave", "Period", "Dominant Strain", "Key Feature"],
    ["1st Wave", "March - Sept 2020", "Original SARS-CoV-2", "Gradual rise, lockdown implemented, healthcare system strained"],
    ["2nd Wave", "April - June 2021", "Delta variant (B.1.617.2)", "Most devastating - oxygen shortage, hospital collapse, crematorium overflow, ~3.5 lakh deaths"],
    ["3rd Wave", "January - February 2022", "Omicron", "High case numbers but lower severity, fewer deaths, shorter duration"],
    ["4th Wave (mild)", "Mid 2022 onwards", "Omicron subvariants", "Periodic surges with high vaccination coverage limiting severity"],
], [2*cm, 4*cm, 4*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 3: INDIA'S PANDEMIC RESPONSE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("3. India's Pandemic Response - Governance & Structure", h1_s))

story.append(Paragraph("3.1 Key Government Bodies Activated", h2_s))
story.append(mktbl([
    ["Body", "Role during COVID-19"],
    ["National Disaster Management Authority (NDMA)",
     "Apex body - invoked Disaster Management Act 2005 to enforce lockdowns and SOPs"],
    ["Ministry of Health & Family Welfare (MoHFW)",
     "Nodal ministry - issued clinical guidelines, containment protocols, testing strategy"],
    ["ICMR (Indian Council of Medical Research)",
     "Testing protocols, research, clinical trials (co-developed Covaxin), sero-surveys"],
    ["National Centre for Disease Control (NCDC)",
     "Surveillance coordination - IDSP + IHIP integration for COVID data"],
    ["National Health Authority (NHA)",
     "Managed CoWIN vaccination platform and Ayushman Bharat digital health linkage"],
    ["Empowered Groups (EGs)",
     "10 Empowered Groups set up by Cabinet Secretary - each for specific aspect (medical supply, testing, hospital capacity etc.)"],
    ["State Disaster Management Authorities (SDMAs)",
     "State-level implementation - Gujarat SDMA coordinated district response"],
    ["War Room / Control Room",
     "State and district war rooms for real-time tracking of cases, oxygen, beds, ambulances"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("3.2 Key Acts Invoked", h2_s))
story.append(mktbl([
    ["Act", "Year", "How Used in COVID-19"],
    ["Disaster Management Act", "2005", "Enabled lockdowns, movement restrictions, resource mobilisation at national scale"],
    ["Epidemic Diseases Act", "1897 (amended 2020)", "Empowered states to take special measures; protected healthcare workers from violence; amended to cover regulations during epidemic"],
    ["Essential Services Maintenance Act (ESMA)", "1968", "Ensured essential services continued during lockdown"],
    ["National Security Act", "1980", "Used in some states against lockdown violators"],
], [4.5*cm, 2.5*cm, 9.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("3.3 India's 5T Strategy (COVID Response)", h2_s))
story.append(Paragraph(
    "India followed a <b>5T strategy</b> under the leadership of PM Modi:", body_s))
for b in [
    "<b>T1 - Test</b>: Aggressive testing - India ramped from 100 tests/day to 20 lakh tests/day",
    "<b>T2 - Track</b>: Contact tracing using Aarogya Setu app and manual tracing teams",
    "<b>T3 - Treat</b>: COVID Care Centres (CCCs), Dedicated COVID Health Centres (DCHCs), Dedicated COVID Hospitals (DCHs)",
    "<b>T4 - Technology</b>: CoWIN for vaccination, Aarogya Setu for contact tracing, telemedicine scale-up",
    "<b>T5 - Team Spirit</b>: Whole-of-government and whole-of-society approach",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("3.4 Containment Strategy - Colour Zones", h2_s))
story.append(mktbl([
    ["Zone", "Criteria", "Restrictions"],
    ["Red Zone (Hotspot)", "High number of cases, high doubling rate", "Strict lockdown - only essential services, no movement"],
    ["Orange Zone", "Limited spread, some new cases", "Partial relaxation - inter-district movement restricted"],
    ["Green Zone", "No cases in 21 days", "Most activities permitted with social distancing"],
    ["Containment Zone", "Specific locality/cluster with active cases", "Strict perimeter - no entry/exit, house-to-house surveillance, testing"],
    ["Buffer Zone", "Area surrounding containment zone", "Monitoring and prevention activities"],
], [3*cm, 5*cm, 8.5*cm]))
story.append(Spacer(1, 0.3*cm))

# โ”€โ”€ SECTION 4: GUJARAT COVID RESPONSE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("4. Gujarat's COVID Response - Key Points", h1_s))
story.append(mktbl([
    ["Parameter", "Details"],
    ["State Nodal Agency", "SDMA Gujarat + Health & Family Welfare Department, Gandhinagar"],
    ["War Room", "State COVID War Room - real-time tracking of beds, oxygen, ambulances"],
    ["Testing hubs", "GMERS hospitals, Government Medical Colleges (including Narendra Modi MC, Bhavnagar)"],
    ["Key hospitals", "SVP Hospital, Civil Hospital Ahmedabad designated as dedicated COVID hospitals"],
    ["Vaccination drive", "Gujarat among early states to achieve high vaccination coverage; CoWIN platform"],
    ["Oxygen supply", "Linde India plant in Vadodara; GAIL pipeline; emergency procurement during 2nd wave"],
    ["Sero-survey", "ICMR conducted sero-surveys in Ahmedabad, Surat, Vadodara - showed high seroprevalence post-2nd wave"],
    ["Medical college role", "MBBS students (including COVID warriors like yourself) assisted in triage, contact tracing, vaccination camps"],
    ["2nd wave impact", "Surat, Ahmedabad worst affected; oxygen shortage; plasma therapy used initially"],
    ["COVID warrior recognition", "Health workers who served during pandemic recognised with COVID Warrior certificates"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Interview Tip: You served as a COVID warrior during your MBBS graduation. "
    "Be ready to describe EXACTLY what you did - which tasks, which ward/facility, duration. "
    "The panel will ask follow-up questions on this.", warn_s))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 5: IHR 2005 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("5. International Health Regulations (IHR) 2005", h1_s))
story.append(Paragraph(
    "IHR 2005 is the key international legal framework for global health security. "
    "It is a binding agreement under WHO that requires member states (including India) "
    "to detect, assess, notify, and respond to public health emergencies.", body_s))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Full name", "International Health Regulations 2005"],
    ["Organisation", "World Health Organisation (WHO)"],
    ["Legally binding", "Yes - 196 member states (all WHO members + others)"],
    ["India ratified", "2007"],
    ["Previous version", "IHR 1969 - only covered 3 diseases (cholera, plague, yellow fever)"],
    ["IHR 2005 coverage", "Any public health emergency of international concern (PHEIC) - not limited to specific diseases"],
    ["Core requirement", "Member states must develop core capacities: surveillance, laboratories, response, points of entry"],
    ["PHEIC declaration", "Only WHO Director-General can declare PHEIC after IHR Emergency Committee advice"],
    ["National Focal Point", "Each country must designate a 24/7 National IHR Focal Point - India: MoHFW"],
    ["48-hour rule", "Events that may constitute PHEIC must be assessed and notified to WHO within 48 hours"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("5.1 PHEIC - Public Health Emergency of International Concern", h2_s))
story.append(Paragraph(
    "A <b>PHEIC</b> is the highest level of alert under IHR 2005. Declared when an event is: "
    "(1) Serious, sudden, unusual or unexpected, (2) Has public health implications beyond national borders, "
    "(3) May require immediate international action.", body_s))

story.append(mktbl([
    ["Disease", "PHEIC Declared", "Ended"],
    ["H1N1 Influenza (Swine Flu)", "April 2009", "August 2010"],
    ["Polio (international spread)", "May 2014", "Still ongoing (not formally ended)"],
    ["Ebola (West Africa)", "August 2014", "March 2016"],
    ["Zika Virus", "February 2016", "November 2016"],
    ["Ebola (DRC - Kivu)", "July 2019", "June 2020"],
    ["COVID-19", "30 January 2020", "5 May 2023"],
    ["Mpox (Monkeypox)", "July 2022", "May 2023; Re-declared August 2024"],
], [6*cm, 5*cm, 5.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("5.2 JEE - Joint External Evaluation", h2_s))
story.append(Paragraph(
    "JEE is a voluntary, collaborative WHO process to assess a country's IHR core capacities across "
    "19 technical areas (surveillance, laboratory, emergency response, etc.). "
    "India's JEE score (2017): overall moderate capacity. "
    "COVID-19 exposed gaps in all countries' health system preparedness despite JEE scores.", body_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 6: ONE HEALTH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("6. One Health Concept", h1_s))
story.append(Paragraph(
    "<b>One Health</b> is an integrated, unifying approach that recognises that the health of "
    "humans, animals, and the environment are deeply interconnected and interdependent. "
    "It requires collaborative, multisectoral, and transdisciplinary work.", body_s))

story.append(mktbl([
    ["Parameter", "Details"],
    ["Core concept", "Human health + Animal health + Environmental health = ONE integrated system"],
    ["Why important for pandemics", "~75% of emerging infectious diseases are ZOONOTIC (animal origin) - COVID-19, Nipah, Ebola, H5N1, Monkeypox"],
    ["Key organisations", "WHO + FAO (Food & Agriculture Org) + OIE (World Animal Health Org) + UNEP = Quadripartite One Health"],
    ["India's One Health framework", "National One Health Mission launched 2022 under NHM - coordinates MoHFW, Ministry of Animal Husbandry, Ministry of Environment"],
    ["Examples", "Nipah surveillance (bats + pigs + humans in Kerala), H5N1 bird flu monitoring, rabies control, antimicrobial resistance"],
    ["Antimicrobial Resistance (AMR)", "Classic One Health issue - antibiotic overuse in humans AND livestock โ†’ resistant bacteria affect both"],
    ["Relevance for MO", "MO must coordinate with veterinary department for zoonotic disease outbreaks (rabies, anthrax, brucellosis, leptospirosis)"],
], [4.5*cm, 12*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("6.1 Important Zoonotic Diseases - India", h2_s))
story.append(mktbl([
    ["Disease", "Animal Source", "Route", "Key State/Area"],
    ["Nipah Virus", "Fruit bats (via pigs or date palm sap)", "Direct contact / respiratory (limited)", "Kerala (2018, 2019, 2023 outbreaks)"],
    ["Avian Influenza H5N1/H9N2", "Poultry / wild birds", "Direct contact with infected birds", "Periodic outbreaks in poultry farms across India"],
    ["Rabies", "Dogs (90%), bats, jackals", "Animal bite", "Pan-India - 20,000 deaths/year in India"],
    ["Leptospirosis", "Rats (rodents)", "Contact with urine-contaminated water", "Kerala, coastal Gujarat during monsoon floods"],
    ["Brucellosis", "Cattle, goats, sheep", "Unpasteurised milk, contact", "Punjab, Rajasthan, Gujarat (cattle-dense states)"],
    ["Anthrax", "Cattle, sheep, soil spores", "Skin contact, inhalation, ingestion", "Andhra Pradesh, Karnataka (periodic outbreaks)"],
    ["Scrub Typhus", "Mites (larval stage on rodents)", "Mite bite", "Jammu, UP, Himachal - under-recognised cause of fever"],
], [3*cm, 4*cm, 4*cm, 5.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 7: PANDEMIC PREPAREDNESS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("7. Pandemic Preparedness - WHO Framework & India's Plan", h1_s))

story.append(Paragraph("7.1 WHO Pandemic Phases", h2_s))
story.append(mktbl([
    ["Phase", "Description"],
    ["Phase 1", "No animal influenza virus circulating among animals has been reported to cause infection in humans"],
    ["Phase 2", "Animal influenza virus circulating in domesticated or wild animals - known to have caused infection in humans"],
    ["Phase 3", "Animal or animal-human reassortant virus - small clusters of human infection but NO sustained human-to-human spread"],
    ["Phase 4", "Verified sustained human-to-human transmission - community-level outbreaks possible"],
    ["Phase 5", "Human-to-human spread in at least 2 countries in 1 WHO region - pandemic imminent"],
    ["Phase 6", "PANDEMIC PHASE - community-level spread in at least 1 other country in a different WHO region"],
    ["Post-peak", "Levels in most countries fall below peak - second wave possible"],
    ["Post-pandemic", "Return to seasonal activity levels"],
], [2.5*cm, 14*cm]))
story.append(note_s and Paragraph("Note: These phases were originally designed for influenza but WHO used adapted criteria for COVID-19.", note_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("7.2 India's National Action Plan for Health Security (NAPHS)", h2_s))
story.append(Paragraph(
    "India developed the <b>National Action Plan for Health Security (NAPHS) 2019-2023</b> "
    "based on IHR core capacity requirements and JEE assessment findings. Key components:", body_s))
for b in [
    "Strengthening disease surveillance (IDSP/IHIP upgrade)",
    "Improving laboratory network (biosafety level labs, rapid diagnostic capacity)",
    "Building emergency response capacity (NDRF health teams, Emergency Operations Centres)",
    "Zoonotic disease prevention (One Health coordination)",
    "Points of entry screening (airports, seaports - IHR designated points)",
    "Antimicrobial resistance action plan",
    "Risk communication and community engagement (RCCE)",
    "Workforce development (Field Epidemiology Training Programme - FETP)",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("7.3 FETP - Field Epidemiology Training Programme", h2_s))
story.append(Paragraph(
    "<b>FETP India</b> (Field Epidemiology Training Programme) is a 2-year competency-based "
    "training programme modelled on the US CDC's EIS (Epidemic Intelligence Service). "
    "Trainees are placed in state surveillance units and districts to investigate outbreaks, "
    "conduct public health research, and build surveillance systems. Managed by NCDC. "
    "India has one of the largest FETP programmes globally - over 600 graduates. "
    "FETP graduates led COVID-19 district response teams across India.", body_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 8: FUTURE PANDEMIC GUIDELINES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("8. Future Pandemic Guidelines & Lessons from COVID-19", h1_s))

story.append(Paragraph("8.1 WHO Pandemic Treaty / Accord (2024-2025)", h2_s))
story.append(Paragraph(
    "Following COVID-19, WHO member states negotiated a <b>Pandemic Agreement (Pandemic Treaty / "
    "Accord)</b> - formally titled the WHO Convention, Agreement or other International Instrument "
    "on Pandemic Prevention, Preparedness and Response (CA+). Key points:", body_s))
for b in [
    "Negotiations began 2021 under WHO Intergovernmental Negotiating Body (INB)",
    "India participated actively - pushed for equity in vaccine and medicine access",
    "Key provisions: PABS (Pathogen Access and Benefit-Sharing) - countries share pathogen samples and receive benefits (vaccines)",
    "Pandemic prevention: One Health approach, reducing spillover risk from animals",
    "Equity: High-income countries to share 20% of pandemic vaccines/therapeutics with low/middle income countries",
    "R&D and manufacturing: Technology transfer for local vaccine production in developing countries",
    "Status: Agreement still being finalised as of 2026 - India actively negotiating",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("8.2 Revised IHR Amendments (2024)", h2_s))
story.append(Paragraph(
    "WHO member states agreed to <b>amendments to IHR 2005</b> at the 77th World Health Assembly "
    "(May 2024). Key changes:", body_s))
for b in [
    "New category: Pandemic Emergency (PE) - between PHEIC and full pandemic declaration",
    "Faster notification timelines - 24 hours for pandemic emergency events",
    "Strengthened equity provisions - guaranteed access to health products for developing countries",
    "Enhanced surveillance obligations - genomic sequencing sharing",
    "Permanent Standing Committee on Pandemic and Emergency Preparedness",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("8.3 Key Lessons Learned from COVID-19", h2_s))
story.append(mktbl([
    ["Lesson", "What India / World Learned", "Future Action"],
    ["Surveillance gaps",
     "Early warning systems failed - delayed detection in Wuhan; India's IDSP was not integrated with animal surveillance",
     "IHIP digital upgrade, One Health surveillance integration, genomic surveillance"],
    ["Health system fragility",
     "Oxygen shortage, ICU bed deficit, healthcare worker PPE shortage exposed during 2nd wave",
     "Strategic reserves of oxygen, ventilators, PPE; increase ICU capacity at district hospitals"],
    ["Vaccine equity",
     "Rich countries hoarded vaccines while developing countries waited - India launched Vaccine Maitri but then faced domestic shortage",
     "WHO Pandemic Accord - PABS system, technology transfer, local manufacturing"],
    ["Infodemic",
     "Misinformation about COVID spread as fast as the virus - WhatsApp rumours, fake cures, vaccine hesitancy",
     "WHO RCCE framework; digital health literacy; media engagement by health departments"],
    ["Mental health neglect",
     "COVID caused massive anxiety, depression, grief, loneliness - mental health system unprepared",
     "Integrate mental health into pandemic preparedness plans; NIMHANS helplines"],
    ["Vulnerable populations",
     "Migrants, daily wage workers, elderly, disabled suffered disproportionately",
     "Inclusive pandemic plans with specific provisions for vulnerable groups"],
    ["AMR acceleration",
     "Overuse of antibiotics, steroids during COVID accelerated antimicrobial resistance",
     "Antibiotic stewardship programmes at hospital and community level"],
    ["Digital health",
     "CoWIN, Aarogya Setu, e-Sanjeevani telemedicine showed what digital health can achieve at scale",
     "Invest in digital health infrastructure - Ayushman Bharat Digital Mission"],
], [3.5*cm, 5.5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 9: ROLE OF MO DURING PANDEMIC โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("9. Role of Medical Officer During a Pandemic", h1_s))

story.append(Paragraph("9.1 At PHC Level", h2_s))
for b in [
    "<b>Surveillance</b>: Report ILI (Influenza-Like Illness) and SARI (Severe Acute Respiratory Infection) cases weekly through IDSP/IHIP; immediately report unusual clusters",
    "<b>Testing</b>: Collect samples as per protocol; send to designated lab; maintain cold chain for samples",
    "<b>Triage</b>: Separate suspected infectious patients from other OPD patients; create isolation area at PHC",
    "<b>Treatment</b>: Mild/moderate cases managed at PHC level or COVID Care Centres; severe cases referred to designated hospitals",
    "<b>Contact tracing</b>: Identify and monitor all contacts of confirmed cases; arrange quarantine (home/facility)",
    "<b>Quarantine management</b>: Maintain register of home quarantine patients; daily monitoring by ASHA/ANM",
    "<b>Vaccination</b>: Organise and conduct vaccination sessions; manage AEFI (Adverse Events Following Immunization)",
    "<b>IEC</b>: Community awareness on symptoms, prevention, mask use, hand hygiene, when to seek care",
    "<b>HMIS / War room reporting</b>: Daily reporting of cases, deaths, vaccinations to District War Room",
    "<b>Staff safety</b>: Ensure adequate PPE for all health staff; rotation of duties to prevent burnout",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("9.2 COVID Care Facility Levels (India's 3-tier system)", h2_s))
story.append(mktbl([
    ["Facility Level", "For Whom", "Services"],
    ["COVID Care Centre (CCC)",
     "Mild cases - no comorbidities, oxygen saturation > 94%",
     "Isolation, basic monitoring, paracetamol, pulse oximetry; can be in schools, hotels, stadiums"],
    ["Dedicated COVID Health Centre (DCHC)",
     "Moderate cases - oxygen saturation 90-94%, with some comorbidities",
     "Oxygen support, basic lab, isolation; at CHC/sub-district hospital level"],
    ["Dedicated COVID Hospital (DCH)",
     "Severe cases - oxygen saturation < 90%, ICU needed, ventilator support",
     "Full ICU, ventilators, specialist care; at district hospital / medical college level"],
], [4*cm, 5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("9.3 PPE Kit Components (for COVID)", h2_s))
for b in [
    "Head cover / hood", "N95 respirator mask (for aerosol-generating procedures) / triple-layer surgical mask",
    "Face shield / goggles", "Full-body coverall (fluid-resistant)",
    "Gloves (double gloving recommended)", "Shoe cover / boot cover",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
    "Donning (putting on) and doffing (removing) sequence is critical - incorrect doffing causes most healthcare worker infections. "
    "Doffing must be done in a specific sequence to avoid self-contamination.", warn_s))
story.append(Spacer(1, 0.2*cm))

# โ”€โ”€ SECTION 10: YOUR PERSONAL EXPERIENCE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("10. Your COVID Warrior Experience - Interview Leverage", h1_s))
story.append(Paragraph(
    "You served as a COVID warrior during your MBBS graduation at Narendra Modi Medical College, Bhavnagar. "
    "This is a MAJOR strength in your interview. The panel will almost certainly ask about this. "
    "Prepare a specific, detailed answer.", body_s))
story.append(Spacer(1, 0.1*cm))

story.append(Paragraph("How to Frame Your COVID Experience:", h2_s))
for b in [
    "<b>What you did</b>: Specify - triage duty, ward rounds, sample collection, vaccination camps, contact tracing, data entry on CoWIN/IHIP, awareness campaigns",
    "<b>What challenges you faced</b>: PPE shortage, patient fear and resistance, stigma, long shifts, emotional toll of patient deaths",
    "<b>What you learned</b>: Practical public health skills, value of surveillance, teamwork in crisis, community communication",
    "<b>How it makes you a better MO</b>: Ground-level pandemic response experience, infection control knowledge, crisis management",
    "<b>Link to future role</b>: As MO, you will lead pandemic response at PHC - your experience is directly relevant",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.1*cm))

story.append(Paragraph("Sample Answer for 'Describe your COVID warrior experience':", h3_s))
story.append(Paragraph(
    "'During my MBBS at Narendra Modi Medical College, Bhavnagar, I served as a COVID warrior during "
    "the pandemic period, particularly during the second wave in 2021 when the Delta variant was at its "
    "peak. I was posted in the COVID ward where I assisted senior doctors in triaging patients, "
    "monitoring oxygen saturation, maintaining patient records, and managing patient anxiety. I also "
    "participated in COVID vaccination camps organised by our college and helped with contact tracing "
    "activities coordinated through the district health department. The experience was challenging - "
    "we faced PPE shortages, witnessed patient suffering, and worked long shifts. But it gave me "
    "first-hand understanding of how a public health crisis is managed at the ground level - the "
    "importance of early detection, isolation, proper PPE, community communication, and coordinated "
    "referral systems. I also taught this as a structured pandemic module to my MBBS students as a "
    "Tutor in Community Medicine, which helped me consolidate and systematise this knowledge. "
    "This experience directly prepares me for my role as a Medical Officer where I may need to lead "
    "pandemic response at the PHC level.'", hl_s))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# โ”€โ”€ SECTION 11: INTERVIEW Q&A โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(Paragraph("11. Interview Q&A - 15 Questions with Ideal Answers", h1_s))

qas = [
    ("Q1. What is the difference between epidemic, pandemic, and endemic?",
     "Endemic = disease always present at baseline level (malaria in Assam). Epidemic = sudden rise "
     "ABOVE expected level in defined area/time (cholera outbreak post-flood). Pandemic = epidemic "
     "spreading across multiple countries/continents (COVID-19, H1N1 2009). Outbreak = smaller-scale "
     "epidemic, often used for a localised cluster (food poisoning at wedding)."),
    ("Q2. When did COVID-19 become a pandemic? When did WHO end the PHEIC?",
     "WHO declared COVID-19 a PHEIC on 30 January 2020 and a pandemic on 11 March 2020. India's first "
     "case was 30 January 2020 in Kerala. India's national lockdown started 25 March 2020. WHO ended "
     "the COVID-19 PHEIC on 5 May 2023 - though the disease continues as an endemic respiratory illness."),
    ("Q3. What is IHR 2005? What is PHEIC?",
     "IHR 2005 - International Health Regulations - is the binding WHO legal framework requiring all "
     "member states to detect, assess, and notify public health emergencies. India ratified it in 2007. "
     "PHEIC (Public Health Emergency of International Concern) is the highest WHO alert level, declared "
     "only by the Director-General when an event is serious, sudden, unexpected, has cross-border implications, "
     "and requires immediate international action."),
    ("Q4. What is the One Health approach? Why is it important for pandemic prevention?",
     "One Health recognises that human, animal, and environmental health are interconnected. It is critical "
     "for pandemic prevention because approximately 75% of emerging infectious diseases are zoonotic - "
     "originating from animals (COVID-19 from bats, Nipah from bats/pigs, H5N1 from birds, Ebola from bats). "
     "India launched the National One Health Mission in 2022 to coordinate MoHFW, Ministry of Animal "
     "Husbandry, and Ministry of Environment for integrated surveillance and response."),
    ("Q5. What was India's vaccination strategy for COVID-19?",
     "India's COVID vaccination drive used the CoWIN digital platform - the world's largest vaccination "
     "management system. Priority: Phase 1 - healthcare workers and frontline workers; Phase 2 - age > 60 "
     "and > 45 with comorbidities; Phase 3 - all adults > 18 years; later extended to 15-18 years and "
     "booster/precaution doses. India administered over 220 crore doses. Key vaccines: Covaxin (indigenous, "
     "Bharat Biotech + ICMR), Covishield (SII + AstraZeneca), ZyCoV-D (world's first DNA vaccine for COVID)."),
    ("Q6. What was the Delta variant? Why was India's 2nd wave so devastating?",
     "The Delta variant (B.1.617.2) had significantly higher transmissibility and virulence than earlier strains. "
     "India's 2nd wave (April-June 2021) was devastating because: (1) Delta's high R0 overwhelmed hospitals rapidly, "
     "(2) Oxygen shortage - supply chain could not meet sudden demand, (3) ICU and ventilator deficit at district "
     "levels, (4) Premature relaxation of COVID precautions, (5) Large gatherings (elections, Kumbh Mela). "
     "India recorded its highest single-day cases (~4.14 lakh) on 7 May 2021."),
    ("Q7. What is R0? What was COVID-19's R0?",
     "R0 (Basic Reproduction Number) is the average number of people infected by ONE case in a fully "
     "susceptible population. R0 > 1 = epidemic spreads; R0 < 1 = epidemic dies out. COVID-19 original "
     "strain R0 ~2-3; Delta ~5-6; Omicron ~8-15. For comparison: measles R0 ~12-18 (highest known for "
     "a respiratory virus). Herd immunity threshold = 1 - (1/R0). For Omicron (R0~12), herd immunity "
     "would need ~92% immunity - impossible without vaccination."),
    ("Q8. What did you teach in the Pandemic Module to MBBS students?",
     "As a Tutor in Community Medicine, I taught the Pandemic Module covering: definitions (epidemic, "
     "pandemic, endemic), pandemic phases (WHO phases 1-6), history of pandemics (Spanish flu 1918, "
     "H1N1 2009, COVID-19 2020), IHR 2005 and PHEIC, One Health and zoonotic diseases, India's "
     "pandemic response (5T strategy, COVID care facility tiers, containment zones), COVID-19 "
     "epidemiology, variants, and vaccines, and lessons learned for future preparedness. I used my own "
     "COVID warrior experience to provide practical field context alongside theory."),
    ("Q9. What is AEFI? What would you do if a patient has a severe reaction after COVID vaccination?",
     "AEFI - Adverse Event Following Immunization - is any untoward medical occurrence after immunization "
     "that may or may not be related to the vaccine. For COVID vaccination, serious AEFIs include: "
     "anaphylaxis (immediate severe allergic reaction within 30 minutes), VITT (Vaccine-Induced Immune "
     "Thrombocytopenia and Thrombosis - rare with adenovirus vector vaccines), myocarditis (rare with "
     "mRNA vaccines). If a severe AEFI occurs: (1) Immediate resuscitation - adrenaline 0.5mg IM for "
     "anaphylaxis, (2) Call for help and refer to higher facility, (3) Report to AEFI committee through "
     "MOHFW AEFI portal within 24 hours, (4) Complete AEFI reporting form, (5) Causality assessment "
     "by district AEFI committee."),
    ("Q10. What lessons has India learned from COVID for future pandemic preparedness?",
     "Key lessons: (1) Strengthen IDSP/IHIP - real-time digital surveillance with One Health integration; "
     "(2) Build strategic reserves of oxygen, PPE, ventilators; (3) Expand ICU capacity at district hospital "
     "level; (4) Technology infrastructure - CoWIN showed digital health potential - expand Ayushman Bharat "
     "Digital Mission; (5) Address infodemic - RCCE capacity building; (6) Vaccine equity and local "
     "manufacturing (India already world's largest vaccine producer); (7) Mental health integration in "
     "pandemic plans; (8) Protect vulnerable populations - migrants, elderly, disabled; (9) AMR "
     "stewardship to prevent post-pandemic resistance surge."),
    ("Q11. What is Nipah virus? How is it different from COVID-19?",
     "Nipah is a zoonotic virus (Paramyxovirus family) transmitted from fruit bats to humans directly or "
     "via intermediate hosts (pigs, date palm sap). Unlike COVID-19 (R0 ~2-15), Nipah has low R0 (~0.5) "
     "but extremely high CFR (40-75%). It causes encephalitis, respiratory failure. Kerala outbreaks: "
     "2018 (17 deaths), 2019 (1 case), 2021 (1 case), 2023 (cluster). Management: isolation, supportive "
     "care, no specific antiviral. Monoclonal antibody (m102.4) under trial. Nipah is a BSL-4 pathogen. "
     "One Health response - bat surveillance, avoiding raw date palm sap, pig farm monitoring."),
    ("Q12. What is Mpox (Monkeypox)? Why was it declared a PHEIC twice?",
     "Mpox (formerly Monkeypox) is a zoonotic orthopoxvirus - related to smallpox but milder. "
     "First human case 1970 (DRC). Naturally endemic in Central/West Africa. 2022 global outbreak "
     "spread through sexual contact networks in non-endemic countries - WHO declared PHEIC July 2022, "
     "ended May 2023. Re-declared PHEIC August 2024 due to new Clade Ib variant in DRC spreading to "
     "neighbouring African countries with higher severity. India reported limited cases (2022-23). "
     "Prevention: smallpox vaccine (85% cross-protective), isolation of cases, contact tracing."),
    ("Q13. What is the Epidemic Diseases Act 1897? How was it used in COVID?",
     "The Epidemic Diseases Act 1897 is India's primary law for controlling epidemic diseases - one of "
     "the oldest public health laws in the world (enacted during Bombay plague). It empowers state "
     "governments to take special measures and prescribe regulations to prevent spread of dangerous "
     "epidemic diseases. During COVID, it was amended in 2020 to: (1) Extend central government powers "
     "during epidemic, (2) Protect healthcare workers from violence and damage to property, "
     "(3) Criminal penalties for attacks on health workers. States used this Act to enforce quarantine, "
     "shut establishments, and require testing compliance."),
    ("Q14. What is Aarogya Setu? What was its role in COVID?",
     "Aarogya Setu is a mobile contact tracing app developed by National Informatics Centre (NIC) "
     "and launched in April 2020. It used Bluetooth and GPS to detect proximity to COVID-positive "
     "individuals and alert users. Features: self-assessment questionnaire, COVID test centre locator, "
     "vaccination status, e-pass for travel during lockdown. At peak, had over 20 crore downloads. "
     "Privacy concerns were raised but app was useful for mass contact tracing. Later integrated with "
     "CoWIN for vaccination certificate. Demonstrates India's digital health capacity during emergencies."),
    ("Q15. As a PHC MO, if you suspect an outbreak of an unknown disease in your area, what will you do?",
     "Step 1: Verify by examining cases personally - clinical features, symptoms, timeline. "
     "Step 2: Create a case definition - clinical + epidemiological + time + place. "
     "Step 3: Active case finding - house-to-house search, check hospital records. "
     "Step 4: IMMEDIATELY report to District Surveillance Officer (DSO) even while investigating. "
     "Step 5: Collect samples (blood, stool, swab as appropriate) with proper biosafety precautions; "
     "send to district/state lab with ice packs. "
     "Step 6: Implement preliminary control measures - isolation of cases, water chlorination if "
     "diarrhoeal, vector control if fever/rash. "
     "Step 7: Assist District RRT when they arrive. "
     "Step 8: Maintain outbreak register and communicate with community to prevent panic. "
     "Step 9: If disease unknown - follow Unknown Disease Protocol (UDP) - PPE Level 3, strict isolation, "
     "coordinate with NCDC. Do NOT wait for lab confirmation before starting control measures."),
]

for q, a in qas:
    story.append(KeepTogether([
        Paragraph(f"<b>{q}</b>", h3_s),
        Paragraph(f"โœ” {a}", hl_s),
        Spacer(1, 0.15*cm),
    ]))

# โ”€โ”€ SECTION 12: QUICK MEMORY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
story.append(PageBreak())
story.append(Paragraph("12. Quick Memory Table - Pandemic Module", h1_s))

story.append(mktbl([
    ["What", "Answer"],
    ["COVID-19 causative agent", "SARS-CoV-2 (Coronavirus family, ssRNA virus)"],
    ["COVID-19 first reported", "December 2019 - Wuhan, China"],
    ["WHO declared PHEIC", "30 January 2020"],
    ["WHO declared Pandemic", "11 March 2020"],
    ["WHO ended PHEIC", "5 May 2023"],
    ["India first COVID case", "30 January 2020 - Kerala"],
    ["India lockdown started", "25 March 2020"],
    ["Most devastating wave", "2nd wave (April-June 2021) - Delta variant"],
    ["India COVID vaccines", "Covaxin (Bharat Biotech+ICMR), Covishield (SII), ZyCoV-D, Corbevax"],
    ["India vaccine doses given", "Over 220 crore doses (world's largest drive)"],
    ["COVID vaccination platform", "CoWIN"],
    ["Contact tracing app", "Aarogya Setu"],
    ["R0 original COVID", "~2-3"],
    ["R0 Delta", "~5-6"],
    ["R0 Omicron", "~8-15"],
    ["IHR 2005 India ratified", "2007"],
    ["PHEIC declarer", "WHO Director-General only"],
    ["One Health launched India", "National One Health Mission 2022"],
    ["Zoonotic diseases % of EID", "~75% of emerging infectious diseases are zoonotic"],
    ["Nipah CFR", "40-75% (very high)"],
    ["Nipah R0", "~0.5 (low person-to-person spread)"],
    ["Epidemic Diseases Act", "1897 (amended 2020 - protect healthcare workers)"],
    ["FETP nodal centre", "NCDC - National Centre for Disease Control, New Delhi"],
    ["India's 5T COVID strategy", "Test, Track, Treat, Technology, Team Spirit"],
    ["COVID care facility tiers", "CCC (mild) โ†’ DCHC (moderate) โ†’ DCH (severe)"],
    ["IHR 2024 new category", "Pandemic Emergency (PE) - new level between PHEIC and pandemic"],
    ["WHO Pandemic Accord", "Under negotiation as of 2026 - equity in vaccine access, PABS system"],
    ["VITT (vaccine side effect)", "Vaccine-Induced Immune Thrombocytopenia - rare, with adenovirus vector vaccines"],
    ["AEFI full form", "Adverse Event Following Immunization"],
], [7*cm, 9.5*cm]))

# FOOTER
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a3c6e')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Pandemic Module Guide | GPSC Class 1-2 Interview Preparation | July 2026 | "
    "Sources: WHO, MoHFW India, ICMR, NCDC. Verify latest updates from official sources.",
    note_s))

doc.build(story)
print(f"PDF generated: {OUTPUT}")
Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.

Download and study the Pandemic Module PDF before your interview

Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.

Can you start my interview for psm

First, let me generate the Pandemic Module PDF that was pending from last time, then we start!
Running Command

python /tmp/workspace/gpsc-interview/generate_pandemic_pdf.py

Your pending PDF is ready first:

Pandemic Module Interview Guide

PDF Document ยท PDF

(9 pages - COVID-19, IHR 2005, One Health, Pandemic Treaty, 15 Q&As, memory table)

๐ŸŽ™๏ธ GPSC Class 1-2 Interview - PSM / Community Medicine Round No fixed question limit | After each answer: Review + Ideal Answer | Content only - no language judgment

"Good morning. Please be seated."

Q1.

"PSM stands for Preventive and Social Medicine - now called Community Medicine. In your view, what is the fundamental difference between clinical medicine and community medicine? And why did you choose to work as a Tutor in this department?"
(Answer naturally. I will review content and give ideal answer after.)

Psm studies for small part and community medicine at vast population this is major difference, as i have gained my interest in phc mo job i think if inwant to choose that for my life choosing tutorship in psm help me increase my technical knoledge for that job

โœ… Your Answer Review

What you got right:
  • Core idea is correct - community medicine focuses on population, clinical medicine on individual โœ…
  • Linked tutorship to your goal of becoming MO - good logical connection โœ…
  • Shows self-awareness about career path โœ…
What was missing / weak:
  • "Small part vs vast population" is too vague - panel wants precise language
  • Did not mention the 5 levels of prevention which is the backbone difference
  • Did not mention key pillars of PSM: Epidemiology, Biostatistics, Health Administration, Environmental Health, Occupational Health, Social Medicine
  • Did not mention that PSM/Community Medicine focuses on PREVENTION + PROMOTION while clinical medicine focuses on CURE
  • "Increase my technical knowledge" is generic - should name specific skills (epidemiology, programme implementation, health statistics)
  • Missed opportunity to mention your PHC bond duty experience connecting to PSM concepts

๐Ÿ’ก Ideal Answer

"Sir, the fundamental difference is the unit of care. Clinical medicine treats the individual patient in front of you - one person at a time. Community Medicine, or PSM, takes the entire community as its patient - it focuses on prevention, health promotion, and reducing the disease burden at the population level. It uses tools like epidemiology, biostatistics, and health administration rather than just stethoscope and prescription. I chose to work as a Tutor in this department because my PHC bond duty at Botad showed me that an MO's real impact is not just in the OPD - it is in running immunization programmes, implementing national health programmes, doing disease surveillance, and improving community health indicators. PSM gives me the academic and technical foundation to do all of this systematically. Teaching it also keeps me updated and forces me to think clearly about public health concepts I will apply daily as an MO."

Q2.

"You mentioned epidemiology. Define epidemiology. What is the epidemiological triad and give one example of how it applies to tuberculosis?"

First remove suggestions for now

Understood! From now on - no suggestions box. Just:
  1. โœ… Your Answer Review
  2. ๐Ÿ’ก Ideal Answer
  3. Next question

Q2.

"Define epidemiology. What is the epidemiological triad and give one example of how it applies to tuberculosis?"

Epidemiolody is study of disease burden, its spread, prevalence in commity,,,,, agent, host, environment,,,,,,,,host factor that if host immunity is low then chances are increased or contact with positive also increses its chances

โœ… Your Answer Review

What you got right:
  • Epidemiology involves study of disease burden, spread, prevalence โœ…
  • Correctly named Agent, Host, Environment as the triad โœ…
  • Mentioned host immunity and contact with positive case โœ…
What was missing:
  • Epidemiology definition incomplete - missed "distribution AND determinants" and "in specified populations" and most importantly "for control of health problems"
  • Did not mention the Agent for TB specifically - Mycobacterium tuberculosis
  • Environment factor completely missing - overcrowding, poor ventilation, poverty
  • Agent factors for TB not mentioned - virulence, drug resistance
  • Only explained Host partially - missed malnutrition, HIV, diabetes, alcoholism as key host factors

๐Ÿ’ก Ideal Answer

"Epidemiology is the study of the distribution and determinants of health-related states in specified populations, and the application of this study to control health problems - this is John Last's classic definition. The epidemiological triad has three components: Agent, Host, and Environment - and disease occurs when these three interact unfavourably.
For tuberculosis: Agent = Mycobacterium tuberculosis - an acid-fast bacillus, can survive in air for hours, drug-resistant strains are increasing. Host = a person with low immunity due to malnutrition, HIV co-infection, diabetes, alcoholism, or extremes of age is more susceptible. Environment = overcrowded housing, poor ventilation, urban slums, damp conditions - all increase exposure to droplet nuclei. TB is controlled by modifying all three - treating the agent (DOTS), improving host immunity (BCG, nutrition), and improving environment (housing, ventilation, reducing overcrowding)."

Q3.

"What is the difference between incidence and prevalence? For a disease like tuberculosis, why is prevalence always much higher than incidence?"

Incidence is how many new cases of any new disease occur in area, prevelamce is total disease burden in that area

โœ… Your Answer Review

What you got right:
  • Incidence = new cases โœ…
  • Prevalence = total disease burden โœ…
  • Basic concept is correct โœ…
What was missing:
  • No time specification for incidence - "per unit time" is essential (per year, per month)
  • No population denominator mentioned for either - both are rates, not just counts
  • Did not answer the second part at all - WHY is TB prevalence higher than incidence
  • The relationship formula: Prevalence = Incidence ร— Duration of disease - not mentioned
  • No numbers given - India TB incidence ~199/lakh, prevalence ~316/lakh (as per India TB Report 2023)

๐Ÿ’ก Ideal Answer

"Incidence is the number of NEW cases of a disease occurring in a defined population during a specific time period - expressed as per 1,000 or per 1,00,000 population per year. Prevalence is the total number of EXISTING cases - both new and old - in a defined population at a given point in time.
The relationship is: Prevalence โ‰ˆ Incidence ร— Duration of disease.
For TB, prevalence is always higher than incidence because TB is a long-duration disease - a patient on DOTS treatment remains a prevalent case for 6 months to 2 years even after starting treatment. So old cases keep accumulating. In India, TB incidence is approximately 199 per lakh population per year, while prevalence is approximately 316 per lakh - nearly 1.5 times higher - precisely because of TB's long duration. For an acute disease like influenza that resolves in 7-10 days, incidence and prevalence are nearly equal."

Q4.

"What is herd immunity? What is the herd immunity threshold for measles and why is it so high?"

Dont know

โœ… Your Answer Review

"Don't know" - as discussed before, never say this in a GPSC interview. Herd immunity is a core PSM concept - expected from any Community Medicine Tutor. This will seriously hurt your score.

๐Ÿ’ก Ideal Answer

"Herd immunity is the indirect protection that occurs when a sufficient proportion of a population has become immune to a disease - either through vaccination or prior infection - thereby reducing the likelihood of infection for individuals who lack immunity. Even unvaccinated or susceptible individuals are protected because the chain of transmission is broken.
The herd immunity threshold (HIT) is calculated as: HIT = 1 - (1/R0).
For measles, R0 is approximately 12-18 - meaning one measles case infects 12-18 susceptible people. Therefore HIT = 1 - (1/15) = approximately 93-95%. This is why measles vaccination coverage must be above 95% to prevent outbreaks. Even a small drop in coverage - as seen in hesitancy pockets - leads to measles outbreaks. India's measles vaccination coverage is around 85-89% nationally, which is why sporadic outbreaks still occur. For COVID-19 with original R0 ~2.5, HIT was ~60%, but Omicron's R0 of ~12 pushed HIT to ~92%."

โš ๏ธ Pattern I am noticing: You are saying "don't know" on some very fundamental PSM concepts - herd immunity, incidence/prevalence depth, epidemiological triad details. These are guaranteed questions for a Community Medicine Tutor in a GPSC interview. Please revise these basics from Park's Textbook of PSM before your interview day.

Q5.

"What are the levels of prevention? Give one example of each level specifically for diabetes mellitus."

Priomodial-use of jaggery instead of white sugar in society, primary - exercise strict diet, secondary - treatment of diabetes, tertiary-treatment of complication at higher centre or removal of gangrene to prevent death

โœ… Your Answer Review

What you got right:
  • Correctly identified all 4 levels including Primordial โœ… - many candidates miss this
  • Primordial example - concept is correct (preventing risk factors from emerging in society) โœ…
  • Primary - exercise and diet - correct โœ…
  • Secondary - treatment - partially correct โœ…
  • Tertiary - complication management and amputation - correct โœ…
What was missing:
  • Primordial example is weak - jaggery vs sugar is not the best example. Primordial = preventing the CONDITIONS that give rise to risk factors - e.g. national policy against junk food advertising, urban planning for walkable cities, sugar tax policy
  • Primary prevention should include specific mention of health education, weight reduction, smoking cessation - not just exercise/diet
  • Secondary prevention is INCOMPLETE - secondary = early detection + prompt treatment. You only mentioned treatment. Early detection (screening at age 30+ under NPCDCS, fasting blood sugar) must be mentioned
  • Missed Leavell & Clark's definition framework
  • Did not mention which level is most important for MO's work (primary + secondary)

๐Ÿ’ก Ideal Answer

"There are 4 levels of prevention for diabetes:
Primordial prevention - preventing the emergence of risk factors in society. Example: government policy banning junk food advertisements targeting children, urban planning for walkable neighbourhoods, FSSAI regulations on food labelling, sugar-sweetened beverage tax.
Primary prevention - preventing disease in susceptible individuals before it occurs. Example: health education on diet (reduce refined carbohydrates, increase fibre), physical activity promotion, weight reduction in obese individuals, smoking cessation.
Secondary prevention - early detection and prompt treatment to halt disease progression. Example: screening all adults above 30 years for fasting blood sugar under NPCDCS at PHC level, HbA1c testing, starting metformin in pre-diabetics, regular monitoring.
Tertiary prevention - reducing disability and rehabilitation once disease is established. Example: regular foot examination to prevent diabetic foot, managing nephropathy to delay dialysis, amputation of gangrenous toe to prevent sepsis and death, diabetic retinopathy screening to prevent blindness."

Q6.

"What is the concept of natural history of disease? Name its stages and explain how the spectrum of disease applies to tuberculosis."

Heyy

Hey! Welcome back! ๐Ÿ‘‹
Ready to continue the PSM interview? You were on Q6:

๐ŸŽ™๏ธ GPSC PSM Interview - Continuing

Q6.

"What is the natural history of disease? Name its stages and explain how the disease spectrum applies to tuberculosis."
(Answer whenever you're ready!)

No want something else

Sure! What would you like help with?

I want to prepare for immunization , cold chain can you give me pdf

Generating now!
Writing File

~/gpsc-interview/generate_immunization_pdf.py

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

OUTPUT = "/tmp/workspace/gpsc-interview/Immunization_ColdChain_Guide.pdf"

doc = SimpleDocTemplate(OUTPUT, pagesize=A4,
    rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2*cm)

styles = getSampleStyleSheet()

title_s  = ParagraphStyle('TT', parent=styles['Title'],   fontSize=21, textColor=colors.HexColor('#1a5276'), spaceAfter=6, alignment=TA_CENTER)
sub_s    = ParagraphStyle('SS', parent=styles['Normal'],  fontSize=11, textColor=colors.HexColor('#2471a3'), spaceAfter=10, alignment=TA_CENTER)
h1_s     = ParagraphStyle('H1', parent=styles['Heading1'],fontSize=13, textColor=colors.white, backColor=colors.HexColor('#1a5276'), spaceAfter=8, spaceBefore=12, borderPad=6, leading=20)
h2_s     = ParagraphStyle('H2', parent=styles['Heading2'],fontSize=11, textColor=colors.HexColor('#1a5276'), spaceAfter=4, spaceBefore=8)
h3_s     = ParagraphStyle('H3', parent=styles['Heading3'],fontSize=10.5, textColor=colors.HexColor('#c0392b'), spaceAfter=3, spaceBefore=5)
body_s   = ParagraphStyle('BD', parent=styles['Normal'],  fontSize=10, leading=15, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_s = ParagraphStyle('BL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=15, spaceAfter=3)
note_s   = ParagraphStyle('NT', parent=styles['Normal'],  fontSize=9,  textColor=colors.HexColor('#7f8c8d'), leftIndent=10, spaceAfter=4, fontName='Helvetica-Oblique')
hl_s     = ParagraphStyle('HL', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#eaf4fb'), borderPad=4)
warn_s   = ParagraphStyle('WN', parent=styles['Normal'],  fontSize=10, leading=14, leftIndent=10, spaceAfter=4, backColor=colors.HexColor('#fef9e7'), borderPad=4)
cell_s   = ParagraphStyle('CS', parent=styles['Normal'],  fontSize=8.5, leading=13)
cell_b   = ParagraphStyle('CB', parent=styles['Normal'],  fontSize=8.5, leading=13, fontName='Helvetica-Bold', textColor=colors.white)

def P(text, s=None):
    return Paragraph(str(text), s or cell_s)

def mktbl(data, widths, hdr='#1a5276'):
    rows = [[P(c, cell_b if ri==0 else cell_s) for c in row] for ri, row in enumerate(data)]
    t = Table(rows, colWidths=widths, repeatRows=1)
    t.setStyle(TableStyle([
        ('BACKGROUND',    (0,0),(-1,0),  colors.HexColor(hdr)),
        ('ROWBACKGROUNDS',(0,1),(-1,-1), [colors.HexColor('#eaf4fb'), colors.white]),
        ('GRID',          (0,0),(-1,-1), 0.5, colors.HexColor('#aaaaaa')),
        ('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), 'TOP'),
    ]))
    return t

story = []

# COVER
story.append(Spacer(1, 0.8*cm))
story.append(Paragraph("Immunization & Cold Chain", title_s))
story.append(Paragraph("Complete Quick Revision Guide", sub_s))
story.append(Paragraph("GPSC Class 1-2 Interview | Medical Officer / Tutor | July 2026", sub_s))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a5276')))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph(
    "Covers UIP schedule, vaccine properties, cold chain equipment, VVM, AEFI, "
    "Mission Indradhanush, and all likely interview questions with model answers.", body_s))
story.append(Spacer(1, 0.2*cm))

story.append(mktbl([
    ["#", "Section"],
    ["1", "Introduction to Immunization - Key Definitions"],
    ["2", "Universal Immunization Programme (UIP) - Overview"],
    ["3", "UIP Vaccine Schedule (Birth to 16 years + Pregnant Women)"],
    ["4", "Vaccine Properties - Heat Sensitivity, Storage Temperatures"],
    ["5", "Cold Chain - Concept, Equipment, Flow"],
    ["6", "Vaccine Vial Monitor (VVM)"],
    ["7", "AEFI - Adverse Events Following Immunization"],
    ["8", "Mission Indradhanush & Intensified Mission Indradhanush"],
    ["9", "New Vaccines Added to UIP (Recent Additions)"],
    ["10", "National Immunization Schedule - India vs WHO EPI"],
    ["11", "Interview Q&A - 15 Questions with Ideal Answers"],
    ["12", "Quick Memory Table"],
], [1.2*cm, 15.3*cm]))
story.append(PageBreak())

# SECTION 1
story.append(Paragraph("1. Introduction - Key Definitions", h1_s))
story.append(mktbl([
    ["Term", "Definition"],
    ["Immunization", "Process of making a person immune to an infectious disease through vaccination"],
    ["Vaccination", "Administration of a vaccine (antigenic material) to stimulate immune response"],
    ["Vaccine", "Biological preparation containing antigenic material that stimulates immunity against a disease"],
    ["Herd immunity", "Indirect protection of non-immune individuals when sufficient proportion of population is immune"],
    ["EPI", "Expanded Programme on Immunization - launched by WHO in 1974; India adopted 1978"],
    ["UIP", "Universal Immunization Programme - India's national immunization programme, launched 1985"],
    ["Active immunity", "Immunity produced by the body itself after exposure to antigen (infection or vaccine) - long-lasting"],
    ["Passive immunity", "Immunity transferred from another source (mother's antibodies, immunoglobulin injection) - temporary"],
    ["Cold chain", "System of storing and transporting vaccines at recommended temperatures from manufacturer to recipient"],
    ["VVM", "Vaccine Vial Monitor - heat-sensitive label on vaccine vials indicating if vaccine has been heat-damaged"],
    ["AEFI", "Adverse Event Following Immunization - any untoward medical occurrence after vaccination"],
    ["Seroconversion", "Development of detectable specific antibodies in serum after vaccination - indicates successful immunity"],
], [4*cm, 12.5*cm]))
story.append(Spacer(1, 0.3*cm))

# SECTION 2
story.append(Paragraph("2. Universal Immunization Programme (UIP) - Overview", h1_s))
story.append(mktbl([
    ["Parameter", "Details"],
    ["Launched", "1985 (expanded from EPI 1978)"],
    ["Ministry", "Ministry of Health & Family Welfare under NHM"],
    ["Target", "All children under 2 years and pregnant women"],
    ["Current diseases covered", "12 vaccine-preventable diseases (VPDs) in national schedule"],
    ["Vaccines in UIP", "BCG, OPV, Hepatitis B, Pentavalent (DPT+HepB+Hib), Rotavirus, fIPV, PCV, MR, JE (endemic areas), Vitamin A, Td"],
    ["Sessions", "Village Health and Nutrition Days (VHNDs) monthly + fixed session sites"],
    ["Coverage target", "> 90% full immunization coverage (current: 76.4% NFHS-5)"],
    ["Monitoring tool", "HMIS monthly reports + MCTS (Mother & Child Tracking System)"],
    ["Digital platform", "eVIN (Electronic Vaccine Intelligence Network) for cold chain monitoring"],
    ["Goal of full immunization", "Child receiving all vaccines due by 12 months of age"],
], [5*cm, 11.5*cm]))
story.append(Spacer(1, 0.3*cm))

# SECTION 3
story.append(Paragraph("3. UIP Vaccine Schedule (Updated - National Immunization Schedule)", h1_s))
story.append(mktbl([
    ["Age", "Vaccine", "Dose", "Route & Site", "Purpose"],
    ["Birth (within 24 hrs)", "BCG", "0.1 ml (neonates)", "Intradermal - left upper arm", "Tuberculosis (meningitis, miliary TB in children)"],
    ["Birth (within 24 hrs)", "OPV - Zero dose", "2 drops", "Oral", "Poliomyelitis"],
    ["Birth (within 24 hrs)", "Hepatitis B - Birth dose", "0.5 ml", "IM - anterolateral thigh", "Hepatitis B (prevent perinatal transmission)"],
    ["6 weeks", "OPV 1", "2 drops", "Oral", "Polio"],
    ["6 weeks", "Pentavalent 1 (DPT+HepB+Hib)", "0.5 ml", "IM - anterolateral thigh (left)", "Diphtheria, Pertussis, Tetanus, Hep B, Hib meningitis"],
    ["6 weeks", "Rotavirus 1", "5 drops", "Oral", "Rotavirus diarrhoea"],
    ["6 weeks", "fIPV 1 (fractional dose)", "0.1 ml", "Intradermal - right anterolateral thigh", "Polio (injectable - stronger mucosal immunity)"],
    ["6 weeks", "PCV 1", "0.5 ml", "IM - left anterolateral thigh", "Pneumococcal pneumonia, meningitis"],
    ["10 weeks", "OPV 2", "2 drops", "Oral", "Polio"],
    ["10 weeks", "Pentavalent 2", "0.5 ml", "IM - anterolateral thigh", "DPT + HepB + Hib"],
    ["10 weeks", "Rotavirus 2", "5 drops", "Oral", "Rotavirus diarrhoea"],
    ["14 weeks", "OPV 3", "2 drops", "Oral", "Polio"],
    ["14 weeks", "Pentavalent 3", "0.5 ml", "IM - anterolateral thigh", "DPT + HepB + Hib"],
    ["14 weeks", "Rotavirus 3", "5 drops", "Oral", "Rotavirus diarrhoea"],
    ["14 weeks", "fIPV 2", "0.1 ml", "Intradermal - right anterolateral thigh", "Polio booster"],
    ["14 weeks", "PCV 2", "0.5 ml", "IM", "Pneumococcal"],
    ["9-12 months", "MR 1 (Measles-Rubella)", "0.5 ml", "Subcutaneous - right upper arm", "Measles + Rubella"],
    ["9-12 months", "JE 1 (endemic areas)", "0.5 ml", "Subcutaneous", "Japanese Encephalitis"],
    ["9-12 months", "Vitamin A 1 (1 lakh IU)", "1 ml", "Oral", "Vitamin A deficiency, night blindness prevention"],
    ["9-12 months", "PCV Booster", "0.5 ml", "IM", "Pneumococcal booster"],
    ["16-24 months", "MR 2", "0.5 ml", "Subcutaneous - right upper arm", "Measles + Rubella booster"],
    ["16-24 months", "DPT Booster 1", "0.5 ml", "IM - anterolateral thigh", "Diphtheria, Pertussis, Tetanus booster"],
    ["16-24 months", "OPV Booster", "2 drops", "Oral", "Polio booster"],
    ["16-24 months", "JE 2 (endemic areas)", "0.5 ml", "Subcutaneous", "JE booster"],
    ["16-24 months & 6-monthly till 5 yrs", "Vitamin A (2 lakh IU)", "1 ml", "Oral", "Vitamin A supplementation"],
    ["5-6 years", "DPT Booster 2", "0.5 ml", "IM", "DPT booster"],
    ["10 years", "Td (Tetanus + diphtheria)", "0.5 ml", "IM", "Tetanus + diphtheria booster"],
    ["16 years", "Td", "0.5 ml", "IM", "Tetanus + diphtheria booster"],
    ["Pregnant women - early ANC", "Td 1", "0.5 ml", "IM - upper arm", "Neonatal tetanus prevention"],
    ["Pregnant women - 4 weeks after Td1", "Td 2", "0.5 ml", "IM - upper arm", "Neonatal tetanus prevention"],
    ["Pregnant women (if prev. vaccinated)", "Td Booster", "0.5 ml", "IM - upper arm", "Neonatal tetanus prevention"],
], [3*cm, 3.5*cm, 1.5*cm, 3.5*cm, 5*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Note: Td = Tetanus and diphtheria (adult formulation - lower diphtheria toxoid content than DPT). "
    "fIPV = fractional dose Inactivated Polio Vaccine (intradermal). "
    "PCV = Pneumococcal Conjugate Vaccine (13-valent). "
    "Rotavirus vaccine: Rotasiil (5 drops oral) or Rotavac (5 drops oral).", note_s))
story.append(Spacer(1, 0.2*cm))

story.append(PageBreak())

# SECTION 4
story.append(Paragraph("4. Vaccine Properties - Heat Sensitivity & Storage", h1_s))
story.append(Paragraph(
    "Different vaccines have different sensitivities to heat and freezing. "
    "This is critical for cold chain management. Most killed/inactivated vaccines are "
    "FREEZE-SENSITIVE (damaged by freezing). Most live vaccines are HEAT-SENSITIVE.", body_s))

story.append(mktbl([
    ["Vaccine", "Type", "Heat Sensitivity", "Freeze Sensitive?", "Recommended Storage"],
    ["OPV", "Live attenuated", "Most heat-sensitive of all vaccines", "No (tolerates freezing)", "-15ยฐC to -25ยฐC (frozen)"],
    ["BCG", "Live attenuated", "Heat sensitive", "No", "+2ยฐC to +8ยฐC (after reconstitution - use within 4 hrs)"],
    ["Measles / MR", "Live attenuated", "Heat sensitive, light sensitive", "No", "+2ยฐC to +8ยฐC"],
    ["Rotavirus", "Live attenuated", "Heat sensitive", "No", "+2ยฐC to +8ยฐC"],
    ["JE (SA 14-14-2)", "Live attenuated", "Heat sensitive", "No", "+2ยฐC to +8ยฐC"],
    ["IPV / fIPV", "Killed/Inactivated", "Moderate", "YES - freeze damages", "+2ยฐC to +8ยฐC (never freeze)"],
    ["Pentavalent (DPT+HepB+Hib)", "Killed/Inactivated", "Moderate", "YES - freeze damages", "+2ยฐC to +8ยฐC (never freeze)"],
    ["Hepatitis B", "Recombinant subunit", "Moderate", "YES - freeze damages", "+2ยฐC to +8ยฐC (never freeze)"],
    ["PCV", "Conjugate", "Moderate", "YES - freeze damages", "+2ยฐC to +8ยฐC (never freeze)"],
    ["Td / DT / TT", "Toxoid", "Less heat sensitive", "YES - freeze damages (most freeze-sensitive)", "+2ยฐC to +8ยฐC (never freeze)"],
    ["Vitamin A", "Micronutrient", "Light sensitive", "No", "+2ยฐC to +8ยฐC or room temp (dark)"],
], [3*cm, 3.5*cm, 3*cm, 2.5*cm, 4.5*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "KEY RULE: OPV is the MOST heat-sensitive โ†’ stored at -15 to -25ยฐC (frozen). "
    "TT/Td is the MOST freeze-sensitive โ†’ never freeze. "
    "All live vaccines: heat-sensitive but tolerate freezing. "
    "All killed/toxoid vaccines: freeze-sensitive - freezing DESTROYS them.", warn_s))
story.append(Spacer(1, 0.3*cm))

# SECTION 5
story.append(Paragraph("5. Cold Chain - Concept, Equipment & Flow", h1_s))
story.append(Paragraph(
    "The cold chain is the <b>system of storing and transporting vaccines</b> within required "
    "temperature ranges (usually +2ยฐC to +8ยฐC, or -15ยฐC to -25ยฐC for OPV) from the "
    "manufacturer to the point of use. A break in the cold chain can render vaccines ineffective.", body_s))

story.append(Paragraph("5.1 Cold Chain Flow in India", h2_s))
story.append(mktbl([
    ["Level", "Facility", "Equipment Used", "Storage Duration"],
    ["Manufacturer", "Vaccine manufacturer (Serum Institute, Bharat Biotech, etc.)", "Industrial cold storage", "As per batch"],
    ["National/Regional", "Government Medical Store Depot (GMSD)\n4 GMSDs: Mumbai, Chennai, Kolkata, Karnal", "Walk-in coolers (WIC) + Walk-in freezers (WIF)", "1-3 months supply"],
    ["State", "State Vaccine Store", "Walk-in coolers + Walk-in freezers", "1 month supply"],
    ["District", "District Vaccine Store (DVS) at District Hospital / CMO office", "ILR (Ice Lined Refrigerator) + Deep freezer", "2-4 weeks supply"],
    ["PHC / CHC", "Primary/Community Health Centre", "ILR + Deep freezer", "1 week supply"],
    ["Sub-centre / Outreach", "VHND session site", "Vaccine carrier + ice packs", "1 session (4-8 hours)"],
], [2.5*cm, 5*cm, 4*cm, 4*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("5.2 Cold Chain Equipment - Details", h2_s))
story.append(mktbl([
    ["Equipment", "Temperature", "Capacity/Use", "Location"],
    ["Walk-in Freezer (WIF)", "-15ยฐC to -25ยฐC", "Large storage - OPV bulk stock", "GMSD, State store"],
    ["Walk-in Cooler (WIC)", "+2ยฐC to +8ยฐC", "Large storage - all other vaccines bulk", "GMSD, State store"],
    ["Deep Freezer (DF)", "-15ยฐC to -25ยฐC", "OPV storage + making ice packs", "District, PHC"],
    ["ILR (Ice Lined Refrigerator)", "+2ยฐC to +8ยฐC", "All vaccines except OPV (stored in deep freezer)", "District, PHC, CHC"],
    ["Cold Box", "+2ยฐC to +8ยฐC for 48-72 hrs", "Transport of vaccines from district to PHC; power cuts backup", "District, PHC"],
    ["Vaccine Carrier", "+2ยฐC to +8ยฐC for 4-8 hrs", "Transport to outreach/VHND sessions", "ANM, PHC"],
    ["Ice Pack (conditioned)", "+2ยฐC to +8ยฐC", "Used inside vaccine carrier and cold box", "PHC, session sites"],
    ["Thermometer (dial/digital)", "Measures temp", "Daily monitoring of ILR and deep freezer temperature", "All cold chain points"],
    ["eVIN (Electronic Vaccine Intelligence Network)", "Digital monitoring", "Real-time temperature monitoring + vaccine stock tracking via mobile app", "District and above"],
], [4*cm, 3*cm, 5*cm, 4.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("5.3 Important Cold Chain Rules at PHC Level", h2_s))
for b in [
    "<b>ILR temperature</b>: Must be maintained at +2ยฐC to +8ยฐC. Check and record TWICE daily (morning and evening) in the temperature log",
    "<b>Deep freezer</b>: -15ยฐC to -25ยฐC for OPV and making ice packs",
    "<b>Freeze-sensitive vaccines (TT, Hep B, DPT, PCV)</b>: Store in UPPER part of ILR - temperature is more stable there",
    "<b>OPV</b>: Store in deep freezer. Transfer to ILR only on session day",
    "<b>Ice packs</b>: Must be CONDITIONED before use (remove from freezer, wait until water appears on surface ~1-2 min) to prevent freezing of freeze-sensitive vaccines",
    "<b>Never store</b>: Food, water, or specimens in the vaccine refrigerator",
    "<b>Power cut</b>: ILR can maintain temperature for 6-8 hours if lid not opened. Keep cold box ready as backup",
    "<b>Shake test</b>: Used to detect freeze damage in adsorbed vaccines (TT, DPT, Hep B, PCV). If vaccine forms flocculent precipitate that does NOT redisperse after shaking = freeze damaged = discard",
    "<b>FIFO rule</b>: First In First Out - vaccines with earliest expiry date used first",
    "<b>Open vial policy</b>: Multi-dose vials of OPV, BCG, MR, Rotavirus, JE - discard at end of session. Opened vials of Penta, Hep B, IPV - can be used for 28 days IF VVM not reached discard point, refrigerated properly",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

story.append(PageBreak())

# SECTION 6
story.append(Paragraph("6. Vaccine Vial Monitor (VVM)", h1_s))
story.append(Paragraph(
    "VVM is a <b>heat-sensitive label</b> attached to the vaccine vial that records cumulative "
    "heat exposure over time. It does NOT indicate freezing damage - only heat damage.", body_s))

story.append(mktbl([
    ["VVM Stage", "Appearance", "Action"],
    ["Stage 1 (USABLE)",
     "Inner square is LIGHTER than outer circle",
     "Vaccine is good - USE the vaccine"],
    ["Stage 2 (USABLE)",
     "Inner square matches outer circle colour",
     "Vaccine approaching end - USE but order replacement soon"],
    ["Stage 3 (DO NOT USE)",
     "Inner square is DARKER than outer circle",
     "DO NOT USE - vaccine has been heat-damaged - discard"],
    ["Stage 4 (DO NOT USE)",
     "Inner square is completely dark (black)",
     "DO NOT USE - completely heat-damaged - discard"],
], [3*cm, 6.5*cm, 7*cm]))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "MEMORY: 'If the inner square is darker than the ring - DO NOT USE.' "
    "VVM does NOT detect freeze damage - use the Shake Test for that.", warn_s))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("6.1 Shake Test for Freeze Damage", h2_s))
for b in [
    "Used for adsorbed vaccines (Tetanus Toxoid, DPT, Hepatitis B, DT, PCV, Pentavalent)",
    "Take the suspect vial + a control vial of same vaccine (known good)",
    "Shake both vigorously for 10-15 seconds",
    "Allow to stand for 30 minutes",
    "If suspect vial shows clear supernatant with heavy flocculent deposit that does NOT redisperse = FREEZE DAMAGED = DISCARD",
    "If similar to control = NOT freeze damaged = can use",
    "Live vaccines (BCG, MR, OPV, Rotavirus) do NOT need shake test - they are not adsorbed",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.3*cm))

# SECTION 7
story.append(Paragraph("7. AEFI - Adverse Events Following Immunization", h1_s))
story.append(mktbl([
    ["AEFI Type", "Definition", "Examples"],
    ["Vaccine reaction (common/minor)",
     "Expected, mild reactions due to vaccine properties",
     "Fever after DPT, pain/redness at injection site, mild irritability"],
    ["Vaccine reaction (severe/rare)",
     "Rare but serious - still due to vaccine itself",
     "Febrile seizure after DPT, anaphylaxis, intussusception (Rotavirus - rare), BCG lymphadenitis"],
    ["Programme error",
     "Due to errors in preparation, handling, or administration",
     "Wrong drug, wrong dose, wrong site, unsterile injection, reconstitution error"],
    ["Injection reaction",
     "Due to anxiety or pain from injection - NOT the vaccine",
     "Fainting (vasovagal syncope), hyperventilation, mass psychogenic illness"],
    ["Coincidental",
     "Temporally related but NOT caused by vaccine",
     "Fever from another infection that coincidentally occurred after vaccination"],
    ["Unknown",
     "Cause cannot be determined",
     "-"],
], [3.5*cm, 5*cm, 8*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("7.1 Serious AEFI - Reporting & Management", h2_s))
story.append(mktbl([
    ["Vaccine", "Serious AEFI", "Timing", "Management"],
    ["Any vaccine", "Anaphylaxis", "Within 30 minutes", "Adrenaline 0.5mg IM + CPR + refer"],
    ["DPT/Pentavalent", "Febrile seizure", "Within 2-3 days", "Antipyretics, anticonvulsants if prolonged"],
    ["BCG", "BCG lymphadenitis / abscess", "2-4 weeks", "Aspiration if fluctuant; rarely needs treatment"],
    ["BCG", "BCG osteitis/osteomyelitis", "Months later", "Anti-TB treatment"],
    ["OPV", "Vaccine-Associated Paralytic Poliomyelitis (VAPP)", "4-30 days after OPV", "Supportive care; switch to IPV reduces risk"],
    ["Rotavirus", "Intussusception", "Within 1-7 days of dose 1", "Surgical emergency - urgent referral"],
    ["MR/Measles", "Thrombocytopenic purpura (rare)", "1-3 weeks", "Usually self-limiting; haematology referral"],
], [3*cm, 4.5*cm, 3*cm, 6*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("7.2 AEFI Reporting Procedure at PHC", h2_s))
for b in [
    "ALL serious AEFIs must be reported to District Immunization Officer within <b>24 hours</b>",
    "Fill AEFI reporting form (available at PHC) - details of vaccine, batch number, site, timing, reaction",
    "Preserve the suspect vaccine vial and ice pack - do NOT discard - send to district for investigation",
    "District AEFI committee investigates and does causality assessment",
    "Report on online AEFI portal of MoHFW",
    "Serious AEFIs also reported to Pharmacovigilance Programme of India (PvPI) at CDSCO",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# SECTION 8
story.append(Paragraph("8. Mission Indradhanush & IMI", h1_s))
story.append(mktbl([
    ["Parameter", "Mission Indradhanush (MI)", "Intensified Mission Indradhanush (IMI)"],
    ["Launched", "December 2014", "October 2017 (IMI 1.0); IMI 2.0 (2019); IMI 4.0 (2022-23)"],
    ["Objective", "Fully immunize children missed or partially vaccinated under routine UIP",
     "Accelerate full immunization coverage to reach 90%+ in low-coverage districts"],
    ["Target", "Children under 2 years + pregnant women - unvaccinated or partially vaccinated",
     "High-risk areas: urban slums, tribal areas, hard-to-reach, migrant areas"],
    ["Strategy", "Special immunization drives in identified low-coverage areas for 7-10 days per round",
     "District-specific micro-planning, house-to-house visits, ASHA mobilisation, war-room approach"],
    ["Vaccines covered", "All UIP vaccines + Vitamin A",
     "All UIP vaccines - extended to include newer vaccines (PCV, Rotavirus)"],
    ["Achievement", "Increased full immunization from 65% (2014) to 76.4% (NFHS-5)",
     "IMI 4.0 aimed to close remaining immunity gaps post-COVID disruption"],
    ["Symbol", "7 colours of rainbow = 7 vaccine-preventable diseases targeted initially",
     "Same rainbow symbol retained"],
], [3.5*cm, 5.5*cm, 7.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("8.1 Due List Preparation - Beneficiary Tracking", h2_s))
story.append(Paragraph(
    "For immunization sessions, the ANM prepares a <b>due list</b> from the Mother and Child "
    "Tracking System (MCTS) / RCH portal, identifying all children due for vaccines and "
    "pregnant women due for Td. Key tools:", body_s))
for b in [
    "<b>MCTS / RCH Portal</b>: Online tracking system for all pregnant women and children under 5",
    "<b>ANMOL App</b>: Mobile application for ANMs to register beneficiaries, record services, generate due lists offline",
    "<b>Immunization card (MCP Card)</b>: Mother and Child Protection Card given to every pregnant woman - records all immunizations and ANC visits",
    "<b>Village register</b>: Maintained by ASHA - list of all births, deaths, pregnancies, immunization status in the village",
]:
    story.append(Paragraph(f"โ€ข {b}", bullet_s))
story.append(Spacer(1, 0.2*cm))

# SECTION 9
story.append(Paragraph("9. New Vaccines Added to UIP (Recent)", h1_s))
story.append(mktbl([
    ["Vaccine", "Year Added to UIP", "Disease Prevented", "Key Facts"],
    ["Pentavalent (DPT+HepB+Hib)", "2011 (phased rollout)", "Diphtheria, Pertussis, Tetanus, Hepatitis B, Hib meningitis", "Replaced separate DPT + Hep B with one combination vaccine"],
    ["Rotavirus Vaccine", "2016 (phased)", "Rotavirus diarrhoea (leading cause of severe diarrhoea in children)", "Rotasiil (Serum Institute) and Rotavac (Bharat Biotech) - both oral, 3 doses"],
    ["fIPV (fractional IPV)", "2016 (phased)", "Poliomyelitis", "0.1 ml intradermal - same efficacy as full 0.5 ml IM dose; saves vaccine stock"],
    ["MR (Measles-Rubella)", "2017 (replaced measles-only)", "Measles + Rubella (congenital rubella syndrome)", "MR campaign done first in all states, then incorporated into routine schedule"],
    ["PCV (Pneumococcal)", "2017 (phased - all states by 2022)", "Pneumococcal pneumonia and meningitis", "PCV13 - 13-valent; 3 doses (6w, 14w, 9-12m booster)"],
    ["Adult JE vaccine", "Endemic areas since 2006", "Japanese Encephalitis", "SA 14-14-2 live attenuated vaccine - 2 doses at 9-12m and 16-24m"],
], [3.5*cm, 3*cm, 4*cm, 6*cm]))
story.append(Spacer(1, 0.3*cm))

# SECTION 10
story.append(Paragraph("10. Key Numbers & Facts for Interview", h1_s))
story.append(mktbl([
    ["Topic", "Key Fact"],
    ["UIP launched", "1985 (EPI adopted 1978)"],
    ["Full immunization India (NFHS-5)", "76.4%"],
    ["Target full immunization", "> 90%"],
    ["Vaccines at birth", "BCG + OPV-0 + Hepatitis B (within 24 hours)"],
    ["Most heat-sensitive vaccine", "OPV (stored at -15ยฐC to -25ยฐC)"],
    ["Most freeze-sensitive vaccine", "TT / Td (toxoids - freeze destroys adsorbed vaccines)"],
    ["ILR temperature", "+2ยฐC to +8ยฐC"],
    ["Deep freezer temperature", "-15ยฐC to -25ยฐC"],
    ["Vaccine carrier maintains temp", "4-8 hours"],
    ["Cold box maintains temp", "48-72 hours"],
    ["Open vial policy - live vaccines", "Discard at end of session (BCG, MR, OPV, Rotavirus, JE)"],
    ["Open vial policy - killed vaccines", "Use for 28 days if VVM ok, stored properly (Penta, Hep B, IPV, PCV)"],
    ["VVM - do not use", "When inner square is DARKER than outer circle"],
    ["Shake test for", "Adsorbed/killed vaccines (TT, DPT, Hep B, PCV) to detect freeze damage"],
    ["AEFI serious report within", "24 hours to District Immunization Officer"],
    ["Anaphylaxis treatment", "Adrenaline 0.5 mg IM immediately"],
    ["VAPP (vaccine polio)", "4-30 days after OPV - prevented by switching to IPV"],
    ["Mission Indradhanush launched", "December 2014"],
    ["BCG prevents", "TB meningitis and miliary TB in children (NOT pulmonary TB in adults)"],
    ["BCG given", "Intradermal, left upper arm, 0.1 ml (neonates)"],
    ["Pentavalent components", "DPT + Hepatitis B + Hib (Haemophilus influenzae type b)"],
    ["Rotavirus vaccine doses", "3 doses - 6, 10, 14 weeks (oral)"],
    ["PCV doses", "3 doses - 6 weeks, 14 weeks, 9-12 months booster"],
    ["MR vaccine site", "Subcutaneous, right upper arm"],
    ["MCTS full form", "Mother and Child Tracking System"],
    ["eVIN full form", "Electronic Vaccine Intelligence Network"],
    ["ANMOL full form", "ANM Online"],
    ["Conditioning ice packs", "Remove from freezer, wait till water droplets appear on surface before placing in carrier"],
    ["FIFO rule", "First In First Out - use earliest expiry date vaccines first"],
], [6.5*cm, 10*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())

# SECTION 11 - Q&A
story.append(Paragraph("11. Interview Q&A - 15 Questions with Ideal Answers", h1_s))

qas = [
    ("Q1. What is the Universal Immunization Programme? When was it launched?",
     "UIP - Universal Immunization Programme - was launched in India in 1985, expanded from the EPI "
     "(Expanded Programme on Immunization) adopted in 1978. It provides free vaccines to all children "
     "under 2 years and pregnant women. Currently covers 12 vaccine-preventable diseases. Target is "
     ">90% full immunization coverage. India's current coverage is 76.4% (NFHS-5), showing a gap "
     "that Mission Indradhanush aims to fill."),
    ("Q2. What vaccines are given at birth and why is the Hepatitis B birth dose so important?",
     "At birth (within 24 hours): BCG (intradermal, left upper arm), OPV-0 (oral, 2 drops), and "
     "Hepatitis B birth dose (0.5 ml IM, anterolateral thigh). The Hepatitis B birth dose is critical "
     "because the primary route of Hepatitis B transmission in children is perinatal - from infected "
     "mother to newborn during delivery. If given within 24 hours of birth, it provides >90% protection "
     "against perinatal transmission. Delayed birth dose (after 24 hours) dramatically reduces effectiveness. "
     "This is why institutional delivery is promoted - birth dose can be given immediately."),
    ("Q3. Why is OPV stored in the deep freezer and not the ILR?",
     "OPV (Oral Polio Vaccine) is a live attenuated vaccine and is the MOST heat-sensitive vaccine in "
     "the UIP schedule. It must be stored at -15ยฐC to -25ยฐC in the deep freezer to maintain potency. "
     "If stored only at +2ยฐC to +8ยฐC (ILR temperature), the live virus in OPV loses potency rapidly. "
     "On session day, OPV is transferred from the deep freezer to the vaccine carrier with conditioned "
     "ice packs for outreach sessions."),
    ("Q4. What is an Ice Lined Refrigerator (ILR)? How is it different from a regular refrigerator?",
     "An ILR is a specially designed vaccine refrigerator with ice lining inside the walls. It maintains "
     "+2ยฐC to +8ยฐC and is designed to maintain temperature for 6-8 hours even during power cuts - unlike "
     "a regular domestic refrigerator. The lid opens from the top (not the front) to minimize cold air loss. "
     "All vaccines except OPV are stored in the ILR. Freeze-sensitive vaccines (TT, Penta, Hep B, PCV) "
     "are kept in the UPPER portion where temperature is more stable and freezing is less likely."),
    ("Q5. What is VVM? When should you NOT use a vaccine?",
     "VVM - Vaccine Vial Monitor - is a heat-sensitive circular label on vaccine vials. It has an inner "
     "square inside an outer circle. The inner square darkens with heat exposure over time. "
     "Do NOT use if: (1) The inner square is DARKER than the outer circle (Stage 3 or 4), OR "
     "(2) The vaccine is beyond expiry date, OR (3) The shake test shows freeze damage. "
     "VVM only detects heat damage, NOT freeze damage. Shake test is used for freeze damage detection "
     "in adsorbed vaccines (TT, DPT, Hep B, PCV, Penta)."),
    ("Q6. What is the shake test? For which vaccines is it done?",
     "Shake test detects freeze damage in adsorbed vaccines. Procedure: Take suspect vial + control vial "
     "(known good). Shake both vigorously for 10-15 seconds. Allow to stand for 30 minutes. If suspect "
     "vial shows heavy sediment/flocculent precipitate that does NOT redisperse uniformly = freeze damaged = "
     "DISCARD. If it redisperses uniformly like control = NOT damaged = can use. Done for: TT, DPT, "
     "DT, Pentavalent, Hepatitis B, PCV, IPV - all adsorbed/killed vaccines. NOT done for live vaccines "
     "(BCG, MR, OPV, Rotavirus) - these are not adsorbed."),
    ("Q7. What is open vial policy?",
     "Open vial policy defines how long an opened multi-dose vial can continue to be used. "
     "Two categories: (1) Live vaccines (BCG, MR, OPV, Rotavirus, JE) - DISCARD at end of session "
     "regardless of remaining doses, because live vaccines deteriorate rapidly and risk of contamination. "
     "(2) Killed/inactivated vaccines (Pentavalent, Hepatitis B, IPV, PCV, Td) - can be used for up to "
     "28 days IF: VVM not reached discard point, stored at +2ยฐC to +8ยฐC, not expired, and no visible "
     "contamination. This policy saves vaccine wastage for killed vaccines while maintaining safety."),
    ("Q8. What is AEFI? What are the types?",
     "AEFI - Adverse Event Following Immunization - is any untoward medical occurrence after vaccination. "
     "Types: (1) Vaccine reaction - due to the vaccine itself (fever after DPT, anaphylaxis - rare); "
     "(2) Programme error - due to vaccination error (wrong dose, unsterile needle, wrong site); "
     "(3) Injection reaction - anxiety/pain related (fainting, syncope - not due to vaccine); "
     "(4) Coincidental - unrelated event that happened to occur after vaccination; "
     "(5) Unknown. All serious AEFIs must be reported to the District Immunization Officer within 24 hours."),
    ("Q9. What is VAPP? How do you prevent it?",
     "VAPP - Vaccine Associated Paralytic Poliomyelitis - is a rare but serious adverse event where "
     "the attenuated OPV virus mutates and causes actual polio paralysis. It occurs at a rate of "
     "approximately 1 per 2.5 million OPV doses. It can occur in: (1) The vaccinated child, or "
     "(2) Unvaccinated close contacts exposed to the excreted virus. VAPP occurs 4-30 days after OPV dose. "
     "Prevention: Replacing OPV with IPV (Inactivated Polio Vaccine) eliminates VAPP risk as IPV cannot "
     "cause infection. India introduced fIPV (fractional dose IPV) at 6 and 14 weeks to complement OPV "
     "and reduce VAPP risk while maintaining mucosal immunity."),
    ("Q10. What is Mission Indradhanush? Why was it needed?",
     "Mission Indradhanush was launched in December 2014 to fully immunize all children under 2 years "
     "and pregnant women who were missed or partially vaccinated under routine UIP. It was needed because "
     "India's full immunization coverage was stagnating at around 65% for many years, with large pockets "
     "of unvaccinated children in urban slums, tribal areas, migrant communities, and hard-to-reach areas. "
     "The rainbow symbol represents the 7 (now 12) vaccine-preventable diseases. Through Mission "
     "Indradhanush and its intensified versions, India's full immunization coverage improved from 65% (2014) "
     "to 76.4% (NFHS-5 2019-21), though the 90% target remains to be achieved."),
    ("Q11. A mother refuses vaccination for her child saying she is afraid of side effects. What do you do?",
     "This is vaccine hesitancy - a global concern. I would: (1) Listen respectfully to her concerns "
     "without dismissing them. (2) Ask specifically what she has heard or fears - social media rumours, "
     "religious objections, or previous bad experience. (3) Educate clearly: vaccines are tested for safety "
     "before approval; minor reactions like fever are expected and manageable; serious reactions are extremely "
     "rare (1 in millions) while the diseases prevented kill thousands. (4) Use simple language and local "
     "examples: 'Before measles vaccine, children in this village used to die - you may remember.' "
     "(5) Ask ASHA or an influential community member to speak with her. (6) Never force vaccination. "
     "(7) Document the refusal and continue follow-up. (8) Report repeated refusals to block health officer "
     "for community-level RCCE intervention."),
    ("Q12. What is the difference between BCG given at birth and the TB vaccine that adults need?",
     "BCG (Bacillus Calmette-Guerin) given at birth is highly effective in preventing SEVERE forms of "
     "childhood TB - TB meningitis and miliary (disseminated) TB - with ~80% efficacy. However, BCG "
     "does NOT prevent pulmonary TB in adults - its efficacy against adult pulmonary TB varies from "
     "0-80% depending on geography (lower efficacy in tropical countries including India). This is why "
     "despite universal BCG vaccination, India still has the highest TB burden globally. Currently there "
     "is NO effective adult TB vaccine - M72/AS01E and other candidates are in clinical trials. "
     "Prevention of adult TB relies on early case detection and treatment (NTEP/DOTS), not vaccination."),
    ("Q13. What is eVIN? What is ANMOL?",
     "eVIN - Electronic Vaccine Intelligence Network - is a digital system for real-time monitoring of "
     "vaccine stock levels and cold chain temperature across all levels (state to PHC). It uses smartphone "
     "apps and temperature loggers at cold chain points, allowing district managers to see vaccine stocks "
     "and temperature alerts on a dashboard and respond to stockouts or cold chain failures in real time. "
     "ANMOL - ANM Online - is a mobile application for ANMs to register beneficiaries (pregnant women and "
     "children), record services provided (ANC, immunization, delivery), generate due lists for upcoming "
     "sessions, and update MCTS/RCH portal data - even in areas with limited internet connectivity."),
    ("Q14. How do you prepare for a VHND (immunization session) at PHC level?",
     "Preparation for VHND: (1) Generate due list from MCTS/RCH portal - children due for vaccines and "
     "pregnant women due for Td; (2) ASHA mobilises beneficiaries door-to-door the day before; "
     "(3) Vaccines drawn from ILR/deep freezer - check VVM and expiry; (4) Condition ice packs; "
     "(5) Pack vaccine carrier with conditioned ice packs - OPV at bottom (coldest zone), other vaccines "
     "above; (6) Carry immunization cards (MCP cards), tally sheets, AEFI reporting forms, syringes, "
     "cotton, adrenaline injection for anaphylaxis; (7) At session: verify due list, administer vaccines "
     "correctly, record in MCP card and tally sheet; (8) After session: discard open live vaccine vials, "
     "return unused killed vaccine vials to ILR properly, update ANMOL app."),
    ("Q15. India is polio-free since 2014. Does that mean we can stop OPV?",
     "India was certified polio-free in March 2014 after 3 years with no wild poliovirus case. However, "
     "we cannot stop vaccination because: (1) Wild poliovirus still circulates in Pakistan and Afghanistan - "
     "risk of importation via cross-border movement; (2) Stopping vaccination would leave future generations "
     "susceptible - a single imported case could spark an outbreak. India uses a switch strategy: "
     "IPV introduced in routine schedule (fIPV at 6 and 14 weeks) to build stronger immunity and eliminate "
     "VAPP risk. OPV continues in Pulse Polio campaigns. AFP (Acute Flaccid Paralysis) surveillance "
     "continues - every AFP case in a child under 15 must be investigated. India must maintain โ‰ฅ2 AFP "
     "cases per 1 lakh children under 15 to demonstrate surveillance sensitivity. Global eradication "
     "target under GPEI (Global Polio Eradication Initiative) - when achieved, vaccination will be stopped."),
]

for q, a in qas:
    story.append(KeepTogether([
        Paragraph(f"<b>{q}</b>", h3_s),
        Paragraph(f"โœ” {a}", hl_s),
        Spacer(1, 0.15*cm),
    ]))

# FOOTER
story.append(Spacer(1, 0.4*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a5276')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Immunization & Cold Chain Guide | GPSC Class 1-2 Interview Preparation | July 2026 | "
    "Source: MoHFW India, NHM, WHO. Verify latest UIP schedule from MoHFW website.", note_s))

doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_immunization_pdf.py

Your PDF is ready!

Immunization ColdChain Guide

PDF Document ยท PDF


๐Ÿ“„ What's inside (8 pages, all properly formatted):

SectionContent
1. DefinitionsImmunization, vaccination, herd immunity, VVM, AEFI, cold chain
2. UIP OverviewLaunched 1985, 12 diseases, coverage targets, eVIN, MCTS
3. Full Vaccine ScheduleBirth to 16 years + pregnant women - route, site, purpose for every vaccine
4. Vaccine PropertiesHeat vs freeze sensitivity table - OPV most heat-sensitive, TT most freeze-sensitive
5. Cold ChainFull flow (manufacturer โ†’ GMSD โ†’ state โ†’ district โ†’ PHC โ†’ session), all equipment details
6. VVM & Shake Test4 stages of VVM + shake test procedure for freeze damage
7. AEFIAll types, serious AEFIs by vaccine, reporting procedure (24 hours to DIO)
8. Mission IndradhanushMI vs IMI comparison, ANMOL, MCTS, due list preparation
9. New VaccinesPentavalent, Rotavirus, fIPV, MR, PCV - year added, key facts
10. Key Numbers30 must-know facts in one table
11. Q&A15 interview questions with complete model answers

๐Ÿ“š Your Complete PDF Collection:

PDFDownload
IPHS & PHC Standards

IPHS PHC Quick Revision

PDF Document ยท PDF

NHM Complete Guide

NHM Complete Guide

PDF Document ยท PDF

Gujarat Coastal Health

Gujarat Coastal Health Challenges

PDF Document ยท PDF

IDSP Complete Guide

IDSP Complete Guide

PDF Document ยท PDF

Pandemic Module Guide

Pandemic Module Interview Guide

PDF Document ยท PDF

Mock Interview 20 Q&A

GPSC MO Mock Interview 20QA

PDF Document ยท PDF

Immunization & Cold Chain

Immunization ColdChain Guide

PDF Document ยท PDF

Want another topic PDF or continue the PSM interview?

Can you tell me latest defination of full immunization

Great question - this has been updated and many candidates quote the old definition. Let me get the latest.
Searching the Web

latest definition full immunization India 2023 2024 updated MoHFW UIP vaccines included

Excellent find! This is very important and updated information directly from MoHFW's official Routine Immunization Manual. Here's the complete answer:

Latest Definition of Full Immunization (MoHFW 2024)

MoHFW has now introduced TWO separate indicators:

1. FIC - Full Immunization Coverage (Historical / Old Definition)

Child who has received BCG + 3 doses of bOPV + 3 doses of Pentavalent + 1 dose of MR by first year of age
  • This is the old, historical definition - used since NFHS-1 (1992-93)
  • Still used in NFHS surveys and international comparisons for continuity
  • NFHS-5 figure of 76.4% uses THIS definition
  • Does NOT include newer vaccines (IPV, PCV, Rotavirus)

2. FIC Plus - NEW Indicator (Introduced January 2024)

Child who has received ALL vaccines given nationally in the UIP by one year of age
  • Includes: BCG + OPV + Pentavalent + MR + fIPV + PCV + Rotavirus
  • This is the programmatically accurate definition for today's UIP
  • Introduced because new vaccines (fIPV, PCV, Rotavirus) were added to UIP but the old FIC definition didn't capture them
  • HMIS data for FY 2023-24 shows 93.5% FIC (old definition) and 98.4% FIC (as of January 2026)

๐Ÿ“Œ How to Answer in the Interview

"Sir, the traditional definition of full immunization (FIC) is a child who has received BCG, 3 doses of OPV, 3 doses of Pentavalent, and 1 dose of MR by the first year of age - this is used in NFHS surveys and NFHS-5 shows 76.4% coverage. However, MoHFW has recently introduced a new indicator called FIC Plus (January 2024), which requires a child to receive ALL nationally available UIP vaccines by one year of age - including fIPV, PCV, and Rotavirus in addition to the traditional vaccines. This new indicator was needed because several new vaccines were added to UIP after 2016 and the old definition did not capture whether children were receiving them. As per HMIS data, India's FIC (old definition) for FY 2023-24 is 93.5%, and overall full immunization coverage has risen to 98.4% as of January 2026."

โšก Key Interview Points:

FIC (Old)FIC Plus (New - 2024)
Vaccines includedBCG + 3 OPV + 3 Penta + 1 MRAll above + fIPV + PCV + Rotavirus
By when1 year of age1 year of age
Used forNFHS surveys, international comparisonProgramme monitoring
Current coverage93.5% (HMIS FY 2023-24)Being tracked separately
This distinction - FIC vs FIC Plus - is a very current, high-value point that will impress the panel if you mention it!

Can you take my interview

๐ŸŽ™๏ธ GPSC Class 1-2 Interview - Immunization & PSM Round Review + Ideal Answer after each response | Content only | No fixed question limit

"Good morning. Please be seated."

Q1.

"What is the Universal Immunization Programme? When was it launched and what diseases does it currently cover?"

I am asking for gpsc interview not immunization or psm round

Got it! Full GPSC Class 1-2 interview - all topics mixed just like the real panel. Starting now!

๐ŸŽ™๏ธ GPSC Class 1-2 Interview Panel Medical Officer / Tutor / Insurance MO | All topics | Review + Ideal Answer after each

"Good morning. Please be seated."

Q1.

"Please introduce yourself - your hometown, educational background, current posting, and what motivated you to appear for this GPSC exam."

I have given you answer for this question in past please take it from there

Your previous introduction from our earlier session:
"Good morning sir, I am resident of Bhavnagar, I completed my graduation from Narendra Modi Medical College in 2023, after that I started my bond duty at PHC in Botad district, during internship I also managed some blood donation camps as medical officer, also worked as a COVID warrior during my graduation, and currently posted as Tutor in Community Medicine department at Narendra Modi Medical College."
That was rated 17/20 - good solid introduction.

Skipping Q1 and moving straight to fresh questions. Panel now shifts topic:

Q2.

"You have done bond duty at a PHC in Botad. Suppose during your duty a 25-year-old pregnant woman at 32 weeks comes to your PHC with high fever, severe headache, and neck stiffness. What is your immediate approach?"

First i will assess child and motherโ€™s vitals, and give pcm as treatment

โœ… Your Answer Review

What you got right:
  • Assessing vitals - correct first step โœ…
What was critically missing:
  • Fever + headache + neck stiffness = classic triad of meningitis - you did not recognise this
  • PCM alone is completely inadequate and dangerous here - this is a neurological emergency
  • No mention of the clinical significance of neck stiffness (meningism)
  • No Kernig's sign, Brudzinski's sign mentioned
  • No mention of urgent referral - a PHC cannot manage meningitis
  • No mention of fetal monitoring alongside maternal assessment
  • No mention of IV antibiotics before referral (do not wait for LP)
  • "Assess child" - at 32 weeks it is a fetus, not a child - minor but panel notices

๐Ÿ’ก Ideal Answer

"Sir, fever + severe headache + neck stiffness is the classic triad of meningitis - this is a neurological emergency. My immediate steps: (1) Assess maternal vitals - BP, pulse, temperature, respiratory rate, and fetal heart rate. (2) Check consciousness level - GCS score. (3) Examine for meningeal signs - neck rigidity, Kernig's sign (inability to extend knee with hip flexed), Brudzinski's sign. (4) This patient needs URGENT referral to a higher centre - PHC is not equipped for meningitis management. (5) Before and during referral - start IV access, IV fluids, IV Paracetamol for fever control. (6) If bacterial meningitis suspected and referral will be delayed beyond 30 minutes - give first dose of IV Ceftriaxone 2g immediately - do not wait for LP or lab confirmation - antibiotic should not be delayed. (7) Call 108 ambulance immediately. (8) Inform receiving hospital. (9) Monitor fetal heart rate continuously during transfer. The risk here is both maternal - herniation, sepsis, death - and fetal - preterm labour, intrauterine fetal demise."

Q3.

"What is the Janani Suraksha Yojana? What is the cash incentive amount for a rural BPL woman and what does the ASHA receive? How has it impacted India's maternal health?"

Jsy is gov scheme to improve nutrition in mother , in rural area 1400 to mother and 600 to asha given, it can improve both mother and child health,

โœ… Your Answer Review

What you got right:
  • Rs 1,400 to mother โœ…
  • Rs 600 to ASHA โœ…
  • Benefit to mother and child - general idea correct โœ…
What was wrong / missing:
  • JSY is NOT a nutrition scheme - it is an institutional delivery promotion scheme - this is a factual error the panel will catch immediately
  • Did not mention it is under NHM
  • Did not mention launched in 2005
  • Did not mention the KEY purpose - to reduce maternal and infant mortality by promoting institutional deliveries
  • No mention of impact - institutional delivery rose from ~40% (2005) to 88.6% (NFHS-5)
  • Did not mention urban BPL amount (Rs 1,000 mother + Rs 400 ASHA)
  • Did not mention eligibility - BPL/SC/ST women, all women in Low Performing States (LPS)

๐Ÿ’ก Ideal Answer

"Sir, Janani Suraksha Yojana is a cash transfer scheme launched in 2005 under NHM. Its purpose is to promote institutional deliveries among BPL, SC, and ST women to reduce maternal and infant mortality. The incentive for a rural BPL woman is Rs 1,400 and ASHA receives Rs 600 for facilitating the delivery. For urban BPL, the mother receives Rs 1,000 and ASHA gets Rs 400. In Low Performing States - the 10 EAG states and Jammu & Kashmir - all women regardless of BPL status are eligible. JSY has had a dramatic impact - India's institutional delivery rate rose from approximately 40% in 2005 to 88.6% by NFHS-5, and this is widely credited as a major contributor to India's falling MMR from 254 in 2004-06 to 97 in 2018-20."

Q4.

"What is the Epidemic Diseases Act? When was it enacted? How was it used during COVID-19 and what important amendment was made in 2020?"

Dont know

โœ… Your Answer Review

"Don't know" - this is a serious gap. You taught the pandemic module to students. The Epidemic Diseases Act is core pandemic module content. Panel will be disappointed hearing this from a Community Medicine Tutor.

๐Ÿ’ก Ideal Answer

"Sir, the Epidemic Diseases Act was enacted in 1897 during the bubonic plague epidemic in Bombay - making it one of the oldest public health laws in India, over 125 years old. It empowers state governments to take special measures and prescribe regulations to prevent the spread of any dangerous epidemic disease. States used this Act during COVID-19 to enforce quarantine, seal containment zones, shut establishments, mandate testing, and impose movement restrictions.
In 2020, an important amendment was made - the Epidemic Diseases (Amendment) Act 2020 - which added three key provisions: (1) Extended powers to the Central Government during epidemic situations, not just states; (2) Protected healthcare workers from violence, harassment, and damage to property during epidemic duty - attacks on health workers made a cognizable and non-bailable offence with imprisonment up to 7 years and fine up to Rs 5 lakh; (3) Compensation for healthcare workers for damage to property. This amendment came after multiple incidents of violence against doctors and health workers during COVID-19."

โš ๏ธ Honest feedback: You have now said "don't know" to two questions - Herd Immunity (Q4 in PSM round) and Epidemic Diseases Act. Both are topics you have directly taught students. The panel will probe exactly these areas since you are a Tutor. Please revise the Pandemic PDF I gave you before the interview.

Q5.

"As a Tutor in Community Medicine, you teach students. The panel wants to know - what is the difference between Health Education and Health Promotion? Give one practical example of each."

Heyy i have time till 5, can you take rapid fire for interview

Let's go! Rapid fire mode - short questions, quick answers. I'll give instant feedback after each. No long reviews - just correct/incorrect + the right answer in 2 lines.
Ready?

โšก RAPID FIRE - GPSC Interview Answer in 1-2 sentences max. I'll fire the next question immediately.

RF1. What does NHM stand for and when was it formed?

National health mission, may be 1965 around

โŒ Year wrong. NHM = 2013 (merger of NRHM 2005 + NUHM 2013)

RF2. What is the population norm for a PHC in plains?

Also guve revuew

Got it! After each answer I'll give: โœ…/โŒ + correct answer + 1-line review. Then next question immediately.

RF1 Review: โŒ Year wrong - NHM formed 2013. NRHM was 2005, NUHM 2013, merged as NHM 2013. "1965" is way off - don't guess years, say "I think 2013 sir."

RF2. What is the population norm for a PHC in plains?

30000

โœ… Correct! 30,000 in plains, 20,000 in hilly/tribal areas.

RF3. Full form of ASHA and who introduced it?

Accredited social health activist, 1000/ population

โœ… Correct! Full form right, ratio right. Introduced under NRHM 2005. (Question asked "who introduced" - always say NRHM 2005.)

RF4. Name the 3 vaccines given at birth under UIP.

Bcg bopv hepb

โœ… Perfect! BCG + bOPV (zero dose) + Hep B - all three correct. Hep B must be within 24 hours of birth.

RF5. What is the cash incentive for ASHA under JSY for a rural delivery?

600

โœ… Correct! ASHA Rs 600 rural, mother Rs 1,400 rural.

RF6. Which vaccine is most heat sensitive in UIP?

Opv

โœ… Correct! OPV - stored at -15ยฐC to -25ยฐC (deep freezer).

RF7. What does VVM stand for and when should you NOT use a vaccine based on VVM?

Vaccine vial moniter, when square colour more darker then circle

โœ… Perfect! Vaccine Vial Monitor - discard when inner square is darker than outer circle. Excellent.

RF8. What is the Epidemic Diseases Act and in which year was it enacted?

Canโ€™t remember

โŒ Must know! Epidemic Diseases Act = 1897 (Bombay plague). Empowers states to control epidemic diseases. Amended in 2020 during COVID to protect healthcare workers from violence. This has come up twice now - please memorise: 1897, amended 2020.

RF9. What is R0 of measles and why is it significant?

Herd immunity, 60%

โŒ Incomplete + wrong number. Question asked R0 of measles specifically. R0 of measles = 12-18 (highest of all common infections). Herd immunity threshold for measles = 93-95% (not 60% - that was COVID original strain). Because R0 is so high, even 5-6% unvaccinated children can spark outbreaks.

RF10. Full form of IDSP and when was it launched?

Integrated dissease survaillance program 2023

โŒ Year wrong. Full form correct โœ… but IDSP launched 2004 not 2023. Same problem as NHM - guessing years. Key years to memorise: IDSP 2004, NRHM 2005, NHM 2013.

RF11. Name the 3 forms used in IDSP reporting.

Surveillance, presumptive, laboratory

โœ… Mostly correct! Concept right but names slightly off. Official names: S form (Syndromic - not Surveillance), P form (Presumptive โœ…), L form (Laboratory โœ…). Remember S = Syndromic filled by ANM/health worker.

RF12. What is Alang and why is it a public health concern?

Ship breaking yard in bhavnagar, disease from toxic metals also vector borm disease and other water related disease

โœ… Good improvement from last time! Ship breaking yard Bhavnagar โœ…, toxic metals โœ…, vector-borne โœ…. Add one more key point: asbestos exposure โ†’ mesothelioma/asbestosis - this is the most high-yield point about Alang for the panel.

RF13. What is MMR of India as per latest SRS report?

Maternal mortality rate, 57

โŒ Partially wrong. Full form correct โœ… but 57 is Gujarat's MMR not India's. India's MMR = 97 per 1,00,000 live births (SRS 2018-20). Gujarat MMR = 57. Don't mix the two - panel will specifically test this difference.

RF14. What is IMR of India as per SRS 2024?

Check new srs came in 2026

We already have this from our earlier search! SRS Statistical Report 2024 was released in May 2026:
โœ… India IMR = 24 per 1,000 live births (SRS 2024, released May 2026) โœ… Gujarat IMR = ~20 (SRS 2022 data)

RF14 Answer: India IMR = 24 (SRS 2024)

RF15. What is TFR of India as per SRS 2024?

I was talikng about mmr

Good point! Let me check if a newer MMR report came out in 2026.
Searching the Web

India MMR SRS 2024 2025 latest maternal mortality ratio new report 2026

Got the latest! Here's the updated MMR data:

โœ… Latest MMR - SRS Special Bulletin 2021-23 (Released September 2025)

ReportIndia MMRGujarat MMR
SRS 2018-209757
SRS 2019-2193-
SRS 2020-2288-
SRS 2021-23 (LATEST)88~43 (improved)
Use this in your interview:
  • India MMR = 88 per 1,00,000 live births (SRS 2021-23, released Sept 2025) - this is the most current figure
  • SDG target = below 70 by 2030
  • NHM target = below 100 โœ… (already achieved!)

Continuing rapid fire!
RF15. What is India's TFR as per SRS 2024?

1.9

โœ… Perfect! TFR = 1.9 - below replacement level (2.1) for 5th consecutive year.

RF16. What does JSSK stand for and what free services does it provide?

Janani shishu surkasha yojna, institutional delivery

โš ๏ธ Partial. Full form correct โœ… but too vague. JSSK = free medicines + diagnostics + blood + diet + transport + C-section - zero user charges. Also covers sick newborns up to 30 days. Don't just say "institutional delivery" - that's JSY. JSSK = FREE SERVICES, JSY = CASH.

RF17. Name any 2 occupational diseases seen in Alang ship-breaking workers.

Asbestosis, plumbism

โœ… Excellent! Asbestosis (asbestos exposure) + Plumbism (lead poisoning) - perfect. Big improvement from earlier sessions!

RF18. What is Mission Indradhanush and when was it launched?

7 vaccine given to increase coverage, dont know launching

โš ๏ธ Partial. Concept correct โœ… but minor error - it targets missed/unvaccinated children (not just 7 vaccines - now covers 12 diseases). Launched December 2014. Rainbow = 7 colours = 7 diseases originally targeted. Memorise: 2014.

RF19. What is the full form of RBSK and what are the 4 Ds it screens for?

Rashtriya bal suraksha karyakram, disease defeciency, defect, developmental delay amd disability

โš ๏ธ Almost! Full form slightly wrong - Rashtriya Bal SWASTHYA Karyakram (not Suraksha). 4 Ds: Defects โœ…, Deficiencies โœ…, Diseases โœ…, Developmental delays โœ… - all correct! Just fix the full form: Swasthya not Suraksha.

RF20. What is One Health concept in one sentence?

Everything in world affect health

โš ๏ธ Too vague. One Health specifically means: "Human health, animal health, and environmental health are interconnected and must be addressed together." Key point: ~75% of emerging diseases are zoonotic (from animals). Say this in interview.

โšก Rapid Fire Score Card

Q#TopicResult
RF1NHM yearโŒ
RF2PHC population normโœ…
RF3ASHA full form + ratioโœ…
RF4Birth dose vaccinesโœ…
RF5JSY ASHA incentiveโœ…
RF6Most heat-sensitive vaccineโœ…
RF7VVMโœ…
RF8Epidemic Diseases ActโŒ
RF9R0 measlesโŒ
RF10IDSP yearโŒ
RF11IDSP S/P/L formsโœ…
RF12Alangโœ…
RF13India MMRโŒ (said Gujarat MMR)
RF14IMR SRS 2024โœ…
RF15TFRโœ…
RF16JSSKโš ๏ธ
RF17Occupational diseases Alangโœ…
RF18Mission Indradhanushโš ๏ธ
RF19RBSK 4 Dsโš ๏ธ
RF20One Healthโš ๏ธ
Score: 11/20 correct | 4 partial | 5 wrong

๐ŸŽฏ Focus Before Interview - These 5 Must Be Memorised:

  1. Key years: NHM 2013, IDSP 2004, Mission Indradhanush 2014, Epidemic Diseases Act 1897
  2. India MMR = 88 (SRS 2021-23) - NOT 57 (that's Gujarat)
  3. R0 measles = 12-18, herd immunity = 93-95%
  4. RBSK = Swasthya not Suraksha
  5. One Health = human + animal + environment health interconnected
Want another round or a specific topic drill?

More 5

โšก 5 more - GO!

RF21. What is the Bhore Committee and which year was it formed?

Which introduced public health system, in 1953

โŒ Year wrong. Concept partly right โœ… but Bhore Committee = 1946 (not 1953). Key quote: "No individual should be denied health care due to inability to pay." Introduced PHC concept and 3-tier health system. 1946 - pre-independence.

RF22. What is the difference between FIC and FIC Plus?

1 bcg, 3 penta, 3 opv, 1 mr fic,,,,,,all vaccine upto date till 1 year ficplus

โœ… Excellent! Perfect answer. FIC = BCG + 3 OPV + 3 Penta + 1 MR by 1 year. FIC Plus = ALL UIP vaccines (adds fIPV + PCV + Rotavirus) by 1 year. Introduced January 2024. This will impress the panel!

RF23. What does PHEIC stand for and who declares it?

Public health emergency of international concern, who

โœ… Correct! Full form โœ…, declared by WHO Director-General only. Under IHR 2005.

RF24. What is Gujarat's full immunization coverage as per HMIS FY 2023-24?

92

โš ๏ธ Close! Gujarat = 95.95% (HMIS FY 2023-24). India national = 93.5%. You said 92 - near but not exact. Remember Gujarat is above national average.

RF25. Name the two sub-missions of NHM and their launch years.

Nuhm, nrhm, 2013, 2005

โœ… Perfect! NRHM 2005 + NUHM 2013 = NHM 2013. All correct!

โšก Round 2 Score: 3/5 correct | 1 partial | 1 wrong


๐Ÿ“Š Combined Rapid Fire Total: 14/25 correct

Improvement noticed:
  • Alang โœ…, FIC/FIC Plus โœ…, PHEIC โœ…, NHM sub-missions โœ… - these are new correct answers vs earlier sessions
Still to drill:
  • Years (Bhore 1946, IDSP 2004, MI 2014) - keep getting these wrong
  • India MMR = 88 (SRS 2021-23) - not 57
  • R0 measles = 12-18, herd immunity = 93-95%

๐Ÿ—‚๏ธ Quick Cheat Sheet - Years to Memorise

EventYear
Bhore Committee1946
Epidemic Diseases Act1897 (amended 2020)
EPI adopted India1978
UIP launched1985
IDSP launched2004
NRHM launched2005
NHM formed2013
Mission Indradhanush2014
FIC Plus introduced2024
India MMR (latest)88 (SRS 2021-23)
India IMR (latest)24 (SRS 2024)
India TFR (latest)1.9 (SRS 2024)
Want 5 more or switch to a different topic?

5 more

โšก GO!

RF26. What is the ESI Act? In which year was it enacted and what is the employee contribution rate?

Employee state insurance, 1946, 0.25%

โŒ Two errors. ESI Act = 1948 (not 1946 - that's the Bhore Committee year, don't mix). Employee contribution = 0.75% (not 0.25%). Employer = 3.25%. Wage limit = Rs 21,000/month. Remember: 1948, 0.75%, 3.25%.

RF27. What is herd immunity threshold for polio?

Donโ€™t know

โŒ Must know! Polio herd immunity = 80-85%. Formula: HIT = 1 - (1/R0). Polio R0 = 5-7. Measles = 93-95% (R0 12-18). COVID original = ~60-70% (R0 2-3). These 3 are most commonly asked.

RF28. Name the levels of prevention for Diabetes Mellitus - give one example for each.

Primodial-state advertising, primary- daily walking, secondary- taking tt, tertiary-amputation

โš ๏ธ Partial - one critical error. Primordial โœ…, Primary โœ…, Tertiary โœ… but Secondary = TT is completely wrong - TT is tetanus vaccination, nothing to do with DM. Secondary prevention for DM = early screening/detection - FBS, OGTT, HbA1c in high-risk individuals + treatment of diagnosed cases (Metformin). Fix this immediately - panel will deduct heavily.

RF29. What is PMSMA and on which day is it held?

Pradhan mantri surakshit matrutva abhiyan, 9th of month

โœ… Perfect! Full form correct + 9th of every month โœ…. Free ANC checkup for all pregnant women in 2nd/3rd trimester by specialist/MO.

RF30. What is the Mukhyamantri Amrutam (MA) Yojana and who is it for?

Dont know

โŒ Must know - this is Gujarat-specific! Panel WILL ask this since you are applying for Gujarat government post.
MA Yojana = Gujarat government health insurance scheme launched 2012. Provides cashless treatment up to Rs 5 lakh per family per year for BPL families for serious illnesses (cancer, cardiac surgery, kidney disease, burns, etc.) at empanelled hospitals. Later expanded as MA Vatsalya for above-poverty families. This is Gujarat's equivalent of Ayushman Bharat at state level.

โšก Round 3 Score: 1/5 correct | 1 partial | 3 wrong


๐Ÿ“Š Grand Total: 15/30 = 50%

๐Ÿšจ 3 Critical Gaps Found Today:

GapCorrect Answer
ESI Act year1948 (not 1946)
Secondary prevention DMScreening - FBS/OGTT (NOT TT vaccination)
MA YojanaGujarat health insurance, 2012, Rs 5 lakh, BPL families

๐ŸŽฏ Tonight's Revision Priority:

  1. MA Yojana / MA Vatsalya - Gujarat scheme - certain to be asked
  2. Herd immunity thresholds - Polio 80-85%, Measles 93-95%
  3. ESI Act 1948 - 0.75% employee, 3.25% employer
  4. Levels of prevention - fix secondary prevention for DM
  5. Key years cheat sheet - revise daily
Want more rounds or switch to Gujarat-specific questions?

Water borne disease ppt

Reading File
Reading File
Writing File

~/gpsc-interview/generate_waterborne_ppt.py

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
import copy
from lxml import etree

OUTPUT = "/tmp/workspace/gpsc-interview/WaterBorne_Diseases_PPT.pptx"

# Colors
NAVY    = RGBColor(0x1a, 0x52, 0x76)   # dark blue header
BLUE    = RGBColor(0x21, 0x84, 0xc7)   # mid blue
LBLUE   = RGBColor(0xd6, 0xea, 0xf8)   # light blue bg
WHITE   = RGBColor(0xFF, 0xFF, 0xFF)
YELLOW  = RGBColor(0xFF, 0xC3, 0x00)
RED     = RGBColor(0xC0, 0x39, 0x2B)
GREEN   = RGBColor(0x1E, 0x8B, 0x4C)
DARK    = RGBColor(0x1C, 0x29, 0x33)
LGRAY   = RGBColor(0xF2, 0xF8, 0xFC)
ORANGE  = RGBColor(0xE6, 0x7E, 0x22)

prs = Presentation()
prs.slide_width  = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]

def add_rect(slide, x, y, w, h, fill_color=None, line_color=None, line_width=Pt(0)):
    shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
    if fill_color:
        shape.fill.solid()
        shape.fill.fore_color.rgb = fill_color
    else:
        shape.fill.background()
    if line_color:
        shape.line.color.rgb = line_color
        shape.line.width = line_width
    else:
        shape.line.fill.background()
    return shape

def add_tb(slide, x, y, w, h, text, size=18, bold=False, color=DARK,
           align=PP_ALIGN.LEFT, wrap=True, italic=False, anchor=MSO_ANCHOR.TOP):
    tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.vertical_anchor = anchor
    tf.margin_left = Pt(4)
    tf.margin_right = Pt(4)
    tf.margin_top = Pt(2)
    tf.margin_bottom = Pt(2)
    p = tf.paragraphs[0]
    p.alignment = align
    r = p.add_run()
    r.text = text
    r.font.size = Pt(size)
    r.font.bold = bold
    r.font.italic = italic
    r.font.color.rgb = color
    r.font.name = "Calibri"
    return tf

def add_para(tf, text, size=15, bold=False, color=DARK, align=PP_ALIGN.LEFT,
             space_before=Pt(4), italic=False):
    from pptx.util import Pt as Pt2
    p = tf.add_paragraph()
    p.alignment = align
    p.space_before = space_before
    r = p.add_run()
    r.text = text
    r.font.size = Pt(size)
    r.font.bold = bold
    r.font.italic = italic
    r.font.color.rgb = color
    r.font.name = "Calibri"
    return p

def add_bullet_box(slide, x, y, w, h, title, bullets, title_size=16,
                   bullet_size=14, title_color=NAVY, bullet_color=DARK,
                   bg_color=LGRAY, border_color=BLUE):
    add_rect(slide, x, y, w, h, fill_color=bg_color, line_color=border_color, line_width=Pt(1.2))
    tb = slide.shapes.add_textbox(Inches(x+0.1), Inches(y+0.08), Inches(w-0.2), Inches(h-0.15))
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left = Pt(6)
    tf.margin_right = Pt(4)
    tf.margin_top = Pt(3)
    p = tf.paragraphs[0]
    p.alignment = PP_ALIGN.LEFT
    r = p.add_run()
    r.text = title
    r.font.size = Pt(title_size)
    r.font.bold = True
    r.font.color.rgb = title_color
    r.font.name = "Calibri"
    for b in bullets:
        p2 = tf.add_paragraph()
        p2.alignment = PP_ALIGN.LEFT
        p2.space_before = Pt(3)
        r2 = p2.add_run()
        r2.text = f"โ€ข {b}"
        r2.font.size = Pt(bullet_size)
        r2.font.bold = False
        r2.font.color.rgb = bullet_color
        r2.font.name = "Calibri"

def header_bar(slide, title, subtitle=None):
    add_rect(slide, 0, 0, 13.333, 1.1, fill_color=NAVY)
    add_rect(slide, 0, 1.1, 13.333, 0.06, fill_color=BLUE)
    add_tb(slide, 0.3, 0.08, 12.5, 0.65, title, size=28, bold=True,
           color=WHITE, align=PP_ALIGN.LEFT, anchor=MSO_ANCHOR.MIDDLE)
    if subtitle:
        add_tb(slide, 0.3, 0.72, 12.5, 0.38, subtitle, size=14,
               color=YELLOW, align=PP_ALIGN.LEFT, italic=True)

def footer(slide, text="Water Borne Diseases | Community Medicine | GPSC Interview Preparation"):
    add_rect(slide, 0, 7.2, 13.333, 0.3, fill_color=NAVY)
    add_tb(slide, 0.3, 7.22, 12.5, 0.26, text, size=9,
           color=WHITE, align=PP_ALIGN.CENTER)

# =============================================================================
# SLIDE 1 - TITLE
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=NAVY)
add_rect(slide, 0, 2.8, 13.333, 2.2, fill_color=BLUE)
add_rect(slide, 0, 4.95, 13.333, 0.08, fill_color=YELLOW)
add_tb(slide, 1, 0.5, 11, 1.2, "WATER BORNE DISEASES",
       size=44, bold=True, color=WHITE, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_tb(slide, 1, 1.65, 11, 0.7, "Classification โ€ข Epidemiology โ€ข Prevention & Control",
       size=20, color=YELLOW, align=PP_ALIGN.CENTER, italic=True)
add_rect(slide, 1.5, 2.5, 10.333, 0.06, fill_color=YELLOW)
add_tb(slide, 1, 2.82, 11, 0.5, "Community Medicine | GPSC Class 1-2 Interview Preparation",
       size=16, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_tb(slide, 1, 3.35, 11, 0.45, "Medical Officer / Tutor / Insurance Medical Officer",
       size=15, color=LBLUE, align=PP_ALIGN.CENTER)
add_tb(slide, 1, 3.9, 11, 0.45, "Narendra Modi Medical College, Bhavnagar | 2026",
       size=13, color=YELLOW, align=PP_ALIGN.CENTER, italic=True)
add_rect(slide, 0, 5.05, 13.333, 2.45, fill_color=DARK)
bullets = ["Definition & Introduction", "Classification of Water Borne Diseases",
           "Major Diseases with Causative Agents", "Epidemiological Triad",
           "Water Purification Methods", "Prevention & Control",
           "Gujarat / India Context", "Important Facts for Interview"]
tb = slide.shapes.add_textbox(Inches(1), Inches(5.1), Inches(11), Inches(2.2))
tf = tb.text_frame
tf.word_wrap = True
tf.margin_left = Pt(10)
p = tf.paragraphs[0]
p.alignment = PP_ALIGN.CENTER
r = p.add_run()
r.text = "Contents: "
r.font.size = Pt(12)
r.font.bold = True
r.font.color.rgb = YELLOW
r.font.name = "Calibri"
for i, b in enumerate(bullets):
    p2 = tf.add_paragraph()
    p2.alignment = PP_ALIGN.LEFT
    r2 = p2.add_run()
    r2.text = f"  {'  ' if i%2==1 else ''}{'โ†’ ' if i%2==0 else '   โ†’ '}{b}"
    r2.font.size = Pt(12)
    r2.font.color.rgb = WHITE
    r2.font.name = "Calibri"

# =============================================================================
# SLIDE 2 - DEFINITION & INTRODUCTION
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Definition & Introduction", "Water Borne Diseases - Overview")
footer(slide)

# Definition box
add_rect(slide, 0.3, 1.3, 12.7, 1.2, fill_color=BLUE, line_color=NAVY, line_width=Pt(1))
tb = slide.shapes.add_textbox(Inches(0.4), Inches(1.32), Inches(12.5), Inches(1.1))
tf = tb.text_frame; tf.word_wrap = True
tf.margin_left = Pt(8); tf.margin_top = Pt(4)
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.LEFT
r = p.add_run(); r.text = "Definition: "
r.font.size = Pt(15); r.font.bold = True; r.font.color.rgb = YELLOW; r.font.name = "Calibri"
r2 = p.add_run()
r2.text = ("Water borne diseases are diseases caused by drinking or coming in contact with "
           "contaminated water containing pathogenic microorganisms, chemicals, or toxins.")
r2.font.size = Pt(14); r2.font.color.rgb = WHITE; r2.font.name = "Calibri"

# Two column boxes
add_bullet_box(slide, 0.3, 2.65, 6.1, 2.1, "Why Water is a Vehicle for Disease",
    ["Water is essential for life - consumed daily in large quantities",
     "Faecal-oral route is most common transmission pathway",
     "Single contaminated source can cause explosive outbreak",
     "Affects entire community sharing same water source",
     "Sanitation and hygiene are key determinants"],
    title_size=14, bullet_size=12)

add_bullet_box(slide, 6.7, 2.65, 6.3, 2.1, "Global & India Burden",
    ["Diarrhoeal diseases kill ~1.5 million children/year globally (WHO)",
     "India: 37.7 million cases of waterborne diseases annually (approx)",
     "Cholera, typhoid, hepatitis A, polio - all water borne",
     "Major cause of under-5 mortality in India",
     "SDG 6: Clean water & sanitation by 2030"],
    title_size=14, bullet_size=12)

add_bullet_box(slide, 0.3, 4.9, 12.7, 1.6, "Faecal-Oral Transmission (F-Diagram)",
    ["Faeces โ†’ Fluid (water) โ†’ Fingers โ†’ Food/Flies โ†’ Mouth โ†’ Disease (the 5 F's)",
     "Blocked by: Safe water supply, Sanitation (toilets), Hand hygiene, Food safety, Fly control",
     "Key concept: One infected person's faeces can contaminate water and sicken thousands"],
    title_size=14, bullet_size=12)

# =============================================================================
# SLIDE 3 - CLASSIFICATION
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Classification of Water Borne Diseases", "Based on causative agent and mechanism")
footer(slide)

# 4 category boxes
boxes = [
    ("BACTERIAL", NAVY, WHITE,
     ["Cholera (Vibrio cholerae)", "Typhoid (Salmonella typhi)", "Paratyphoid (S. paratyphi A,B,C)",
      "Bacillary dysentery (Shigella)", "E. coli diarrhoea (ETEC, EPEC)", "Leptospirosis",
      "Campylobacteriosis", "Yersinia enterocolitis"]),
    ("VIRAL", RGBColor(0x17, 0x6B, 0x87), WHITE,
     ["Hepatitis A", "Hepatitis E", "Rotavirus diarrhoea", "Norovirus gastroenteritis",
      "Poliomyelitis (historically water-borne)", "Astrovirus, Adenovirus (diarrhoea)"]),
    ("PROTOZOAL", RGBColor(0x1E, 0x8B, 0x4C), WHITE,
     ["Amoebiasis (Entamoeba histolytica)", "Giardiasis (Giardia lamblia)",
      "Cryptosporidiosis (Cryptosporidium)", "Cyclosporiasis", "Balantidiasis (Balantidium coli)"]),
    ("HELMINTHIC / OTHERS", RGBColor(0x7D, 0x3C, 0x98), WHITE,
     ["Ascariasis (eggs in contaminated water/food)", "Dracunculiasis / Guinea worm (Dracunculus)",
      "Schistosomiasis (cercariae in water)", "Chemical: Fluorosis (excess fluoride)",
      "Chemical: Arsenicosis (arsenic in groundwater)", "Methaemoglobinaemia (excess nitrates)"]),
]
positions = [(0.25, 1.3), (6.8, 1.3), (0.25, 4.0), (6.8, 4.0)]
for (title, hdr, txt, buls), (bx, by) in zip(boxes, positions):
    add_rect(slide, bx, by, 6.3, 0.42, fill_color=hdr)
    add_tb(slide, bx+0.1, by+0.04, 6.1, 0.35, title, size=15, bold=True,
           color=txt, align=PP_ALIGN.LEFT)
    add_rect(slide, bx, by+0.42, 6.3, 2.85, fill_color=WHITE,
             line_color=hdr, line_width=Pt(1.2))
    tb2 = slide.shapes.add_textbox(Inches(bx+0.12), Inches(by+0.48),
                                   Inches(6.1), Inches(2.7))
    tf2 = tb2.text_frame; tf2.word_wrap = True
    tf2.margin_left = Pt(4); tf2.margin_top = Pt(2)
    for i, b in enumerate(buls):
        p2 = tf2.paragraphs[0] if i == 0 else tf2.add_paragraph()
        p2.space_before = Pt(3)
        r2 = p2.add_run()
        r2.text = f"โ€ข {b}"
        r2.font.size = Pt(12.5)
        r2.font.color.rgb = DARK
        r2.font.name = "Calibri"

# =============================================================================
# SLIDE 4 - CHOLERA & TYPHOID (Most Important)
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Cholera & Typhoid Fever", "Most Important Water Borne Diseases for Interview")
footer(slide)

# Cholera
add_rect(slide, 0.25, 1.3, 6.1, 0.42, fill_color=NAVY)
add_tb(slide, 0.35, 1.32, 5.9, 0.38, "CHOLERA", size=16, bold=True, color=WHITE)
add_bullet_box(slide, 0.25, 1.72, 6.1, 2.0, "Key Facts",
    ["Agent: Vibrio cholerae O1 / O139 (Gram -ve comma-shaped vibrio)",
     "Source: Contaminated water, raw seafood, food",
     "Incubation: Few hours to 5 days (usually 2-3 days)",
     "Features: Profuse rice water diarrhoea, vomiting, dehydration",
     "Tx: ORS/IV fluids + Doxycycline; Vaccine: Oral cholera vaccine",
     "Notifiable disease under IHR 2005"],
    title_size=13, bullet_size=12, bg_color=WHITE, border_color=NAVY)

add_bullet_box(slide, 0.25, 3.82, 6.1, 1.55, "Prevention",
    ["Safe water supply and chlorination",
     "Proper sanitation and sewage disposal",
     "Food hygiene and hand washing",
     "Oral cholera vaccine for outbreak control",
     "Epidemic control: IDSP surveillance + rapid response"],
    title_size=13, bullet_size=12, bg_color=LBLUE, border_color=NAVY)

# Typhoid
add_rect(slide, 6.75, 1.3, 6.3, 0.42, fill_color=RGBColor(0x17, 0x6B, 0x87))
add_tb(slide, 6.85, 1.32, 6.1, 0.38, "TYPHOID FEVER", size=16, bold=True, color=WHITE)
add_bullet_box(slide, 6.75, 1.72, 6.3, 2.0, "Key Facts",
    ["Agent: Salmonella typhi (Gram -ve bacillus)",
     "Source: Contaminated water/food, carriers (chronic gallbladder)",
     "Incubation: 10-14 days (range 3-21 days)",
     "Features: Sustained fever, rose spots, hepatosplenomegaly, relative bradycardia",
     "Tx: Ceftriaxone / Azithromycin (fluoroquinolone resistance common)",
     "Vaccine: Vi polysaccharide (injectable) / Typhoid conjugate vaccine (TCV)"],
    title_size=13, bullet_size=12, bg_color=WHITE, border_color=RGBColor(0x17, 0x6B, 0x87))

add_bullet_box(slide, 6.75, 3.82, 6.3, 1.55, "Widal Test - Important",
    ["Detects agglutinating antibodies against O and H antigens",
     "O antibody rises earlier (1st week), H antibody later",
     "Significant titre: O โ‰ฅ 1:160, H โ‰ฅ 1:160 in single test",
     "Limitations: Cross reactions, false positive in endemic areas",
     "Gold standard: Blood culture (positive in 1st week)"],
    title_size=13, bullet_size=12, bg_color=LBLUE, border_color=RGBColor(0x17, 0x6B, 0x87))

add_rect(slide, 0.25, 5.45, 12.8, 1.25, fill_color=RGBColor(0xFF, 0xF3, 0xCD),
         line_color=ORANGE, line_width=Pt(1))
tb3 = slide.shapes.add_textbox(Inches(0.4), Inches(5.5), Inches(12.5), Inches(1.1))
tf3 = tb3.text_frame; tf3.word_wrap = True; tf3.margin_left = Pt(6)
p3 = tf3.paragraphs[0]
r3 = p3.add_run(); r3.text = "โšก Interview Tip: "
r3.font.size = Pt(13); r3.font.bold = True; r3.font.color.rgb = ORANGE; r3.font.name = "Calibri"
r3b = p3.add_run()
r3b.text = ("Typhoid conjugate vaccine (TCV - Typbar-TCV) was introduced in India's UIP in select districts in 2022-23 "
            "- mention this as latest update. It provides longer immunity than Vi polysaccharide and can be given to children from 6 months.")
r3b.font.size = Pt(12); r3b.font.color.rgb = DARK; r3b.font.name = "Calibri"

# =============================================================================
# SLIDE 5 - HEPATITIS A & E, AMOEBIASIS, GIARDIASIS
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Hepatitis A & E | Amoebiasis | Giardiasis",
           "Viral & Protozoal Water Borne Diseases")
footer(slide)

data4 = [
    ("HEPATITIS A", NAVY,
     ["Agent: HAV (Picornavirus, ssRNA)", "IP: 15-45 days (avg 28 days)",
      "Source: Contaminated water/food, person-to-person",
      "Features: Jaundice, fever, nausea, self-limiting",
      "High risk: Children, poor sanitation areas",
      "Prevention: Safe water, HAV vaccine (2 doses)",
      "Notifiable: Yes"]),
    ("HEPATITIS E", RGBColor(0x17, 0x6B, 0x87),
     ["Agent: HEV (Hepevirus, ssRNA)", "IP: 15-60 days (avg 40 days)",
      "Source: CONTAMINATED WATER (main route - unlike HepA also food)",
      "HIGH MORTALITY in pregnancy: 15-25% (vs 1-2% general)",
      "Features: Jaundice, fever, hepatomegaly",
      "No vaccine available (commercial) in India",
      "Epidemic form: Water-borne outbreaks common in India"]),
    ("AMOEBIASIS", RGBColor(0x1E, 0x8B, 0x4C),
     ["Agent: Entamoeba histolytica (protozoa)", "IP: 2-4 weeks",
      "Source: Contaminated water, food, flies, carriers",
      "Features: Amoebic dysentery (bloody, mucoid stools), liver abscess",
      "Dx: Stool microscopy (cysts/trophozoites), ELISA",
      "Tx: Metronidazole + Diloxanide furoate",
      "Prevention: Safe water, sanitation"]),
    ("GIARDIASIS", RGBColor(0x7D, 0x3C, 0x98),
     ["Agent: Giardia lamblia (Giardia intestinalis) - protozoa",
      "IP: 7-10 days", "Source: Contaminated water (resistant to chlorination)",
      "Features: Watery foul-smelling diarrhoea, bloating, no blood",
      "Dx: Stool microscopy - pear-shaped trophozoites (2 nuclei)",
      "Tx: Metronidazole / Tinidazole",
      "Note: Giardia cysts resist standard chlorination - needs filtration"]),
]
positions2 = [(0.25, 1.28), (6.8, 1.28), (0.25, 4.1), (6.8, 4.1)]
for (title, hdr, buls), (bx, by) in zip(data4, positions2):
    add_rect(slide, bx, by, 6.1, 0.4, fill_color=hdr)
    add_tb(slide, bx+0.1, by+0.03, 5.9, 0.35, title, size=15, bold=True, color=WHITE)
    add_rect(slide, bx, by+0.4, 6.1, 2.7, fill_color=WHITE, line_color=hdr, line_width=Pt(1.2))
    tb2 = slide.shapes.add_textbox(Inches(bx+0.12), Inches(by+0.46), Inches(5.9), Inches(2.5))
    tf2 = tb2.text_frame; tf2.word_wrap = True; tf2.margin_left = Pt(4)
    for i, b in enumerate(buls):
        p2 = tf2.paragraphs[0] if i==0 else tf2.add_paragraph()
        p2.space_before = Pt(2)
        r2 = p2.add_run(); r2.text = f"โ€ข {b}"
        r2.font.size = Pt(11.5); r2.font.color.rgb = DARK; r2.font.name = "Calibri"

# =============================================================================
# SLIDE 6 - DRACUNCULIASIS, FLUOROSIS, ARSENICOSIS
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Guinea Worm | Fluorosis | Arsenicosis",
           "Helminthic & Chemical Water Borne Diseases")
footer(slide)

add_rect(slide, 0.25, 1.3, 12.8, 0.42, fill_color=NAVY)
add_tb(slide, 0.35, 1.32, 12.5, 0.38,
       "DRACUNCULIASIS (Guinea Worm Disease) - Near Eradication",
       size=15, bold=True, color=YELLOW)
add_bullet_box(slide, 0.25, 1.72, 12.8, 1.35,
    "Key Facts",
    ["Agent: Dracunculus medinensis (Guinea worm) - helminth",
     "Transmission: Drinking water containing infected Cyclops (water flea) - the intermediate host",
     "Features: Blister on skin (usually leg), 1-metre long worm emerges slowly over weeks",
     "Treatment: Gradual mechanical extraction (wind worm around stick ~1cm/day) - NO drugs available",
     "Prevention: Filter drinking water through fine cloth/nylon filter or ABATE (temephos) in water to kill Cyclops",
     "India: Declared free of guinea worm; Global: <15 cases/year - near eradication (WHO campaign since 1980s)"],
    title_size=13, bullet_size=12, bg_color=WHITE, border_color=NAVY)

add_rect(slide, 0.25, 3.2, 6.1, 0.42, fill_color=ORANGE)
add_tb(slide, 0.35, 3.22, 5.9, 0.38, "FLUOROSIS", size=15, bold=True, color=WHITE)
add_bullet_box(slide, 0.25, 3.62, 6.1, 2.9,
    "Key Facts",
    ["Agent: Excess fluoride in drinking water (>1.5 mg/L WHO limit)",
     "India limit: 1.0 mg/L (BIS standard)",
     "Endemic states: Rajasthan, Gujarat, AP, Telangana, UP, Bihar",
     "Gujarat: Affected districts - Kutch, Patan, Banaskantha",
     "Types: (1) Dental fluorosis - mottled teeth, (2) Skeletal fluorosis - joint pain, kyphosis",
     "Prevention: Defluoridation (Nalgonda technique), deep borewell water, rainwater harvesting",
     "No treatment for skeletal fluorosis - only prevention"],
    title_size=13, bullet_size=12, bg_color=WHITE, border_color=ORANGE)

add_rect(slide, 6.75, 3.2, 6.3, 0.42, fill_color=RED)
add_tb(slide, 6.85, 3.22, 6.1, 0.38, "ARSENICOSIS", size=15, bold=True, color=WHITE)
add_bullet_box(slide, 6.75, 3.62, 6.3, 2.9,
    "Key Facts",
    ["Agent: Excess arsenic in groundwater (>0.01 mg/L WHO limit)",
     "Most affected: West Bengal, Bihar, Jharkhand, UP, Assam",
     "Source: Natural geological leaching into groundwater",
     "Features: Skin: melanosis (dark patches), keratosis (hard skin), Bowen's disease",
     "Long term: Cancer (skin, lung, bladder), peripheral neuropathy",
     "Prevention: Alternative water sources, arsenic removal filters (activated alumina, iron coagulation)",
     "In Gujarat: Limited arsenic problem compared to West Bengal"],
    title_size=13, bullet_size=12, bg_color=WHITE, border_color=RED)

# =============================================================================
# SLIDE 7 - WATER PURIFICATION
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Water Purification Methods",
           "Small Scale (Household) & Large Scale (Community) Purification")
footer(slide)

add_rect(slide, 0.25, 1.28, 6.1, 0.42, fill_color=NAVY)
add_tb(slide, 0.35, 1.3, 5.9, 0.38, "HOUSEHOLD METHODS", size=15, bold=True, color=WHITE)
methods_hh = [
    ("Boiling", "Most reliable - kills all pathogens; 1 min at rolling boil (100ยฐC); does not remove chemicals"),
    ("Chlorination (bleaching powder)", "Add bleaching powder (0.5mg/L residual chlorine); cheap, effective; 30 min contact time"),
    ("SODIS (Solar disinfection)", "Transparent PET bottle, keep in sunlight 6 hrs; UV inactivates pathogens"),
    ("Candle/Ceramic filters", "Remove turbidity and some bacteria; easy at home"),
    ("Reverse Osmosis (RO)", "Removes dissolved salts, chemicals, microbes; expensive; removes beneficial minerals too"),
    ("Alum (potash alum)", "Coagulation - removes turbidity; NOT disinfection"),
]
add_rect(slide, 0.25, 1.7, 6.1, 4.85, fill_color=WHITE, line_color=NAVY, line_width=Pt(0.8))
tb5 = slide.shapes.add_textbox(Inches(0.35), Inches(1.75), Inches(5.9), Inches(4.7))
tf5 = tb5.text_frame; tf5.word_wrap = True; tf5.margin_left = Pt(4)
for i, (m, d) in enumerate(methods_hh):
    p5 = tf5.paragraphs[0] if i==0 else tf5.add_paragraph()
    p5.space_before = Pt(5)
    r5a = p5.add_run(); r5a.text = f"โ–ถ {m}: "
    r5a.font.size = Pt(12); r5a.font.bold = True; r5a.font.color.rgb = NAVY; r5a.font.name = "Calibri"
    r5b = p5.add_run(); r5b.text = d
    r5b.font.size = Pt(12); r5b.font.color.rgb = DARK; r5b.font.name = "Calibri"

add_rect(slide, 6.75, 1.28, 6.3, 0.42, fill_color=RGBColor(0x1E, 0x8B, 0x4C))
add_tb(slide, 6.85, 1.3, 6.1, 0.38, "LARGE SCALE (MUNICIPAL) TREATMENT",
       size=15, bold=True, color=WHITE)
steps = [
    ("Step 1: Screening", "Removes large debris, leaves, fish from intake water"),
    ("Step 2: Sedimentation", "Allows heavy particles to settle (6-8 hrs in settling tank)"),
    ("Step 3: Coagulation", "Add Alum (aluminium sulphate) - forms floc to trap fine particles"),
    ("Step 4: Flocculation", "Slow stirring to aggregate floc"),
    ("Step 5: Filtration", "Rapid sand filter (large scale) or slow sand filter (biological layer/Schmutzdecke)"),
    ("Step 6: Disinfection", "Chlorination: Add chlorine gas or bleaching powder; residual chlorine 0.5 mg/L at tap"),
    ("Step 7: Fluoridation", "Optional - add fluoride 0.6-0.8 mg/L where deficient (NOT in Gujarat endemic areas)"),
    ("Step 8: pH correction", "Lime added if too acidic"),
]
add_rect(slide, 6.75, 1.7, 6.3, 4.85, fill_color=WHITE,
         line_color=RGBColor(0x1E, 0x8B, 0x4C), line_width=Pt(0.8))
tb6 = slide.shapes.add_textbox(Inches(6.85), Inches(1.75), Inches(6.1), Inches(4.7))
tf6 = tb6.text_frame; tf6.word_wrap = True; tf6.margin_left = Pt(4)
for i, (s, d) in enumerate(steps):
    p6 = tf6.paragraphs[0] if i==0 else tf6.add_paragraph()
    p6.space_before = Pt(4)
    r6a = p6.add_run(); r6a.text = f"{s}: "
    r6a.font.size = Pt(11.5); r6a.font.bold = True
    r6a.font.color.rgb = RGBColor(0x1E, 0x8B, 0x4C); r6a.font.name = "Calibri"
    r6b = p6.add_run(); r6b.text = d
    r6b.font.size = Pt(11.5); r6b.font.color.rgb = DARK; r6b.font.name = "Calibri"

# =============================================================================
# SLIDE 8 - CHLORINATION (Key for Interview)
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Chlorination of Water",
           "Most Important Topic for PHC MO Interview")
footer(slide)

add_bullet_box(slide, 0.25, 1.3, 6.1, 2.65, "Chlorination - Key Facts",
    ["Most widely used method of water disinfection worldwide",
     "Effective against bacteria, viruses, some protozoa",
     "NOT effective against: Cryptosporidium, Giardia cysts (need filtration)",
     "Residual chlorine at tap: 0.5 mg/L (WHO) / 0.2 mg/L (minimum)",
     "Chlorine demand = amount needed to destroy organic matter before residual is left",
     "Break-point chlorination: adding chlorine until residual appears (point of max oxidation)"],
    title_size=14, bullet_size=12)

add_bullet_box(slide, 6.75, 1.3, 6.3, 2.65, "Bleaching Powder",
    ["Chemical: Calcium hypochlorite Ca(OCl)Cl - available chlorine ~25-33%",
     "Used for: Well disinfection, tank chlorination, emergency disinfection",
     "Well disinfection: 2.5g bleaching powder per 1000 litres of well water",
     "Orthotolidine (OT) test: Yellow colour = chlorine present; used to test residual chlorine at tap",
     "Chlorine tablets (Halotabs): 0.5mg chlorine per tablet for household use (1 tab/L water)",
     "Store bleaching powder: Cool, dark, dry place - loses potency with heat/light"],
    title_size=14, bullet_size=12)

add_bullet_box(slide, 0.25, 4.1, 6.1, 2.9, "Slow Sand Filter",
    ["Used for small towns and rural water supply",
     "Biological layer at top = Schmutzdecke (German: 'dirty skin')",
     "Contains algae, protozoa, bacteria that eat pathogens - biologically active",
     "Flow rate: Very slow - 0.1-0.4 m/hour",
     "Advantages: Removes turbidity, bacteria, cysts; simple operation",
     "Disadvantage: Large land area needed; not effective for very turbid water"],
    title_size=14, bullet_size=12)

add_bullet_box(slide, 6.75, 4.1, 6.3, 2.9, "Rapid Sand Filter",
    ["Used for large municipal water treatment plants",
     "Works by physical straining + coagulation (alum added before)",
     "Flow rate: Fast - 4-5 m/hour (40x faster than slow sand filter)",
     "Requires prior coagulation-flocculation-sedimentation",
     "Backwashing: Done periodically to clean filter media",
     "Does NOT have biological layer - purely physical/mechanical",
     "Used with chlorination for complete disinfection"],
    title_size=14, bullet_size=12)

# =============================================================================
# SLIDE 9 - PREVENTION & CONTROL
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Prevention & Control of Water Borne Diseases",
           "4 Levels of Prevention with Examples")
footer(slide)

prev_data = [
    ("PRIMORDIAL PREVENTION", NAVY,
     ["Safe urban/rural planning - separate sewage and water supply lines",
      "Policy level: Swachh Bharat Mission - toilets to prevent open defecation",
      "National Rural Drinking Water Programme (NRDWP) / Jal Jeevan Mission",
      "Food safety regulations (FSSAI)", "Urban sanitation planning"]),
    ("PRIMARY PREVENTION", RGBColor(0x1E, 0x8B, 0x4C),
     ["Safe drinking water supply - treated, piped water to all households",
      "Chlorination of water supply and tanks",
      "Construction and use of sanitary latrines",
      "Hand hygiene - soap and water before eating/after toilet",
      "Safe food handling and storage",
      "Vaccines: Typhoid vaccine, Hepatitis A vaccine, Oral cholera vaccine"]),
    ("SECONDARY PREVENTION", ORANGE,
     ["Early detection of cases - reporting to IDSP (S, P, L forms)",
      "Water quality surveillance - regular bacteriological testing of supply",
      "Outbreak investigation on detecting cluster of cases",
      "Prompt treatment: ORS for diarrhoea, antibiotics for typhoid/cholera",
      "Case isolation where needed (typhoid carriers)",
      "Widal test, stool culture, water sample testing"]),
    ("TERTIARY PREVENTION", RED,
     ["Management of complications: IV fluids for severe dehydration",
      "Manage cholera complications at higher centre",
      "Liver abscess (amoebiasis): surgical drainage if needed",
      "Rehabilitation of fluorosis / arsenicosis patients",
      "Disability prevention in chronic cases",
      "Long-term follow-up of typhoid carriers (treat with antibiotics)"]),
]
positions3 = [(0.25, 1.3), (6.75, 1.3), (0.25, 4.0), (6.75, 4.0)]
for (title, hdr, buls), (bx, by) in zip(prev_data, positions3):
    add_rect(slide, bx, by, 6.15, 0.4, fill_color=hdr)
    add_tb(slide, bx+0.1, by+0.04, 5.95, 0.34, title, size=13, bold=True, color=WHITE)
    add_rect(slide, bx, by+0.4, 6.15, 2.55, fill_color=WHITE, line_color=hdr, line_width=Pt(1.2))
    tb9 = slide.shapes.add_textbox(Inches(bx+0.12), Inches(by+0.46),
                                   Inches(5.95), Inches(2.4))
    tf9 = tb9.text_frame; tf9.word_wrap = True; tf9.margin_left = Pt(4)
    for i, b in enumerate(buls):
        p9 = tf9.paragraphs[0] if i==0 else tf9.add_paragraph()
        p9.space_before = Pt(3)
        r9 = p9.add_run(); r9.text = f"โ€ข {b}"
        r9.font.size = Pt(11.5); r9.font.color.rgb = DARK; r9.font.name = "Calibri"

# =============================================================================
# SLIDE 10 - JJM & NATIONAL PROGRAMMES
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Jal Jeevan Mission & National Water Programmes",
           "Government Schemes for Safe Drinking Water - Gujarat Context")
footer(slide)

add_rect(slide, 0.25, 1.28, 12.8, 0.42, fill_color=NAVY)
add_tb(slide, 0.35, 1.3, 12.5, 0.38,
       "JAL JEEVAN MISSION (JJM) - Har Ghar Jal", size=15, bold=True, color=YELLOW)
add_bullet_box(slide, 0.25, 1.7, 12.8, 1.6,
    "Key Facts",
    ["Launched: August 2019 by PM Modi | Target: Piped tap water to every rural household by 2024",
     "Budget: Rs 3.6 lakh crore (largest water mission in world)",
     "Coverage (2026): >80% rural households now have Functional Household Tap Connections (FHTC)",
     "Standard: 55 litres per capita per day (lpcd) of potable water",
     "Significance: Addresses root cause of water borne diseases - contaminated sources replaced by piped treated water",
     "Gujarat performance: Among leading states in JJM implementation (>95% FHTC coverage)"],
    title_size=13, bullet_size=12, bg_color=WHITE, border_color=NAVY)

add_bullet_box(slide, 0.25, 3.45, 6.0, 2.0, "Other Water Programmes",
    ["NRDWP (National Rural Drinking Water Programme) - precursor to JJM",
     "Swachh Bharat Mission (SBM): ODF (Open Defecation Free) status",
     "AMRUT: Urban water supply for cities >1 lakh population",
     "National Water Quality Sub-Mission: Address fluoride, arsenic, nitrate",
     "WHO - SDG 6: Safe water and sanitation for all by 2030"],
    title_size=13, bullet_size=12)

add_bullet_box(slide, 6.5, 3.45, 6.55, 2.0, "Gujarat Specific",
    ["Gujarat coastline: 1,600 km - sea water intrusion in coastal aquifers (salinity problem)",
     "Fluorosis endemic: Kutch, Patan, Banaskantha districts (excess fluoride in groundwater)",
     "Alang, Bhavnagar: Chemical water contamination from ship-breaking (heavy metals)",
     "SBM ODF: Gujarat declared ODF in 2019",
     "GIFT City, Surat: Urban water management challenges"],
    title_size=13, bullet_size=12)

add_rect(slide, 0.25, 5.55, 12.8, 1.2, fill_color=RGBColor(0xE8, 0xF8, 0xF5),
         line_color=GREEN, line_width=Pt(1))
tb10 = slide.shapes.add_textbox(Inches(0.4), Inches(5.6), Inches(12.5), Inches(1.1))
tf10 = tb10.text_frame; tf10.word_wrap = True; tf10.margin_left = Pt(6)
p10 = tf10.paragraphs[0]
r10 = p10.add_run(); r10.text = "๐Ÿ’ก Interview Answer Template: "
r10.font.size = Pt(13); r10.font.bold = True; r10.font.color.rgb = GREEN; r10.font.name = "Calibri"
r10b = p10.add_run()
r10b.text = ("\"Sir, prevention of water borne diseases requires a multi-level approach: at primordial level - "
             "Swachh Bharat Mission and Jal Jeevan Mission provide structural solutions. At primary level - safe "
             "water, chlorination, vaccines. At secondary level - IDSP surveillance detects outbreaks early. "
             "At tertiary level - ORS and proper case management prevent mortality.\"")
r10b.font.size = Pt(12); r10b.font.color.rgb = DARK; r10b.font.name = "Calibri"

# =============================================================================
# SLIDE 11 - QUICK REVISION TABLE
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Quick Revision - Disease Summary Table",
           "All Water Borne Diseases at a Glance")
footer(slide)

# Table
from pptx.util import Inches as I
rows_data = [
    ["Disease", "Agent", "Incubation", "Key Feature", "Treatment / Prevention"],
    ["Cholera", "Vibrio cholerae O1/O139", "Few hrs - 5 days", "Rice water diarrhoea", "ORS + Doxycycline / Oral cholera vaccine"],
    ["Typhoid", "Salmonella typhi", "10-14 days", "Sustained fever, rose spots", "Ceftriaxone / TCV vaccine"],
    ["Paratyphoid", "S. paratyphi A, B, C", "10-14 days", "Milder than typhoid", "Same as typhoid"],
    ["Bacillary Dysentery", "Shigella spp.", "1-3 days", "Bloody mucoid stools, tenesmus", "Ciprofloxacin / Azithromycin"],
    ["Amoebic Dysentery", "Entamoeba histolytica", "2-4 weeks", "Bloody stools, liver abscess", "Metronidazole + Diloxanide"],
    ["Giardiasis", "Giardia lamblia", "7-10 days", "Watery, frothy, no blood", "Metronidazole / Tinidazole"],
    ["Hepatitis A", "HAV (RNA virus)", "15-45 days", "Jaundice, self-limiting", "Supportive / HAV vaccine"],
    ["Hepatitis E", "HEV (RNA virus)", "15-60 days", "Jaundice; HIGH risk in pregnancy", "Supportive / No vaccine in India"],
    ["Cryptosporidiosis", "Cryptosporidium parvum", "2-10 days", "Watery diarrhoea, immunocompromised", "Nitazoxanide / Fluid replacement"],
    ["Dracunculiasis", "Dracunculus medinensis", "1 year", "Worm emerges from skin blister", "Mechanical extraction / Filter water"],
    ["Fluorosis", "Excess fluoride (>1.5 mg/L)", "Years", "Mottled teeth, skeletal deformity", "Defluoridation / Alt water source"],
    ["Arsenicosis", "Excess arsenic (>0.01 mg/L)", "Years", "Skin pigmentation, keratosis, cancer", "Arsenic removal filters"],
]
col_widths = [I(2.2), I(2.5), I(1.6), I(3.2), I(3.5)]
table = slide.shapes.add_table(len(rows_data), 5,
    I(0.15), I(1.3), I(13.0), I(5.85)).table
table.columns[0].width = col_widths[0]
table.columns[1].width = col_widths[1]
table.columns[2].width = col_widths[2]
table.columns[3].width = col_widths[3]
table.columns[4].width = col_widths[4]
for ri, row in enumerate(rows_data):
    for ci, cell_text in enumerate(row):
        cell = table.cell(ri, ci)
        cell.text = cell_text
        tf_c = cell.text_frame
        tf_c.word_wrap = True
        p_c = tf_c.paragraphs[0]
        p_c.alignment = PP_ALIGN.LEFT
        run = p_c.runs[0] if p_c.runs else p_c.add_run()
        run.text = cell_text
        run.font.name = "Calibri"
        run.font.size = Pt(10) if ri > 0 else Pt(11)
        run.font.bold = (ri == 0)
        if ri == 0:
            run.font.color.rgb = WHITE
            cell.fill.solid()
            cell.fill.fore_color.rgb = NAVY
        elif ri % 2 == 0:
            cell.fill.solid()
            cell.fill.fore_color.rgb = LBLUE
        else:
            cell.fill.solid()
            cell.fill.fore_color.rgb = WHITE
        if ri > 0:
            run.font.color.rgb = DARK

# =============================================================================
# SLIDE 12 - INTERVIEW Q&A
# =============================================================================
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, fill_color=LGRAY)
header_bar(slide, "Top Interview Questions & Model Answers",
           "Water Borne Diseases - GPSC Panel Questions")
footer(slide)

qas12 = [
    ("Q1. Name 5 water borne diseases with their causative agents.",
     "Cholera (V. cholerae), Typhoid (S. typhi), Hepatitis A (HAV), Amoebiasis (E. histolytica), Giardiasis (G. lamblia)"),
    ("Q2. What is the residual chlorine standard at the tap?",
     "0.5 mg/L (WHO recommendation). Minimum 0.2 mg/L. Test by OT (orthotolidine) test - yellow = chlorine present."),
    ("Q3. Why is Giardia resistant to chlorination?",
     "Giardia cysts have a tough outer wall that resists chlorine. They require filtration (slow sand filter) for removal."),
    ("Q4. What is the Schmutzdecke?",
     "The biological layer on top of a slow sand filter containing algae, bacteria, protozoa that biologically remove pathogens."),
    ("Q5. Hepatitis E mortality is high in which group?",
     "Pregnant women - mortality 15-25% (vs 1-2% in general population). All HEV outbreaks are water-borne."),
    ("Q6. What is Jal Jeevan Mission?",
     "Launched 2019, target: piped tap water (FHTC) to every rural household, 55 lpcd. Gujarat >95% FHTC coverage."),
    ("Q7. How do you investigate a water-borne disease outbreak?",
     "Confirm diagnosis โ†’ Case definition โ†’ Line listing โ†’ Map cases (spot map) โ†’ Identify source (water/food) โ†’ Collect water samples โ†’ Implement control (chlorinate, boil advisory) โ†’ Report to IDSP."),
    ("Q8. What is fluorosis? Which districts of Gujarat are affected?",
     "Excess fluoride (>1.0 mg/L BIS) causes dental and skeletal fluorosis. Gujarat: Kutch, Patan, Banaskantha are endemic."),
]
positions_qa = [(0.25, 1.28), (0.25, 2.2), (0.25, 3.12), (0.25, 4.04),
                (6.8, 1.28), (6.8, 2.2), (6.8, 3.12), (6.8, 4.04)]
for i, ((q, a), (bx, by)) in enumerate(zip(qas12, positions_qa)):
    add_rect(slide, bx, by, 6.1, 0.85, fill_color=WHITE,
             line_color=BLUE, line_width=Pt(0.8))
    tb12 = slide.shapes.add_textbox(Inches(bx+0.1), Inches(by+0.04),
                                    Inches(5.9), Inches(0.78))
    tf12 = tb12.text_frame; tf12.word_wrap = True; tf12.margin_left = Pt(4)
    p12a = tf12.paragraphs[0]
    r12a = p12a.add_run(); r12a.text = q
    r12a.font.size = Pt(10.5); r12a.font.bold = True
    r12a.font.color.rgb = NAVY; r12a.font.name = "Calibri"
    p12b = tf12.add_paragraph(); p12b.space_before = Pt(2)
    r12b = p12b.add_run(); r12b.text = f"โœ” {a}"
    r12b.font.size = Pt(10); r12b.font.color.rgb = DARK; r12b.font.name = "Calibri"

add_rect(slide, 0.25, 4.98, 12.8, 1.55, fill_color=RGBColor(0xFE, 0xF9, 0xE7),
         line_color=ORANGE, line_width=Pt(1.2))
tb13 = slide.shapes.add_textbox(Inches(0.4), Inches(5.02), Inches(12.5), Inches(1.45))
tf13 = tb13.text_frame; tf13.word_wrap = True; tf13.margin_left = Pt(6)
p13 = tf13.paragraphs[0]
r13 = p13.add_run(); r13.text = "โญ High-Value Points to Mention in Interview: "
r13.font.size = Pt(13); r13.font.bold = True; r13.font.color.rgb = ORANGE; r13.font.name = "Calibri"
points = ("(1) FIC Plus (2024) includes Rotavirus vaccine - prevents water/food borne diarrhoea   "
          "(2) Jal Jeevan Mission 2019 - Har Ghar Jal - FHTC 55 lpcd   "
          "(3) Giardia cysts resist chlorine - need filtration   "
          "(4) HEV = HIGH mortality in pregnancy 15-25%   "
          "(5) Guinea worm = near eradication, transmission via Cyclops in water   "
          "(6) Gujarat: Fluorosis in Kutch/Patan/Banaskantha; Chemical pollution in Alang")
p13b = tf13.add_paragraph(); p13b.space_before = Pt(3)
r13b = p13b.add_run(); r13b.text = points
r13b.font.size = Pt(11); r13b.font.color.rgb = DARK; r13b.font.name = "Calibri"

prs.save(OUTPUT)
print(f"PPT saved: {OUTPUT}")
Running Command

python /tmp/workspace/gpsc-interview/generate_waterborne_ppt.py

Your PPT is ready!

WaterBorne Diseases PPT

Presentation ยท PPTX


๐Ÿ“Š What's inside - 12 slides:

SlideContent
1Title slide
2Definition, F-diagram (Faecal-Oral route), Global burden
3Full Classification - Bacterial / Viral / Protozoal / Helminthic + Chemical
4Cholera & Typhoid - agents, incubation, Widal test, TCV vaccine (latest update)
5Hepatitis A & E, Amoebiasis, Giardiasis - key facts side by side
6Guinea Worm (near eradication) + Fluorosis (Gujarat districts) + Arsenicosis
7Water Purification - Household methods + 8-step municipal treatment process
8Chlorination - Bleaching powder, Schmutzdecke, Slow vs Rapid Sand Filter
9All 4 levels of Prevention with examples (Primordial to Tertiary)
10Jal Jeevan Mission 2019 + Gujarat-specific water issues
11Quick revision table - all diseases, agents, incubation, treatment
128 interview Q&As + high-value points to mention

๐Ÿ“š Full Study Material Collection:

FileDownload
Water Borne Diseases PPT

WaterBorne Diseases PPT

Presentation ยท PPTX

Immunization & Cold Chain PDF

Immunization ColdChain Guide

PDF Document ยท PDF

IDSP Complete Guide PDF

IDSP Complete Guide

PDF Document ยท PDF

NHM Complete Guide PDF

NHM Complete Guide

PDF Document ยท PDF

Gujarat Coastal Health PDF

Gujarat Coastal Health Challenges

PDF Document ยท PDF

Pandemic Module Guide PDF

Pandemic Module Interview Guide

PDF Document ยท PDF

Want more rapid fire, a mock interview, or another topic PPT/PDF?
This is a shared conversation. Sign in to Orris to start your own chat.