attachment
attachment

Provide all the answers in detail

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
All 20 answers are provided above. Here is a quick reference summary:

Quick Reference Summary

Q#TopicTypeKey Points
1Diarrhoea Epidemic InvestigationLong Essay8 steps: verify diagnosis → confirm epidemic → describe (TPP) → hypothesize → test → identify source → control measures → report
2Prevention of Occupational DiseasesLong EssayPrimary (engineering, PPE, pre-placement exam), Secondary (periodic exams, monitoring), Tertiary (treatment, rehab, compensation)
3Health Promotion InterventionsShort EssayIndividual, community, organizational, environmental, policy/legislative, health service reorientation
4Role of EmporiatricsShort EssayTravel medicine: pre-travel vaccines, chemoprophylaxis, IHR 2005, port health measures, post-travel illness
5Importance of CarriersShort EssayHidden source, maintain endemicity, challenge control programs, food safety hazard; types: healthy/incubatory/convalescent/chronic
6Sanitation BarrierShort EssaySafe excreta disposal, safe water, food hygiene, handwashing, fly control, sewage disposal - acts at each F-diagram pathway
7Bias in ResearchShort EssaySelection bias (Berkson's, Neyman's), information bias (recall, interviewer), confounding bias, lead-time bias, length-time bias
8Ecology of MalnutritionShort EssayImmediate (diet+disease), underlying (food insecurity, care), basic (poverty, inequality) - UNICEF model
9Family Planning in Public SectorShort EssayCu-T, OCPs, Antara, NSV, tubectomy, ASHA counselling, JSY, MTP, PPIUCD
10Household Water PurificationShort EssayBoiling, chemical disinfection (bleaching powder, chlorine tablets, iodine), filtration (candle filter, biosand)
113 Community Nutrition ProgrammesShort AnswerICDS, Mid-Day Meal (PM-POSHAN), Anaemia Mukt Bharat/WIFS
123 WHO Air Pollution ProceduresShort AnswerClean energy transition, vehicle/industry emission standards, urban planning/open burning ban
133 Health Care Delivery IndicatorsShort AnswerDoctor:population ratio, bed:population ratio, population access to health facility
143 Health Education ApproachesShort AnswerIndividual, group, mass media
153 Measures of DispersionShort AnswerRange, Standard Deviation, Interquartile Range (IQR)
163 Demographic IndicatorsShort AnswerCrude Birth Rate, Crude Death Rate, Infant Mortality Rate
173 WHO ResponsibilitiesShort AnswerNormative (guidelines/IHR), technical cooperation, research and information dissemination
183 Hazards of Bio-medical WasteShort AnswerInfectious (needlestick → HIV/HBV/HCV), chemical/toxic (cytotoxics, mercury), environmental pollution
193 Fly Control MeasuresShort AnswerEliminate breeding sites (source reduction), chemical (insecticides/larvicides), mechanical (screens, traps, food protection)
203 Components of AETCOMShort AnswerAttitude (professionalism/empathy), Ethics (4 principles: autonomy/beneficence/non-maleficence/justice), Communication (verbal/non-verbal/written)
Primary reference: Park's Textbook of Preventive and Social Medicine (confirmed from medical library).

Generate a PDF summary of all 20 answers for study reference

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && echo "---" && python3 -c "from report…

Running Command

mkdir -p /home/daytona/workspace/community-medicine-pdf

Writing File

~/community-medicine-pdf/generate_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 = "/home/daytona/workspace/community-medicine-pdf/Community_Medicine_Paper1_Answers.pdf"

# ── Styles ──────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

title_style = ParagraphStyle(
    "TitleStyle", parent=styles["Title"],
    fontSize=18, textColor=colors.HexColor("#1a3c5e"),
    spaceAfter=4, alignment=TA_CENTER, fontName="Helvetica-Bold"
)
subtitle_style = ParagraphStyle(
    "SubtitleStyle", parent=styles["Normal"],
    fontSize=11, textColor=colors.HexColor("#555555"),
    spaceAfter=2, alignment=TA_CENTER, fontName="Helvetica-Oblique"
)
section_header_style = ParagraphStyle(
    "SectionHeader", parent=styles["Normal"],
    fontSize=13, textColor=colors.white,
    spaceBefore=14, spaceAfter=6,
    fontName="Helvetica-Bold", leftIndent=0,
    backColor=colors.HexColor("#1a3c5e"),
    borderPadding=(4, 8, 4, 8)
)
q_header_style = ParagraphStyle(
    "QHeader", parent=styles["Normal"],
    fontSize=11.5, textColor=colors.HexColor("#1a3c5e"),
    spaceBefore=10, spaceAfter=4,
    fontName="Helvetica-Bold", leftIndent=0,
    borderPadding=(3, 6, 3, 6),
    backColor=colors.HexColor("#e8f0fb")
)
sub_heading_style = ParagraphStyle(
    "SubHeading", parent=styles["Normal"],
    fontSize=10.5, textColor=colors.HexColor("#c0392b"),
    spaceBefore=6, spaceAfter=2,
    fontName="Helvetica-Bold"
)
sub_sub_heading_style = ParagraphStyle(
    "SubSubHeading", parent=styles["Normal"],
    fontSize=10, textColor=colors.HexColor("#1a6b3c"),
    spaceBefore=4, spaceAfter=2,
    fontName="Helvetica-Bold"
)
body_style = ParagraphStyle(
    "BodyText", parent=styles["Normal"],
    fontSize=9.5, leading=14,
    spaceAfter=3, textColor=colors.HexColor("#222222"),
    alignment=TA_JUSTIFY, leftIndent=0
)
bullet_style = ParagraphStyle(
    "BulletText", parent=styles["Normal"],
    fontSize=9.5, leading=13,
    spaceAfter=2, textColor=colors.HexColor("#222222"),
    leftIndent=14, bulletIndent=4,
    alignment=TA_LEFT
)
note_style = ParagraphStyle(
    "NoteText", parent=styles["Normal"],
    fontSize=9, leading=12,
    spaceAfter=4, textColor=colors.HexColor("#7f8c8d"),
    leftIndent=10, fontName="Helvetica-Oblique"
)

# ── Helper ───────────────────────────────────────────────────────────────────
def B(text):
    return f"<b>{text}</b>"

def I(text):
    return f"<i>{text}</i>"

def BI(text):
    return f"<b><i>{text}</i></b>"

def body(text):
    return Paragraph(text, body_style)

def bullet(text):
    return Paragraph(f"\u2022  {text}", bullet_style)

def sub(text):
    return Paragraph(text, sub_heading_style)

def subsub(text):
    return Paragraph(text, sub_sub_heading_style)

def note(text):
    return Paragraph(text, note_style)

def qheader(num, text):
    return Paragraph(f"Q{num}. {text}", q_header_style)

def section_banner(text):
    return Paragraph(f"  {text}", section_header_style)

def hr():
    return HRFlowable(width="100%", thickness=0.5,
                      color=colors.HexColor("#cccccc"), spaceAfter=4, spaceBefore=2)

# ── Content ──────────────────────────────────────────────────────────────────
story = []

# Cover
story.append(Spacer(1, 1.5*cm))
story.append(Paragraph("Community Medicine - Paper I", title_style))
story.append(Paragraph("Internal Assessment Examination", subtitle_style))
story.append(Paragraph("Complete Model Answers | Study Reference", subtitle_style))
story.append(Spacer(1, 0.3*cm))
story.append(HRFlowable(width="80%", thickness=2, color=colors.HexColor("#1a3c5e"),
                         hAlign="CENTER", spaceAfter=6))
# Summary table
summary_data = [
    [B("Section"), B("Questions"), B("Marks")],
    ["Long Essays", "Q1 - Q2", "2 × 10 = 20"],
    ["Short Essays", "Q3 - Q10", "8 × 5 = 40"],
    ["Short Answers", "Q11 - Q20", "10 × 3 = 30"],
    [B("Total"), B("20 Questions"), B("90 Marks")],
]
summary_tbl = Table(summary_data, colWidths=[8*cm, 5*cm, 4*cm])
summary_tbl.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a3c5e")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 10),
    ("ALIGN", (0, 0), (-1, -1), "CENTER"),
    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    ("ROWBACKGROUNDS", (0, 1), (-1, -2), [colors.HexColor("#f0f4f8"), colors.white]),
    ("BACKGROUND", (0, -1), (-1, -1), colors.HexColor("#d0e4f7")),
    ("FONTNAME", (0, -1), (-1, -1), "Helvetica-Bold"),
    ("GRID", (0, 0), (-1, -1), 0.5, colors.HexColor("#aaaaaa")),
    ("TOPPADDING", (0, 0), (-1, -1), 6),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 6),
]))
story.append(summary_tbl)
story.append(Spacer(1, 0.4*cm))
story.append(note("Reference: Park's Textbook of Preventive and Social Medicine | NMC CBME Curriculum"))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# SECTION 1 - LONG ESSAYS
# ════════════════════════════════════════════════════════════════════════════
story.append(section_banner("LONG ESSAYS  |  2 × 10 = 20 Marks"))
story.append(Spacer(1, 0.2*cm))

# Q1
story.append(qheader(1, "Investigation of Diarrhoea Epidemic (50 cases in 3 days) + Control Measures"))
story.append(body(B("Introduction:") + " 50 cases in 3 days from one village = common-source (point-source) epidemic. "
    "The medical officer must simultaneously investigate and implement control measures."))
story.append(Spacer(1, 0.15*cm))

story.append(sub("STEPS IN EPIDEMIC INVESTIGATION"))

steps = [
    ("Step 1: Verification of Diagnosis",
     "Clinically examine a sample of cases. Collect stool/rectal swab specimens for laboratory analysis "
     "(culture, microscopy, ELISA) to identify causative agent (V. cholerae, Salmonella, E. coli, Shigella, "
     "rotavirus). Lab results should NOT delay epidemiological investigation."),
    ("Step 2: Confirm Existence of Epidemic",
     "Compare current frequency with endemic baseline of previous years. 50 cases in 3 days clearly "
     "exceeds expected frequency - epidemic threshold crossed. Common-source outbreaks (cholera, food poisoning) "
     "are usually self-evident."),
    ("Step 3: Define Epidemic - Time, Place, Person",
     "TIME: Plot epidemic curve (onset date vs. cases). A sharp single peak = point-source; prolonged rise = propagated. "
     "PLACE: Spot map to identify clustering around water sources/food vendors. "
     "PERSON: Age, sex, occupation, dietary history, water source used."),
    ("Step 4: Formulate a Hypothesis",
     "Based on TPP data, hypothesize source, vehicle, and mode of transmission. "
     "Example: Contamination of village hand pump/open well following heavy rains."),
    ("Step 5: Test the Hypothesis",
     "Case-control or cohort study. Calculate attack rate for each suspected food item / water source. "
     "Attack Rate = (Cases among exposed / Total exposed) x 100."),
    ("Step 6: Identify Source & Mode of Transmission",
     "Inspect water source, drainage, latrines, food handling. Check proximity of latrines to drinking water "
     "(faecal-oral contamination indicator). Collect water samples for bacteriological examination (coliform count, MPN index)."),
    ("Step 7: Implement Control Measures", "(Simultaneous with investigation - detailed below)"),
    ("Step 8: Report & Recommendations", "Write a detailed epidemiological report; make recommendations to prevent recurrence."),
]
for title, desc in steps:
    story.append(bullet(B(title) + ": " + desc))

story.append(Spacer(1, 0.2*cm))
story.append(sub("CONTROL MEASURES"))

story.append(subsub("A. Immediate / Emergency Measures"))
imm = [
    "Case management: ORS for mild-moderate cases; IV Ringer's Lactate for severe dehydration. Antibiotics if indicated (Doxycycline for cholera).",
    "Boil-water advisory: Instruct all villagers to boil water or use chlorine tablets.",
    "Emergency chlorination: Super-chlorinate water source - maintain free residual chlorine >= 0.5 mg/L after 1 hour contact. Add bleaching powder to open wells.",
    "Notification: Notify District/State health authorities as required under Epidemic Diseases Act.",
    "Stool culture and isolation of carriers if cholera is confirmed.",
]
for i in imm: story.append(bullet(i))

story.append(subsub("B. Sanitary Measures"))
san = [
    "Identify and repair contaminated piped water / borewell. Prohibit use of contaminated sources.",
    "Safe disposal of excreta: enforce latrine use; prevent open defecation near water sources.",
    "Food safety: inspect vendors; condemn contaminated food; enforce hygienic food preparation.",
    "Fly control: apply insecticides; remove garbage and decomposing organic matter.",
]
for s in san: story.append(bullet(s))

story.append(subsub("C. Long-term / Preventive Measures"))
lt = [
    "Health education: handwashing with soap after defecation and before eating; safe drinking water; proper food storage.",
    "Immunization: Oral Cholera Vaccine (OCV) if cholera is confirmed.",
    "Environmental sanitation: construct sanitary latrines; improve drainage; ensure piped water supply.",
    "Strengthen disease surveillance to detect future outbreaks early.",
]
for l in lt: story.append(bullet(l))

story.append(hr())

# Q2
story.append(qheader(2, "Principles in Prevention and Control of Occupational Diseases"))
story.append(body(B("Definition:") + " Occupational diseases are diseases caused directly by the conditions and hazards "
    "of work. They are preventable since the causative agent is identifiable and can be eliminated or controlled."))

story.append(sub("I. PRIMARY PREVENTION (Before Disease Occurs)"))

story.append(subsub("(A) Pre-placement Examination"))
story.append(bullet("Complete medical history and physical examination before employment."))
story.append(bullet("Identify susceptible individuals (e.g., asthmatic individuals before placement in dusty environment)."))
story.append(bullet("Biological baseline assessments (e.g., baseline lung function tests for miners)."))

story.append(subsub("(B) Engineering Controls (Most Effective)"))
eng = [
    "Substitution: Replace hazardous material with less harmful one (e.g., replace silica sand with steel grit for blasting).",
    "Enclosure/Isolation: Enclose hazardous process to prevent exposure (enclosed cabins in quarries).",
    "Ventilation: Local exhaust ventilation to remove dust/fumes at source; general dilution ventilation for low-level contaminants.",
    "Automation: Eliminate manual handling of hazardous substances.",
    "Wet methods: Use water spray in mines to suppress dust (prevents silicosis).",
]
for e in eng: story.append(bullet(e))

story.append(subsub("(C) Personal Protective Equipment (PPE) - Last Resort"))
ppe = [
    "Respiratory protection: masks, respirators, SCBA.",
    "Skin protection: gloves, protective clothing, barrier creams.",
    "Ear protection: earplugs, earmuffs (noise-induced hearing loss prevention).",
    "Eye protection: goggles, face shields.",
]
for p in ppe: story.append(bullet(p))

story.append(subsub("(D) Legislation & Health Education"))
story.append(bullet("Factories Act, Mines Act, Workmen's Compensation Act, ESIC Act regulate workplace safety. Enforce Permissible Exposure Limits (PELs)."))
story.append(bullet("Educate workers about occupational hazards and safe work practices."))

story.append(sub("II. SECONDARY PREVENTION (Early Detection)"))
sec = [
    "Periodic medical examinations (6-monthly / annually): spirometry for dust-exposed workers; audiometry for noise-exposed workers.",
    "Biological monitoring: periodic blood/urine tests for early biomarker changes before clinical disease develops.",
    "Environmental monitoring: regular measurement of dust, fumes, noise levels to ensure compliance with PELs.",
    "Pre-placement and periodic surveys: identify early disease and remove worker from exposure.",
]
for s in sec: story.append(bullet(s))

story.append(sub("III. TERTIARY PREVENTION (Treatment & Rehabilitation)"))
ter = [
    "Medical treatment: prompt treatment to prevent complications.",
    "Rehabilitation: physiotherapy for musculoskeletal injuries; vocational rehabilitation for those unable to continue original work (e.g., miner with early silicosis placed in office work).",
    "Compensation: Workmen's Compensation Act or ESIC for loss of earning capacity.",
    "Notification and recording: report to regulatory authorities for surveillance.",
]
for t in ter: story.append(bullet(t))

story.append(note("Key principle: The workplace is a controlled environment - disease prevention is achievable through a multidisciplinary approach (occupational physician + industrial hygienist + engineer + nurse + worker participation)."))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# SECTION 2 - SHORT ESSAYS
# ════════════════════════════════════════════════════════════════════════════
story.append(section_banner("SHORT ESSAYS  |  8 × 5 = 40 Marks"))
story.append(Spacer(1, 0.2*cm))

# Q3
story.append(qheader(3, "Interventions in Health Promotion with Examples"))
story.append(body(B("Definition (WHO Ottawa Charter 1986):") + " Health promotion is the process of enabling people to "
    "increase control over, and to improve, their health."))
hp = [
    (B("Individual Level") + " - Health education, counselling, BCC, skill development (yoga, stress management). "
     + I("Example: Physician advising patient to quit smoking; diabetic dietary counselling.")),
    (B("Community Level") + " - Community mobilization (panchayats, SHGs, ASHA workers), Healthy Cities/Village programmes, mass media campaigns. "
     + I("Example: ASHA workers encouraging institutional deliveries.")),
    (B("Organizational / Workplace") + " - Smoking-free zones, stress management programmes, Employee Assistance Programs. "
     + I("Example: No-smoking policy in government offices.")),
    (B("Environmental / Ecological") + " - Footpaths, cycle lanes, safe urban planning, slum improvement. "
     + I("Example: Installing drinking water fountains to promote safe hydration.")),
    (B("Policy / Legislative") + " (Most Powerful) - Affects entire populations. "
     + I("Example: COTPA (Cigarette & Tobacco Products Act), seat-belt law, salt iodization, alcohol taxation.")),
    (B("Reorientation of Health Services") + " - Shift from curative to preventive/promotive services. "
     + I("Example: Well-baby clinics; ANC for low-risk pregnancies at PHC level.")),
]
for h in hp: story.append(bullet(h))
story.append(hr())

# Q4
story.append(qheader(4, "Role of Emporiatrics in the Control of Diseases"))
story.append(body(B("Definition:") + " Emporiatrics (Travel Medicine) is the branch of medicine dealing with health problems of "
    "travelers. From Greek: " + I("emporos") + " = traveler."))
emp = [
    B("Prevention of Disease Importation") + ": Travelers carry diseases across borders. Emporiatrics identifies endemic diseases at destination and implements preventive measures before travel.",
    B("Pre-travel Vaccination") + ": Yellow Fever (mandatory for endemic countries), Meningococcal vaccine (Hajj pilgrims to Saudi Arabia), Japanese Encephalitis, Typhoid, Hepatitis A and B.",
    B("Chemoprophylaxis") + ": Malaria prophylaxis (chloroquine / atovaquone-proguanil / doxycycline by region); standby antibiotics for traveler's diarrhea (azithromycin, ciprofloxacin).",
    B("International Health Regulations (IHR 2005)") + ": WHO mandates notification of PHEIC. Port health measures: screening at airports/seaports (COVID-19 screening). Quarantine and isolation of ill travelers.",
    B("Vector Surveillance at Points of Entry") + ": Inspect imported goods and cargo for vectors; prevent introduction of exotic vectors (e.g., Aedes albopictus via used tire trade).",
    B("Post-Travel Illness Management") + ": Screen returning travelers for febrile illness. Early detection of imported malaria, typhoid, viral hemorrhagic fevers, dengue.",
    B("Travel Health Advice") + ': Safe food/water ("Boil it, cook it, peel it, or forget it"); DEET repellents; permethrin-treated clothing; altitude sickness prevention (acetazolamide); safe sex advice.',
]
for e in emp: story.append(bullet(e))
story.append(hr())

# Q5
story.append(qheader(5, "Importance of Carriers in Public Health"))
story.append(body(B("Definition:") + " A carrier is a person who harbors the infectious agent without showing manifest "
    "disease and serves as a potential source of infection to others."))
story.append(subsub("Types of Carriers"))
types = [
    "Healthy / Asymptomatic carrier: Never shows symptoms (e.g., Salmonella typhi carrier).",
    "Incubatory carrier: Spreads during incubation period (e.g., measles, hepatitis A).",
    "Convalescent carrier: During recovery phase (e.g., typhoid, cholera).",
    "Chronic carrier: Carries agent for months/years (e.g., HBsAg+ Hepatitis B, 'Typhoid Mary', HIV).",
    "Intermittent carrier: Sheds agent periodically.",
]
for t in types: story.append(bullet(t))
story.append(subsub("Importance in Public Health"))
imp = [
    "Hidden source of infection: Carriers don't know they are infected, so they don't isolate. Example: 'Typhoid Mary' infected 51 people.",
    "Maintenance of infection in community: Carriers maintain endemicity even when overt cases are absent. Example: 300 million HBV carriers worldwide maintain the virus pool.",
    "Challenges disease control programs: Not identified by passive surveillance; expensive screening is needed.",
    "Perpetuation of STIs: HIV, HBV, HCV, syphilis, chlamydia - majority are asymptomatic carriers. Contact tracing is essential.",
    "Food safety hazard: Food handlers who are carriers of typhoid / hepatitis A / Staph contaminate food and cause outbreaks.",
]
for i in imp: story.append(bullet(i))
story.append(subsub("Control Measures"))
ctrl = [
    "Mass screening (HBsAg testing, cervical swabs for gonorrhoea).",
    "Treatment of carriers (ciprofloxacin for typhoid carriers; ART reduces HIV viral load).",
    "Remove carriers from food handling, healthcare, and child-care.",
    "Immunization to prevent new carriers (HBV vaccine).",
]
for c in ctrl: story.append(bullet(c))
story.append(hr())

# Q6
story.append(qheader(6, "Sanitation Barrier in Prevention of Faecal-Borne Diseases"))
story.append(body(B("Faecal-borne diseases") + " are transmitted via the faecal-oral route through contaminated water, food, hands, "
    "flies, and soil. Examples: cholera, typhoid, diarrhoea, dysentery, hepatitis A, polio, helminthiasis."))
story.append(body(B("Sanitation Barrier") + ": A series of environmental and behavioral measures that interrupt the faecal-oral transmission "
    "chain at each F-pathway (Faeces → Fluids, Fields, Food, Fingers, Flies → new host)."))
sb = [
    B("(1) Safe Disposal of Excreta") + ": Construction and use of sanitary latrines (pour-flush, VIP, ECOSAN). "
    "Swachh Bharat Mission - ODF (Open Defecation Free) villages are the goal.",
    B("(2) Safe Water Supply") + ": Piped, treated, chlorinated water supply is the single most effective barrier. "
    "Free residual chlorine >= 0.5 mg/L at point of use. Latrines >= 15m from wells.",
    B("(3) Food Hygiene") + ': Cook food at adequate temperature; safe food storage. "Eat it hot, keep it covered."',
    B("(4) Handwashing with Soap") + ": After defecation and before eating. Most cost-effective barrier. "
    "Reduces diarrhoeal disease by ~40-50%. Global Handwashing Day: October 15.",
    B("(5) Fly Control") + ": Flies are mechanical carriers from faeces to food. Control by: eliminating breeding "
    "places, covering food, fly-screens, insecticides.",
    B("(6) Sanitary Solid Waste Disposal") + ": Covered bins; regular collection; composting. Garbage attracts flies.",
    B("(7) Soil Sanitation") + ": Avoid raw (night soil) sewage as fertilizer. Prevents helminthic (Ascaris, hookworm) soil transmission.",
    B("(8) Sewage Treatment") + ": Treat before discharging into water bodies. Prevent swimming in sewage-contaminated water.",
]
for s in sb: story.append(bullet(s))
story.append(hr())

# Q7
story.append(qheader(7, "Influence of Bias in Research Studies"))
story.append(body(B("Definition:") + " Bias is any " + B("systematic error") + " in the design, conduct, or analysis of a study "
    "that results in a mistaken estimate of exposure's effect on the risk of disease."))
story.append(subsub("Types of Bias"))
bias_data = [
    [B("Type"), B("Definition"), B("Example / Subtype")],
    ["Selection Bias", "Study participants are not representative of target population", 
     "Berkson's bias (hospitalized controls); Neyman's bias (survivor bias); Volunteer bias; Non-response bias"],
    ["Recall Bias", "Cases remember exposures better than controls", 
     "Mothers of malformed babies recall drug intake more carefully. Common in case-control studies."],
    ["Interviewer Bias", "Observer probes more deeply for cases than controls", "Observer/information bias"],
    ["Confounding Bias", "A third variable distorts the true exposure-outcome relationship", 
     "Smoking is a confounder in coffee-CHD studies. Solution: matching, stratification, multivariate analysis."],
    ["Lead-time Bias", "Early detection appears to increase survival, but is an artifact of earlier diagnosis", 
     "Screening studies. Solution: use disease-specific mortality, not survival time."],
    ["Length-time Bias", "Screening detects slow-growing, less aggressive cancers more often", 
     "Overestimates benefit of screening programs."],
]
btbl = Table(bias_data, colWidths=[3.5*cm, 6*cm, 7.5*cm])
btbl.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#c0392b")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.5),
    ("ALIGN", (0, 0), (-1, -1), "LEFT"),
    ("VALIGN", (0, 0), (-1, -1), "TOP"),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.HexColor("#fdf2f2"), colors.white]),
    ("GRID", (0, 0), (-1, -1), 0.4, colors.HexColor("#cccccc")),
    ("TOPPADDING", (0, 0), (-1, -1), 5),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 5),
    ("LEFTPADDING", (0, 0), (-1, -1), 5),
]))
story.append(btbl)
story.append(Spacer(1, 0.2*cm))
story.append(subsub("Minimizing Bias"))
min_bias = [
    "Careful study design: randomization, blinding (double-blind), representative sampling.",
    "Standardized, validated data collection instruments.",
    "Matching of cases and controls; stratification; multivariate analysis.",
    "Triangulation: using multiple study methods to confirm findings.",
]
for m in min_bias: story.append(bullet(m))
story.append(note("Effect of bias: Overestimates or underestimates OR, RR, RD - leads to incorrect public health policy decisions."))
story.append(hr())

# Q8
story.append(qheader(8, "Ecology of Malnutrition"))
story.append(body(B("Definition:") + " Ecology of malnutrition refers to the study of the interplay between multiple factors "
    "(biological, social, economic, environmental, political) that contribute to malnutrition in a population."))
story.append(subsub("UNICEF Conceptual Framework (Cascading Causes)"))
uni = [
    B("Immediate Causes (Individual Level)") + ": (1) Inadequate dietary intake: insufficient calories, protein, micronutrients. "
    "(2) Disease: infections (diarrhoea, measles, malaria, TB) increase nutrient demand, decrease appetite, cause nutrient losses. "
    "This creates the " + B("Malnutrition-Infection Vicious Cycle") + ".",
    B("Underlying Causes (Household Level)") + ": Food insecurity (poverty, seasonal food shortages); inadequate infant and young child "
    "feeding (IYCF) practices (low exclusive breastfeeding rates); poor maternal nutrition (low pre-pregnancy weight, anaemia "
    "causing LBW babies); inadequate health services and unhealthy environment.",
    B("Basic/Societal Causes") + ": Poverty (root cause); social inequality (caste discrimination, gender inequality - girls fed less); "
    "low maternal literacy; political instability and wars; cultural food taboos; rapid urbanization and population growth.",
]
for u in uni: story.append(bullet(u))
story.append(subsub("Biological & Environmental Factors"))
be = [
    "Host factors: age (<5 years and elderly most vulnerable); sex (girls discriminated in South Asia); low birth weight; prematurity.",
    "Environmental: agricultural drought/floods affecting crop yield; hunger season before harvest; climate change threatens food production.",
]
for b in be: story.append(bullet(b))
story.append(note("Malnutrition-Infection Cycle: Malnutrition -> Impaired immunity -> Increased infection severity -> Increased nutrient losses + decreased intake -> Worsening malnutrition."))
story.append(hr())

# Q9
story.append(qheader(9, "Family Planning Services in Public Sector"))
story.append(body("Family planning in India is delivered through a comprehensive network under the " + B("National Family Health Programme") +
    " with ASHA, ANM, PHC, CHC, and district hospitals as service delivery points."))
fp = [
    B("IUCD Services") + ": Cu-T 380A inserted at PHC/CHC. PPIUCD (Post-Partum IUCD) inserted within 48 hours of delivery.",
    B("Oral Contraceptive Pills (OCPs)") + ": Freely available at PHCs. Antara (DMPA injection, 3-monthly) and Chhaya (centchroman, weekly).",
    B("Condoms (Nirodh)") + ": Freely distributed through ASHAs, ANMs, PHCs, Nirodh depots.",
    B("Emergency Contraceptive Pill") + ": Levonorgestrel (I-Pill) available at ASHAs and health centres.",
    B("Sterilization") + ": Tubectomy (minilaparotomy/laparoscopic) at CHC and above. No-Scalpel Vasectomy (NSV) for male participation. NSV camps organized periodically.",
    B("Safe Abortion (MTP)") + ": MTP Act 1971 (amended 2021: up to 24 weeks in certain categories). Medical abortion (mifepristone + misoprostol) at PHC level.",
    B("MCH Services (linked to FP)") + ": ANC registration, TT immunization, IFA tablets; JSY incentivizes institutional delivery; post-natal contraceptive counselling.",
    B("ASHA Role") + ": Frontline counsellor; distributes condoms, OCPs, provides PPIUCD counselling; maintains eligible couple register (along with ANM).",
    B("Mission Parivar Vikas") + ": Focuses on 146 high-fertility districts in 7 states to reduce unmet need for family planning.",
]
for f in fp: story.append(bullet(f))
story.append(hr())

# Q10
story.append(qheader(10, "Household Purification of Water"))
story.append(body("Three main methods are available for purifying water on an individual/domestic scale. They can be used singly or in combination."))

story.append(subsub("(1) Boiling"))
story.append(bullet('Bring water to a "rolling boil" for 10-20 minutes.'))
story.append(bullet("Kills ALL bacteria, viruses, cysts, ova, and spores. Removes temporary hardness."))
story.append(bullet("Limitation: No residual protection against re-contamination; alters taste."))
story.append(bullet("Store in a clean, narrow-mouthed, covered container to prevent re-contamination."))

story.append(subsub("(2) Chemical Disinfection"))
chem = [
    "Bleaching powder (CaOCl2): ~33% available chlorine when fresh. Add calculated dose to achieve 0.5 mg/L free residual chlorine after 1 hour contact.",
    "High Test Hypochlorite (HTH/Perchloron): 60-70% available chlorine; more stable than bleaching powder.",
    "Chlorine tablets (Halazone): 0.5 g tablet disinfects 20 litres. Convenient for field/trekking use.",
    "Iodine: 2 drops of 2% iodine per litre; 20-30 min contact time. Active over wide pH range; emergency use.",
    "Note: Highly turbid water must be settled and filtered BEFORE chemical disinfection.",
]
for c in chem: story.append(bullet(c))

story.append(subsub("(3) Filtration"))
filt = [
    "Candle filter (Berkefeld/Chamberland): Unglazed porcelain/ceramic candles; silver-impregnated candles have self-sterilizing action. Must be cleaned regularly.",
    "Biosand filter: Layers of gravel and sand with biological Schmutzdecke layer on top; removes pathogens.",
    "SODIS (Solar Disinfection): Expose clear PET bottles to sunlight for 6 hours - UV destroys pathogens.",
]
for f in filt: story.append(bullet(f))
story.append(note("Principle: Reduce microbial load to safe level at point of use AND prevent re-contamination during storage (narrow-mouthed covered containers with taps)."))
story.append(PageBreak())

# ════════════════════════════════════════════════════════════════════════════
# SECTION 3 - SHORT ANSWERS
# ════════════════════════════════════════════════════════════════════════════
story.append(section_banner("SHORT ANSWERS  |  10 × 3 = 30 Marks"))
story.append(Spacer(1, 0.2*cm))

# Q11
story.append(qheader(11, "Any 3 Community Nutrition Programmes"))
np_data = [
    [B("Programme"), B("Launched"), B("Key Features")],
    ["ICDS (Integrated Child Development Services)", "1975",
     "Supplementary nutrition (SNP) to children <6 yrs and pregnant/lactating women via Anganwadi centres. Also: immunization, health check-up, nutrition education."],
    ["Mid-Day Meal Scheme / PM-POSHAN", "1995",
     "Hot cooked meal to Classes I-VIII in government schools. Provides ~450 kcal + 12g protein/day to primary children. Improves school attendance."],
    ["Anaemia Mukt Bharat / WIFS", "2013",
     "IFA (Iron-Folic Acid) supplementation. Weekly Iron-Folic Acid Supplementation (WIFS) for adolescent girls and boys. Also covers pregnant/lactating women."],
]
ntbl = Table(np_data, colWidths=[5*cm, 2*cm, 10*cm])
ntbl.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a6b3c")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.5),
    ("ALIGN", (0, 0), (-1, -1), "LEFT"),
    ("VALIGN", (0, 0), (-1, -1), "TOP"),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.HexColor("#f0faf4"), colors.white]),
    ("GRID", (0, 0), (-1, -1), 0.4, colors.HexColor("#aaaaaa")),
    ("TOPPADDING", (0, 0), (-1, -1), 5),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 5),
    ("LEFTPADDING", (0, 0), (-1, -1), 5),
]))
story.append(ntbl)
story.append(hr())

# Q12
story.append(qheader(12, "Any 3 WHO-Recommended Procedures for Prevention of Air Pollution"))
ap = [
    B("(1) Transition to Clean Energy Sources") + ": Replace solid fuels (coal, biomass, wood, dung) with LPG, electricity, biogas, solar energy. "
    "India's PM Ujjwala Yojana provides LPG to BPL households to reduce indoor air pollution from biomass combustion.",
    B("(2) Emission Standards for Vehicles and Industry") + ": Tighter fuel quality and vehicle emission standards (India: BS-VI norms). "
    "Promote EVs and public mass transit. WHO AQGs 2021: PM2.5 annual mean = 5 ug/m3; PM10 = 15 ug/m3; NO2 = 10 ug/m3.",
    B("(3) Urban Planning and Waste Management") + ": Compact walkable cities; green spaces and tree canopy; efficient public transport. "
    "Ban open burning of municipal solid waste and agricultural residue (stubble burning).",
]
for a in ap: story.append(bullet(a))
story.append(hr())

# Q13
story.append(qheader(13, "Any 3 Health Care Delivery Indicators"))
hcd = [
    B("(1) Doctor-to-Population Ratio") + ": Number of qualified doctors per 1,000 (or 10,000) population. India's target: 1:1,000. "
    "WHO recommends at least 1 doctor + 1 nurse + 1 midwife per 1,000 population.",
    B("(2) Bed-to-Population Ratio") + ": Number of hospital beds per 1,000 population. Reflects inpatient care capacity. "
    "India: ~1.4 beds/1,000 (below WHO recommendation of 3.5/1,000).",
    B("(3) Access to Local Health Care") + ": % of population living within 5 km of a health facility (PHC/CHC/hospital). "
    "India norm: 1 PHC per 30,000 population (plains); 20,000 (hilly/tribal areas).",
]
for h in hcd: story.append(bullet(h))
story.append(note("Others: nurse-to-population ratio, per capita health expenditure, immunization coverage, antenatal care coverage, proportion of skilled birth attendants."))
story.append(hr())

# Q14
story.append(qheader(14, "Any 3 Approaches to Health Education"))
he = [
    B("(1) Individual Approach (Interpersonal)") + ": One-to-one communication; counselling; most effective for behavior change but time-consuming. "
    + I("Examples: physician advising patient to quit smoking; ANM antenatal counselling; diabetic dietary counselling."),
    B("(2) Group Approach") + ": Health education to a group simultaneously using lecture, demonstration, group discussion, role play, drama, flip charts. "
    + I("Examples: lecture to antenatal mothers at PHC; VHND discussions; school health talks; TB DOTS group counselling."),
    B("(3) Mass Media Approach") + ": Communication to large populations via TV, radio, newspapers, social media, hoardings. Wide reach, cost-effective per person, low interactivity. "
    + I("Examples: anti-tobacco TV campaigns; family planning radio broadcasts; COVID-19 social media awareness."),
]
for h in he: story.append(bullet(h))
story.append(hr())

# Q15
story.append(qheader(15, "3 Measures of Dispersion"))
md = [
    B("(1) Range") + ": Difference between highest and lowest values. Range = Maximum - Minimum. "
    "Simple to calculate but highly sensitive to outliers. " + I("Example: Scores 45, 60, 75, 90 -> Range = 90 - 45 = 45."),
    B("(2) Standard Deviation (SD)") + ": Square root of the average of squared deviations from the mean. "
    "Most commonly used mathematically precise measure. SD = sqrt[Sum(x - x_bar)^2 / (n-1)]. "
    "Normal distribution: Mean +/- 1 SD = 68.27%; Mean +/- 2 SD = 95.45%; Mean +/- 3 SD = 99.73% of data.",
    B("(3) Interquartile Range (IQR)") + ": IQR = Q3 - Q1 (75th - 25th percentile). Represents middle 50% of data. "
    "Less affected by outliers than Range. Preferred for skewed distributions; used with Median.",
]
for m in md: story.append(bullet(m))
story.append(note("Also: Variance = SD^2; Coefficient of Variation (CV) = (SD / Mean) x 100% allows comparison across different units."))
story.append(hr())

# Q16
story.append(qheader(16, "Any 3 Demographic Indicators"))
di_data = [
    [B("Indicator"), B("Formula"), B("India Value (approx. 2020)")],
    ["Crude Birth Rate (CBR)", "(Live births / Mid-year population) x 1,000", "~19.5 / 1,000"],
    ["Crude Death Rate (CDR)", "(Deaths / Mid-year population) x 1,000", "~6.2 / 1,000"],
    ["Infant Mortality Rate (IMR)", "(Deaths <1 year / Live births) x 1,000",
     "~28 / 1,000 live births\n(Most sensitive indicator of socioeconomic development)"],
]
ditbl = Table(di_data, colWidths=[5*cm, 6*cm, 6*cm])
ditbl.setStyle(TableStyle([
    ("BACKGROUND", (0, 0), (-1, 0), colors.HexColor("#1a3c5e")),
    ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),
    ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"),
    ("FONTSIZE", (0, 0), (-1, -1), 8.5),
    ("ALIGN", (0, 0), (-1, -1), "LEFT"),
    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    ("ROWBACKGROUNDS", (0, 1), (-1, -1), [colors.HexColor("#f0f4f8"), colors.white]),
    ("GRID", (0, 0), (-1, -1), 0.4, colors.HexColor("#aaaaaa")),
    ("TOPPADDING", (0, 0), (-1, -1), 5),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 5),
    ("LEFTPADDING", (0, 0), (-1, -1), 5),
]))
story.append(ditbl)
story.append(note("Others: Total Fertility Rate (TFR), Maternal Mortality Ratio (MMR), Life Expectancy at Birth, Natural Growth Rate, Sex Ratio."))
story.append(hr())

# Q17
story.append(qheader(17, "3 Important Responsibilities of WHO"))
story.append(body("WHO (est. April 7, 1948) is the directing and coordinating authority for international health within the UN system."))
who = [
    B("(1) Normative Function (Setting Norms & Standards)") + ": Establishes IHR 2005; develops evidence-based clinical guidelines; "
    "Essential Medicines List (EML); vaccine recommendations; WHO Air Quality Guidelines; Codex Alimentarius. "
    "Develops ICD (International Classification of Diseases) for standardized global disease coding. "
    "Declares Public Health Emergency of International Concern (PHEIC) - e.g., COVID-19 in January 2020.",
    B("(2) Technical Cooperation & Health Systems Strengthening") + ": Provides technical and financial support to member states. "
    "Coordinates global disease surveillance (GOARN). Coordinates disease eradication - smallpox eradicated 1980; polio eradication ongoing.",
    B("(3) Research & Information Dissemination") + ": Coordinates research on priority health topics (NTDs, AMR, NCDs, mental health). "
    "Publishes World Health Statistics, Global Burden of Disease reports, World Health Report. "
    "Disseminates evidence to guide national health policies.",
]
for w in who: story.append(bullet(w))
story.append(hr())

# Q18
story.append(qheader(18, "Any 3 Hazards of Bio-medical Waste"))
bmw = [
    B("(1) Infectious Hazards (Disease Transmission)") + ": Sharps (needles, syringes, scalpels), blood-soaked materials, "
    "body fluids, cultures harbor pathogens. Needlestick injuries transmit HIV, Hepatitis B (HBV), Hepatitis C (HCV). "
    "WHO estimates 40% of HBV/HCV infections in healthcare and 5% of HIV infections result from contaminated needles. "
    "Recycled syringes ('syringe reuse racket') transmit blood-borne infections in community.",
    B("(2) Chemical / Toxic Hazards") + ": Pharmaceutical waste, cytotoxic drugs (vincristine, cyclophosphamide - "
    "carcinogenic/mutagenic), mercury from broken thermometers/sphygmomanometers (neurotoxic). "
    "Disinfectants (formaldehyde, glutaraldehyde) cause skin irritation, chemical burns, endocrine disruption.",
    B("(3) Environmental Pollution Hazards") + ": Incineration of BMW releases dioxins, furans, heavy metals (mercury, lead, cadmium) and particulate matter. "
    "Improper land disposal contaminates soil and groundwater. "
    "Sharps in garbage injure sanitary workers and rag pickers. "
    "Radioactive waste from nuclear medicine poses radiation hazards if not stored per regulatory requirements.",
]
for b in bmw: story.append(bullet(b))
story.append(note("Governed by Bio-Medical Waste Management Rules 2016 (India) - 4 colour-coded categories."))
story.append(hr())

# Q19
story.append(qheader(19, "3 Important Fly Control Measures"))
story.append(body("Flies (especially " + I("Musca domestica") + " - housefly) are mechanical vectors of typhoid, diarrhoea, dysentery, "
    "cholera, hepatitis A, polio, and trachoma (Chlamydia trachomatis)."))
fly = [
    B("(1) Elimination of Breeding Places (Source Reduction - Most Effective)") + ": Flies breed in decaying organic matter "
    "(garbage, animal dung, sewage). Sanitary garbage disposal in covered bins with collection every 2-3 days. "
    "Proper dung disposal (biogas/manure pit). Fly-proof sanitary latrines. Fly larvae develop in 3-4 days.",
    B("(2) Chemical Control (Insecticides)") + ": Space sprays (pyrethrum, malathion) for adult flies indoors. "
    "Residual sprays on walls/garbage areas. Toxic baits (sugar + methomyl/trichlorfon). "
    "Larvicides (malathion, Bti) applied to breeding sites. NOTE: Rotate insecticide classes to prevent resistance.",
    B("(3) Mechanical / Physical Control") + ": Wire mesh fly-proof screens on windows and doors of food establishments, hospitals, homes. "
    "UV light traps (electric fly killers) for indoor food areas. "
    "Cover all food; store in fly-proof containers; refrigeration. "
    "Biological control: parasitic wasps (Nasonia vitripennis) parasitize fly pupae - eco-friendly IPM approach.",
]
for f in fly: story.append(bullet(f))
story.append(hr())

# Q20
story.append(qheader(20, "3 Components of AETCOM"))
story.append(body(B("AETCOM") + " = " + B("A") + "ttitude, " + B("E") + "thics, and " + B("Com") + "munication Module - "
    "introduced in NMC Competency-Based Medical Education (CBME) curriculum 2019 for MBBS students in India. "
    "Integrated across all phases (Phase I, II, III) and assessed through portfolio, OSCE, and reflective writing."))

story.append(subsub("(1) Attitude - Professional Attitudes and Behaviors"))
att = [
    "Developing humanism, empathy, integrity, respect for patients, and professionalism.",
    "Patient-centered care, compassion, respect for patient autonomy, non-judgmental approach.",
    "Sensitivity to socioeconomic, cultural, and linguistic differences.",
    "Accountability in clinical practice; team-based care.",
]
for a in att: story.append(bullet(a))

story.append(subsub("(2) Ethics - Medical Ethics and Bioethics"))
story.append(body(B("4 Core Bioethical Principles (Beauchamp and Childress):")))
eth = [
    B("Autonomy") + ": Respect the patient's right to make informed decisions.",
    B("Beneficence") + ": Act in the best interest of the patient.",
    B("Non-maleficence") + ': "First, do no harm" - Primum non nocere.',
    B("Justice") + ": Fair distribution of healthcare resources; treat all patients equally.",
]
for e in eth: story.append(bullet(e))
story.append(body("Topics: Informed consent, confidentiality, truth-telling/breaking bad news, end-of-life care, research ethics, "
    "conflicts of interest, organ transplantation ethics, resource allocation."))
story.append(body("Legal: MCI/NMC Code of Ethics, Consumer Protection Act in healthcare, MTP Act, Transplantation of Human Organs Act."))

story.append(subsub("(3) Communication - Communication Skills"))
comm = [
    B("Verbal communication") + ": Patient history taking, counselling, breaking bad news (SPIKES protocol), interprofessional communication, patient handover.",
    B("Non-verbal communication") + ": Body language, eye contact, posture, appropriate use of silence, physical distance (proxemics).",
    B("Written communication") + ": Medical records, referral letters, medico-legal documents (MLC certificates).",
    B("Doctor-patient relationship") + ": Informed consent process, shared decision-making.",
    B("Special populations") + ": Communication with elderly, children, persons with disabilities, different linguistic/cultural backgrounds.",
]
for c in comm: story.append(bullet(c))
story.append(Spacer(1, 0.3*cm))

# Final note
story.append(HRFlowable(width="100%", thickness=1.5, color=colors.HexColor("#1a3c5e"), spaceAfter=6))
story.append(Paragraph(
    "Reference: Park's Textbook of Preventive and Social Medicine | NMC CBME Curriculum 2019 | "
    "WHO Guidelines | Government of India Health Programmes",
    note_style
))

# ── Build PDF ────────────────────────────────────────────────────────────────
def on_page(canvas, doc):
    """Header and footer on every page."""
    canvas.saveState()
    w, h = A4
    # Header bar
    canvas.setFillColor(colors.HexColor("#1a3c5e"))
    canvas.rect(0, h - 1.2*cm, w, 1.2*cm, fill=1, stroke=0)
    canvas.setFont("Helvetica-Bold", 9)
    canvas.setFillColor(colors.white)
    canvas.drawString(1*cm, h - 0.85*cm, "Community Medicine - Paper I  |  Complete Model Answers")
    canvas.drawRightString(w - 1*cm, h - 0.85*cm, "Study Reference")
    # Footer
    canvas.setFillColor(colors.HexColor("#555555"))
    canvas.setFont("Helvetica", 8)
    canvas.drawCentredString(w / 2, 0.7*cm, f"Page {doc.page}  |  Reference: Park's Textbook of Preventive and Social Medicine")
    canvas.restoreState()

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    topMargin=1.6*cm,
    bottomMargin=1.4*cm,
    leftMargin=1.8*cm,
    rightMargin=1.8*cm,
    title="Community Medicine Paper I - Complete Model Answers",
    author="Orris Study Reference",
    subject="Community Medicine | Preventive and Social Medicine",
)

doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print(f"PDF generated: {OUTPUT}")
Running Command

cd /home/daytona/workspace/community-medicine-pdf && python3 generate_pdf.py 2>&…

Running Command

ls -lh /home/daytona/workspace/community-medicine-pdf/Community_Medicine_Paper1_…

Your PDF study reference is ready. Download it here:

Community Medicine Paper1 Answers

PDF Document · PDF

What's included in the PDF (34 KB, fully formatted):
  • Cover page with a structured summary table (section, questions, marks)
  • Q1-Q2 - Long Essays with full stepwise epidemic investigation protocol and 3-level occupational disease prevention framework
  • Q3-Q10 - Short Essays with bullet-point answers, sub-headings, and highlighted key terms
  • Q11-Q20 - Short Answers with colour-coded tables (nutrition programmes, demographic indicators) and formatted bullet lists
  • Running header and footer on every page with page numbers
  • Reference note: Park's Textbook of Preventive and Social Medicine, NMC CBME Curriculum 2019
The layout uses colour-coded section banners (dark blue for section headers, red for sub-headings, green for sub-sub-headings) to make it easy to navigate while revising.
This is a shared conversation. Sign in to Orris to start your own chat.