Dyslipidemia in pregnancy
dyslipidemia pregnancy management
lipid changes pregnancy hypertriglyceridemia complications
PMID: 39275243
PMID: 42328555
| Lipid Parameter | Change | Trimester Peak |
|---|---|---|
| Total cholesterol | +25-50% | 3rd trimester |
| LDL-C | +50% (particle size decreases) | 3rd trimester |
| VLDL / Triglycerides | +2 to 3-fold | 3rd trimester |
| HDL-C | +15-30% rise then decline | 2nd trimester peak |
| Lipid | Change in Preeclampsia | Effect Size (SMD) |
|---|---|---|
| LDL | Elevated | +0.44 (95% CI: 0.32-0.55) |
| Triglycerides | Elevated | +0.47 (95% CI: 0.36-0.59) |
| Total Cholesterol | Elevated | +0.24 (95% CI: 0.18-0.31) |
| HDL | Reduced | -0.14 (95% CI: -0.18 to -0.10) |
| Drug Class | Pregnancy Status | Notes |
|---|---|---|
| Statins (all) | Contraindicated | Theoretical teratogenicity via cholesterol synthesis inhibition |
| Ezetimibe | Contraindicated | Combination with statins specifically contraindicated |
| Niacin | Contraindicated | |
| PCSK9 inhibitors (mAbs: alirocumab, evolocumab) | Contraindicated | Potential fetal effects |
| Inclisiran (siRNA) | Contraindicated | |
| Lomitapide | Contraindicated | |
| Bile acid sequestrants (cholestyramine, colestipol, colesevelam) | Probably safest | Not systemically absorbed; GI side effects (bloating, constipation); can impair absorption of fat-soluble vitamins |
| Omega-3 fatty acids (EPA/DHA) | Used cautiously | Adjunct for severe hypertriglyceridemia (TG >500 mg/dL); monitor anticoagulant effects |
| Fibrates | Used with caution | Reserved for severe, life-threatening hypertriglyceridemia only |
Generate a clinical summary document for managing dyslipidemia in pregnancy
mkdir -p /tmp/workspace/dyslipidemia-pregnancy && ls /tmp/workspace/dyslipidemia-pregnancy/
~/dyslipidemia-pregnancy/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import PageBreak
OUTPUT = "/tmp/workspace/dyslipidemia-pregnancy/Dyslipidemia_in_Pregnancy_Clinical_Summary.pdf"
# ── Colour palette ──────────────────────────────────────────────
TEAL = colors.HexColor("#1A6B8A")
TEAL_LIGHT= colors.HexColor("#D6EEF5")
TEAL_MID = colors.HexColor("#A3D3E3")
ORANGE = colors.HexColor("#D95F02")
ORANGE_L = colors.HexColor("#FDEBD0")
RED = colors.HexColor("#C0392B")
RED_L = colors.HexColor("#FADBD8")
GREEN = colors.HexColor("#1E8449")
GREEN_L = colors.HexColor("#D5F5E3")
GREY_BG = colors.HexColor("#F4F6F7")
GREY_LINE = colors.HexColor("#BDC3C7")
WHITE = colors.white
BLACK = colors.HexColor("#1C1C1C")
# ── Styles ───────────────────────────────────────────────────────
base = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
TITLE_S = S("Title",
fontName="Helvetica-Bold", fontSize=22, textColor=WHITE,
leading=28, alignment=TA_CENTER, spaceAfter=4)
SUBTITLE_S = S("Subtitle",
fontName="Helvetica", fontSize=12, textColor=WHITE,
leading=16, alignment=TA_CENTER)
SECTION_S = S("Section",
fontName="Helvetica-Bold", fontSize=13, textColor=WHITE,
leading=17, spaceBefore=14, spaceAfter=4,
backColor=TEAL, leftIndent=-8, rightIndent=-8,
borderPad=5)
SUBSECTION_S = S("Subsection",
fontName="Helvetica-Bold", fontSize=11, textColor=TEAL,
leading=15, spaceBefore=8, spaceAfter=2)
BODY_S = S("Body",
fontName="Helvetica", fontSize=9.5, textColor=BLACK,
leading=14, spaceAfter=4, alignment=TA_JUSTIFY)
BULLET_S = S("Bullet",
fontName="Helvetica", fontSize=9.5, textColor=BLACK,
leading=13, leftIndent=12, firstLineIndent=-10,
spaceAfter=3)
BULLET2_S = S("Bullet2",
fontName="Helvetica", fontSize=9, textColor=BLACK,
leading=13, leftIndent=24, firstLineIndent=-10,
spaceAfter=2)
NOTE_S = S("Note",
fontName="Helvetica-Oblique", fontSize=8.5, textColor=colors.HexColor("#555555"),
leading=12, spaceAfter=4)
TABLE_HDR = S("TableHdr",
fontName="Helvetica-Bold", fontSize=9, textColor=WHITE,
leading=12, alignment=TA_CENTER)
TABLE_CELL = S("TableCell",
fontName="Helvetica", fontSize=9, textColor=BLACK,
leading=12, alignment=TA_LEFT)
TABLE_CELL_C = S("TableCellC",
fontName="Helvetica", fontSize=9, textColor=BLACK,
leading=12, alignment=TA_CENTER)
WARN_S = S("Warn",
fontName="Helvetica-Bold", fontSize=9.5, textColor=RED,
leading=13, leftIndent=12, firstLineIndent=-10, spaceAfter=3)
REF_S = S("Ref",
fontName="Helvetica-Oblique", fontSize=8, textColor=colors.HexColor("#6D6D6D"),
leading=11, spaceAfter=2)
# ── Helper: section header ────────────────────────────────────────
def sec_hdr(txt):
return [
Spacer(1, 6),
Table([[Paragraph(txt, SECTION_S)]],
colWidths=[17.4*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), TEAL),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING",(0,0),(-1,-1), 8),
("ROUNDEDCORNERS", [4]),
])),
Spacer(1, 5),
]
def subsec(txt):
return Paragraph(txt, SUBSECTION_S)
def body(txt):
return Paragraph(txt, BODY_S)
def bullet(txt, indent=1):
s = BULLET_S if indent == 1 else BULLET2_S
return Paragraph(f"• {txt}", s)
def warn(txt):
return Paragraph(f"⚠ {txt}", WARN_S)
def note(txt):
return Paragraph(txt, NOTE_S)
def spacer(h=6):
return Spacer(1, h)
# ── Coloured callout box ──────────────────────────────────────────
def callout(title, items, bg=TEAL_LIGHT, border=TEAL, title_color=TEAL):
content = [[Paragraph(f"<b><font color='#{border.hexval()[2:]}'>{title}</font></b>",
S("ch", fontName="Helvetica-Bold", fontSize=10,
textColor=border, leading=14))]]
for it in items:
content.append([Paragraph(f"• {it}", BULLET_S)])
t = Table(content, colWidths=[16.5*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1.5, border),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING",(0,0),(-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
]))
return [t, spacer(6)]
# ── Build document ────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
topMargin=1.5*cm, bottomMargin=1.8*cm,
leftMargin=2*cm, rightMargin=2*cm,
title="Dyslipidemia in Pregnancy – Clinical Summary",
author="Orris Medical Education",
subject="Obstetric Lipidology",
)
story = []
# ═══════════════ TITLE BLOCK ════════════════════════════════════
title_data = [[
Paragraph("Dyslipidemia in Pregnancy", TITLE_S),
],[
Paragraph("Clinical Summary for Medical Education | July 2026", SUBTITLE_S),
]]
title_tbl = Table(title_data, colWidths=[17.4*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), TEAL),
("TOPPADDING", (0,0), (-1,-1), 14),
("BOTTOMPADDING",(0,0),(-1,-1), 14),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING",(0,0),(-1,-1), 12),
("ROUNDEDCORNERS", [6]),
]))
story.append(title_tbl)
story.append(spacer(10))
# ═══════════════ SECTION 1: PHYSIOLOGY ══════════════════════════
story += sec_hdr("1. Physiological Lipid Changes in Normal Pregnancy")
story.append(body(
"Pregnancy induces substantial, adaptive changes in lipid metabolism designed to "
"support fetal development, placental function, and energy reserves. These changes "
"are driven primarily by rising estrogen, progesterone, and insulin levels that "
"collectively increase lipogenesis and suppress peripheral lipolysis."
))
story.append(spacer(4))
# Lipid changes table
lip_hdr = ["Lipid Parameter", "Direction", "Magnitude", "Peak Trimester"]
lip_rows = [
["Total Cholesterol", "↑ Increase", "+25–50%", "3rd"],
["LDL-C", "↑ Increase", "+50%", "3rd"],
["LDL particle size", "↓ Decrease", "Smaller, denser","3rd"],
["Triglycerides (TG)", "↑↑ Increase", "2–3× baseline","3rd"],
["VLDL", "↑ Increase", "Marked", "3rd"],
["HDL-C", "↑ then ↓", "+15–30%, then falls","2nd peak"],
]
lip_tbl_data = [[Paragraph(c, TABLE_HDR) for c in lip_hdr]]
for i, row in enumerate(lip_rows):
bg = GREY_BG if i % 2 == 0 else WHITE
lip_tbl_data.append([Paragraph(cell, TABLE_CELL) for cell in row])
lip_tbl = Table(lip_tbl_data,
colWidths=[5.2*cm, 3.5*cm, 4.5*cm, 4.2*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("ROWBACKGROUNDS", (0,1),(-1,-1), [GREY_BG, WHITE]),
("GRID", (0,0),(-1,-1), 0.5, GREY_LINE),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 7),
("RIGHTPADDING", (0,0),(-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(lip_tbl)
story.append(spacer(6))
story.append(subsec("Key Mechanisms"))
story.append(bullet("Estrogen and progesterone → ↑ hepatic VLDL production and ↑ triglyceride synthesis"))
story.append(bullet("Suppression of peripheral lipoprotein lipase (LPL) → impaired TG clearance"))
story.append(bullet("Hypertrophy of maternal adipocytes → disproportionate lipogenesis over lipolysis"))
story.append(bullet("LDL particle size decreases (more atherogenic dense LDL pattern)"))
story.append(note("Source: Fitzpatrick's Dermatology, Creasy & Resnik's Maternal-Fetal Medicine"))
story.append(spacer(4))
# ═══════════════ SECTION 2: PATHOLOGICAL DYSLIPIDEMIA ═══════════
story += sec_hdr("2. Pathological Dyslipidemia in Pregnancy")
story.append(body(
"Pregnancy is an independent secondary cause of both elevated LDL-C and elevated "
"triglycerides. Women with underlying lipid disorders are at highest risk for "
"serious pregnancy complications."
))
story.append(spacer(4))
story.append(subsec("A. Severe Hypertriglyceridemia (TG > 500–1000 mg/dL)"))
story.append(bullet("Most dangerous lipid disorder in pregnancy"))
story.append(bullet("Occurs when physiological TG rise is superimposed on familial hypertriglyceridemia or familial hyperchylomicronemia"))
story.append(bullet("Primary risk: acute pancreatitis — a life-threatening obstetric emergency"))
story.append(bullet("TG > 1000 mg/dL: consider plasmapheresis / LDL apheresis to prevent pancreatitis"))
story.append(bullet("Eruptive xanthomas may appear on skin as TG rises markedly"))
story.append(spacer(4))
story.append(subsec("B. Familial Hypercholesterolemia (FH) in Pregnancy"))
story.append(bullet("Heterozygous FH: 20-fold higher lifetime ASCVD risk (Goldman-Cecil Medicine)"))
story.append(bullet("Statins and PCSK9 inhibitors are contraindicated — must be stopped before conception"))
story.append(bullet("Untreated maternal hypercholesterolemia may accelerate fetal aortic atherosclerosis"))
story.append(bullet("Bile acid sequestrants are the only pharmacological option if treatment is needed"))
story.append(spacer(4))
story.append(subsec("C. Pregnancy as a Secondary Cause — Classification"))
sec_cause_data = [
[Paragraph("Secondary Cause", TABLE_HDR), Paragraph("Elevated LDL-C", TABLE_HDR), Paragraph("Elevated TG", TABLE_HDR)],
[Paragraph("Pregnancy", TABLE_CELL), Paragraph("Yes", TABLE_CELL_C), Paragraph("Yes (marked)", TABLE_CELL_C)],
[Paragraph("Hypothyroidism", TABLE_CELL), Paragraph("Yes", TABLE_CELL_C), Paragraph("Yes", TABLE_CELL_C)],
[Paragraph("Obesity / MetS", TABLE_CELL), Paragraph("Yes", TABLE_CELL_C), Paragraph("Yes", TABLE_CELL_C)],
[Paragraph("Poorly controlled DM", TABLE_CELL), Paragraph("Variable", TABLE_CELL_C), Paragraph("Yes (marked)", TABLE_CELL_C)],
[Paragraph("Oral estrogens", TABLE_CELL), Paragraph("No", TABLE_CELL_C), Paragraph("Yes", TABLE_CELL_C)],
]
sec_tbl = Table(sec_cause_data, colWidths=[6*cm, 5.7*cm, 5.7*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("ROWBACKGROUNDS", (0,1),(-1,-1), [GREY_BG, WHITE]),
("GRID", (0,0),(-1,-1), 0.5, GREY_LINE),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 7),
("RIGHTPADDING", (0,0),(-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(sec_tbl)
story.append(note("Source: ACC/AHA Table, Textbook of Family Medicine 9e"))
story.append(spacer(4))
# ═══════════════ SECTION 3: COMPLICATIONS ═══════════════════════
story += sec_hdr("3. Maternal and Fetal Complications")
story.append(body(
"Dyslipidemia in pregnancy is associated with multiple adverse outcomes. A 2026 "
"meta-analysis (Li & Du, PMID 42328555, Frontiers in Medicine) of 12 studies "
"confirmed significant lipid alterations in preeclampsia:"
))
story.append(spacer(4))
# Preeclampsia meta-analysis table
pe_hdr = ["Lipid", "Change in Preeclampsia", "Effect (SMD, 95% CI)", "Significance"]
pe_rows = [
["LDL-C", "↑ Elevated", "+0.44 (0.32–0.55)", "p < 0.05"],
["Triglycerides", "↑ Elevated", "+0.47 (0.36–0.59)", "p < 0.05"],
["Total Cholesterol","↑ Elevated", "+0.24 (0.18–0.31)", "p < 0.05"],
["HDL-C", "↓ Reduced", "−0.14 (−0.18 to −0.10)", "p < 0.05"],
]
pe_tbl_data = [[Paragraph(c, TABLE_HDR) for c in pe_hdr]]
for i, row in enumerate(pe_rows):
bg = GREY_BG if i % 2 == 0 else WHITE
pe_tbl_data.append([Paragraph(cell, TABLE_CELL) for cell in row])
pe_tbl = Table(pe_tbl_data,
colWidths=[3.8*cm, 3.8*cm, 5.8*cm, 4*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("ROWBACKGROUNDS", (0,1),(-1,-1), [GREY_BG, WHITE]),
("GRID", (0,0),(-1,-1), 0.5, GREY_LINE),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 7),
("RIGHTPADDING", (0,0),(-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(pe_tbl)
story.append(note(
"Preeclampsia group had OR 3.90 (95% CI 2.62–5.81) for adverse pregnancy outcomes. "
"Results were consistent after BMI adjustment (causal inference not established)."
))
story.append(spacer(4))
story.append(subsec("Other Documented Complications"))
story.append(bullet("Acute pancreatitis (TG > 1000 mg/dL) — potentially life-threatening"))
story.append(bullet("Gestational diabetes mellitus (bidirectional association with dyslipidemia)"))
story.append(bullet("Fetal macrosomia — maternal TG correlates with birth weight"))
story.append(bullet("Preterm birth and placental dysfunction"))
story.append(bullet("Long-term increased ASCVD risk for both mother and offspring"))
story.append(note("Source: Creasy & Resnik's Maternal-Fetal Medicine; Formisano et al., Nutrients 2024"))
story.append(spacer(4))
# ═══════════════ PAGE BREAK ══════════════════════════════════════
story.append(PageBreak())
# ═══════════════ SECTION 4: DRUG SAFETY ═════════════════════════
story += sec_hdr("4. Drug Safety in Pregnancy — Lipid-Lowering Agents")
# Drug safety table
drug_hdr = ["Drug Class / Agent", "Pregnancy Status", "Key Notes"]
drug_rows = [
["Statins (all: atorvastatin,\nrosuvastatin, etc.)",
"CONTRAINDICATED",
"Inhibit cholesterol synthesis needed for fetal development; potential teratogenicity"],
["Ezetimibe",
"CONTRAINDICATED",
"Especially contraindicated in combination with statins"],
["Niacin / Nicotinic acid",
"CONTRAINDICATED",
"Fetal harm risk; listed explicitly in ACC/AHA guidelines"],
["PCSK9 inhibitors\n(alirocumab, evolocumab)",
"CONTRAINDICATED",
"Monoclonal antibodies cross placenta; potential fetal effects"],
["Inclisiran (siRNA)",
"CONTRAINDICATED",
"Insufficient safety data; avoid during pregnancy"],
["Lomitapide / Mipomersen",
"CONTRAINDICATED",
"Used in HoFH only; contraindicated in pregnancy"],
["Bile acid sequestrants\n(cholestyramine, colesevelam)",
"PROBABLY SAFE",
"Not systemically absorbed; safest lipid-lowering option.\nCaution: may impair absorption of fat-soluble vitamins and folate"],
["Omega-3 fatty acids\n(EPA/DHA)",
"USE WITH CAUTION",
"Adjunct for severe TG > 500 mg/dL; monitor bleeding time if on anticoagulants"],
["Fibrates\n(fenofibrate, gemfibrozil)",
"USE WITH CAUTION",
"Reserved for life-threatening hypertriglyceridemia only; limited safety data"],
]
CONTRA_S = S("contra", fontName="Helvetica-Bold", fontSize=8.5, textColor=RED, leading=11, alignment=TA_CENTER)
SAFE_S = S("safe", fontName="Helvetica-Bold", fontSize=8.5, textColor=GREEN, leading=11, alignment=TA_CENTER)
CAUTION_S = S("caution", fontName="Helvetica-Bold", fontSize=8.5, textColor=ORANGE, leading=11, alignment=TA_CENTER)
def status_para(txt):
if "CONTRAINDICATED" in txt:
return Paragraph(txt, CONTRA_S)
elif "PROBABLY SAFE" in txt:
return Paragraph(txt, SAFE_S)
else:
return Paragraph(txt, CAUTION_S)
drug_tbl_data = [[Paragraph(c, TABLE_HDR) for c in drug_hdr]]
for i, row in enumerate(drug_rows):
bg = GREY_BG if i % 2 == 0 else WHITE
drug_tbl_data.append([
Paragraph(row[0], TABLE_CELL),
status_para(row[1]),
Paragraph(row[2], TABLE_CELL),
])
drug_tbl = Table(drug_tbl_data,
colWidths=[4.8*cm, 3.8*cm, 8.8*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("ROWBACKGROUNDS", (0,1),(-1,-1), [GREY_BG, WHITE]),
("GRID", (0,0),(-1,-1), 0.5, GREY_LINE),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 7),
("RIGHTPADDING", (0,0),(-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(drug_tbl)
story.append(note("Source: Goodman & Gilman's Pharmacological Basis of Therapeutics; Goldman-Cecil Medicine; ACC/AHA 2013 Guidelines"))
story.append(spacer(4))
# ═══════════════ SECTION 5: MANAGEMENT ═════════════════════════
story += sec_hdr("5. Management Algorithm")
story.append(subsec("Step 1 — Identify and Treat Secondary Causes First"))
story.append(bullet("Screen for hypothyroidism (TSH), poorly controlled diabetes (HbA1c), nephrotic syndrome"))
story.append(bullet("Review medications causing dyslipidemia (glucocorticoids, oral estrogens, thiazides, beta-blockers)"))
story.append(bullet("Optimize glycaemic control in gestational diabetes"))
story.append(spacer(4))
story.append(subsec("Step 2 — Non-Pharmacological Therapy (First Line for ALL)"))
story.append(bullet("Dietary fat: reduce saturated fat < 7% total calories; increase mono/polyunsaturated fats"))
story.append(bullet("Dietary cholesterol: < 200 mg/day"))
story.append(bullet("For severe hypertriglyceridemia: very-low-fat diet with medium-chain triglyceride supplementation"))
story.append(bullet("Reduce refined carbohydrates and simple sugars (key TG driver)"))
story.append(bullet("Regular moderate-intensity aerobic exercise 20–30 min, 5×/week (with obstetric clearance)"))
story.append(bullet("Viscous fibre and plant stanols to reduce cholesterol absorption"))
story.append(spacer(4))
story.append(subsec("Step 3 — Pharmacological Therapy (When Diet Fails)"))
# Management flowchart-style table
mgmt_data = [
[Paragraph("Clinical Scenario", TABLE_HDR),
Paragraph("Target / Trigger", TABLE_HDR),
Paragraph("Preferred Intervention", TABLE_HDR)],
[Paragraph("Mild–moderate LDL elevation\n(no FH)", TABLE_CELL),
Paragraph("Observe; defer until postpartum", TABLE_CELL_C),
Paragraph("Diet + lifestyle; resume statin after delivery", TABLE_CELL)],
[Paragraph("Familial Hypercholesterolemia (FH)", TABLE_CELL),
Paragraph("High ASCVD risk", TABLE_CELL_C),
Paragraph("Bile acid sequestrant (cholestyramine/colesevelam); LDL apheresis for extreme cases", TABLE_CELL)],
[Paragraph("TG 500–999 mg/dL", TABLE_CELL),
Paragraph("Pancreatitis risk", TABLE_CELL_C),
Paragraph("Very-low-fat diet + omega-3 FA; fibrates if diet fails", TABLE_CELL)],
[Paragraph("TG ≥ 1000 mg/dL", TABLE_CELL),
Paragraph("Acute pancreatitis imminent", TABLE_CELL_C),
Paragraph("URGENT: hospitalise; plasmapheresis / LDL apheresis; multidisciplinary team", TABLE_CELL)],
]
mgmt_tbl = Table(mgmt_data,
colWidths=[4.5*cm, 4*cm, 8.9*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,0), TEAL),
("BACKGROUND", (0,4), (-1,4), RED_L),
("BACKGROUND", (0,3), (-1,3), ORANGE_L),
("ROWBACKGROUNDS", (0,1),(-1,2), [GREY_BG, WHITE]),
("GRID", (0,0),(-1,-1), 0.5, GREY_LINE),
("TOPPADDING", (0,0),(-1,-1), 6),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("LEFTPADDING", (0,0),(-1,-1), 7),
("RIGHTPADDING", (0,0),(-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(mgmt_tbl)
story.append(spacer(4))
# ═══════════════ SECTION 6: MONITORING ══════════════════════════
story += sec_hdr("6. Monitoring in Pregnancy")
story.append(bullet("Obtain lipid panel at preconception counselling for all women with known dyslipidemia"))
story.append(bullet("Fasting lipid profile: each trimester in women with pre-existing hyperlipidaemia or FH"))
story.append(bullet("Screen for secondary causes: TFTs, fasting glucose / HbA1c, renal function"))
story.append(bullet("Monitor fat-soluble vitamin levels (A, D, E, K) and folate if on bile acid sequestrants"))
story.append(bullet("Vigilance for signs of pancreatitis: epigastric pain, nausea, vomiting (especially if TG > 500 mg/dL)"))
story.append(bullet("Postpartum: recheck lipids 6–12 weeks after delivery; restart statins if indicated"))
story.append(spacer(4))
# ═══════════════ SECTION 7: SPECIAL POPULATIONS ════════════════
story += sec_hdr("7. Special Populations and Inherited Disorders")
story.append(subsec("Familial Hypertriglyceridemia / Hyperchylomicronemia"))
story.append(bullet("Personalized dietary adjustments are the cornerstone of management"))
story.append(bullet("Even small amounts of dietary long-chain fat may precipitate extreme TG elevations"))
story.append(bullet("Medium-chain triglycerides (MCTs) can be substituted as fat calories"))
story.append(bullet("Multidisciplinary team (obstetrician + lipidologist + dietitian) is essential"))
story.append(spacer(4))
story.append(subsec("Pre-existing FH — Preconception Planning"))
story.append(bullet("Optimise LDL-C reduction with statin + ezetimibe BEFORE pregnancy"))
story.append(bullet("Discontinue statins, ezetimibe, and PCSK9 inhibitors as soon as pregnancy confirmed"))
story.append(bullet("Bile acid sequestrants can be continued if cholesterol control is needed"))
story.append(bullet("LDL apheresis is an option for high-risk women with HoFH who cannot achieve adequate control"))
story.append(bullet("Resume statin therapy promptly postpartum once breastfeeding is completed"))
story.append(spacer(4))
# ═══════════════ KEY POINTS BOX ═════════════════════════════════
story += sec_hdr("8. Key Teaching Points")
kp_data = [[
Paragraph(
"<b>Physiological:</b> Pregnancy normally raises TG 2–3x, LDL ~50%, and total "
"cholesterol 25–50%. HDL rises early then falls. These changes are adaptive but "
"exacerbate pre-existing lipid disorders.<br/><br/>"
"<b>Most dangerous complication:</b> TG > 1000 mg/dL — risk of acute pancreatitis. "
"Requires urgent hospitalisation and possibly plasmapheresis.<br/><br/>"
"<b>Drug rule:</b> Statins, ezetimibe, niacin, PCSK9 inhibitors, inclisiran, "
"lomitapide are ALL contraindicated in pregnancy. Bile acid sequestrants are "
"the ONLY reasonably safe drug option.<br/><br/>"
"<b>Preeclampsia link (2026 meta-analysis):</b> PE patients have elevated LDL, "
"TG, TC and lower HDL. Adverse outcome OR = 3.90 — lipid monitoring is clinically relevant.<br/><br/>"
"<b>Management hierarchy:</b> Secondary cause treatment → diet/lifestyle → "
"bile acid sequestrants → omega-3s / fibrates → apheresis.",
S("kp", fontName="Helvetica", fontSize=10, textColor=BLACK, leading=16)
)
]]
kp_tbl = Table(kp_data, colWidths=[17.4*cm],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), TEAL_LIGHT),
("BOX", (0,0), (-1,-1), 2, TEAL),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING",(0,0),(-1,-1), 12),
("TOPPADDING", (0,0), (-1,-1), 12),
("BOTTOMPADDING",(0,0),(-1,-1), 12),
]))
story.append(kp_tbl)
story.append(spacer(8))
# ═══════════════ REFERENCES ════════════════════════════════════
story += sec_hdr("References")
refs = [
"Fitzpatrick's Dermatology, 9th Ed. (McGraw-Hill). Secondary Causes of Dyslipidemia — Pregnancy section, p. 2312.",
"Textbook of Family Medicine, 9th Ed. (Elsevier). Chapter 27: ACC/AHA Secondary Causes of Hyperlipidemia Table.",
"Goldman-Cecil Medicine International Edition, 2-Vol Set. Pregnancy and Lactation section — FH management.",
"Goodman & Gilman's Pharmacological Basis of Therapeutics, 14th Ed. Drug Facts: Therapy for Dyslipidemia, pp. 762–763.",
"Creasy & Resnik's Maternal-Fetal Medicine: Principles and Practice. Lipid metabolism in pregnancy.",
"Li L, Du X. Association between blood lipid levels and preeclampsia: a meta-analysis. Front Med (Lausanne). 2026. PMID: 42328555.",
"Formisano E, et al. Characteristics, Physiopathology and Management of Dyslipidemias in Pregnancy: A Narrative Review. Nutrients. 2024;16(17):2927. PMID: 39275243.",
"Zheng X, et al. A multidisciplinary management model for severe gestational hypertriglyceridemia: using plasmapheresis to prevent pancreatitis in pregnancy. BMC Pregnancy Childbirth. 2025. PMID: 41088095.",
"Stone NJ, et al. 2013 ACC/AHA Guideline on the Treatment of Blood Cholesterol. Circulation. 2014;129(25 Suppl 2):S1-S45.",
]
for r in refs:
story.append(Paragraph(f"• {r}", REF_S))
story.append(spacer(6))
story.append(HRFlowable(width="100%", thickness=0.5, color=GREY_LINE))
story.append(spacer(4))
story.append(Paragraph(
"Generated by Orris Medical Education Assistant | July 2026 | For educational use only.",
S("footer", fontName="Helvetica-Oblique", fontSize=7.5,
textColor=colors.HexColor("#888888"), alignment=TA_CENTER)
))
# ── Build PDF ─────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /tmp/workspace/dyslipidemia-pregnancy && python generate_pdf.py
ls -lh /tmp/workspace/dyslipidemia-pregnancy/Dyslipidemia_in_Pregnancy_Clinical_Summary.pdf
Dyslipidemia in Pregnancy Clinical Summary
PDF Document · PDF