anatomy , histology & physiology of adrenal gland with applied anatomy & physiology
adrenal gland anatomy histology cortex medulla zones

An educational infographic and diagnostic image composite illustrating the anatomy and functional histology of the adrenal gland. On the left, a schematic diagram depicts the adrenal gland situated on the superior pole of the kidney. A high-magnification histological section (Hematoxylin and Eosin stain) of a macaque adrenal gland is featured in the center, showing the distinct layered architecture. The image labels the adrenal cortex and its three functional zones from superficial to deep: the zona glomerulosa (mineralocorticoids/aldosterone), the thickest layer, zona fasciculata (glucocorticoids/cortisol and corticosterone), and the zona reticularis (androgens/dehydroepiandrosterone). The innermost region is identified as the adrenal medulla, responsible for secreting catecholamines (epinephrine and norepinephrine). The histological section displays characteristic cellular morphology, including the rounded clusters of the glomerulosa, the linear cords of the fasciculata, and the branching network of the reticularis. This graphic is designed for medical education to correlate anatomical structure with endocrine function.

This histology image depicts a low-power hematoxylin-eosin stained cross-section of the mammalian adrenal gland, showing the capsule and the steroidogenic cortex with its three distinct zonal architectures. The adrenal cortex comprises approximately 90% of the gland and is organized into zona glomerulosa (outermost), zona fasciculata (widest middle layer), and zona reticularis (inner zone) adjacent to the medulla. The cortex appears pale and vesiculated due to lipid-rich, foamy cytoplasm within steroid-producing cells, arranged in cords and fascicles separated by sinusoids. At this low magnification, the boundary between capsule and cortex is evident, although a detailed medullary region is not fully resolved. The image demonstrates normal cortical histology without overt neoplasia, hemorrhage, or fibrosis. The adrenal cortex synthesizes glucocorticoids, mineralocorticoids, and androgens under ACTH regulation, with zonation reflecting functional segregation: zona glomerulosa producing aldosterone, zona fasciculata secreting cortisol, and zona reticularis generating dehydroepiandrosterone. Clinically, this pattern is essential for understanding endocrine physiology and adrenal disorders. This composite image serves educational reference for histology, pathology, and medical education, enabling comparison to hyperplasia, adenomas, or pheochromocytoma in other sections. The slide illustrates capsule integrity, distinct cortical zones, and ordinary vascular architecture relevant to teaching. Useful for exams, case discussions, and comparative pathology analyses exercises.

Imaging modality: Light microscopy of adrenal gland tissue, Hematoxylin and Eosin (H&E) stained section, viewed under brightfield illumination at high magnification (approximately 400x). Anatomical location: adrenal cortex with zona reticularis occupying the deepest corticoid layer, immediately superficial to the adrenal medulla, behind zona fasciculata. Visual features: cells arranged in anastomosing cords and small nests; cytoplasm is acidophilic and granular; nuclei are round to vesicular with prominent punctate nucleoli; capillary sinusoids are intermixed, producing a lobular vascular network. The zona reticularis lies between the zona fasciculata and the medulla, forming a reticular, fine meshwork. The cellular morphology indicates steroidogenic chromaffin-adjacent cells with robust endoplasmic reticulum and lipid-poor cytoplasm relative to fasciculata. Notable features include tight cell-to-cell contacts, vascularized stroma, and delineation from the surrounding zones. Pathophysiology/diagnostic significance: Normal zonation of the adrenal cortex is demonstrated; zona reticularis is responsible for glucocorticoid and sex hormone synthesis (androgen precursors), contributing to the endocrine milieu. Clinical relevance: understanding this histology supports differential diagnosis of adrenal cortical neoplasms and endocrine disorders; potential use in educational contexts, research on steroidogenesis, and histopathology training. This image serves as a reference for adrenal cortical anatomy, steroidogenic cell morphology, and the interface with the medulla.

High-magnification light microscopy of an adrenal gland biopsy illustrating mixed cortical and medullary anatomy with a pheochromocytoma component. The left one-third of the image contains medullary tumor cells arranged in clusters and nests (zellballen) within a rich vascular stroma, characteristic of pheochromocytoma. These chromaffin cells exhibit polygonal to rounded outlines with granular, eosinophilic cytoplasm and round to oval nuclei. The central zone demonstrates cortical architecture: the middle band corresponds to zona reticularis, composed of cells with deeply eosinophilic cytoplasm arranged in an irregular network. The right one-third shows zona fasciculata, typified by large cords of cells with pale, vacuolated (lipid-rich) cytoplasm giving foamy appearance. This juxtaposition highlights the three adrenal compartments: medulla (pheochromocytoma) and two cortical zones (fasciculata and reticularis). Zona fasciculata and zona reticularis synthesize glucocorticoids (cortisol) and androgens/estrogens; their cytologic features reflect lipid content and steroidogenic activity. Clinically relevant: pheochromocytoma may secrete catecholamines; cortical zones participate in steroidogenesis. The image aids differential diagnosis among adrenal medullary tumors and cortical lesions, with potential correlations to hypertension, catecholamine excess, or hormonal syndromes. In educational settings, this slide exemplifies gross-to-histology correlations, cell morphology, pattern recognition (zellballen), and zonal adrenocortical histology, reinforcing terminology for endocrinology, pathology, and medical education.

This histologic image depicts an adult human adrenal gland with cortical zona reticularis at the outer portion and medulla occupying the lower two-thirds of the gland. The medullary parenchyma is composed of chromaffin cells arranged in interconnected cords and nests, separated by a prominent fenestrated capillary network. Chromaffin cells display polygonal to round morphology with abundant eosinophilic cytoplasm and basophilic nuclei. Electron-dense, membrane-bound secretory vesicles containing catecholamines predominate within the cytoplasm, consistent with stored epinephrine as the major secretory product, with smaller stores of norepinephrine. The cortex shows layers surrounding the medulla, including the zona reticularis at the periphery, which has compact, darker-staining cords. The microvasculature supports rapid catecholamine release into the systemic circulation. Staining is consistent with routine light microscopy (H&E) typical for normal adrenal histology. Clinically, these features reflect the physiological role of the adrenal medulla in the sympathetic-adrenal axis, mediating the fight-or-flight response via epinephrine predominance. Diagnostic significance lies in recognizing normal medullary architecture and distinguishing it from neoplastic processes such as pheochromocytoma, which would alter cellular arrangement, cytology, and vascular patterns. This knowledge supports educational queries in histology, anatomy, and endocrine physiology, and aids radiology correlations when linking structural medullary features with hormonal secretory function and systemic adrenergic responses.

Imaging modality: Light microscopy of hematoxylin and eosin stained adrenal gland cortex section, intermediate magnification. The specimen reveals the three concentric zones of the adrenal cortex arranged from capsule to medulla: the zona glomerulosa immediately beneath the capsule forms small, compact clusters of darker-staining parenchymal cells; the zona fasciculata comprises the majority of cortex with radially oriented cords of pale, lipid-rich cells exhibiting a spongy cytoplasm; the zona reticularis lies nearest the medulla, composed of anastomosing cords of polygonal cells with acidophilic cytoplasm. The cortex shows preserved architecture with slender septa and numerous sinusoidal capillaries evident between cords. The cells demonstrate typical endocrine morphology: small dense nuclei, minimal cytoplasmic granularity in glomerulosa; prominent lipid droplets in fasciculata; reticularis cells with irregular outlines. No overt inflammatory infiltrate, neoplastic glands, or disrupted zonation are observed in this field, consistent with normal histology. Clinically, this zonation underpins steroidogenesis: mineralocorticoids from glomerulosa regulated by angiotensin II and potassium; glucocorticoids from fasciculata, including cortisol; androgen precursors from reticularis. Diagnostic significance lies in confirming trilaminar architecture and zonal differentiation essential for endocrinology education and pathologic assessment of adrenal disorders such as hyperplasia, adenomas, or cortisol-producing tumors. This slide is valuable for education, histology atlases, and research references.
adrenal gland blood supply relations anatomy retroperitoneal

This composite figure illustrates the vascular anatomy of the right adrenal gland in a mouse model, utilizing vascular corrosion casting and schematic diagrams. Panels A and B present close-up views of a vascular corrosion cast (plastination), demonstrating the 3D arterial architecture. The right adrenal gland receives its blood supply from the right inferior phrenic artery (r-IPA), which branches into three distinct vessels: the superior (SAA), middle (MAA), and inferior (IAA) adrenal arteries. The relationship between the aorta (AO), renal artery (r-RA), and the kidney is visible. Panel C provides a labeled anatomical diagram of the retroperitoneal vasculature, including the inferior vena cava (IVC), renal veins (r-RV, l-RV), celiac trunk (CT), and superior mesenteric artery (SMA). Panel D details a surgical ligation and perfusion protocol, showing strategic placement of six ligatures (I-VI) and catheters to isolate the right adrenal gland for physiological study. This resource is designed for advanced biomedical research and comparative anatomy, focusing on endocrine organ microvasculature and ex vivo organ perfusion techniques.

This endoscopic clinical photograph captures an intraoperative view of a retroperitoneal surgical procedure, specifically focusing on the exposure and mobilization of the adrenal gland. The adrenal gland is visible as an irregular, elongated structure with a mottled tan and reddish appearance, situated within the retroperitoneal fat. A Kelly forceps is actively engaged in the surgical field; however, rather than grasping the gland directly to avoid parenchymal damage, the instrument is seen gripping the adjacent periadrenal connective and adipose tissue for retraction. The surrounding anatomy includes partially dissected fascia and fatty tissue, with the kidney and associated renal vasculature located in the nearby operative field. The image demonstrates a key step in adrenalectomy, highlighting the surgical technique of using periadrenal tissue as a handle to facilitate the circumferential dissection of the gland from its attachments, including the phrenicoabdominal vein and visceral adrenal capsule.

This diagnostic axial CT scan of the abdomen with intravenous contrast demonstrates bilateral adrenal gland pathology. The primary findings are significant bilateral enlargement of the adrenal glands, which exhibit mixed attenuation consistent with acute spontaneous bilateral adrenal hemorrhage. Yellow arrows highlight the areas of involvement, specifically pointing to periadrenal infiltration and stranding in the retroperitoneal fat. These infiltrative changes indicate edema or extravasated blood extending beyond the adrenal capsules. The surrounding anatomy shows the liver, spleen, kidneys, and abdominal aorta. This clinical imaging is characteristic of Waterhouse-Friderichsen syndrome or secondary adrenal insufficiency due to hemorrhage. The educational focus is on identifying acute adrenal morphology changes and recognizing signs of periadrenal inflammation or hemorrhage on cross-sectional imaging.
| Right Adrenal | Left Adrenal | |
|---|---|---|
| Shape | Pyramidal/triangular | Semilunar/crescentic |
| Anterior | Bare area of liver, inferior vena cava (IVC) | Stomach, pancreatic tail, splenic vessels |
| Posterior | Right crus of diaphragm | Left crus of diaphragm |
| Medial | IVC, right celiac ganglion | Aorta, left celiac ganglion |
| Inferior | Upper pole of right kidney | Upper pole of left kidney |
| Component | Origin | Week of Appearance |
|---|---|---|
| Cortex | Mesoderm (coelomic mesothelium, between mesentery root and gonadal ridge) | Week 5 |
| Medulla | Neuroectoderm (neural crest cells migrating from sympathetic ganglia) | Week 6-7 |


Mnemonic for zones and secretions: "GFR" = Glomerulosa (aldosterone), Fasciculata (cortisol/glucocorticoids), Reticularis (androgens). Or: "Salt, Sugar, Sex" (outermost to innermost).
| System | Effect |
|---|---|
| Carbohydrate | Increases gluconeogenesis, decreases glucose uptake (anti-insulin) → hyperglycemia |
| Protein | Promotes catabolism, mobilizes amino acids from muscle/tissues |
| Fat | Promotes lipolysis; central fat redistribution (excess) |
| Immune | Anti-inflammatory, immunosuppressive (decreases cytokines, lymphocytes, eosinophils) |
| Bone | Inhibits osteoblasts → osteoporosis with excess |
| Cardiovascular | Increases vascular reactivity to catecholamines (upregulates α1 receptors); mild mineralocorticoid effect |
| CNS | Affects mood, behavior, cognition |
| Development | Required for fetal lung maturation (surfactant) |
| Effect | Mechanism |
|---|---|
| Increased heart rate & contractility | β1 receptors |
| Vasoconstriction (skin, viscera) | α1 receptors |
| Vasodilation (skeletal muscle) | β2 receptors |
| Bronchodilation | β2 receptors |
| Glycogenolysis & gluconeogenesis | β2 receptors |
| Lipolysis | β1/β3 receptors |
| Pupillary dilation | α1 receptors |
| Decreased GI motility | α2, β2 receptors |
make a more detailed pdf
mkdir -p /tmp/workspace/adrenal-gland && ls /tmp/workspace/
~/adrenal-gland/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus.flowables import Flowable
import io
# ── Colour palette ────────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1a3a5c")
MID_BLUE = colors.HexColor("#2563a8")
LIGHT_BLUE = colors.HexColor("#dbeafe")
TEAL = colors.HexColor("#0f766e")
TEAL_LIGHT = colors.HexColor("#ccfbf1")
ORANGE = colors.HexColor("#c2410c")
ORANGE_LT = colors.HexColor("#ffedd5")
PURPLE = colors.HexColor("#6d28d9")
PURPLE_LT = colors.HexColor("#ede9fe")
GREEN = colors.HexColor("#15803d")
GREEN_LT = colors.HexColor("#dcfce7")
RED = colors.HexColor("#b91c1c")
YELLOW_LT = colors.HexColor("#fef9c3")
GRAY_DARK = colors.HexColor("#374151")
GRAY_MID = colors.HexColor("#6b7280")
GRAY_LIGHT = colors.HexColor("#f3f4f6")
WHITE = colors.white
W, H = A4
# ── Document ──────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
"/tmp/workspace/adrenal-gland/Adrenal_Gland_Complete.pdf",
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2.2*cm,
title="Adrenal Gland – Complete Medical Reference",
author="Orris Medical Education",
)
styles = getSampleStyleSheet()
# ── Custom styles ─────────────────────────────────────────────────────────────
def S(name, **kw):
return ParagraphStyle(name, **kw)
cover_title = S("CoverTitle", fontSize=32, textColor=WHITE, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=38, spaceAfter=8)
cover_sub = S("CoverSub", fontSize=16, textColor=colors.HexColor("#bfdbfe"),
fontName="Helvetica", alignment=TA_CENTER, leading=22, spaceAfter=4)
cover_tag = S("CoverTag", fontSize=11, textColor=colors.HexColor("#93c5fd"),
fontName="Helvetica-Oblique", alignment=TA_CENTER)
h_chapter = S("HChapter", fontSize=18, textColor=WHITE, fontName="Helvetica-Bold",
alignment=TA_LEFT, leading=22, spaceAfter=2)
h1 = S("H1", fontSize=14, textColor=DARK_BLUE, fontName="Helvetica-Bold",
spaceBefore=14, spaceAfter=4, leading=17)
h2 = S("H2", fontSize=12, textColor=MID_BLUE, fontName="Helvetica-Bold",
spaceBefore=10, spaceAfter=3, leading=15)
h3 = S("H3", fontSize=11, textColor=TEAL, fontName="Helvetica-Bold",
spaceBefore=7, spaceAfter=2, leading=13)
body = S("Body", fontSize=10, textColor=GRAY_DARK, fontName="Helvetica",
alignment=TA_JUSTIFY, leading=15, spaceAfter=5)
body_b = S("BodyB", fontSize=10, textColor=GRAY_DARK, fontName="Helvetica-Bold",
leading=15)
bullet_s = S("BulletS", fontSize=10, textColor=GRAY_DARK, fontName="Helvetica",
leftIndent=16, bulletIndent=4, alignment=TA_JUSTIFY, leading=14, spaceAfter=3)
small_it = S("SmallIt", fontSize=8.5, textColor=GRAY_MID, fontName="Helvetica-Oblique",
alignment=TA_CENTER, spaceAfter=2)
note_box = S("NoteBox", fontSize=9.5, textColor=GRAY_DARK, fontName="Helvetica-Oblique",
alignment=TA_JUSTIFY, leading=14)
key_point = S("KeyPoint", fontSize=10, textColor=DARK_BLUE, fontName="Helvetica-Bold",
leading=14, spaceAfter=3)
mnemonic = S("Mnemonic", fontSize=11, textColor=ORANGE, fontName="Helvetica-Bold",
alignment=TA_CENTER, spaceBefore=4, spaceAfter=4)
# ── Helper: coloured banner (chapter header) ──────────────────────────────────
class Banner(Flowable):
def __init__(self, text, bg=DARK_BLUE, height=1.1*cm):
Flowable.__init__(self)
self.text = text
self.bg = bg
self.bh = height
def wrap(self, avW, avH):
self.W = avW
return avW, self.bh + 6
def draw(self):
c = self.canv
c.setFillColor(self.bg)
c.roundRect(0, 0, self.W, self.bh, 5, fill=1, stroke=0)
c.setFillColor(WHITE)
c.setFont("Helvetica-Bold", 13)
c.drawString(10, self.bh*0.28, self.text)
class InfoBox(Flowable):
"""Coloured background info / key-fact box."""
def __init__(self, paragraphs, bg=LIGHT_BLUE, border=MID_BLUE, radius=6):
Flowable.__init__(self)
self.paragraphs = paragraphs
self.bg = bg
self.border = border
self.radius = radius
def wrap(self, avW, avH):
self.W = avW
total_h = 12
self._wrapped = []
for p in self.paragraphs:
w, h = p.wrap(avW - 24, avH)
self._wrapped.append((p, w, h))
total_h += h + 4
self.H = total_h
return avW, self.H
def draw(self):
c = self.canv
c.setFillColor(self.bg)
c.setStrokeColor(self.border)
c.setLineWidth(1)
c.roundRect(0, 0, self.W, self.H, self.radius, fill=1, stroke=1)
y = self.H - 10
for p, w, h in self._wrapped:
y -= h
p.drawOn(c, 12, y)
y -= 4
def bul(text, style=bullet_s):
return Paragraph(f"<bullet>•</bullet> {text}", style)
def sp(h=6):
return Spacer(1, h)
def hr(color=MID_BLUE, thickness=0.5):
return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=4, spaceBefore=4)
# ── TABLE helper ──────────────────────────────────────────────────────────────
def make_table(data, col_widths, header_bg=DARK_BLUE, row_bg1=GRAY_LIGHT, row_bg2=WHITE,
header_color=WHITE, font_size=9):
style = [
("BACKGROUND", (0,0), (-1,0), header_bg),
("TEXTCOLOR", (0,0), (-1,0), header_color),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), font_size),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("RIGHTPADDING",(0,0), (-1,-1), 7),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#d1d5db")),
("ROWBACKGROUNDS",(0,1),(-1,-1),[row_bg1, row_bg2]),
]
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle(style))
return t
# ══════════════════════════════════════════════════════════════════════════════
# CONTENT
# ══════════════════════════════════════════════════════════════════════════════
story = []
# ── COVER ─────────────────────────────────────────────────────────────────────
cover_data = [[
Paragraph("ADRENAL GLAND", cover_title),
Paragraph("Anatomy · Histology · Physiology · Applied", cover_sub),
sp(8),
Paragraph("A Comprehensive Medical Reference", cover_tag),
sp(4),
Paragraph("Based on Costanzo Physiology 7e · Medical Physiology (Barrett) ·<br/>"
"Langman's Embryology · Schwartz's Principles of Surgery ·<br/>"
"Fischer's Mastery of Surgery · Histology: A Text and Atlas", cover_tag),
]]
cover_tbl = Table(cover_data, colWidths=[W - 4*cm])
cover_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0),(-1,-1), 50),
("BOTTOMPADDING", (0,0),(-1,-1), 50),
("LEFTPADDING", (0,0),(-1,-1), 20),
("RIGHTPADDING", (0,0),(-1,-1), 20),
("ROUNDEDCORNERS",(0,0),(-1,-1), [10,10,10,10]),
]))
story.append(cover_tbl)
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 1 – ANATOMY
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 1 · GROSS ANATOMY", bg=DARK_BLUE))
story.append(sp(6))
story.append(Paragraph("1.1 Overview & Location", h1))
story.append(Paragraph(
"The <b>adrenal (suprarenal) glands</b> are paired, retroperitoneal endocrine organs situated "
"<b>superomedially on the upper poles of each kidney</b>, within Gerota's (perirenal) fascia. "
"Each gland weighs approximately <b>4 g</b> in the adult but receives one of the highest blood flows "
"per gram of any organ in the body — reflecting its intense secretory activity. "
"Macroscopically, a bright-yellow outer cortex encloses a dark-brown/grey medulla.",
body))
story.append(Paragraph("1.2 Shape & Side Differences", h1))
rel_data = [
["Feature", "Right Adrenal", "Left Adrenal"],
["Shape", "Pyramidal / triangular", "Semilunar / crescentic"],
["Anterior", "Bare area of liver; IVC", "Stomach; pancreatic tail; splenic vessels"],
["Posterior", "Right crus of diaphragm", "Left crus of diaphragm"],
["Medial", "IVC; right celiac ganglion", "Aorta; left celiac ganglion"],
["Inferior", "Upper pole of right kidney", "Upper pole of left kidney"],
["Adrenal vein drains into", "IVC directly (short, <1 cm)", "Left renal vein"],
]
story.append(make_table(rel_data,
col_widths=[4.5*cm, 7*cm, 7*cm]))
story.append(sp(6))
story.append(Paragraph("1.3 Blood Supply", h1))
story.append(Paragraph(
"The adrenal gland has a <b>triple arterial supply</b> — unlike most abdominal organs that have a single "
"dominant vessel. All three sources anastomose in a subcapsular plexus before penetrating the cortex "
"as sinusoids that flow centripetally toward the medulla.",
body))
art_data = [
["Artery", "Origin", "Territory"],
["Superior suprarenal (multiple small branches)", "Inferior phrenic artery", "Upper cortex"],
["Middle suprarenal", "Abdominal aorta (directly)", "Midcortex"],
["Inferior suprarenal", "Renal artery", "Lower cortex / medulla"],
]
story.append(make_table(art_data, col_widths=[6*cm, 5*cm, 5.5*cm]))
story.append(sp(5))
story.append(Paragraph("<b>Venous drainage:</b> Each gland drains via a <b>single central adrenal vein.</b>", body))
story.append(bul("<b>Right adrenal vein:</b> Very short (<1 cm); drains <b>directly into the IVC</b>. "
"Surgically hazardous — prone to avulsion during right adrenalectomy."))
story.append(bul("<b>Left adrenal vein:</b> Longer; drains into the <b>left renal vein</b>, which also "
"receives the left gonadal vein."))
story.append(sp(4))
story.append(Paragraph("1.4 Lymphatic Drainage & Nerve Supply", h1))
story.append(bul("<b>Lymphatics:</b> Drain to lateral aortic (para-aortic) lymph nodes."))
story.append(bul("<b>Nerve supply:</b> Preganglionic sympathetic fibres from the <b>greater, lesser, and least "
"splanchnic nerves</b> (T8–L1). These pass through the celiac plexus <i>without synapsing</i> "
"and synapse directly on chromaffin cells of the medulla — the chromaffin cells are therefore "
"functionally equivalent to post-ganglionic sympathetic neurons."))
story.append(sp(4))
story.append(InfoBox([
Paragraph("<b>Key Anatomical Points (Exam Favourites)</b>", key_point),
bul("Right adrenal vein is SHORT and drains directly to IVC — highest risk during surgery."),
bul("Triple arterial supply means single-vessel ligation does NOT devascularise the gland."),
bul("Both glands lie within Gerota's fascia — adrenalectomy approaches must respect this layer."),
bul("Left adrenal vein receives the left inferior phrenic vein before entering left renal vein."),
], bg=LIGHT_BLUE, border=MID_BLUE))
story.append(sp(8))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 2 – EMBRYOLOGY
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 2 · EMBRYOLOGY & DEVELOPMENT", bg=TEAL))
story.append(sp(6))
story.append(Paragraph("2.1 Dual Embryological Origin", h1))
story.append(Paragraph(
"The adrenal gland is unique among endocrine organs in being derived from <b>two completely separate "
"embryological sources</b> — one mesodermal (cortex) and one ectodermal/neuroectodermal (medulla).",
body))
emb_data = [
["Component", "Embryological Origin", "Week", "Key Events"],
["Cortex", "Coelomic mesothelium\n(mesodermal)", "Week 5",
"Mesothelial cells between root of mesentery and gonadal ridge proliferate, "
"penetrate mesenchyme → large acidophilic fetal cortex forms"],
["Medulla", "Neural crest cells\n(neuroectodermal)", "Week 6–7",
"Neural crest cells migrate, guided by BMP signals from dorsal aorta, "
"invade medial fetal cortex → differentiate into chromaffin cells"],
]
story.append(make_table(emb_data, col_widths=[3.2*cm, 3.8*cm, 2*cm, 7.5*cm]))
story.append(sp(6))
story.append(Paragraph("2.2 Fetal Cortex (Fetal Zone)", h1))
story.append(Paragraph(
"The <b>first wave</b> of mesodermal cells forms the <b>fetal cortex (fetal zone)</b>, a large "
"mass of eosinophilic cells constituting ~80% of the gland's mass by the fourth fetal month. "
"The <b>second wave</b> of mesothelial cells surrounds the first and forms the thin "
"<b>permanent (definitive) cortex</b>, which resembles the adult zona glomerulosa.",
body))
story.append(bul("By 4th fetal month: adrenal gland is nearly as large as the adjacent kidney."))
story.append(bul("At term: adrenal glands weigh the same as adult glands (~4 g each) and produce "
"<b>100–200 mg of steroids/day</b> — about twice the adult rate."))
story.append(bul("Fetal cortex secretes <b>DHEA</b>, which is converted to <b>oestrogen</b> by the placenta "
"— essential for maintaining placental function and pregnancy."))
story.append(sp(4))
story.append(Paragraph("2.3 Postnatal Involution & Adult Zonation", h1))
story.append(Paragraph(
"After birth, the fetal cortex <b>rapidly involutes</b> (stimulated by withdrawal of placental "
"oestrogen and ACTH). Over 1–3 years, it is completely replaced by the three-layered adult cortex "
"(zona glomerulosa, fasciculata, reticularis). Neural crest-derived chromaffin cells differentiate "
"fully and become enclosed within the definitive cortex.",
body))
story.append(InfoBox([
Paragraph("<b>Clinical Correlate – Congenital Adrenal Hyperplasia (CAH)</b>", key_point),
Paragraph(
"Defects in steroidogenic enzymes (most commonly <b>21-hydroxylase / CYP21A2</b>) prevent normal "
"cortisol synthesis even during fetal life. Excess ACTH drives the fetal adrenal to overproduce "
"androgens, leading to virilisation of the female fetus. CAH can present at birth as ambiguous "
"genitalia or as a life-threatening salt-wasting crisis in the neonatal period.",
note_box),
], bg=ORANGE_LT, border=ORANGE))
story.append(sp(8))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 3 – HISTOLOGY
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 3 · HISTOLOGY", bg=PURPLE))
story.append(sp(6))
story.append(Paragraph("3.1 General Structure", h1))
story.append(Paragraph(
"The adrenal gland is enclosed in a <b>fibrous capsule</b> from which septa extend inwards. "
"Deep to the capsule is the <b>cortex</b> (80% of tissue, mesodermal origin) and centrally lies "
"the <b>medulla</b> (20%, neuroectodermal origin). Blood flows <b>centripetally</b> — cortical "
"sinusoids drain into medullary sinusoids, exposing the medulla to high concentrations of cortisol "
"(which is required for the final step of epinephrine synthesis).",
body))
story.append(sp(4))
story.append(Paragraph("3.2 The Three Zones of the Cortex", h1))
story.append(Paragraph(
'<b>Mnemonic: "GFR" (outer → inner)</b> — Glomerulosa, Fasciculata, Reticularis',
mnemonic))
# Zone table
zone_data = [
["Zone", "% Cortex", "Cell Arrangement", "Cytoplasm", "Secretion", "Regulator"],
["Zona\nGlomerulosa\n(outer)", "~15%",
"Rounded arches /\nclusters (glomerular\npattern)",
"Small cells, scanty,\nsomewhat basophilic;\nclosely packed nuclei",
"Aldosterone\n(mineralocorticoids)", "Angiotensin II,\nHyperkalemia\n(not ACTH)"],
["Zona\nFasciculata\n(middle)", "~75%",
"Long radial cords\n(fascicles) separated\nby sinusoids",
"Large spongiocytes:\npale, vacuolated,\nlipid-rich (foamy)",
"Cortisol\n(glucocorticoids)\n+ some androgens", "ACTH"],
["Zona\nReticularis\n(inner)", "~10%",
"Anastomosing cords\n(net/reticular pattern)",
"Compact, acidophilic\n(eosinophilic),\nlipid-poor; darker nuclei",
"DHEA, androstenedione\n(adrenal androgens)\n+ glucocorticoids", "ACTH"],
]
story.append(make_table(zone_data,
col_widths=[3*cm, 1.8*cm, 3.5*cm, 3.5*cm, 3.5*cm, 3.2*cm],
header_bg=PURPLE, font_size=8.5))
story.append(sp(6))
story.append(Paragraph("3.3 Zona Glomerulosa – Detailed Histology", h2))
story.append(bul("Cells arranged in <b>arched groups (glomeruli)</b> that extend into short cords."))
story.append(bul("Small cells with <b>closely packed nuclei and scanty cytoplasm</b>."))
story.append(bul("Slight basophilia of cytoplasm in H&E preparations."))
story.append(bul("Contains the enzyme <b>aldosterone synthase (CYP11B2)</b> — unique to this zone."))
story.append(bul("Lacks 17α-hydroxylase — cannot produce cortisol or sex steroids."))
story.append(sp(3))
story.append(Paragraph("3.4 Zona Fasciculata – Detailed Histology", h2))
story.append(bul("Widest zone; cells called <b>spongiocytes</b> due to foamy vacuolated cytoplasm."))
story.append(bul("Vacuoles represent dissolved <b>cholesterol ester lipid droplets</b> — the substrate for steroidogenesis."))
story.append(bul("Cells arranged in <b>long parallel cords (fascicles)</b> radiating from medulla outward."))
story.append(bul("Sinusoidal capillaries run between the cords, facilitating hormone secretion."))
story.append(bul("Large, pale-staining cells with round euchromatic nuclei."))
story.append(sp(3))
story.append(Paragraph("3.5 Zona Reticularis – Detailed Histology", h2))
story.append(bul("Cells form an <b>anastomosing network of cords</b> (reticular = net-like pattern)."))
story.append(bul("Cells are <b>compact with eosinophilic (acidophilic) cytoplasm</b> — lipid-poor."))
story.append(bul("Nuclei are slightly smaller and darker than in zona fasciculata."))
story.append(bul("Irregular, polygonal cells with prominent vascular sinusoids interspersed."))
story.append(bul("Contains <b>17,20-lyase (CYP17A1)</b> at high activity — produces DHEA and androstenedione."))
story.append(sp(3))
story.append(Paragraph("3.6 Adrenal Medulla – Detailed Histology", h2))
story.append(Paragraph(
"The medulla is composed of <b>chromaffin cells (pheochromocytes)</b> of neural crest origin, "
"arranged in cords, clusters, and nests supported by a rich sinusoidal vascular network.",
body))
story.append(bul("Cells: large, polygonal, with <b>abundant granular eosinophilic cytoplasm</b>."))
story.append(bul("Cytoplasmic granules contain stored catecholamines (epinephrine and norepinephrine)."))
story.append(bul("<b>Chromaffin reaction</b>: Cells stain yellow-brown with chrome salts due to oxidation of catecholamines."))
story.append(bul("<b>Two cell populations:</b>"))
story.append(Paragraph(" • <b>Epinephrine-secreting cells</b> (~80%): "
"lighter staining, smaller granules; contain PNMT enzyme.", body))
story.append(Paragraph(" • <b>Norepinephrine-secreting cells</b> (~20%): "
"darker staining, denser, larger granules.", body))
story.append(bul("<b>Sustentacular (supporting) cells</b>: peripheral, spindle-shaped; S-100 positive."))
story.append(bul("Medullary sinusoids are large and fenestrated, enabling rapid catecholamine release."))
story.append(sp(4))
story.append(InfoBox([
Paragraph("<b>Histological Mnemonics</b>", key_point),
Paragraph(
'<b>"Salt, Sugar, Sex"</b> (outer → inner): Glomerulosa (salt = aldosterone), '
'Fasciculata (sugar = cortisol), Reticularis (sex = androgens).<br/>'
'<b>"GFR"</b> matches kidney GFR — both involve filtration/regulation of electrolytes and fluids.<br/>'
'<b>Spongiocytes</b> = Zona fasciculata (spongey = lipid-rich = cortisol factory).<br/>'
'<b>Chromaffin cells</b> = medulla (chrome staining = catecholamines).',
note_box),
], bg=YELLOW_LT, border=colors.HexColor("#ca8a04")))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 4 – PHYSIOLOGY: CORTEX
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 4 · PHYSIOLOGY — ADRENAL CORTEX", bg=TEAL))
story.append(sp(6))
story.append(Paragraph("4.1 Steroidogenesis – Shared Pathway", h1))
story.append(Paragraph(
"All adrenocortical hormones are <b>steroid hormones</b> derived from cholesterol (a 27-carbon molecule). "
"The rate-limiting step is the transfer of cholesterol into the inner mitochondrial membrane by "
"<b>StAR protein (Steroidogenic Acute Regulatory protein)</b>, stimulated by ACTH. "
"The shared precursor is <b>pregnenolone</b>.",
body))
story.append(bul("<b>Glucocorticoids (cortisol)</b>: 21-carbon steroids; hydroxyl groups at C11, C17, C21."))
story.append(bul("<b>Mineralocorticoids (aldosterone)</b>: 21-carbon steroids; aldehyde at C18; lacks 17-OH."))
story.append(bul("<b>Androgens (DHEA)</b>: 19-carbon steroids; ketone at C17; lack C20–C21 side chain."))
story.append(sp(6))
story.append(Paragraph("4.2 Cortisol (Glucocorticoid)", h1))
story.append(Paragraph("4.2.1 Regulation – HPA Axis", h2))
story.append(bul("<b>CRH</b> (41 amino acids) secreted by paraventricular nuclei of hypothalamus → "
"travels in hypothalamic-hypophysial portal blood → acts on corticotrophs via "
"adenylyl cyclase/cAMP."))
story.append(bul("<b>ACTH</b> from anterior pituitary corticotrophs → acts on zona fasciculata/reticularis:"))
story.append(Paragraph(" • <b>Immediate:</b> Activates cholesterol desmolase; "
"transfers cholesterol to mitochondria; stimulates StAR.", body))
story.append(Paragraph(" • <b>Long-term:</b> Upregulates CYP450 genes, "
"adrenodoxin, and ACTH receptors.", body))
story.append(Paragraph(" • <b>Chronic elevated ACTH:</b> Hypertrophy and "
"hyperplasia of cortical cells (via IGF-2).", body))
story.append(bul("<b>Negative feedback:</b> Cortisol inhibits (1) CRH from hypothalamus, "
"(2) ACTH synthesis and secretion from pituitary, (3) ACTH gene transcription."))
story.append(bul("<b>Diurnal rhythm:</b> Peak ~8 AM (just before awakening); nadir ~midnight. "
"~10 pulsatile secretory bursts per 24 hours. Abolished by coma, blindness, or constant light/dark."))
story.append(sp(4))
story.append(Paragraph("4.2.2 Transport in Blood", h2))
story.append(bul("75–80%: bound to <b>corticosteroid-binding globulin (CBG / transcortin)</b>"))
story.append(bul("~15%: loosely bound to albumin"))
story.append(bul("~5%: <b>free (biologically active)</b> form"))
story.append(bul("Half-life in plasma: ~60–90 minutes"))
story.append(sp(4))
story.append(Paragraph("4.2.3 Actions of Cortisol", h2))
act_data = [
["System / Tissue", "Effect of Cortisol", "Net Result"],
["Carbohydrate\nmetabolism", "↑ Gluconeogenesis (liver)\n↓ Peripheral glucose uptake\n↑ Glycogen synthesis", "Hyperglycaemia (diabetogenic)"],
["Protein\nmetabolism", "↑ Protein catabolism in muscle/skin/bone\n↑ Amino acid mobilisation → liver", "Muscle wasting, thin skin, poor wound healing"],
["Fat metabolism", "↑ Lipolysis in extremities\nRedistributes fat centrally", "Thin arms/legs; central obesity, moon face, buffalo hump"],
["Immune system", "↓ Cytokines (IL-1, IL-2, TNF-α)\n↓ Lymphocytes, eosinophils\nStabilises lysosomal membranes", "Anti-inflammatory, immunosuppressive"],
["Bone", "↓ Osteoblast activity\n↓ Intestinal Ca²⁺ absorption\n↑ Renal Ca²⁺ excretion", "Osteoporosis with chronic excess"],
["Cardiovascular", "↑ Vascular reactivity (upregulates α1 adrenoceptors)\nWeak mineralocorticoid effect", "Hypertension in excess"],
["Kidney", "Weak mineralocorticoid activity\n(inactivated by 11β-HSD2 in collecting duct)", "Mild Na⁺ retention, K⁺ loss"],
["CNS", "Affects mood, cognition, sleep", "Euphoria/psychosis in excess; depression in deficiency"],
["Fetal lung", "↑ Surfactant synthesis by type II pneumocytes", "Lung maturation before birth"],
["GI tract", "↑ Gastric acid secretion\n↓ Mucosal cell turnover", "Peptic ulcer risk"],
["Haematology", "↑ RBC, platelets, neutrophils\n↓ Lymphocytes, eosinophils, basophils", "Leukocytosis on blood count"],
]
story.append(make_table(act_data, col_widths=[3.5*cm, 7*cm, 5.5*cm], header_bg=TEAL, font_size=8.5))
story.append(sp(8))
story.append(PageBreak())
# ── Aldosterone ───────────────────────────────────────────────────────────────
story.append(Paragraph("4.3 Aldosterone (Mineralocorticoid)", h1))
story.append(Paragraph("4.3.1 Regulation – RAAS", h2))
story.append(Paragraph(
"Aldosterone secretion is primarily regulated by the <b>Renin-Angiotensin-Aldosterone System (RAAS)</b> "
"and by plasma <b>potassium (K⁺) levels</b>. ACTH plays only a minor role.",
body))
raas_data = [
["Step", "Location", "Event"],
["1", "Kidney juxtaglomerular (JG) cells", "↓ BP / ↓ Na⁺ / β1 stimulation → release Renin"],
["2", "Liver", "Renin cleaves angiotensinogen → Angiotensin I (10 AA)"],
["3", "Pulmonary endothelium", "ACE converts Angiotensin I → Angiotensin II (8 AA)"],
["4", "Adrenal zona glomerulosa", "Angiotensin II (+ hyperkalaemia) → Aldosterone secretion"],
["5", "Kidney (late DCT, collecting duct)", "Aldosterone binds intracellular MR → ↑ ENaC & Na⁺/K⁺-ATPase"],
["6", "Systemic", "↑ Na⁺ & water retention → ↑ BP → ↓ Renin (negative feedback)"],
]
story.append(make_table(raas_data, col_widths=[1.2*cm, 5.5*cm, 9.8*cm], header_bg=TEAL, font_size=9))
story.append(sp(5))
story.append(Paragraph("4.3.2 Actions of Aldosterone", h2))
story.append(bul("<b>Principal cells of late distal tubule and collecting duct:</b>"))
story.append(Paragraph(" • ↑ Na⁺ reabsorption via ENaC (epithelial Na⁺ channels) → "
"water retention → volume expansion → hypertension.", body))
story.append(Paragraph(" • ↑ K⁺ secretion via ROMK channels → "
"hypokalaemia in excess.", body))
story.append(Paragraph(" • ↑ H⁺ secretion via H⁺-ATPase → "
"metabolic alkalosis in excess.", body))
story.append(bul("<b>Secondary sites:</b> Salivary glands, sweat glands, colon (reduces Na⁺ losses)."))
story.append(sp(4))
story.append(Paragraph("4.3.3 Why Cortisol Does NOT Act as a Mineralocorticoid (Normally)", h2))
story.append(InfoBox([
Paragraph("<b>The 11β-HSD2 'Protection' Mechanism</b>", key_point),
Paragraph(
"Mineralocorticoid receptors (MR) bind cortisol with equal affinity as aldosterone. Since circulating "
"cortisol levels are ~100-1000× higher than aldosterone, cortisol would otherwise dominate MRs. "
"Renal tubular cells solve this by expressing <b>11β-hydroxysteroid dehydrogenase type 2 (11β-HSD2)</b>, "
"which converts cortisol → cortisone (inactive at MR). This 'protects' MRs for aldosterone. "
"<b>Clinical consequence:</b> Inhibition of 11β-HSD2 (e.g. by liquorice/carbenoxolone or "
"in apparent mineralocorticoid excess syndrome) allows cortisol to activate MRs → "
"hypertension + hypokalaemia even though aldosterone levels are low.",
note_box),
], bg=TEAL_LIGHT, border=TEAL))
story.append(sp(6))
story.append(Paragraph("4.4 Adrenal Androgens", h1))
story.append(Paragraph(
"The adrenal zona reticularis produces <b>DHEA (dehydroepiandrosterone)</b>, "
"<b>DHEAS (sulphated form)</b>, and <b>androstenedione</b> — all weak androgens that are "
"converted peripherally to testosterone and oestrogens.",
body))
story.append(bul("Regulated by ACTH (parallel diurnal variation to cortisol)."))
story.append(bul("DHEAS circulates at much higher concentrations than DHEA (half-life ~10 hours vs ~20 min) "
"and shows no diurnal variation."))
story.append(bul("<b>In males:</b> Minor role — testicular testosterone synthesis far exceeds adrenal contribution."))
story.append(bul("<b>In females:</b> Adrenal androgens are the <b>primary androgen source</b> — responsible for "
"pubic/axillary hair development and libido."))
story.append(bul("<b>Excess:</b> Virilisation in females; early pubic/axillary hair; suppresses gonadal function. "
"↑ Urinary 17-ketosteroids."))
story.append(sp(4))
story.append(Paragraph("4.5 Steroid Hormone Receptor Mechanism", h1))
story.append(Paragraph(
"Steroid hormones are <b>lipid-soluble</b> — they diffuse across the cell membrane and bind to "
"<b>intracellular (cytoplasmic or nuclear) receptors</b>. The hormone-receptor complex then acts as a "
"transcription factor, binding hormone-response elements (HREs) in DNA to modulate gene expression. "
"This mechanism has a <b>delayed onset (hours)</b> but <b>prolonged duration</b> compared with peptide hormones.",
body))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 5 – PHYSIOLOGY: MEDULLA
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 5 · PHYSIOLOGY — ADRENAL MEDULLA", bg=colors.HexColor("#92400e")))
story.append(sp(6))
story.append(Paragraph("5.1 Catecholamine Synthesis Pathway", h1))
story.append(Paragraph(
"Catecholamines are synthesised from the amino acid <b>tyrosine</b> in a four-step pathway within "
"chromaffin cell cytoplasm and vesicles. <b>PNMT (phenylethanolamine-N-methyltransferase)</b>, "
"the enzyme converting norepinephrine → epinephrine, requires <b>high local cortisol concentrations</b> — "
"delivered via the portal blood from the adrenal cortex. This explains why the medulla is surrounded "
"by cortex: cortisol is needed to maintain full epinephrine synthesis.",
body))
syn_data = [
["Step", "Substrate", "Enzyme", "Product", "Location"],
["1", "Tyrosine", "Tyrosine hydroxylase (rate-limiting)", "DOPA (L-DOPA)", "Cytoplasm"],
["2", "DOPA", "DOPA decarboxylase (AAAD)", "Dopamine", "Cytoplasm"],
["3", "Dopamine", "Dopamine β-hydroxylase (DBH)", "Norepinephrine", "Secretory vesicle"],
["4 (medulla only)", "Norepinephrine", "PNMT (requires cortisol)", "Epinephrine", "Cytoplasm"],
]
story.append(make_table(syn_data, col_widths=[3*cm, 3*cm, 5*cm, 3.5*cm, 2.5*cm],
header_bg=colors.HexColor("#92400e"), font_size=9))
story.append(sp(5))
story.append(Paragraph("5.2 Secretion & Storage", h1))
story.append(bul("Catecholamines are stored in <b>chromaffin granules</b> complexed with ATP and chromogranins."))
story.append(bul("Released by <b>exocytosis</b> triggered by preganglionic ACh acting on nicotinic receptors."))
story.append(bul("Medulla secretes: ~<b>80% epinephrine, ~20% norepinephrine</b>."))
story.append(bul("Plasma half-life: ~2 minutes (rapidly inactivated)."))
story.append(sp(4))
story.append(Paragraph("5.3 Catecholamine Receptors & Actions", h1))
cat_data = [
["Receptor", "Location", "Mediator", "Effect"],
["α1", "Skin, viscera, arterioles", "Both (NE>Epi)", "Vasoconstriction, ↑ peripheral resistance"],
["α2", "Presynaptic nerve terminals, GI", "NE", "↓ NE release (feedback), ↓ GI motility"],
["β1", "Heart, JG cells (kidney)", "Both (Epi=NE)", "↑ Heart rate, ↑ contractility, ↑ renin"],
["β2", "Bronchi, skeletal muscle vessels", "Epi > NE", "Bronchodilation, vasodilation, glycogenolysis"],
["β3", "Adipose tissue, bladder", "NE > Epi", "Lipolysis, bladder relaxation"],
]
story.append(make_table(cat_data, col_widths=[2.5*cm, 4.5*cm, 3.5*cm, 7*cm],
header_bg=colors.HexColor("#92400e"), font_size=9))
story.append(sp(5))
story.append(Paragraph("5.4 Physiological Role (Fight-or-Flight Response)", h1))
ff_data = [
["System", "Response", "Purpose"],
["Heart", "↑ Rate, ↑ force (β1)", "↑ Cardiac output"],
["Vasculature", "Vasoconstriction skin/viscera (α1); vasodilation muscle (β2)", "Blood redirected to muscle"],
["Lungs", "Bronchodilation (β2)", "↑ O₂ delivery"],
["Liver/muscle", "Glycogenolysis (β2/β1)", "↑ Blood glucose for energy"],
["Adipose", "Lipolysis (β3/β1)", "↑ Free fatty acids for energy"],
["Pupils", "Dilation (α1 radial muscle)", "↑ Visual field"],
["GI tract", "↓ Motility, sphincter contraction (α)", "Redirect blood flow"],
["Bladder", "Sphincter contraction (α1), detrusor relaxation (β2)", "Retain urine"],
["Sweat glands", "↑ Sweating (cholinergic despite sympathetic)", "Thermoregulation"],
]
story.append(make_table(ff_data, col_widths=[3.5*cm, 8*cm, 5*cm],
header_bg=colors.HexColor("#92400e"), font_size=9))
story.append(sp(5))
story.append(Paragraph("5.5 Catecholamine Metabolism", h1))
story.append(bul("<b>MAO (monoamine oxidase)</b>: Intraneuronal; degrades free cytoplasmic catecholamines."))
story.append(bul("<b>COMT (catechol-O-methyltransferase)</b>: Extraneuronal; methylates catecholamines."))
story.append(bul("<b>End metabolites:</b>"))
story.append(Paragraph(" • Epinephrine → <b>Metanephrine</b> (COMT) → VMA", body))
story.append(Paragraph(" • Norepinephrine → <b>Normetanephrine</b> (COMT) → VMA", body))
story.append(Paragraph(" • Both → <b>VMA (Vanillylmandelic acid)</b> (final urine metabolite)", body))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 6 – APPLIED ANATOMY & PHYSIOLOGY
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 6 · APPLIED ANATOMY & CLINICAL PHYSIOLOGY", bg=RED))
story.append(sp(6))
story.append(Paragraph("6.1 Cushing's Syndrome vs Cushing's Disease", h1))
cush_data = [
["Feature", "Cushing's SYNDROME (Primary)", "Cushing's DISEASE (Pituitary)"],
["Cause", "Autonomous cortisol-secreting adrenal adenoma/carcinoma or ectopic ACTH", "ACTH-secreting pituitary microadenoma"],
["Primary defect", "Adrenal cortex", "Anterior pituitary"],
["ACTH levels", "↓ LOW (suppressed by high cortisol)", "↑ HIGH"],
["Clinical features", "Shared: central obesity, moon face, buffalo hump, striae, muscle wasting, osteoporosis, hypertension, hyperglycaemia, poor wound healing", "Same + hyperpigmentation if ACTH very high"],
["Dexamethasone\nsuppression test", "NOT suppressed by either low- or\nhigh-dose dexamethasone (autonomous)", "Suppressed by HIGH-dose; not by low-dose"],
["Treatment", "Ketoconazole / metyrapone (block synthesis);\nif failed: bilateral adrenalectomy + replacement", "Transsphenoidal pituitary adenoma resection"],
]
story.append(make_table(cush_data, col_widths=[4*cm, 6.5*cm, 6*cm], header_bg=RED, font_size=8.5))
story.append(sp(6))
story.append(Paragraph("6.2 Conn's Syndrome (Primary Hyperaldosteronism)", h1))
story.append(bul("<b>Cause:</b> Aldosterone-secreting adrenal adenoma (or bilateral adrenal hyperplasia)."))
story.append(bul("<b>Hallmarks (explain by physiology):</b>"))
story.append(Paragraph(" • <b>Hypertension</b> — ↑ Na⁺ retention → ↑ ECF volume.", body))
story.append(Paragraph(" • <b>Hypokalaemia</b> — ↑ K⁺ secretion at collecting duct.", body))
story.append(Paragraph(" • <b>Metabolic alkalosis</b> — ↑ H⁺ secretion.", body))
story.append(Paragraph(" • <b>Low plasma renin</b> — volume expansion suppresses JG cell renin release.", body))
story.append(bul("<b>Diagnosis:</b> Elevated aldosterone : renin ratio (ARR). Confirmed by CT adrenals ± adrenal vein sampling."))
story.append(bul("<b>Treatment:</b> Spironolactone (MR antagonist) or eplerenone; unilateral adrenalectomy for adenoma."))
story.append(sp(5))
story.append(Paragraph("6.3 Addison's Disease (Primary Adrenal Insufficiency)", h1))
add_data = [
["Feature", "Details"],
["Cause", "Autoimmune adrenalitis (most common in developed world); TB (most common globally); haemorrhage; metastasis; fungal infection"],
["Deficiencies", "Cortisol + Aldosterone + Androgens (all three cortical zones affected)"],
["Symptoms", "Fatigue, weakness, weight loss, anorexia, nausea, vomiting, diarrhoea, abdominal pain, postural dizziness"],
["Signs", "Hypotension, hyperpigmentation (buccal mucosa, palmar creases, scars — due to ↑ ACTH/MSH), dehydration"],
["Electrolytes", "↓ Na⁺ (hyponatraemia), ↑ K⁺ (hyperkalaemia), ↓ glucose (hypoglycaemia), metabolic acidosis"],
["Diagnosis", "8 AM serum cortisol; ACTH stimulation test (cosyntropin); ↑ plasma ACTH; anti-21-hydroxylase antibodies"],
["Addisonian crisis", "Precipitated by illness/surgery/trauma; severe hypotension, shock, fever, vomiting; treat with IV hydrocortisone + saline + dextrose IMMEDIATELY"],
["Treatment", "Hydrocortisone (glucocorticoid replacement) + fludrocortisone (mineralocorticoid replacement); double dose during illness ('sick day rules')"],
]
story.append(make_table(add_data, col_widths=[4.5*cm, 12*cm], header_bg=RED, font_size=9))
story.append(sp(6))
story.append(Paragraph("6.4 Congenital Adrenal Hyperplasia (CAH)", h1))
story.append(Paragraph(
"<b>Most common cause (>90%):</b> 21-hydroxylase (CYP21A2) deficiency. "
"Without this enzyme, the pathway to cortisol and aldosterone is blocked; "
"precursors (17-hydroxyprogesterone) are shunted into the androgen synthesis pathway. "
"Low cortisol causes chronic ACTH elevation → bilateral adrenal hyperplasia.",
body))
cah_data = [
["Form", "Enzyme", "Aldosterone", "Cortisol", "Androgens", "Clinical Presentation"],
["Salt-wasting CAH\n(most severe)", "21-hydroxylase\n(CYP21A2)", "↓↓", "↓↓", "↑↑", "Neonatal crisis: vomiting, dehydration, shock, hyperkalaemia, hyponatraemia. Ambiguous genitalia (46XX females)."],
["Simple virilising CAH", "21-hydroxylase\n(CYP21A2)", "Normal/low", "↓", "↑↑", "Virilisation in females; precocious puberty in males. No salt-wasting crisis."],
["11β-Hydroxylase\ndeficiency", "CYP11B1", "Low\n(but 11-DOC↑)", "↓", "↑", "Virilisation + HYPERTENSION (↑ deoxycorticosterone has mineralocorticoid activity)."],
["17α-Hydroxylase\ndeficiency", "CYP17A1", "↑", "↓", "↓↓", "Hypertension, hypokalaemia; sexual infantilism (↓ sex steroids); primary amenorrhoea in females."],
]
story.append(make_table(cah_data, col_widths=[2.8*cm, 2.8*cm, 2*cm, 2*cm, 2*cm, 6.9*cm],
header_bg=RED, font_size=8.5))
story.append(sp(6))
story.append(PageBreak())
story.append(Paragraph("6.5 Phaeochromocytoma", h1))
story.append(InfoBox([
Paragraph('<b>Rule of 10s for Phaeochromocytoma</b>', key_point),
bul("10% bilateral"),
bul("10% malignant"),
bul("10% extraadrenal (paraganglioma — most commonly organ of Zuckerkandl near aortic bifurcation)"),
bul("10% paediatric"),
bul("10% familial (MEN 2A, MEN 2B, von Hippel-Lindau, NF-1, SDH mutations)"),
], bg=ORANGE_LT, border=ORANGE))
story.append(sp(4))
pheo_data = [
["Feature", "Details"],
["Symptoms", "Classic triad: episodic headache + palpitations + diaphoresis. Paroxysmal or sustained hypertension, pallor, anxiety, tremor"],
["Biochemical\ndiagnosis", "Plasma/urine metanephrines (most sensitive + specific). Urine VMA and catecholamines. 24-hour urine collection."],
["Imaging", "CT/MRI abdomen (adrenals + paraganglia). ¹²³I-MIBG scan for localisation of metastatic/extraadrenal disease. ⁶⁸Ga-DOTATATE PET for SDH-related tumours."],
["Histology", "Chromaffin cells in Zellballen (nest/alveolar) pattern with sustentacular cells at periphery (S-100+). Pleomorphism does not = malignancy; only metastasis confirms malignancy."],
["Surgical\npreparation", "α-blocker (phenoxybenzamine 10–14 days pre-op) FIRST → then β-blocker if needed. NEVER start β-blocker first (unopposed α → hypertensive crisis). IV fluids to expand volume post-α blockade."],
["Anaesthetic risks", "Hypertensive crisis on induction/tumour manipulation; hypotension after tumour removal (volume depletion). Treat crisis with phentolamine or nitroprusside IV."],
["Treatment", "Laparoscopic adrenalectomy (gold standard). Bilateral: cortex-sparing surgery to avoid lifelong steroid replacement."],
]
story.append(make_table(pheo_data, col_widths=[4*cm, 12.5*cm], header_bg=RED, font_size=9))
story.append(sp(6))
story.append(Paragraph("6.6 Waterhouse-Friderichsen Syndrome", h1))
story.append(bul("<b>Definition:</b> Bilateral adrenal haemorrhage causing acute adrenal crisis."))
story.append(bul("<b>Classic cause:</b> Meningococcal septicaemia (<i>Neisseria meningitidis</i>). Also: Pseudomonas, pneumococcus, DIC."))
story.append(bul("<b>Pathology:</b> Massive bilateral adrenal infarction/haemorrhage → acute loss of all cortical and medullary hormones."))
story.append(bul("<b>Clinical features:</b> High fever, purpuric/petechial rash, shock, DIC, rapid deterioration."))
story.append(bul("<b>Treatment:</b> Immediate IV hydrocortisone + fluid resuscitation + antibiotics. High mortality."))
story.append(sp(5))
story.append(Paragraph("6.7 Adrenal Incidentaloma", h1))
story.append(Paragraph(
"An adrenal incidentaloma is an adrenal mass ≥1 cm discovered incidentally on imaging "
"performed for a non-adrenal indication. Prevalence increases with age (~5% of CT scans in adults >50).",
body))
story.append(bul("<b>Workup:</b> Hormonal screening (overnight 1 mg dexamethasone suppression test; "
"plasma/urine metanephrines; plasma aldosterone:renin ratio if hypertensive; DHEAS)."))
story.append(bul("<b>Radiology clues:</b> Lipid-rich adenoma: <10 HU on non-contrast CT. "
"Lipid-poor / indeterminate: >10 HU; washout characteristics used."))
story.append(bul("<b>Surgical indications:</b> Functional tumours; size >4 cm; growth on follow-up."))
story.append(sp(5))
story.append(Paragraph("6.8 Neuroblastoma", h1))
story.append(bul("<b>Definition:</b> Malignant tumour of neural crest origin arising from adrenal medulla or sympathetic chain."))
story.append(bul("<b>Epidemiology:</b> Most common extracranial solid tumour of childhood; median age 17–19 months."))
story.append(bul("<b>Biochemical markers:</b> ↑ urine VMA (vanillylmandelic acid) and HVA (homovanillic acid)."))
story.append(bul("<b>Histology:</b> Small round blue cells; Homer-Wright pseudorosettes; differentiating forms show ganglion cells."))
story.append(bul("<b>MYCN amplification:</b> Poor prognostic marker."))
story.append(bul("<b>Presentation:</b> Abdominal mass crossing midline, raccoon eyes (periorbital ecchymosis), proptosis, bone pain, Horner's syndrome."))
story.append(sp(5))
story.append(Paragraph("6.9 Critical Illness-Related Corticosteroid Insufficiency (CIRCI)", h1))
story.append(Paragraph(
"CIRCI describes disruption of the HPA axis during critical illness (sepsis, major trauma, burns, "
"pancreatitis, hepatic failure) resulting in relative glucocorticoid deficiency and exaggerated "
"systemic inflammation.",
body))
story.append(bul("Presents as vasopressor-dependent hypotension in ICU patients."))
story.append(bul("Classic Addisonian markers (hyperpigmentation, hyperkalaemia) typically absent."))
story.append(bul("Cosyntropin (ACTH) stimulation test: utility in ICU is controversial."))
story.append(bul("Current Surviving Sepsis Guidelines (2021): do NOT recommend stimulation testing to guide steroid use; "
"recommend hydrocortisone 200 mg/day IV if vasopressors not weaned within first days."))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# CHAPTER 7 – SUMMARY TABLES & QUICK REVIEW
# ══════════════════════════════════════════════════════════════════════════════
story.append(Banner("CHAPTER 7 · SUMMARY TABLES & QUICK REVIEW", bg=colors.HexColor("#475569")))
story.append(sp(6))
story.append(Paragraph("7.1 Hormones at a Glance", h1))
hor_data = [
["Hormone", "Zone/Source", "Regulator", "Receptor", "Key Actions", "Excess Syndrome", "Deficiency Syndrome"],
["Cortisol", "Zona fasciculata", "ACTH (HPA axis); diurnal", "Intracellular GR", "Gluconeogenesis; anti-inflammatory; lipolysis; protein catabolism", "Cushing's syndrome/disease", "Addison's disease; adrenal crisis"],
["Aldosterone", "Zona glomerulosa", "Angiotensin II; K⁺; minor ACTH", "Intracellular MR", "↑ Na⁺ reabsorption; ↑ K⁺ & H⁺ secretion", "Conn's syndrome (1° hyperaldosteronism)", "Addison's disease; hyperkalaemia, hyponatraemia"],
["DHEA / DHEAS", "Zona reticularis", "ACTH", "Intracellular AR (peripheral)", "Weak androgen; pubic/axillary hair; libido (female)", "CAH; adrenogenital syndrome (virilisation)", "Loss of pubic/axillary hair; ↓ libido (female)"],
["Epinephrine (~80%)", "Adrenal medulla", "Preganglionic ACh; stress", "α & β adrenoceptors", "↑ HR/CO; bronchodilation; glycogenolysis; vasodilation muscle", "Phaeochromocytoma", "Impaired stress response"],
["Norepinephrine (~20%)", "Adrenal medulla", "Preganglionic ACh; stress", "α > β adrenoceptors", "Vasoconstriction; ↑ BP (mainly diastolic); little HR effect alone", "Phaeochromocytoma", "—"],
]
story.append(make_table(hor_data, col_widths=[2.5*cm, 2.5*cm, 2.5*cm, 2.3*cm, 4*cm, 2.8*cm, 2.9*cm],
header_bg=colors.HexColor("#475569"), font_size=7.5))
story.append(sp(6))
story.append(Paragraph("7.2 Clinical Electrolyte Patterns in Adrenal Disorders", h1))
elec_data = [
["Disorder", "Na⁺", "K⁺", "HCO₃⁻ (acid-base)", "Glucose", "BP"],
["Conn's syndrome", "↑ (normal–high)", "↓↓", "↑ (alkalosis)", "Normal", "↑↑ Hypertension"],
["Addison's disease", "↓↓", "↑↑", "↓ (acidosis)", "↓ (fasting)", "↓ Hypotension"],
["Cushing's syndrome", "↑ (mild)", "↓ (mild)", "↑ (mild alkalosis)", "↑↑ Hyperglycaemia", "↑ Hypertension"],
["CAH – 21-OH def (salt-wasting)", "↓↓", "↑↑", "↓ (acidosis)", "↓", "↓ Hypotension/shock"],
["CAH – 11β-OH def", "↑", "↓", "↑ (alkalosis)", "↓", "↑↑ Hypertension"],
["Phaeochromocytoma", "Normal", "Normal", "Normal", "↑ (catecholamine)", "↑↑ Paroxysmal hypertension"],
]
story.append(make_table(elec_data, col_widths=[4*cm, 2*cm, 2*cm, 3.5*cm, 2.8*cm, 3.2*cm],
header_bg=colors.HexColor("#475569"), font_size=9))
story.append(sp(6))
story.append(Paragraph("7.3 High-Yield Mnemonics", h1))
mn_data = [
[Paragraph("<b>Mnemonic</b>", body_b), Paragraph("<b>Meaning</b>", body_b)],
["GFR (outer→inner cortex)", "Glomerulosa (salt/aldosterone) → Fasciculata (sugar/cortisol) → Reticularis (sex/androgens)"],
["Salt, Sugar, Sex", "Same as above — aldosterone, cortisol, androgens"],
["Spongiocytes", "Zona Fasciculata — foamy lipid-rich cytoplasm = cortisol factory"],
["Rule of 10s", "Phaeochromocytoma: 10% bilateral / malignant / extraadrenal / paediatric / familial"],
["α before β", "Phaeochromocytoma surgery: give α-blocker FIRST, then β-blocker"],
["ACTH-independent aldosterone", "Zona glomerulosa is NOT regulated by ACTH (regulated by Ang II + K⁺)"],
["Waterhouse-Friderichsen", "Bilateral adrenal haemorrhage → meningococcaemia → purpura + shock + adrenal crisis"],
["StAR = rate limiting", "Steroidogenic Acute Regulatory protein = rate-limiting step in steroidogenesis"],
["Cortisol diurnal peak", "Peak 8 AM, nadir midnight (like cortisol peaks before a 'morning rush')"],
["11β-HSD2 protects kidney MR", "Converts cortisol → cortisone in kidney → aldosterone can work without interference"],
["PNMT needs cortisol", "Medulla needs high cortisol (from cortical portal blood) to convert NE → Epi"],
]
story.append(make_table(mn_data, col_widths=[5.5*cm, 11*cm],
header_bg=colors.HexColor("#475569"), font_size=9))
story.append(sp(6))
story.append(Paragraph("7.4 Key Laboratory Investigations", h1))
lab_data = [
["Test", "What it Measures", "Used For"],
["8 AM serum cortisol", "Baseline cortisol at diurnal peak", "Screen for adrenal insufficiency; if <3 µg/dL = Addison's"],
["Overnight 1 mg DST (dexamethasone suppression test)", "Post-dex cortisol <1.8 µg/dL = normal suppression", "Screen for Cushing's syndrome"],
["High-dose DST (8 mg)", "Cortisol suppressed in Cushing's disease but not adrenal Cushing's", "Distinguish pituitary vs adrenal Cushing's"],
["24-h urine free cortisol", "Total daily cortisol production", "Confirm Cushing's syndrome"],
["Plasma ACTH", "Pituitary ACTH level", "↓ in primary adrenal disease; ↑ in Cushing's disease / Addison's"],
["ACTH stimulation test\n(cosyntropin/synacthen)", "Cortisol response at 30 & 60 min (normal >18 µg/dL)", "Diagnose primary/secondary adrenal insufficiency"],
["Aldosterone : Renin ratio (ARR)", "Autonomous aldosterone production", "Screen for Conn's syndrome"],
["Plasma/urine metanephrines", "Catecholamine metabolites", "Screen for phaeochromocytoma (high sensitivity)"],
["Urine VMA + HVA", "Catecholamine metabolites", "Screen for neuroblastoma in children"],
["17-hydroxyprogesterone (17-OHP)", "Precursor to cortisol (accumulates in 21-OH deficiency)", "Diagnose CAH (21-hydroxylase deficiency)"],
["24-h urine 17-ketosteroids", "Adrenal androgen metabolites", "↑ in CAH, adrenogenital syndrome, adrenal carcinoma"],
]
story.append(make_table(lab_data, col_widths=[5*cm, 5.5*cm, 6*cm],
header_bg=colors.HexColor("#475569"), font_size=8.5))
story.append(sp(8))
# Footer references
story.append(hr(color=GRAY_MID))
story.append(Paragraph(
"<b>Sources:</b> Costanzo Physiology 7e | Medical Physiology – Barrett | Langman's Medical Embryology | "
"Histology: A Text and Atlas – Ross & Pawlina | Schwartz's Principles of Surgery 11e | "
"Fischer's Mastery of Surgery 8e | Sabiston Textbook of Surgery | Morgan & Mikhail's Clinical Anaesthesiology 7e",
small_it))
# ── BUILD ─────────────────────────────────────────────────────────────────────
def add_page_number(canvas, doc):
canvas.saveState()
canvas.setFont("Helvetica", 8)
canvas.setFillColor(colors.HexColor("#9ca3af"))
page_num = canvas.getPageNumber()
canvas.drawRightString(A4[0] - 2*cm, 1.2*cm, f"Page {page_num}")
canvas.drawString(2*cm, 1.2*cm, "Adrenal Gland — Complete Medical Reference | Orris")
canvas.restoreState()
doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number)
print("PDF created successfully!")
cd /tmp/workspace/adrenal-gland && python generate_pdf.py 2>&1
ls -lh /tmp/workspace/adrenal-gland/Adrenal_Gland_Complete.pdf
Adrenal Gland Complete
PDF Document · PDF
| Chapter | Content |
|---|---|
| 1 - Gross Anatomy | Location, side-by-side relations table, triple arterial supply table, venous drainage (including surgical note on right adrenal vein), lymphatics, nerve supply |
| 2 - Embryology | Dual origin table (mesoderm vs neuroectoderm), fetal cortex, DHEA-placenta axis, postnatal involution, chromaffin cell differentiation + CAH clinical box |
| 3 - Histology | All three cortical zones in a detailed comparison table (cell arrangement, cytoplasm, enzyme, secretion, regulator), spongiocytes, chromaffin cells, sustentacular cells, chromaffin reaction, mnemonic box |
| 4 - Adrenal Cortex Physiology | Steroidogenesis, StAR protein, HPA axis step-by-step, diurnal rhythm, cortisol transport, full actions table (11 systems), aldosterone RAAS cascade table, 11β-HSD2 protection box, adrenal androgens |
| 5 - Adrenal Medulla Physiology | Catecholamine synthesis 4-step table, PNMT + cortisol dependency, receptor table (α1/α2/β1/β2/β3), fight-or-flight response table, VMA/metanephrine metabolism |
| 6 - Applied Anatomy & Clinical | Cushing's vs Cushing's disease comparison, Conn's syndrome, Addison's disease full table, CAH enzyme variants table (4 types), Phaeochromocytoma Rule of 10s + perioperative management, Waterhouse-Friderichsen, adrenal incidentaloma, neuroblastoma, CIRCI |
| 7 - Summary & Quick Review | All hormones at a glance, electrolyte pattern table for all disorders, mnemonics table (11 mnemonics), key lab investigations table (11 tests) |