attachment
attachment

Kindly give me 10 marks precise answer for 15 mins in pdf form for MS OBG final exam

Reading File
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Running Command

mkdir -p /tmp/workspace/ms-obg-answers && ls /tmp/workspace/ms-obg-answers/

Writing File

~/ms-obg-answers/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, HRFlowable, PageBreak, Table, TableStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import KeepTogether

OUTPUT = "/tmp/workspace/ms-obg-answers/MS_OBG_Answers_WB_2022.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(
    'TitleStyle',
    parent=styles['Normal'],
    fontSize=14,
    fontName='Helvetica-Bold',
    alignment=TA_CENTER,
    spaceAfter=4,
    textColor=colors.HexColor('#1a237e')
)
subtitle_style = ParagraphStyle(
    'SubtitleStyle',
    parent=styles['Normal'],
    fontSize=11,
    fontName='Helvetica',
    alignment=TA_CENTER,
    spaceAfter=2,
)
q_style = ParagraphStyle(
    'QuestionStyle',
    parent=styles['Normal'],
    fontSize=11,
    fontName='Helvetica-Bold',
    spaceBefore=14,
    spaceAfter=4,
    textColor=colors.HexColor('#1565c0'),
    borderPad=4,
)
heading_style = ParagraphStyle(
    'HeadingStyle',
    parent=styles['Normal'],
    fontSize=10,
    fontName='Helvetica-Bold',
    spaceBefore=6,
    spaceAfter=2,
    textColor=colors.HexColor('#2e7d32')
)
body_style = ParagraphStyle(
    'BodyStyle',
    parent=styles['Normal'],
    fontSize=9.5,
    fontName='Helvetica',
    leading=14,
    spaceBefore=2,
    spaceAfter=2,
    alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
    'BulletStyle',
    parent=styles['Normal'],
    fontSize=9.5,
    fontName='Helvetica',
    leading=13,
    leftIndent=14,
    spaceBefore=1,
    spaceAfter=1,
    bulletIndent=4
)
note_style = ParagraphStyle(
    'NoteStyle',
    parent=styles['Normal'],
    fontSize=8.5,
    fontName='Helvetica-Oblique',
    textColor=colors.HexColor('#555555'),
    spaceBefore=2
)

story = []

# ---- HEADER ----
story.append(Paragraph("The West Bengal University of Health Sciences", title_style))
story.append(Paragraph("M.S. (Obstetrics & Gynaecology) — May–June 2022 Examination", subtitle_style))
story.append(Paragraph("Paper II | Full Marks: 100 | Time: 3 Hours", subtitle_style))
story.append(Paragraph("<b>MODEL ANSWERS — 10 Marks Each (15-Minute Precise Answers)</b>", ParagraphStyle('sub2', parent=subtitle_style, fontSize=10, textColor=colors.HexColor('#b71c1c'), spaceBefore=4, spaceAfter=4)))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a237e'), spaceAfter=10))

# ============================================================
# Q1 - APH
# ============================================================
story.append(Paragraph("Q1. Practical Approach toward Evaluation &amp; Management of APH [10 Marks]", q_style))

story.append(Paragraph("Definition", heading_style))
story.append(Paragraph("Antepartum Hemorrhage (APH) is bleeding from the genital tract after 28 weeks of gestation and before delivery. It complicates ~3–5% of pregnancies and is a leading cause of maternal and perinatal mortality.", body_style))

story.append(Paragraph("Causes (Major Causes)", heading_style))
data = [
    ["Cause", "% of APH", "Key Feature"],
    ["Placenta Praevia", "30–35%", "Painless, bright red, recurrent"],
    ["Abruptio Placentae", "30–35%", "Painful, dark blood, uterine tenderness"],
    ["Vasa Praevia", "Rare", "Velamentous insertion — fetal blood"],
    ["Local causes (cervicitis, polyp)", "~10%", "P/V examination after ruling out PP"],
    ["Indeterminate/Unexplained", "~50%", "No obvious cause found"],
]
t = Table(data, colWidths=[5.5*cm, 3*cm, 7*cm])
t.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('ALIGN', (0,0), (-1,-1), 'LEFT'),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 4),
    ('BOTTOMPADDING', (0,0), (-1,-1), 4),
]))
story.append(t)
story.append(Spacer(1, 6))

story.append(Paragraph("Initial Evaluation (ABCDE Approach)", heading_style))
for b in [
    "<b>A — Airway/Admission:</b> Admit to labour ward; IV access (2 wide-bore cannulae); O2 by mask.",
    "<b>B — Bleeding Assessment:</b> Estimate blood loss; pad count; vital signs (BP, pulse, RR, SpO2).",
    "<b>C — Circulation:</b> FBC, coagulation profile (PT, aPTT, fibrinogen), cross-match 4 units packed cells, serum electrolytes, LFT, RFT.",
    "<b>D — Do NOT perform P/V examination</b> until placenta praevia excluded by USG.",
    "<b>E — Emergency USG:</b> Placental localisation, fetal presentation, BPP, liquor volume; Colour Doppler if vasa praevia suspected.",
]:
    story.append(Paragraph(b, bullet_style))

story.append(Paragraph("Specific Management", heading_style))
story.append(Paragraph("<b>Placenta Praevia:</b>", body_style))
for b in [
    "Minor degree (Types I &amp; II anterior): Expectant if not in labour; aim for 37+ weeks; plan LSCS for Gr III/IV or symptomatic.",
    "Active bleeding/unstable: Emergency LSCS irrespective of gestation.",
    "Preterm (&lt;34 wks) &amp; stable: Corticosteroids (Betamethasone 12 mg IM × 2 doses 24h apart); tocolysis if contracting.",
    "Prepare for possible PPH, cell salvage, uterotonic agents; consider balloon tamponade / B-Lynch / hysterectomy.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Abruptio Placentae:</b>", body_style))
for b in [
    "Grade 0–1 (minor, stable, preterm): Expectant management with fetal monitoring; steroids if &lt;34 weeks.",
    "Grade 2–3 (significant abruption): Immediate delivery; LSCS if fetal distress; manage coagulopathy (FFP, cryoprecipitate, platelets).",
    "Couvelaire uterus with atony: Oxytocin + ergometrine; B-Lynch suture; if refractory — hysterectomy.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Vasa Praevia:</b> Immediate emergency LSCS on suspicion (fetal blood — Apt test / HbF); neonatal resuscitation ready.", body_style))

story.append(Paragraph("Resuscitation", heading_style))
for b in [
    "IV crystalloids (NS/RL); transfuse PRBCs targeting Hb &gt;8 g/dL.",
    "FFP 15 mL/kg if PT/aPTT &gt;1.5× normal; Cryoprecipitate if fibrinogen &lt;1 g/L; Platelets if &lt;50,000.",
    "Tranexamic acid 1g IV (within 3 hrs of onset of bleeding).",
    "Monitor urinary output (Foley catheter) — target &gt;30 mL/hr.",
    "Continuous CTG monitoring; decision for delivery based on fetal and maternal condition.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))

# ============================================================
# Q2 - Fetal Hydronephrosis
# ============================================================
story.append(Paragraph("Q2. USG Evaluation of Fetal Hydronephrosis &amp; Outline Its Management [10 Marks]", q_style))

story.append(Paragraph("Definition", heading_style))
story.append(Paragraph("Fetal hydronephrosis (FH) is dilatation of the renal pelvis detected on prenatal USG. It is the most common anomaly found on antenatal ultrasound (prevalence ~1–5%).", body_style))

story.append(Paragraph("USG Grading — Society for Fetal Urology (SFU) Classification", heading_style))
data2 = [
    ["SFU Grade", "USG Finding", "APD (Anteroposterior Diameter)"],
    ["Grade 0", "Normal — no dilatation", "<4 mm (2nd tri); <7 mm (3rd tri)"],
    ["Grade I", "Pelvis only dilated", "4–7 mm"],
    ["Grade II", "Pelvis + major calyces", "7–10 mm"],
    ["Grade III", "Pelvis + major + minor calyces", "10–15 mm"],
    ["Grade IV", "Grade III + parenchymal thinning", ">15 mm"],
]
t2 = Table(data2, colWidths=[3.5*cm, 7*cm, 5*cm])
t2.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('ALIGN', (0,0), (-1,-1), 'LEFT'),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 4),
    ('BOTTOMPADDING', (0,0), (-1,-1), 4),
]))
story.append(t2)
story.append(Spacer(1, 4))

story.append(Paragraph("Additional USG Parameters to Assess", heading_style))
for b in [
    "Bilateral vs unilateral; presence of ureter dilatation (hydroureter); bladder size and wall thickness.",
    "Amniotic fluid volume (oligohydramnios = poor renal function).",
    "Renal parenchymal echogenicity (increased = dysplasia).",
    "Keyhole sign — posterior urethral valves (PUV) in male fetuses.",
    "Contralateral kidney morphology.",
    "Doppler of renal arteries (RI &gt;0.7 may indicate obstructive uropathy).",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Causes", heading_style))
for b in [
    "Ureteropelvic junction (UPJ) obstruction — most common (~50%)",
    "Vesicoureteric reflux (VUR) — ~20%",
    "Ureterovesical junction obstruction / megaureter",
    "Posterior urethral valves (males only)",
    "Multicystic dysplastic kidney",
    "Duplex collecting system",
    "Transient/physiological — resolves spontaneously",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Antenatal Management", heading_style))
for b in [
    "<b>Mild (APD 4–7 mm):</b> Repeat USG at 32–34 weeks; postnatal USG at day 3–5 and 4–6 weeks.",
    "<b>Moderate (APD 7–15 mm):</b> Repeat USG every 4–6 weeks; fetal karyotyping if other anomalies; neonatal follow-up with MCUG, DTPA/MAG3 scan.",
    "<b>Severe (APD &gt;15 mm) with oligohydramnios:</b> Multidisciplinary team (MFM + pediatric urology); consider in-utero intervention (vesicoamniotic shunting for bladder outlet obstruction) if bilateral and oligohydramnios to preserve renal function.",
    "Delivery in a centre with NICU and paediatric urology.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Postnatal Management", heading_style))
for b in [
    "Prophylactic antibiotics (Trimethoprim 2 mg/kg OD) pending workup.",
    "Renal USG, MCUG, DTPA/MAG3 renogram as per findings.",
    "Surgical: Pyeloplasty for UPJ obstruction; valve ablation for PUV; reimplantation for VUR Gr IV–V.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))

# ============================================================
# Q3 - Fetal ECG
# ============================================================
story.append(Paragraph("Q3. Evaluate Fetal ECG as an Antepartum Fetal Surveillance Tool [10 Marks]", q_style))

story.append(Paragraph("Background", heading_style))
story.append(Paragraph("Fetal ECG (fECG) analysis — particularly the ST-waveform analysis — has been studied as a tool to detect fetal myocardial hypoxia during labour. The primary system used clinically is STAN (ST ANalysis, Neoventa Medical).", body_style))

story.append(Paragraph("Physiological Basis", heading_style))
for b in [
    "During hypoxia, fetal myocardium utilises anaerobic glycolysis → release of catecholamines → elevation of ST segment and increase in T/QRS ratio.",
    "A rising T/QRS ratio or biphasic ST indicates progressive myocardial hypoxia.",
    "Normal fetal ECG: P wave, QRS complex, T wave with T/QRS ratio &lt;0.25.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Technical Aspects", heading_style))
for b in [
    "Requires direct fetal scalp electrode (FSE) — available only in labour (intrapartum), NOT true antepartum use.",
    "Signal processed to extract ECG from uterine EMG and maternal ECG.",
    "Software automatically calculates T/QRS ratio and identifies ST events.",
    "Used alongside continuous CTG (STAN system = CTG + FECG).",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Interpretation — ST Events (STAN)", heading_style))
data3 = [
    ["Event Type", "Significance"],
    ["Episodic T/QRS rise", "Acute hypoxia — brief, reversible"],
    ["Baseline T/QRS rise", "Chronic/prolonged hypoxia"],
    ["Biphasic ST (Grade 1–3)", "Severe myocardial compromise"],
    ["Sustained biphasic ST", "Immediate intervention required"],
]
t3 = Table(data3, colWidths=[7*cm, 9*cm])
t3.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#2e7d32')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 4),
    ('BOTTOMPADDING', (0,0), (-1,-1), 4),
]))
story.append(t3)
story.append(Spacer(1, 4))

story.append(Paragraph("Evidence &amp; Clinical Value", heading_style))
for b in [
    "STAN studies (Westgate 1992, SweSTAN trial) showed STAN + CTG reduced fetal metabolic acidosis at birth and reduced operative delivery rates compared to CTG alone.",
    "INFANT trial (UK RCT, 2017, n=47,062): STAN + CTG did NOT significantly reduce adverse perinatal outcomes vs CTG alone, raising questions about its utility.",
    "Meta-analyses suggest marginal reduction in neonatal metabolic acidosis but no clear reduction in hypoxic-ischaemic encephalopathy (HIE) or NICU admissions.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Limitations", heading_style))
for b in [
    "Only applicable intrapartum — requires ruptured membranes + FSE placement.",
    "Cannot be used in preterm &lt;36 weeks, fetal arrhythmias, anencephaly, or abnormal fetal presentation.",
    "Steep learning curve; risk of scalp injury from FSE.",
    "Not a replacement for standard antepartum surveillance (BPP, NST, Doppler).",
    "True non-invasive fECG via maternal abdominal leads remains experimental.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Conclusion", heading_style))
story.append(Paragraph("Fetal ECG/STAN offers a physiologically sound adjunct to CTG for intrapartum surveillance but has not fulfilled the promise of improving neonatal outcomes in large RCTs. It is not currently recommended as routine antepartum surveillance by ACOG or RCOG.", body_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))

# ============================================================
# Q4 - Peripartum Cardiomyopathy
# ============================================================
story.append(Paragraph("Q4. Peripartum Cardiomyopathy (PPCM) — Presentation / Diagnosis / Risks / Treatment [3+2+3+2 = 10]", q_style))

story.append(Paragraph("(A) Common Presenting Features [3 marks]", heading_style))
story.append(Paragraph("PPCM presents in the last month of pregnancy or within 5 months of delivery (Hibbard/NHBLI criteria). Features are those of acute heart failure:", body_style))
for b in [
    "Dyspnoea on exertion progressing to orthopnoea and PND",
    "Fatigue, reduced exercise tolerance, ankle oedema",
    "Palpitations (atrial/ventricular arrhythmias), chest pain",
    "Haemoptysis (pulmonary oedema), raised JVP, S3 gallop",
    "Displaced apex beat, systolic murmur (functional MR)",
    "Tachycardia, hypotension in severe cases; thromboembolic events (DVT/PE/stroke) in up to 5%",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("(B) Diagnostic Evaluation [2 marks]", heading_style))
for b in [
    "<b>ECG:</b> Sinus tachycardia, LV hypertrophy, non-specific ST-T changes, arrhythmias.",
    "<b>CXR:</b> Cardiomegaly, pulmonary oedema, pleural effusion.",
    "<b>Echocardiography (key):</b> EF &lt;45%, LV dilatation, global hypokinesia, functional MR — dilated cardiomyopathy pattern.",
    "<b>BNP/NT-proBNP:</b> Markedly elevated (diagnostic &amp; prognostic).",
    "<b>Cardiac MRI:</b> If echo inconclusive; detects myocarditis.",
    "<b>Exclude other causes:</b> Pre-existing DCM, myocarditis, hypertensive heart disease, valvular disease.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("(C) Risk Factors Associated with PPCM [3 marks]", heading_style))
for b in [
    "Multiparity, advanced maternal age (&gt;30 years)",
    "Multiple gestation (twinning)",
    "African descent / Black ethnicity (higher incidence and mortality)",
    "Pre-eclampsia / gestational hypertension",
    "Prolonged tocolysis with beta-agonists",
    "Malnutrition / selenium deficiency",
    "Viral myocarditis / autoimmune (prolactin cleavage fragment hypothesis — 16 kDa vasoinhibin)",
    "Familial predisposition (TTN gene mutations found in ~15%)",
    "Prior PPCM episode (high recurrence risk)",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("(D) Treatment [2 marks]", heading_style))
story.append(Paragraph("<b>General:</b> MDT (cardiologist + MFM); bed rest; restrict fluid and salt.", body_style))
story.append(Paragraph("<b>Antepartum (ACE-I / ARBs contraindicated):</b>", body_style))
for b in [
    "Diuretics: Furosemide (pulmonary oedema); avoid overdiuresis.",
    "Hydralazine + nitrates (afterload reduction — safe in pregnancy).",
    "Beta-blockers: Metoprolol (cardiomyopathy + rate control) — safe.",
    "Digoxin: Useful in AF / low EF.",
    "Anticoagulation: LMWH (EF &lt;35% or mural thrombus).",
]:
    story.append(Paragraph("• " + b, bullet_style))
story.append(Paragraph("<b>Postpartum (full HF therapy):</b>", body_style))
for b in [
    "ACE-I (Enalapril/Lisinopril) + Beta-blocker + Aldosterone antagonist (Spironolactone).",
    "Bromocriptine 2.5 mg BD × 2 weeks (then 2.5 mg OD × 4 weeks) — targets prolactin cleavage; ESC Class IIb recommendation.",
    "ICD if EF &lt;35% at 3 months despite optimal therapy.",
    "Advise against further pregnancies if EF does not recover to &gt;50%.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))
story.append(PageBreak())

# ============================================================
# Q5 - Preconception Care
# ============================================================
story.append(Paragraph("Q5. Background &amp; Rationale of Preconception Care [10 Marks]", q_style))

story.append(Paragraph("Definition", heading_style))
story.append(Paragraph("Preconception care (PCC) is the provision of biomedical, behavioural, and social health interventions to women and couples BEFORE conception to improve pregnancy outcomes and the long-term health of the woman, child, and family.", body_style))

story.append(Paragraph("Rationale / Why Preconception Care?", heading_style))
for b in [
    "<b>Critical organogenesis period:</b> Neural tube closes by day 28, cardiac septation by week 8 — often before the woman knows she is pregnant.",
    "<b>Reduce congenital anomalies:</b> Folic acid 400 mcg/day started pre-conception reduces NTDs by 70%.",
    "<b>Optimise chronic disease control</b> (DM, hypertension, epilepsy, thyroid) before conception to reduce teratogenesis and adverse outcomes.",
    "<b>Eliminate teratogens:</b> Replace teratogenic drugs (Warfarin→LMWH; Valproate→Lamotrigine; ACE-I→Methyldopa; retinoids stopped 1 month prior).",
    "<b>Vaccination:</b> MMR, Varicella (live vaccines contraindicated in pregnancy — must be given ≥1 month before conception); Hep B, Influenza.",
    "<b>Genetic counselling:</b> Carrier screening for thalassaemia, SCA, CF, fragile X; karyotyping if prior anomalous pregnancy.",
    "<b>Social factors:</b> Address obesity (BMI target &lt;30), smoking cessation, alcohol abstinence, recreational drug cessation.",
    "<b>Reproductive history review:</b> Recurrent miscarriage workup (APS, uterine anatomy, thrombophilia); prior preterm birth → cervical cerclage planning.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Key Components of PCC (WHO Framework)", heading_style))
data4 = [
    ["Domain", "Intervention"],
    ["Nutrition", "Folic acid 400 mcg; iron; iodine; calcium; vit D"],
    ["Infection screening", "TORCH, HIV, Hep B/C, syphilis, rubella IgG, TB"],
    ["Chronic disease", "HbA1c &lt;6.5% in DM; BP &lt;130/80 in HTN; TSH 0.1–2.5 in thyroid"],
    ["Medications review", "Teratogen replacement; OCP discontinuation advice"],
    ["Mental health", "Depression, anxiety screening; domestic violence"],
    ["Environmental/occupational", "Avoid lead, radiation, pesticides"],
    ["Genetic", "Carrier testing; consanguinity counselling"],
    ["Lifestyle", "BMI optimisation; quit smoking/alcohol/drugs; exercise"],
]
t4 = Table(data4, colWidths=[5*cm, 11*cm])
t4.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 3),
    ('BOTTOMPADDING', (0,0), (-1,-1), 3),
]))
story.append(t4)
story.append(Spacer(1, 4))

story.append(Paragraph("Evidence &amp; Global Impact", heading_style))
for b in [
    "Periconceptional folate supplementation reduces NTD risk by 50–70% (MRC Vitamin Study, 1991).",
    "Pre-gestational diabetes with HbA1c &gt;10%: congenital anomaly risk 20–25%; falls to near-normal with tight control.",
    "WHO estimates ~40% of maternal deaths and 50% of stillbirths could be prevented with effective preconception interventions.",
    "ACOG, RCOG, and WHO all recommend universal preconception counselling for all women of reproductive age.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))

# ============================================================
# Q6 - Kidney Transplant Pregnancy
# ============================================================
story.append(Paragraph("Q6. Management of Pregnancy in Recipient After Kidney Transplant [10 Marks]", q_style))

story.append(Paragraph("Background", heading_style))
story.append(Paragraph("Fertility returns within months of successful renal transplantation. Pregnancy is possible but carries significant maternal and fetal risks. Careful pre-pregnancy counselling and multidisciplinary management (nephrologist + MFM) are essential.", body_style))

story.append(Paragraph("Prerequisites Before Attempting Pregnancy (Counselling Criteria)", heading_style))
for b in [
    "At least 1–2 years post-transplant (ideally 2 years) — graft function stable.",
    "Serum creatinine &lt;1.5 mg/dL (preferably &lt;1.0 mg/dL); GFR &gt;40 mL/min/1.73m².",
    "No acute rejection episode in past 1 year.",
    "Proteinuria &lt;500 mg/day.",
    "BP controlled (&lt;130/80) on safe medications.",
    "Maintenance immunosuppression on safe regimen.",
    "No active CMV, HSV, or other opportunistic infections.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Safe Immunosuppressive Regimen in Pregnancy", heading_style))
data5 = [
    ["Drug", "Safety", "Comments"],
    ["Prednisolone", "Safe", "Use lowest effective dose"],
    ["Azathioprine", "Safe", "Preferred antiproliferative"],
    ["Tacrolimus", "Cautious use", "Therapeutic drug monitoring; risk of neonatal hyperkalaemia"],
    ["Cyclosporine", "Cautious use", "Monitor BP and renal function"],
    ["Mycophenolate mofetil (MMF)", "CONTRAINDICATED", "Teratogenic — switch to Azathioprine 6 weeks before conception"],
    ["Sirolimus / Everolimus", "Avoid", "Limited data; switch before conception"],
]
t5 = Table(data5, colWidths=[4.5*cm, 3*cm, 8*cm])
t5.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 3),
    ('BOTTOMPADDING', (0,0), (-1,-1), 3),
]))
story.append(t5)
story.append(Spacer(1, 4))

story.append(Paragraph("Antenatal Management", heading_style))
for b in [
    "Frequent visits (every 2–4 weeks) — shared care with nephrologist.",
    "Monitor serum creatinine, tacrolimus/cyclosporine levels, urine culture (UTIs common — monthly MSU).",
    "BP monitoring — target &lt;140/90 (safe antihypertensives: Methyldopa, Labetalol, Nifedipine; avoid ACE-I, ARBs).",
    "Proteinuria monitoring — 24h urine protein monthly.",
    "Fetal growth scans every 4 weeks from 24 weeks (IUGR risk ~30%).",
    "Anaemia management — EPO is safe.",
    "Gestational diabetes screening (6–OGTT at 24–28 weeks) — steroids increase risk.",
    "Calcium + Vitamin D supplementation (corticosteroid use).",
    "Aspirin 150 mg/day from 12 weeks for pre-eclampsia prophylaxis.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Complications", heading_style))
for b in [
    "<b>Maternal:</b> Pre-eclampsia (25–30%), acute rejection (5%), allograft dysfunction, UTI/pyelonephritis, anaemia, gestational DM.",
    "<b>Fetal:</b> Preterm birth (50%), IUGR (25–30%), neonatal immunosuppression, adrenal insufficiency, CMV.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Delivery", heading_style))
for b in [
    "Vaginal delivery is NOT contraindicated — transplanted kidney in iliac fossa does not obstruct labour.",
    "LSCS for obstetric indications; deliver at 37–38 weeks if uncomplicated.",
    "Cover with stress-dose steroids during delivery.",
    "Neonatal monitoring for immunosuppression effects.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))
story.append(PageBreak())

# ============================================================
# Q7 - Non-immune Hydrops Fetalis
# ============================================================
story.append(Paragraph("Q7. Critically Appraise Etiology &amp; Diagnosis of Non-Immune Hydrops Fetalis (NIHF) [10 Marks]", q_style))

story.append(Paragraph("Definition", heading_style))
story.append(Paragraph("Hydrops fetalis is the accumulation of excessive fluid in ≥2 fetal serous cavities (pleural effusion, ascites, pericardial effusion) ± subcutaneous oedema. Non-immune hydrops accounts for 85–90% of all hydrops cases (immune hydrops due to Rh incompatibility has declined with anti-D prophylaxis).", body_style))

story.append(Paragraph("Pathophysiology", heading_style))
story.append(Paragraph("NIHF results from disruption of normal fluid homeostasis due to: (1) increased capillary hydrostatic pressure (cardiac failure, venous obstruction), (2) decreased oncotic pressure (hypoproteinaemia), (3) increased capillary permeability, or (4) lymphatic obstruction.", body_style))

story.append(Paragraph("Etiology of NIHF (Mnemonic: CARDIAC FLOP)", heading_style))
data6 = [
    ["Category", "Cause", "% of NIHF"],
    ["Cardiovascular", "Structural CHD, arrhythmias (SVT, complete heart block), cardiomyopathy", "17–35%"],
    ["Chromosomal", "Turner syndrome (45X0) — #1 chromosomal; trisomy 21, 18, 13", "13–14%"],
    ["Haematological", "Alpha-thalassaemia (HbH disease, Hb Barts) — #1 cause in SE Asia; G6PD, DBA", "4–12%"],
    ["Infection", "Parvovirus B19 — #1 infectious cause; CMV, toxoplasma, syphilis", "5–8%"],
    ["Thoracic", "CCAM/CPAM, CDH, chylothorax, sequestration", "5–6%"],
    ["Lymphatic", "Turner syndrome (cystic hygroma), Noonan, lymphangiectasia", "5–6%"],
    ["Metabolic/Storage", "Gaucher, Niemann-Pick, mucopolysaccharidoses", "1–2%"],
    ["Twin complications", "TTTS (donor twin), TRAP sequence", "3%"],
    ["Placental/umbilical", "Chorioangioma, umbilical vein thrombosis", "Rare"],
    ["Idiopathic", "No cause found despite full workup", "15–25%"],
]
t6 = Table(data6, colWidths=[4*cm, 8*cm, 3.5*cm])
t6.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 8.5),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 3),
    ('BOTTOMPADDING', (0,0), (-1,-1), 3),
]))
story.append(t6)
story.append(Spacer(1, 4))

story.append(Paragraph("Diagnosis", heading_style))
story.append(Paragraph("<b>USG Criteria (Diagnostic):</b> Fluid in ≥2 serous cavities (ascites APD &gt;5mm, pleural &gt;2mm, pericardial &gt;2mm) + skin oedema (&gt;5mm thickness).", body_style))
story.append(Paragraph("<b>MCA Doppler:</b> MCA PSV &gt;1.5 MoM suggests fetal anaemia (parvovirus B19, alpha-thalassaemia).", body_style))

story.append(Paragraph("<b>Diagnostic Workup Algorithm:</b>", body_style))
for b in [
    "<b>Step 1 — Rule out immune hydrops:</b> Maternal blood group, Indirect Coombs test.",
    "<b>Step 2 — Detailed anomaly scan:</b> Fetal echocardiography (structural + rhythm); look for cystic hygroma.",
    "<b>Step 3 — Maternal blood tests:</b> CBC (Hb electrophoresis for alpha-thal), Parvovirus B19 IgG/IgM, TORCH screen, syphilis serology, Kleihauer-Betke test.",
    "<b>Step 4 — Invasive testing (amniocentesis/cordocentesis):</b> Fetal karyotype (chromosomal microarray preferred); fetal Hb electrophoresis; parvovirus PCR in amniotic fluid.",
    "<b>Step 5 — Targeted:</b> Metabolic enzyme assays if storage disorder suspected; lysosomal enzyme panel.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Critical Appraisal of Etiology", heading_style))
for b in [
    "The aetiology varies significantly with gestational age: chromosomal causes predominate in 1st/early 2nd trimester; cardiovascular in 2nd/3rd trimester.",
    "Alpha-thalassaemia (Hb Barts) carries near-100% fetal mortality — critical to identify in high-risk populations (South/SE Asian, Mediterranean).",
    "Parvovirus B19 is treatable — intrauterine transfusion can be curative (survival ~75%).",
    "SVT-mediated hydrops responds to maternal digoxin/flecainide therapy.",
    "Idiopathic NIHF (15–25%) has improved outcomes in recent series as molecular testing (WES) identifies previously unrecognised genetic causes.",
    "Prognosis depends on cause: structural cardiac NIHF has 30–40% survival; chromosomal NIHF 20–30%; treatable causes (SVT, parvovirus) 50–80%.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))

# ============================================================
# Q8 - Congenital Cyanotic Heart Disease
# ============================================================
story.append(Paragraph("Q8. Management of Pregnant Woman with Congenital Cyanotic Heart Disease [10 Marks]", q_style))

story.append(Paragraph("Background", heading_style))
story.append(Paragraph("Congenital cyanotic heart disease (CCHD) includes lesions with right-to-left shunting producing systemic desaturation. Common lesions: Tetralogy of Fallot (ToF), Transposition of Great Arteries (TGA), Eisenmenger Syndrome, Ebstein's anomaly, Tricuspid atresia.", body_style))

story.append(Paragraph("Pre-pregnancy Counselling", heading_style))
for b in [
    "High-risk: Eisenmenger syndrome — maternal mortality 30–50%; pregnancy contraindicated.",
    "Moderate risk: Uncorrected ToF, cyanosis with SpO2 &lt;85%; advise against pregnancy.",
    "Lower risk: Successfully repaired CCHD with normal/near-normal cardiac function.",
    "Use modified WHO classification of maternal cardiovascular risk (mWHO III–IV for most CCHD).",
    "CARPREG II score and ZAHARA score to quantify individual risk.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Physiological Impact of Pregnancy on CCHD", heading_style))
for b in [
    "Increased CO by 40–50% — may overwhelm fixed cardiac output.",
    "Reduced SVR → increased R→L shunt → worsening cyanosis.",
    "Hypercoagulability + polycythaemia → thrombosis risk.",
    "Risk of paradoxical embolism (DVT → cerebral/coronary via R→L shunt).",
    "SVR drop during labour/delivery → acute haemodynamic deterioration.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Antenatal Management", heading_style))
for b in [
    "Multidisciplinary team: Cardiologist (GUCH specialist) + MFM + Cardiac anaesthetist + Intensivist.",
    "Frequent monitoring: ECG, echo (EF, RV function), SpO2 (target &gt;85%); admit if SpO2 drops &lt;80%.",
    "Anticoagulation: LMWH if polycythaemia (Hct &gt;55%) or prior thromboembolic events.",
    "Iron therapy to optimise Hb (but avoid excessive polycythaemia).",
    "Fetal surveillance: Growth scans every 4 weeks; Doppler; BPP — IUGR rate 30–50%.",
    "Avoid dehydration, anaemia, infection — all worsen right-to-left shunting.",
    "Prophylactic venesection if Hct &gt;65% (target 55–60%).",
    "Endocarditis prophylaxis not routinely in obstetric procedures, but good oral hygiene.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Intrapartum Management", heading_style))
for b in [
    "Delivery in a cardiac centre with ICU/HDU.",
    "Continuous haemodynamic monitoring (invasive arterial line; central venous access).",
    "Avoid aortocaval compression (lateral tilt); avoid Trendelenburg in Eisenmenger.",
    "Pain relief: Epidural anaesthesia (slow, cautious — avoid sudden SVR drop); avoid GA if possible.",
    "Second stage: Assisted delivery (vacuum/forceps) to avoid Valsalva-induced haemodynamic swings.",
    "Active management of 3rd stage: Oxytocin 5 IU IV slowly (NOT syntometrine — ergometrine causes vasoconstriction); avoid fluid bolus.",
    "Eisenmenger: Termination of pregnancy is safest option; if continues — delivery at 34 weeks; HDU for minimum 2 weeks postpartum.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))
story.append(PageBreak())

# ============================================================
# Q9 - Bicornuate Uterus
# ============================================================
story.append(Paragraph("Q9. Diagnosis &amp; Management of Bicornuate Uterus with Reproductive Outcome [10 Marks]", q_style))

story.append(Paragraph("Definition &amp; Embryology", heading_style))
story.append(Paragraph("Bicornuate uterus (Class IV — Buttram &amp; Gibbons / AFS Class IV) results from incomplete fusion of the Mullerian (paramesonephric) ducts at the level of the uterine fundus, producing a heart-shaped uterus with two horns. The cervix is typically single (bicornuate unicollis) or occasionally double (bicornuate bicollis).", body_style))

story.append(Paragraph("Classification", heading_style))
for b in [
    "<b>Complete bicornuate:</b> Fundal indentation extends to internal cervical os (single cervix).",
    "<b>Partial bicornuate:</b> Fundal indentation &gt;1 cm above internal os.",
    "<b>Bicornuate bicollis:</b> Two horns + two cervices (rarely two vaginas — didelphys spectrum).",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Diagnosis", heading_style))
story.append(Paragraph("<b>Clinical:</b> Often asymptomatic; found incidentally. May present with recurrent miscarriage, preterm labour, abnormal fetal lie.", body_style))
story.append(Paragraph("<b>Imaging (Gold Standard — 3D USS or MRI):</b>", body_style))
for b in [
    "<b>2D USG:</b> Two separate uterine horns; fundal indentation &gt;1 cm; intercornual distance &gt;4 cm. Limited by operator dependence.",
    "<b>3D transvaginal USS:</b> Demonstrates fundal contour clearly; differentiates bicornuate from septate uterus. Sensitivity/specificity ~95%.",
    "<b>MRI (gold standard):</b> External fundal indentation (&gt;1 cm notch); two separate endometrial cavities; intact myometrium between horns. Differentiation from septate: fundal notch &gt;1 cm = bicornuate (vs. &lt;0 cm = septate).",
    "<b>Hysterosalpingography (HSG):</b> Shows divergent horns (&gt;105° intercornual angle) but cannot reliably distinguish from septate uterus.",
    "<b>Laparoscopy + hysteroscopy (diagnostic standard historically):</b> Bicornuate has external heart-shaped contour; septate has smooth external fundus.",
    "<b>Renal USG:</b> Always perform — ~30% associated with ipsilateral renal agenesis.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("Reproductive Outcomes", heading_style))
data7 = [
    ["Outcome", "Rate in Bicornuate Uterus"],
    ["Spontaneous miscarriage", "25–35% (vs. 15% general population)"],
    ["Preterm delivery", "20–30%"],
    ["Malpresentation (transverse/oblique/breech)", "40–50%"],
    ["IUGR", "Increased"],
    ["Cervical incompetence", "Increased"],
    ["Live birth rate (untreated)", "~55–60%"],
]
t7 = Table(data7, colWidths=[7*cm, 9*cm])
t7.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
    ('TEXTCOLOR', (0,0), (-1,0), colors.white),
    ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
    ('FONTSIZE', (0,0), (-1,-1), 9),
    ('GRID', (0,0), (-1,-1), 0.5, colors.grey),
    ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f5f5'), colors.white]),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('TOPPADDING', (0,0), (-1,-1), 3),
    ('BOTTOMPADDING', (0,0), (-1,-1), 3),
]))
story.append(t7)
story.append(Spacer(1, 4))

story.append(Paragraph("Management", heading_style))
story.append(Paragraph("<b>Conservative (most cases):</b>", body_style))
for b in [
    "Many women achieve successful pregnancies without intervention.",
    "Cerclage (McDonald/Shirodkar) if cervical incompetence proven or suspected.",
    "Serial cervical length monitoring from 14 weeks.",
    "Preterm labour prevention protocols; progesterone (vaginal, 200 mg OD from 16–34 weeks).",
]:
    story.append(Paragraph("• " + b, bullet_style))
story.append(Paragraph("<b>Surgical — Strassman Metroplasty:</b>", body_style))
for b in [
    "Indications: ≥2 consecutive mid-trimester losses or ≥3 first-trimester losses attributable to the anomaly.",
    "Technique: Transabdominal (open or laparoscopic) unification of the two horns into a single cavity.",
    "Post-metroplasty live birth rate improves to ~70–80%.",
    "Requires LSCS for all future deliveries (uterine scar).",
    "Hysteroscopic approach NOT applicable (unlike septate uterus) — no intracavitary septum to resect.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(HRFlowable(width="100%", thickness=0.5, color=colors.lightgrey, spaceBefore=8, spaceAfter=4))

# ============================================================
# Q10 - Short Notes
# ============================================================
story.append(Paragraph("Q10. Short Notes [5+5 = 10 Marks]", q_style))

story.append(Paragraph("(a) Cord Prolapse [5 Marks]", heading_style))
story.append(Paragraph("<b>Definition:</b> Descent of the umbilical cord alongside (occult/funic) or ahead of the presenting part after membrane rupture.", body_style))
story.append(Paragraph("<b>Incidence:</b> 0.1–0.6% of deliveries.", body_style))

story.append(Paragraph("<b>Risk Factors:</b>", body_style))
for b in [
    "Malpresentations (transverse lie, footling breech, oblique lie)",
    "Multiparity, polyhydramnios, prematurity (&lt;34 weeks)",
    "Iatrogenic: ARM with high presenting part, rotational forceps, ECV",
    "Low-lying placenta, multiple gestation (2nd twin)",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Diagnosis:</b>", body_style))
for b in [
    "Variable decelerations / sudden severe fetal bradycardia on CTG.",
    "Loop of cord felt/seen at vaginal examination or external orifice.",
    "USG may confirm in occulet cord prolapse.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Management:</b>", body_style))
for b in [
    "<b>Immediate:</b> Call for help; do NOT replace cord; relieve cord compression manually — elevate presenting part digitally (do not remove hand until delivery).",
    "Knee-chest position / Trendelenburg / Exaggerated Sims position — gravity relieves cord.",
    "Bladder filling (300–750 mL NS via Foley) to elevate presenting part if delivery delayed.",
    "Tocolysis (Terbutaline 0.25 mg SC) to stop contractions temporarily.",
    "<b>Delivery:</b> Emergency LSCS if cervix not fully dilated and fetus viable.",
    "Vaginal delivery if fully dilated — ventouse or forceps or breech extraction.",
    "Neonatal resuscitation team must be present.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Spacer(1, 8))

story.append(Paragraph("(b) Shoulder Dystocia [5 Marks]", heading_style))
story.append(Paragraph("<b>Definition:</b> Failure of the anterior shoulder to deliver spontaneously under the pubic symphysis after delivery of the fetal head, requiring additional obstetric manoeuvres. Defined operationally as head-to-body delivery interval &gt;60 seconds.", body_style))
story.append(Paragraph("<b>Incidence:</b> 0.6–2% of vaginal deliveries. Bony dystocia — NOT soft tissue.", body_style))

story.append(Paragraph("<b>Risk Factors:</b>", body_style))
for b in [
    "Macrosomia (&gt;4000 g) — most important; GDM/DM",
    "Prolonged 1st or 2nd stage of labour; operative vaginal delivery",
    "Maternal obesity; post-dates pregnancy",
    "Previous shoulder dystocia (recurrence risk 10–17%)",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Recognition:</b>", body_style))
for b in [
    "'Turtle sign' — retraction of fetal head onto perineum after delivery.",
    "Failure of restitution and failure of anterior shoulder to descend.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Management — HELPERR Mnemonic:</b>", body_style))
for b in [
    "<b>H — Call for Help</b> (senior obstetrician, midwife, neonatologist, anaesthetist)",
    "<b>E — Evaluate for Episiotomy</b> (not required for bony dystocia but aids manoeuvres)",
    "<b>L — Legs</b> — McRoberts manoeuvre: hyperflexion of maternal thighs onto abdomen (flattens lumbar lordosis, rotates pubic symphysis superiorly — resolves 40–50% cases)",
    "<b>P — Suprapubic Pressure</b> (Rubin I): downward + lateral pressure on posterior aspect of anterior shoulder to dislodge it from symphysis",
    "<b>E — Enter</b>: Internal rotational manoeuvres — Rubin II (pressure on posterior aspect of anterior shoulder) + Woods screw (pressure on anterior aspect of posterior shoulder) in opposite directions = 'screw' rotation",
    "<b>R — Remove</b> the posterior arm (Barnum manoeuvre): sweep posterior arm across fetal chest and deliver it first",
    "<b>R — Roll</b> (Gaskin manoeuvre): All-fours position — gravity releases posterior shoulder",
    "<b>Last resort:</b> Zavanelli manoeuvre (cephalic replacement + emergency LSCS); deliberate clavicle fracture; symphysiotomy.",
]:
    story.append(Paragraph("• " + b, bullet_style))

story.append(Paragraph("<b>Complications:</b> Maternal — PPH, 3rd/4th degree tears. Fetal — brachial plexus injury (Erb's palsy 10–15%); hypoxic-ischaemic injury; perinatal death.", body_style))
story.append(Paragraph("<b>Documentation:</b> Time of delivery of head, manoeuvres used (in sequence), time to delivery of body, Apgar scores, cord blood gases.", body_style))

story.append(Spacer(1, 16))
story.append(HRFlowable(width="100%", thickness=1.5, color=colors.HexColor('#1a237e'), spaceAfter=6))
story.append(Paragraph("--- End of Model Answers | West Bengal WBUHS MS OBG Paper II 2022 ---", ParagraphStyle('footer', parent=styles['Normal'], fontSize=8, alignment=TA_CENTER, textColor=colors.grey)))

doc.build(story)
print("PDF generated successfully:", OUTPUT)
Running Command

cd /tmp/workspace/ms-obg-answers && python generate_pdf.py

Running Command

ls -lh /tmp/workspace/ms-obg-answers/MS_OBG_Answers_WB_2022.pdf

Your PDF is ready. Download it here:

MS OBG Answers WB 2022

PDF Document · PDF


Here is a summary of what's covered in each answer (all formatted for 10 marks, written to be answered in ~15 minutes):
QTopicKey Points Covered
1APH — Evaluation & ManagementABCDE approach, causes table (PP vs abruption vs vasa praevia), specific management, resuscitation
2Fetal Hydronephrosis — USG + ManagementSFU grading table, causes, antenatal & postnatal management algorithm
3Fetal ECG as Antepartum SurveillanceSTAN physiology, T/QRS ratio, interpretation table, INFANT trial critique, limitations
4Peripartum CardiomyopathyPresenting features (3), diagnostic evaluation (2), risk factors (3), treatment incl. bromocriptine (2)
5Preconception CareRationale (organogenesis, NTD, teratogens), WHO framework table, evidence base
6Pregnancy after Kidney TransplantEligibility criteria, safe/unsafe immunosuppressants table (MMF = contraindicated), monitoring, delivery
7Non-immune Hydrops FetalisPathophysiology, etiology table with %, diagnostic algorithm (MCA Doppler, cordocentesis), critical appraisal
8CCHD in PregnancyEisenmenger risk (30-50% mortality), physiological impact, antenatal/intrapartum management, oxytocin precautions
9Bicornuate UterusAFS classification, 3D USG/MRI diagnosis, reproductive outcomes table, Strassman metroplasty indications
10aCord ProlapseRisk factors, HELPERR-like management, bladder filling, tocolysis
10bShoulder DystociaDefinition, McRoberts, HELPERR mnemonic with each step explained, complications, documentation
All answers are written in a structured examination format with headings, bullet points, and tables - optimised for the MS OBG final viva and written exam style expected at WBUHS.
This is a shared conversation. Sign in to Orris to start your own chat.