Approach to the Patient: Diagnosis of Cushing Syndrome Mesut Savas 1,b, Sonal Mehta 2,b, Nidhi Agrawal 3, Elisabeth F C van Rossum 4,✉, Richard A Feelders 5.....I want you to open this pubmed index and create me a flow chart with every basic concept inclusive
Savas Mehta Agrawal van Rossum Feelders diagnosis Cushing syndrome approach patient
Savas Mehta Agrawal van Rossum Feelders "Approach to the Patient Diagnosis of Cushing Syndrome" PubMed
PMID: 36036941
https://pmc.ncbi.nlm.nih.gov/articles/PMC9681610
A detailed medical diagnostic flowchart titled "Approach to the Patient: Diagnosis of Cushing Syndrome" based on Savas, Mehta, Agrawal, van Rossum & Feelders (J Clin Endocrinol Metab, 2022). The flowchart should be clean, professional, white background, with color-coded boxes and arrows flowing top to bottom, covering ALL of the following stages: STAGE 1 — CLINICAL SUSPICION (blue header box): • High-risk features: central obesity, moon face, buffalo hump, purple striae >1cm, proximal myopathy, easy bruising, facial plethora, hypertension in young adults, early-onset osteoporosis, unexplained DM, hirsutism, menstrual irregularities, hypokalemia, adrenal incidentaloma, children with weight gain + growth arrest • Pseudo-Cushing States (red exclusion box): obesity, depression, alcoholism, poorly controlled DM, pregnancy, PCOS, stress STAGE 2 — STEP 0: EXCLUDE EXOGENOUS (yellow box): • Exclude ALL glucocorticoid use: oral, inhaled, nasal, topical, intra-articular, ophthalmic • If exogenous → Iatrogenic Cushing Syndrome (stop here) STAGE 3 — FIRST-LINE SCREENING (green boxes, 3 parallel tests): • 1mg Overnight Dexamethasone Suppression Test (1mg-DST): 1mg dex at 11pm, cortisol at 8am next day. Cutoff: >50 nmol/L (1.8 mcg/dL) = abnormal. Sensitivity 95%, Specificity 80% • 24-Hour Urinary Free Cortisol (UFC): ≥2 collections recommended. Cutoff: >ULN. Interfered by high fluid intake, CKD • Late-Night Salivary Cortisol (LNSC): 11pm sample. Cutoff varies by assay. Sensitivity >90%. Contamination risk • BONUS: Scalp Hair Cortisol/Cortisone (new tool): reflects 3 months of exposure; useful in cyclical CS STAGE 4 — INTERPRETATION (orange diamond decision box): • At least 2 abnormal tests → Endogenous CS confirmed • 1 abnormal test → Repeat or use additional tests • Consider false positives (obesity, CBG elevation from OCPs, stress, hospitalization, CYP3A4 inducers reducing dexamethasone) • Equivocal results → Dexamethasone-CRH test or 2mg 2-day DST for pseudo-Cushing differentiation STAGE 5 — ACTH MEASUREMENT (purple box): • Plasma ACTH: - ACTH <10 pg/mL (2.2 pmol/L) → ACTH-INDEPENDENT (15–20%) - ACTH >20 pg/mL → ACTH-DEPENDENT (80–85%) - ACTH 10–20 pg/mL → borderline → CRH stimulation test STAGE 6A — ACTH-INDEPENDENT CS (red branch): • Adrenal imaging: CT adrenals (first-line) - Unilateral adenoma → Adrenal adenoma - Bilateral macronodular adrenal hyperplasia (BMAH): ARMC5 mutation testing, aberrant receptor testing (GIP, vasopressin, LH, catecholamines) - Bilateral micronodular: PPNAD → Carney complex, PRKAR1A mutation - Adrenocortical carcinoma: large, irregular, HU>10 on CT • FDG-PET/CT or MRI adrenals if CT inconclusive STAGE 6B — ACTH-DEPENDENT CS (blue branch): • Pituitary MRI with gadolinium (first step): - Adenoma >6mm → Cushing's Disease (CD) likely - Normal or microadenoma <6mm → proceed to BIPSS • Bilateral Inferior Petrosal Sinus Sampling (BIPSS): - IPS:P ratio ≥2 basal or ≥3 after CRH → pituitary source (CD) - IPS:P ratio <2 → ectopic ACTH source • Ectopic ACTH workup: - CT chest/abdomen/pelvis - 68Ga-DOTATATE PET (somatostatin receptor scintigraphy) - FDG-PET/CT - Sources: bronchial carcinoid, SCLC, thymic carcinoid, pheochromocytoma, pancreatic NET, medullary thyroid cancer STAGE 7 — CYCLICAL CS (teal box): • Suspected when symptoms fluctuate • Multiple UFC or LNSC over time • Hair cortisol useful for detecting transient episodes STAGE 8 — FINAL DIAGNOSIS (bottom boxes in different colors): • Cushing's Disease (pituitary adenoma) — most common (65–70%) • Ectopic ACTH Syndrome (10–15%) • Adrenal Adenoma (10%) • BMAH / PPNAD / ACC (rare) • Cyclical Cushing Syndrome Include a small legend at bottom right showing color coding. Use connecting arrows with labeled decision branches (YES/NO, ABNORMAL/NORMAL, HIGH/LOW). Font should be legible (minimum 8pt). Layout: vertical with horizontal branches for ACTH-independent and ACTH-dependent. Citation at bottom: "Savas M et al. J Clin Endocrinol Metab. 2022;107(11):3162–3174. PMID: 36036941"
Not a flowchart but like a detailed so I don't have to read the actual index
https://pmc.ncbi.nlm.nih.gov/articles/PMC9681610
PMID: 36036941
| Type | Mechanism | Frequency |
|---|---|---|
| Exogenous (Iatrogenic) CS | Glucocorticoid medications | Most common overall |
| Endogenous CS | Autonomous cortisol overproduction | Rarer; requires full workup |
| Pseudo-Cushing Cause | Notes |
|---|---|
| Morbid obesity | UFC mildly elevated, DST often abnormal |
| Major depression / melancholia | Cortisol often elevated, late-night cortisol high |
| Chronic alcoholism | Full clinical and biochemical CS picture possible |
| Poorly controlled type 2 diabetes | UFC can be elevated |
| Pregnancy | CBG elevated, raises total cortisol |
| Polycystic ovary syndrome (PCOS) | Clinical overlap (hirsutism, obesity) |
| Eating disorders (anorexia, bulimia) | HPA activation |
| Chronic stress / critical illness | Transient hypercortisolism |
| Situation | Effect |
|---|---|
| High fluid intake (>5L/day) | Falsely elevated UFC |
| Chronic kidney disease | Falsely low UFC |
| Mild CS | UFC can be normal in up to 20% of cases |
| Pseudo-Cushing (obesity, depression) | Mildly elevated |
| Contamination of urine sample | Artificially elevated |
| ACTH Level | Interpretation |
|---|---|
| <10 pg/mL (2.2 pmol/L) | ACTH-independent CS (adrenal source) → 15–20% of CS |
| >20 pg/mL (4.4 pmol/L) | ACTH-dependent CS (pituitary or ectopic) → 80–85% |
| 10–20 pg/mL (borderline) | Repeat; consider CRH stimulation test |
| Finding | Diagnosis |
|---|---|
| Unilateral adenoma (smooth, <4 cm, HU <10 on CT) | Adrenal adenoma (most common adrenal cause) |
| Large irregular mass, HU >10, heterogeneous | Adrenocortical carcinoma (ACC) - high suspicion |
| Bilateral enlargement with large nodules | Bilateral Macronodular Adrenal Hyperplasia (BMAH) |
| Bilateral small nodular glands | Primary Pigmented Nodular Adrenocortical Disease (PPNAD) |
| IPS:Peripheral ACTH Ratio | Interpretation |
|---|---|
| ≥2 at baseline OR ≥3 after CRH | Pituitary source → Cushing's Disease |
| <2 baseline and <3 after CRH | Ectopic ACTH source |
| Tumor | % of EAS |
|---|---|
| Bronchial carcinoid | ~40% (most common) |
| Small cell lung cancer (SCLC) | ~20% |
| Thymic carcinoid | ~10% |
| Pancreatic NET | ~5% |
| Pheochromocytoma | <5% |
| Medullary thyroid cancer | <5% |
| Other NETs | Remainder |
| Stage | Action | Key Tests/Tools |
|---|---|---|
| Step 0 | Exclude exogenous steroids | History, review medications |
| Step 1 | Clinical recognition | Signs, symptoms, high-risk groups |
| Step 2 | First-line screening | 1mg-DST, 24h UFC, LNSC (≥2 abnormal to confirm) |
| Step 2b | Cyclical/equivocal | Hair cortisol, Dex-CRH test, repeat testing |
| Step 3 | ACTH measurement | Plasma ACTH - ACTH-dep vs. ACTH-indep |
| Step 4A | ACTH-indep workup | CT adrenals ± MRI, ARMC5/PRKAR1A genetics |
| Step 4B | ACTH-dep workup | Pituitary MRI → CRH test/HDDST → BIPSS |
| Step 5 | Ectopic workup if needed | ⁶⁸Ga-DOTATATE PET, CT chest/abdomen/pelvis |
You didn't miss anything
Make a more in-depth writeup and give me a pdf
https://pmc.ncbi.nlm.nih.gov/articles/PMC9681610
mkdir -p /home/daytona/workspace/cushing-writeup
~/cushing-writeup/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
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
OUTPUT = "/home/daytona/workspace/cushing-writeup/Cushing_Syndrome_Diagnosis_Writeup.pdf"
# ── Colour palette ──────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1a3a5c")
MID_BLUE = colors.HexColor("#2a6099")
LIGHT_BLUE = colors.HexColor("#d6e8f7")
TEAL = colors.HexColor("#1b7a7a")
TEAL_LIGHT = colors.HexColor("#d0eeee")
ORANGE = colors.HexColor("#c05a00")
ORANGE_LIGHT= colors.HexColor("#fde8cc")
RED = colors.HexColor("#8b1a1a")
RED_LIGHT = colors.HexColor("#fde0e0")
GREEN = colors.HexColor("#1a5c2a")
GREEN_LIGHT = colors.HexColor("#d6f0dd")
PURPLE = colors.HexColor("#4a1a6e")
PURPLE_LIGHT= colors.HexColor("#ead6f5")
GRAY_LIGHT = colors.HexColor("#f2f2f2")
GRAY_MED = colors.HexColor("#cccccc")
WHITE = colors.white
BLACK = colors.black
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Diagnosis of Cushing Syndrome – In-Depth Clinical Writeup",
author="Savas M, Mehta S, Agrawal N, van Rossum EFC, Feelders RA"
)
styles = getSampleStyleSheet()
def style(name, **kw):
s = styles[name].clone(name + str(id(kw)))
for k, v in kw.items():
setattr(s, k, v)
return s
# Custom styles
H0 = style("Heading1", fontSize=22, textColor=WHITE, backColor=DARK_BLUE,
spaceAfter=6, spaceBefore=0, leading=28, alignment=TA_CENTER,
leftIndent=-1*cm, rightIndent=-1*cm, borderPad=8)
H1 = style("Heading1", fontSize=15, textColor=WHITE, backColor=MID_BLUE,
spaceAfter=4, spaceBefore=14, leading=20)
H2 = style("Heading2", fontSize=12, textColor=DARK_BLUE,
spaceAfter=3, spaceBefore=10, leading=16)
H3 = style("Heading3", fontSize=10.5, textColor=TEAL,
spaceAfter=2, spaceBefore=8, leading=14)
BODY = style("Normal", fontSize=9.5, leading=14, spaceAfter=5,
alignment=TA_JUSTIFY, textColor=colors.HexColor("#222222"))
BODY_SM = style("Normal", fontSize=8.5, leading=12, spaceAfter=4,
alignment=TA_JUSTIFY, textColor=colors.HexColor("#333333"))
NOTE = style("Normal", fontSize=8.5, leading=12, spaceAfter=4,
textColor=ORANGE, leftIndent=12, fontName="Helvetica-Oblique")
CAPTION = style("Normal", fontSize=8, leading=11, textColor=colors.HexColor("#555555"),
alignment=TA_CENTER, fontName="Helvetica-Oblique")
SUB_HEAD = style("Normal", fontSize=10, textColor=WHITE, backColor=TEAL,
leading=14, spaceAfter=2, spaceBefore=6,
leftIndent=0, fontName="Helvetica-Bold")
BULLET = style("Normal", fontSize=9.5, leading=14, spaceAfter=3,
leftIndent=18, textColor=colors.HexColor("#222222"))
def h1(txt): return Paragraph(f" {txt}", H1)
def h2(txt): return Paragraph(txt, H2)
def h3(txt): return Paragraph(txt, H3)
def body(txt): return Paragraph(txt, BODY)
def note(txt): return Paragraph(f"<b>Note:</b> {txt}", NOTE)
def small(txt): return Paragraph(txt, BODY_SM)
def spacer(h=0.3): return Spacer(1, h*cm)
def rule(c=MID_BLUE): return HRFlowable(width="100%", thickness=1, color=c, spaceAfter=4, spaceBefore=4)
def bullets(items, color=MID_BLUE):
return ListFlowable(
[ListItem(Paragraph(i, BULLET), bulletColor=color, bulletFontSize=8) for i in items],
bulletType='bullet', leftIndent=12, spaceAfter=2
)
def colored_box(text_paras, bg=LIGHT_BLUE, border=MID_BLUE, padding=8):
inner = [[p] for p in text_paras]
# Use a single-cell table as a colored box
data = [[Paragraph(t, style("Normal", fontSize=9.5, leading=14,
alignment=TA_JUSTIFY,
textColor=colors.HexColor("#111111"))) if isinstance(t, str) else t]
for t in text_paras]
tbl = Table(data, colWidths=[16.5*cm])
tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), bg),
('BOX', (0,0), (-1,-1), 1, border),
('LEFTPADDING', (0,0), (-1,-1), padding),
('RIGHTPADDING', (0,0), (-1,-1), padding),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('ROWBACKGROUNDS', (0,0), (-1,-1), [bg]),
]))
return tbl
def data_table(headers, rows, col_widths=None, header_bg=MID_BLUE, alt_bg=GRAY_LIGHT):
data = [headers] + rows
if col_widths is None:
col_widths = [16.5*cm / len(headers)] * len(headers)
hstyle = style("Normal", fontSize=9, textColor=WHITE, fontName="Helvetica-Bold",
leading=12, alignment=TA_CENTER)
cstyle = style("Normal", fontSize=9, leading=12, alignment=TA_LEFT,
textColor=colors.HexColor("#111111"))
fmt_data = [[Paragraph(str(c), hstyle) for c in headers]]
for row in rows:
fmt_data.append([Paragraph(str(c), cstyle) for c in row])
tbl = Table(fmt_data, colWidths=col_widths, repeatRows=1)
row_styles = [
('BACKGROUND', (0,0), (-1,0), header_bg),
('BOX', (0,0), (-1,-1), 0.5, GRAY_MED),
('INNERGRID', (0,0), (-1,-1), 0.3, GRAY_MED),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
]
for i in range(1, len(fmt_data)):
bg = WHITE if i % 2 == 1 else alt_bg
row_styles.append(('BACKGROUND', (0,i), (-1,i), bg))
tbl.setStyle(TableStyle(row_styles))
return tbl
# ═══════════════════════════════════════════════════════════════════════════════
# BUILD CONTENT
# ═══════════════════════════════════════════════════════════════════════════════
story = []
# ── COVER / TITLE ────────────────────────────────────────────────────────────
cover_title = Paragraph(
"Diagnosis of Cushing Syndrome",
style("Title", fontSize=28, textColor=WHITE, alignment=TA_CENTER, leading=34)
)
cover_sub = Paragraph(
"An In-Depth Clinical Writeup",
style("Normal", fontSize=16, textColor=LIGHT_BLUE, alignment=TA_CENTER, leading=20,
fontName="Helvetica-Oblique")
)
cover_authors = Paragraph(
"Savas M • Mehta S • Agrawal N • van Rossum EFC • Feelders RA",
style("Normal", fontSize=10, textColor=LIGHT_BLUE, alignment=TA_CENTER, leading=14)
)
cover_journal = Paragraph(
"J Clin Endocrinol Metab. 2022;107(11):3162–3174 | PMID: 36036941 | DOI: 10.1210/clinem/dgac492",
style("Normal", fontSize=8.5, textColor=GRAY_LIGHT, alignment=TA_CENTER, fontName="Helvetica-Oblique")
)
cover_tbl = Table(
[[cover_title], [Spacer(1,0.3*cm)], [cover_sub], [Spacer(1,0.2*cm)],
[cover_authors], [Spacer(1,0.3*cm)], [cover_journal]],
colWidths=[16.5*cm]
)
cover_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), DARK_BLUE),
('LEFTPADDING', (0,0), (-1,-1), 20),
('RIGHTPADDING', (0,0), (-1,-1), 20),
('TOPPADDING', (0,0), (0,0), 30),
('BOTTOMPADDING', (0,-1), (-1,-1), 30),
('BOX', (0,0), (-1,-1), 2, MID_BLUE),
]))
story.append(cover_tbl)
story.append(spacer(0.8))
# ── INTRO BOX ────────────────────────────────────────────────────────────────
story.append(colored_box([
Paragraph("<b>Purpose of this document:</b> A comprehensive clinical reference derived from the 2022 "
"Endocrine Society \"Approach to the Patient\" article by Savas et al. It is structured to replace "
"reading the primary article by covering every concept in the paper — pathogenesis, clinical recognition, "
"biochemical testing with all caveats, differential diagnosis, imaging, BIPSS, ectopic workup, "
"cyclical and subclinical CS, and special populations.", BODY)
], bg=LIGHT_BLUE, border=MID_BLUE))
story.append(spacer(0.5))
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 1 — OVERVIEW & PATHOGENESIS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("1. Overview and Pathogenesis"))
story.append(body(
"Cushing syndrome (CS) is the clinical state resulting from <b>chronic supraphysiological exposure to glucocorticoids</b>, "
"whether from an exogenous source (administered corticosteroids) or from endogenous autonomous overproduction of cortisol. "
"It is associated with significant morbidity — metabolic syndrome, cardiovascular disease, infections, psychiatric disorders, "
"and musculoskeletal complications — and carries elevated all-cause mortality if untreated. "
"Early diagnosis is therefore clinically important, yet the condition is notoriously difficult to identify in routine practice "
"because it overlaps with many common conditions."
))
story.append(h2("1.1 Pathophysiology"))
story.append(body(
"Under normal physiology, the hypothalamic–pituitary–adrenal (HPA) axis is tightly regulated by "
"negative feedback. The hypothalamus releases corticotropin-releasing hormone (CRH), which stimulates the anterior pituitary "
"to secrete adrenocorticotropic hormone (ACTH). ACTH acts on the adrenal cortex (zona fasciculata) to produce cortisol. "
"Elevated cortisol feeds back to inhibit both CRH and ACTH secretion, maintaining homeostasis."
))
story.append(body(
"In CS, this normal feedback is disrupted. The source of disruption determines the subtype:"
))
story.append(data_table(
["Type", "Mechanism", "ACTH Level", "Frequency"],
[
["Exogenous (Iatrogenic)", "Administered glucocorticoids suppress HPA axis; adrenals atrophy", "Suppressed (<10 pg/mL)", "Most common overall"],
["Cushing's Disease (CD)", "ACTH-secreting pituitary adenoma (usually microadenoma) drives bilateral adrenal hyperplasia", "Elevated or normal-high (20–200 pg/mL)", "~65–70% of endogenous CS"],
["Ectopic ACTH Syndrome (EAS)", "Non-pituitary tumor secretes ACTH autonomously; often markedly elevated", "Very high (often >200 pg/mL)", "~10–15% of endogenous CS"],
["Adrenal Adenoma", "Unilateral benign tumor produces cortisol autonomously; contralateral adrenal atrophies", "Suppressed (<10 pg/mL)", "~10% of endogenous CS"],
["Bilateral Macronodular Adrenal Hyperplasia (BMAH)", "Bilateral autonomous cortisol via aberrant G-protein receptors or ARMC5 mutations", "Low-normal or suppressed", "~2–5%"],
["Primary Pigmented Nodular Adrenocortical Disease (PPNAD)", "Bilateral small pigmented nodules; associated with Carney complex (PRKAR1A mutation)", "Suppressed", "Rare"],
["Adrenocortical Carcinoma (ACC)", "Malignant adrenal tumor with autonomous cortisol production", "Suppressed", "Rare, ~1–2%"],
],
col_widths=[3.5*cm, 5*cm, 3.5*cm, 4.5*cm],
header_bg=DARK_BLUE
))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 2 — CLINICAL PRESENTATION
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("2. Clinical Presentation and When to Screen"))
story.append(body(
"No single clinical feature is pathognomonic for CS. The diagnosis should be considered when a patient presents "
"with <b>multiple concurrent features</b>, particularly those that are unusual for the patient's age, progressive over time, "
"or combined with metabolic comorbidities that are disproportionate to obesity alone. "
"The paper emphasizes that increased physician awareness outside endocrinology — in primary care, psychiatry, neurology, "
"rheumatology, and dermatology — is key to earlier diagnosis."
))
story.append(h2("2.1 Cardinal Clinical Features"))
story.append(data_table(
["Feature", "Clinical Notes", "Discriminating Value"],
[
["Purple striae >1 cm wide", "Wide (>1 cm), violaceous, typically on abdomen, flanks, thighs, breasts", "High — thin skin + rapid fat deposition"],
["Easy bruising", "Spontaneous ecchymoses without significant trauma; especially in young patients", "High in young adults"],
["Proximal muscle weakness", "Difficulty rising from squat, climbing stairs; type II fiber atrophy", "High specificity when present"],
["Moon face (facial rounding/plethora)", "Rounded face with facial redness; fat redistribution", "Moderate — common in obesity too"],
["Central (truncal) obesity", "Fat deposition trunk + limbs spared; buffalo hump (dorsocervical fat)", "Moderate"],
["Hypertension, young age", "HTN in a patient under 40 without family history or other cause", "High suspicion trigger"],
["Unexplained DM or glucose intolerance", "Insulin resistance mediated by glucocorticoid excess", "Moderate"],
["Osteoporosis / vertebral fractures", "In young patients with no other risk factor; osteocalcin suppressed", "High in young patients"],
["Menstrual irregularity / amenorrhea", "Due to androgen excess and HPA suppression of LH/FSH", "Moderate"],
["Hirsutism and acne", "Adrenal androgen excess; more pronounced in EAS and ACC", "Moderate"],
["Hypokalemia", "Mineralocorticoid effect of very high cortisol saturating 11β-HSD2; especially in EAS", "Very high for EAS"],
["Hyperpigmentation", "Very elevated ACTH stimulates MSH receptors; only in ACTH-dependent CS", "High for EAS/severe CD"],
["Children: weight gain + growth arrest", "Weight gain with concurrent poor linear growth is a key pediatric clue", "Very high in children"],
["Adrenal incidentaloma on CT/MRI", "Found on imaging; requires exclusion of MACS", "Triggers subclinical workup"],
["Psychiatric symptoms", "Depression, emotional lability, cognitive impairment, insomnia, anxiety", "Low-moderate — non-specific"],
["Frequent infections", "Immune suppression from glucocorticoid excess", "Low-moderate"],
],
col_widths=[4*cm, 7.5*cm, 5*cm],
header_bg=TEAL
))
story.append(spacer())
story.append(h2("2.2 High-Priority Screening Groups"))
story.append(body("The Endocrine Society and the paper specifically recommend screening in these groups:"))
story.append(bullets([
"Young patients with osteoporosis, especially vertebral fractures without adequate trauma",
"Patients under 40 with hypertension, particularly if resistant to multiple agents",
"Patients with adrenal incidentaloma — screen for MACS with 1mg-DST regardless of symptoms",
"Children with unexplained weight gain combined with growth deceleration",
"Patients with multiple early-onset metabolic features: DM + HTN + obesity + dyslipidemia",
"Patients with cystic acne, hirsutism, and menstrual irregularities not explained by PCOS alone",
"Patients with unexplained hypokalemia (especially severe) — consider EAS",
], color=TEAL))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 3 — PSEUDO-CUSHING STATES
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("3. Pseudo-Cushing States — The Diagnostic Trap"))
story.append(body(
"Pseudo-Cushing states (PCS) are conditions that activate the HPA axis — causing mild-to-moderate hypercortisolism "
"with partial clinical features of CS — but are <b>not due to autonomous cortisol overproduction</b>. "
"They are the most important diagnostic pitfall in CS workup. Mild CS and pseudo-Cushing can be clinically "
"and biochemically indistinguishable, and only resolve with treatment of the underlying cause. "
"The paper stresses that PCS should always be considered when CS testing results are equivocal."
))
story.append(data_table(
["Pseudo-Cushing Cause", "Mechanism of HPA Activation", "Key Differentiating Clue"],
[
["Morbid obesity", "Increased cortisol production rate; altered cortisol metabolism", "UFC mildly elevated; LNSC often normal; CRH test helps"],
["Major depression / melancholia", "Increased CRH tone from limbic system; loss of circadian rhythm", "Clinical remission normalizes cortisol"],
["Chronic alcoholism", "Alcohol increases CRH; direct adrenal stimulation", "Cortisol normalizes with abstinence (2–4 weeks)"],
["Poorly controlled type 2 DM", "Insulin resistance increases cortisol; chronic stress activation", "Glucose control often normalizes UFC"],
["Pregnancy", "Elevated CBG raises total cortisol; placental CRH activates HPA", "Salivary or urine free cortisol must be interpreted trimester-specifically"],
["Polycystic ovary syndrome (PCOS)", "Adrenal androgen excess; obesity-related HPA activation", "Normal late-night salivary cortisol; ACTH usually normal"],
["Eating disorders (anorexia, bulimia)", "Starvation-induced HPA activation; high CRH", "Nutritional restoration normalizes axis"],
["Chronic stress / critical illness", "Physiological HPA activation", "Resolves with removal of stressor"],
["Hypothyroidism", "Slowed cortisol clearance raises measured levels", "TSH; treat hypothyroidism first"],
["Vigorous chronic exercise", "HPA activation; falsely elevated 24h UFC", "Contextual history"],
],
col_widths=[4*cm, 6*cm, 6.5*cm],
header_bg=RED
))
story.append(spacer())
story.append(colored_box([
Paragraph("<b>Second-line tests to distinguish true CS from pseudo-Cushing (equivocal results):</b>", BODY),
Paragraph("• <b>Dexamethasone–CRH test:</b> 2-day low-dose DST (0.5 mg every 6 h x 48 h) followed by IV CRH at 8 AM "
"on day 3. In true CS, cortisol rises >38 nmol/L (1.4 mcg/dL) above baseline. In PCS, cortisol stays suppressed. "
"This exploits the fact that true CS retains responsiveness to CRH even after dexamethasone.", BULLET),
Paragraph("• <b>2-day low-dose DST (2 mg/day Liddle test):</b> 0.5 mg dexamethasone every 6 hours for 48 hours. "
"Cortisol >50 nmol/L after = consistent with CS.", BULLET),
Paragraph("• <b>Repeated testing over time:</b> If clinically suspicious but tests are equivocal, repeat UFC and LNSC on "
"multiple occasions over several weeks. This is also the approach for suspected cyclical CS.", BULLET),
], bg=ORANGE_LIGHT, border=ORANGE))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 4 — FIRST-LINE SCREENING TESTS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(h1("4. First-Line Biochemical Screening Tests"))
story.append(body(
"At least two first-line tests should be abnormal before confirming endogenous CS. No single test has 100% "
"sensitivity and specificity. The choice of which tests to use first depends on clinical context, patient-specific "
"factors, and local laboratory capabilities. The paper recommends using all three standard tests when feasible, "
"with hair cortisol added in suspected cyclical CS."
))
# ── 4.1 1mg DST ─────────────────────────────────────────────────────────────
story.append(h2("4.1 1-mg Overnight Dexamethasone Suppression Test (1mg-DST)"))
story.append(body(
"<b>Principle:</b> Dexamethasone is a synthetic glucocorticoid that suppresses ACTH (and hence cortisol) "
"via negative feedback at the pituitary. In normal individuals, 1 mg dexamethasone given at 11 PM suppresses "
"8 AM cortisol to ≤50 nmol/L. In CS, the feedback set-point is reset higher; cortisol fails to suppress."
))
story.append(data_table(
["Parameter", "Detail"],
[
["Dose & Timing", "1 mg dexamethasone orally at 11:00 PM"],
["Blood draw", "Serum cortisol at 8:00–9:00 AM the following morning"],
["Normal (suppressed) result", "Cortisol ≤50 nmol/L (1.8 mcg/dL) — CS unlikely"],
["Abnormal (non-suppressed) result", "Cortisol >50 nmol/L — proceed with further testing"],
["Sensitivity", "~95% (high — good test to rule out CS if normal)"],
["Specificity", "~80% (moderate — significant false-positive rate)"],
],
col_widths=[4.5*cm, 12*cm], header_bg=MID_BLUE
))
story.append(spacer(0.3))
story.append(h3("False Positives (cortisol does not suppress despite no true CS):"))
story.append(bullets([
"<b>CYP3A4 inducers</b> accelerate dexamethasone metabolism → lower dex levels → cortisol fails to suppress. "
"Examples: rifampicin, phenytoin, carbamazepine, phenobarbital, St John's Wort",
"<b>Elevated CBG (corticosteroid-binding globulin)</b> raises measured total cortisol without increasing free cortisol. "
"Causes: oral contraceptive pills, HRT, pregnancy (estrogen induces CBG synthesis)",
"<b>Pseudo-Cushing states</b>: obesity, major depression, alcoholism, poorly controlled DM, PCOS",
"<b>Poor compliance</b> or absorption failure — dex not taken at correct time or not absorbed",
"<b>Hospitalization and critical illness</b> — stress-induced HPA activation",
]))
story.append(h3("False Negatives (CS missed — cortisol wrongly suppresses):"))
story.append(bullets([
"<b>CYP3A4 inhibitors</b> slow dexamethasone metabolism → dex levels higher than expected → even true CS suppresses. "
"Examples: ketoconazole, itraconazole, fluoxetine, fluvoxamine, diltiazem",
"<b>Cyclical CS</b> — if tested during a remission phase, cortisol may suppress normally",
"<b>Mild CS</b> — UFC is the better test here since feedback sensitivity may be preserved at mild excess",
]))
story.append(spacer())
# ── 4.2 UFC ──────────────────────────────────────────────────────────────────
story.append(h2("4.2 24-Hour Urinary Free Cortisol (UFC)"))
story.append(body(
"<b>Principle:</b> Free (unbound) cortisol is filtered by the glomerulus and excreted in urine. "
"The 24-hour UFC reflects integrated daily cortisol production and is independent of CBG. "
"Once cortisol production exceeds the binding capacity of CBG (~700 nmol/L), free cortisol rises "
"disproportionately, making UFC highly elevated in overt CS."
))
story.append(data_table(
["Parameter", "Detail"],
[
["Collection", "Complete 24-hour urine in a boric acid or acid-preserved container"],
["Minimum collections", "At least 2 separate 24-hour samples recommended (day-to-day variability is high)"],
["Normal result", "Below upper limit of normal (ULN) for the assay — lab-specific; typically <280–330 nmol/day"],
["Abnormal result (high specificity threshold)", ">4× ULN is highly specific for CS; moderate elevations are equivocal"],
["Sensitivity", "~75–95% (lower in mild CS — can be normal in up to 20% of mild cases)"],
["Specificity", "~95% at >4×ULN threshold"],
["Method", "LC-MS/MS preferred; immunoassay overestimates UFC and is less reliable"],
],
col_widths=[4.5*cm, 12*cm], header_bg=MID_BLUE
))
story.append(spacer(0.3))
story.append(h3("Key Caveats and Confounders:"))
story.append(data_table(
["Condition", "Effect on UFC", "Action"],
[
["High fluid intake (>5 L/day)", "Falsely elevated — dilutes plasma cortisol but increases urine volume", "Check 24h urine volume; repeat if >3 L"],
["Chronic kidney disease (GFR <30)", "Falsely LOW — reduced cortisol filtration", "UFC unreliable in CKD — use other tests"],
["Mild CS", "Can be within normal range in up to 20% of cases", "Repeat collection; add LNSC and DST"],
["Pseudo-Cushing states", "Mildly elevated (1–3× ULN) — overlaps with mild CS", "Dex-CRH test to differentiate"],
["Incomplete collection", "Falsely low — check 24h urinary creatinine to verify completeness", "Verify: creatinine 10–20 mg/kg/day in women, 15–25 in men"],
["Synthetic glucocorticoids", "Some cross-react with immunoassay but not LC-MS/MS", "Specify assay method"],
],
col_widths=[4*cm, 6.5*cm, 6*cm], header_bg=TEAL
))
story.append(spacer())
# ── 4.3 LNSC ─────────────────────────────────────────────────────────────────
story.append(h2("4.3 Late-Night Salivary Cortisol (LNSC)"))
story.append(body(
"<b>Principle:</b> Normally, cortisol follows a diurnal rhythm with a morning peak and a nadir around 11 PM–midnight. "
"In CS, the nadir is lost — cortisol remains elevated late at night. Salivary cortisol closely reflects "
"free serum cortisol (salivary glands have 11β-HSD1), making it a noninvasive measure of the unbound fraction. "
"This can be collected at home, making it practical for outpatient screening."
))
story.append(data_table(
["Parameter", "Detail"],
[
["Collection time", "11:00 PM (midnight nadir)"],
["Number of samples", "2 separate collections on different nights recommended"],
["Method", "Salivette tube (cotton roll) — patient chews roll for 1–2 minutes"],
["Cutoff", "Assay-dependent; typically >4–8 nmol/L (LC-MS/MS); >3.6 nmol/L (Roche ECLIA) — check local lab"],
["Sensitivity", ">90%"],
["Specificity", "~90–96%"],
["Advantage", "Non-invasive, at-home collection, not affected by CBG, reflects free cortisol"],
],
col_widths=[4.5*cm, 12*cm], header_bg=MID_BLUE
))
story.append(spacer(0.3))
story.append(h3("Key Caveats:"))
story.append(bullets([
"<b>Shift workers and night workers</b> have disrupted circadian rhythms — their late-night cortisol can be elevated physiologically. LNSC is unreliable in this group.",
"<b>Contamination</b> — eating, drinking, brushing teeth, or gum bleeding within 30 minutes before collection raises salivary cortisol artificially. Strict instructions required.",
"<b>Critical illness and hospitalization</b> — stress-related HPA activation raises LNSC; unreliable in inpatients.",
"<b>Smoking</b> — may elevate cortisol slightly.",
"<b>Assay variability</b> — immunoassay and LC-MS/MS have different cutoffs; do not interchange thresholds.",
"Certain medications (e.g., licorice-containing products) inhibit 11β-HSD2 and may affect salivary cortisol.",
]))
story.append(spacer())
# ── 4.4 Hair cortisol ────────────────────────────────────────────────────────
story.append(h2("4.4 Scalp Hair Cortisol and Cortisone (Newer Tool)"))
story.append(body(
"Hair analysis represents a paradigm shift from snapshot testing to <b>long-term retrospective assessment</b>. "
"Hair grows at approximately 1 cm per month. Cortisol and its metabolite cortisone are incorporated into "
"the hair shaft during growth, encoding a month-by-month record of glucocorticoid exposure. "
"The proximal 3 cm reflects approximately the past 3 months of systemic cortisol."
))
story.append(h3("Clinical Utility:"))
story.append(bullets([
"<b>High sensitivity for CS diagnosis</b> — captures chronic hypercortisolism even when urine/saliva tests are normal",
"<b>Cyclical CS detection</b> — the most valuable application: historical hypercortisolism episodes leave a biochemical 'scar' in hair even if current testing is normal",
"<b>Long-term monitoring</b> — assessing treatment response over months",
"<b>Assessment in patients unable to collect urine or saliva reliably</b>",
"Can distinguish chronic CS from acute stress (which does not significantly elevate hair cortisol)",
]))
story.append(h3("Limitations:"))
story.append(bullets([
"Hair treatments (bleaching, perming, dyeing) can degrade cortisol in the hair shaft — result may be falsely low",
"Less standardized than other tests — cutoffs and methods vary between laboratories",
"Hair grows at variable rates between individuals; exact month-to-month mapping is approximate",
"Short hair or hair loss (alopecia) limits sample size",
"Not yet included in major society guidelines as a standard first-line test, but increasingly referenced in the literature",
]))
story.append(spacer())
# ── Test Comparison Table ────────────────────────────────────────────────────
story.append(h2("4.5 Comparison of First-Line Tests"))
story.append(data_table(
["Test", "Sensitivity", "Specificity", "Best For", "Main Pitfall"],
[
["1mg-DST", "~95%", "~80%", "Ruling out CS (high sensitivity)", "False positives: OCPs, enzyme inducers"],
["24h UFC", "~75–95%", "~95% at >4×ULN", "Confirming overt CS; monitoring", "Mild CS: can be normal; CKD: unreliable"],
["LNSC", ">90%", "~90–96%", "Outpatient screening; shift workers excluded", "Night workers, contamination, hospitalized patients"],
["Hair cortisol", "High (emerging data)", "High (emerging data)", "Cyclical CS, retrospective assessment", "Hair treatments, less standardized"],
["Dex-CRH test", "~98%", "~88%", "Distinguishing CS from pseudo-Cushing", "Requires 2-day protocol; not widely available"],
],
col_widths=[2.8*cm, 2*cm, 2.5*cm, 5*cm, 4.2*cm],
header_bg=PURPLE
))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 5 — CONFIRMING ENDOGENOUS CS: PLASMA ACTH
# ═══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(h1("5. Confirming Endogenous CS: Plasma ACTH"))
story.append(body(
"Once two first-line screening tests are abnormal (or one is markedly abnormal), endogenous CS is established. "
"The next step is to measure <b>plasma ACTH</b> to determine whether the driving force is ACTH-dependent "
"(pituitary or ectopic tumor secreting ACTH) or ACTH-independent (autonomous adrenal overproduction of cortisol)."
))
story.append(colored_box([
Paragraph("<b>Pre-analytical requirements for ACTH — critical:</b> ACTH is highly unstable in plasma. "
"Collect into a pre-chilled EDTA tube, place immediately on ice, centrifuge within 30 minutes "
"at 4°C, and process rapidly. Failure to do so causes ex vivo ACTH degradation, leading to "
"falsely low ACTH levels — which can incorrectly suggest an adrenal source.", BODY)
], bg=RED_LIGHT, border=RED))
story.append(spacer(0.3))
story.append(data_table(
["ACTH Level", "Interpretation", "Next Step"],
[
["<10 pg/mL (2.2 pmol/L)", "ACTH-INDEPENDENT CS — adrenal autonomous cortisol", "CT of adrenal glands"],
["10–20 pg/mL (borderline)", "Indeterminate — repeat; consider CRH stimulation test", "CRH stimulation; repeat ACTH"],
[">20 pg/mL (4.4 pmol/L)", "ACTH-DEPENDENT CS — pituitary or ectopic", "Pituitary MRI; dynamic tests; BIPSS"],
],
col_widths=[4*cm, 7*cm, 5.5*cm], header_bg=PURPLE
))
story.append(spacer(0.3))
story.append(body(
"ACTH-dependent CS accounts for approximately <b>80–85%</b> of endogenous CS, and ACTH-independent CS for "
"<b>15–20%</b>. Within ACTH-dependent CS, Cushing's Disease (pituitary adenoma) is the cause in about "
"80% of cases, with ectopic ACTH in ~20%."
))
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 6 — ACTH-INDEPENDENT CS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("6. ACTH-Independent Cushing Syndrome — Adrenal Causes"))
story.append(h2("6.1 CT of the Adrenal Glands — First-Line Imaging"))
story.append(body(
"CT of the adrenal glands with thin slices (3 mm) and Hounsfield unit (HU) measurement is the standard "
"first-line imaging for adrenal CS. Adrenal protocol CT includes unenhanced, portal venous, and delayed phases."
))
story.append(data_table(
["CT Finding", "Likely Diagnosis", "Key Features"],
[
["Unilateral smooth nodule, HU ≤10 (lipid-rich)", "Benign adrenal adenoma", "Round, homogeneous, rapid contrast washout (>50% absolute)"],
["Unilateral nodule, HU >10, heterogeneous, >4 cm", "Adrenocortical carcinoma (ACC) or lipid-poor adenoma", "Irregular borders, calcifications, slow washout, possible local invasion"],
["Bilateral large nodules (>1 cm)", "Bilateral Macronodular Adrenal Hyperplasia (BMAH)", "Both adrenals enlarged; nodules of varying sizes"],
["Bilateral small glands / normal or tiny nodules", "Primary Pigmented Nodular Adrenocortical Disease (PPNAD)", "CT may appear normal or minimally abnormal"],
["Bilateral diffuse hyperplasia", "Severe/chronic ACTH-dependent CS", "Context: elevated ACTH expected in this case"],
],
col_widths=[4*cm, 4.5*cm, 8*cm], header_bg=TEAL
))
story.append(spacer())
story.append(h2("6.2 Adrenal Adenoma"))
story.append(body(
"The most common adrenal cause. A benign, unilateral, lipid-rich adenoma secretes cortisol autonomously. "
"The contralateral adrenal typically atrophies from ACTH suppression. "
"Treatment: unilateral adrenalectomy (laparoscopic). Post-op HPA axis suppression requires glucocorticoid "
"replacement until the contralateral adrenal recovers (can take 6–24 months)."
))
story.append(h2("6.3 Adrenocortical Carcinoma (ACC)"))
story.append(body(
"A rare but important diagnosis. Features suggesting ACC: size >4 cm, HU >10, heterogeneous texture, "
"calcifications, irregular margins, delayed contrast washout. "
"ACC often co-secretes multiple hormones (cortisol + androgens + aldosterone). "
"Always image the liver and lung to stage. FDG-PET/CT detects metastases. "
"Treatment: adrenalectomy ± mitotane. Prognosis is poor for advanced disease."
))
story.append(h2("6.4 Bilateral Macronodular Adrenal Hyperplasia (BMAH)"))
story.append(body(
"BMAH is characterized by both adrenals developing large nodules that secrete cortisol independently of ACTH. "
"A major mechanism is the expression of <b>aberrant G-protein coupled receptors</b> in the adrenal nodules "
"that respond to non-ACTH stimuli:"
))
story.append(bullets([
"<b>GIP (glucose-dependent insulinotropic peptide)</b> — food-dependent Cushing: cortisol rises after eating",
"<b>Vasopressin V1/V2 receptors</b> — cortisol rises with vasopressin or its analogues",
"<b>LH/hCG receptors</b> — cortisol rises during pregnancy or with LH surges (postmenopausal CS)",
"<b>Beta-adrenergic receptors</b> — cortisol rises with catecholamine stimulation",
"<b>Serotonin, angiotensin II, glucagon</b> receptors — variable",
]))
story.append(body(
"<b>Genetic cause:</b> The most common germline mutation is in <b>ARMC5</b> (armadillo repeat containing 5), "
"found in ~25–50% of BMAH cases. It follows an autosomal dominant pattern. "
"Family screening with 1mg-DST is recommended for first-degree relatives. "
"Somatic ARMC5 mutations also occur. Other mutations: KDM1A, MEN1, GNAS."
))
story.append(body(
"<b>Diagnostic workup:</b> Aberrant receptor testing involves measuring cortisol before and after "
"standardized stimuli (upright posture, mixed meal test, IV GnRH, IV vasopressin). "
"A cortisol rise >25% with a stimulus confirms that receptor. "
"<b>Treatment:</b> Bilateral adrenalectomy for florid CS; unilateral adrenalectomy for milder cases; "
"receptor-targeted therapy (e.g., octreotide for GIP-dependent) in selected cases."
))
story.append(h2("6.5 Primary Pigmented Nodular Adrenocortical Disease (PPNAD)"))
story.append(body(
"PPNAD is a rare bilateral adrenal condition characterized by small (<5 mm) pigmented (brown-black) micronodules "
"in the adrenal cortex, causing autonomous cortisol overproduction. It is strongly associated with "
"<b>Carney Complex</b>, an autosomal dominant syndrome caused by loss-of-function mutations in <b>PRKAR1A</b> "
"(protein kinase A regulatory subunit 1A)."
))
story.append(body(
"<b>Carney Complex features:</b> cardiac myxomas, cutaneous myxomas, spotty skin pigmentation (lentigines), "
"Sertoli cell tumors, pituitary GH/PRL adenomas, thyroid tumors. "
"Adrenal CT may appear <i>normal</i> or show only minimal bilateral enlargement — do not rule out PPNAD on CT alone. "
"The diagnosis can be confirmed with paradoxical rise in UFC on high-dose dexamethasone (Liddle test — UFC increases rather than decreases). "
"<b>Treatment:</b> Bilateral adrenalectomy."
))
story.append(h2("6.6 When CT is Inconclusive — Additional Adrenal Imaging"))
story.append(bullets([
"<b>MRI adrenals</b>: Chemical shift imaging distinguishes lipid-rich adenomas (signal drop on out-of-phase) from lipid-poor nodules or carcinoma",
"<b>FDG-PET/CT</b>: Differentiates malignant (FDG-avid) from benign (low FDG uptake) adrenal lesions",
"<b>¹¹C-metomidate PET</b>: Highly specific for adrenocortical tissue (binds 11β-hydroxylase); distinguishes adrenocortical from non-adrenocortical lesions",
"<b>Adrenal vein sampling (AVS)</b>: Used when bilateral adrenal lesions are present and surgical lateralization is needed to decide unilateral vs. bilateral adrenalectomy",
]))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 7 — ACTH-DEPENDENT CS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(h1("7. ACTH-Dependent Cushing Syndrome"))
story.append(h2("7.1 Pituitary MRI — First Step"))
story.append(body(
"In ACTH-dependent CS, a <b>pituitary MRI with gadolinium contrast</b> (thin cuts through the pituitary, "
"dynamic contrast-enhanced sequences) is the first imaging step."
))
story.append(data_table(
["Finding", "Interpretation", "Action"],
[
["Discrete adenoma >6 mm", "Strongly suggestive of Cushing's Disease (CD)", "Confirm with CRH test; proceed to neurosurgery if concordant"],
["Microadenoma <6 mm", "Consistent with CD but not diagnostic (incidentalomas common in 10% of population)", "Confirm with dynamic testing; consider BIPSS"],
["Normal pituitary MRI", "Does NOT rule out CD — up to 40% of CD have no visible adenoma", "Proceed to dynamic tests and BIPSS"],
["Macroadenoma >10 mm (rare in CD)", "Unusual for CD; consider other causes", "Confirm ACTH staining on pathology after surgery"],
["Cystic pituitary lesion / Rathke cleft cyst", "Not a functional adenoma — do not operate without BIPSS confirmation", "BIPSS mandatory"],
],
col_widths=[4*cm, 5.5*cm, 7*cm], header_bg=MID_BLUE
))
story.append(note(
"A normal MRI does not exclude CD. BIPSS remains the gold standard when MRI is negative or equivocal. "
"Approximately 40% of CD patients have no adenoma visible on MRI."
))
story.append(spacer())
story.append(h2("7.2 Dynamic Biochemical Tests for ACTH-Dependent CS"))
story.append(body(
"These tests exploit the partial preservation of feedback and stimulation responses in Cushing's Disease "
"(pituitary adenoma) versus the autonomy of ectopic ACTH sources."
))
story.append(h3("A. CRH Stimulation Test"))
story.append(data_table(
["Parameter", "Detail"],
[
["Protocol", "IV ovine or human CRH 1 mcg/kg or 100 mcg fixed dose; blood at -15, 0, +15, +30, +45, +60 min for ACTH and cortisol"],
["Positive result (CD)", "ACTH rise >35–50% above baseline AND/OR cortisol rise >14–20% above baseline"],
["Negative result (EAS)", "Blunted or no ACTH and cortisol response"],
["Sensitivity for CD", "~85–93%"],
["Specificity for CD vs EAS", "~100% (virtually no EAS shows CRH response)"],
["Note", "Some bronchial carcinoids express CRH receptors and may show a false positive — rare"],
],
col_widths=[4*cm, 12.5*cm], header_bg=TEAL
))
story.append(spacer(0.3))
story.append(h3("B. High-Dose Dexamethasone Suppression Test (HDDST)"))
story.append(data_table(
["Parameter", "Detail"],
[
["Protocol (overnight)", "8 mg dexamethasone at 11 PM; cortisol at 8 AM next morning"],
["Protocol (2-day)", "2 mg dexamethasone every 6 h for 48 h; cortisol at end"],
["Positive result (CD)", "Cortisol suppresses by >50% from baseline — pituitary adenoma retains partial sensitivity to glucocorticoid feedback"],
["Negative result (EAS)", "No suppression — ectopic tumors are autonomously secreting, no feedback sensitivity"],
["Sensitivity for CD", "~60–80%"],
["Specificity", "~60–90% — significant overlap; up to 10% of EAS suppress"],
["Current status", "Less relied upon than BIPSS; used in combination with CRH test and MRI for concordance"],
],
col_widths=[4*cm, 12.5*cm], header_bg=TEAL
))
story.append(spacer(0.4))
story.append(colored_box([
Paragraph("<b>Concordance principle:</b> Using CRH test + HDDST + MRI together improves accuracy. "
"When all three point to pituitary (adenoma on MRI + CRH response + HDDST suppression), "
"the positive predictive value for CD is very high, potentially reducing the need for BIPSS. "
"When results are discordant, BIPSS is mandatory.", BODY)
], bg=LIGHT_BLUE, border=MID_BLUE))
story.append(spacer())
# ── BIPSS ─────────────────────────────────────────────────────────────────────
story.append(h2("7.3 Bilateral Inferior Petrosal Sinus Sampling (BIPSS) — Gold Standard"))
story.append(body(
"BIPSS is the most accurate test available to distinguish <b>Cushing's Disease</b> (pituitary source) from "
"<b>Ectopic ACTH Syndrome</b> (EAS), with sensitivity of 94–97% and specificity of approximately 95%. "
"It is mandatory when MRI is normal or equivocal, or when dynamic test results are discordant."
))
story.append(h3("Procedure:"))
story.append(bullets([
"Performed by an experienced interventional radiologist under fluoroscopic guidance",
"Bilateral catheters are inserted via femoral veins and advanced to the <b>inferior petrosal sinuses</b> — the venous drainage of the pituitary gland",
"Simultaneous blood samples are drawn from both inferior petrosal sinuses AND a peripheral vein at the same time",
"Samples taken at baseline (before stimulation) and at 2, 5, and 10 minutes after IV CRH (100 mcg or 1 mcg/kg)",
"ACTH is measured at each time point in all three sampling sites",
]))
story.append(spacer(0.3))
story.append(data_table(
["Ratio (IPS : Peripheral ACTH)", "Timing", "Interpretation"],
[
["≥2.0", "Baseline (before CRH)", "Pituitary source (Cushing's Disease) — highly suggestive"],
["≥3.0", "After CRH stimulation", "Pituitary source (Cushing's Disease) — confirms"],
["<2.0 baseline AND <3.0 post-CRH", "Any time point", "Ectopic ACTH source — proceed with ectopic workup"],
["Lateralization: higher ACTH on one side", "After CRH", "Suggests adenoma in ipsilateral half of pituitary — guides surgeon"],
],
col_widths=[4.5*cm, 3.5*cm, 8.5*cm], header_bg=DARK_BLUE
))
story.append(spacer(0.3))
story.append(h3("Limitations and Pitfalls of BIPSS:"))
story.append(bullets([
"<b>Catheter position is critical</b> — misplacement in the jugular vein rather than the petrosal sinus causes false-negative results (appears to show ectopic source when it is CD). Prolactin co-sampling is used to verify correct placement (IPS:peripheral prolactin ratio should be >1.8 if correctly placed)",
"<b>Intermittent ACTH secretion</b> in cyclical CS may cause false negatives if sampled during a low-ACTH period",
"<b>Operator experience matters</b> — outcomes are significantly better at high-volume centers",
"<b>Complications</b>: stroke (rare, <0.5%), vascular injury, groin hematoma, contrast reaction — low overall risk at experienced centers",
"<b>Desmopressin (DDAVP)</b> can be used instead of CRH for stimulation if CRH is unavailable; IPS:P ratio ≥3 after DDAVP also indicates pituitary source",
"Lateralization should guide surgery but is not perfectly reliable (~70% concordance with tumor location at surgery)",
]))
story.append(spacer())
# ── Ectopic ───────────────────────────────────────────────────────────────────
story.append(h2("7.4 Ectopic ACTH Syndrome (EAS) — Workup"))
story.append(body(
"When BIPSS confirms an ectopic source (IPS:P <2 baseline, <3 post-CRH), a systematic search for the "
"ectopic tumor must follow. Many ectopic tumors are small, slow-growing carcinoids that can be very hard to find."
))
story.append(data_table(
["Tumor Type", "Proportion of EAS", "Key Imaging Features"],
[
["Bronchial carcinoid", "~40% (most common)", "Often small (<1 cm); CT chest with thin cuts; DOTATATE PET excellent"],
["Small cell lung cancer (SCLC)", "~20%", "Usually large, aggressive; FDG-PET/CT; rapid clinical onset"],
["Thymic carcinoid / thymoma", "~10%", "Anterior mediastinum on CT; DOTATATE PET"],
["Pancreatic NET", "~5%", "CT/MRI pancreas; DOTATATE PET"],
["Pheochromocytoma / paraganglioma", "<5%", "MIBG scan, DOTATATE PET, adrenal CT"],
["Medullary thyroid cancer", "<5%", "Thyroid ultrasound; calcitonin elevated"],
["GI NET (stomach, small bowel)", "~5%", "CT enterography; DOTATATE PET"],
["Occult / unknown primary", "~10–20%", "Annual imaging surveillance; DOTATATE PET most sensitive overall"],
],
col_widths=[4.5*cm, 3.5*cm, 8.5*cm], header_bg=RED
))
story.append(spacer(0.3))
story.append(h3("Imaging Protocol for EAS:"))
story.append(bullets([
"<b>CT chest/abdomen/pelvis</b> with contrast: first-line whole-body survey; thin cuts through chest for small bronchial carcinoids",
"<b>⁶⁸Ga-DOTATATE PET/CT</b>: somatostatin receptor (SSTR2) imaging — excellent for well-differentiated NETs, especially bronchial and thymic carcinoids. Sensitivity ~80–90% for NETs. Now preferred over octreotide scintigraphy",
"<b>FDG-PET/CT</b>: for aggressive, high-grade tumors (SCLC, poorly differentiated NETs) that are FDG-avid and DOTATATE-negative",
"<b>MRI</b>: superior to CT for liver metastases, pancreatic NETs, pituitary (for BIPSS-positive patients)",
"<b>¹²³I-MIBG scintigraphy</b>: for pheochromocytoma/paraganglioma if suspected",
"If no source found after initial imaging: repeat imaging every 6–12 months; consider DOTATATE PET if not yet done; in truly occult EAS, bilateral adrenalectomy may be offered for severe hypercortisolism",
]))
story.append(spacer(0.3))
story.append(colored_box([
Paragraph("<b>Clinical clues that favor EAS over CD:</b>", BODY),
Paragraph("• Rapid onset of symptoms (weeks to months rather than years)", BULLET),
Paragraph("• Severe hypokalemia (mineralocorticoid effect of very high cortisol saturating 11β-HSD2)", BULLET),
Paragraph("• Hyperpigmentation (very high ACTH stimulates MSH receptors)", BULLET),
Paragraph("• Markedly elevated UFC (>4× ULN) with very high plasma ACTH (>200 pg/mL)", BULLET),
Paragraph("• Less classic Cushingoid appearance — rapid onset does not allow time for adipose redistribution", BULLET),
Paragraph("• Profound metabolic alkalosis, glucose intolerance, and muscle wasting", BULLET),
], bg=RED_LIGHT, border=RED))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 8 — CYCLICAL CS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(h1("8. Cyclical Cushing Syndrome"))
story.append(body(
"Cyclical CS (also called periodic or episodic CS) is characterized by <b>alternating periods of hypercortisolism "
"and normal (or even low) cortisol</b>. The cycles may be regular or irregular, lasting days to weeks. "
"All subtypes of CS — pituitary, ectopic, and adrenal — can be cyclical, though it is most commonly "
"associated with Cushing's Disease."
))
story.append(h2("8.1 Diagnostic Challenges"))
story.append(bullets([
"If a patient is tested during a remission phase, all standard tests (UFC, LNSC, 1mg-DST) may be completely normal",
"This can lead to years of diagnostic delay and misdiagnosis as anxiety, depression, or functional disorder",
"Clinical suspicion must remain high despite normal biochemistry when the clinical picture is compelling",
"Patients may notice their symptoms wax and wane — this history should specifically be sought",
]))
story.append(h2("8.2 Diagnostic Strategy for Cyclical CS"))
story.append(bullets([
"<b>Hair cortisol/cortisone</b>: The most valuable tool — historical hypercortisolism episodes are captured in hair even when current testing is normal. A markedly elevated hair cortisol with a normal current UFC strongly suggests cyclical CS.",
"<b>Multiple UFC/LNSC collections</b>: Serial collections over several weeks to months — even monthly collections for 3–6 months — to catch an active phase",
"<b>Symptom tracking</b>: Educate patient to collect 24h urine or salivary cortisol when symptoms are at their worst (moon face most prominent, blood pressure spikes, mood is worst)",
"<b>Urinary free cortisol over time</b>: Plot values — characteristic sawtooth pattern confirms cyclical secretion",
"Once an active phase is identified, full biochemical workup should proceed immediately (ACTH, imaging) while cortisol is elevated",
]))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 9 — SUBCLINICAL / MILD CS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("9. Mild Autonomous Cortisol Secretion (MACS) and Subclinical CS"))
story.append(body(
"With the widespread use of abdominal CT and MRI, adrenal incidentalomas are now found in ~4–6% of all "
"abdominal imaging studies. A significant proportion of these secrete cortisol autonomously in amounts "
"insufficient to cause full-blown Cushingoid features — this is termed <b>Mild Autonomous Cortisol Secretion (MACS)</b>, "
"formerly called 'subclinical CS'. It is an important diagnosis because it is associated with "
"metabolic complications and cardiovascular risk."
))
story.append(data_table(
["1mg-DST Cortisol Result", "Classification", "Clinical Implication"],
[
["≤50 nmol/L (1.8 mcg/dL)", "Normal — CS excluded", "Reassure; repeat imaging in 6–12 months for incidentaloma surveillance"],
["51–138 nmol/L (1.8–5 mcg/dL)", "MACS / Possible autonomous cortisol secretion", "Correlate with clinical features; assess comorbidities; consider additional testing"],
[">138 nmol/L (5 mcg/dL)", "Overt CS", "Full CS workup — ACTH, UFC, LNSC; treat underlying cause"],
],
col_widths=[4.5*cm, 4.5*cm, 7.5*cm], header_bg=ORANGE
))
story.append(spacer(0.3))
story.append(body(
"In patients with MACS, additional tests (UFC, LNSC, DHEA-S — which is suppressed in adrenal autonomy) "
"help characterize the degree of excess. DHEA-S is suppressed because ACTH suppression reduces adrenal androgen "
"production from the zona reticularis. A suppressed DHEA-S in conjunction with borderline DST supports MACS."
))
story.append(h2("9.1 Management of MACS"))
story.append(bullets([
"<b>Conservative management (watchful waiting)</b>: Annual 1mg-DST, metabolic monitoring, BP, glucose, DEXA scan",
"<b>Adrenalectomy</b>: Considered when comorbidities (HTN, DM, osteoporosis) are present and worsening, patient is relatively young, and surgical risk is acceptable. Studies suggest improvement of metabolic comorbidities post-adrenalectomy",
"<b>Decision individualized</b>: Balance surgical risk vs. metabolic benefit; no universal recommendation yet",
"All patients with adrenal incidentaloma should have annual clinical review for CS progression",
]))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 10 — SPECIAL SITUATIONS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("10. Special Diagnostic Situations"))
story.append(h2("10.1 CS in Pregnancy"))
story.append(bullets([
"Rare but dangerous — associated with preeclampsia, GDM, preterm delivery, and fetal loss",
"Normal pregnancy activates the HPA axis — CBG rises 2–3×, raising total cortisol significantly",
"1mg-DST is unreliable in pregnancy (elevated CBG); LNSC and UFC are preferred",
"UFC upper limits of normal increase by trimester: use trimester-specific reference ranges",
"Salivary cortisol (free fraction) is more reliable than serum total cortisol in pregnancy",
"Adrenal adenoma is the most common cause of CS in pregnancy (not CD as in general population)",
"MRI without gadolinium is preferred for imaging (CT avoided)",
]))
story.append(spacer(0.3))
story.append(h2("10.2 CS in Children and Adolescents"))
story.append(bullets([
"Key clue: weight gain with GROWTH ARREST (falling height percentile) — this combination is virtually diagnostic of CS in children",
"In children <7 years: adrenal causes (adenoma, PPNAD, ACC) are more common",
"In children >7 years: CD (pituitary adenoma) becomes progressively more common",
"Salivary cortisol and UFC are the preferred first-line tests; DST cutoffs may differ by age",
"MRI pituitary with dedicated pediatric protocol; BIPSS can be performed at experienced pediatric centers",
]))
story.append(spacer(0.3))
story.append(h2("10.3 CS with Concurrent Medications"))
story.append(data_table(
["Drug", "Effect on Testing", "Management"],
[
["Oral contraceptive pills / HRT", "Elevate CBG → false positive DST; does not affect UFC or LNSC", "Discontinue for 4–6 weeks before DST; or use UFC/LNSC"],
["Rifampicin, phenytoin, carbamazepine, phenobarbital", "CYP3A4 inducers → rapid dex metabolism → false positive DST", "Switch drug if possible; use UFC/LNSC instead of DST"],
["Ketoconazole, itraconazole, fluconazole", "CYP3A4 inhibitors → elevated dex → false negative DST; also reduce cortisol synthesis", "UFC/LNSC preferred; aware that ketoconazole itself lowers cortisol"],
["Megestrol acetate, medroxyprogesterone", "Glucocorticoid agonist activity → iatrogenic CS + suppressed endogenous cortisol", "Withdraw medication; ACTH stimulation test to assess adrenal recovery"],
["Spironolactone", "Cross-reacts in some aldosterone immunoassays — not a major issue for cortisol testing", "Usually not a problem for cortisol"],
],
col_widths=[4*cm, 6.5*cm, 6*cm], header_bg=TEAL
))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 11 — MASTER DIAGNOSTIC ALGORITHM
# ═══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(h1("11. Master Diagnostic Algorithm Summary"))
story.append(data_table(
["Step", "Action", "Test(s)", "Decision"],
[
["0", "Exclude exogenous glucocorticoids", "Medication review — all routes", "If exogenous → Iatrogenic CS, STOP"],
["1", "Identify clinical suspicion", "Physical exam, symptoms, high-risk groups", "If classic features → SCREEN"],
["2", "First-line screening (≥2 tests)", "1mg-DST + UFC + LNSC ± Hair cortisol", "≥2 abnormal → Confirm endogenous CS\n1 abnormal → Repeat or Dex-CRH test\nAll normal + cyclical suspected → Hair cortisol"],
["3", "Equivocal results", "Dex-CRH test or 2mg/day 2-day DST", "Abnormal → CS confirmed\nNormal → Pseudo-Cushing likely"],
["4", "Plasma ACTH", "Pre-chilled EDTA tube, on ice, rapid processing", "ACTH <10 → ACTH-independent (adrenal)\nACTH >20 → ACTH-dependent (pit/ectopic)"],
["5A", "ACTH-independent pathway", "CT adrenals (thin slice, HU measurement)", "Adenoma / ACC / BMAH / PPNAD"],
["5A+", "Further adrenal characterization if needed", "MRI, FDG-PET, ¹¹C-metomidate PET, AVS, ARMC5/PRKAR1A genetics", "Guides surgical vs. medical management"],
["5B", "ACTH-dependent pathway", "Pituitary MRI with gadolinium", "Adenoma >6 mm → likely CD\nNormal/equivocal → dynamic tests + BIPSS"],
["6B", "Dynamic tests", "CRH stimulation test + HDDST", "Concordant with CD → likely Cushing's Disease\nDiscordant or negative → BIPSS mandatory"],
["7B", "BIPSS", "Bilateral IPS sampling ± CRH", "IPS:P ≥3 post-CRH → Cushing's Disease → surgery\nIPS:P <2 → Ectopic ACTH → EAS workup"],
["8B", "EAS workup", "CT chest/abdomen/pelvis + ⁶⁸Ga-DOTATATE PET ± FDG-PET", "Source found → targeted therapy\nOccult → surveillance; bilateral adrenalectomy if severe"],
],
col_widths=[1*cm, 3.5*cm, 5*cm, 7*cm],
header_bg=DARK_BLUE
))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 12 — KEY NUMBERS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("12. Key Numbers to Know"))
story.append(data_table(
["Test / Parameter", "Value", "Significance"],
[
["1mg-DST normal suppression", "≤50 nmol/L (1.8 mcg/dL)", "CS excluded if suppressed (sens ~95%)"],
["1mg-DST overt CS threshold", ">138 nmol/L (5 mcg/dL)", "High specificity for overt CS"],
["ACTH: ACTH-independent CS", "<10 pg/mL (2.2 pmol/L)", "Adrenal source; ACTH suppressed"],
["ACTH: ACTH-dependent CS", ">20 pg/mL (4.4 pmol/L)", "Pituitary or ectopic ACTH source"],
["ACTH: borderline", "10–20 pg/mL", "Repeat; CRH stimulation test"],
["CRH test — CD positive", "ACTH rise >35–50%; cortisol rise >14–20%", "Pituitary source likely"],
["HDDST — CD positive", "Cortisol suppresses >50%", "Pituitary adenoma (partial feedback sensitivity)"],
["BIPSS IPS:P — pituitary", "≥2 baseline; ≥3 post-CRH", "Cushing's Disease confirmed; sensitivity 94–97%"],
["BIPSS IPS:P — ectopic", "<2 baseline AND <3 post-CRH", "Ectopic ACTH source"],
["MACS DST range", "51–138 nmol/L (1.8–5 mcg/dL)", "Mild autonomous secretion; metabolic risk"],
["Hair cortisol: time window", "Proximal 3 cm = ~3 months", "Retrospective integrated exposure"],
["Hair growth rate", "~1 cm per month", "Basis for hair cortisol dating"],
["CD as % of endogenous CS", "~65–70%", "Most common endogenous CS"],
["ACTH-dependent CS total", "~80–85% of endogenous CS", "Majority are pituitary or ectopic-driven"],
["ACTH-independent CS total", "~15–20% of endogenous CS", "Adrenal autonomous cortisol production"],
["Bronchial carcinoid as EAS", "~40% of ectopic ACTH cases", "Most common ectopic ACTH source"],
["Normal MRI in CD", "~40% of cases", "Justifies BIPSS even with normal MRI"],
],
col_widths=[5.5*cm, 4.5*cm, 6.5*cm],
header_bg=PURPLE
))
story.append(spacer())
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 13 — CLINICAL PEARLS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(h1("13. Clinical Pearls from the Paper"))
story.append(colored_box([
Paragraph("1. <b>Always exclude exogenous glucocorticoids first</b> — including inhaled, topical, intra-articular, "
"and ophthalmic steroids. These are the most common cause of Cushingoid features worldwide and are easily missed.", BULLET),
Paragraph("2. <b>Two abnormal first-line tests are required</b> before committing to an endogenous CS diagnosis. "
"One equivocal result should prompt repetition or a second-line test, not immediate referral for imaging.", BULLET),
Paragraph("3. <b>MRI negativity does not exclude Cushing's Disease</b>. Up to 40% of CD has no visible adenoma on MRI. "
"BIPSS is mandatory in this setting and should not be skipped.", BULLET),
Paragraph("4. <b>ACTH sample handling is critical</b>. Improperly handled samples (not on ice, delayed centrifugation) "
"cause ACTH degradation → falsely low ACTH → wrong classification as ACTH-independent CS → wrong imaging path.", BULLET),
Paragraph("5. <b>Hair cortisol is the test for cyclical CS</b>. If a patient has compelling clinical history but "
"normal blood/urine/saliva cortisol, hair cortisol can uncover historical hypercortisolism.", BULLET),
Paragraph("6. <b>Rapid onset + severe hypokalemia + hyperpigmentation = think ectopic ACTH first</b>. "
"These patients look less 'Cushingoid' because the disease is too rapid for fat redistribution.", BULLET),
Paragraph("7. <b>BIPSS prolactin co-sampling verifies catheter placement</b>. An IPS:peripheral prolactin ratio <1.8 "
"suggests the catheter is not in the petrosal sinus, and the result may be a false negative for EAS.", BULLET),
Paragraph("8. <b>BMAH may not suppress ACTH completely</b> — ACTH levels in the low-normal range (not fully suppressed) "
"in the presence of bilateral adrenal enlargement should raise suspicion for BMAH, not CD.", BULLET),
Paragraph("9. <b>Increased awareness beyond endocrinology is key</b>. Many patients present first to family doctors, "
"psychiatrists, or neurologists with depression, hypertension, or osteoporosis. Recognition in these "
"settings is the only way to achieve earlier diagnosis.", BULLET),
Paragraph("10. <b>Diagnosis and differential diagnosis of CS can still be extremely challenging</b> even with all "
"modern tools — as explicitly stated in the paper. If uncertain, refer to a specialist center.", BULLET),
], bg=GREEN_LIGHT, border=GREEN))
# ── Reference ─────────────────────────────────────────────────────────────────
story.append(spacer(0.8))
story.append(rule(GRAY_MED))
story.append(Paragraph(
"<b>Source:</b> Savas M, Mehta S, Agrawal N, van Rossum EFC, Feelders RA. "
"Approach to the Patient: Diagnosis of Cushing Syndrome. "
"<i>J Clin Endocrinol Metab.</i> 2022;107(11):3162–3174. "
"DOI: 10.1210/clinem/dgac492. PMID: 36036941. PMC: PMC9681610.",
style("Normal", fontSize=8.5, textColor=colors.HexColor("#444444"),
fontName="Helvetica-Oblique", leading=12)
))
story.append(Paragraph(
"This document is a clinical educational summary. It does not constitute medical advice. "
"All clinical decisions should be made in consultation with qualified specialists using current guidelines.",
style("Normal", fontSize=8, textColor=colors.HexColor("#888888"),
fontName="Helvetica-Oblique", leading=11, spaceBefore=4)
))
# ── BUILD ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
cd /home/daytona/workspace/cushing-writeup && python generate_pdf.py
ls -lh /home/daytona/workspace/cushing-writeup/Cushing_Syndrome_Diagnosis_Writeu…
Cushing Syndrome Diagnosis Writeup
PDF Document · PDF
What are the side effects of growth hormone therapy in a growth hormone deficiency chuld
"growth hormone" AND "side effects" AND deficiency AND children
"growth hormone therapy" AND adverse AND pediatric
| Concern | Current Evidence |
|---|---|
| Cancer risk | No increased incidence of primary cancer in GHD children treated with rhGH (GeNeSIS study, large prospective observational study). Contraindicated in known active malignancy. |
| Cardiovascular mortality | The French SAGHE study arm showed higher all-cause cardiovascular mortality in long-term GH-treated patients; however, Swedish data and other European arms showed no increased mortality. The matter is not fully resolved. |
| Leukemia risk | Historical concern with cadaveric pituitary GH; not seen with recombinant GH in children without underlying cancer risk |
| Effect on prior malignancy | Children with history of prior malignancy (e.g., childhood brain tumors treated with irradiation who later develop GHD) have elevated baseline mortality. GH is used with caution in this group; it does not appear to increase cancer recurrence when used in remission. |
| Parameter | Frequency | Reason |
|---|---|---|
| Height, weight, growth velocity | Every 3–6 months | Assess response to therapy |
| Fasting glucose / HbA1c | Every 6–12 months | Insulin resistance |
| IGF-1 levels | Every 6 months | Dose optimization; avoid over-replacement |
| Thyroid function (TSH, FT4) | Every 6–12 months | Unmask central hypothyroidism |
| Morning cortisol / ACTH stim | If clinically indicated | Unmask secondary adrenal insufficiency |
| Scoliosis screen | Annually | Progression risk |
| Hip pain assessment | Each visit | SCFE |
| Fundoscopy / papilledema check | If headache develops | Pseudotumor cerebri |
| Frequency | Side Effect |
|---|---|
| Common / expected | Injection site reactions, transient edema |
| Uncommon but clinically important | Pseudotumor cerebri, SCFE, scoliosis progression, hyperglycemia, unmasking of pituitary deficiencies |
| Rare | Pancreatitis, gynecomastia, carpal tunnel, naevus growth |
| Condition-specific | Respiratory risk (PWS + obesity), otitis media (Turner syndrome) |
| Long-term / still debated | Cardiovascular mortality, cancer risk |