Hypertension

Reading File
Finding Sources
Searching PubMed

"hypertension" AND "management"

Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Reading File
Finding Sources
Loading Image
Reading File
I now have all the information needed for a comprehensive answer. Let me compile it.

Hypertension

Definition

Hypertension (HTN) is a sustained elevation in arterial blood pressure above normal thresholds, representing one of the most common and consequential chronic conditions in medicine. It affects approximately one third of the adult population worldwide, yet only ~50% of those affected achieve adequate control.
  • Park's Textbook of Preventive and Social Medicine defines it as elevated BP measured in at least two readings on two or more separate occasions, in adults not on antihypertensive drugs and not acutely ill.

Classification

WHO / ESH Classification (used internationally)

CategorySystolic (mmHg)Diastolic (mmHg)
Optimal< 120and < 80
Normal120-129and/or 80-84
High normal130-139and/or 85-89
Grade 1 HTN140-159and/or 90-99
Grade 2 HTN160-179and/or 100-109
Grade 3 HTN≥ 180and/or > 110
Isolated systolic HTN≥ 140and < 90
When systolic and diastolic values fall into different categories, the higher category is used to classify BP. - Park's Textbook of Preventive and Social Medicine

JNC 7 / ACC-AHA Classification (used in the US)

The 2017 ACC/AHA guideline defines five categories: Normal, Elevated, Stage 1 HTN, Stage 2 HTN, and Stage 3 HTN, with thresholds starting at ≥130/80 for Stage 1. These are associated with progressively increasing cardiovascular (CV) risk independent of other risk factors. - Brenner and Rector's The Kidney
Important note: The ACC/AHA 2017 guideline removed the "prehypertension" category; this category is still used in non-US guidelines for SBP 130-139 / DBP 85-89.

Pathophysiology

Blood pressure = Cardiac Output × Total Peripheral Resistance
Three major systems govern long-term BP control:
  1. Sympathetic Nervous System (SNS) - increases heart rate, contractility, and peripheral vasoconstriction via norepinephrine (NE)
  2. Renin-Angiotensin-Aldosterone System (RAAS) - angiotensin II (Ang II) causes vasoconstriction and stimulates aldosterone-driven renal sodium retention; there is also a positive feedback loop between SNS and RAAS
  3. Renal salt and water handling - the kidney's pressure-natriuresis relationship is the dominant long-term regulator
Primary (essential) hypertension - accounts for ~90-95% of cases. Mechanism includes:
  • Impaired renal sodium excretion (pressure-natriuresis curve shifted rightward)
  • Salt-insensitive vs salt-sensitive forms (the latter becomes more common after age 50-60 as nephron mass declines)
  • Genetic contributions (numerous loci identified)
  • Obesity and hyperinsulinemia increasing renal tubular sodium reabsorption
Secondary hypertension - identifiable cause (~5-10%):
  • Renal parenchymal disease (most common secondary cause)
  • Renovascular / renal artery stenosis
  • Primary hyperaldosteronism (found in 17-23% of resistant HTN)
  • Obstructive sleep apnea
  • Pheochromocytoma, Cushing syndrome, thyroid disease
  • Drug-induced (NSAIDs, oral contraceptives, decongestants, stimulants)
Here is a diagram showing the interconnected regulatory systems and where drugs act:
BP regulation and antihypertensive drug targets
Principles of blood pressure regulation and sites of antihypertensive drug action - Goodman & Gilman's Pharmacological Basis of Therapeutics

Complications / Target Organ Damage

Sustained HTN damages multiple organs. The presence of target organ damage increases CV risk at any BP level. Key affected systems:
OrganComplications
HeartLeft ventricular hypertrophy (LVH), heart failure, coronary artery disease, MI
BrainIschemic stroke, hemorrhagic stroke, hypertensive encephalopathy, dementia
KidneysHypertensive nephrosclerosis, chronic kidney disease (CKD), microalbuminuria
EyesHypertensive retinopathy (arteriolar narrowing, AV nicking, flame hemorrhages, papilledema in severe cases)
ArteriesAccelerated atherosclerosis, aortic dissection, PAD
Although BP level and organ damage often correlate, they do not always: markedly high pressures may occur without organ damage, and organ damage may present with only moderate elevation. - Park's Textbook of Preventive and Social Medicine

Blood Pressure Measurement - Key Principles

Accurate measurement under standardized conditions is essential (Box 46.1 from Brenner and Rector's The Kidney):
  • Patient must rest seated for at least 3-5 minutes before measurement
  • Neither patient nor examiner should talk during measurement
  • Legs uncrossed; back and arm supported
  • Korotkoff phase V (disappearance of sound) used for diastolic
  • Correct cuff size: bladder should cover ≥80% of arm circumference
  • Cuff too small → falsely high readings
  • Confirm diagnosis on at least 2 readings on 2 or more occasions
Three types of BP measurement:
  • Office (clinic) BP - standard method; subject to white-coat effect
  • Home BP monitoring (HBPM) - goal < 135/85 mmHg; helps confirm true HTN
  • Ambulatory BP monitoring (ABPM) - 24-hour goal < 130/80 mmHg; most accurate; detects white-coat, masked, and nocturnal HTN

Management

BP Targets

  • General goal: < 140/90 mmHg (most guidelines)
  • High-risk patients (CKD, diabetes, established CVD): < 130/80 mmHg
  • Home BP goal: < 135/85 mmHg
  • 24-hour ambulatory BP goal: < 130/80 mmHg
A 10/5 mmHg reduction in BP produces approximately a 40% reduction in strokes and a 20% reduction in ischemic heart disease events - Textbook of Family Medicine 9e

Step 1 - Lifestyle Modifications

Indicated for all patients; may be sufficient alone for Grade 1 / Stage 1 HTN:
InterventionExpected Benefit
Weight loss (if overweight/obese)~1 mmHg per kg lost
Sodium restrictionReduction especially in salt-sensitive patients
Increased physical activityConsistent benefit
Alcohol restriction (< 20g/day women; < 40g/day men)Lowers BP
DASH diet (rich in fruits, vegetables, low-fat dairy)8-14 mmHg reduction
Smoking cessationReduces overall CV risk
Bariatric surgery in the severely obese can normalize BP and increase life expectancy. - Goodman & Gilman's

Step 2 - Pharmacological Treatment

The treatment algorithm below guides initiation and escalation:
Practical approach for blood pressure control
AHA/ACC/CDC practical approach for BP control - Textbook of Family Medicine 9e
First-line drug classes (preferred by both ACC/AHA and ESC guidelines):
ClassExamplesKey Notes
Thiazide/thiazide-like diureticsChlorthalidone, HCTZ, indapamideChlorthalidone preferred over HCTZ
ACE inhibitors (ACEI)Lisinopril, enalapril, ramiprilAvoid in pregnancy; monitor K+ and creatinine
Angiotensin Receptor Blockers (ARB)Losartan, valsartan, candesartanAlternative to ACEI (fewer side effects)
Calcium Channel Blockers (CCB)Amlodipine, nifedipine (DHP); diltiazem, verapamil (non-DHP)Useful in Black patients; DHP preferred in most
If monotherapy is insufficient, evidence favors ACEI + CCB (amlodipine) as the best two-drug combination, based on the ACCOMPLISH trial. ACEI + thiazide is an acceptable alternative. - Textbook of Family Medicine 9e
Key rules:
  • If BP is >20/10 mmHg above target, start two drugs simultaneously (combination pill preferred)
  • ~75% of patients will require ≥2 medications
  • Avoid ACEI + ARB combination (dual RAAS blockade) - almost always contraindicated
  • β-blockers and α-blockers are not recommended as first-line agents in uncomplicated HTN (atenolol associated with excess stroke risk; doxazosin with excess CHF)
  • β-blockers remain preferred as first-line in post-MI, stable angina, and heart failure with reduced EF

Compelling Indications - Drug Choice by Comorbidity

Comorbid ConditionPreferred Agent(s)
Heart failureACEI/ARB, β-blocker, MRA (spironolactone), diuretic
Post-MI / CAD / AnginaACEI/ARB, β-blocker, CCB
CKD / Proteinuria / DiabetesACEI or ARB (renoprotective)
Previous strokeACEI/ARB, diuretic
LVHACEI/ARB, CCB
PregnancyLabetalol, methyldopa, nifedipine (avoid ACEI/ARB)
Black patientsCCB, thiazide (ACEI/ARB less effective as monotherapy)
Resistant HTNAdd spironolactone 25-50 mg/day (aldosterone blockade)

Hypertensive Emergencies vs. Urgencies

FeatureHypertensive EmergencyHypertensive Urgency
BPMarkedly elevatedVery high (e.g., >200/130)
Target organ damagePresent (encephalopathy, retinal hemorrhage/papilledema, AKI, MI, stroke)Absent
SettingICU admission requiredCan manage outpatient
TreatmentIV antihypertensives - immediate BP lowering to ~140/90Oral agents; reassess within days
IV drugs for hypertensive emergencies (from Textbook of Family Medicine 9e):
DrugDoseOnsetSpecial Notes
Sodium nitroprusside0.25-10 µg/kg/min IVImmediateMost emergencies; caution with high ICP or azotemia
Nicardipine5-15 mg/hr IV5-10 minAvoid in acute heart failure
Labetalol20-80 mg IV bolus q10min5-10 minGood for aortic dissection
Hydralazine10-20 mg IV10-20 minPreferred in eclampsia
Enalaprilat1.25-5 mg q6h IV15-30 minAvoid in acute MI
Nitroglycerin5-100 µg/min IV2-5 minACS with HTN

Resistant Hypertension

Defined as BP remaining above goal despite use of 3 or more antihypertensive drugs at optimal doses (including a diuretic). Affects ~10% of hypertensive patients.
Before labeling resistant HTN, exclude:
  • Non-adherence to medications
  • White-coat effect (check ABPM)
  • Secondary causes (especially primary aldosteronism, OSA, renal artery stenosis)
  • Drug interactions (NSAIDs, decongestants)
Management: Empirical addition of spironolactone 25-50 mg/day has strong evidence. Renal denervation may be effective in well-defined cases.

Special Populations

Preeclampsia: HTN in pregnancy after 20 weeks' gestation (SBP ≥140 or DBP ≥90 on two occasions ≥4 hours apart), plus proteinuria ≥300 mg/24h or other end-organ features. Treat urgently if ≥160/105 mmHg. - Brenner and Rector's The Kidney
Elderly: Isolated systolic HTN is common due to arterial stiffening. Treat to < 150/90 (some guidelines) or < 140/90; avoid orthostatic hypotension. Start with low-dose thiazide or CCB.
CKD patients: All with BP > 130/80 mmHg require lifestyle intervention AND at least one antihypertensive (ACEI/ARB preferred for proteinuria reduction). - Brenner and Rector's The Kidney

Key Takeaways

  • HTN is the leading modifiable risk factor for stroke, MI, heart failure, and CKD globally
  • Diagnosis requires confirmed elevated readings on at least two separate occasions
  • ~90-95% is primary (essential); secondary causes must be excluded in resistant or atypical cases
  • Achieving goal BP is more important than which drug class is chosen (for uncomplicated HTN)
  • Most patients (~75%) need ≥2 drugs; combination ACEI + CCB is the most evidence-backed two-drug regimen
  • Hypertensive emergency = target organ damage → requires IV treatment in ICU
  • Lifestyle modifications are always part of treatment and can suffice in mild cases
Sources: Textbook of Family Medicine 9e | Brenner and Rector's The Kidney | Goodman & Gilman's Pharmacological Basis of Therapeutics | Guyton and Hall Textbook of Medical Physiology | Park's Textbook of Preventive and Social Medicine

Give me in pdf

Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace

Running Command

mkdir -p /home/daytona/workspace/hypertension && python3 -c "from reportlab.lib …

Writing File

~/hypertension/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, PageBreak
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import KeepTogether

OUTPUT = "/home/daytona/workspace/hypertension/Hypertension.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2.5*cm, bottomMargin=2.5*cm,
    title="Hypertension - Clinical Overview",
    author="Orris Medical Library"
)

W = A4[0] - 4*cm  # usable width

# ── Colour palette ──────────────────────────────────────────────────────────
NAVY   = colors.HexColor("#1a3a5c")
TEAL   = colors.HexColor("#1a7a7a")
LTBLUE = colors.HexColor("#e8f4f8")
LTGRAY = colors.HexColor("#f5f5f5")
MIDGRAY= colors.HexColor("#cccccc")
RED    = colors.HexColor("#c0392b")
WHITE  = colors.white

# ── Styles ───────────────────────────────────────────────────────────────────
base = getSampleStyleSheet()

title_style = ParagraphStyle("DocTitle",
    fontSize=26, leading=32, textColor=WHITE,
    fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=4)

subtitle_style = ParagraphStyle("DocSubtitle",
    fontSize=11, leading=14, textColor=colors.HexColor("#d0e8f0"),
    fontName="Helvetica", alignment=TA_CENTER)

h1 = ParagraphStyle("H1",
    fontSize=13, leading=16, textColor=WHITE,
    fontName="Helvetica-Bold", spaceBefore=14, spaceAfter=4,
    leftIndent=6, rightIndent=6)

h2 = ParagraphStyle("H2",
    fontSize=11, leading=14, textColor=NAVY,
    fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=3,
    borderPad=2)

body = ParagraphStyle("Body",
    fontSize=9.5, leading=14, textColor=colors.HexColor("#222222"),
    fontName="Helvetica", alignment=TA_JUSTIFY, spaceAfter=5)

bullet = ParagraphStyle("Bullet",
    fontSize=9.5, leading=13, textColor=colors.HexColor("#222222"),
    fontName="Helvetica", leftIndent=14, bulletIndent=4,
    spaceAfter=2)

note = ParagraphStyle("Note",
    fontSize=8.5, leading=12, textColor=colors.HexColor("#555555"),
    fontName="Helvetica-Oblique", leftIndent=10, spaceAfter=4)

source_style = ParagraphStyle("Source",
    fontSize=8, leading=11, textColor=colors.HexColor("#888888"),
    fontName="Helvetica-Oblique", alignment=TA_CENTER, spaceBefore=8)


def section_header(text, color=NAVY):
    """Returns a coloured section header bar."""
    data = [[Paragraph(text, h1)]]
    t = Table(data, colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("ROWBACKGROUNDS", (0,0), (-1,-1), [color]),
        ("TOPPADDING", (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING", (0,0), (-1,-1), 8),
        ("RIGHTPADDING", (0,0), (-1,-1), 8),
        ("ROUNDEDCORNERS", [4, 4, 4, 4]),
    ]))
    return t


def info_box(text, bg=LTBLUE, border=TEAL):
    data = [[Paragraph(text, body)]]
    t = Table(data, colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX", (0,0), (-1,-1), 1, border),
        ("TOPPADDING", (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("LEFTPADDING", (0,0), (-1,-1), 10),
        ("RIGHTPADDING", (0,0), (-1,-1), 10),
    ]))
    return t


def make_table(headers, rows, col_widths=None, header_bg=NAVY):
    if col_widths is None:
        col_widths = [W / len(headers)] * len(headers)
    data = [[Paragraph(f"<b>{h}</b>", ParagraphStyle("TH",
               fontSize=9, fontName="Helvetica-Bold",
               textColor=WHITE, alignment=TA_CENTER)
             ) for h in headers]]
    for i, row in enumerate(rows):
        data.append([
            Paragraph(str(cell), ParagraphStyle("TD",
                fontSize=9, fontName="Helvetica",
                textColor=colors.HexColor("#222222"),
                leading=12)
            ) for cell in row
        ])
    t = Table(data, colWidths=col_widths, repeatRows=1)
    row_colors = []
    for i in range(1, len(rows)+1):
        bg = LTBLUE if i % 2 == 0 else WHITE
        row_colors.append(("ROWBACKGROUNDS", (0,i), (-1,i), [bg]))
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,0), header_bg),
        ("GRID", (0,0), (-1,-1), 0.5, MIDGRAY),
        ("TOPPADDING", (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING", (0,0), (-1,-1), 6),
        ("RIGHTPADDING", (0,0), (-1,-1), 6),
        ("VALIGN", (0,0), (-1,-1), "TOP"),
        *row_colors,
    ]))
    return t


# ─────────────────────────────────────────────────────────────────────────────
# Build story
# ─────────────────────────────────────────────────────────────────────────────
story = []

# ── Cover banner ─────────────────────────────────────────────────────────────
cover_data = [
    [Paragraph("HYPERTENSION", title_style)],
    [Paragraph("A Comprehensive Clinical Overview", subtitle_style)],
    [Paragraph("Based on Harrison's, Brenner & Rector's, Goodman & Gilman's, Guyton & Hall, Park's", subtitle_style)],
]
cover_table = Table(cover_data, colWidths=[W])
cover_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), NAVY),
    ("TOPPADDING", (0,0), (-1,-1), 16),
    ("BOTTOMPADDING", (0,0), (-1,-1), 16),
    ("LEFTPADDING", (0,0), (-1,-1), 14),
    ("RIGHTPADDING", (0,0), (-1,-1), 14),
]))
story.append(cover_table)
story.append(Spacer(1, 0.5*cm))

# ── 1. Definition ─────────────────────────────────────────────────────────────
story.append(section_header("1. DEFINITION"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Hypertension (HTN) is a sustained elevation in arterial blood pressure above normal thresholds. "
    "It affects approximately <b>one third of the adult population</b> worldwide, yet only ~50% of those "
    "affected achieve adequate control. It is the leading modifiable risk factor for stroke, myocardial "
    "infarction, heart failure, and chronic kidney disease.",
    body))
story.append(Paragraph(
    "Diagnosis requires confirmed elevated readings on <b>at least two separate occasions</b>, "
    "in adults not on antihypertensive drugs and not acutely ill.",
    body))
story.append(Spacer(1, 0.3*cm))

# ── 2. Classification ────────────────────────────────────────────────────────
story.append(section_header("2. CLASSIFICATION"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("<b>WHO / ESH Classification (International)</b>", h2))

cls_headers = ["Category", "Systolic (mmHg)", "Diastolic (mmHg)"]
cls_rows = [
    ["Optimal",                  "< 120",    "and < 80"],
    ["Normal",                   "120–129",  "and/or 80–84"],
    ["High Normal",              "130–139",  "and/or 85–89"],
    ["Grade 1 Hypertension",     "140–159",  "and/or 90–99"],
    ["Grade 2 Hypertension",     "160–179",  "and/or 100–109"],
    ["Grade 3 Hypertension",     "≥ 180",    "and/or > 110"],
    ["Isolated Systolic HTN",    "≥ 140",    "and < 90"],
]
story.append(make_table(cls_headers, cls_rows,
    col_widths=[W*0.45, W*0.27, W*0.28]))
story.append(Paragraph(
    "When systolic and diastolic values fall into different categories, the higher category is used. "
    "— Park's Textbook of Preventive and Social Medicine",
    note))
story.append(Spacer(1, 0.25*cm))
story.append(Paragraph("<b>ACC/AHA 2017 Classification (USA)</b>", h2))
story.append(Paragraph(
    "The 2017 ACC/AHA guideline defines five categories: Normal (<120/<80), Elevated (120–129/<80), "
    "Stage 1 HTN (130–139 or 80–89), Stage 2 HTN (≥140 or ≥90), each with progressively increasing "
    "cardiovascular risk independent of other risk factors. The 'prehypertension' category was removed. "
    "In CKD patients, all with BP >130/80 mmHg require lifestyle intervention AND pharmacotherapy. "
    "— Brenner and Rector's The Kidney",
    body))
story.append(Spacer(1, 0.3*cm))

# ── 3. Pathophysiology ───────────────────────────────────────────────────────
story.append(section_header("3. PATHOPHYSIOLOGY"))
story.append(Spacer(1, 0.2*cm))
story.append(info_box(
    "<b>Blood Pressure = Cardiac Output × Total Peripheral Resistance</b><br/>"
    "Three major systems govern long-term BP control: (1) Sympathetic Nervous System (SNS), "
    "(2) Renin-Angiotensin-Aldosterone System (RAAS), (3) Renal salt and water handling."))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("<b>Primary (Essential) Hypertension (~90–95% of cases)</b>", h2))
for pt in [
    "Impaired renal sodium excretion — pressure-natriuresis curve shifted rightward",
    "Salt-sensitive vs salt-insensitive forms; salt sensitivity increases after age 50–60 as nephron mass declines",
    "Genetic contributions (numerous loci identified)",
    "Obesity and hyperinsulinemia increasing renal tubular sodium reabsorption",
    "Positive feedback loop between SNS and RAAS (β-stimulated renin release; Ang II-stimulated NE release)",
]:
    story.append(Paragraph(f"• {pt}", bullet))

story.append(Paragraph("<b>Secondary Hypertension (~5–10% of cases)</b>", h2))
sec_headers = ["Cause", "Notes"]
sec_rows = [
    ["Renal parenchymal disease", "Most common secondary cause; CKD, glomerulonephritis"],
    ["Renovascular / Renal artery stenosis", "Atherosclerotic (elderly) or fibromuscular dysplasia (young women)"],
    ["Primary hyperaldosteronism", "Found in 17–23% of resistant HTN; screen with aldosterone:renin ratio"],
    ["Obstructive sleep apnea (OSA)", "Prevalence 34% in newly diagnosed HTN referred to tertiary centres"],
    ["Pheochromocytoma", "Episodic HTN, headache, palpitations, sweating; urinary catecholamines"],
    ["Cushing syndrome", "Glucocorticoid excess; truncal obesity, striae, moon face"],
    ["Drug-induced", "NSAIDs, oral contraceptives, decongestants, stimulants, calcineurin inhibitors"],
]
story.append(make_table(sec_headers, sec_rows, col_widths=[W*0.38, W*0.62]))
story.append(Spacer(1, 0.3*cm))

# ── 4. Target Organ Damage ───────────────────────────────────────────────────
story.append(section_header("4. TARGET ORGAN DAMAGE & COMPLICATIONS"))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "Although BP level and organ damage often correlate, markedly high pressures may occur without "
    "organ damage and vice versa. The presence of target organ damage confers increased CV risk at "
    "any BP level. — Park's Textbook of Preventive and Social Medicine",
    body))
tod_headers = ["Organ", "Complications"]
tod_rows = [
    ["Heart",   "LVH, heart failure, coronary artery disease, MI, arrhythmias"],
    ["Brain",   "Ischaemic stroke, haemorrhagic stroke, hypertensive encephalopathy, vascular dementia"],
    ["Kidneys", "Hypertensive nephrosclerosis, CKD progression, microalbuminuria, proteinuria"],
    ["Eyes",    "Hypertensive retinopathy — arteriolar narrowing, AV nicking, flame haemorrhages, papilloedema (severe)"],
    ["Arteries","Accelerated atherosclerosis, aortic dissection, peripheral arterial disease (PAD)"],
]
story.append(make_table(tod_headers, tod_rows, col_widths=[W*0.18, W*0.82]))
story.append(Spacer(1, 0.3*cm))

# ── 5. BP Measurement ────────────────────────────────────────────────────────
story.append(section_header("5. BLOOD PRESSURE MEASUREMENT"))
story.append(Spacer(1, 0.2*cm))
for pt in [
    "Patient rests <b>seated for ≥3–5 minutes</b> before measurement; legs uncrossed, back and arm supported",
    "Neither patient nor examiner should talk during measurement",
    "<b>Correct cuff size</b>: bladder should cover ≥80% of arm circumference; too-small cuff gives falsely high readings",
    "Korotkoff <b>phase V</b> (disappearance of sound) used for diastolic reading",
    "Confirm diagnosis on ≥2 readings on ≥2 separate occasions",
]:
    story.append(Paragraph(f"• {pt}", bullet))

story.append(Spacer(1, 0.15*cm))
meas_headers = ["Method", "Threshold for HTN", "Key Advantage"]
meas_rows = [
    ["Office / Clinic BP",       "≥140/90 mmHg",  "Standard; but subject to white-coat effect"],
    ["Home BP Monitoring (HBPM)","≥135/85 mmHg",  "Detects white-coat HTN; improves adherence"],
    ["24-h Ambulatory (ABPM)",   "≥130/80 mmHg",  "Most accurate; detects masked & nocturnal HTN"],
]
story.append(make_table(meas_headers, meas_rows,
    col_widths=[W*0.33, W*0.27, W*0.40]))
story.append(Spacer(1, 0.3*cm))

# ── 6. Management ────────────────────────────────────────────────────────────
story.append(section_header("6. MANAGEMENT"))
story.append(Spacer(1, 0.2*cm))

# BP targets
story.append(Paragraph("<b>Blood Pressure Targets</b>", h2))
tgt_headers = ["Population", "BP Goal"]
tgt_rows = [
    ["General (most patients)",          "< 140/90 mmHg"],
    ["High-risk (CKD, diabetes, CVD)",   "< 130/80 mmHg"],
    ["Home BP monitoring",               "< 135/85 mmHg"],
    ["24-hour ambulatory BP",            "< 130/80 mmHg"],
    ["Elderly ≥60 years (some guidelines)","< 150/90 mmHg (avoid orthostatic hypotension)"],
]
story.append(make_table(tgt_headers, tgt_rows, col_widths=[W*0.55, W*0.45]))
story.append(info_box(
    "A 10/5 mmHg reduction in BP produces approximately a <b>40% reduction in strokes</b> and a "
    "<b>20% reduction in ischaemic heart disease events</b>. Risk reduction is predominantly driven "
    "by the magnitude of BP reduction, not the specific drug class. — Textbook of Family Medicine 9e"))
story.append(Spacer(1, 0.2*cm))

# Lifestyle
story.append(Paragraph("<b>Step 1 — Lifestyle Modifications</b>", h2))
story.append(Paragraph(
    "Indicated for ALL patients. May be sufficient as sole treatment for Grade 1 / Stage 1 HTN.", body))
life_headers = ["Intervention", "Recommendation / Expected Benefit"]
life_rows = [
    ["Weight loss",         "~1 mmHg per kg lost; especially if BMI >25"],
    ["Sodium restriction",  "Target <2.3 g/day; most beneficial in salt-sensitive individuals"],
    ["Increased physical activity", "≥150 min/week moderate aerobic exercise"],
    ["Alcohol restriction", "<20 g/day in women; <40 g/day in men"],
    ["DASH diet",           "Rich in fruits, vegetables, low-fat dairy; ~8–14 mmHg reduction"],
    ["Smoking cessation",   "Reduces overall CV risk substantially"],
    ["Bariatric surgery",   "In grossly obese — can normalise BP and increase life expectancy"],
]
story.append(make_table(life_headers, life_rows, col_widths=[W*0.30, W*0.70]))
story.append(Spacer(1, 0.2*cm))

# Drug therapy
story.append(Paragraph("<b>Step 2 — Pharmacological Treatment</b>", h2))
story.append(Paragraph("<b>First-Line Drug Classes</b>", ParagraphStyle("SH", fontSize=10,
    fontName="Helvetica-Bold", textColor=TEAL, spaceAfter=4, spaceBefore=4)))

drug_headers = ["Drug Class", "Examples", "Key Notes / Indications"]
drug_rows = [
    ["Thiazide / thiazide-like diuretics",
     "Chlorthalidone, HCTZ, Indapamide",
     "Chlorthalidone preferred over HCTZ; effective in Black patients & elderly"],
    ["ACE Inhibitors (ACEI)",
     "Lisinopril, Enalapril, Ramipril",
     "Preferred in CKD + proteinuria, diabetes, heart failure, post-MI; avoid in pregnancy; monitor K⁺ & creatinine; may cause dry cough"],
    ["Angiotensin Receptor Blockers (ARB)",
     "Losartan, Valsartan, Candesartan",
     "Use when ACEI not tolerated (no cough); same renal/cardiac indications"],
    ["Calcium Channel Blockers (CCB — DHP)",
     "Amlodipine, Nifedipine",
     "Effective in Black patients; useful in angina; preferred in elderly with ISH"],
    ["CCB (Non-DHP)",
     "Diltiazem, Verapamil",
     "Rate-slowing; useful in AF; avoid with heart failure or AV block"],
    ["β-Blockers",
     "Metoprolol, Bisoprolol, Atenolol",
     "NOT first-line in uncomplicated HTN; preferred post-MI, heart failure, angina; atenolol associated with excess stroke risk"],
    ["Mineralocorticoid Receptor Antagonists (MRA)",
     "Spironolactone, Eplerenone",
     "Add-on for resistant HTN; preferred in primary aldosteronism; monitor K⁺"],
]
story.append(make_table(drug_headers, drug_rows,
    col_widths=[W*0.23, W*0.24, W*0.53]))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("<b>Combination Therapy Rules</b>", h2))
for pt in [
    "If BP is >20/10 mmHg above target, <b>start two drugs simultaneously</b> (combination pill preferred)",
    "~75% of patients ultimately require ≥2 medications",
    "Best two-drug combination: <b>ACEI + CCB (amlodipine)</b> — ACCOMPLISH trial; ACEI + thiazide is an acceptable alternative",
    "<b>AVOID:</b> ACEI + ARB dual RAAS blockade — almost always contraindicated",
    "Monotherapy with β-blocker (especially atenolol) or α-blocker as first-line is discouraged in uncomplicated HTN",
]:
    story.append(Paragraph(f"• {pt}", bullet))
story.append(Spacer(1, 0.2*cm))

# Compelling indications
story.append(Paragraph("<b>Compelling Indications — Drug Choice by Comorbidity</b>", h2))
ci_headers = ["Comorbid Condition", "Preferred Agent(s)"]
ci_rows = [
    ["Heart failure (reduced EF)",          "ACEI/ARB + β-blocker + MRA + diuretic"],
    ["Post-MI / Coronary artery disease",   "ACEI/ARB + β-blocker"],
    ["Stable angina",                       "β-blocker, CCB"],
    ["CKD / Proteinuria / Diabetes",        "ACEI or ARB (renoprotective)"],
    ["Previous stroke",                     "ACEI/ARB + diuretic"],
    ["LVH",                                 "ACEI/ARB, CCB"],
    ["Pregnancy",                           "Labetalol, Methyldopa, Nifedipine (AVOID ACEI/ARB)"],
    ["Black patients",                      "CCB or thiazide (ACEI/ARB less effective as monotherapy)"],
    ["Primary aldosteronism",               "Spironolactone / Eplerenone"],
    ["Resistant HTN",                       "Add Spironolactone 25–50 mg/day"],
    ["Asymptomatic atherosclerosis",        "CCB"],
    ["Microalbuminuria / Renal dysfunction","ACEI or ARB"],
]
story.append(make_table(ci_headers, ci_rows, col_widths=[W*0.45, W*0.55]))
story.append(Spacer(1, 0.3*cm))

# ── 7. HTN Emergency vs Urgency ──────────────────────────────────────────────
story.append(section_header("7. HYPERTENSIVE EMERGENCY vs. URGENCY", color=RED))
story.append(Spacer(1, 0.2*cm))
eu_headers = ["Feature", "Hypertensive Emergency", "Hypertensive Urgency"]
eu_rows = [
    ["BP level",        "Markedly elevated",                   "Very high (e.g., >200/130 mmHg)"],
    ["Target organ damage", "<b>PRESENT</b>",                 "<b>ABSENT</b>"],
    ["Manifestations",  "Encephalopathy, retinal haemorrhage, papilloedema, AKI, acute MI, stroke", "None"],
    ["Setting",         "ICU admission required",              "Outpatient management"],
    ["Treatment",       "IV antihypertensives; lower SBP to ~140/90 mmHg gradually", "Oral agents; reassess within days"],
]
story.append(make_table(eu_headers, eu_rows,
    col_widths=[W*0.22, W*0.40, W*0.38],
    header_bg=RED))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("<b>IV Drugs for Hypertensive Emergencies</b>", h2))
iv_headers = ["Drug", "Dose", "Onset", "Special Notes"]
iv_rows = [
    ["Sodium nitroprusside",    "0.25–10 µg/kg/min IV",         "Immediate",  "Most emergencies; caution with high ICP or azotaemia; risk of cyanide toxicity"],
    ["Nicardipine",             "5–15 mg/hr IV",                "5–10 min",   "Most emergencies except acute heart failure; caution with coronary ischaemia"],
    ["Labetalol",               "20–80 mg IV bolus q10 min",    "5–10 min",   "Aortic dissection; hypertensive encephalopathy; avoid in asthma"],
    ["Hydralazine",             "10–20 mg IV / 10–50 mg IM",    "10–20 min",  "Eclampsia; caution with coronary ischaemia"],
    ["Enalaprilat",             "1.25–5 mg q6h IV",             "15–30 min",  "Acute LV failure; avoid in acute MI"],
    ["Nitroglycerin",           "5–100 µg/min IV",              "2–5 min",    "Acute coronary syndrome with HTN; pulmonary oedema"],
    ["Fenoldopam",              "0.1–0.3 µg/kg/min IV",         "< 5 min",    "Renal protective; caution in glaucoma"],
]
story.append(make_table(iv_headers, iv_rows,
    col_widths=[W*0.20, W*0.22, W*0.13, W*0.45]))
story.append(Spacer(1, 0.3*cm))

# ── 8. Resistant HTN ─────────────────────────────────────────────────────────
story.append(section_header("8. RESISTANT HYPERTENSION"))
story.append(Spacer(1, 0.2*cm))
story.append(info_box(
    "Defined as BP above goal despite use of <b>3 or more antihypertensive drugs at optimal doses</b>, "
    "including a diuretic. Affects ~10% of the hypertensive population."))
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph("<b>Before labelling resistant HTN, exclude:</b>", h2))
for pt in [
    "Non-adherence to medications (most common cause of apparent resistance)",
    "White-coat effect — confirm with ABPM",
    "Secondary causes: primary aldosteronism (17–23%), OSA, renal artery stenosis, pheochromocytoma",
    "Drug interactions: NSAIDs, decongestants, oral contraceptives, calcineurin inhibitors",
    "Inadequate diuretic therapy or wrong diuretic choice",
]:
    story.append(Paragraph(f"• {pt}", bullet))
story.append(Paragraph(
    "Management: Add <b>spironolactone 25–50 mg/day</b> (aldosterone blockade) — strong evidence. "
    "Renal denervation may be effective in well-defined cases (Sardar et al., 2019). "
    "— Goodman & Gilman's / Textbook of Family Medicine 9e",
    note))
story.append(Spacer(1, 0.3*cm))

# ── 9. Special Populations ───────────────────────────────────────────────────
story.append(section_header("9. SPECIAL POPULATIONS"))
story.append(Spacer(1, 0.2*cm))

sp_headers = ["Population", "Key Considerations"]
sp_rows = [
    ["Elderly",
     "Isolated systolic HTN common (arterial stiffening). Target <150/90 (or <140/90). "
     "Start low doses. Avoid orthostatic hypotension. Prefer thiazide or CCB."],
    ["Pregnancy",
     "Preeclampsia: SBP ≥140 or DBP ≥90 after 20 weeks + proteinuria ≥300 mg/24h "
     "(or end-organ features). Safe drugs: Labetalol, Methyldopa, Nifedipine. "
     "ACEI and ARB are CONTRAINDICATED (teratogenic). Treat urgently if BP ≥160/105."],
    ["CKD",
     "All with BP >130/80 require lifestyle + pharmacotherapy. ACEI/ARB preferred "
     "(reduce proteinuria and slow progression). Monitor K⁺ and creatinine. "
     "— Brenner and Rector's The Kidney"],
    ["Diabetes",
     "Target <130/80 mmHg. ACEI/ARB first-line (nephroprotection). "
     "Thiazides and β-blockers may worsen glycaemic control (use with caution)."],
    ["Black patients",
     "Tend to have low-renin, salt-sensitive HTN. CCB and thiazide diuretics more "
     "effective as monotherapy. ACEI/ARB less effective alone but can be combined."],
    ["Heart failure",
     "Avoid CCB (non-DHP) and α-blockers. Use ACEI/ARB + β-blocker + MRA + diuretic. "
     "Target BP <130/80 mmHg."],
]
story.append(make_table(sp_headers, sp_rows, col_widths=[W*0.20, W*0.80]))
story.append(Spacer(1, 0.3*cm))

# ── 10. Key Takeaways ────────────────────────────────────────────────────────
story.append(section_header("10. KEY TAKEAWAYS"))
story.append(Spacer(1, 0.2*cm))
for pt in [
    "Hypertension affects ~1/3 of adults and is the leading modifiable risk factor for stroke, MI, heart failure, and CKD",
    "Diagnosis requires confirmed elevated readings on ≥2 separate occasions",
    "~90–95% is primary (essential); always exclude secondary causes in resistant or atypical presentations",
    "Achieving goal BP is more important than which drug class is chosen in uncomplicated HTN",
    "Most patients (~75%) need ≥2 drugs; ACEI + CCB (amlodipine) is the most evidence-backed two-drug combination (ACCOMPLISH trial)",
    "NEVER combine ACEI + ARB (dual RAAS blockade) — contraindicated",
    "β-blockers and α-blockers are NOT first-line in uncomplicated HTN",
    "Hypertensive emergency = target organ damage → requires IV treatment in ICU",
    "Lifestyle modifications are always part of treatment and can suffice in mild cases",
    "Resistant HTN: consider primary aldosteronism, OSA, non-adherence; add spironolactone empirically",
]:
    story.append(Paragraph(f"• {pt}", bullet))

story.append(Spacer(1, 0.3*cm))
story.append(HRFlowable(width=W, thickness=0.5, color=MIDGRAY))
story.append(Paragraph(
    "Sources: Textbook of Family Medicine 9e • Brenner and Rector's The Kidney • "
    "Goodman & Gilman's Pharmacological Basis of Therapeutics • "
    "Guyton and Hall Textbook of Medical Physiology • "
    "Park's Textbook of Preventive and Social Medicine • "
    "Comprehensive Clinical Nephrology 7e",
    source_style))

# ── Build ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
Running Command

cd /home/daytona/workspace/hypertension && python3 generate_pdf.py

Running Command

ls -lh /home/daytona/workspace/hypertension/Hypertension.pdf

Your PDF is ready. Here's the download link:

Hypertension

PDF Document · PDF

The PDF includes all 10 sections from the previous response, formatted with:
  • Colour-coded section headers (navy blue, with the emergency section in red)
  • Structured tables for classification, drug choices, compelling indications, IV emergency drugs, target organ damage, and special populations
  • Highlighted info boxes for key clinical rules (BP formula, ACCOMPLISH trial evidence, resistant HTN definition)
  • Source citations at the bottom referencing all textbooks used
This is a shared conversation. Sign in to Orris to start your own chat.