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
pre-op intra-op post-op management normal vaginal delivery LSCS drugs protocols obstetrics
https://www.ajog.org/article/S0002-9378(25)00121-8/fulltext
| Step | Action / Drug | Dose & Interval |
|---|---|---|
| Assessment | Full obstetric exam, vitals, CTG | On admission |
| IV access | 18G cannula, IV fluids (Ringer's lactate / NS) | Maintain throughout |
| Blood investigations | CBC, blood group & crossmatch, coagulation | Once on admission |
| NPO / light diet | Clear fluids allowed; light meal ≤6 hrs before potential intervention | Ongoing |
| Enema (selective) | Soap water enema | Only if constipated / early labour |
| Antacid | Tab Ranitidine 150 mg PO OR Sodium citrate 30 mL PO | At admission; repeat sodium citrate if prolonged labour (every 2 hrs if LSCS risk) |
| Perineal prep | Shaving / clipping of perineal hair | Once |
| Bladder | Encourage voiding every 2 hours | During active labour |
| Drug / Method | Dose | Route | Indication / Interval |
|---|---|---|---|
| IV fluids | RL or DNS 125 mL/hr | IV | Continuous; NPO in active labour |
| Partograph | Cervical dilation plotted every 2-4 hrs | - | Monitor progress |
| CTG / Fetal monitoring | Intermittent auscultation every 15 min (1st stage active) | - | Mandatory |
| Pain relief options: | |||
| - Epidural analgesia | Bupivacaine 0.1% + Fentanyl 2 mcg/mL | Epidural infusion | Gold standard; top-up on request |
| - Pethidine (Meperidine) | 50-100 mg IM | IM | Every 3-4 hrs; avoid if delivery <4 hrs away |
| - Pentazocine | 30 mg IM | IM | Every 3-4 hrs |
| - Promethazine (anti-emetic) | 25 mg IM | IM | With opioids to reduce nausea |
| - Entonox (N₂O + O₂ 50:50) | Inhalation | Inhaled | Self-administered during contractions |
| Cervical ripening (if induction needed): | |||
| - Misoprostol | 25 mcg PV | PV | Every 4-6 hrs (max 6 doses) |
| - Dinoprostone gel | 0.5 mg intracervical OR 1-2 mg PV | PV | Every 6 hrs (max 3 doses in 24 hrs) |
| - Dinoprostone pessary | 10 mg | PV | Single dose; removes at onset of active labour |
| - Mechanical (Foley catheter) | 30-60 mL balloon | Transcervical | Insert; remove when cervix ≥3 cm |
| Oxytocin augmentation | Start 2-4 mIU/min IV infusion | IV | Increase by 2 mIU/min every 15-30 min; max 20-40 mIU/min |
| Step | Detail |
|---|---|
| Positioning | Lithotomy (dorsal / lateral Sims) |
| CTG | Continuous; auscultate every 5 min |
| Pushing | Coached / physiological; max 2 hrs nullipara, 1 hr multipara |
| Episiotomy | Mediolateral; infiltrate with Lignocaine 1% 5-10 mL before cut |
| Instrumental (if needed) | Forceps or ventouse under pudendal block / perineal infiltration |
| Drug | Dose | Route | Timing |
|---|---|---|---|
| Oxytocin (1st line) | 10 IU IM OR 5 IU slow IV bolus | IM / IV | Within 1 minute of baby's birth (before placenta delivers) |
| OR Carbetocin (preferred if available) | 100 mcg | IM / IV (slow) | Single dose at delivery of anterior shoulder |
| Controlled cord traction (CCT) | - | Brandt-Andrews technique | After uterine firmness confirmed |
| Uterine massage | - | Bimanual | After placental delivery to maintain tone |
| Misoprostol (if oxytocin unavailable) | 600 mcg PO OR 400-600 mcg SL | PO/SL | Single dose at birth of baby |
| Drug | Dose | Route | Note |
|---|---|---|---|
| Oxytocin infusion | 20-40 IU in 500 mL RL over 4 hrs | IV | Continue after IM oxytocin |
| Ergometrine (Methylergometrine) | 0.2 mg | IM / Slow IV | Avoid in hypertension; q2h PRN (max 5 doses) |
| Carboprost (Hemabate) | 250 mcg IM | IM | Every 15-90 min; max 8 doses; avoid asthma |
| Tranexamic acid | 1g IV over 10 min | IV | Within 3 hrs of bleeding onset; repeat 1g if bleeding continues after 30 min |
| Misoprostol | 800 mcg sublingual OR 1000 mcg rectal | SL/PR | If other uterotonics fail |
| Step | Drug / Action | Dose | Interval |
|---|---|---|---|
| Perineal repair | Lignocaine 1% infiltration + repair episiotomy | Local infiltration | Once |
| Uterine fundus palpation | Confirm firm & contracted | - | Every 15 min × 1 hr, then every 30 min × 2 hrs |
| Vitals monitoring | 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 | Tab Ibuprofen 400 mg PO + Tab Paracetamol 1g PO | PO | Every 6-8 hrs PRN |
| Antibiotics | Tab Amoxicillin-Clavulanic acid 625 mg PO (if episiotomy / repair) | PO | Every 8 hrs × 5 days |
| Iron supplementation | Tab Ferrous sulfate 200 mg + Folic acid 5 mg | PO | Once daily × 3 months |
| Breastfeeding initiation | Skin-to-skin; latch within 30-60 min | - | Immediately post-delivery |
| Catheter | Not routinely needed; remove if inserted | - | - |
| Rh immunoglobulin | 300 mcg Anti-D IM (if Rh-negative mother & Rh-positive baby) | IM | Within 72 hrs of delivery |
| Drug / Action | Dose | Route | Timing |
|---|---|---|---|
| Nil per mouth (NPO) | Clear fluids allowed up to 2 hrs pre-op; light meal ≤6 hrs; regular meal ≤8 hrs | - | Per schedule |
| Carbohydrate loading | Clear carbohydrate drink 200 mL (non-diabetic only) | PO | 2 hrs before surgery |
| Tab Ranitidine | 150 mg | PO | Night before AND morning of surgery |
| Tab Metoclopramide | 10 mg | PO | 1-2 hrs before surgery |
| Sodium citrate | 30 mL | PO | Within 30 min before induction |
| Blood investigations | CBC, RFT, LFT, coagulation, blood group & crossmatch, ECG | - | Night before / on admission |
| IV access | 16-18G wide bore cannula | - | Pre-op |
| IV fluids pre-load | RL 500-1000 mL (for spinal anesthesia) | IV | 20-30 min before spinal block |
| Skin preparation | Chlorhexidine-gluconate 2% / Betadine scrub (abdomen) | - | In holding area / OT |
| Vaginal preparation | Chlorhexidine 0.4% OR Povidone iodine solution | PV | Just before draping (especially emergency/PROM cases) |
| Foley catheter | 14-16 Fr | Urethral | Inserted in OT after spinal |
| Shaving | Suprapubic area | - | Pre-op |
| Type | Drugs | Dose |
|---|---|---|
| Spinal (preferred) | Hyperbaric Bupivacaine 0.5% + Fentanyl 10-25 mcg ± Morphine 100-200 mcg | 1.6-2.2 mL intrathecal |
| Epidural (labour analgesia conversion) | Bupivacaine 0.5% + Fentanyl | Top-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₂O | Rapid sequence induction (RSI) |
| Vasopressor (prevent spinal hypotension) | Phenylephrine 50-100 mcg IV boluses OR Ephedrine 5-10 mg IV | IV |
| Pre-induction O₂ | 100% FiO₂ via face mask | Inhaled |
| Drug | Dose | Timing |
|---|---|---|
| Cefazolin 1st line | 2g IV (3g if BMI >35) | 30-60 min BEFORE skin incision |
| Penicillin allergy: Clindamycin | 900 mg IV | 30-60 min before incision |
| + Gentamicin | 5 mg/kg IV | With clindamycin |
| If chorioamnionitis: Broad-spectrum | Piperacillin-Tazobactam OR Gentamicin + Clindamycin | Continue postoperatively until afebrile 24-48 hrs |
| Drug / Measure | Dose | Route | Timing |
|---|---|---|---|
| IV fluids | RL / NS 500-1000 mL | IV | Continue throughout surgery |
| Oxytocin (uterotonic) | 5 IU slow IV (over 1-2 min) OR 10 IU IM | IV / IM | Immediately after delivery of baby |
| Oxytocin infusion | 20-40 IU in 500 mL RL | IV | Over 4 hrs intraoperatively & postoperatively |
| OR Carbetocin | 100 mcg IV (single dose) | IV | After delivery - preferred in high-risk PPH |
| Anti-emetic | Ondansetron 4-8 mg IV + Dexamethasone 4-8 mg IV | IV | Before / at delivery |
| Ergometrine (if atony) | 0.2 mg slow IV | IV | After oxytocin failure |
| Carboprost (if atony) | 250 mcg IM | IM | Every 15-90 min; max 8 doses |
| Tranexamic acid | 1g IV over 10 min | IV | At skin incision OR immediately on diagnosis of PPH; repeat at 30 min if bleeding |
| Temperature management | Warmed IV fluids + forced air warming blanket | - | Throughout procedure |
| Intraoperative analgesia (if GA) | Fentanyl 1-2 mcg/kg | IV | Titrate |
| Intraoperative antibiotic redosing | Cefazolin 2g IV | IV | If surgery >4 hrs OR blood loss >1500 mL |
| Monitoring | 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 for bleeding / dehiscence |
| Drug | Dose | Route | Interval / Duration |
|---|---|---|---|
| IV fluids | RL 500 mL, then shift to oral as tolerated | IV | Continue until eating well (usually 4-6 hrs) |
| Oxytocin infusion | 20 IU in 500 mL RL | IV | Continue for 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/PO | IV then PO | Every 6 hrs (scheduled) |
| - NSAID: Ibuprofen / Diclofenac | 400 mg PO / Diclofenac 75 mg IM | PO / IM | Every 8 hrs; start after surgery |
| - Ketorolac | 15-30 mg IV | IV | At end of surgery; then every 6-8 hrs × 24 hrs |
| - Tramadol | 50-100 mg IV/PO | IV/PO | Every 6-8 hrs PRN |
| - Opioid (if spinal morphine not given) | Morphine 2-5 mg IV PRN / PCA | IV | Titrate |
| Anti-emetics | |||
| - Ondansetron | 4 mg IV/PO | IV/PO | Every 6-8 hrs PRN |
| - Metoclopramide | 10 mg IV/PO | IV/PO | Every 8 hrs PRN |
| Antibiotics | |||
| - Standard (clean case) | Cefazolin 2g IV pre-op only; no post-op routine needed | IV | Single pre-op dose; NO routine post-op antibiotics needed |
| - If chorioamnionitis | Gentamicin 5 mg/kg OD + Clindamycin 900 mg TDS | IV | Continue until afebrile ≥24-48 hrs |
| - Obesity (BMI >35) | Cephalexin 500 mg + Metronidazole 400 mg | PO | Every 8 hrs × 48 hrs post-op |
| DVT prophylaxis: | |||
| - TED stockings / pneumatic compression | - | - | Intraoperatively; continue until mobile |
| - LMWH: Enoxaparin | 40 mg (standard risk) OR 40 mg BD (high risk) | SC | Start 6-12 hrs post-op; continue 7-10 days (high risk: 4-6 weeks) |
| Iron supplementation | Ferrous sulfate 200 mg + Folic acid 5 mg | PO | Once daily from day 1 |
| Anti-acid | Tab Pantoprazole 40 mg | PO | Once daily × 5-7 days |
| Rh immunoglobulin (if Rh-) | Anti-D 300 mcg IM | IM | Within 72 hrs |
| Foley catheter | Remove at 12-24 hrs post-op | - | Allows early mobilization |
| Early mobilization | Sit up at 6 hrs; walk by 12-24 hrs | - | Reduces DVT, ileus |
| Early feeding | Clear fluids at 2-4 hrs; regular diet by 4-6 hrs | PO | Early feeding shortens hospital stay |
| Breastfeeding | Initiate skin-to-skin as soon as possible | - | In recovery room |
| Wound care | Dressing check at 24-48 hrs; suture / staple removal at day 7-10 | - | Per schedule |
| Drug | NVD (Labour/Delivery) | 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) | 0.2 mg slow IV (if PPH) |
| Carboprost | 250 mcg IM q15-90 min | 250 mcg IM q15-90 min |
| Tranexamic acid | 1g IV within 3 hrs of PPH | 1g IV at incision / on PPH diagnosis |
| Cefazolin | Not routine (unless operative) | 2g IV, 30-60 min before incision |
| Pethidine | 50-100 mg IM q3-4 hrs | Not given (pain covered by spinal) |
| Epidural | Bupivacaine 0.1% + Fentanyl 2 mcg/mL | Used if labour epidural converted |
| Spinal block | Not used | Bupivacaine 0.5% hyperbaric + Fentanyl |
| NSAIDs post-op | Ibuprofen 400 mg q8 hrs | Ketorolac 15-30 mg IV; then oral NSAIDs |
| Enoxaparin | Not routine unless risk factors | 40 mg SC OD from 6-12 hrs post-op |
Give this in a pdf
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && ls -la /tmp/workspace/
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) & 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 & 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
~/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) & 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 & 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!")
python3 /tmp/workspace/obstetrics-pdf/gen_pdf.py
ls -lh /tmp/workspace/obstetrics-pdf/Obstetric_Management_NVD_LSCS.pdf
Obstetric Management NVD LSCS
PDF Document · PDF