Difference between duvadilon tab and duvadilon retard EXPL mode of action
duvadilon tablet vs duvadilon retard isoxsuprine mechanism of action pharmacology
https://www.medicoverhospitals.in/articles/duvadilan-retard-…
isoxsuprine hydrochloride beta2 agonist mechanism vasodilation uterine relaxation pharmacology
| Target | Effect |
|---|---|
| Uterine smooth muscle | Relaxation (tocolysis) → delays preterm labor |
| Peripheral/skeletal muscle vasculature | Vasodilation → improved blood flow |
| Heart | Mild positive chronotropy (β1 spillover at high doses) |
| Feature | Duvadilon Tab (IR) | Duvadilon Retard (SR/ER) |
|---|---|---|
| Formulation | Immediate-release | Sustained/extended-release ("Retard" = slow in Latin/French) |
| Isoxsuprine dose | 10 mg per tablet | 40 mg per tablet |
| Onset of action | Faster (~1 hour) | Slower (gradual over hours) |
| Duration of action | Shorter | Longer, more sustained plasma levels |
| Dosing frequency | 3-4 times daily (every 6-8 hours) | Once or twice daily |
| Peak plasma concentration | Higher, sharper peak | Lower, flatter peak |
| Side effect profile | More peak-related side effects (palpitations, flushing, hypotension) | Reduced peak-related adverse effects due to smoother release |
| Mechanism of action | Identical | Identical |
| Use case | Acute/flexible dosing, oral or for initiation | Maintenance therapy, better compliance |
Generate a visual pharmacology poster explaining β2 agonist mechanism
A detailed pharmacology educational poster titled "β2 Adrenergic Agonist Mechanism of Action" with a clean medical/scientific style on a dark navy blue background with white and bright color text. The poster shows a step-by-step cellular signaling diagram: 1. At the top, a smooth muscle cell membrane cross-section showing a β2 receptor (labeled) embedded in the lipid bilayer, with an isoxsuprine/salbutamol drug molecule binding to it from outside the cell. 2. Inside the cell membrane, the receptor connects to a Gs protein (alpha, beta, gamma subunits labeled in yellow). Arrow showing Gs activation → GDP replaced by GTP on alpha subunit. 3. Gs alpha subunit activates Adenylyl Cyclase enzyme (labeled, shown as a membrane protein). 4. Adenylyl Cyclase converts ATP → cAMP (shown with arrow, cAMP molecules depicted as small orange circles). 5. cAMP activates Protein Kinase A (PKA) - shown with arrow, PKA depicted as an enzyme complex. 6. PKA has two arrows showing dual effects: - Arrow 1: PKA phosphorylates and INACTIVATES MLCK (Myosin Light Chain Kinase) → labeled "No actin-myosin crossbridge" → labeled "SMOOTH MUSCLE RELAXATION" - Arrow 2: PKA reduces intracellular Ca2+ (shown as calcium ions being pumped out/sequestered) → inhibits contraction 7. At the bottom, two outcome boxes side by side: - Left box (green): "UTERINE RELAXATION - Tocolysis - Stops preterm labor - Treats dysmenorrhea" with a uterus icon - Right box (blue): "VASODILATION - Peripheral vascular disease - Improved blood flow" with a blood vessel icon 8. Small legend box in corner listing drug examples: Isoxsuprine (Duvadilon), Salbutamol, Terbutaline, Ritodrine Color coding: receptor = purple, Gs protein = yellow, cAMP = orange, PKA = teal, calcium = blue dots, relaxation outcome = green. Clean arrows connecting each step with numbered labels 1-6. Professional medical poster layout with bold section headers.

Create a comparison table: Isoxsuprine vs Salbutamol vs Terbutaline
A professional medical pharmacology comparison table poster on a clean white background with dark text, titled "β2 Agonists: Comparative Pharmacology" in bold dark navy blue at the top with a subtitle "Isoxsuprine vs Salbutamol vs Terbutaline". The table has 4 columns and 14 rows. Column headers in colored bands: Column 1 "PARAMETER" (dark navy), Column 2 "ISOXSUPRINE (Duvadilon)" (purple header), Column 3 "SALBUTAMOL (Ventolin/Asthalin)" (teal/green header), Column 4 "TERBUTALINE (Bricanyl)" (orange header). Row data: Row 1 - Drug Class: "β2 agonist + α-blocker" | "Selective β2 agonist" | "Selective β2 agonist" Row 2 - β2 Selectivity: "Low-moderate (also has α-block)" | "High" | "High" Row 3 - Route of Admin: "Oral, IV/IM" | "Inhaled, Oral, IV, Nebulizer" | "Oral, SC injection, Inhaled, IV" Row 4 - Onset of Action: "~1 hr (oral)" | "3-5 min (inhaled)" | "5-15 min (inhaled/SC)" Row 5 - Duration: "4-6 hrs (IR), 8-12 hrs (Retard)" | "4-6 hrs" | "4-8 hrs" Row 6 - Primary Use: "Tocolysis, Peripheral vascular disease" | "Asthma/COPD, Bronchodilation" | "Asthma, Tocolysis (SC/IV)" Row 7 - Tocolytic Use: "YES - first choice in many countries" | "Off-label, limited" | "YES - approved tocolytic" Row 8 - Bronchodilation: "Weak / not used" | "Primary indication" | "YES - used for asthma" Row 9 - Cardiac Side Effects: "Moderate (tachycardia, palpitations)" | "Mild-moderate" | "Moderate (tremor, palpitations)" Row 10 - Uterine Relaxation: "Strong" | "Moderate" | "Strong" Row 11 - Half-life: "~1.25 hrs" | "~3-5 hrs" | "~3-4 hrs" Row 12 - Trade Names: "Duvadilon, Vasodilan" | "Ventolin, Asthalin, Proventil" | "Bricanyl, Brethine" Row 13 - Pregnancy Safety: "Category C - widely used for tocolysis" | "Category C" | "Category B/C - tocolysis" Row 14 - Key Contraindication: "Cardiovascular disease, eclampsia" | "Hypersensitivity, arrhythmia" | "Severe cardiovascular disease" Alternating row colors: white and light gray. Each drug column has a faint tint of its header color. Bold row labels in column 1. Small checkmark icons (✓) for YES entries in green, and X for NO entries in red. Clean, modern sans-serif font. Small molecular structure silhouettes above each drug column header. Professional medical poster look with a subtle footer: "Mechanism: All act via β2 receptor → Gs → adenylyl cyclase → ↑cAMP → PKA → smooth muscle relaxation"

| Parameter | Isoxsuprine (Duvadilon) | Salbutamol (Ventolin) | Terbutaline (Bricanyl) |
|---|---|---|---|
| Drug Class | β2 agonist + α-adrenergic blocker | Selective β2 agonist | Selective β2 agonist |
| β2 Selectivity | Low-moderate | High | High |
| Routes | Oral, IV/IM | Inhaled, Oral, IV, Nebulizer | Oral, SC, Inhaled, IV |
| Onset | ~1 hr (oral) | 3-5 min (inhaled) | 5-15 min (inhaled/SC) |
| Duration | 4-6 hr (IR) / 8-12 hr (Retard) | 4-6 hr | 4-8 hr |
| Primary Use | Tocolysis, peripheral vascular disease | Asthma / COPD | Asthma + tocolysis |
| Tocolytic Use | Yes - widely used (especially Asia) | Off-label, limited | Yes - approved |
| Bronchodilation | Weak / not used clinically | Primary indication | Yes |
| Cardiac SE | Tachycardia, palpitations, hypotension | Mild tachycardia, tremor | Tremor, palpitations |
| Half-life | ~1.25 hr | ~3-5 hr | ~3-4 hr |
| Pregnancy | Category C | Category C | Category B/C |
| Key CI | CVD, eclampsia, arrhythmia | Arrhythmia, hypersensitivity | Severe CVD |
Find recent clinical guidelines on β2 agonist tocolysis in preterm labor
beta2 agonist tocolysis preterm labor guidelines
ACOG FIGO WHO beta2 agonist tocolysis preterm labor clinical guidelines 2022 2023 2024
tocolysis preterm labor beta agonist nifedipine atosiban comparison
preterm labor tocolytic agents management guideline 2023
PMID: 37913556
tocolytic agents preterm labor systematic review
PMID: 35947046
PMID: 35304748
PMID: 38664622
Management of preterm labor: Clinical practice guideline and recommendation by the World Association of Perinatal Medicine (WAPM) and Perinatal Medicine Foundation (PMF)
Tocolytics for delaying preterm birth: a network meta-analysis (122 RCTs, 13,697 women)
| Outcome | β2 Agonists (Betamimetics) | Evidence Quality |
|---|---|---|
| Delay birth ≥48 hrs | RR 1.12 (95% CI 1.05-1.20) - effective | Low certainty |
| Delay birth ≥7 days | RR 1.14 (95% CI 1.03-1.25) - effective | Low certainty |
| Side effects | Highest rate of maternal cardiovascular adverse events | Consistent |
Bottom line from Cochrane 2022: Betamimetics work, but calcium channel blockers (nifedipine) and atosiban are preferred due to superior safety profiles.
| Context | Relevance |
|---|---|
| Low/middle-income countries (India, Iran, Africa) | Isoxsuprine/ritodrine still widely used - affordable, oral available |
| Acute SC terbutaline | Still used for short-term uterine relaxation in hospital |
| When nifedipine or atosiban unavailable | β2 agonists are acceptable alternatives |
| Peripheral vascular disease | Isoxsuprine remains a primary agent |
Modern guidelines (WAPM 2023, Cochrane 2022) position calcium channel blockers (nifedipine) and oxytocin receptor antagonists (atosiban) as first-line tocolytics. β2 agonists are effective but carry higher maternal cardiovascular risk (tachycardia, pulmonary edema, hypokalemia) and are now considered second-line or alternatives in resource-limited settings. The goal of tocolysis remains a 48-hour window for corticosteroids and MgSO4, not indefinite labor suppression.
Create a summary PDF of tocolytic guidelines for clinical reference
mkdir -p /home/daytona/workspace/tocolytic-guidelines && ls /home/daytona/worksp…
~/tocolytic-guidelines/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether, PageBreak
)
from reportlab.platypus.flowables import HRFlowable
from reportlab.lib.colors import HexColor
import datetime
# ── Color palette ──────────────────────────────────────────────────────────────
NAVY = HexColor("#1A2E4A")
TEAL = HexColor("#0D7377")
TEAL_LITE = HexColor("#E6F4F4")
ORANGE = HexColor("#E87722")
ORANGE_LT = HexColor("#FEF3E8")
RED = HexColor("#C0392B")
GREEN = HexColor("#1E8449")
GREY_BG = HexColor("#F5F6FA")
GREY_LINE = HexColor("#D0D3DA")
WHITE = colors.white
BLACK = colors.black
OUTPUT = "/home/daytona/workspace/tocolytic-guidelines/Tocolytic_Guidelines_Clinical_Reference.pdf"
def build_pdf():
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
topMargin=1.8*cm, bottomMargin=2*cm,
leftMargin=1.8*cm, rightMargin=1.8*cm,
title="Tocolytic Guidelines – Clinical Reference",
author="Orris Medical Reference",
subject="β2 Agonist Tocolysis in Preterm Labor"
)
styles = getSampleStyleSheet()
# Custom styles
def S(name, **kw):
return ParagraphStyle(name, **kw)
H1 = S("H1", fontSize=20, fontName="Helvetica-Bold", textColor=WHITE,
spaceAfter=4, spaceBefore=0, leading=24, alignment=TA_CENTER)
H2 = S("H2", fontSize=13, fontName="Helvetica-Bold", textColor=WHITE,
spaceAfter=2, spaceBefore=0, leading=16, alignment=TA_LEFT)
H3 = S("H3", fontSize=11, fontName="Helvetica-Bold", textColor=NAVY,
spaceAfter=3, spaceBefore=6, leading=14)
BODY = S("BODY", fontSize=9.5, fontName="Helvetica", textColor=BLACK,
spaceAfter=4, leading=14, alignment=TA_JUSTIFY)
BODY_SM = S("BODY_SM", fontSize=8.5, fontName="Helvetica", textColor=BLACK,
spaceAfter=3, leading=12, alignment=TA_LEFT)
BULLET = S("BULLET", fontSize=9.5, fontName="Helvetica", textColor=BLACK,
spaceAfter=3, leading=13, leftIndent=14, firstLineIndent=-10)
CAPTION = S("CAPTION", fontSize=8, fontName="Helvetica-Oblique",
textColor=HexColor("#555555"), spaceAfter=2, leading=10, alignment=TA_CENTER)
WARN = S("WARN", fontSize=9, fontName="Helvetica-Bold", textColor=RED,
spaceAfter=2, leading=12)
NOTE = S("NOTE", fontSize=8.5, fontName="Helvetica-Oblique",
textColor=HexColor("#444444"), spaceAfter=2, leading=11)
REF = S("REF", fontSize=7.5, fontName="Helvetica", textColor=HexColor("#555555"),
spaceAfter=1, leading=10, leftIndent=10, firstLineIndent=-10)
story = []
# ── HEADER BANNER ──────────────────────────────────────────────────────────
banner_data = [[
Paragraph("<b>TOCOLYTIC AGENTS IN PRETERM LABOR</b>", H1),
]]
banner = Table(banner_data, colWidths=[17.4*cm])
banner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), NAVY),
("TOPPADDING", (0,0), (-1,-1), 12),
("BOTTOMPADDING", (0,0), (-1,-1), 12),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [6]),
]))
story.append(banner)
sub_data = [[
Paragraph(
"Clinical Reference Guide | β2 Agonists & Comparative Tocolytics | "
f"Based on WAPM 2023, Cochrane 2022, ACOG 2022 | Generated {datetime.date.today().strftime('%d %b %Y')}",
S("sub", fontSize=8, fontName="Helvetica-Oblique", textColor=HexColor("#888888"),
alignment=TA_CENTER, leading=10)
)
]]
sub_tbl = Table(sub_data, colWidths=[17.4*cm])
sub_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), GREY_BG),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))
story.append(sub_tbl)
story.append(Spacer(1, 6))
# ── SECTION helper ─────────────────────────────────────────────────────────
def section_header(title, color=TEAL):
d = [[Paragraph(f"<b>{title}</b>", H2)]]
t = Table(d, colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
]))
return t
def info_box(text, bg=TEAL_LITE, border=TEAL):
d = [[Paragraph(text, BODY_SM)]]
t = Table(d, colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, border),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
return t
# ══════════════════════════════════════════════════════════════════════════
# SECTION 1 – OVERVIEW
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("1. Overview & Rationale for Tocolysis"))
story.append(Spacer(1, 4))
story.append(Paragraph(
"Tocolytic therapy aims to temporarily suppress uterine contractions in preterm labor "
"(before 37 weeks gestation). The primary goal is <b>NOT</b> indefinite labor suppression, "
"but to gain a <b>48–72 hour window</b> to:",
BODY))
for pt in [
"Administer <b>antenatal corticosteroids</b> (betamethasone/dexamethasone) for fetal lung maturation",
"Administer <b>magnesium sulphate</b> for neuroprotection (reduces risk of cerebral palsy)",
"Arrange <b>in-utero transfer</b> to a facility with appropriate neonatal intensive care",
]:
story.append(Paragraph(f"• {pt}", BULLET))
story.append(Spacer(1, 4))
story.append(info_box(
"<b>⚠ Key Principle:</b> Tocolysis is a bridge, not a cure. No tocolytic has been proven "
"to reduce neonatal mortality or morbidity independently — benefit comes from the "
"interventions it enables. Maintenance tocolysis beyond 48 hrs is generally NOT recommended."
))
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 2 – GUIDELINE HIERARCHY
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("2. Current Guideline Recommendations (2022–2024)"))
story.append(Spacer(1, 4))
guide_data = [
["Source", "Year", "First-Line Tocolytic", "β2 Agonist Status"],
["WAPM / PMF Guideline\n(Dagklis et al.)", "2023", "CCB (nifedipine)\nor atosiban", "Acceptable alternative;\nhigher SE profile"],
["Cochrane NMA\n(Wilson et al.)", "2022", "CCB + oxytocin\nantagonist (atosiban)", "Effective (low certainty);\nmost maternal SEs"],
["ACOG Practice Bulletin\n(Reaffirmed)", "2022", "Nifedipine or\nindometacin", "Terbutaline SC: short-term\nonly; oral contraindicated"],
["Network MA\n(Xiong et al.)", "2022", "Nifedipine\n(best efficacy/safety)", "Ritodrine: highest\nadverse reaction rate"],
["Meta-analysis\n(Zamani et al.)", "2024", "Nifedipine superior\nto ritodrine", "Nifedipine >> ritodrine\n(β2 agonist) for >1 week"],
]
guide_tbl = Table(guide_data,
colWidths=[4.2*cm, 2*cm, 5.2*cm, 6*cm])
guide_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), NAVY),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]),
("GRID", (0,0), (-1,-1), 0.5, GREY_LINE),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("ALIGN", (1,0), (1,-1), "CENTER"),
]))
story.append(guide_tbl)
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 3 – β2 AGONIST MECHANISM
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("3. β2 Agonist Mechanism of Action"))
story.append(Spacer(1, 4))
mech_steps = [
("1", "β2 Receptor Binding",
"Drug binds β2-adrenoceptors on uterine (myometrial) and vascular smooth muscle."),
("2", "Gs Protein Activation",
"Receptor conformational change → Gs protein activated → GDP displaced by GTP on Gα subunit."),
("3", "Adenylyl Cyclase Stimulation",
"Gα-GTP activates adenylyl cyclase → converts ATP → cyclic AMP (cAMP) inside the cell."),
("4", "PKA Activation",
"Elevated cAMP binds regulatory subunits of Protein Kinase A (PKA), releasing catalytic subunits."),
("5", "Dual Relaxation Pathways",
"PKA (a) phosphorylates and inactivates MLCK (myosin light-chain kinase) → no actin-myosin crossbridging; "
"(b) reduces intracellular Ca²⁺ via inhibiting influx, reducing SR release, and enhancing sequestration."),
("6", "Smooth Muscle Relaxation",
"Net result: uterine muscle relaxes (tocolysis) + peripheral vasodilation."),
]
mech_rows = []
for num, title, desc in mech_steps:
mech_rows.append([
Paragraph(f"<b>{num}</b>", S("n", fontSize=10, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_CENTER, leading=12)),
Paragraph(f"<b>{title}</b><br/>{desc}",
S("md", fontSize=8.5, fontName="Helvetica", textColor=BLACK,
leading=12, spaceAfter=0))
])
mech_tbl = Table(mech_rows, colWidths=[1*cm, 16.4*cm])
mech_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), TEAL),
("BACKGROUND", (1,0), (1,-1), WHITE),
("ROWBACKGROUNDS", (1,0), (1,-1), [WHITE, TEAL_LITE]),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (1,0), (1,-1), 8),
("GRID", (0,0), (-1,-1), 0.3, GREY_LINE),
]))
story.append(mech_tbl)
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 4 – DRUG COMPARISON TABLE
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("4. Tocolytic Agent Comparison"))
story.append(Spacer(1, 4))
comp_data = [
["Parameter", "Nifedipine\n(CCB)", "Atosiban\n(ORA)", "Isoxsuprine\n(β2)", "Terbutaline\n(β2)", "Indomethacin\n(COX-i)"],
["Mechanism", "L-type Ca²⁺\nchannel block", "Oxytocin/AVP\nreceptor antagonist", "β2 agonist\n+ α-block", "β2 agonist\n(selective)", "COX-1/2\ninhibitor → ↓PG"],
["Route", "Oral", "IV", "Oral / IV", "SC / IV / oral\n(oral CI)", "Oral / rectal"],
["Onset", "20–30 min\n(oral)", "~15 min\n(IV)", "~1 hr\n(oral)", "5–15 min\n(SC)", "30–60 min\n(oral)"],
["Efficacy\n(48 hr delay)", "High certainty\nRR 1.16", "High certainty\nRR 1.13", "Low certainty\nRR 1.12", "Low certainty\n(similar)", "Low certainty\nRR 1.11"],
["Side effects", "Hypotension,\nflushing, headache", "Injection site\n(minimal systemic)", "Tachycardia,\npalpitations,\nhypotension", "Tachycardia,\ntremor,\npulmonary edema", "Oligohydramnios\n(>48 hr use),\nductal constriction"],
["Fetal SE", "Minimal", "Minimal", "Fetal tachycardia,\nneonatal hypoglycemia", "Fetal tachycardia,\nneonatal hypoglycemia", "Premature ductal\nclosure if >32 wks"],
["Guideline\nranking", "★★★★★\nFirst-line", "★★★★\nFirst/second-line", "★★★\nAlternative (LMIC)", "★★★\nShort-term SC only", "★★★★\nUse <32 wks, <48 hr"],
["Cost/Access", "Low / oral\n(widely available)", "High / IV\n(hospital only)", "Very low / oral\n(LMIC use)", "Moderate / SC\n(hospital)", "Low / oral"],
]
col_w = [3.1*cm, 2.8*cm, 2.8*cm, 2.8*cm, 2.8*cm, 3.1*cm]
comp_tbl = Table(comp_data, colWidths=col_w, repeatRows=1)
comp_tbl.setStyle(TableStyle([
# Header row
("BACKGROUND", (0,0), (-1,0), NAVY),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("ALIGN", (0,0), (-1,0), "CENTER"),
# Param column
("BACKGROUND", (0,1), (0,-1), GREY_BG),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
# CCB col highlight (first-line)
("BACKGROUND", (1,1), (1,-1), HexColor("#E8F5E9")),
# Rows
("ROWBACKGROUNDS", (1,1), (-1,-1), [WHITE, HexColor("#F9FAFB")]),
("FONTSIZE", (0,0), (-1,-1), 7.5),
("FONTNAME", (1,1), (-1,-1), "Helvetica"),
("GRID", (0,0), (-1,-1), 0.4, GREY_LINE),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("ALIGN", (1,0), (-1,-1), "CENTER"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 3),
("RIGHTPADDING", (0,0), (-1,-1), 3),
# Ranking row highlight
("BACKGROUND", (0,7), (-1,7), ORANGE_LT),
]))
story.append(comp_tbl)
story.append(Paragraph(
"CCB = calcium channel blocker | ORA = oxytocin receptor antagonist | "
"β2 = beta-2 adrenergic agonist | COX-i = cyclo-oxygenase inhibitor | LMIC = low/middle-income country | CI = contraindicated",
CAPTION))
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 5 – Duvadilon Tab vs Retard
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("5. Isoxsuprine Formulations: Duvadilon Tab vs Duvadilon Retard", color=ORANGE))
story.append(Spacer(1, 4))
duva_data = [
["Feature", "Duvadilon Tab (IR)", "Duvadilon Retard (SR/ER)"],
["Active drug", "Isoxsuprine HCl 10 mg", "Isoxsuprine HCl 40 mg"],
["Release", "Immediate-release", "Sustained/Extended-release"],
["Onset", "~1 hour (oral)", "Slower, gradual over hours"],
["Duration", "4–6 hours", "8–12 hours"],
["Frequency", "3–4 times daily (q6–8h)", "Once or twice daily"],
["Peak plasma conc.", "Higher, sharper peak", "Lower, flatter/sustained peak"],
["Side effect profile", "More peak-related SE\n(palpitations, flushing)", "Reduced peak SE\n(smoother release)"],
["Mechanism of action", "IDENTICAL — β2 agonism → ↑cAMP → PKA → ↓Ca²⁺ → smooth muscle relaxation", "IDENTICAL"],
["Clinical use", "Acute/flexible dosing;\ninitiation of therapy", "Maintenance therapy;\nbetter compliance"],
]
duva_tbl = Table(duva_data, colWidths=[4.2*cm, 6.6*cm, 6.6*cm], repeatRows=1)
duva_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ORANGE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("BACKGROUND", (0,1), (0,-1), GREY_BG),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("ROWBACKGROUNDS", (1,1), (-1,-1), [WHITE, ORANGE_LT]),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("FONTNAME", (1,1), (-1,-1), "Helvetica"),
("GRID", (0,0), (-1,-1), 0.4, GREY_LINE),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
# Mechanism row - span + highlight
("SPAN", (1,8), (2,8)),
("BACKGROUND", (0,8), (-1,8), HexColor("#FFF3CD")),
("FONTNAME", (1,8), (2,8), "Helvetica-Bold"),
("TEXTCOLOR", (1,8), (2,8), HexColor("#7B4F00")),
]))
story.append(duva_tbl)
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 6 – CONTRAINDICATIONS & ADVERSE EFFECTS
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("6. Contraindications & Adverse Effects of β2 Agonists"))
story.append(Spacer(1, 4))
left_ci = [
Paragraph("<b>Contraindications</b>", H3),
Paragraph("• Significant cardiovascular disease or arrhythmias", BULLET),
Paragraph("• Uncontrolled maternal diabetes (risk of hyperglycemia)", BULLET),
Paragraph("• Hyperthyroidism (additive tachycardia)", BULLET),
Paragraph("• Eclampsia / severe pre-eclampsia", BULLET),
Paragraph("• Chorioamnionitis (active infection)", BULLET),
Paragraph("• Placenta previa with active bleeding", BULLET),
Paragraph("• Fetal distress requiring immediate delivery", BULLET),
Paragraph("• Known hypersensitivity to drug", BULLET),
Spacer(1, 6),
Paragraph("<b>FDA Warning (Terbutaline)</b>", WARN),
Paragraph(
"Oral and maintenance SC terbutaline are CONTRAINDICATED for tocolysis. "
"Serious cardiac events including death have been reported. "
"Limit IV/SC use to acute, in-hospital short-term therapy only.",
S("fda", fontSize=8, fontName="Helvetica-Oblique", textColor=RED,
leading=11, spaceAfter=0)),
]
right_ae = [
Paragraph("<b>Adverse Effects</b>", H3),
Paragraph("<b>Maternal:</b>", BODY_SM),
Paragraph("• Tachycardia, palpitations (most common)", BULLET),
Paragraph("• Pulmonary edema (serious — monitor fluid balance)", BULLET),
Paragraph("• Hypotension (peripheral vasodilation)", BULLET),
Paragraph("• Hypokalemia (K⁺ shifts intracellularly)", BULLET),
Paragraph("• Hyperglycemia (glycogenolysis)", BULLET),
Paragraph("• Tremor, anxiety, headache, flushing", BULLET),
Spacer(1, 4),
Paragraph("<b>Fetal/Neonatal:</b>", BODY_SM),
Paragraph("• Fetal tachycardia", BULLET),
Paragraph("• Neonatal hypoglycemia (maternal hyperglycemia)", BULLET),
Paragraph("• Neonatal hypocalcemia and hypotension", BULLET),
]
ci_tbl = Table([[left_ci, right_ae]], colWidths=[8.5*cm, 8.5*cm])
ci_tbl.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 4),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("LINEAFTER", (0,0), (0,-1), 0.5, GREY_LINE),
]))
story.append(ci_tbl)
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 7 – CLINICAL DECISION ALGORITHM
# ══════════════════════════════════════════════════════════════════════════
story.append(section_header("7. Clinical Decision Algorithm — Tocolytic Choice"))
story.append(Spacer(1, 4))
algo_data = [
[Paragraph("<b>Confirmed Preterm Labor (24–34 wks gestational age)</b>\n"
"Regular contractions + cervical change (or short cervix on USS)", BODY_SM)],
[Paragraph("↓ Assess for contraindications to tocolysis ↓",
S("arr", fontSize=9, fontName="Helvetica-Bold", textColor=TEAL, alignment=TA_CENTER))],
[Paragraph(
"<b>STEP 1:</b> Administer antenatal corticosteroids (betamethasone 12 mg IM × 2 doses, 24 hr apart)<br/>"
"<b>STEP 2:</b> Administer MgSO₄ for neuroprotection (if <32 wks)<br/>"
"<b>STEP 3:</b> Choose tocolytic for 48-hour window",
BODY_SM)],
]
algo_tbl = Table(algo_data, colWidths=[17.4*cm])
algo_tbl.setStyle(TableStyle([
("BOX", (0,0), (-1,-1), 1.5, TEAL),
("ROWBACKGROUNDS", (0,0), (-1,-1), [TEAL_LITE, WHITE, TEAL_LITE]),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
story.append(algo_tbl)
story.append(Spacer(1, 5))
choice_data = [
["Scenario", "Preferred Tocolytic", "Dosing"],
["High-resource setting\n(standard first-line)", "Nifedipine (CCB)\nor Atosiban", "Nifedipine: 20 mg PO loading, then 10–20 mg q4–8h\nAtosiban: 6.75 mg IV bolus → 18 mg/hr × 3 hr → 6 mg/hr × 45 hr"],
["< 32 weeks gestational age", "Indometacin\n(add to above)", "25–50 mg PR/PO loading, then 25 mg q6h (max 48 hr)"],
["LMIC / oral-only setting", "Isoxsuprine (β2)\nor Nifedipine", "Isoxsuprine IR: 10–20 mg PO q6–8h\nDuvadilon Retard: 40 mg PO once or twice daily"],
["Acute short-term\nhospital tocolysis", "Terbutaline SC", "0.25 mg SC q20–30 min × 3 doses (max), then oral NOT recommended"],
["Tocolysis contraindicated\nor failed", "Immediate delivery\npreparation", "Ensure steroids given; arrange NICU; consider MgSO₄ only"],
]
choice_tbl = Table(choice_data, colWidths=[4.5*cm, 4.5*cm, 8.4*cm], repeatRows=1)
choice_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), NAVY),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]),
("FONTSIZE", (0,0), (-1,-1), 8),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("GRID", (0,0), (-1,-1), 0.4, GREY_LINE),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
]))
story.append(choice_tbl)
story.append(Spacer(1, 6))
# ══════════════════════════════════════════════════════════════════════════
# SECTION 8 – REFERENCES
# ══════════════════════════════════════════════════════════════════════════
story.append(HRFlowable(width="100%", thickness=1, color=GREY_LINE))
story.append(Spacer(1, 4))
story.append(Paragraph("<b>References & Evidence Sources</b>",
S("refhdr", fontSize=9, fontName="Helvetica-Bold",
textColor=NAVY, leading=12, spaceAfter=4)))
refs = [
"[1] Dagklis T et al. Management of preterm labor: Clinical practice guideline by WAPM-PMF. "
"Eur J Obstet Gynecol Reprod Biol. 2023 Dec. PMID: 37913556. DOI: 10.1016/j.ejogrb.2023.10.013",
"[2] Wilson A et al. Tocolytics for delaying preterm birth: a network meta-analysis. "
"Cochrane Database Syst Rev. 2022;8:CD014978. PMID: 35947046. DOI: 10.1002/14651858.CD014978.pub2",
"[3] Xiong Z et al. Four kinds of tocolytic therapy for preterm delivery: Systematic review and network meta-analysis. "
"J Clin Pharm Ther. 2022;47(7). PMID: 35304748. DOI: 10.1111/jcpt.13641",
"[4] Zamani M et al. Comparison of nifedipine with ritodrine, nitroglycerine and magnesium sulfate for preterm labor. "
"BMC Pregnancy Childbirth. 2024;24:309. PMID: 38664622. DOI: 10.1186/s12884-024-06497-w",
"[5] ACOG Practice Bulletin: Management of Preterm Labor. Obstet Gynecol. Oct 2016, Reaffirmed 2022.",
"[6] FDA Drug Safety Communication: New warnings against use of terbutaline for preterm labor. 2011 (updated 2012).",
"[7] DrugBank DB08941 — Isoxsuprine. https://go.drugbank.com/drugs/DB08941",
]
for r in refs:
story.append(Paragraph(r, REF))
story.append(Spacer(1, 5))
story.append(Paragraph(
"This document is a clinical reference summary for educational purposes. "
"Always verify drug dosages and guideline recommendations against current local protocols. "
f"Generated by Orris Medical Reference | {datetime.date.today().strftime('%d %B %Y')}",
CAPTION))
doc.build(story)
print(f"PDF created: {OUTPUT}")
if __name__ == "__main__":
build_pdf()
cd /home/daytona/workspace/tocolytic-guidelines && python generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/tocolytic-guidelines/
Tocolytic Guidelines Clinical Reference
PDF Document · PDF
| Section | Content |
|---|---|
| 1. Overview & Rationale | Goals of tocolysis, the 48-hr window concept, key principle box |
| 2. Current Guideline Recommendations | Table of WAPM 2023, Cochrane 2022, ACOG 2022, and two meta-analyses with first-line recommendations |
| 3. β2 Agonist Mechanism | 6-step color-coded cascade: receptor → Gs → adenylyl cyclase → cAMP → PKA → dual relaxation |
| 4. Tocolytic Agent Comparison | Full 5-drug table (nifedipine, atosiban, isoxsuprine, terbutaline, indomethacin) across 9 parameters |
| 5. Duvadilon Tab vs Retard | Side-by-side formulation comparison with mechanism equivalence highlighted |
| 6. Contraindications & Adverse Effects | Two-column layout - maternal/fetal SE + FDA black-box warning on terbutaline |
| 7. Clinical Decision Algorithm | Step-by-step tocolytic selection table by clinical scenario with dosing |
| References | 7 cited sources with PMIDs and DOIs |
tocolytic guidelines for clinical reference
Tocolysis buys time — it does not prevent preterm birth. The 48-hour window gained is used to administer antenatal corticosteroids, magnesium sulphate, and arrange in-utero transfer. Maintenance tocolysis beyond 48 hours is NOT recommended by current guidelines.
| Intervention | Drug & Dose | Purpose |
|---|---|---|
| Antenatal corticosteroids | Betamethasone 12 mg IM × 2 doses, 24 hrs apart | Fetal lung maturation |
| Neuroprotection | MgSO₄ 4g IV loading → 1g/hr (if <32 wks) | Reduces cerebral palsy risk |
| GBS prophylaxis | Penicillin G if indicated | Infection prevention |
| Drug | Dose | Notes |
|---|---|---|
| Isoxsuprine (Duvadilon) | 10–20 mg PO q6–8h (IR) OR 40 mg PO BD (Retard) | Preferred in LMIC; oral availability; also vasodilates peripheral vessels |
| Terbutaline | 0.25 mg SC q20–30 min × max 3 doses | Hospital only, short-term acute use; oral/maintenance CI per FDA |
| Ritodrine | 50–100 mcg/min IV (titrate) | Largely replaced; highest adverse reaction rate in NMA data |
| Clinical Scenario | Recommended Agent |
|---|---|
| Standard first-line, high-resource | Nifedipine PO OR atosiban IV |
| <32 weeks, intact membranes | Add indomethacin (≤48 hrs) |
| LMIC / oral-only access | Nifedipine OR isoxsuprine (Duvadilon) |
| Acute, in-hospital, IV access needed | Atosiban or IV ritodrine |
| Short-term acute suppression only | Terbutaline 0.25 mg SC × 1–3 doses |
| Nifedipine contraindicated (hypotension) | Atosiban first choice |
| Tocolysis failed or CI | Prepare for delivery; ensure steroids + MgSO₄ given |
| Study | Type | Key Finding |
|---|---|---|
| Wilson et al., Cochrane 2022 (PMID 35947046) | NMA, 122 RCTs, 13,697 women | All tocolytics effective; CCB = best certainty + prolongation; β2 = effective but most SE |
| Dagklis et al., WAPM 2023 (PMID 37913556) | Practice Guideline | Tocolysis enables corticosteroids/MgSO₄/transfer; nifedipine/atosiban preferred |
| Xiong et al., J Clin Pharm Ther 2022 (PMID 35304748) | NMA, 44 RCTs, 6,939 pts | Nifedipine best efficacy + safety; ritodrine (β2) = highest adverse reaction rate |
| Zamani et al., BMC 2024 (PMID 38664622) | Meta-analysis, 40 RCTs | Nifedipine > ritodrine for >1-week delay (RD 0.11); similar to MgSO₄ |
| ACOG Practice Bulletin, Reaffirmed 2022 | Guideline | Nifedipine/indomethacin first-line; FDA black-box on oral/maintenance terbutaline |
TOCOLYSIS = TIME
T – Two drugs: nifedipine (1st) + indomethacin if <32 wks
I – Indication: 24–34 wks + confirmed labor
M – Mandatory: steroids + MgSO₄ FIRST
E – End point: 48 hours only (no maintenance)
β2 Agonists (Isoxsuprine/Terbutaline):
β2 → Gs → cAMP → PKA → ↓Ca²⁺ → relaxation
USE WHEN: LMIC setting, no nifedipine/atosiban available
AVOID: Long-term oral terbutaline (FDA black-box)
Tocolytic Guidelines Clinical Reference
PDF Document · PDF