Swelling is possible due to what all medical reasons and how to diagnose what will it indicate

| Cause | Key Features |
|---|---|
| Heart failure (right or congestive) | Bilateral, dependent, pitting; worsens by evening; associated with raised JVP, S3 gallop, dyspnea, orthopnea |
| Renal failure (acute or chronic) | Generalized pitting edema; associated with hypertension, uremic symptoms, elevated creatinine |
| Hepatic cirrhosis | Ascites + peripheral edema; spider angiomas, jaundice, low BP, hypoalbuminemia |
| Deep vein thrombosis (DVT) | Unilateral leg swelling, pain, erythema, warmth |
| Chronic venous insufficiency | Bilateral lower leg edema; medial malleolus ulcers; affects women of reproductive age |
| Pregnancy | Due to uterine compression of inferior vena cava + hormonal effects |
| Superior vena cava (SVC) syndrome | Edema confined to face, neck, and upper extremities; caused by central obstruction (lung cancer, thrombus) |
| Constrictive pericarditis | Elevated JVP + Kussmaul's sign + early diastolic extra heart sound |
| Medications | Calcium channel blockers (amlodipine), steroids (glucocorticoids, estrogens, anabolic steroids), vasodilators, cyclosporine |
| Paralysis / immobilization | Failure of the muscle venous pump - unilateral edema on affected side |
| Mineralocorticoid excess | Salt/water retention by kidneys |
| Cause | Key Features |
|---|---|
| Nephrotic syndrome | Periorbital puffiness (prominent in morning), generalized edema; proteinuria ≥3.5 g/day, hypoalbuminemia, hypercholesterolemia |
| Hepatic cirrhosis / liver failure | Reduced albumin synthesis; Terry's nails (white opacification) may be present |
| Protein-calorie malnutrition (Kwashiorkor) | Muscle atrophy, hollow temples, rib protrusion, peripheral edema in children |
| Protein-losing enteropathy | Protein lost via gut; can be due to IBD, lymphangiectasia, severe gastroenteritis |
| Burns / large wounds | Protein lost through denuded skin |
| Cause | Key Features |
|---|---|
| Local inflammation (trauma, cellulitis, burns, insect stings) | Localized, nonpitting edema; associated with erythema, pain, warmth |
| Allergic reaction / Anaphylaxis | Angioedema - nondependent, nonpitting; lips, tongue, periorbital, hands, genitalia; mediated by histamine |
| ACE inhibitor-induced angioedema | Bradykinin-mediated; does NOT respond to antihistamines; can be life-threatening if laryngeal |
| Preeclampsia | Hypertension + proteinuria + edema at ≥20 weeks gestation; endothelial dysfunction is the mechanism |
| Sepsis / severe infection | Cytokine storm increases permeability systemically |
| Systemic capillary leak syndrome | Rare; recurrent episodes of hypotension, hemoconcentration, edema |
| Idiopathic edema | Women; unexplained face/hand/leg swelling; diuretic misuse often complicates it |
| Vitamin C deficiency (Scurvy) | Impairs collagen in vessel walls |
| Prolonged ischemia / reperfusion injury | Tissue injury increases local capillary permeability |
| Cause | Key Features |
|---|---|
| Malignant lymphatic obstruction (lymphoma, metastatic cancer) | Unilateral; ipsilateral to obstruction; skin becomes thickened/darkened over time (lymphostatic verrucosis) |
| Filariasis (Wuchereria bancrofti) | Parasitic infection; worldwide - most common infectious cause of lymphedema |
| Post-surgical lymphedema | Axillary dissection after breast cancer surgery; arm swelling |
| Radiation treatment | Lymphatic fibrosis after radiation |
| Primary (congenital) lymphedema | Absent or abnormal lymphatic vessels; intractable |
| Hypothyroidism (Myxedema) | Nonpitting bilateral lower extremity edema; glycosaminoglycan deposition; associated with dry hair, constipation, bradycardia, weight gain |
| Graves' disease (pretibial myxedema) | Bilateral, asymmetric, nonpitting, nondependent edema over pretibial region |
| Distribution | Think of |
|---|---|
| Bilateral lower extremity, dependent, worsens evening | Heart failure, venous insufficiency, bilateral DVT |
| Periorbital, facial, worst in morning | Nephrotic syndrome, renal disease, angioedema |
| Ascites + leg edema | Cirrhosis, heart failure, nephrotic syndrome |
| Unilateral leg swelling | DVT, lymphedema, cellulitis, popliteal cyst rupture |
| Face, neck, arms only | SVC syndrome |
| Pretibial only, nonpitting | Graves' dermopathy |
| Generalized nonpitting | Myxedema (hypothyroidism) |
| Localized + warm + red | Infection, inflammation, allergy |
| Investigation | What it tells you |
|---|---|
| Serum albumin | Low = nephrotic syndrome, cirrhosis, malnutrition |
| Urine protein (spot protein:creatinine or 24-hour) | Proteinuria ≥3.5 g/day = nephrotic syndrome |
| BNP / NT-proBNP | Elevated = heart failure |
| Serum creatinine, BUN | Elevated = renal disease |
| Liver enzymes (ALT, AST, bilirubin, PT/INR) | Abnormal = hepatic cause |
| TSH, Free T4 | Low TSH + high T4 = hyperthyroid; High TSH + low T4 = hypothyroid (myxedema) |
| ECG + Echocardiogram | Cardiac structure and function |
| Duplex ultrasound (venous) | DVT, venous insufficiency |
| CBC | Anemia can indicate chronic disease or heart failure |
| Serum electrolytes | Hyponatremia = severe heart failure; hyperkalemia = renal failure |
| Chest X-ray | Pulmonary edema, cardiomegaly, pleural effusion |
| ANA, complement, ANCA | If glomerulonephritis suspected (edema + hematuria + proteinuria) |
| Edema Type | Most Likely Cause |
|---|---|
| Bilateral pitting + raised JVP + dyspnea | Heart failure |
| Bilateral pitting + periorbital + frothy urine | Nephrotic syndrome |
| Bilateral pitting + jaundice + ascites + spider angiomas | Cirrhosis |
| Unilateral + acute + painful + warm | DVT or cellulitis |
| Nonpitting + bilateral + bradycardia + dry skin | Hypothyroidism |
| Unilateral + chronic + thickened skin | Lymphedema |
| Face/lips/throat swelling + urticaria | Allergic angioedema |
| Face/arm swelling + no hives + on ACE inhibitor | ACE inhibitor angioedema |
| Lower leg edema + hypertension + proteinuria in pregnancy | Preeclampsia |
Create a diagnostic flowchart PDF for swelling workup
mkdir -p /home/daytona/workspace/swelling-flowchart && ls /home/daytona/workspac…
~/swelling-flowchart/generate_flowchart.py
from reportlab.lib.pagesizes import A3, landscape
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.pdfgen import canvas
from reportlab.lib.utils import simpleSplit
OUTPUT = "/home/daytona/workspace/swelling-flowchart/Swelling_Diagnostic_Flowchart.pdf"
# ── palette ──────────────────────────────────────────────────────────────────
C_TITLE_BG = colors.HexColor("#1A237E") # deep navy
C_TITLE_FG = colors.white
C_START_BG = colors.HexColor("#283593") # indigo
C_STEP_BG = colors.HexColor("#1565C0") # dark blue
C_STEP_FG = colors.white
C_DIAMOND_BG = colors.HexColor("#FF6F00") # amber – decision nodes
C_DIAMOND_FG = colors.white
C_LEAF_BG = {
"cardiac": colors.HexColor("#C62828"),
"renal": colors.HexColor("#4527A0"),
"hepatic": colors.HexColor("#1B5E20"),
"nephrotic": colors.HexColor("#0D47A1"),
"thyroid": colors.HexColor("#006064"),
"lymph": colors.HexColor("#1A237E"),
"dvt": colors.HexColor("#B71C1C"),
"venous": colors.HexColor("#880E4F"),
"allergy": colors.HexColor("#E65100"),
"local": colors.HexColor("#4E342E"),
"precl": colors.HexColor("#558B2F"),
"medic": colors.HexColor("#37474F"),
}
C_ARROW = colors.HexColor("#37474F")
C_LINE = colors.HexColor("#B0BEC5")
C_BG = colors.HexColor("#F0F4FF")
C_SECTION_LINE = colors.HexColor("#90A4AE")
# ── helpers ──────────────────────────────────────────────────────────────────
def draw_rounded_box(c, x, y, w, h, fill, text_lines, font="Helvetica-Bold",
fsize=7.5, text_color=colors.white, radius=4, border_color=None):
c.setFillColor(fill)
if border_color:
c.setStrokeColor(border_color)
c.setLineWidth(1)
else:
c.setStrokeColor(fill)
c.setLineWidth(0.5)
c.roundRect(x, y, w, h, radius, fill=1, stroke=1)
c.setFillColor(text_color)
c.setFont(font, fsize)
total_h = len(text_lines) * (fsize + 1.5)
start_y = y + h/2 + total_h/2 - fsize
for i, line in enumerate(text_lines):
lw = c.stringWidth(line, font, fsize)
c.drawString(x + w/2 - lw/2, start_y - i*(fsize+1.5), line)
def draw_diamond(c, cx, cy, hw, hh, fill, lines, fsize=7):
c.setFillColor(fill)
c.setStrokeColor(colors.white)
c.setLineWidth(0.8)
path = c.beginPath()
path.moveTo(cx, cy + hh)
path.lineTo(cx + hw, cy)
path.lineTo(cx, cy - hh)
path.lineTo(cx - hw, cy)
path.close()
c.drawPath(path, fill=1, stroke=1)
c.setFillColor(colors.white)
c.setFont("Helvetica-Bold", fsize)
total_h = len(lines) * (fsize + 1.5)
sy = cy + total_h/2 - fsize
for i, line in enumerate(lines):
lw = c.stringWidth(line, "Helvetica-Bold", fsize)
c.drawString(cx - lw/2, sy - i*(fsize+1.5), line)
def arrow(c, x1, y1, x2, y2, label="", color=C_ARROW):
c.setStrokeColor(color)
c.setLineWidth(1.2)
c.line(x1, y1, x2, y2)
# arrowhead
import math
ang = math.atan2(y2-y1, x2-x1)
al = 5
aw = 3
c.setFillColor(color)
p = c.beginPath()
p.moveTo(x2, y2)
p.lineTo(x2 - al*math.cos(ang) + aw*math.sin(ang),
y2 - al*math.sin(ang) - aw*math.cos(ang))
p.lineTo(x2 - al*math.cos(ang) - aw*math.sin(ang),
y2 - al*math.sin(ang) + aw*math.cos(ang))
p.close()
c.drawPath(p, fill=1, stroke=0)
if label:
c.setFillColor(C_ARROW)
c.setFont("Helvetica-Bold", 6.5)
mx, my = (x1+x2)/2, (y1+y2)/2
c.drawString(mx+2, my+2, label)
def horiz_line(c, x1, x2, y, color=C_SECTION_LINE):
c.setStrokeColor(color)
c.setLineWidth(0.5)
c.setDash(3, 3)
c.line(x1, y, x2, y)
c.setDash()
# ── page setup ───────────────────────────────────────────────────────────────
W, H = landscape(A3) # 420 × 297 mm
c = canvas.Canvas(OUTPUT, pagesize=(W, H))
# background
c.setFillColor(C_BG)
c.rect(0, 0, W, H, fill=1, stroke=0)
# thin border
c.setStrokeColor(C_TITLE_BG)
c.setLineWidth(2)
c.rect(4, 4, W-8, H-8, fill=0, stroke=1)
# ── TITLE BAR ────────────────────────────────────────────────────────────────
c.setFillColor(C_TITLE_BG)
c.rect(4, H-38, W-8, 34, fill=1, stroke=0)
c.setFillColor(colors.white)
c.setFont("Helvetica-Bold", 17)
title = "DIAGNOSTIC FLOWCHART: SWELLING / EDEMA WORKUP"
c.drawString(W/2 - c.stringWidth(title,"Helvetica-Bold",17)/2, H-23, title)
c.setFont("Helvetica", 8)
sub = "Based on Harrison's Principles of Internal Medicine 22E | Guyton & Hall | Frameworks for Internal Medicine"
c.setFillColor(colors.HexColor("#B3C0FF"))
c.drawString(W/2 - c.stringWidth(sub,"Helvetica",8)/2, H-33, sub)
# ── LEGEND ───────────────────────────────────────────────────────────────────
LX = W - 105
LY = H - 115
c.setFillColor(colors.white)
c.setStrokeColor(C_LINE)
c.setLineWidth(0.5)
c.roundRect(LX-4, LY-6, 104, 72, 4, fill=1, stroke=1)
c.setFont("Helvetica-Bold", 7.5)
c.setFillColor(C_TITLE_BG)
c.drawString(LX+18, LY+58, "LEGEND")
legend_items = [
(C_STEP_BG, "Assessment Step"),
(C_DIAMOND_BG, "Decision / Question"),
(colors.HexColor("#C62828"), "Cardiac Diagnosis"),
(colors.HexColor("#4527A0"), "Renal Diagnosis"),
(colors.HexColor("#1B5E20"), "Hepatic Diagnosis"),
(colors.HexColor("#37474F"), "Other Diagnosis"),
]
for i,(col,label) in enumerate(legend_items):
ry = LY + 46 - i*10
c.setFillColor(col)
c.roundRect(LX, ry-5, 12, 8, 2, fill=1, stroke=0)
c.setFillColor(C_TITLE_BG)
c.setFont("Helvetica", 6.8)
c.drawString(LX+15, ry-3, label)
# ─────────────────────────────────────────────────────────────────────────────
# LAYOUT (all coords in points; A3 landscape = 841.9 × 595.3 pt)
# Row Y positions (top → bottom)
Y0 = H - 60 # START node
Y1 = Y0 - 40 # Step 1 (clinical assessment)
Y2 = Y1 - 42 # Diamond: Bilateral or Unilateral?
Y3 = Y2 - 40 # Diamond: Pitting or Nonpitting? (bilateral branch)
Y4 = Y3 - 42 # Step 2 investigations
Y5 = Y4 - 42 # Final diagnoses row
Y6 = Y5 - 36 # further diagnoses (second row)
# Centre x
CX = W/2
# ── START ────────────────────────────────────────────────────────────────────
sx, sy, sw, sh = CX-52, Y0-14, 104, 22
draw_rounded_box(c, sx, sy, sw, sh, C_START_BG,
["PATIENT PRESENTS WITH SWELLING"], "Helvetica-Bold", 8.5,
radius=11)
# arrow down
arrow(c, CX, sy, CX, Y1+22)
# ── STEP 1: Clinical Assessment ──────────────────────────────────────────────
bw, bh = 180, 38
draw_rounded_box(c, CX-bw/2, Y1-bh+22, bw, bh, C_STEP_BG,
["STEP 1: CLINICAL ASSESSMENT",
"History: onset · location · duration · medications",
"Exam: pitting test · JVP · abdomen · skin signs"],
"Helvetica-Bold", 7.2, radius=5,
border_color=colors.HexColor("#90CAF9"))
arrow(c, CX, Y1-bh+22, CX, Y2+18)
# ── DIAMOND 1: Bilateral vs Unilateral ───────────────────────────────────────
draw_diamond(c, CX, Y2, 70, 20, C_DIAMOND_BG,
["BILATERAL", "or UNILATERAL?"])
# ── LEFT BRANCH: UNILATERAL ──────────────────────────────────────────────────
UX = 130 # x-centre of unilateral column
# horizontal left
c.setStrokeColor(C_ARROW); c.setLineWidth(1.2)
c.line(CX-70, Y2, UX+60, Y2)
arrow(c, UX+60, Y2, UX+60, Y2-2) # tiny downward nub already at leaf level
# label
c.setFillColor(C_ARROW); c.setFont("Helvetica-Bold", 6.5)
c.drawString(UX+20, Y2+3, "UNILATERAL")
# Unilateral box
UBX = UX - 68
draw_rounded_box(c, UBX, Y2-56, 136, 52, C_STEP_BG,
["UNILATERAL SWELLING",
"─────────────────────",
"DVT → Doppler US (D-dimer)",
"Cellulitis → CBC, CRP, culture",
"Lymphedema → CT/MRI lymphatics",
"Hematoma → Hx trauma, US",
"Popliteal cyst → US knee"],
"Helvetica", 6.8, radius=5,
border_color=colors.HexColor("#EF9A9A"))
# ── RIGHT BRANCH: bilateral ──────────────────────────────────────────────────
RX = W - 115 # x right label area
c.setStrokeColor(C_ARROW); c.setLineWidth(1.2)
c.line(CX+70, Y2, RX-20, Y2)
c.setFillColor(C_ARROW); c.setFont("Helvetica-Bold", 6.5)
c.drawString(RX-50, Y2+3, "BILATERAL")
arrow(c, CX, Y2-20, CX, Y3+20) # down centre for bilateral
# ── DIAMOND 2: Pitting vs Nonpitting ─────────────────────────────────────────
draw_diamond(c, CX, Y3, 62, 18, C_DIAMOND_BG,
["PITTING or", "NON-PITTING?"])
# ── NONPITTING → right ──────────────────────────────────────────────────────
NPX = W - 82
c.setStrokeColor(C_ARROW); c.setLineWidth(1.2)
c.line(CX+62, Y3, NPX-50, Y3)
c.setFillColor(C_ARROW); c.setFont("Helvetica-Bold", 6.5)
c.drawString(NPX-85, Y3+3, "NON-PITTING")
draw_rounded_box(c, NPX-50, Y3-42, 128, 40, C_STEP_BG,
["NON-PITTING EDEMA",
"──────────────────────",
"Hypothyroid → TSH, Free T4",
"Lymphedema (cancer/filariasis)",
"Graves' dermopathy → T3,T4,TSH",
"Lipedema → clinical Dx"],
"Helvetica", 6.8, radius=5,
border_color=colors.HexColor("#80CBC4"))
# ── PITTING → down ───────────────────────────────────────────────────────────
arrow(c, CX, Y3-18, CX, Y4+bh-2)
c.setFillColor(C_ARROW); c.setFont("Helvetica-Bold", 6.5)
c.drawString(CX+3, Y3-10, "PITTING")
# ── STEP 2: Labs / Investigations ────────────────────────────────────────────
draw_rounded_box(c, CX-bw/2, Y4-bh+bh-2, bw, 38, C_STEP_BG,
["STEP 2: KEY INVESTIGATIONS",
"BNP · Serum albumin · Urine protein · LFTs",
"Creatinine · TSH · Echo · Chest X-ray"],
"Helvetica-Bold", 7.2, radius=5,
border_color=colors.HexColor("#90CAF9"))
arrow(c, CX, Y4-bh+bh-2, CX, Y4-bh+bh-2-6)
# ── DIAMOND 3: Which system? ──────────────────────────────────────────────────
D3Y = Y4 - bh - 8
draw_diamond(c, CX, D3Y, 80, 22, C_DIAMOND_BG,
["WHICH SYSTEM", "IS IMPLICATED?"])
# ── SIX FINAL DIAGNOSIS LEAVES ───────────────────────────────────────────────
LW, LH = 118, 56
spacing = (W - 48) / 6
leaf_y = D3Y - 70
leaves = [
("cardiac", 42, ["CARDIAC", "─────────────",
"↑ BNP/NT-proBNP",
"↑ JVP + S3 gallop",
"Echo: ↓ EF",
"Rx: Diuretics,",
"ACEi/ARB, β-blocker"]),
("renal", 160, ["RENAL FAILURE", "─────────────",
"↑ Creatinine/BUN",
"Hyperkalemia",
"Metabolic acidosis",
"Proteinuria (CKD)",
"Rx: Dialysis, diuretics"]),
("nephrotic", 279, ["NEPHROTIC SYNDROME", "──────────────",
"Protein ≥3.5 g/day",
"↓ Albumin",
"Periorbital edema",
"Rx: Treat cause,",
"diuretics, protein diet"]),
("hepatic", 398, ["HEPATIC CIRRHOSIS", "──────────────",
"↑ LFTs, ↓ albumin",
"Ascites + jaundice",
"Spider angiomas",
"Rx: Salt restrict,",
"spironolactone"]),
("allergy", 517, ["ALLERGY / ANGIOEDEMA", "──────────────",
"Hives / urticaria",
"ACEi → bradykinin",
"Preeclampsia: BP+",
"Rx: Antihistamine,",
"epi if severe"]),
("medic", 636, ["OTHER CAUSES", "──────────────",
"Medications (CCB,",
"steroids, NSAIDs)",
"Pregnancy",
"Malnutrition/kwashiorkor",
"Rx: Stop offender"]),
]
for key, lx, lines in leaves:
draw_rounded_box(c, lx, leaf_y - LH, LW, LH,
C_LEAF_BG.get(key, colors.HexColor("#37474F")),
lines, "Helvetica", 6.5, radius=5,
border_color=colors.white)
# arrow from diamond base to top of box
bx = lx + LW/2
# draw elbow: down from diamond, then over, then down to box
mid_y = D3Y - 28
c.setStrokeColor(C_ARROW); c.setLineWidth(0.9)
c.line(CX, D3Y-22, CX, mid_y)
c.line(CX, mid_y, bx, mid_y)
arrow(c, bx, mid_y, bx, leaf_y)
# ── FOOTER ───────────────────────────────────────────────────────────────────
c.setFillColor(C_TITLE_BG)
c.rect(4, 4, W-8, 14, fill=1, stroke=0)
c.setFillColor(colors.HexColor("#B3C0FF"))
c.setFont("Helvetica", 6.5)
footer = ("Sources: Harrison's Internal Medicine 22E | Guyton & Hall Medical Physiology | "
"Frameworks for Internal Medicine | For clinical use only — always apply clinical judgment")
c.drawString(W/2 - c.stringWidth(footer,"Helvetica",6.5)/2, 8, footer)
c.save()
print("PDF saved →", OUTPUT)
cd /home/daytona/workspace/swelling-flowchart && python generate_flowchart.py 2>…
ls -lh /home/daytona/workspace/swelling-flowchart/Swelling_Diagnostic_Flowchart.…
Swelling Diagnostic Flowchart
PDF Document · PDF
Teach me thyroidism according to final year student
Sources: Robbins & Kumar Basic Pathology | Textbook of Family Medicine 9e | Harrison's Principles of Internal Medicine 22E
Hypothalamus
↓ TRH (Thyrotropin-Releasing Hormone)
Anterior Pituitary
↓ TSH (Thyroid-Stimulating Hormone)
Thyroid Gland
↓ T3 + T4 (Thyroid Hormones)
Peripheral Tissues
↑ T3/T4 → NEGATIVE FEEDBACK on hypothalamus + pituitary
| Parameter | Value |
|---|---|
| T4 : T3 secretion ratio | 20:1 |
| Biologically active form | T3 (10× more potent than T4) |
| T3 receptor affinity | 10-fold greater than T4 |
| Transport proteins | TBG (major), Transthyretin, Albumin |
| Half-life T4 | ~7 days |
| Half-life T3 | ~1 day |
| Cause | Mechanism | Key Feature |
|---|---|---|
| Graves disease (85%) | TSH-receptor stimulating antibodies (TRAb) | Diffuse goiter + exophthalmos + pretibial myxedema |
| Toxic Multinodular Goiter (Plummer disease) | Autonomous nodules overproduce T4 | Multiple palpable nodules; common in iodine-deficient areas |
| Toxic adenoma | Single autonomously functioning nodule | Solitary "hot" nodule on scan |
| Thyroiditis (transient) | Follicle destruction → hormone dump | Painful (de Quervain) or painless (postpartum) |
| TSH-secreting pituitary adenoma | Rare; TSH is HIGH (not suppressed) | Central hyperthyroidism |
| Factitious / Iatrogenic | Exogenous T4 excess | Low RAIU; suppressed TSH |
| System | Features |
|---|---|
| Constitutional | Weight loss despite increased appetite, heat intolerance, sweating, warm moist skin |
| Cardiovascular | Tachycardia, palpitations, atrial fibrillation, wide pulse pressure, systolic hypertension |
| GI | Diarrhea, hypermotility, malabsorption, steatorrhea |
| Neuromuscular | Anxiety, tremor, irritability, proximal muscle weakness (thyroid myopathy ~50%) |
| Ocular | Lid lag, wide staring gaze (due to sympathetic stimulation of superior tarsal muscle) |
| Reproductive | Oligomenorrhea, infertility |
| Skin/Hair | Fine hair, onycholysis (Plummer's nails) |
Step 1: sTSH → if SUPPRESSED (<0.1 mIU/L), proceed
Step 2: Free T4 + Free T3 → elevated confirms thyrotoxicosis
Step 3: Determine etiology:
├── TRAb (TSH-Receptor Antibodies) → Graves disease
├── RAIU (Radioactive Iodine Uptake) scan:
│ Diffuse ↑ uptake → Graves disease
│ Focal ↑ uptake → toxic adenoma
│ ↓ uptake → thyroiditis or exogenous T4
└── Anti-TPO, Anti-Tg antibodies → Hashimoto
| Option | Drug/Method | Key Detail |
|---|---|---|
| Antithyroid drugs | Propylthiouracil (PTU) or Methimazole (MMI) | Block TPO (organification). PTU also blocks peripheral T4→T3 conversion. MMI preferred (longer acting). PTU preferred in 1st trimester pregnancy |
| Beta-blockers | Propranolol | Controls sympathetic symptoms (tachycardia, tremor) - does NOT reduce hormone levels |
| Radioiodine (¹³¹I) ablation | ¹³¹I | Destroys thyroid tissue; most common definitive Rx in US; often causes hypothyroidism |
| Surgery | Subtotal/total thyroidectomy | For large goiters, suspected malignancy, ¹³¹I failure |
| Cause | Notes |
|---|---|
| Hashimoto thyroiditis | #1 cause in iodine-sufficient countries (US, UK, India urban) |
| Iodine deficiency | #1 cause worldwide (~2 billion affected); causes endemic goiter and cretinism |
| Post-radioiodine / post-surgery | Iatrogenic; permanent |
| Drugs | Lithium, amiodarone, iodides, antithyroid drugs |
| Congenital | Thyroid dysgenesis, dyshormonogenesis; detected by neonatal TSH screening |
| Central (secondary) | Pituitary failure (TSH low); hypothalamic failure (TRH low) |
| Postpartum thyroiditis | Transient; ~6 weeks postpartum |

| System | Features |
|---|---|
| Constitutional | Fatigue, weight gain, cold intolerance, low BMR |
| Cardiovascular | Bradycardia, diastolic hypertension, pericardial effusion, hypercholesterolemia |
| GI | Constipation, decreased gut motility |
| Neuromuscular | Lethargy, cognitive slowing ("myxedema madness"), carpal tunnel syndrome, delayed relaxation of deep tendon reflexes |
| Skin/Hair | Dry rough skin, coarse hair, hair loss, brittle nails, myxedema (non-pitting edema due to glycosaminoglycan deposition) |
| Reproductive | Menorrhagia, infertility, hyperprolactinemia (TRH stimulates PRL) |
| Eyes | Periorbital puffiness (morning), loss of outer 1/3 of eyebrows |
| Voice | Hoarseness (myxedematous infiltration of vocal cords) |
Primary hypothyroidism:
TSH ↑↑ + Free T4 ↓ → confirms primary hypothyroidism
+ Anti-TPO antibodies (+) → Hashimoto thyroiditis
Secondary hypothyroidism (rare):
TSH low/normal + Free T4 low → pituitary failure
→ MRI pituitary; evaluate rest of pituitary axis
Subclinical hypothyroidism:
TSH mildly ↑ (4.5-10) + Normal Free T4 → asymptomatic
→ Monitor; treat if TSH >10 or symptomatic
| Type | Cause | Painful? | Course | Antibodies |
|---|---|---|---|---|
| Hashimoto (chronic lymphocytic) | Autoimmune | No | Progressive → hypothyroidism | Anti-TPO +++, Anti-Tg+ |
| de Quervain (subacute granulomatous) | Viral (post-URI) | YES (severe) | Self-limited; hyperthyroid → euthyroid → transient hypothyroid → recovery | ESR ↑↑, mild Anti-TPO |
| Painless/silent (subacute lymphocytic) | Autoimmune | No | Self-limited; postpartum most common | Anti-TPO+ |
| Riedel thyroiditis | Fibrous replacement | No | Rare; hard "iron thyroid"; may be IgG4-related | None specific |
| Acute suppurative | Bacterial | YES | Rare; abscess; treat with antibiotics/drainage | - |
| Tumour | Origin | % | Key Feature | Prognosis |
|---|---|---|---|---|
| Papillary carcinoma | Follicular cells | 80% | "Orphan Annie eye" nuclei (ground-glass), nuclear grooves, pseudoinclusions; spreads via lymphatics; RET/BRAF mutations | Excellent (5yr survival >95%) |
| Follicular carcinoma | Follicular cells | 10% | Distinguished by capsular + vascular invasion (not cytology); PAX8/PPARG fusion; spreads hematogenously (lung, bone) | Good |
| Medullary carcinoma | Parafollicular C cells | 5-8% | Secretes calcitonin (tumour marker); amyloid deposits (calcitonin-derived); RET proto-oncogene mutation; 30% familial (MEN2A, MEN2B) | Intermediate |
| Anaplastic carcinoma | Dedifferentiated follicular/papillary | <1% | Uniformly lethal; TP53 loss; rapid growth, compresses trachea | Very poor (<6 months median survival) |
| Feature | Hyperthyroidism | Hypothyroidism |
|---|---|---|
| Weight | ↓ (despite increased appetite) | ↑ |
| Heart rate | ↑ (tachycardia, AF) | ↓ (bradycardia) |
| Temperature | Heat intolerance, warm skin | Cold intolerance, dry cold skin |
| GI | Diarrhea | Constipation |
| Reflexes | Hyperreflexia | Delayed (slow relaxation) |
| Mood | Anxiety, irritability | Lethargy, depression |
| Menstruation | Oligomenorrhea | Menorrhagia |
| TSH | ↓ (suppressed) | ↑ |
| Free T4 | ↑ | ↓ |
| Cholesterol | ↓ | ↑ |
| TSH | Free T4 | Diagnosis |
|---|---|---|
| ↓↓ (<0.01) | ↑ | Overt hyperthyroidism |
| ↓ (0.1-0.4) | Normal | Subclinical hyperthyroidism |
| Normal | Normal | Euthyroid |
| ↑ (4.5-10) | Normal | Subclinical hypothyroidism |
| ↑↑ (>10) | ↓ | Overt hypothyroidism |
| ↓ or normal | ↓ | Central/secondary hypothyroidism |
| ↑↑ | ↑ | TSH-secreting pituitary adenoma or thyroid hormone resistance |