Give me the detailed per op post op And during labour for normal delivery and lscs. What drugs and methods done and given at what interval

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Searching the Web

pre-op intra-op post-op management normal vaginal delivery LSCS drugs protocols obstetrics

Reading File
Reading File
Reading Web Page

https://www.ajog.org/article/S0002-9378(25)00121-8/fulltext

I now have enough information to compile a comprehensive, detailed answer. Let me provide this structured clinical guide.

Pre-op, Intra-op & Post-op Management: Normal Vaginal Delivery vs LSCS (Caesarean Section)


PART 1 — NORMAL VAGINAL DELIVERY (NVD)

A. PRE-LABOUR / ADMISSION

StepAction / DrugDose & Interval
AssessmentFull obstetric exam, vitals, CTGOn admission
IV access18G cannula, IV fluids (Ringer's lactate / NS)Maintain throughout
Blood investigationsCBC, blood group & crossmatch, coagulationOnce on admission
NPO / light dietClear fluids allowed; light meal ≤6 hrs before potential interventionOngoing
Enema (selective)Soap water enemaOnly if constipated / early labour
AntacidTab Ranitidine 150 mg PO OR Sodium citrate 30 mL POAt admission; repeat sodium citrate if prolonged labour (every 2 hrs if LSCS risk)
Perineal prepShaving / clipping of perineal hairOnce
BladderEncourage voiding every 2 hoursDuring active labour

B. DURING LABOUR (Intrapartum)

FIRST STAGE

Drug / MethodDoseRouteIndication / Interval
IV fluidsRL or DNS 125 mL/hrIVContinuous; NPO in active labour
PartographCervical dilation plotted every 2-4 hrs-Monitor progress
CTG / Fetal monitoringIntermittent auscultation every 15 min (1st stage active)-Mandatory
Pain relief options:
- Epidural analgesiaBupivacaine 0.1% + Fentanyl 2 mcg/mLEpidural infusionGold standard; top-up on request
- Pethidine (Meperidine)50-100 mg IMIMEvery 3-4 hrs; avoid if delivery <4 hrs away
- Pentazocine30 mg IMIMEvery 3-4 hrs
- Promethazine (anti-emetic)25 mg IMIMWith opioids to reduce nausea
- Entonox (N₂O + O₂ 50:50)InhalationInhaledSelf-administered during contractions
Cervical ripening (if induction needed):
- Misoprostol25 mcg PVPVEvery 4-6 hrs (max 6 doses)
- Dinoprostone gel0.5 mg intracervical OR 1-2 mg PVPVEvery 6 hrs (max 3 doses in 24 hrs)
- Dinoprostone pessary10 mgPVSingle dose; removes at onset of active labour
- Mechanical (Foley catheter)30-60 mL balloonTranscervicalInsert; remove when cervix ≥3 cm
Oxytocin augmentationStart 2-4 mIU/min IV infusionIVIncrease by 2 mIU/min every 15-30 min; max 20-40 mIU/min

SECOND STAGE

StepDetail
PositioningLithotomy (dorsal / lateral Sims)
CTGContinuous; auscultate every 5 min
PushingCoached / physiological; max 2 hrs nullipara, 1 hr multipara
EpisiotomyMediolateral; infiltrate with Lignocaine 1% 5-10 mL before cut
Instrumental (if needed)Forceps or ventouse under pudendal block / perineal infiltration

THIRD STAGE - ACTIVE MANAGEMENT (AMTSL) ★

This is the most drug-heavy part of vaginal delivery:
DrugDoseRouteTiming
Oxytocin (1st line)10 IU IM OR 5 IU slow IV bolusIM / IVWithin 1 minute of baby's birth (before placenta delivers)
OR Carbetocin (preferred if available)100 mcgIM / IV (slow)Single dose at delivery of anterior shoulder
Controlled cord traction (CCT)-Brandt-Andrews techniqueAfter uterine firmness confirmed
Uterine massage-BimanualAfter placental delivery to maintain tone
Misoprostol (if oxytocin unavailable)600 mcg PO OR 400-600 mcg SLPO/SLSingle dose at birth of baby
PPH treatment if uterine atony develops:
DrugDoseRouteNote
Oxytocin infusion20-40 IU in 500 mL RL over 4 hrsIVContinue after IM oxytocin
Ergometrine (Methylergometrine)0.2 mgIM / Slow IVAvoid in hypertension; q2h PRN (max 5 doses)
Carboprost (Hemabate)250 mcg IMIMEvery 15-90 min; max 8 doses; avoid asthma
Tranexamic acid1g IV over 10 minIVWithin 3 hrs of bleeding onset; repeat 1g if bleeding continues after 30 min
Misoprostol800 mcg sublingual OR 1000 mcg rectalSL/PRIf other uterotonics fail

C. POST-DELIVERY (NVD)

StepDrug / ActionDoseInterval
Perineal repairLignocaine 1% infiltration + repair episiotomyLocal infiltrationOnce
Uterine fundus palpationConfirm firm & contracted-Every 15 min × 1 hr, then every 30 min × 2 hrs
Vitals monitoringBP, PR, SpO₂, lochia-Every 15 min for first 1 hr
IV fluidsRL 500 mLIVOver 4-6 hrs; then oral hydration
AnalgesiaTab Ibuprofen 400 mg PO + Tab Paracetamol 1g POPOEvery 6-8 hrs PRN
AntibioticsTab Amoxicillin-Clavulanic acid 625 mg PO (if episiotomy / repair)POEvery 8 hrs × 5 days
Iron supplementationTab Ferrous sulfate 200 mg + Folic acid 5 mgPOOnce daily × 3 months
Breastfeeding initiationSkin-to-skin; latch within 30-60 min-Immediately post-delivery
CatheterNot routinely needed; remove if inserted--
Rh immunoglobulin300 mcg Anti-D IM (if Rh-negative mother & Rh-positive baby)IMWithin 72 hrs of delivery

PART 2 — LOWER SEGMENT CAESAREAN SECTION (LSCS)

A. PRE-OPERATIVE (LSCS)

NIGHT BEFORE / DAY BEFORE

Drug / ActionDoseRouteTiming
Nil per mouth (NPO)Clear fluids allowed up to 2 hrs pre-op; light meal ≤6 hrs; regular meal ≤8 hrs-Per schedule
Carbohydrate loadingClear carbohydrate drink 200 mL (non-diabetic only)PO2 hrs before surgery
Tab Ranitidine150 mgPONight before AND morning of surgery
Tab Metoclopramide10 mgPO1-2 hrs before surgery
Sodium citrate30 mLPOWithin 30 min before induction
Blood investigationsCBC, RFT, LFT, coagulation, blood group & crossmatch, ECG-Night before / on admission
IV access16-18G wide bore cannula-Pre-op
IV fluids pre-loadRL 500-1000 mL (for spinal anesthesia)IV20-30 min before spinal block
Skin preparationChlorhexidine-gluconate 2% / Betadine scrub (abdomen)-In holding area / OT
Vaginal preparationChlorhexidine 0.4% OR Povidone iodine solutionPVJust before draping (especially emergency/PROM cases)
Foley catheter14-16 FrUrethralInserted in OT after spinal
ShavingSuprapubic area-Pre-op

ANESTHESIA (Standard for Elective LSCS)

TypeDrugsDose
Spinal (preferred)Hyperbaric Bupivacaine 0.5% + Fentanyl 10-25 mcg ± Morphine 100-200 mcg1.6-2.2 mL intrathecal
Epidural (labour analgesia conversion)Bupivacaine 0.5% + FentanylTop-up via epidural catheter
General anesthesia (if spinal CI)Thiopentone 4-5 mg/kg IV + Suxamethonium 1-1.5 mg/kg IV (RSI) → maintenance: Isoflurane + N₂ORapid sequence induction (RSI)
Vasopressor (prevent spinal hypotension)Phenylephrine 50-100 mcg IV boluses OR Ephedrine 5-10 mg IVIV
Pre-induction O₂100% FiO₂ via face maskInhaled

ANTIBIOTIC PROPHYLAXIS (Pre-op)

DrugDoseTiming
Cefazolin 1st line2g IV (3g if BMI >35)30-60 min BEFORE skin incision
Penicillin allergy: Clindamycin900 mg IV30-60 min before incision
+ Gentamicin5 mg/kg IVWith clindamycin
If chorioamnionitis: Broad-spectrumPiperacillin-Tazobactam OR Gentamicin + ClindamycinContinue postoperatively until afebrile 24-48 hrs

B. INTRA-OPERATIVE (LSCS)

Drug / MeasureDoseRouteTiming
IV fluidsRL / NS 500-1000 mLIVContinue throughout surgery
Oxytocin (uterotonic)5 IU slow IV (over 1-2 min) OR 10 IU IMIV / IMImmediately after delivery of baby
Oxytocin infusion20-40 IU in 500 mL RLIVOver 4 hrs intraoperatively & postoperatively
OR Carbetocin100 mcg IV (single dose)IVAfter delivery - preferred in high-risk PPH
Anti-emeticOndansetron 4-8 mg IV + Dexamethasone 4-8 mg IVIVBefore / at delivery
Ergometrine (if atony)0.2 mg slow IVIVAfter oxytocin failure
Carboprost (if atony)250 mcg IMIMEvery 15-90 min; max 8 doses
Tranexamic acid1g IV over 10 minIVAt skin incision OR immediately on diagnosis of PPH; repeat at 30 min if bleeding
Temperature managementWarmed IV fluids + forced air warming blanket-Throughout procedure
Intraoperative analgesia (if GA)Fentanyl 1-2 mcg/kgIVTitrate
Intraoperative antibiotic redosingCefazolin 2g IVIVIf surgery >4 hrs OR blood loss >1500 mL

C. POST-OPERATIVE (LSCS)

RECOVERY ROOM (first 1-2 hrs)

MonitoringInterval
BP, PR, SpO₂, RREvery 15 min for first hour
Urine output (via Foley)Every 1 hr (target >30 mL/hr)
Fundal height & lochiaEvery 15-30 min
WoundCheck for bleeding / dehiscence

DRUGS & FLUIDS POST-LSCS

DrugDoseRouteInterval / Duration
IV fluidsRL 500 mL, then shift to oral as toleratedIVContinue until eating well (usually 4-6 hrs)
Oxytocin infusion20 IU in 500 mL RLIVContinue for 4-8 hrs post-delivery
Analgesia (multimodal):
- Intrathecal morphine (if spinal given)100-200 mcgIntrathecalSingle dose; provides 18-24 hrs analgesia
- Paracetamol (Acetaminophen)1g IV/POIV then POEvery 6 hrs (scheduled)
- NSAID: Ibuprofen / Diclofenac400 mg PO / Diclofenac 75 mg IMPO / IMEvery 8 hrs; start after surgery
- Ketorolac15-30 mg IVIVAt end of surgery; then every 6-8 hrs × 24 hrs
- Tramadol50-100 mg IV/POIV/POEvery 6-8 hrs PRN
- Opioid (if spinal morphine not given)Morphine 2-5 mg IV PRN / PCAIVTitrate
Anti-emetics
- Ondansetron4 mg IV/POIV/POEvery 6-8 hrs PRN
- Metoclopramide10 mg IV/POIV/POEvery 8 hrs PRN
Antibiotics
- Standard (clean case)Cefazolin 2g IV pre-op only; no post-op routine neededIVSingle pre-op dose; NO routine post-op antibiotics needed
- If chorioamnionitisGentamicin 5 mg/kg OD + Clindamycin 900 mg TDSIVContinue until afebrile ≥24-48 hrs
- Obesity (BMI >35)Cephalexin 500 mg + Metronidazole 400 mgPOEvery 8 hrs × 48 hrs post-op
DVT prophylaxis:
- TED stockings / pneumatic compression--Intraoperatively; continue until mobile
- LMWH: Enoxaparin40 mg (standard risk) OR 40 mg BD (high risk)SCStart 6-12 hrs post-op; continue 7-10 days (high risk: 4-6 weeks)
Iron supplementationFerrous sulfate 200 mg + Folic acid 5 mgPOOnce daily from day 1
Anti-acidTab Pantoprazole 40 mgPOOnce daily × 5-7 days
Rh immunoglobulin (if Rh-)Anti-D 300 mcg IMIMWithin 72 hrs
Foley catheterRemove at 12-24 hrs post-op-Allows early mobilization
Early mobilizationSit up at 6 hrs; walk by 12-24 hrs-Reduces DVT, ileus
Early feedingClear fluids at 2-4 hrs; regular diet by 4-6 hrsPOEarly feeding shortens hospital stay
BreastfeedingInitiate skin-to-skin as soon as possible-In recovery room
Wound careDressing check at 24-48 hrs; suture / staple removal at day 7-10-Per schedule

QUICK REFERENCE: DRUG COMPARISON TABLE

DrugNVD (Labour/Delivery)LSCS
Oxytocin10 IU IM at crowning (AMTSL)5 IU slow IV at delivery of baby
Misoprostol600 mcg PO if oxytocin unavailable800 mcg SL if uterine atony
Carbetocin100 mcg IM (single dose)100 mcg IV (preferred if high PPH risk)
Ergometrine0.2 mg IM (if PPH)0.2 mg slow IV (if PPH)
Carboprost250 mcg IM q15-90 min250 mcg IM q15-90 min
Tranexamic acid1g IV within 3 hrs of PPH1g IV at incision / on PPH diagnosis
CefazolinNot routine (unless operative)2g IV, 30-60 min before incision
Pethidine50-100 mg IM q3-4 hrsNot given (pain covered by spinal)
EpiduralBupivacaine 0.1% + Fentanyl 2 mcg/mLUsed if labour epidural converted
Spinal blockNot usedBupivacaine 0.5% hyperbaric + Fentanyl
NSAIDs post-opIbuprofen 400 mg q8 hrsKetorolac 15-30 mg IV; then oral NSAIDs
EnoxaparinNot routine unless risk factors40 mg SC OD from 6-12 hrs post-op

KEY PRINCIPLES TO REMEMBER

  1. AMTSL (Active Management of Third Stage Labour) applies to EVERY vaginal delivery - oxytocin 10 IU IM within 1 minute of birth is the single most important PPH-prevention drug.
  2. Spinal anesthesia is the standard for elective LSCS - it avoids failed intubation risk (obstetric airway is difficult) and allows the mother to be awake.
  3. Antibiotic prophylaxis for LSCS must be given before skin incision, not after cord clamping (older practice) - this significantly reduces wound infection and endometritis rates.
  4. Tranexamic acid should be given within 3 hours of PPH onset for maximum efficacy (WHO WOMAN trial evidence).
  5. Multimodal analgesia post-LSCS: combine intrathecal morphine + scheduled paracetamol + NSAIDs to minimize opioid use.
  6. Early feeding and mobilization post-LSCS (ERAS protocol) reduces ileus, DVT, and shortens hospital stay.
  7. Avoid ergometrine in hypertensive patients (causes vasoconstriction).
  8. Avoid carboprost in asthmatic patients (causes bronchospasm).
  9. Avoid pethidine if delivery is expected within 4 hours (neonatal respiratory depression from active metabolite norpethidine).

Give this in a pdf

Reading File
Running Command

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

Running Command

mkdir -p /tmp/workspace/obstetrics-pdf && python3 << 'EOF' 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 HRFlowable doc = SimpleDocTemplate( "/tmp/workspace/obstetrics-pdf/Obstetric_Management_NVD_LSCS.pdf", pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.8*cm, bottomMargin=1.8*cm, title="Pre-op, Intra-op & Post-op Management: NVD and LSCS", author="Orris Medical" ) styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle('TitleStyle', parent=styles['Title'], fontSize=18, textColor=colors.HexColor('#1a237e'), spaceAfter=4, fontName='Helvetica-Bold', alignment=TA_CENTER) subtitle_style = ParagraphStyle('SubTitle', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor('#455a64'), spaceAfter=10, alignment=TA_CENTER) h1_style = ParagraphStyle('H1', parent=styles['Heading1'], fontSize=13, textColor=colors.white, spaceAfter=2, spaceBefore=10, fontName='Helvetica-Bold', backColor=colors.HexColor('#1a237e'), leftIndent=-5, rightIndent=-5, leading=18, borderPad=4) h2_style = ParagraphStyle('H2', parent=styles['Heading2'], fontSize=11, textColor=colors.white, spaceAfter=2, spaceBefore=6, fontName='Helvetica-Bold', backColor=colors.HexColor('#283593'), borderPad=3, leading=16) h3_style = ParagraphStyle('H3', parent=styles['Heading3'], fontSize=10, textColor=colors.HexColor('#1a237e'), spaceAfter=2, spaceBefore=5, fontName='Helvetica-Bold', borderPad=2) body_style = ParagraphStyle('Body', parent=styles['Normal'], fontSize=8.5, spaceAfter=3, leading=12, fontName='Helvetica') bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'], fontSize=8.5, spaceAfter=2, leading=12, leftIndent=12, bulletIndent=4, fontName='Helvetica') note_style = ParagraphStyle('Note', parent=styles['Normal'], fontSize=8, textColor=colors.HexColor('#b71c1c'), spaceAfter=3, fontName='Helvetica-Oblique', leftIndent=8) key_style = ParagraphStyle('Key', parent=styles['Normal'], fontSize=8, textColor=colors.HexColor('#1b5e20'), spaceAfter=2, fontName='Helvetica-Bold') # Table header color HDR_BLUE = colors.HexColor('#1a237e') HDR_BLUE2 = colors.HexColor('#283593') HDR_TEAL = colors.HexColor('#00695c') ROW_ALT = colors.HexColor('#e8eaf6') ROW_ALT2 = colors.HexColor('#e0f2f1') RED_LIGHT = colors.HexColor('#ffebee') YELLOW = colors.HexColor('#fffde7') def make_table(data, col_widths, hdr_color=HDR_BLUE, alt_color=ROW_ALT, row_colors=None): t = Table(data, colWidths=col_widths, repeatRows=1) style = [ ('BACKGROUND', (0,0), (-1,0), hdr_color), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,0), 8), ('BOTTOMPADDING', (0,0), (-1,0), 5), ('TOPPADDING', (0,0), (-1,0), 4), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#bdbdbd')), ('FONTNAME', (0,1), (-1,-1), 'Helvetica'), ('FONTSIZE', (0,1), (-1,-1), 7.5), ('TOPPADDING', (0,1), (-1,-1), 3), ('BOTTOMPADDING', (0,1), (-1,-1), 3), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, alt_color]), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('WORDWRAP', (0,0), (-1,-1), True), ] if row_colors: for row_idx, color in row_colors: style.append(('BACKGROUND', (0, row_idx), (-1, row_idx), color)) t.setStyle(TableStyle(style)) return t story = [] # ── TITLE PAGE HEADER ────────────────────────────────────────────────────────── story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Obstetric Management Guide", title_style)) story.append(Paragraph("Pre-operative · Intra-operative · Post-operative", subtitle_style)) story.append(Paragraph("Normal Vaginal Delivery (NVD) &amp; Lower Segment Caesarean Section (LSCS)", subtitle_style)) story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a237e'))) story.append(Spacer(1, 0.3*cm)) # ══════════════════════════════════════════════════════════════════════════ # PART 1 — NORMAL VAGINAL DELIVERY # ══════════════════════════════════════════════════════════════════════════ story.append(Paragraph("PART 1 — NORMAL VAGINAL DELIVERY (NVD)", h1_style)) story.append(Spacer(1, 0.2*cm)) # A. PRE-LABOUR story.append(Paragraph("A. PRE-LABOUR / ADMISSION", h2_style)) pre_labour_data = [ ['Step / Drug', 'Dose & Route', 'Timing / Interval'], ['Assessment\n(Obstetric exam, vitals, CTG)', 'Full clinical assessment', 'On admission'], ['IV Access + Fluids', 'Wide bore cannula; RL or NS IV', 'Throughout labour'], ['Blood Investigations', 'CBC, Blood group & crossmatch, coagulation', 'Once on admission'], ['NPO / Light diet', 'Clear fluids allowed; light meal ≤6 hrs before\nany intervention', 'Ongoing throughout'], ['Enema (selective)', 'Soap water enema', 'Only if constipated / early labour'], ['Antacid: Ranitidine 150 mg PO\nOR Sodium citrate 30 mL PO', '150 mg PO / 30 mL PO', 'On admission;\nRepeat sodium citrate every 2 hrs\nif LSCS risk present'], ['Perineal preparation', 'Clipping/shaving perineal hair', 'Once'], ['Bladder', 'Encourage voiding', 'Every 2 hours during labour'], ] story.append(make_table(pre_labour_data, [4.5*cm, 5*cm, 7*cm])) story.append(Spacer(1, 0.3*cm)) # B. DURING LABOUR story.append(Paragraph("B. DURING LABOUR (Intrapartum)", h2_style)) story.append(Paragraph("First Stage", h3_style)) first_stage_data = [ ['Drug / Intervention', 'Dose', 'Route', 'Interval / Notes'], ['IV Fluids (RL or DNS)', '125 mL/hr', 'IV', 'Continuous'], ['Partograph', 'Cervical dilation plotted', '—', 'Every 2–4 hrs'], ['CTG / Fetal monitoring', 'Intermittent auscultation', '—', 'Every 15 min (active 1st stage)'], ['Epidural analgesia\n(Gold standard)', 'Bupivacaine 0.1% +\nFentanyl 2 mcg/mL', 'Epidural infusion', 'Continuous; top-up on request'], ['Pethidine (Meperidine)', '50–100 mg', 'IM', 'Every 3–4 hrs\n⚠ Avoid if delivery <4 hrs away'], ['Pentazocine', '30 mg', 'IM', 'Every 3–4 hrs'], ['Promethazine (anti-emetic)', '25 mg', 'IM', 'Give with opioids to reduce nausea'], ['Entonox (N₂O + O₂ 50:50)', 'Self-administered', 'Inhaled', 'During contractions only'], ['Misoprostol (induction)', '25 mcg PV', 'PV', 'Every 4–6 hrs (max 6 doses)'], ['Dinoprostone gel (induction)', '0.5 mg intracervical\nOR 1–2 mg PV', 'PV', 'Every 6 hrs (max 3 doses/24 hrs)'], ['Dinoprostone pessary', '10 mg PV', 'PV', 'Single dose; remove at\nonset of active labour'], ['Foley catheter (mechanical)', '30–60 mL balloon', 'Transcervical', 'Remove when cervix ≥3 cm'], ['Oxytocin (augmentation)', 'Start 2–4 mIU/min', 'IV infusion', 'Increase 2 mIU/min every\n15–30 min; max 20–40 mIU/min'], ] story.append(make_table(first_stage_data, [3.8*cm, 3.5*cm, 2.5*cm, 6.7*cm])) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Second Stage", h3_style)) second_stage_data = [ ['Step', 'Details'], ['Positioning', 'Lithotomy (dorsal / lateral Sims)'], ['Fetal monitoring', 'Continuous CTG; auscultate every 5 min'], ['Pushing', 'Coached or physiological; max 2 hrs nullipara, 1 hr multipara'], ['Episiotomy (if needed)', 'Mediolateral; infiltrate with Lignocaine 1% (5–10 mL) before cut'], ['Instrumental delivery', 'Forceps or ventouse under pudendal block / perineal infiltration'], ] story.append(make_table(second_stage_data, [4*cm, 12.5*cm])) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Third Stage — Active Management (AMTSL) ★", h3_style)) story.append(Paragraph("AMTSL applies to EVERY vaginal delivery. This is the single most important PPH-prevention intervention.", note_style)) amtsl_data = [ ['Drug', 'Dose', 'Route', 'Timing'], ['Oxytocin (1st line) ★', '10 IU IM\nOR 5 IU slow IV bolus', 'IM / IV', 'Within 1 minute of baby\'s birth\n(before placenta delivers)'], ['Carbetocin (preferred if available)', '100 mcg', 'IM or Slow IV', 'Single dose at delivery of\nanterior shoulder'], ['Misoprostol\n(if oxytocin unavailable)', '600 mcg PO\nOR 400–600 mcg SL', 'PO / SL', 'Single dose at birth of baby'], ['Controlled cord traction (CCT)', 'Brandt-Andrews technique', '—', 'After uterine firmness confirmed'], ['Uterine massage', 'Bimanual', '—', 'After placental delivery'], ] story.append(make_table(amtsl_data, [4*cm, 3.5*cm, 3*cm, 6*cm], hdr_color=HDR_TEAL, alt_color=ROW_ALT2, row_colors=[(1, colors.HexColor('#b2dfdb'))])) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("PPH Treatment Drugs (if uterine atony develops):", h3_style)) pph_data = [ ['Drug', 'Dose', 'Route', 'Notes / Interval'], ['Oxytocin infusion', '20–40 IU in 500 mL RL', 'IV', 'Over 4 hrs; continue after IM oxytocin'], ['Ergometrine\n(Methylergometrine)', '0.2 mg', 'IM / Slow IV', 'Every 2 hrs PRN (max 5 doses)\n⚠ AVOID in hypertension'], ['Carboprost (Hemabate)', '250 mcg IM', 'IM', 'Every 15–90 min; max 8 doses\n⚠ AVOID in asthma'], ['Tranexamic acid ★', '1g IV over 10 min', 'IV', 'Within 3 hrs of PPH onset;\nrepeat 1g if bleeding continues at 30 min'], ['Misoprostol', '800 mcg SL\nOR 1000 mcg rectal', 'SL / PR', 'If other uterotonics fail'], ] story.append(make_table(pph_data, [3.5*cm, 3.5*cm, 2.5*cm, 7*cm], hdr_color=colors.HexColor('#b71c1c'), alt_color=RED_LIGHT)) story.append(Spacer(1, 0.3*cm)) # C. POST-DELIVERY NVD story.append(Paragraph("C. POST-DELIVERY (NVD)", h2_style)) post_nvd_data = [ ['Step / Drug', 'Dose', 'Route', 'Interval / Duration'], ['Perineal repair', 'Lignocaine 1% 5–10 mL\n(local infiltration) + repair', 'Local', 'Once'], ['Uterine fundus palpation', 'Confirm firm & contracted', '—', 'Every 15 min × 1 hr,\nthen every 30 min × 2 hrs'], ['Vitals monitoring\n(BP, PR, SpO₂, lochia)', '—', '—', 'Every 15 min for first 1 hr'], ['IV Fluids', 'RL 500 mL', 'IV', 'Over 4–6 hrs; then oral hydration'], ['Analgesia: Ibuprofen 400 mg +\nParacetamol 1g', '400 mg + 1g', 'PO', 'Every 6–8 hrs PRN'], ['Antibiotics (if episiotomy/repair)\nAmoxicillin-Clavulanate 625 mg', '625 mg', 'PO', 'Every 8 hrs × 5 days'], ['Iron: Ferrous sulfate 200 mg +\nFolic acid 5 mg', '200 mg + 5 mg', 'PO', 'Once daily × 3 months'], ['Breastfeeding initiation', 'Skin-to-skin; latch within\n30–60 min', '—', 'Immediately post-delivery'], ['Anti-D immunoglobulin\n(if Rh-negative mother)', '300 mcg', 'IM', 'Within 72 hrs of delivery'], ] story.append(make_table(post_nvd_data, [4*cm, 3.5*cm, 2*cm, 7*cm])) story.append(Spacer(1, 0.3*cm)) # ══════════════════════════════════════════════════════════════════════════ # PART 2 — LSCS # ══════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) story.append(Paragraph("PART 2 — LOWER SEGMENT CAESAREAN SECTION (LSCS)", h1_style)) story.append(Spacer(1, 0.2*cm)) # A. PRE-OP LSCS story.append(Paragraph("A. PRE-OPERATIVE (LSCS)", h2_style)) preop_lscs_data = [ ['Drug / Action', 'Dose', 'Route', 'Timing'], ['NPO: Clear fluids allowed up to 2 hrs;\nlight meal ≤6 hrs; regular meal ≤8 hrs', '—', '—', 'Per schedule'], ['Carbohydrate loading\n(non-diabetic only)', 'Clear carb drink 200 mL', 'PO', '2 hrs before surgery'], ['Ranitidine 150 mg', '150 mg', 'PO', 'Night before AND morning of surgery'], ['Metoclopramide 10 mg', '10 mg', 'PO', '1–2 hrs before surgery'], ['Sodium citrate 30 mL', '30 mL', 'PO', 'Within 30 min before induction'], ['Blood investigations\n(CBC, RFT, LFT, coag, G&X, ECG)', '—', '—', 'Night before / on admission'], ['Wide bore IV cannula (16–18G)', '—', 'IV', 'Pre-op'], ['IV pre-load (for spinal anesthesia)', 'RL 500–1000 mL', 'IV', '20–30 min before spinal block'], ['Abdominal skin prep', 'Chlorhexidine 2% / Betadine scrub', 'Topical', 'Holding area / OT'], ['Vaginal prep (emergency/PROM)', 'Chlorhexidine 0.4%\nOR Povidone iodine', 'PV', 'Just before draping'], ['Foley catheter (14–16 Fr)', '—', 'Urethral', 'In OT after spinal; remove at\n12–24 hrs post-op'], ] story.append(make_table(preop_lscs_data, [5.5*cm, 3*cm, 2*cm, 6*cm])) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Anesthesia for LSCS", h3_style)) anaes_data = [ ['Type', 'Drugs & Doses', 'Notes'], ['Spinal (preferred) ★', 'Hyperbaric Bupivacaine 0.5% 1.6–2.2 mL\n+ Fentanyl 10–25 mcg intrathecal\n± Morphine 100–200 mcg intrathecal', 'Gold standard; mother awake;\navoids difficult obstetric airway'], ['Epidural conversion\n(from labour epidural)', 'Bupivacaine 0.5% top-up\n+ Fentanyl', 'Via existing epidural catheter'], ['General Anesthesia\n(if spinal CI)', 'RSI: Thiopentone 4–5 mg/kg IV\n+ Suxamethonium 1–1.5 mg/kg IV\n→ Maintenance: Isoflurane + N₂O', 'Rapid Sequence Induction;\nPre-oxygenate 100% O₂ × 3–5 min'], ['Vasopressor\n(prevent spinal hypotension)', 'Phenylephrine 50–100 mcg IV boluses\nOR Ephedrine 5–10 mg IV', 'Titrate to maintain SBP ≥100 mmHg'], ] story.append(make_table(anaes_data, [3.5*cm, 6.5*cm, 6.5*cm])) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Antibiotic Prophylaxis (Pre-op — BEFORE Skin Incision)", h3_style)) story.append(Paragraph("★ Antibiotic must be given 30–60 min BEFORE skin incision (NOT after cord clamping — older practice).", note_style)) ab_data = [ ['Drug', 'Dose', 'Route', 'Timing'], ['Cefazolin (1st line) ★', '2g IV\n(3g if BMI >35 kg/m²)', 'IV', '30–60 min BEFORE skin incision'], ['If penicillin allergy:\nClindamycin', '900 mg', 'IV', '30–60 min before incision'], ['+ Gentamicin\n(with clindamycin)', '5 mg/kg', 'IV', 'With clindamycin'], ['If chorioamnionitis:\nPiperacillin-Tazobactam OR\nGentamicin + Clindamycin', 'Standard doses', 'IV', 'Continue post-op until\nafebrile 24–48 hrs'], ['Obesity (BMI >35): Add\nAzithromycin 500 mg', '500 mg IV', 'IV', '~1 hr before incision'], ] story.append(make_table(ab_data, [4.5*cm, 3*cm, 2*cm, 7*cm])) story.append(Spacer(1, 0.3*cm)) # B. INTRA-OP LSCS story.append(Paragraph("B. INTRA-OPERATIVE (LSCS)", h2_style)) intraop_data = [ ['Drug / Measure', 'Dose', 'Route', 'Timing / Notes'], ['IV Fluids (RL / NS)', '500–1000 mL', 'IV', 'Continue throughout surgery'], ['Oxytocin (uterotonic) ★', '5 IU slow IV (over 1–2 min)\nOR 10 IU IM', 'IV / IM', 'Immediately after delivery\nof baby'], ['Oxytocin infusion', '20–40 IU in 500 mL RL', 'IV', 'Over 4 hrs intraoperatively &\npostoperatively'], ['Carbetocin (if high PPH risk)', '100 mcg (single dose)', 'IV', 'After baby delivery; preferred\nover oxytocin in high-risk cases'], ['Anti-emetic:\nOndansetron + Dexamethasone', 'Ondansetron 4–8 mg\n+ Dexamethasone 4–8 mg', 'IV', 'Before / at delivery'], ['Ergometrine (if atony)', '0.2 mg slow IV', 'IV', 'After oxytocin failure\n⚠ Avoid in hypertension'], ['Carboprost (if atony)', '250 mcg IM', 'IM', 'Every 15–90 min; max 8 doses\n⚠ Avoid in asthma'], ['Tranexamic acid ★', '1g IV over 10 min', 'IV', 'At skin incision OR immediately\non PPH; repeat at 30 min if bleeding'], ['Temperature management', 'Warmed IV fluids +\nForced air warming blanket', '—', 'Throughout procedure'], ['Antibiotic redosing', 'Cefazolin 2g IV', 'IV', 'If surgery >4 hrs\nOR blood loss >1500 mL'], ] story.append(make_table(intraop_data, [4*cm, 4*cm, 2*cm, 6.5*cm])) story.append(Spacer(1, 0.3*cm)) # C. POST-OP LSCS story.append(PageBreak()) story.append(Paragraph("C. POST-OPERATIVE (LSCS)", h2_style)) story.append(Paragraph("Recovery Room Monitoring (first 1–2 hrs):", h3_style)) recov_data = [ ['Parameter', 'Interval'], ['BP, PR, SpO₂, RR', 'Every 15 min for first hour'], ['Urine output (via Foley)', 'Every 1 hr (target >30 mL/hr)'], ['Fundal height & lochia', 'Every 15–30 min'], ['Wound check', 'Check for bleeding / dehiscence'], ['Vitals (ward)', 'Every 1 hr for first 4 hrs, then every 4 hrs'], ] story.append(make_table(recov_data, [7*cm, 9.5*cm])) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("Drugs & Fluids Post-LSCS:", h3_style)) postop_data = [ ['Drug / Measure', 'Dose', 'Route', 'Interval / Duration'], ['IV Fluids (RL)', 'RL 500 mL', 'IV', 'Continue until eating well\n(usually 4–6 hrs post-op)'], ['Oxytocin infusion', '20 IU in 500 mL RL', 'IV', '4–8 hrs post-delivery'], ['── ANALGESIA (Multimodal) ──', '', '', ''], ['Intrathecal morphine\n(if spinal given) ★', '100–200 mcg', 'Intrathecal', 'Single dose; provides\n18–24 hrs analgesia'], ['Paracetamol (Acetaminophen) ★', '1g IV then PO', 'IV → PO', 'Every 6 hrs (scheduled)'], ['NSAIDs: Ibuprofen 400 mg\nOR Diclofenac 75 mg', '400 mg PO\nOR 75 mg IM', 'PO / IM', 'Every 8 hrs (start after surgery)'], ['Ketorolac ★', '15–30 mg IV', 'IV', 'End of surgery;\nthen every 6–8 hrs × 24 hrs'], ['Tramadol', '50–100 mg', 'IV / PO', 'Every 6–8 hrs PRN'], ['Morphine (if no spinal morphine)', '2–5 mg IV PRN / PCA', 'IV', 'Titrate to pain'], ['── ANTI-EMETICS ──', '', '', ''], ['Ondansetron', '4 mg', 'IV / PO', 'Every 6–8 hrs PRN'], ['Metoclopramide', '10 mg', 'IV / PO', 'Every 8 hrs PRN'], ['── ANTIBIOTICS ──', '', '', ''], ['Standard clean case', 'Pre-op cefazolin only;\nNO routine post-op antibiotics', 'IV', 'Single pre-op dose is sufficient'], ['Chorioamnionitis: Gentamicin\n+ Clindamycin', 'Gentamicin 5 mg/kg OD\n+ Clindamycin 900 mg TDS', 'IV', 'Until afebrile ≥24–48 hrs'], ['Obesity (BMI >35):\nCephalexin + Metronidazole', 'Cephalexin 500 mg\n+ Metronidazole 400 mg', 'PO', 'Every 8 hrs × 48 hrs post-op'], ['── DVT PROPHYLAXIS ──', '', '', ''], ['TED stockings / Pneumatic\ncompression', '—', '—', 'Intraoperatively; continue\nuntil mobile'], ['Enoxaparin (LMWH)\nStandard risk', '40 mg SC OD', 'SC', 'Start 6–12 hrs post-op;\ncontinue 7–10 days'], ['Enoxaparin\nHigh risk', '40 mg BD', 'SC', 'Start 6–12 hrs post-op;\ncontinue 4–6 weeks'], ['── OTHER MEDICATIONS ──', '', '', ''], ['Iron: Ferrous sulfate 200 mg\n+ Folic acid 5 mg', '200 mg + 5 mg', 'PO', 'Once daily from Day 1'], ['Pantoprazole 40 mg', '40 mg', 'PO', 'Once daily × 5–7 days'], ['Anti-D immunoglobulin (if Rh-)', '300 mcg', 'IM', 'Within 72 hrs of delivery'], ['── CARE MEASURES ──', '', '', ''], ['Early feeding', 'Clear fluids at 2–4 hrs;\nregular diet at 4–6 hrs', 'PO', 'Early feeding shortens hospital stay'], ['Early mobilisation', 'Sit up at 6 hrs;\nwalk by 12–24 hrs', '—', 'Reduces DVT and ileus'], ['Foley catheter removal', '—', '—', '12–24 hrs post-op'], ['Breastfeeding / Skin-to-skin', 'Initiate ASAP', '—', 'In recovery room'], ['Wound dressing / Suture removal', '—', '—', 'Check at 24–48 hrs;\nremove at Day 7–10'], ] # Highlight section dividers row_colors_postop = [] for i, row in enumerate(postop_data): if row[0].startswith('──'): row_colors_postop.append((i, colors.HexColor('#e3f2fd'))) story.append(make_table(postop_data, [4.5*cm, 3.5*cm, 2*cm, 6.5*cm], row_colors=row_colors_postop)) story.append(Spacer(1, 0.3*cm)) # ── COMPARISON TABLE ──────────────────────────────────────────────────────────── story.append(PageBreak()) story.append(Paragraph("QUICK REFERENCE: NVD vs LSCS Drug Comparison", h1_style)) story.append(Spacer(1, 0.2*cm)) comp_data = [ ['Drug', 'Normal Vaginal Delivery (NVD)', 'LSCS'], ['Oxytocin', '10 IU IM at crowning (AMTSL)', '5 IU slow IV at delivery of baby'], ['Misoprostol', '600 mcg PO if oxytocin unavailable', '800 mcg SL if uterine atony'], ['Carbetocin', '100 mcg IM (single dose)', '100 mcg IV (preferred if high PPH risk)'], ['Ergometrine', '0.2 mg IM (if PPH)\n⚠ Avoid in hypertension', '0.2 mg slow IV (if PPH)\n⚠ Avoid in hypertension'], ['Carboprost', '250 mcg IM every 15–90 min\n⚠ Avoid in asthma', '250 mcg IM every 15–90 min\n⚠ Avoid in asthma'], ['Tranexamic acid', '1g IV within 3 hrs of PPH onset', '1g IV at incision / on PPH diagnosis'], ['Cefazolin', 'Not routine (unless operative\nvaginal or repair)', '2g IV, 30–60 min BEFORE incision'], ['Pethidine', '50–100 mg IM every 3–4 hrs\n(labour analgesia)', 'Not given (pain covered by spinal)'], ['Epidural / Spinal', 'Bupivacaine 0.1% + Fentanyl 2 mcg/mL\n(epidural; optional)', 'Hyperbaric Bupivacaine 0.5% +\nFentanyl intrathecal (spinal; standard)'], ['NSAIDs post-delivery', 'Ibuprofen 400 mg every 8 hrs PO', 'Ketorolac 15–30 mg IV; then oral NSAIDs'], ['Enoxaparin (DVT prophylaxis)', 'Not routine unless risk factors present', '40 mg SC OD from 6–12 hrs post-op'], ['Oxytocin augmentation\n(during labour)', '2–4 mIU/min IV; titrate up\nto 20–40 mIU/min max', 'Used if labour trial before LSCS;'\n'not applicable intra-operatively'], ] story.append(make_table(comp_data, [4*cm, 6.5*cm, 6*cm])) story.append(Spacer(1, 0.3*cm)) # ── KEY CLINICAL PEARLS ────────────────────────────────────────────────────────── story.append(Paragraph("KEY CLINICAL PEARLS", h1_style)) story.append(Spacer(1, 0.2*cm)) pearls = [ ("1. AMTSL is mandatory for every vaginal delivery", "Oxytocin 10 IU IM within 1 minute of birth is the single most important PPH-prevention measure. Never omit."), ("2. Spinal anesthesia is standard for elective LSCS", "Avoids failed intubation risk (obstetric airway is notoriously difficult) and keeps mother awake for immediate bonding."), ("3. Antibiotic timing is BEFORE incision — not after cord clamping", "The old practice of giving antibiotics after cord clamping (to protect the baby) is outdated. Pre-incision timing significantly reduces wound infection and endometritis."), ("4. Tranexamic acid must be given within 3 hours of PPH", "Based on the WHO WOMAN trial — efficacy drops sharply after 3 hours. Give 1g IV; repeat at 30 min if bleeding continues."), ("5. Multimodal analgesia post-LSCS minimizes opioid use", "Combine intrathecal morphine + scheduled paracetamol + NSAIDs (ketorolac / ibuprofen). Reduces opioid side effects and improves recovery."), ("6. Avoid ergometrine in hypertension", "Ergometrine causes vasoconstriction — can precipitate hypertensive crisis in preeclampsia/eclampsia."), ("7. Avoid carboprost in asthma", "Carboprost (15-methyl PGF2α) causes bronchospasm. Use misoprostol or ergometrine instead."), ("8. Avoid pethidine if delivery is <4 hours away", "Active metabolite norpethidine causes neonatal respiratory depression, especially if given close to delivery."), ("9. Early feeding and mobilization post-LSCS (ERAS protocol)", "Clear fluids at 2–4 hrs, regular diet at 4–6 hrs, walk by 12–24 hrs. Reduces ileus, DVT, and shortens hospital stay."), ("10. DVT prophylaxis is mandatory after LSCS", "Enoxaparin 40 mg SC OD starting 6–12 hrs post-op. High-risk patients continue for 4–6 weeks. Always combine with TED stockings."), ] for title, detail in pearls: story.append(Paragraph(f"★ {title}", key_style)) story.append(Paragraph(detail, bullet_style)) story.append(Spacer(1, 0.15*cm)) story.append(Spacer(1, 0.5*cm)) story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a237e'))) story.append(Paragraph("Reference: Creasy &amp; Resnik's Maternal-Fetal Medicine | ERAS Society Guidelines 2025 | WHO WOMAN Trial | ACOG Practice Bulletins", ParagraphStyle('Footer', parent=styles['Normal'], fontSize=7, textColor=colors.grey, alignment=TA_CENTER))) doc.build(story) print("PDF created successfully!") EOF

Writing File

~/obstetrics-pdf/gen_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
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
                                 TableStyle, HRFlowable, PageBreak)
from reportlab.lib.enums import TA_CENTER, TA_LEFT

doc = SimpleDocTemplate(
    "/tmp/workspace/obstetrics-pdf/Obstetric_Management_NVD_LSCS.pdf",
    pagesize=A4,
    rightMargin=1.5*cm, leftMargin=1.5*cm,
    topMargin=1.8*cm, bottomMargin=1.8*cm,
    title="Pre-op, Intra-op & Post-op Management: NVD and LSCS",
    author="Orris Medical"
)

styles = getSampleStyleSheet()

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

subtitle_style = ParagraphStyle('SubTitle', parent=styles['Normal'],
    fontSize=10, textColor=colors.HexColor('#455a64'), spaceAfter=6,
    alignment=TA_CENTER)

h1_style = ParagraphStyle('H1', parent=styles['Heading1'],
    fontSize=12, textColor=colors.white, spaceAfter=2, spaceBefore=10,
    fontName='Helvetica-Bold', backColor=colors.HexColor('#1a237e'),
    borderPad=4, leading=17)

h2_style = ParagraphStyle('H2', parent=styles['Heading2'],
    fontSize=10, textColor=colors.white, spaceAfter=2, spaceBefore=6,
    fontName='Helvetica-Bold', backColor=colors.HexColor('#283593'),
    borderPad=3, leading=15)

h3_style = ParagraphStyle('H3', parent=styles['Heading3'],
    fontSize=9.5, textColor=colors.HexColor('#1a237e'), spaceAfter=2, spaceBefore=5,
    fontName='Helvetica-Bold')

body_style = ParagraphStyle('Body', parent=styles['Normal'],
    fontSize=8.5, spaceAfter=3, leading=12)

note_style = ParagraphStyle('Note', parent=styles['Normal'],
    fontSize=8, textColor=colors.HexColor('#b71c1c'), spaceAfter=3,
    fontName='Helvetica-Oblique', leftIndent=8)

key_style = ParagraphStyle('Key', parent=styles['Normal'],
    fontSize=8.5, textColor=colors.HexColor('#1b5e20'), spaceAfter=2,
    fontName='Helvetica-Bold')

bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'],
    fontSize=8.5, spaceAfter=4, leading=12, leftIndent=14)

footer_style = ParagraphStyle('Footer', parent=styles['Normal'],
    fontSize=7, textColor=colors.grey, alignment=TA_CENTER)

HDR_BLUE  = colors.HexColor('#1a237e')
HDR_TEAL  = colors.HexColor('#00695c')
HDR_RED   = colors.HexColor('#b71c1c')
ROW_ALT   = colors.HexColor('#e8eaf6')
ROW_ALT2  = colors.HexColor('#e0f2f1')
ROW_RED   = colors.HexColor('#ffebee')


def make_table(data, col_widths, hdr_color=HDR_BLUE, alt_color=ROW_ALT, row_colors=None):
    t = Table(data, colWidths=col_widths, repeatRows=1)
    style_cmds = [
        ('BACKGROUND', (0, 0), (-1, 0), hdr_color),
        ('TEXTCOLOR', (0, 0), (-1, 0), colors.white),
        ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
        ('FONTSIZE', (0, 0), (-1, 0), 8),
        ('BOTTOMPADDING', (0, 0), (-1, 0), 5),
        ('TOPPADDING', (0, 0), (-1, 0), 4),
        ('GRID', (0, 0), (-1, -1), 0.4, colors.HexColor('#bdbdbd')),
        ('FONTNAME', (0, 1), (-1, -1), 'Helvetica'),
        ('FONTSIZE', (0, 1), (-1, -1), 7.5),
        ('TOPPADDING', (0, 1), (-1, -1), 3),
        ('BOTTOMPADDING', (0, 1), (-1, -1), 3),
        ('ROWBACKGROUNDS', (0, 1), (-1, -1), [colors.white, alt_color]),
        ('VALIGN', (0, 0), (-1, -1), 'TOP'),
    ]
    if row_colors:
        for row_idx, color in row_colors:
            style_cmds.append(('BACKGROUND', (0, row_idx), (-1, row_idx), color))
    t.setStyle(TableStyle(style_cmds))
    return t


story = []

# TITLE
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("Obstetric Management Guide", title_style))
story.append(Paragraph("Pre-operative · Intra-operative · Post-operative", subtitle_style))
story.append(Paragraph("Normal Vaginal Delivery (NVD) &amp; Lower Segment Caesarean Section (LSCS)", subtitle_style))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a237e')))
story.append(Spacer(1, 0.3*cm))

# ==============================
# PART 1 — NVD
# ==============================
story.append(Paragraph("PART 1 — NORMAL VAGINAL DELIVERY (NVD)", h1_style))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("A. PRE-LABOUR / ADMISSION", h2_style))
pre_labour_data = [
    ['Step / Drug', 'Dose & Route', 'Timing / Interval'],
    ['Assessment (Obstetric exam, vitals, CTG)', 'Full clinical assessment', 'On admission'],
    ['IV Access + Fluids', 'Wide bore cannula; RL or NS IV', 'Throughout labour'],
    ['Blood Investigations', 'CBC, Blood group & crossmatch, coagulation', 'Once on admission'],
    ['NPO / Light diet', 'Clear fluids allowed; light meal <=6 hrs before intervention', 'Ongoing'],
    ['Enema (selective)', 'Soap water enema', 'Only if constipated / early labour'],
    ['Antacid: Ranitidine 150 mg PO\nOR Sodium citrate 30 mL PO', '150 mg PO / 30 mL PO',
     'On admission; repeat sodium citrate every 2 hrs if LSCS risk'],
    ['Perineal preparation', 'Clipping / shaving', 'Once'],
    ['Bladder', 'Encourage voiding', 'Every 2 hours during labour'],
]
story.append(make_table(pre_labour_data, [4.5*cm, 5*cm, 7*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("B. DURING LABOUR (Intrapartum)", h2_style))
story.append(Paragraph("First Stage", h3_style))
first_stage_data = [
    ['Drug / Intervention', 'Dose', 'Route', 'Interval / Notes'],
    ['IV Fluids (RL or DNS)', '125 mL/hr', 'IV', 'Continuous'],
    ['Partograph', 'Cervical dilation plotted', '-', 'Every 2-4 hrs'],
    ['CTG / Fetal monitoring', 'Intermittent auscultation', '-', 'Every 15 min (active 1st stage)'],
    ['Epidural analgesia (Gold standard)',
     'Bupivacaine 0.1% + Fentanyl 2 mcg/mL', 'Epidural infusion', 'Continuous; top-up on request'],
    ['Pethidine (Meperidine)', '50-100 mg', 'IM', 'Every 3-4 hrs\nAVOID if delivery <4 hrs away'],
    ['Pentazocine', '30 mg', 'IM', 'Every 3-4 hrs'],
    ['Promethazine (anti-emetic)', '25 mg', 'IM', 'With opioids to reduce nausea'],
    ['Entonox (N2O + O2 50:50)', 'Self-administered', 'Inhaled', 'During contractions only'],
    ['Misoprostol (induction)', '25 mcg PV', 'PV', 'Every 4-6 hrs (max 6 doses)'],
    ['Dinoprostone gel (induction)', '0.5 mg intracervical OR 1-2 mg PV', 'PV', 'Every 6 hrs (max 3 doses / 24 hrs)'],
    ['Dinoprostone pessary', '10 mg PV', 'PV', 'Single dose; remove at onset of active labour'],
    ['Foley catheter (mechanical)', '30-60 mL balloon', 'Transcervical', 'Remove when cervix >=3 cm'],
    ['Oxytocin (augmentation)', 'Start 2-4 mIU/min', 'IV infusion', 'Increase 2 mIU/min every 15-30 min;\nmax 20-40 mIU/min'],
]
story.append(make_table(first_stage_data, [4*cm, 3.5*cm, 2.5*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Second Stage", h3_style))
second_stage_data = [
    ['Step', 'Details'],
    ['Positioning', 'Lithotomy (dorsal / lateral Sims)'],
    ['Fetal monitoring', 'Continuous CTG; auscultate every 5 min'],
    ['Pushing', 'Coached or physiological; max 2 hrs nullipara, 1 hr multipara'],
    ['Episiotomy (if needed)', 'Mediolateral; infiltrate with Lignocaine 1% (5-10 mL) before cut'],
    ['Instrumental delivery', 'Forceps or ventouse under pudendal block / perineal infiltration'],
]
story.append(make_table(second_stage_data, [4.5*cm, 12*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Third Stage — Active Management of Third Stage Labour (AMTSL) *", h3_style))
story.append(Paragraph("AMTSL applies to EVERY vaginal delivery. Oxytocin 10 IU IM within 1 minute of birth is the single most important PPH-prevention measure.", note_style))
amtsl_data = [
    ['Drug', 'Dose', 'Route', 'Timing'],
    ['Oxytocin (1st line) *', '10 IU IM\nOR 5 IU slow IV bolus', 'IM / IV', "Within 1 minute of baby's birth\n(before placenta delivers)"],
    ['Carbetocin (preferred if available)', '100 mcg', 'IM or Slow IV', 'Single dose at delivery of anterior shoulder'],
    ['Misoprostol (if oxytocin unavailable)', '600 mcg PO\nOR 400-600 mcg SL', 'PO / SL', 'Single dose at birth of baby'],
    ['Controlled cord traction (CCT)', 'Brandt-Andrews technique', '-', 'After uterine firmness confirmed'],
    ['Uterine massage', 'Bimanual', '-', 'After placental delivery'],
]
story.append(make_table(amtsl_data, [4*cm, 3.5*cm, 3*cm, 6*cm], hdr_color=HDR_TEAL, alt_color=ROW_ALT2))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("PPH Treatment Drugs (if uterine atony develops):", h3_style))
pph_data = [
    ['Drug', 'Dose', 'Route', 'Notes / Interval'],
    ['Oxytocin infusion', '20-40 IU in 500 mL RL', 'IV', 'Over 4 hrs; continue after IM oxytocin'],
    ['Ergometrine (Methylergometrine)', '0.2 mg', 'IM / Slow IV', 'Every 2 hrs PRN (max 5 doses)\nAVOID in hypertension'],
    ['Carboprost (Hemabate)', '250 mcg IM', 'IM', 'Every 15-90 min; max 8 doses\nAVOID in asthma'],
    ['Tranexamic acid *', '1g IV over 10 min', 'IV', 'Within 3 hrs of PPH onset;\nrepeat 1g at 30 min if still bleeding'],
    ['Misoprostol', '800 mcg SL\nOR 1000 mcg rectal', 'SL / PR', 'If other uterotonics fail'],
]
story.append(make_table(pph_data, [3.5*cm, 3.5*cm, 2.5*cm, 7*cm], hdr_color=HDR_RED, alt_color=ROW_RED))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("C. POST-DELIVERY (NVD)", h2_style))
post_nvd_data = [
    ['Step / Drug', 'Dose', 'Route', 'Interval / Duration'],
    ['Perineal repair', 'Lignocaine 1% 5-10 mL (local infiltration) + repair', 'Local', 'Once'],
    ['Uterine fundus palpation', 'Confirm firm & contracted', '-', 'Every 15 min x 1 hr,\nthen every 30 min x 2 hrs'],
    ['Vitals monitoring (BP, PR, SpO2, lochia)', '-', '-', 'Every 15 min for first 1 hr'],
    ['IV Fluids', 'RL 500 mL', 'IV', 'Over 4-6 hrs; then oral hydration'],
    ['Analgesia: Ibuprofen 400 mg + Paracetamol 1g', '400 mg + 1g', 'PO', 'Every 6-8 hrs PRN'],
    ['Antibiotics (if episiotomy/repair)\nAmoxicillin-Clavulanate 625 mg', '625 mg', 'PO', 'Every 8 hrs x 5 days'],
    ['Iron: Ferrous sulfate 200 mg + Folic acid 5 mg', '200 mg + 5 mg', 'PO', 'Once daily x 3 months'],
    ['Breastfeeding initiation', 'Skin-to-skin; latch within 30-60 min', '-', 'Immediately post-delivery'],
    ['Anti-D immunoglobulin (if Rh-negative mother)', '300 mcg', 'IM', 'Within 72 hrs of delivery'],
]
story.append(make_table(post_nvd_data, [4.5*cm, 4*cm, 1.5*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

# ==============================
# PART 2 — LSCS
# ==============================
story.append(PageBreak())
story.append(Paragraph("PART 2 — LOWER SEGMENT CAESAREAN SECTION (LSCS)", h1_style))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("A. PRE-OPERATIVE (LSCS)", h2_style))
preop_lscs_data = [
    ['Drug / Action', 'Dose', 'Route', 'Timing'],
    ['NPO: Clear fluids <=2 hrs; light meal <=6 hrs; regular meal <=8 hrs', '-', '-', 'Per schedule'],
    ['Carbohydrate loading (non-diabetic only)', 'Clear carb drink 200 mL', 'PO', '2 hrs before surgery'],
    ['Ranitidine 150 mg', '150 mg', 'PO', 'Night before AND morning of surgery'],
    ['Metoclopramide 10 mg', '10 mg', 'PO', '1-2 hrs before surgery'],
    ['Sodium citrate 30 mL', '30 mL', 'PO', 'Within 30 min before induction'],
    ['Blood investigations (CBC, RFT, LFT, coag, G&X, ECG)', '-', '-', 'Night before / on admission'],
    ['Wide bore IV cannula (16-18G)', '-', 'IV', 'Pre-op'],
    ['IV pre-load (for spinal anesthesia)', 'RL 500-1000 mL', 'IV', '20-30 min before spinal block'],
    ['Abdominal skin prep', 'Chlorhexidine 2% / Betadine scrub', 'Topical', 'In holding area / OT'],
    ['Vaginal prep (emergency/PROM cases)', 'Chlorhexidine 0.4% OR Povidone iodine', 'PV', 'Just before draping'],
    ['Foley catheter (14-16 Fr)', '-', 'Urethral', 'In OT after spinal; remove at 12-24 hrs post-op'],
]
story.append(make_table(preop_lscs_data, [5.5*cm, 3*cm, 2*cm, 6*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Anesthesia for LSCS", h3_style))
anaes_data = [
    ['Type', 'Drugs & Doses', 'Notes'],
    ['Spinal (preferred) *',
     'Hyperbaric Bupivacaine 0.5% 1.6-2.2 mL\n+ Fentanyl 10-25 mcg intrathecal\n+/- Morphine 100-200 mcg intrathecal',
     'Gold standard; mother awake;\navoids difficult obstetric airway'],
    ['Epidural conversion (from labour epidural)',
     'Bupivacaine 0.5% top-up + Fentanyl', 'Via existing epidural catheter'],
    ['General Anesthesia (if spinal CI)',
     'RSI: Thiopentone 4-5 mg/kg IV\n+ Suxamethonium 1-1.5 mg/kg IV\nMaintenance: Isoflurane + N2O',
     'Pre-oxygenate 100% O2 x 3-5 min\nbefore RSI'],
    ['Vasopressor (prevent spinal hypotension)',
     'Phenylephrine 50-100 mcg IV boluses\nOR Ephedrine 5-10 mg IV',
     'Titrate to maintain SBP >=100 mmHg'],
]
story.append(make_table(anaes_data, [3.5*cm, 6.5*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("Antibiotic Prophylaxis (Pre-op — BEFORE Skin Incision)", h3_style))
story.append(Paragraph("* Must be given 30-60 min BEFORE skin incision (NOT after cord clamping — older outdated practice).", note_style))
ab_data = [
    ['Drug', 'Dose', 'Route', 'Timing'],
    ['Cefazolin (1st line) *', '2g IV (3g if BMI >35 kg/m2)', 'IV', '30-60 min BEFORE skin incision'],
    ['If penicillin allergy: Clindamycin', '900 mg', 'IV', '30-60 min before incision'],
    ['+ Gentamicin (with clindamycin)', '5 mg/kg', 'IV', 'With clindamycin'],
    ['If chorioamnionitis:\nPiperacillin-Tazobactam OR\nGentamicin + Clindamycin', 'Standard doses', 'IV',
     'Continue post-op until afebrile 24-48 hrs'],
    ['Obesity (BMI >35): Add Azithromycin 500 mg', '500 mg IV', 'IV', '~1 hr before incision'],
]
story.append(make_table(ab_data, [4.5*cm, 3*cm, 2*cm, 7*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(Paragraph("B. INTRA-OPERATIVE (LSCS)", h2_style))
intraop_data = [
    ['Drug / Measure', 'Dose', 'Route', 'Timing / Notes'],
    ['IV Fluids (RL / NS)', '500-1000 mL', 'IV', 'Continue throughout surgery'],
    ['Oxytocin (uterotonic) *', '5 IU slow IV (over 1-2 min)\nOR 10 IU IM', 'IV / IM', 'Immediately after delivery of baby'],
    ['Oxytocin infusion', '20-40 IU in 500 mL RL', 'IV', 'Over 4 hrs intraop & postoperatively'],
    ['Carbetocin (if high PPH risk)', '100 mcg (single dose)', 'IV', 'After baby delivery; preferred in high-risk'],
    ['Anti-emetic: Ondansetron + Dexamethasone', 'Ondansetron 4-8 mg\n+ Dexamethasone 4-8 mg', 'IV', 'Before / at delivery of baby'],
    ['Ergometrine (if atony)', '0.2 mg slow IV', 'IV', 'After oxytocin failure\nAVOID in hypertension'],
    ['Carboprost (if atony)', '250 mcg IM', 'IM', 'Every 15-90 min; max 8 doses\nAVOID in asthma'],
    ['Tranexamic acid *', '1g IV over 10 min', 'IV', 'At skin incision OR on PPH;\nrepeat at 30 min if still bleeding'],
    ['Temperature management', 'Warmed IV fluids + forced air warming blanket', '-', 'Throughout procedure'],
    ['Antibiotic redosing', 'Cefazolin 2g IV', 'IV', 'If surgery >4 hrs OR blood loss >1500 mL'],
]
story.append(make_table(intraop_data, [4*cm, 4*cm, 2*cm, 6.5*cm]))
story.append(Spacer(1, 0.3*cm))

story.append(PageBreak())
story.append(Paragraph("C. POST-OPERATIVE (LSCS)", h2_style))

story.append(Paragraph("Recovery Room Monitoring (first 1-2 hrs):", h3_style))
recov_data = [
    ['Parameter', 'Interval'],
    ['BP, PR, SpO2, RR', 'Every 15 min for first hour'],
    ['Urine output via Foley', 'Every 1 hr (target >30 mL/hr)'],
    ['Fundal height & lochia', 'Every 15-30 min'],
    ['Wound check', 'Check for bleeding / dehiscence'],
    ['Vitals on ward', 'Every 1 hr for first 4 hrs, then every 4 hrs'],
]
story.append(make_table(recov_data, [7*cm, 9.5*cm]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Drugs & Fluids Post-LSCS:", h3_style))
# Section dividers marked
postop_data = [
    ['Drug / Measure', 'Dose', 'Route', 'Interval / Duration'],
    ['IV Fluids (RL)', 'RL 500 mL', 'IV', 'Continue until eating well (4-6 hrs post-op)'],
    ['Oxytocin infusion', '20 IU in 500 mL RL', 'IV', '4-8 hrs post-delivery'],
    ['--- ANALGESIA (Multimodal) ---', '', '', ''],
    ['Intrathecal morphine (if spinal given) *', '100-200 mcg', 'Intrathecal', 'Single dose; provides 18-24 hrs analgesia'],
    ['Paracetamol (Acetaminophen) *', '1g IV then PO', 'IV -> PO', 'Every 6 hrs (scheduled)'],
    ['NSAIDs: Ibuprofen 400 mg OR Diclofenac 75 mg', '400 mg PO OR 75 mg IM', 'PO / IM', 'Every 8 hrs (start after surgery)'],
    ['Ketorolac *', '15-30 mg IV', 'IV', 'End of surgery; every 6-8 hrs x 24 hrs'],
    ['Tramadol', '50-100 mg', 'IV / PO', 'Every 6-8 hrs PRN'],
    ['Morphine (if no spinal morphine)', '2-5 mg IV PRN / PCA', 'IV', 'Titrate to pain'],
    ['--- ANTI-EMETICS ---', '', '', ''],
    ['Ondansetron', '4 mg', 'IV / PO', 'Every 6-8 hrs PRN'],
    ['Metoclopramide', '10 mg', 'IV / PO', 'Every 8 hrs PRN'],
    ['--- ANTIBIOTICS ---', '', '', ''],
    ['Standard clean case', 'Pre-op cefazolin only;\nno routine post-op antibiotics needed', 'IV', 'Single pre-op dose is sufficient'],
    ['Chorioamnionitis: Gentamicin + Clindamycin', 'Gentamicin 5 mg/kg OD\n+ Clindamycin 900 mg TDS', 'IV', 'Until afebrile >=24-48 hrs'],
    ['Obesity (BMI >35): Cephalexin + Metronidazole', 'Cephalexin 500 mg\n+ Metronidazole 400 mg', 'PO', 'Every 8 hrs x 48 hrs post-op'],
    ['--- DVT PROPHYLAXIS ---', '', '', ''],
    ['TED stockings / Pneumatic compression', '-', '-', 'Intraoperatively; continue until mobile'],
    ['Enoxaparin (LMWH) Standard risk', '40 mg SC OD', 'SC', 'Start 6-12 hrs post-op; 7-10 days'],
    ['Enoxaparin High risk', '40 mg BD', 'SC', 'Start 6-12 hrs post-op; 4-6 weeks'],
    ['--- OTHER MEDICATIONS ---', '', '', ''],
    ['Iron: Ferrous sulfate 200 mg + Folic acid 5 mg', '200 mg + 5 mg', 'PO', 'Once daily from Day 1'],
    ['Pantoprazole 40 mg', '40 mg', 'PO', 'Once daily x 5-7 days'],
    ['Anti-D immunoglobulin (if Rh-)', '300 mcg', 'IM', 'Within 72 hrs of delivery'],
    ['--- CARE MEASURES ---', '', '', ''],
    ['Early feeding', 'Clear fluids at 2-4 hrs; regular diet at 4-6 hrs', 'PO', 'Early feeding shortens hospital stay'],
    ['Early mobilisation', 'Sit up at 6 hrs; walk by 12-24 hrs', '-', 'Reduces DVT and ileus'],
    ['Foley catheter removal', '-', '-', '12-24 hrs post-op'],
    ['Breastfeeding / Skin-to-skin', 'Initiate ASAP', '-', 'In recovery room'],
    ['Wound dressing / suture removal', '-', '-', 'Check at 24-48 hrs; remove at Day 7-10'],
]

divider_color = colors.HexColor('#e3f2fd')
row_colors_postop = []
for i, row in enumerate(postop_data):
    if str(row[0]).startswith('---'):
        row_colors_postop.append((i, divider_color))

story.append(make_table(postop_data, [4.5*cm, 3.5*cm, 2*cm, 6.5*cm], row_colors=row_colors_postop))
story.append(Spacer(1, 0.3*cm))

# ==============================
# COMPARISON TABLE
# ==============================
story.append(PageBreak())
story.append(Paragraph("QUICK REFERENCE: NVD vs LSCS Drug Comparison", h1_style))
story.append(Spacer(1, 0.2*cm))

comp_data = [
    ['Drug', 'Normal Vaginal Delivery (NVD)', 'LSCS'],
    ['Oxytocin', '10 IU IM at crowning (AMTSL)', '5 IU slow IV at delivery of baby'],
    ['Misoprostol', '600 mcg PO if oxytocin unavailable', '800 mcg SL if uterine atony'],
    ['Carbetocin', '100 mcg IM (single dose)', '100 mcg IV (preferred if high PPH risk)'],
    ['Ergometrine', '0.2 mg IM (if PPH)\nAVOID in hypertension', '0.2 mg slow IV (if PPH)\nAVOID in hypertension'],
    ['Carboprost', '250 mcg IM every 15-90 min\nAVOID in asthma', '250 mcg IM every 15-90 min\nAVOID in asthma'],
    ['Tranexamic acid', '1g IV within 3 hrs of PPH onset', '1g IV at incision / on PPH diagnosis'],
    ['Cefazolin', 'Not routine (unless operative vaginal\nor wound repair)', '2g IV, 30-60 min BEFORE incision'],
    ['Pethidine', '50-100 mg IM every 3-4 hrs (labour analgesia)', 'Not given (pain covered by spinal)'],
    ['Epidural / Spinal', 'Bupivacaine 0.1% + Fentanyl 2 mcg/mL\n(epidural; optional)',
     'Hyperbaric Bupivacaine 0.5% + Fentanyl\nintrathecal (spinal; standard)'],
    ['NSAIDs post-delivery', 'Ibuprofen 400 mg every 8 hrs PO', 'Ketorolac 15-30 mg IV; then oral NSAIDs'],
    ['Enoxaparin (DVT)', 'Not routine unless risk factors', '40 mg SC OD from 6-12 hrs post-op'],
    ['Oxytocin augmentation during labour',
     '2-4 mIU/min IV; titrate up to 20-40 mIU/min max',
     'Used if labour trial before LSCS;\nnot applicable intra-operatively'],
]
story.append(make_table(comp_data, [4*cm, 6.5*cm, 6*cm]))
story.append(Spacer(1, 0.3*cm))

# ==============================
# KEY CLINICAL PEARLS
# ==============================
story.append(Paragraph("KEY CLINICAL PEARLS", h1_style))
story.append(Spacer(1, 0.2*cm))

pearls = [
    ("1. AMTSL is mandatory for every vaginal delivery",
     "Oxytocin 10 IU IM within 1 minute of birth is the single most important PPH-prevention measure. Never omit."),
    ("2. Spinal anesthesia is standard for elective LSCS",
     "Avoids failed intubation risk (obstetric airway is notoriously difficult) and keeps mother awake for immediate bonding."),
    ("3. Antibiotic timing is BEFORE incision, not after cord clamping",
     "The old practice of giving antibiotics after cord clamping is outdated. Pre-incision timing significantly reduces wound infection and endometritis."),
    ("4. Tranexamic acid must be given within 3 hours of PPH",
     "Based on WHO WOMAN trial evidence — efficacy drops sharply after 3 hours. Give 1g IV; repeat at 30 min if bleeding continues."),
    ("5. Multimodal analgesia post-LSCS minimizes opioid use",
     "Combine intrathecal morphine + scheduled paracetamol + NSAIDs (ketorolac / ibuprofen). Reduces opioid side effects and improves recovery."),
    ("6. Avoid ergometrine in hypertension",
     "Ergometrine causes vasoconstriction and can precipitate hypertensive crisis in preeclampsia / eclampsia."),
    ("7. Avoid carboprost in asthma",
     "Carboprost (15-methyl PGF2-alpha) causes bronchospasm. Use misoprostol or ergometrine instead."),
    ("8. Avoid pethidine if delivery is <4 hours away",
     "Active metabolite norpethidine causes neonatal respiratory depression, especially if given close to delivery."),
    ("9. Early feeding and mobilization post-LSCS (ERAS protocol)",
     "Clear fluids at 2-4 hrs, regular diet at 4-6 hrs, walk by 12-24 hrs. Reduces ileus, DVT, and shortens hospital stay."),
    ("10. DVT prophylaxis is mandatory after LSCS",
     "Enoxaparin 40 mg SC OD starting 6-12 hrs post-op. High-risk patients continue for 4-6 weeks. Always combine with TED stockings."),
]

for title, detail in pearls:
    story.append(Paragraph("* " + title, key_style))
    story.append(Paragraph(detail, bullet_style))
    story.append(Spacer(1, 0.15*cm))

story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1a237e')))
story.append(Paragraph(
    "References: Creasy &amp; Resnik's Maternal-Fetal Medicine | ERAS Society Guidelines 2025 | "
    "WHO WOMAN Trial | ACOG Practice Bulletins | WHO Recommendations on Intrapartum Care",
    footer_style))

doc.build(story)
print("PDF created successfully!")
Running Command

python3 /tmp/workspace/obstetrics-pdf/gen_pdf.py

Running Command

ls -lh /tmp/workspace/obstetrics-pdf/Obstetric_Management_NVD_LSCS.pdf

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

Obstetric Management NVD LSCS

PDF Document · PDF

What's inside (4 pages):
  1. Part 1 - Normal Vaginal Delivery - Pre-labour admission steps, First stage drugs (epidural, pethidine, oxytocin augmentation, cervical ripening), Second stage, Third stage AMTSL table (colour-coded teal), PPH treatment drugs (colour-coded red)
  2. Post-NVD - Monitoring intervals, analgesia, antibiotics, iron, Anti-D
  3. Part 2 - LSCS - Full pre-op checklist, anesthesia options (spinal/epidural/GA with doses), antibiotic prophylaxis, intra-op drugs with timing
  4. Post-LSCS - Monitoring, multimodal analgesia, anti-emetics, antibiotics, DVT prophylaxis, ERAS measures - all with doses, routes, and intervals
  5. NVD vs LSCS comparison table - Side-by-side all major drugs
  6. 10 Key Clinical Pearls - Highlighted in green
This is a shared conversation. Sign in to Orris to start your own chat.