attachment
attachment

Give answers in the form of flowchart and tabular form wherever its necessary by referring obg dc duttas textbook book, any other mbbs textbooks rguhs mbbs

analyse_media
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
All answers have been compiled above. Here's a quick navigation guide for this complete answer set:

Summary Index

Q.NoTopicFormat Used
Q1aClassification of HTN in pregnancyTable + Classification tree
Q1bDefinition of PreeclampsiaDefinition + Pathophysiology flowchart
Q1cEclampsia management at 34 wksDetailed flowchart + Drug table
Q2aPreterm labour definitionDefinition box
Q2bCauses of preterm labourCategorized table + risk factor flowchart
Q2cThreatened PTL management (30 wks)Step-by-step flowchart + Drug table
Q3AMTSL / Third stageDefinition + 3-step AMTSL flowchart
Q4Deep Transverse ArrestDefinition + Management flowchart + Table
Q5GDM ScreeningDIPSI/ACOG flowchart + Threshold table
Q6Rupture UterusCauses table + Management flowchart
Q7Caesarean SectionDefinition + Indications/Complications tables
Q8Hormonal contraceptivesClassification flowchart + Contraindications table
Q9PuerperiumDefinition + Lochia table + Sepsis flowchart
Q10Early pregnancy hemorrhage + EctopicCauses table + Emergency flowchart
Q11Tests for fetal wellbeingTable with 3 key tests
Q12Pelvic assessmentMeasurements table + Caldwell-Moloy table
Q13Late decelerationsDefinition + Mechanism flowchart
Q14Safe MotherhoodPillars table + MMR data
Q15Biophysical Profile5-parameter scoring table
Q16Antihypertensives in pregnancyDrug table + Contraindicated drugs
Q17Baby Friendly Hospital (BFHI)Ten Steps table
Q18Unengaged head in primigravidaCauses table + MUFFED mnemonic
Q19Tetanus immunizationSchedule table
Q20Magnesium sulphate usesUses table + Toxicity monitoring
MCQ 21iPPH in multiparaAnswer: C (Uterine atonicity)
Key points to remember:
  • All flowcharts follow the clinical decision-making approach used in DC Dutta's Obstetrics (8th/9th Ed)
  • Drug doses match standard RGUHS/MBBS curriculum levels
  • Tables are structured for quick 5-mark and 10-mark answers
  • MCQ answer is C - Uterine atonicity (most common cause of PPH in all parities, including multipara)

Create a pdf of above provided answers

Reading File
Running Command

ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "Created workspace"

Running Command

mkdir -p /tmp/workspace/obg-rguhs && python3 -c "from reportlab.lib.pagesizes import A4; print('reportlab OK')"

Writing File

~/obg-rguhs/generate_pdf.py

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

OUTPUT = "/tmp/workspace/obg-rguhs/RGUHS_OBG_Paper1_Answers.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm,
    leftMargin=1.8*cm,
    topMargin=2*cm,
    bottomMargin=2*cm,
    title="RGUHS OBG Paper I – Model Answers",
    author="Orris AI – DC Dutta's Obstetrics Reference"
)

styles = getSampleStyleSheet()

# --- Custom Styles ---
title_style = ParagraphStyle('TitleStyle', parent=styles['Title'],
    fontSize=16, textColor=colors.HexColor('#1a237e'), spaceAfter=4,
    fontName='Helvetica-Bold', alignment=TA_CENTER)

subtitle_style = ParagraphStyle('SubtitleStyle', parent=styles['Normal'],
    fontSize=10, textColor=colors.HexColor('#37474f'), spaceAfter=2,
    alignment=TA_CENTER, fontName='Helvetica')

section_style = ParagraphStyle('SectionStyle', parent=styles['Heading1'],
    fontSize=13, textColor=colors.white, spaceAfter=6, spaceBefore=12,
    fontName='Helvetica-Bold', backColor=colors.HexColor('#1a237e'),
    leftIndent=-10, rightIndent=-10, leading=18)

q_style = ParagraphStyle('QStyle', parent=styles['Heading2'],
    fontSize=11.5, textColor=colors.HexColor('#1a237e'), spaceAfter=4, spaceBefore=10,
    fontName='Helvetica-Bold', borderPad=3,
    borderColor=colors.HexColor('#1a237e'), borderWidth=0)

subq_style = ParagraphStyle('SubQStyle', parent=styles['Heading3'],
    fontSize=10.5, textColor=colors.HexColor('#b71c1c'), spaceAfter=3, spaceBefore=6,
    fontName='Helvetica-Bold')

body_style = ParagraphStyle('BodyStyle', parent=styles['Normal'],
    fontSize=9.5, textColor=colors.HexColor('#212121'), spaceAfter=3, spaceBefore=1,
    fontName='Helvetica', leading=14, alignment=TA_JUSTIFY)

bullet_style = ParagraphStyle('BulletStyle', parent=styles['Normal'],
    fontSize=9.5, leftIndent=12, bulletIndent=0, spaceAfter=2,
    fontName='Helvetica', leading=13, textColor=colors.HexColor('#212121'))

code_style = ParagraphStyle('CodeStyle', parent=styles['Normal'],
    fontSize=8.5, fontName='Courier', textColor=colors.HexColor('#1b5e20'),
    backColor=colors.HexColor('#f1f8e9'), leading=12, spaceAfter=4, spaceBefore=4,
    leftIndent=8, rightIndent=4, borderPad=4)

note_style = ParagraphStyle('NoteStyle', parent=styles['Normal'],
    fontSize=9, textColor=colors.HexColor('#4a148c'), fontName='Helvetica-Oblique',
    backColor=colors.HexColor('#f3e5f5'), leftIndent=6, spaceAfter=3, leading=13)

def head(text): return Paragraph(text, section_style)
def q(text): return Paragraph(text, q_style)
def subq(text): return Paragraph(text, subq_style)
def body(text): return Paragraph(text, body_style)
def bul(text): return Paragraph(f"• {text}", bullet_style)
def code(text): return Paragraph(text.replace('\n', '<br/>').replace(' ', '&nbsp;'), code_style)
def note(text): return Paragraph(f"<i>{text}</i>", note_style)
def sp(h=4): return Spacer(1, h)
def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#90caf9'), spaceAfter=4, spaceBefore=4)

def make_table(data, col_widths=None, header_bg=colors.HexColor('#1a237e'), zebra=True):
    hdr_style = ParagraphStyle('tblH', fontName='Helvetica-Bold', fontSize=8.5,
        textColor=colors.white, leading=11)
    cell_style = ParagraphStyle('tblC', fontName='Helvetica', fontSize=8.5,
        textColor=colors.HexColor('#212121'), leading=11)
    formatted = []
    for ri, row in enumerate(data):
        fmt_row = []
        for ci, cell in enumerate(row):
            s = hdr_style if ri == 0 else cell_style
            fmt_row.append(Paragraph(str(cell), s))
        formatted.append(fmt_row)
    t = Table(formatted, colWidths=col_widths, repeatRows=1)
    ts = [
        ('BACKGROUND', (0,0), (-1,0), header_bg),
        ('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.4, colors.HexColor('#90caf9')),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, colors.HexColor('#e8eaf6')] if zebra else [colors.white]),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('LEFTPADDING', (0,0), (-1,-1), 5),
        ('RIGHTPADDING', (0,0), (-1,-1), 5),
        ('TOPPADDING', (0,0), (-1,-1), 4),
        ('BOTTOMPADDING', (0,0), (-1,-1), 4),
    ]
    t.setStyle(TableStyle(ts))
    return t

def flowbox(lines, title=""):
    """Render a flowchart as a styled preformatted block."""
    items = []
    if title:
        items.append(Paragraph(f"<b>{title}</b>", ParagraphStyle('fctitle',
            fontName='Helvetica-Bold', fontSize=9, textColor=colors.HexColor('#1a237e'),
            spaceAfter=2)))
    text = '\n'.join(lines)
    items.append(Paragraph(
        text.replace('\n', '<br/>').replace(' ', '&nbsp;').replace('<', '&lt;').replace('>', '&gt;'),
        ParagraphStyle('fc', fontName='Courier', fontSize=8,
            textColor=colors.HexColor('#1b5e20'), backColor=colors.HexColor('#f1f8e9'),
            leading=11, spaceAfter=6, spaceBefore=2, leftIndent=6, borderPad=5,
            borderColor=colors.HexColor('#a5d6a7'), borderWidth=0.5)
    ))
    return items

# ============================================================
# BUILD CONTENT
# ============================================================
story = []

# ---- COVER ----
story += [
    sp(30),
    Paragraph("RGUHS MBBS Phase III (Part II)", subtitle_style),
    Paragraph("OBSTETRICS & GYNAECOLOGY – PAPER I", title_style),
    Paragraph("QP Code: 1042 | Exam Date: 27-Apr-2026", subtitle_style),
    sp(6),
    HRFlowable(width="80%", thickness=2, color=colors.HexColor('#1a237e'), spaceAfter=6, spaceBefore=6),
    Paragraph("Complete Model Answers", ParagraphStyle('cov2', fontName='Helvetica-Bold',
        fontSize=13, textColor=colors.HexColor('#b71c1c'), alignment=TA_CENTER, spaceAfter=4)),
    Paragraph("Based on DC Dutta's Textbook of Obstetrics (8th/9th Ed),<br/>Creasy &amp; Resnik, ACOG Guidelines, WHO/NHM India Protocols",
        subtitle_style),
    sp(8),
    HRFlowable(width="80%", thickness=2, color=colors.HexColor('#1a237e'), spaceAfter=40, spaceBefore=4),
    sp(10),
    make_table([
        ["Section", "Questions", "Marks"],
        ["Long Essays", "Q1 – Q2", "2 × 10 = 20"],
        ["Short Essays", "Q3 – Q10", "8 × 5 = 40"],
        ["Short Answers", "Q11 – Q20", "10 × 3 = 30"],
        ["MCQs", "Q21", "10 × 1 = 10"],
        ["TOTAL", "", "100"],
    ], col_widths=[9*cm, 5*cm, 4*cm]),
    PageBreak()
]

# ===========================================================
# LONG ESSAYS
# ===========================================================
story += [head("LONG ESSAYS  (2 × 10 = 20 Marks)"), sp(4)]

# --- Q1 ---
story += [
    q("Q1. Hypertensive Disorders in Pregnancy | Preeclampsia | Eclampsia Management"),
    sp(2),
    subq("(a) Classification of Hypertensive Disorders in Pregnancy"),
    body("The ISSHP/ACOG classification recognises four major categories:"),
    sp(2),
]

story += flowbox([
    "        HYPERTENSIVE DISORDERS OF PREGNANCY",
    "                       |",
    "         +-------------+------------------+",
    "         |             |                  |",
    " Gestational HTN  Pre-eclampsia    Chronic HTN",
    " (BP>=140/90 after  (with / without   (pre-existing,",
    "  20 wks, no        severe features)  before 20 wks)",
    "  proteinuria)           |",
    "                  Superimposed PE",
    "                  on Chronic HTN",
], title="Classification Flowchart")

story += [sp(2),
    make_table([
        ["Type", "Definition", "Key Feature"],
        ["Gestational HTN", "BP ≥140/90 after 20 wks, no proteinuria", "Normalises <12 wks postpartum"],
        ["Preeclampsia", "HTN + proteinuria (≥300 mg/24h) after 20 wks", "± Severe features"],
        ["PE with Severe Features", "BP ≥160/110 OR severe end-organ damage", "HELLP, renal, neuro signs"],
        ["Eclampsia", "Convulsions in preeclampsia (no other cause)", "Grand-mal seizures"],
        ["Chronic HTN", "HTN before 20 wks or pre-existing", "Persists >12 wks postpartum"],
        ["Superimposed PE", "New proteinuria/end-organ damage in chronic HTN", "Worsening existing HTN"],
    ], col_widths=[4*cm, 7*cm, 5.5*cm]),
    sp(4),
]

story += [subq("(b) Definition of Preeclampsia")]
story += [
    note("Preeclampsia is a multisystem disorder unique to pregnancy, characterised by NEW-ONSET hypertension (BP ≥140/90 mmHg on 2 occasions ≥4 hours apart) after 20 weeks of gestation with proteinuria (≥300 mg in 24 hours) or other evidence of end-organ dysfunction, in a previously normotensive woman. (DC Dutta 8th Ed)"),
    sp(2),
]
story += flowbox([
    "Abnormal trophoblast invasion",
    "           |",
    "Failure of physiological transformation of spiral arteries",
    "           |",
    "Placental ischaemia / Oxidative stress",
    "           |",
    "Endothelial dysfunction (reduced NO, increased Endothelin)",
    "           |",
    "Vasospasm --> HTN + Proteinuria + Oedema (classic triad)",
], title="Pathophysiology Flowchart")

story += [sp(4), subq("(c) Management of Primigravida at 34 Weeks with Eclampsia")]
story += flowbox([
    "ECLAMPSIA AT 34 WEEKS",
    "         |",
    "CALL FOR HELP + ABC RESUSCITATION",
    "  Left lateral decubitus | O2 mask 6-8 L/min | 2 IV lines | Foley's",
    "         |",
    "CONTROL CONVULSIONS  -->  MgSO4 (Pritchard Regimen)",
    "  Loading: 4g IV (20% over 15 min) + 10g IM (5g each buttock)",
    "  Maintenance: 5g IM every 4 hours",
    "         |",
    "MONITOR MgSO4 TOXICITY before each dose:",
    "  Urine output >25 mL/hr | RR >16/min | Patellar reflex PRESENT",
    "  Antidote: Calcium gluconate 1g IV",
    "         |",
    "CONTROL BLOOD PRESSURE  (Target <160/110 mmHg)",
    "  Labetalol 20-80 mg IV  OR  Hydralazine 5-10 mg IV  OR  Nifedipine 10 mg oral",
    "         |",
    "FETAL MONITORING  +  CORTICOSTEROIDS",
    "  CTG | USG-BPP | Betamethasone 12 mg IM x2 (24 hrs apart) for lung maturity",
    "         |",
    "STABILISE 4-6 HRS  -->  DELIVER",
    "  Favourable cervix --> Vaginal delivery",
    "  Unfavourable / fetal distress --> Emergency LSCS",
    "         |",
    "POSTPARTUM: Continue MgSO4 24-48 hrs | Restrict IV fluids | Monitor BP",
], title="Eclampsia Management Flowchart")

story += [sp(2),
    make_table([
        ["Drug", "Dose", "Route", "Purpose"],
        ["MgSO4 (Pritchard)", "4g IV load + 10g IM; 5g IM q4h", "IV + IM", "Anticonvulsant (1st line)"],
        ["Labetalol", "20 mg IV (repeat 40, 80 mg)", "IV bolus", "Acute BP control"],
        ["Hydralazine", "5-10 mg IV", "IV", "Acute BP control"],
        ["Nifedipine", "10 mg", "Oral", "BP control"],
        ["Betamethasone", "12 mg × 2 doses (24h apart)", "IM", "Fetal lung maturity"],
        ["Calcium gluconate", "1 g IV over 10 min", "IV", "MgSO4 antidote"],
    ], col_widths=[4.5*cm, 5.5*cm, 2.5*cm, 4*cm]),
    PageBreak()
]

# --- Q2 ---
story += [
    q("Q2. Preterm Labour – Definition, Causes & Management of Threatened PTL at 30 Weeks"),
    sp(2),
    subq("(a) Definition of Preterm Labour"),
    note("Preterm labour is defined as regular uterine contractions (≥4 in 20 min or ≥8 in 60 min) with progressive cervical change (effacement ≥80% or dilatation ≥2 cm) occurring between 20 and 37 completed weeks of gestation (before 259 days from LMP). – DC Dutta 8th Ed"),
    sp(4),
    subq("(b) Causes of Preterm Labour"),
    make_table([
        ["Category", "Causes"],
        ["Maternal", "UTI, pyelonephritis, systemic infections, anaemia, uterine anomalies, cervical incompetence, previous PTB, smoking, substance abuse"],
        ["Fetal", "Multiple gestation, fetal anomalies, polyhydramnios"],
        ["Placental", "Placenta praevia, abruption placentae"],
        ["Amniotic", "PPROM, chorioamnionitis, polyhydramnios"],
        ["Idiopathic", "~50% of cases – no identifiable cause"],
    ], col_widths=[4*cm, 12.5*cm]),
    sp(6),
    subq("(c) Management Protocol – 30-Week Primigravida with Threatened Preterm Labour"),
]

story += flowbox([
    "30-WEEK PRIMIGRAVIDA | THREATENED PRETERM LABOUR",
    "            |",
    "CONFIRM DIAGNOSIS",
    "  Gestational age (LMP / early USG) | VE/speculum",
    "  Exclude PPROM (pooling, ferning, nitrazine)",
    "  Cervical length on USG (<25 mm = high risk)",
    "  Fetal fibronectin (fFN) if available",
    "            |",
    "INVESTIGATIONS",
    "  CBC | Urine R/E + C/S | HVS | USG-BPP + fetal weight | CTG",
    "            |",
    "HOSPITALISE + BED REST",
    "            |",
    "TOCOLYSIS (to gain 48 hrs for steroids)",
    "  1st line: Nifedipine 20 mg oral load, then 10-20 mg q4-6h",
    "  OR: Atosiban (oxytocin antagonist) – preferred in DM/cardiac",
    "  OR: Indomethacin (if <32 weeks)",
    "            |",
    "CORTICOSTEROIDS (MANDATORY <34 weeks)",
    "  Betamethasone 12 mg IM – repeat in 24 hours",
    "  (Reduces RDS, IVH, NEC in preterm neonate)",
    "            |",
    "MgSO4 NEUROPROTECTION (if <32 weeks)",
    "  4g IV load --> 1g/hr infusion",
    "  (Reduces cerebral palsy risk)",
    "            |",
    "PROGESTERONE (maintenance / recurrence prevention)",
    "  Vaginal progesterone 200-400 mg/night",
    "  OR 17-OHPC 250 mg IM weekly",
    "            |",
    "ANTIBIOTICS only if PPROM / infection suspected",
    "  Ampicillin + Erythromycin | GBS prophylaxis if GBS+ve",
    "            |",
    "REFER to Level III NICU centre | Neonatologist standby",
], title="Threatened PTL Management Flowchart")

story += [sp(2),
    make_table([
        ["Drug", "Dose", "Purpose"],
        ["Nifedipine", "20 mg load → 10-20 mg q4-6h oral", "Tocolysis (1st line)"],
        ["Betamethasone", "12 mg IM × 2 doses (24h apart)", "Fetal lung maturity"],
        ["MgSO4", "4g IV + 1g/hr infusion", "Neuroprotection (<32 wks)"],
        ["Progesterone (vaginal)", "200 mg/night", "Prevent recurrence"],
        ["Ampicillin", "2g IV q6h", "GBS / infection cover"],
    ], col_widths=[4.5*cm, 6*cm, 6*cm]),
    PageBreak()
]

# ===========================================================
# SHORT ESSAYS
# ===========================================================
story += [head("SHORT ESSAYS  (8 × 5 = 40 Marks)"), sp(4)]

# --- Q3 ---
story += [
    q("Q3. Third Stage of Labour & Active Management (AMTSL)"),
    subq("Definition of Third Stage"),
    note("The third stage of labour is the interval between delivery of the baby and expulsion of the placenta and membranes. Normal duration: 5–15 minutes (up to 30 minutes is acceptable)."),
    sp(2),
    body("Signs of placental separation: Calkin's sign (globular firm uterus) | Sudden gush of blood | Lengthening of cord | Rise of fundal height"),
    sp(4),
    subq("Active Management of Third Stage of Labour (AMTSL) – WHO / FIGO Protocol"),
]

story += flowbox([
    "DELIVERY OF BABY",
    "       |",
    "Exclude second twin",
    "       |",
    "Within 1 MINUTE of delivery:",
    "UTEROTONIC DRUG",
    "  • Oxytocin 10 IU IM   (FIRST CHOICE)",
    "  OR Ergometrine 0.5 mg IM (avoid in HTN)",
    "  OR Misoprostol 600 mcg oral (if no injectables)",
    "       |",
    "CONTROLLED CORD TRACTION (CCT)",
    "  After signs of separation appear",
    "  Stabilise uterus (guarding hand suprapubic)",
    "  Brandt-Andrews manoeuvre",
    "       |",
    "UTERINE MASSAGE",
    "  After placenta is delivered",
    "       |",
    "INSPECT PLACENTA & MEMBRANES (completeness, cord vessels)",
    "       |",
    "CONFIRM UTERUS IS CONTRACTED",
], title="AMTSL Flowchart")

story += [sp(2),
    make_table([
        ["Step", "Action", "Drug/Dose"],
        ["1", "Uterotonic within 1 minute of delivery", "Oxytocin 10 IU IM"],
        ["2", "Controlled cord traction after separation signs", "After uterotonic given"],
        ["3", "Uterine massage after placenta delivered", "Bimanual compression if atony"],
    ], col_widths=[2*cm, 9*cm, 5.5*cm]),
    sp(2),
    body("Benefits: Reduces PPH by 60% | Reduces blood transfusion | Shortens third stage duration"),
    sp(4), hr()
]

# --- Q4 ---
story += [
    q("Q4. Deep Transverse Arrest – Definition and Management"),
    note("Deep Transverse Arrest (DTA): Arrest of the fetal head with the sagittal suture in the transverse diameter of the outlet (station +2 to +3), where the head has descended but failed to rotate to the occipito-anterior position due to inadequate uterine contractions, anthropoid pelvis, or excess pelvic floor resistance."),
    sp(2),
    body("Conditions: Station +2/+3 | Sagittal suture transverse | Anterior fontanelle on one side | Active phase arrested"),
    sp(2),
]

story += flowbox([
    "DIAGNOSIS OF DTA",
    "(VE: sagittal suture transverse, occiput at 3 or 9 o'clock, station +2/+3)",
    "          |",
    "ASSESS: Pelvic adequacy | Uterine contractions | CTG | Catheterise",
    "          |",
    "          +--Adequate contractions?",
    "         YES                NO",
    "          |                  |",
    "    Attempt rotation    Augment with Oxytocin",
    "          |                  |",
    "          +------------------+",
    "          |",
    "ROTATION OF HEAD",
    "  Manual rotation (fingers) --> OA --> Forceps/Ventouse delivery",
    "  OR Kielland's rotational forceps (rotate + deliver)",
    "  OR Ventouse (rotation + traction)",
    "          |",
    "IF ROTATION FAILS / CPD / FETAL DISTRESS",
    "          |",
    "   EMERGENCY CAESAREAN SECTION",
], title="DTA Management Flowchart")

story += [sp(2),
    make_table([
        ["Method", "Condition", "Instrument"],
        ["Manual rotation + forceps", "No CPD, adequate pelvis", "Wrigley's / Neville Barnes"],
        ["Kielland's forceps", "Rotation needed", "Rotational forceps"],
        ["Ventouse", "Rotation + traction needed", "Silastic / metal cup"],
        ["Emergency LSCS", "CPD / failed rotation / fetal distress", "—"],
    ], col_widths=[5*cm, 6*cm, 5.5*cm]),
    sp(4), hr()
]

# --- Q5 ---
story += [
    q("Q5. Screening of Diabetes in Antenatal Patients"),
]

story += flowbox([
    "ALL PREGNANT WOMEN",
    "         |",
    "FIRST ANC VISIT (ANY GESTATION)",
    "Screen for Pre-gestational DM:",
    "  FPG >=126 mg/dL  OR  RBG >=200 mg/dL  OR  HbA1c >=6.5% = Overt DM",
    "         |",
    "If NORMAL at first visit:",
    "         |",
    "RESCREEN AT 24-28 WEEKS",
    "         |",
    "2-STEP APPROACH (ACOG):",
    "Step 1: 50g GCT (non-fasting, 1-hour plasma glucose)",
    "        >=140 mg/dL --> Proceed to Step 2",
    "         |",
    "Step 2: 100g OGTT (fasting, 3-hour)",
    "        Carpenter-Coustan thresholds:",
    "        Fasting >=95 | 1hr >=180 | 2hr >=155 | 3hr >=140 (mg/dL)",
    "        >=2 abnormal values = GDM",
    "         |",
    "OR DIPSI (India – single step, non-fasting):",
    "        75g oral glucose, 2-hour plasma glucose >=140 mg/dL = GDM",
], title="GDM Screening Flowchart")

story += [sp(2),
    make_table([
        ["Test", "When", "Threshold", "Diagnosis"],
        ["FPG", "1st ANC visit", "≥126 mg/dL", "Overt DM"],
        ["HbA1c", "1st ANC visit", "≥6.5%", "Overt DM"],
        ["50g GCT (1hr)", "24-28 weeks", "≥140 mg/dL", "Proceed to OGTT"],
        ["100g OGTT", "24-28 weeks", "≥2 abnormal values", "GDM"],
        ["DIPSI 75g (2hr)", "24-28 weeks (India)", "≥140 mg/dL", "GDM"],
    ], col_widths=[4*cm, 3.5*cm, 4.5*cm, 4.5*cm]),
    sp(4), hr()
]

# --- Q6 ---
story += [
    q("Q6. Causes and Management of Rupture Uterus"),
    make_table([
        ["Category", "Causes"],
        ["Obstructed labour", "CPD, malpresentation, macrosomia (most common – developing world)"],
        ["Scarred uterus", "Previous LSCS (most common – developed world), myomectomy, hysterotomy"],
        ["Traumatic", "Injudicious oxytocin use, difficult forceps, internal podalic version"],
        ["Spontaneous", "Grand multipara, placenta percreta, cornual pregnancy"],
        ["Pathological", "Uterine anomaly"],
    ], col_widths=[4.5*cm, 12*cm]),
    sp(4),
]

story += flowbox([
    "SUSPECTED RUPTURE UTERUS",
    "(Sudden severe abdominal pain, cessation of contractions,",
    "fetal parts palpable abdominally, FHR absent, haemorrhagic shock)",
    "          |",
    "IMMEDIATE RESUSCITATION",
    "  2 large-bore IV cannulae | Blood + fluids rapidly (NS/RL)",
    "  Blood grouping + X-match | Foley's catheter | O2 mask",
    "          |",
    "EMERGENCY LAPAROTOMY (Do NOT delay)",
    "          |",
    "     +----+----+----+",
    "     |         |         |",
    "Clean tear  Extensive  Uterine preservation",
    "(simple)    tear       not possible",
    "     |         |         |",
    "Primary    Repair +   Hysterectomy",
    "repair     uterine    (subtotal or total)",
    "           artery",
    "           ligation",
    "          |",
    "POST-OP: ICU | Broad-spectrum antibiotics | Blood transfusion | DIC management",
], title="Rupture Uterus Management Flowchart")

story += [sp(2),
    make_table([
        ["Surgical Option", "Indication"],
        ["Primary repair + tubal ligation", "Young, family complete, clean tear, stable"],
        ["Repair alone", "Young, wants more children, clean tear"],
        ["Subtotal hysterectomy", "Extensive tear, poor general condition"],
        ["Total hysterectomy", "Cervical/lower uterine segment involvement"],
    ], col_widths=[6.5*cm, 10*cm]),
    sp(4), hr()
]

# --- Q7 ---
story += [
    q("Q7. Caesarean Section – Definition, Indications and Complications"),
    note("Caesarean section (CS): Delivery of a viable fetus through incisions in the abdomen (laparotomy) and uterus (hysterotomy), when vaginal delivery is contraindicated or hazardous. Lower Segment CS (LSCS) is the standard operation."),
    sp(2),
    make_table([
        ["Absolute Indications", "Relative Indications"],
        ["Bony CPD", "Soft tissue dystocia"],
        ["Major placenta praevia", "Previous LSCS ×2 or more"],
        ["Cord prolapse (live fetus)", "Breech (term, primigravida)"],
        ["Transverse lie (neglected)", "Fetal distress (CTG)"],
        ["Active genital herpes", "Elderly primigravida"],
        ["Failed VBAC", "IUGR with BPP <4"],
        ["Eclampsia – unfavourable cervix", "Precious pregnancy"],
    ], col_widths=[8.25*cm, 8.25*cm]),
    sp(4),
    make_table([
        ["Intraoperative Complications", "Postoperative Complications", "Long-term Complications"],
        ["Haemorrhage", "PPH, anaemia", "Scar dehiscence / rupture"],
        ["Bladder injury", "Wound infection / breakdown", "Placenta accreta spectrum"],
        ["Ureteric injury", "Endometritis", "Adhesions, bowel obstruction"],
        ["Anaesthetic complications", "DVT / Pulmonary embolism", "Scar ectopic pregnancy"],
        ["Extension of uterine incision", "Paralytic ileus", "↑ Morbidity in future pregnancies"],
    ], col_widths=[5.5*cm, 5.5*cm, 5.5*cm]),
    sp(4), hr()
]

# --- Q8 ---
story += [
    q("Q8. Hormonal Contraceptive Methods and Contraindications"),
]

story += flowbox([
    "HORMONAL CONTRACEPTIVES",
    "          |",
    "    +-----+------------------+",
    "Combined (Estrogen+Prog)   Progestin-only",
    "    |                           |",
    "  COCP (daily oral)      +------+--------+-------+",
    "  Patch (weekly)       Mini pill  Injectables  Implants",
    "  Vaginal ring          (POP)     (DMPA 3-mthly) (Implanon",
    "  Emergency (72h)                              3-5 yrs)",
], title="Classification Flowchart")

story += [sp(2),
    make_table([
        ["Method", "Composition", "Duration", "Efficacy"],
        ["COCP", "EE 20-35 mcg + progestin", "Daily oral", ">99%"],
        ["Progestin-only pill (POP)", "Levonorgestrel / norethisterone", "Daily oral", "97-99%"],
        ["DMPA (Depo-Provera)", "Medroxyprogesterone 150 mg", "3-monthly IM", ">99%"],
        ["Implanon", "Etonogestrel subdermal rod", "3-5 years", ">99%"],
        ["Emergency (i-pill)", "Levonorgestrel 1.5 mg", "Within 72h", "75-85%"],
    ], col_widths=[4.5*cm, 5.5*cm, 3.5*cm, 3*cm]),
    sp(4),
    make_table([
        ["Absolute Contraindications (WHO MEC 4)", "Relative Contraindications (WHO MEC 3)"],
        ["Breastfeeding <6 weeks postpartum", "Breastfeeding 6 weeks – 6 months"],
        ["Smoker ≥35 yrs + >15 cigarettes/day", "Smoking, age <35 yrs"],
        ["Hypertension ≥160/100 mmHg", "Hypertension 140-159/90-99 mmHg"],
        ["Venous thromboembolism (current/past)", "Migraine without aura (<35 yrs)"],
        ["Ischaemic heart disease / Stroke / CVA", "Diabetes with vascular disease"],
        ["Migraine with aura (any age)", "Gallbladder disease / hepatitis"],
        ["Diabetes >20 years / vascular disease", "BMI >40 kg/m²"],
        ["Active breast cancer", "Long-term immobilisation"],
        ["Liver cirrhosis / hepatoma", ""],
    ], col_widths=[8.25*cm, 8.25*cm]),
    sp(4), hr()
]

# --- Q9 ---
story += [
    q("Q9. Normal Puerperium, Four Complications and Management"),
    note("Puerperium: Period following childbirth during which body tissues, especially pelvic organs, revert to pre-pregnant state. Lasts 6 weeks (42 days) after delivery. – DC Dutta"),
    sp(2),
    make_table([
        ["System", "Normal Change", "Timeline"],
        ["Uterus (Involution)", "Decreases 1 cm/day; 1 kg → 60 g", "Returns to pelvis by 2 weeks"],
        ["Lochia", "Rubra (1-4d) → Serosa (4-8d) → Alba (8-14d)", "Stops by 6 weeks"],
        ["Cervix", "Reforms to parous os", "1 week"],
        ["Breasts", "Engorgement day 3-4, then lactation", "Ongoing"],
        ["Menstruation", "Returns ~6-8 wks (if not breastfeeding)", "Variable"],
        ["Cardiovascular", "↑CO persists 2 weeks, then normalises", "6 weeks"],
    ], col_widths=[4*cm, 8*cm, 4.5*cm]),
    sp(4),
    subq("Four Complications of Puerperium:"),
    body("1. Puerperal pyrexia / Sepsis   2. Secondary PPH   3. DVT / Pulmonary embolism   4. Puerperal psychosis / Postnatal depression"),
    sp(2),
    subq("Management of Puerperal Sepsis (Detailed):"),
]

story += flowbox([
    "PUERPERAL PYREXIA",
    "(Fever >=38 degrees C on 2 occasions >24 hrs after first 24 hrs post-delivery)",
    "          |",
    "FIND THE SOURCE",
    "  Uterus (Endometritis) – most common",
    "  UTI | Breast (Mastitis) | Wound infection",
    "  Legs (DVT) | Lungs (aspiration pneumonia)",
    "          |",
    "INVESTIGATIONS",
    "  CBC | Blood C/S | Urine C/S | HVS | Wound swab | CXR",
    "          |",
    "TREATMENT",
    "  IV Ampicillin + Gentamicin + Metronidazole (triple therapy)",
    "  OR Piperacillin-Tazobactam",
    "  Antipyretics | IV fluids | Uterine curettage if retained products",
], title="Puerperal Sepsis Management")

story += [sp(4), hr()]

# --- Q10 ---
story += [
    q("Q10. Haemorrhage in Early Pregnancy & Management of Ruptured Tubal Ectopic"),
    make_table([
        ["Cause", "Key Clinical Feature"],
        ["Threatened abortion", "Closed os, mild bleeding, viable fetus on USG"],
        ["Inevitable abortion", "Open os, products at os"],
        ["Incomplete abortion", "Partial expulsion, open os, continued bleeding"],
        ["Complete abortion", "Products expelled, closed os"],
        ["Missed abortion", "Fetal death without expulsion, no heartbeat on USG"],
        ["Ectopic pregnancy", "Adnexal mass, severe pelvic pain, +ve UPT, hCG elevated"],
        ["Hydatidiform mole", "Snow-storm USG, very high hCG, no fetal parts"],
        ["Cervical polyp / erosion", "Local cause, contact bleeding"],
        ["Implantation bleeding", "Early pregnancy, spotting only"],
    ], col_widths=[5.5*cm, 11*cm]),
    sp(4),
    subq("Management of Ruptured Tubal Ectopic Pregnancy:"),
]

story += flowbox([
    "RUPTURED ECTOPIC PREGNANCY",
    "(Sudden severe lower abdominal pain, referred shoulder tip pain,",
    "vaginal bleeding, haemorrhagic shock, tender adnexal mass, +ve UPT)",
    "          |",
    "IMMEDIATE RESUSCITATION",
    "  2 IV lines | Rapid IV fluids (NS/RL) | O2 mask",
    "  Blood grouping + X-match | 4-6 units RBCs arranged | Foley's",
    "          |",
    "EMERGENCY LAPAROTOMY",
    "(Do NOT delay for USG if haemodynamically unstable)",
    "USG only if stable – confirms haemoperitoneum + adnexal mass",
    "          |",
    "    +------+--------+",
    "    |                |",
    "Salpingectomy   Salpingostomy",
    "(Remove tube –  (Open tube, remove",
    "PREFERRED in    ectopic, preserve",
    "ruptured cases) tube – for other",
    "                tube damaged cases)",
    "          |",
    "AUTOTRANSFUSION if haemoperitoneum uncontaminated",
    "          |",
    "POST-OP: Anti-D if Rh-ve | Monitor hCG to zero | Counsel for future pregnancy",
], title="Ruptured Ectopic Management Flowchart")

story += [sp(4), PageBreak()]

# ===========================================================
# SHORT ANSWERS
# ===========================================================
story += [head("SHORT ANSWERS  (10 × 3 = 30 Marks)"), sp(4)]

# Q11
story += [
    q("Q11. Three Tests for Fetal Wellbeing"),
    make_table([
        ["Test", "Parameter Assessed", "Normal Criteria"],
        ["Non-Stress Test (NST)", "FHR accelerations with fetal movement", "Reactive: ≥2 accels ≥15 bpm × 15 sec in 20 min"],
        ["Biophysical Profile (BPP)", "5 parameters (FBM, FM, tone, AFI, NST)", "Score ≥8/10 = normal"],
        ["Doppler Velocimetry", "Umbilical artery S/D ratio, RI, PI", "Absent/reversed EDF = severe compromise"],
    ], col_widths=[4.5*cm, 6*cm, 6*cm]),
    sp(4), hr()
]

# Q12
story += [
    q("Q12. Pelvic Assessment"),
    make_table([
        ["Diameter", "Normal Value", "How Assessed"],
        ["Diagonal conjugate", ">12.5 cm", "Vaginal examination (clinically measurable)"],
        ["Obstetric conjugate", ">10 cm", "DC minus 1.5 cm"],
        ["Transverse diameter of outlet", ">8 cm", "Bituberous diameter (fist method)"],
        ["Subpubic angle", ">90°", "Clinically – fingerbreadths"],
        ["AP of outlet", ">9.5 cm", "Sacral tip to lower symphysis"],
    ], col_widths=[5.5*cm, 3.5*cm, 7.5*cm]),
    sp(2),
    make_table([
        ["Pelvic Type", "Shape", "Frequency", "Obstetric Outcome"],
        ["Gynaecoid", "Round", "50%", "Best for vaginal delivery"],
        ["Android", "Heart-shaped", "20%", "Poor – CS likely"],
        ["Anthropoid", "Oval (AP > T)", "25%", "DTA common"],
        ["Platypelloid", "Flat (T > AP)", "5%", "Poor – CS likely"],
    ], col_widths=[3.5*cm, 4*cm, 3*cm, 6*cm]),
    sp(4), hr()
]

# Q13
story += [
    q("Q13. Late Decelerations"),
    note("Late decelerations: Uniform, repetitive decreases in FHR that BEGIN after the PEAK of the uterine contraction and RETURN to baseline after the contraction ends (offset >30 sec after contraction peak). Sign of uteroplacental insufficiency."),
    sp(2),
]

story += flowbox([
    "Uterine contraction",
    "       |",
    "Compression of placental vessels",
    "       |",
    "Reduced intervillous blood flow",
    "       |",
    "Transient fetal hypoxia",
    "       |",
    "Chemoreceptor stimulation",
    "       |",
    "Vagal reflex --> FHR deceleration",
    "(If severe: direct myocardial depression due to acidosis)",
], title="Mechanism of Late Decelerations")

story += [sp(2),
    body("Management: Left lateral position | O2 mask | Stop oxytocin | Correct hypotension (IV fluids, ephedrine) | If persistent → emergency delivery"),
    sp(4), hr()
]

# Q14
story += [
    q("Q14. Safe Motherhood and Significance"),
    note("Safe Motherhood: International initiative launched in Nairobi, 1987, aimed at reducing maternal morbidity and mortality worldwide by ensuring all women have access to information and services to be safe before, during, and after childbirth."),
    sp(2),
    make_table([
        ["Pillar", "Components"],
        ["Family planning", "Prevent unwanted pregnancies, spacing"],
        ["Antenatal care", "Early registration, risk screening, iron/folate"],
        ["Clean/safe delivery", "Skilled birth attendant, clean delivery kit"],
        ["Essential obstetric care", "Emergency obstetric services (EOC)"],
        ["Postnatal care", "Mother and newborn care, breastfeeding support"],
    ], col_widths=[5*cm, 11.5*cm]),
    sp(2),
    body("Significance: India MMR reduced from 254 (2004-06) to ~97/100,000 live births (2018-20). SDG Target: MMR <70/100,000 by 2030. The 3 Delays Model (decision, transport, treatment) is addressed by safe motherhood pillars."),
    sp(4), hr()
]

# Q15
story += [
    q("Q15. Components of Biophysical Profile (BPP)"),
    body("Manning's BPP – 5 parameters, each scored 0 or 2:"),
    sp(2),
    make_table([
        ["Parameter", "Normal (Score = 2)", "Abnormal (Score = 0)"],
        ["Fetal Breathing Movements", "≥1 episode ≥30 sec in 30 min", "Absent or <30 sec"],
        ["Fetal Movements", "≥3 discrete body/limb movements in 30 min", "<3 movements"],
        ["Fetal Tone", "≥1 flexion/extension of limb or trunk", "Absent / slow return"],
        ["Amniotic Fluid Index", "≥1 pocket >2 cm (or AFI ≥5 cm)", "No pocket / <2 cm"],
        ["Non-Stress Test (NST)", "Reactive (≥2 accelerations)", "Non-reactive"],
    ], col_widths=[4.5*cm, 6.5*cm, 5.5*cm]),
    sp(2),
    make_table([
        ["Score", "Interpretation", "Action"],
        ["8-10", "Normal", "Repeat in 1 week (2×/week if IUGR)"],
        ["6", "Equivocal", "Repeat in 24 hrs; consider delivery if ≥36 wks"],
        ["4", "Suspected compromise", "Deliver if ≥32 wks"],
        ["0-2", "Fetal compromise", "Immediate delivery"],
    ], col_widths=[2.5*cm, 6*cm, 8*cm]),
    sp(4), hr()
]

# Q16
story += [
    q("Q16. Antihypertensive Drugs Used in Pregnancy"),
    make_table([
        ["Drug", "Dose", "Route", "Indication"],
        ["Methyldopa", "250-500 mg TDS-QID", "Oral", "First line – chronic/mild-moderate HTN"],
        ["Labetalol (oral)", "100-400 mg BD/TDS", "Oral", "Maintenance in HTN"],
        ["Nifedipine (long-acting)", "30-60 mg OD", "Oral", "Safe in all trimesters"],
        ["Labetalol (IV)", "20-80 mg IV bolus", "IV", "Acute hypertensive crisis"],
        ["Hydralazine", "5-10 mg IV bolus", "IV", "Acute hypertensive crisis"],
        ["Nifedipine (short-acting)", "10 mg", "Oral / SL", "Acute BP control"],
    ], col_widths=[4*cm, 4*cm, 2.5*cm, 6*cm]),
    sp(2),
    note("CONTRAINDICATED in Pregnancy: ACE inhibitors (fetal renal agenesis) | ARBs (fetal death) | Atenolol (IUGR) | Nitroprusside (cyanide toxicity)"),
    sp(4), hr()
]

# Q17
story += [
    q("Q17. Baby Friendly Hospital Initiative (BFHI)"),
    note("BFHI was launched by WHO and UNICEF in 1991 to protect, promote, and support breastfeeding by encouraging maternity facilities to implement the Ten Steps to Successful Breastfeeding."),
    sp(2),
    make_table([
        ["Step", "Action"],
        ["1", "Written breastfeeding policy communicated to all health staff"],
        ["2", "Train all health staff in skills to implement breastfeeding policy"],
        ["3", "Inform all pregnant women about benefits and management of breastfeeding"],
        ["4", "Help mothers initiate breastfeeding within 1 HOUR of birth"],
        ["5", "Show mothers how to breastfeed and maintain lactation"],
        ["6", "Give newborns NO food or drink other than breast milk (unless medically indicated)"],
        ["7", "Practice ROOMING-IN (mother and infant together 24 hrs/day)"],
        ["8", "Encourage breastfeeding ON DEMAND"],
        ["9", "Give NO artificial teats or pacifiers to breastfeeding infants"],
        ["10", "Foster establishment of breastfeeding support groups"],
    ], col_widths=[1.5*cm, 15*cm]),
    sp(4), hr()
]

# Q18
story += [
    q("Q18. Causes of Unengaged Head in Primigravida at Term"),
    body("In a primigravida, the head normally engages by 36-38 weeks. Non-engagement at term requires investigation to exclude CPD."),
    sp(2),
    make_table([
        ["Category", "Cause"],
        ["Mechanical (most important)", "CPD (cephalo-pelvic disproportion) – must always be excluded"],
        ["Malpresentation", "Face presentation, brow presentation, deflexed head"],
        ["Placental", "Placenta praevia (head pushed up by low-lying placenta)"],
        ["Uterine / Pelvic masses", "Fibroids (lower segment), ovarian cyst in pelvis"],
        ["Fetal", "Hydrocephaly"],
        ["Fluid", "Polyhydramnios (head floating)"],
        ["Others", "Full bladder/bowel, pelvic kidney"],
    ], col_widths=[5*cm, 11.5*cm]),
    sp(2),
    note("Mnemonic: P-MUFFED: Placenta praevia | Malpresentation | Uterine fibroid | Fetal anomaly | Full bladder | Engagement truly happened (missed) | Disproportion (CPD)"),
    sp(4), hr()
]

# Q19
story += [
    q("Q19. Tetanus Immunization in Pregnancy"),
    make_table([
        ["Schedule", "Dose", "When Given"],
        ["TT-1 (or Td-1)", "0.5 mL IM", "At first ANC contact (as early as possible)"],
        ["TT-2 (or Td-2)", "0.5 mL IM", "4 weeks after TT-1"],
        ["TT-Booster", "0.5 mL IM", "If immunised in last 3 years – single booster"],
    ], col_widths=[4.5*cm, 3*cm, 9*cm]),
    sp(2),
    body("Current Schedule (India): Td vaccine (Tetanus + Diphtheria) replaces standalone TT. If 2 previous doses received in a prior pregnancy, give 1 booster dose only."),
    sp(2),
    note("Protection: Prevents maternal tetanus + Neonatal tetanus (passive IgG transfer across placenta). WHO Target: Eliminate maternal and neonatal tetanus (<1 case/1000 live births per district)."),
    sp(4), hr()
]

# Q20
story += [
    q("Q20. Uses of Magnesium Sulphate in Obstetrics"),
    make_table([
        ["Use", "Regimen", "Evidence / Notes"],
        ["Eclampsia (anticonvulsant)", "Pritchard: 4g IV + 10g IM load; 5g IM q4h", "DRUG OF CHOICE – Magpie Trial"],
        ["Severe PE prophylaxis", "4g IV load → 1g/hr infusion × 24h", "Prevents eclamptic seizures"],
        ["Neuroprotection (<32 wks)", "4g IV load → 1g/hr infusion", "Reduces cerebral palsy in preterm"],
        ["Tocolysis (historical)", "Was used; now replaced by Ca-channel blockers", "No longer preferred"],
    ], col_widths=[4.5*cm, 6.5*cm, 5.5*cm]),
    sp(2),
    note("Monitoring for toxicity (check before each maintenance dose): Urine output >25-30 mL/hr | Respiratory rate >16/min | Patellar reflexes PRESENT. Antidote: Calcium gluconate 1g IV slowly over 10 min."),
    sp(2),
    body("Mechanism: MgSO4 blocks NMDA receptors, inhibits calcium entry into neurons, reduces cerebrovascular spasm, and prevents seizure propagation."),
    sp(4), PageBreak()
]

# ===========================================================
# MCQ
# ===========================================================
story += [
    head("MCQ  (10 × 1 = 10 Marks)"),
    sp(4),
    q("Q21(i). In a multipara, the most common cause of postpartum haemorrhage is:"),
    body("A. Retained placenta     B. Uterine perforation     C. Uterine atonicity     D. Fibroid in uterus"),
    sp(4),
]

story += [
    make_table([
        ["Option", "Answer", "Explanation"],
        ["C", "✓ CORRECT: Uterine atonicity", "Uterine atony accounts for ~70-80% of all PPH cases. In multiparas, the uterine muscle is more prone to atony due to repeated overdistension from prior pregnancies. It is the most common cause of PPH in all parities. (DC Dutta 8th Ed)"],
    ], col_widths=[2*cm, 4.5*cm, 10*cm]),
    sp(6),
    HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a237e'), spaceAfter=8),
    Paragraph("References", ParagraphStyle('ref_hdr', fontName='Helvetica-Bold', fontSize=10,
        textColor=colors.HexColor('#1a237e'), spaceBefore=4, spaceAfter=4)),
    body("1. DC Dutta's Textbook of Obstetrics, 8th/9th Edition – Hiralal Konar"),
    body("2. Creasy & Resnik's Maternal-Fetal Medicine: Principles and Practice"),
    body("3. Berek & Novak's Gynecology, 16th Edition"),
    body("4. Fernando Arias – Practical Guide to High-Risk Pregnancy and Delivery"),
    body("5. ACOG Practice Bulletins (Preeclampsia, Preterm Labour, GDM)"),
    body("6. WHO Safe Motherhood Guidelines | National Health Mission, India"),
    body("7. FIGO / ICM Guidelines for Active Management of Third Stage"),
]

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

cd /tmp/workspace/obg-rguhs && python3 generate_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/obg-rguhs/RGUHS_OBG_Paper1_Answers.pdf

Your PDF is ready! Here's the download link:

RGUHS OBG Paper1 Answers

PDF Document · PDF

What's included in the PDF (41 KB, professionally formatted):
SectionContent
Cover pageExam title, paper code, date, section-wise marks table
Long Essays (Q1-Q2)Eclampsia classification + pathophysiology flowcharts, Preterm labour management flowchart, Drug tables
Short Essays (Q3-Q10)AMTSL flowchart, DTA management, GDM screening (DIPSI/ACOG), Rupture uterus, CS indications/complications, Hormonal contraceptives, Puerperium, Ectopic
Short Answers (Q11-Q20)BPP scoring table, Pelvic types, Late deceleration mechanism, BFHI Ten Steps, TT schedule, MgSO4 uses
MCQQ21(i) with answer + explanation
ReferencesDC Dutta 8th/9th Ed, Creasy & Resnik, ACOG, WHO
  • All flowcharts are rendered in green monospaced style
  • All tables have colored headers with zebra-striped rows
  • Designed for A4 print/screen reading
This is a shared conversation. Sign in to Orris to start your own chat.