What all can you do?
I am a 3rd year mbbs student I have my university PSM and FMT paper in 15 days How should I study?
| Day | PSM Topic | FMT Topic |
|---|---|---|
| 1 | Epidemiology - concepts, study designs, bias, causation (Koch's postulates, Hill's criteria) | Introduction to FMT, definitions, courts, types of death |
| 2 | Screening, natural history of disease, levels of prevention, concepts of health | Decomposition, post-mortem changes, time since death |
| 3 | Biostatistics - mean/median/mode, SD, SE, tests (chi square, t-test), p-value, confidence interval | Mechanical asphyxia - hanging, strangulation, drowning, suffocation |
| 4 | National Health Programs - MCH, Family Planning, RCH, immunization schedule | Injuries - abrasion, contusion, laceration, incised wounds, stab wounds |
| 5 | Environmental health - water, air, sanitation, housing; Occupational health basics | Burns, scalds, lightning, heat & cold injuries |
| Day | PSM Topic | FMT Topic |
|---|---|---|
| 6 | Nutrition - PEM, vitamins, deficiency diseases, anthropometry | Firearm injuries - entry/exit wounds, range of fire, GSR |
| 7 | Communicable diseases - malaria, TB, HIV, polio, leprosy (key facts only) | Sexual offences - rape, POCSO, medical examination, documentation |
| 8 | Non-communicable diseases - epidemiology of CVD, DM, cancer, mental health | Toxicology overview - general principles, corrosives, irritants, narcotics |
| 9 | Health administration - PHC, district hospital, ASHA, Anganwadi, IPHS norms | Age estimation - bone ossification, dental age, radiological methods |
| 10 | Reproductive & Child Health, PCPNDT, MTP Act, maternal mortality indicators | Medicolegal aspects - MLC, dying declaration, inquest, exhumation |
Morning (2-2.5 hrs) → Main subject of the day (fresh brain = harder concepts)
Afternoon (1 hr) → PYQ practice OR write one long answer
Evening (1-1.5 hrs) → Second subject revision / notes review
Night (30 min) → Flash recall - close notes, write 5 key points from today
Generate a summary pdf on high yeild PSM topics
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "Created workspace"
mkdir -p /tmp/workspace/psm-notes && cat << 'PYEOF' > /tmp/workspace/psm-notes/generate_psm_pdf.py from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.colors import HexColor, white, black from reportlab.lib.units import mm, cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether, PageBreak ) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY from reportlab.platypus import ListFlowable, ListItem # ── Colour palette ────────────────────────────────────────────────────────── DARK_BLUE = HexColor('#1a3a5c') MED_BLUE = HexColor('#2563a8') LIGHT_BLUE = HexColor('#dbeafe') ACCENT_GOLD = HexColor('#d97706') GREEN = HexColor('#15803d') RED_DARK = HexColor('#b91c1c') LIGHT_GREY = HexColor('#f1f5f9') BORDER_GREY = HexColor('#cbd5e1') TEXT_DARK = HexColor('#1e293b') WHITE = white PAGE_W, PAGE_H = A4 MARGIN = 18*mm doc = SimpleDocTemplate( '/tmp/workspace/psm-notes/PSM_High_Yield_Summary.pdf', pagesize=A4, leftMargin=MARGIN, rightMargin=MARGIN, topMargin=20*mm, bottomMargin=20*mm, title='PSM High-Yield Summary – MBBS 3rd Year', author='Orris AI' ) styles = getSampleStyleSheet() def s(name, **kw): return ParagraphStyle(name, **kw) # Custom styles TITLE_S = s('Title2', fontName='Helvetica-Bold', fontSize=22, textColor=WHITE, alignment=TA_CENTER, spaceAfter=4, leading=28) SUB_S = s('SubTitle', fontName='Helvetica', fontSize=11, textColor=LIGHT_BLUE, alignment=TA_CENTER, spaceAfter=2, leading=14) H1 = s('H1', fontName='Helvetica-Bold', fontSize=14, textColor=WHITE, spaceBefore=6, spaceAfter=4, leading=18, leftIndent=0) H2 = s('H2', fontName='Helvetica-Bold', fontSize=11, textColor=DARK_BLUE, spaceBefore=8, spaceAfter=3, leading=14) H3 = s('H3', fontName='Helvetica-BoldOblique', fontSize=10, textColor=MED_BLUE, spaceBefore=5, spaceAfter=2, leading=13) BODY = s('Body2', fontName='Helvetica', fontSize=9, textColor=TEXT_DARK, spaceAfter=3, leading=13, alignment=TA_JUSTIFY) BULLET = s('Bullet2', fontName='Helvetica', fontSize=9, textColor=TEXT_DARK, leftIndent=12, spaceAfter=2, leading=13, bulletIndent=4) BOLD_B = s('BoldBullet', fontName='Helvetica-Bold', fontSize=9, textColor=TEXT_DARK, leftIndent=12, spaceAfter=2, leading=13) NOTE = s('Note', fontName='Helvetica-Oblique', fontSize=8.5, textColor=GREEN, spaceAfter=3, leading=12, leftIndent=8) FORMULA = s('Formula', fontName='Helvetica-Bold', fontSize=9, textColor=RED_DARK, leftIndent=10, spaceAfter=3, leading=13) SMALL = s('Small', fontName='Helvetica', fontSize=8, textColor=TEXT_DARK, leading=11, spaceAfter=2) def section_header(text, color=DARK_BLUE): """Returns a coloured banner for a section heading.""" data = [[Paragraph(text, H1)]] t = Table(data, colWidths=[PAGE_W - 2*MARGIN]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), color), ('TOPPADDING', (0,0), (-1,-1), 6), ('BOTTOMPADDING', (0,0), (-1,-1), 6), ('LEFTPADDING', (0,0), (-1,-1), 10), ('RIGHTPADDING', (0,0), (-1,-1), 10), ('ROWBACKGROUNDS', (0,0), (-1,-1), [color]), ])) return t def info_box(rows, col_widths=None): """Shaded table for key-value facts.""" if col_widths is None: col_widths = [(PAGE_W - 2*MARGIN)*0.4, (PAGE_W - 2*MARGIN)*0.6] fmt_rows = [[Paragraph(str(c), BOLD_B if i == 0 else BODY) for i, c in enumerate(r)] for r in rows] t = Table(fmt_rows, colWidths=col_widths) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), LIGHT_BLUE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [LIGHT_GREY, WHITE]), ('GRID', (0,0), (-1,-1), 0.4, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ('LEFTPADDING', (0,0), (-1,-1), 7), ('VALIGN', (0,0), (-1,-1), 'TOP'), ])) return t def b(text): return Paragraph(f'<b>\u2022 {text}</b>', BULLET) def p(text): return Paragraph(text, BODY) def h2(text): return Paragraph(text, H2) def h3(text): return Paragraph(text, H3) def sp(n=4): return Spacer(1, n) def note(text): return Paragraph(f'<i>\u26a0 {text}</i>', NOTE) def formula(text): return Paragraph(text, FORMULA) def hr(): return HRFlowable(width='100%', thickness=0.5, color=BORDER_GREY, spaceAfter=4) story = [] # ═══════════════════════════════════════════════════════════════════ # COVER BANNER # ═══════════════════════════════════════════════════════════════════ cover_data = [[ Paragraph('PSM High-Yield Summary', TITLE_S), Paragraph('Preventive & Social Medicine | MBBS 3rd Year University Exam', SUB_S), Paragraph('Based on Park\'s Textbook | 15-Day Revision Edition', SUB_S), ]] cover_t = Table([[Paragraph('PSM High-Yield Summary', TITLE_S)], [Paragraph('Preventive & Social Medicine | MBBS 3rd Year University Exam', SUB_S)], [Paragraph('Based on Park\'s Textbook | 15-Day Revision Edition', SUB_S)]], colWidths=[PAGE_W - 2*MARGIN]) cover_t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_BLUE), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 12), ])) story.append(cover_t) story.append(sp(10)) # ═══════════════════════════════════════════════════════════════════ # 1. EPIDEMIOLOGY # ═══════════════════════════════════════════════════════════════════ story.append(section_header('1. EPIDEMIOLOGY')) story.append(sp()) story.append(h2('Key Definitions')) story.append(info_box([ ['Term', 'Definition'], ['Epidemiology', 'Study of distribution & determinants of health-related states in populations + application to control'], ['Endemic', 'Habitual presence of disease in an area (constant level)'], ['Epidemic', 'Occurrence clearly in excess of normal expectancy in a community'], ['Pandemic', 'Epidemic occurring worldwide, crossing international boundaries'], ['Incidence', 'New cases in a defined population over a defined time'], ['Prevalence', 'All cases (new + old) in a population at a given point/period'], ['Attack rate', 'Incidence used when population is exposed for a limited time'], ['Case Fatality Rate', '(Deaths due to disease / Cases of disease) × 100'], ])) story.append(sp(6)) story.append(h2('Epidemiological Triad')) story.append(b('Agent + Host + Environment = Disease (Leavell & Clark)')) story.append(b('Web of Causation: MacMahon & Pugh')) story.append(b("Koch's Postulates (Germ Theory): 1) Organism in every case, 2) Isolated in pure culture, 3) Reproduces disease when inoculated, 4) Re-isolated from experimental host")) story.append(b("Hill's Criteria of Causation (9): Strength, Consistency, Specificity, Temporality, Biological gradient, Plausibility, Coherence, Experiment, Analogy")) story.append(note('Temporality is the ONLY essential criterion among Hill\'s criteria')) story.append(sp(4)) story.append(h2('Study Designs')) story.append(info_box([ ['Study Type', 'Key Feature / Use'], ['Cross-sectional', 'Prevalence study; snapshot in time; no follow-up'], ['Case-Control', 'Retrospective; calculates Odds Ratio (OR); good for rare diseases'], ['Cohort', 'Prospective; calculates Relative Risk (RR); good for rare exposures'], ['RCT', 'Gold standard for therapeutic interventions; calculates Efficacy'], ['Ecological', 'Group-level data; ecological fallacy is a bias'], ['Meta-analysis', 'Pools data from multiple studies; highest evidence level'], ], col_widths=[(PAGE_W-2*MARGIN)*0.35, (PAGE_W-2*MARGIN)*0.65])) story.append(sp(4)) story.append(h2('Measures of Association')) story.append(formula('Relative Risk (RR) = Incidence in exposed / Incidence in unexposed [Cohort studies]')) story.append(formula('Odds Ratio (OR) = (a×d) / (b×c) [Case-Control studies]')) story.append(formula('Attributable Risk = Incidence(exposed) − Incidence(unexposed)')) story.append(formula('Population Attributable Risk % = (Incidence(total) − Incidence(unexposed)) / Incidence(total) × 100')) story.append(sp(4)) story.append(h2('Screening Criteria (Wilson & Jungner)')) story.append(b('Disease: Important health problem, recognisable latent/early stage')) story.append(b('Test: Simple, safe, acceptable, validated; high Sensitivity (to rule OUT)')) story.append(b('Treatment: Effective treatment available')) story.append(note('Sensitivity = TP/(TP+FN) | Specificity = TN/(TN+FP) | PPV increases with disease prevalence')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 2. VITAL STATISTICS & BIOSTATISTICS # ═══════════════════════════════════════════════════════════════════ story.append(section_header('2. VITAL STATISTICS & BIOSTATISTICS')) story.append(sp()) story.append(h2('Key Mortality Rates')) story.append(info_box([ ['Rate', 'Formula', 'Notes'], ['Crude Birth Rate (CBR)', 'Live births / Mid-year population × 1000', 'India ~20/1000'], ['Crude Death Rate (CDR)', 'Deaths / Mid-year population × 1000', 'India ~7/1000'], ['Infant Mortality Rate (IMR)', 'Deaths <1yr / Live births × 1000', 'India ~28 (2023)'], ['Neonatal Mortality Rate', 'Deaths <28 days / Live births × 1000', 'Early (<7d) + Late'], ['Perinatal Mortality Rate', '(Stillbirths + Deaths <7d) / (Stillbirths + Live births) × 1000', 'Best index of obstetric care'], ['Maternal Mortality Ratio', 'Maternal deaths / Live births × 1,00,000', 'India ~97/lakh (2018-20)'], ['Under-5 Mortality Rate (U5MR)', 'Deaths <5yr / Live births × 1000', 'MDG/SDG indicator'], ['Total Fertility Rate (TFR)', 'Sum of Age-Specific Fertility Rates', 'India ~2.0; Replacement = 2.1'], ['Life Expectancy at Birth', 'Average years a newborn is expected to live', 'India ~70 years'], ], col_widths=[(PAGE_W-2*MARGIN)*0.30, (PAGE_W-2*MARGIN)*0.42, (PAGE_W-2*MARGIN)*0.28])) story.append(sp(6)) story.append(h2('Important Biostatistics')) story.append(info_box([ ['Concept', 'Key Points'], ['Mean/Median/Mode', 'Mean = sum/n; Median = middle value; Mode = most frequent. Normal distribution: all equal'], ['Standard Deviation (SD)', 'Spread around mean. 1 SD = 68%, 2 SD = 95%, 3 SD = 99.7% of data'], ['Standard Error (SE)', 'SD / √n [SE decreases as sample size increases]'], ['p-value', '<0.05 = statistically significant; <0.01 = highly significant'], ['Confidence Interval', '95% CI = Mean ± 1.96 × SE. If CI crosses 1 (for RR/OR) = not significant'], ['Chi-square (χ²)', 'Categorical data; tests association. NOT for small samples (<5 per cell)'], ["Student's t-test", 'Continuous data; compare 2 means; small samples with normal distribution'], ['ANOVA', 'Compare means of >2 groups simultaneously'], ['Correlation (r)', '-1 to +1. r=+1 perfect positive, r=-1 perfect negative, r=0 no correlation'], ])) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 3. LEVELS OF PREVENTION & NATURAL HISTORY # ═══════════════════════════════════════════════════════════════════ story.append(section_header('3. LEVELS OF PREVENTION & NATURAL HISTORY OF DISEASE')) story.append(sp()) story.append(h2('Leavell & Clark Model')) story.append(info_box([ ['Level', 'Stage of Disease', 'Examples'], ['Primordial Prevention', 'Before risk factors emerge', 'Health policy, legislation, social norms'], ['Primary Prevention', 'Pre-pathogenesis (susceptible host)', 'Vaccination, health education, chemoprophylaxis'], ['Secondary Prevention', 'Early pathogenesis', 'Screening, early diagnosis, prompt treatment'], ['Tertiary Prevention', 'Advanced disease', 'Disability limitation, rehabilitation'], ], col_widths=[(PAGE_W-2*MARGIN)*0.25, (PAGE_W-2*MARGIN)*0.30, (PAGE_W-2*MARGIN)*0.45])) story.append(sp(4)) story.append(h2('Modes of Intervention')) story.append(b('Health Promotion: Health education, nutrition, environmental sanitation')) story.append(b('Specific Protection: Immunisation, use of specific nutrients (iodine), occupational hazard protection')) story.append(b('Early Diagnosis & Prompt Treatment: Screening programmes, case finding')) story.append(b('Disability Limitation: Adequate treatment to prevent complications')) story.append(b('Rehabilitation: Medical, social, vocational rehabilitation')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 4. IMMUNISATION # ═══════════════════════════════════════════════════════════════════ story.append(section_header('4. IMMUNISATION & NATIONAL IMMUNISATION SCHEDULE')) story.append(sp()) story.append(h2('Universal Immunisation Programme (UIP) Schedule')) story.append(info_box([ ['Age', 'Vaccines Given'], ['At birth', 'BCG, OPV-0 (birth dose), Hepatitis B (birth dose)'], ['6 weeks', 'OPV-1, Penta-1 (DPT+Hep B+Hib), IPV-1, Rota-1, PCV-1, fIPV-1'], ['10 weeks', 'OPV-2, Penta-2, Rota-2, PCV-2'], ['14 weeks', 'OPV-3, Penta-3, IPV-2, Rota-3, PCV-3, fIPV-2'], ['9 months', 'MR-1, JE-1 (endemic districts), Vitamin A (1st dose)'], ['16-24 months', 'MR-2, OPV booster, DPT booster-1, JE-2, Vitamin A (2nd dose)'], ['5-6 years', 'DPT booster-2'], ['10 years & 16 years', 'Td (Tetanus + low-dose diphtheria)'], ['Pregnant women', 'TT-1, TT-2 (or Td); IFA; Td booster if previously immunised'], ])) story.append(sp(4)) story.append(h2('Cold Chain & Vaccine Storage')) story.append(b('Cold chain: System of keeping vaccines potent from manufacturer to child')) story.append(b('OPV: Most heat sensitive. Store at -15 to -25°C. Shake test for damage')) story.append(b('BCG, Measles, MMR: 2-8°C (NOT frozen – freezing damages)')) story.append(b('DPT, Hepatitis B, TT: 2-8°C. NEVER freeze (adjuvant precipitates)')) story.append(b('Diluents: Store at 2-8°C or room temperature (never frozen)')) story.append(note('Potency order of heat sensitivity: OPV > Measles > BCG > Hep B > DPT/TT')) story.append(sp(4)) story.append(h2('Types of Immunity')) story.append(info_box([ ['Type', 'Examples'], ['Active Natural', 'Recovery from infection'], ['Active Artificial', 'Vaccination'], ['Passive Natural', 'Maternal antibodies (IgG crosses placenta; IgA in breast milk)'], ['Passive Artificial', 'Immunoglobulin injection (ATS, IVIG)'], ['Herd Immunity', 'Indirect protection of unimmunised via high community coverage'], ])) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 5. NUTRITION # ═══════════════════════════════════════════════════════════════════ story.append(section_header('5. NUTRITION')) story.append(sp()) story.append(h2('Protein-Energy Malnutrition (PEM)')) story.append(info_box([ ['Classification', 'Features'], ['Kwashiorkor', 'Predominantly protein deficiency. Oedema, moon face, dermatosis, fatty liver, apathy. Hair = flag sign'], ['Marasmus', 'Calorie + protein deficiency. Wasting, old man face, no oedema, alert, ravenous hunger'], ['Marasmic Kwashiorkor', 'Mixed – wasting + oedema'], ])) story.append(sp(4)) story.append(h2('Classification of Malnutrition')) story.append(info_box([ ['Classification', 'Parameter', 'Grade I', 'Grade II', 'Grade III', 'Grade IV'], ['Gomez', 'Weight-for-age vs 50th percentile', '75-90%', '60-74%', '<60%', '–'], ['IAP (India)', 'Weight-for-age vs 50th percentile', '71-80%', '61-70%', '51-60%', '≤50%'], ['Waterlow', 'Wasting=W/H; Stunting=H/A', 'Mild', 'Moderate', 'Severe', '–'], ], col_widths=[(PAGE_W-2*MARGIN)*0.18, (PAGE_W-2*MARGIN)*0.27, (PAGE_W-2*MARGIN)*0.14, (PAGE_W-2*MARGIN)*0.14, (PAGE_W-2*MARGIN)*0.14, (PAGE_W-2*MARGIN)*0.13])) story.append(sp(4)) story.append(h2('Vitamin Deficiency Diseases')) story.append(info_box([ ['Vitamin', 'Deficiency Disease', 'Key Feature'], ['A (Retinol)', 'Xerophthalmia → Keratomalacia', 'Night blindness, Bitot\'s spots. Dose: 2 lakh IU at 9m, 16-18m, then 6-monthly till 5yrs'], ['B1 (Thiamine)', 'Beriberi', 'Wet (cardiac), Dry (peripheral neuropathy), Wernicke\'s encephalopathy'], ['B2 (Riboflavin)', 'Ariboflavinosis', 'Angular stomatitis, glossitis, corneal vascularisation'], ['B3 (Niacin)', 'Pellagra', '3Ds: Dermatitis, Diarrhoea, Dementia (4th D = Death)'], ['B12 (Cobalamin)', 'Megaloblastic anaemia', 'Subacute combined degeneration of spinal cord'], ['C (Ascorbic acid)', 'Scurvy', 'Perifollicular haemorrhages, Corkscrew hair, Bleeding gums'], ['D (Calciferol)', 'Rickets (child) / Osteomalacia (adult)', 'Low Ca/P; Craniotabes, bow legs, Harrison\'s sulcus'], ['K', 'Haemorrhagic disease of newborn', 'Prolonged PT/APTT'], ])) story.append(sp(4)) story.append(h2('Recommended Dietary Allowances (RDA) – Key Values')) story.append(b('Calories: Adult man 2320 kcal; Adult woman 1900 kcal; Pregnancy +350 kcal; Lactation +600 kcal')) story.append(b('Protein: Adult 0.8 g/kg/day; Pregnancy +23 g/day; Lactation +19 g/day')) story.append(b('Iron: Adult man 17 mg/day; Adult woman 21 mg/day; Pregnancy 35 mg/day')) story.append(b('Calcium: Adult 600 mg/day; Pregnancy/Lactation 1200 mg/day')) story.append(b('Folic acid: Pregnancy 500 mcg/day (to prevent NTDs)')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 6. ENVIRONMENTAL HEALTH # ═══════════════════════════════════════════════════════════════════ story.append(section_header('6. ENVIRONMENTAL HEALTH – WATER & SANITATION')) story.append(sp()) story.append(h2('Water Quality Standards')) story.append(info_box([ ['Parameter', 'WHO Standard', 'BIS (India) Standard'], ['pH', '6.5–8.5', '6.5–8.5'], ['Turbidity', '<1 NTU (desirable) / 5 NTU (max)', '1 NTU / 5 NTU'], ['TDS (Total Dissolved Solids)', '500 mg/L', '500 mg/L / 2000 mg/L'], ['Nitrates', '50 mg/L', '45 mg/L'], ['Fluoride', '1.5 mg/L', '1 mg/L / 1.5 mg/L'], ['Arsenic', '0.01 mg/L', '0.01 mg/L / 0.05 mg/L'], ['Coliform bacteria', '0/100 mL (treated)', '0/100 mL'], ['Residual Chlorine', '0.5 mg/L at source', '0.2 mg/L at tap'], ])) story.append(sp(4)) story.append(h2('Water Purification Methods')) story.append(b('Storage & Sedimentation: Allows 70-80% bacteria to die; removes suspended matter')) story.append(b('Coagulation: Alum (aluminium sulphate) at 5-40 mg/L; removes turbidity')) story.append(b('Filtration: Slow sand filter (Schmutzdecke layer) – most efficient biological purification')) story.append(b('Rapid sand filter: Faster but less efficient; needs coagulation first')) story.append(b('Chlorination: Most widely used disinfection. Breakpoint chlorination removes all impurities')) story.append(b('Bleaching powder: 25-35% available chlorine. Dose: 2.5 kg per lakh litres')) story.append(formula('Chlorine demand = Chlorine applied − Residual chlorine')) story.append(note('SODIS (Solar Disinfection): Place clear plastic bottle in sunlight for 6 hours')) story.append(sp(4)) story.append(h2('Excreta Disposal & Sanitation')) story.append(b('Sanitary latrine requirements: FLY-PROOF, ODOUR-PROOF, WATERTIGHT')) story.append(b('Bored-hole latrine: Simplest; suited for hard soil')) story.append(b('Septic tank: 3 zones – scum, liquid effluent, sludge. Soak pit for liquid')) story.append(b('Sewage treatment: Primary (physical sedimentation), Secondary (biological – trickling filter), Tertiary (chemical)')) story.append(b('BOD (Biochemical Oxygen Demand): Measure of organic pollution. Clean water BOD <1 mg/L; Highly polluted >200 mg/L')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 7. COMMUNICABLE DISEASES # ═══════════════════════════════════════════════════════════════════ story.append(section_header('7. COMMUNICABLE DISEASES')) story.append(sp()) story.append(h2('Malaria')) story.append(info_box([ ['Feature', 'P. vivax', 'P. falciparum'], ['Cycle', '48 hrs (benign tertian)', '48 hrs (malignant tertian)'], ['Relapse', 'Yes (hypnozoites in liver)', 'No (recrudescence only)'], ['Dangerous complication', 'Rare', 'Cerebral malaria, severe anaemia'], ['Treatment', 'Chloroquine + Primaquine 14d', 'ACT (Artesunate combination) + Primaquine single dose'], ['Vector', 'Female Anopheles (night biting)', 'Same'], ])) story.append(b('API (Annual Parasite Incidence) = Positive blood slides × 1000 / Population')) story.append(b('SPR (Slide Positivity Rate) = Positive slides / Slides examined × 100')) story.append(b('SFR (Slide Falciparum Rate) = Falciparum positive / Slides examined × 100')) story.append(note('DDT spraying: 1g/m², 2 rounds/year – Indoor Residual Spraying (IRS)')) story.append(sp(4)) story.append(h2('Tuberculosis')) story.append(b('Causative agent: Mycobacterium tuberculosis (acid-fast bacillus)')) story.append(b('Transmission: Airborne droplet nuclei (1-5 microns) – Wells\' droplet nuclei')) story.append(b('Incubation period: 4-12 weeks for primary infection')) story.append(b('Infectivity: Sputum smear-positive cases most infectious')) story.append(h3('NTEP (National TB Elimination Programme) – formerly RNTCP')) story.append(b('Target: Eliminate TB by 2025 (SDG target 2030); Nikshay portal for registration')) story.append(b('DOTS: Directly Observed Treatment Short-course – cornerstone of NTEP')) story.append(b('Regimen 2HRZE/4HR: Intensive phase 2 months + Continuation phase 4 months')) story.append(b('Drug-Resistant TB: MDR-TB = Resistant to INH + Rifampicin. XDR-TB = MDR + Fluoroquinolone + injectables')) story.append(b('Nikshay Poshan Yojana: Rs 500/month nutritional support to TB patients')) story.append(sp(4)) story.append(h2('HIV/AIDS')) story.append(b('Causative agent: HIV-1 (pandemic), HIV-2 (West Africa). Retrovirus')) story.append(b('Window period: 3-12 weeks (antibody appears); RNA detectable in 10-14 days')) story.append(b('AIDS definition (WHO/CDC): CD4 <200/μL OR AIDS-defining illness')) story.append(b('Transmission: Sexual (most common globally), Blood (most common in IDUs), Mother-to-child (PMTCT)')) story.append(b('ICTC: Integrated Counselling & Testing Centre – voluntary, free, confidential')) story.append(b('PMTCT: Option B+ – all HIV+ pregnant women on ART regardless of CD4')) story.append(b('NACP (National AIDS Control Programme): Phase IV ongoing; NACO oversees')) story.append(sp(4)) story.append(h2('Polio')) story.append(b('Causative agent: Poliovirus types 1, 2, 3 (enterovirus). Type 1 = most paralytic')) story.append(b('Transmission: Faeco-oral route; water/food contamination')) story.append(b('AFP Surveillance: All cases of Acute Flaccid Paralysis <15 years reported')) story.append(b('OPV: Live attenuated – 2 drops orally. bOPV = types 1 & 3 only')) story.append(b('IPV: Inactivated – injectable, induces only humoral immunity')) story.append(b('India certified POLIO-FREE: March 27, 2014')) story.append(note('Wild Poliovirus Type 2 eradicated globally in 1999')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 8. NATIONAL HEALTH PROGRAMMES # ═══════════════════════════════════════════════════════════════════ story.append(section_header('8. NATIONAL HEALTH PROGRAMMES')) story.append(sp()) story.append(h2('Key Programmes at a Glance')) story.append(info_box([ ['Programme', 'Launched', 'Key Feature'], ['NTEP (TB)', '1997 (as RNTCP)', 'DOTS; target TB elimination 2025'], ['NVBDCP (Vector-borne)', '2003 merger', 'Malaria, Dengue, Filaria, Kala-azar, JE, Chikungunya'], ['NLEP (Leprosy)', '1983', 'MDT (Multi-drug therapy); target elimination achieved 2005'], ['NPCB (Blindness)', '1976', 'Target: reduce blindness to 0.3% by 2020'], ['NPHCE (Elderly)', '2010', 'Health care for persons >60 years'], ['NPCDCS', '2010', 'Non-Communicable Diseases (HTN, DM, Cancer, Stroke)'], ['RKSK', '2014', 'Rashtriya Kishor Swasthya Karyakram – adolescent health'], ['NHM', '2013 (merger)', 'NRHM (2005) + NUHM (2013); strengthens health systems'], ['PM-JAY (Ayushman Bharat)', '2018', 'Rs 5 lakh/family/year health coverage; secondary & tertiary care'], ['JSSK', '2011', 'Free services for pregnant women & sick neonates'], ['PMSMA', '2016', 'Free ANCs on 9th of every month'], ])) story.append(sp(4)) story.append(h2('Leprosy')) story.append(b('Causative: M. leprae; Incubation 2-5 years (range: 6m to 40y)')) story.append(b('Classification: PB (Paucibacillary) – 1-5 lesions; MB (Multibacillary) – >5 lesions')) story.append(b('MDT: PB = Rifampicin 600mg monthly + Dapsone 100mg daily × 6 months')) story.append(b('MDT: MB = Rifampicin 600mg + Clofazimine 300mg monthly + Dapsone 100mg + Clofazimine 50mg daily × 12 months')) story.append(b('India declared elimination (<1/10,000) in 2005')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 9. PRIMARY HEALTH CARE # ═══════════════════════════════════════════════════════════════════ story.append(section_header('9. HEALTH INFRASTRUCTURE & PRIMARY HEALTH CARE')) story.append(sp()) story.append(h2('Alma Ata Declaration (1978)')) story.append(b('"Health for All by 2000 AD" – WHO/UNICEF conference, Alma Ata (now Almaty), Kazakhstan')) story.append(b('PHC = Essential health care based on practically sound, scientifically and socially acceptable methods')) story.append(b('8 Essential Elements of PHC: MNEMONIC – "Eat Properly, Drink Clean, Treat Sick, Control Kids"')) story.append(BULLET := Paragraph('1. Education about prevailing health problems<br/>' '2. Locally endemic disease control<br/>' '3. Maternal & child health including FP<br/>' '4. Expanded immunisation programme<br/>' '5. Provision of essential drugs<br/>' '6. Nutrition & food supply<br/>' '7. Safe water and sanitation<br/>' '8. Treatment of common diseases & injuries', BODY)) story.append(sp(4)) story.append(h2('Health Infrastructure Norms (India)')) story.append(info_box([ ['Facility', 'Population Served', 'Key Staff/Functions'], ['Sub-Centre (SC)', 'Plains: 5000 / Hills: 3000', 'ANM + Male Health Worker. First contact for maternal & child health'], ['Primary Health Centre (PHC)', 'Plains: 30,000 / Hills: 20,000', '1 Medical Officer + 14 paramedics. 4-6 beds. 6 indoor beds (revised)'], ['Community Health Centre (CHC)', '1,20,000', '4 specialists (Surgeon, Physician, Gynaecologist, Paediatrician). 30 beds. FRU designation'], ['Sub-District/Taluka Hospital', '5-6 lakh', 'Referral centre'], ['District Hospital', '10-30 lakh', 'Apex referral in district'], ])) story.append(sp(4)) story.append(h2('Key Health Workers')) story.append(info_box([ ['Worker', 'Role / Key Facts'], ['ASHA (Accredited Social Health Activist)', 'Community link worker. 1 per 1000 population. Incentive-based. Trained for 23 days initially'], ['ANM (Auxiliary Nurse Midwife)', 'Staff at Sub-Centre. Conducts deliveries, immunisation, ANC'], ['LHV (Lady Health Visitor)', 'Supervisor of ANMs at PHC level'], ['Anganwadi Worker (AWW)', 'Under ICDS. Nutrition, preschool education, health check-ups. 1 per 400-800 population'], ['MPW – Male (Health Worker)', 'Malaria surveillance, sanitation, vital events reporting at Sub-Centre'], ])) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 10. MCH & FAMILY PLANNING # ═══════════════════════════════════════════════════════════════════ story.append(section_header('10. MATERNAL & CHILD HEALTH + FAMILY PLANNING')) story.append(sp()) story.append(h2('Antenatal Care (ANC)')) story.append(b('Minimum 8 ANC contacts (WHO 2016) – India target: 4+ contacts')) story.append(b('1st visit: As early as possible (confirm pregnancy, baseline investigations)')) story.append(b('PMSMA: Free comprehensive ANC on 9th of every month at govt facilities')) story.append(b('Routine investigations: Hb, blood group, urine albumin/sugar, VDRL, HIV, blood glucose')) story.append(b('IFA supplementation: 1 tablet/day from 1st trimester; continue 6 months postpartum')) story.append(b('TT/Td immunisation: 2 doses in first pregnancy (4 weeks apart); booster in subsequent')) story.append(sp(4)) story.append(h2('MTP Act (Medical Termination of Pregnancy) – Amended 2021')) story.append(info_box([ ['Condition', 'Limit'], ['Single provider opinion', 'Up to 20 weeks'], ['Two provider opinion', '20-24 weeks (special categories)'], ['Special categories for 20-24 wk', 'Rape survivors, minors, differently-abled, foetal abnormality, change in marital status'], ['Court order', 'Beyond 24 weeks (substantial foetal abnormality)'], ['For minors/mentally ill', 'Consent of guardian required'], ])) story.append(sp(4)) story.append(h2('PCPNDT Act – Pre-Conception & Pre-Natal Diagnostic Techniques Act')) story.append(b('Original act 1994 – amended 2003 (added pre-conception sex selection)')) story.append(b('Prohibits determination and communication of sex of foetus')) story.append(b('All ultrasound machines must be registered with appropriate authority')) story.append(b('Penalty: Imprisonment up to 3-5 years + fine')) story.append(sp(4)) story.append(h2('Family Planning Methods')) story.append(info_box([ ['Method', 'Pearl Index (lower = better)', 'Notes'], ['Male sterilisation (Vasectomy)', '0.15', 'Safest; local anaesthesia; no-scalpel vasectomy (NSV)'], ['Female sterilisation (TL)', '0.5', 'Pomeroy\'s method most common in India'], ['Copper IUD (Cu-T 380A)', '0.6-0.8', '10 years effective; best spacing method'], ['Combined OCP', '0.1-1', 'Start day 1-5 of cycle; protective against ovarian & endometrial ca'], ['DMPA (Depo-Provera)', '0.3', 'Injection every 3 months'], ['Condom (male)', '2-15', 'Only method protecting against STIs + pregnancy'], ['Natural methods (LAM)', 'Variable', 'Exclusive breastfeeding, <6 months, amenorrhoea – 98% effective'], ])) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 11. OCCUPATIONAL HEALTH # ═══════════════════════════════════════════════════════════════════ story.append(section_header('11. OCCUPATIONAL HEALTH')) story.append(sp()) story.append(h2('Pneumoconioses')) story.append(info_box([ ['Disease', 'Causative Dust', 'Industry / Occupation'], ['Silicosis', 'Free crystalline silica (SiO₂)', 'Mining, quarrying, sandblasting, pottery, glass. MOST COMMON pneumoconiosis'], ['Coal Workers\' Pneumoconiosis (CWP)', 'Coal dust', 'Coal miners. "Black lung disease"'], ['Asbestosis', 'Asbestos fibres', 'Ship building, insulation, construction'], ['Byssinosis', 'Cotton dust', 'Cotton textile workers. "Monday fever"'], ['Bagassosis', 'Bagasse (sugar cane residue)', 'Sugar cane industry workers'], ['Farmer\'s Lung', 'Thermophilic actinomycetes in hay', 'Farmers. Hypersensitivity pneumonitis'], ['Berylliosis', 'Beryllium dust', 'Aerospace, nuclear, fluorescent lamp industry'], ])) story.append(sp(4)) story.append(h2('Occupational Cancers')) story.append(b('Scrotal cancer: Chimney sweeps (soot) – first described by Percivall Pott')) story.append(b('Bladder cancer: Rubber industry, dye industry (beta-naphthylamine, benzidine)')) story.append(b('Lung cancer: Asbestos, arsenic, chromium, nickel, radon')) story.append(b('Mesothelioma: Asbestos (crocidolite most dangerous)')) story.append(b('Nasal/sinus cancer: Nickel, wood dust, leather dust')) story.append(b('Leukaemia: Benzene exposure')) story.append(sp(4)) story.append(h2('Key Occupational Diseases & Exposures')) story.append(info_box([ ['Substance', 'Disease / Feature'], ['Lead (Pb)', 'Burton\'s line (blue gum line), basophilic stippling of RBCs, wrist/foot drop, anaemia'], ['Mercury (Hg)', 'Minamata disease (organic), Pink disease (acrodynia), tremors, erethism'], ['Arsenic', 'Mee\'s lines on nails, hyperkeratosis, Blackfoot disease, lung/skin cancer'], ['Benzene', 'Aplastic anaemia, leukaemia. Urinary phenol as biomarker'], ['Carbon monoxide', 'Binds Hb (carboxyHb). Cherry red colour. Treat with 100% O₂'], ['Organophosphates', 'Inhibit acetylcholinesterase. SLUDGE. Treat with Atropine + Pralidoxime'], ])) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # 12. HEALTH INDICATORS & CONCEPTS # ═══════════════════════════════════════════════════════════════════ story.append(section_header('12. HEALTH INDICATORS & GLOBAL HEALTH CONCEPTS')) story.append(sp()) story.append(h2('Important Health Indices')) story.append(info_box([ ['Index', 'Description'], ['HDI (Human Development Index)', 'UNDP. Life expectancy + Education + GNI per capita'], ['Physical Quality of Life Index (PQLI)', 'D.M. Morris. IMR + Life expectancy at age 1 + Literacy rate (0-100 scale)'], ['DALYs', 'Disability-Adjusted Life Years = YLL (Years of Life Lost) + YLD (Years Lived with Disability)'], ['QALYs', 'Quality-Adjusted Life Years – used in health economics'], ['Gini coefficient', 'Measures income inequality (0 = perfect equality, 1 = maximum inequality)'], ['Lorenz curve', 'Graphical representation of income inequality; further from diagonal = more inequality'], ])) story.append(sp(4)) story.append(h2('Millennium Development Goals (MDGs) → SDGs')) story.append(b('MDGs: 8 goals (2000-2015) – Reduce child mortality (MDG4), Maternal mortality (MDG5), Combat HIV/TB/Malaria (MDG6)')) story.append(b('SDGs: 17 goals (2015-2030) – "Agenda 2030". SDG 3 = Ensure healthy lives for all at all ages')) story.append(b('SDG 3 targets: End AIDS, TB, Malaria; reduce NMR to ≤12/1000; MMR to <70/1,00,000')) story.append(sp(4)) story.append(h2('Social Determinants of Health (CSDH – WHO)')) story.append(b('Income & social protection, Education, Unemployment, Working conditions')) story.append(b('Social support networks, Culture, Gender, Race/Ethnicity')) story.append(b('Access to affordable health services of decent quality')) story.append(note('Commission on Social Determinants of Health (CSDH) report 2008: "Closing the gap in a generation"')) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # QUICK REVISION: IMPORTANT NUMBERS # ═══════════════════════════════════════════════════════════════════ story.append(section_header('QUICK REVISION: NUMBERS TO MEMORISE', color=ACCENT_GOLD)) story.append(sp()) story.append(info_box([ ['What', 'Number', 'What', 'Number'], ['IMR India (2023)', '~28/1000', 'MMR India (2018-20)', '97/lakh'], ['TFR India', '~2.0', 'Replacement TFR', '2.1'], ['Life expectancy India', '~70 years', 'PHC population (plains)', '30,000'], ['Sub-centre population', '5000 (plains)', 'CHC beds', '30 beds'], ['Herd immunity threshold (measles)', '92-95%', 'Herd immunity (polio)', '80-85%'], ['ANC contacts (WHO 2016)', '8 contacts', 'IFA tablets (pregnancy)', '180 tablets'], ['Safe drinking water residual Cl₂', '0.5 mg/L at source', 'Alum dose for water', '5-40 mg/L'], ['OPV doses in UIP', '5 (birth + 3 primary + 1 booster)', 'BCG at birth (dose)', '0.05 mL intradermal'], ['Chi-square: cell size minimum', '5 per cell', 'Normal dist: 2 SD covers', '95% data'], ['ASHA: population per ASHA', '1000', 'AWW: population', '400-800'], ], col_widths=[(PAGE_W-2*MARGIN)*0.25, (PAGE_W-2*MARGIN)*0.25, (PAGE_W-2*MARGIN)*0.25, (PAGE_W-2*MARGIN)*0.25])) story.append(sp(8)) # ═══════════════════════════════════════════════════════════════════ # FOOTER NOTE # ═══════════════════════════════════════════════════════════════════ story.append(hr()) story.append(Paragraph( 'Source: Park\'s Textbook of Preventive & Social Medicine (25th Ed.) | ' 'Compiled for MBBS 3rd Year University Exam Revision | Generated by Orris AI', SMALL)) # BUILD PDF doc.build(story) print("PDF generated successfully!") PYEOF echo "Script written"
cd /tmp/workspace/psm-notes && python generate_psm_pdf.py 2>&1
cd /tmp/workspace/psm-notes && python -c " # Test: find the collision line content = open('generate_psm_pdf.py').read() # Find where BULLET is reassigned import re matches = [(i+1, line) for i, line in enumerate(content.split('\n')) if 'BULLET' in line] for m in matches: print(m) "
~/psm-notes/generate_psm_pdf.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/psm-notes/generate_psm_pdf.py'
cd /tmp/workspace/psm-notes && python generate_psm_pdf.py 2>&1
ls -lh /tmp/workspace/psm-notes/PSM_High_Yield_Summary.pdf
PSM High Yield Summary
PDF Document · PDF
| # | Section | What's Covered |
|---|---|---|
| 1 | Epidemiology | Study designs, RR/OR formulas, Hill's criteria, screening |
| 2 | Vital Statistics & Biostatistics | All important rates (IMR, MMR, CBR, TFR), stat tests |
| 3 | Levels of Prevention | Leavell & Clark model, all 5 levels with examples |
| 4 | Immunisation | Full UIP schedule (birth to 16 yrs), cold chain, types of immunity |
| 5 | Nutrition | Kwashiorkor vs Marasmus, Gomez/IAP/Waterlow classification, all vitamins |
| 6 | Environmental Health | Water standards (WHO + BIS), purification, sewage treatment |
| 7 | Communicable Diseases | Malaria, TB (NTEP/DOTS), HIV (PMTCT), Polio |
| 8 | National Health Programmes | All major programmes with launch year + key feature |
| 9 | Health Infrastructure | Sub-centre, PHC, CHC norms + ASHA, ANM, AWW roles |
| 10 | MCH & Family Planning | ANC, MTP Act 2021, PCPNDT Act, Pearl Index table |
| 11 | Occupational Health | Pneumoconioses, occupational cancers, heavy metal toxicity |
| 12 | Health Indicators | HDI, PQLI, DALYs, MDGs → SDGs |
| ★ | Quick Revision Numbers | All key numbers/values in one table |