Except lab coverage I have all these topics for my exam can you gimme notes pls
mkdir -p /home/daytona/workspace/anatomy-notes && ls /home/daytona/workspace/ana…
~/anatomy-notes/generate_notes.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, PageBreak, HRFlowable,
Table, TableStyle, ListFlowable, ListItem
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
OUTPUT = "/home/daytona/workspace/anatomy-notes/Anatomy_Exam_Notes.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.5*cm, bottomMargin=2*cm,
title="Anatomy Exam Notes",
author="Orris AI"
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle('TitleStyle', parent=styles['Title'],
fontSize=24, spaceAfter=6, textColor=colors.HexColor('#1a237e'),
alignment=TA_CENTER)
subtitle_style = ParagraphStyle('SubtitleStyle', parent=styles['Normal'],
fontSize=12, spaceAfter=20, textColor=colors.HexColor('#455a64'),
alignment=TA_CENTER)
exam_header_style = ParagraphStyle('ExamHeader', parent=styles['Heading1'],
fontSize=18, spaceBefore=20, spaceAfter=8,
textColor=colors.white,
backColor=colors.HexColor('#1a237e'),
borderPad=8, leading=24)
h1 = ParagraphStyle('H1', parent=styles['Heading1'],
fontSize=14, spaceBefore=16, spaceAfter=6,
textColor=colors.HexColor('#1565c0'),
borderPad=4)
h2 = ParagraphStyle('H2', parent=styles['Heading2'],
fontSize=12, spaceBefore=10, spaceAfter=4,
textColor=colors.HexColor('#0d47a1'))
h3 = ParagraphStyle('H3', parent=styles['Heading3'],
fontSize=11, spaceBefore=8, spaceAfter=3,
textColor=colors.HexColor('#283593'))
body = ParagraphStyle('Body', parent=styles['Normal'],
fontSize=10, spaceAfter=4, leading=15,
alignment=TA_JUSTIFY)
bullet = ParagraphStyle('Bullet', parent=styles['Normal'],
fontSize=10, spaceAfter=3, leading=14,
leftIndent=15, bulletIndent=0)
note_style = ParagraphStyle('Note', parent=styles['Normal'],
fontSize=9, spaceAfter=4, leading=13,
textColor=colors.HexColor('#37474f'),
backColor=colors.HexColor('#e3f2fd'),
borderPad=5, borderColor=colors.HexColor('#1565c0'),
borderWidth=1)
def section_bar(title):
data = [[Paragraph(title, ParagraphStyle('SBar', parent=styles['Normal'],
fontSize=13, textColor=colors.white, fontName='Helvetica-Bold'))]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#1565c0')),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 10),
]))
return t
def subsection_bar(title):
data = [[Paragraph(title, ParagraphStyle('SubBar', parent=styles['Normal'],
fontSize=11, textColor=colors.white, fontName='Helvetica-Bold'))]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#42a5f5')),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 8),
]))
return t
def make_table(headers, rows):
data = [headers] + rows
col_w = [17*cm / len(headers)] * len(headers)
t = Table(data, colWidths=col_w)
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,-1), 9),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#e3f2fd'), colors.white]),
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#90caf9')),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 6),
('VALIGN', (0,0), (-1,-1), 'TOP'),
]))
return t
def bp(txt):
return Paragraph(f"• {txt}", bullet)
def p(txt):
return Paragraph(txt, body)
def sp(n=6):
return Spacer(1, n)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#90caf9'), spaceAfter=4, spaceBefore=4)
# ─────────────────────────────────────────────
# CONTENT
# ─────────────────────────────────────────────
story = []
# ── Cover Page ──
story.append(Spacer(1, 3*cm))
story.append(Paragraph("ANATOMY EXAM NOTES", title_style))
story.append(Paragraph("Lecture Coverage — Mid-Term & Final Exam", subtitle_style))
story.append(Spacer(1, 0.5*cm))
# Exam info table
info = [
[Paragraph("<b>Mid-Term Exam</b>", body), Paragraph("26 March 2026 @ 3:00 PM", body)],
[Paragraph("<b>Final Exam</b>", body), Paragraph("02 July 2026 @ 1:00 PM", body)],
[Paragraph("<b>Excludes</b>", body), Paragraph("All Laboratory Coverage", body)],
]
t = Table(info, colWidths=[6*cm, 11*cm])
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#e3f2fd')),
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#90caf9')),
('TOPPADDING', (0,0), (-1,-1), 6),
('BOTTOMPADDING', (0,0), (-1,-1), 6),
('LEFTPADDING', (0,0), (-1,-1), 8),
]))
story.append(t)
story.append(Spacer(1, 1*cm))
story.append(p("<i>Reference: Snell's Clinical Anatomy, Gray's Anatomy for Students, Netter's Atlas</i>"))
story.append(PageBreak())
# ═══════════════════════════════════════════════════════════
# PART 1 — MID-TERM EXAM
# ═══════════════════════════════════════════════════════════
story.append(Paragraph("PART 1: MID-TERM EXAM COVERAGE", exam_header_style))
story.append(sp(10))
# ── CH01: Basic Anatomy 01 & 02 ──
story.append(section_bar("CHAPTER 01: Basic Anatomy (01 & 02)"))
story.append(sp(8))
story.append(Paragraph("1.1 Anatomical Terminology & Planes", h2))
story.append(p("Anatomy is the study of the structure of the body and relationships between body parts."))
rows = [
["Anatomical Position", "Standing erect, face forward, arms at sides, palms facing forward"],
["Sagittal Plane", "Divides body into left and right halves (midsagittal = equal halves)"],
["Coronal (Frontal) Plane", "Divides body into anterior and posterior parts"],
["Transverse (Axial) Plane", "Horizontal cut — divides into superior and inferior parts"],
["Oblique Plane", "Any cut at an angle to the main planes"],
]
story.append(make_table(["Term", "Definition"], rows))
story.append(sp(6))
story.append(Paragraph("1.2 Directional Terms", h2))
rows2 = [
["Superior / Inferior", "Above / below"],
["Anterior / Posterior", "Front / back"],
["Medial / Lateral", "Toward midline / away from midline"],
["Proximal / Distal", "Closer to / farther from origin of limb"],
["Superficial / Deep", "Toward / away from surface"],
["Ipsilateral / Contralateral", "Same side / opposite side"],
]
story.append(make_table(["Term", "Meaning"], rows2))
story.append(sp(6))
story.append(Paragraph("1.3 Body Cavities", h2))
story.append(bp("<b>Dorsal cavity:</b> Cranial cavity (brain) + Vertebral canal (spinal cord)"))
story.append(bp("<b>Ventral cavity:</b> Thoracic + Abdominopelvic"))
story.append(bp("<b>Thoracic cavity:</b> Right pleural, left pleural, mediastinum (pericardial)"))
story.append(bp("<b>Abdominopelvic:</b> Abdominal (9 regions or 4 quadrants) + Pelvic cavity"))
story.append(sp(6))
story.append(Paragraph("1.4 Tissue Types", h2))
rows3 = [
["Epithelial", "Covers body surfaces, lines cavities, forms glands"],
["Connective", "Supports, connects, stores fat, produces blood cells"],
["Muscle", "Skeletal (voluntary), cardiac (involuntary), smooth (visceral)"],
["Nervous", "Neurons + neuroglia; transmits electrochemical signals"],
]
story.append(make_table(["Type", "Function"], rows3))
story.append(sp(6))
story.append(Paragraph("1.5 Organ Systems Overview", h2))
story.append(bp("Integumentary, Skeletal, Muscular, Nervous, Endocrine"))
story.append(bp("Cardiovascular, Lymphatic, Respiratory, Digestive"))
story.append(bp("Urinary, Reproductive"))
story.append(sp(6))
story.append(Paragraph("1.6 Joints (Articulations)", h2))
rows4 = [
["Fibrous", "Sutures (skull), syndesmoses, gomphoses — no movement"],
["Cartilaginous", "Synchondroses (primary), symphyses (secondary) — slight movement"],
["Synovial", "Most common; fluid-filled joint cavity — free movement"],
]
story.append(make_table(["Type", "Examples & Movement"], rows4))
story.append(sp(6))
story.append(Paragraph("1.7 Synovial Joint Types", h2))
rows5 = [
["Hinge", "Elbow, knee, ankle — flexion/extension only"],
["Pivot", "Atlantoaxial, proximal radioulnar — rotation"],
["Ball & Socket", "Hip, shoulder — multiaxial movement"],
["Condyloid (Ellipsoid)", "Wrist — flexion, extension, abduction, adduction"],
["Saddle", "1st carpometacarpal — biaxial"],
["Plane (Gliding)", "Intercarpal, facet joints — gliding"],
]
story.append(make_table(["Type", "Example & Movement"], rows5))
story.append(sp(8))
# ── CH02: Embryology ──
story.append(section_bar("CHAPTER 02: Embryology (Total Chapter)"))
story.append(sp(8))
story.append(Paragraph("2.1 Fertilization & Early Development", h2))
story.append(bp("Fertilization: sperm + secondary oocyte → zygote (Day 0) in ampulla of uterine tube"))
story.append(bp("Cleavage: rapid mitotic divisions → morula (~16 cells, Day 3)"))
story.append(bp("Blastocyst formation (Day 4-5): inner cell mass (embryoblast) + trophoblast + blastocoel"))
story.append(bp("Implantation: Day 6-7 in posterior wall of uterine body (endometrium secretory phase)"))
story.append(sp(4))
story.append(Paragraph("2.2 Second Week — Bilaminar Disc", h2))
story.append(bp("Epiblast (dorsal) + Hypoblast (ventral) = Bilaminar disc"))
story.append(bp("Trophoblast → Cytotrophoblast + Syncytiotrophoblast"))
story.append(bp("Lacunae form in syncytiotrophoblast → maternal blood fills → uteroplacental circulation begins"))
story.append(bp("Primary yolk sac → secondary yolk sac; amniotic cavity forms"))
story.append(sp(4))
story.append(Paragraph("2.3 Third Week — Gastrulation (Trilaminar Disc)", h2))
story.append(bp("Primitive streak appears on Day 15 in epiblast"))
story.append(bp("Epiblast cells migrate through primitive streak → Mesoderm and Endoderm"))
story.append(bp("Remaining epiblast cells = Ectoderm"))
story.append(bp("Three germ layers: Ectoderm, Mesoderm, Endoderm"))
story.append(bp("Notochord forms from epiblast cells through Hensen's node"))
story.append(sp(4))
story.append(Paragraph("2.4 Germ Layer Derivatives", h2))
rows6 = [
["Ectoderm", "Skin epidermis, CNS, PNS, sensory organs, neural crest cells, lens, enamel"],
["Mesoderm", "Muscles, skeleton, connective tissue, cardiovascular system, urogenital system, spleen"],
["Endoderm", "GI tract lining, respiratory tract lining, liver, pancreas, thyroid, bladder lining"],
["Neural Crest (from ectoderm)", "Craniofacial bones, melanocytes, peripheral ganglia, Schwann cells, adrenal medulla"],
]
story.append(make_table(["Germ Layer", "Derivatives"], rows6))
story.append(sp(4))
story.append(Paragraph("2.5 Neurulation (Weeks 3-4)", h2))
story.append(bp("Notochord induces overlying ectoderm → Neural plate"))
story.append(bp("Neural plate folds → Neural folds → Neural tube (closes Day 22-28)"))
story.append(bp("Cranial neuropore closes Day 25; Caudal neuropore closes Day 27"))
story.append(bp("Failure of closure → Neural tube defects: anencephaly (cranial) / spina bifida (caudal)"))
story.append(sp(4))
story.append(Paragraph("2.6 Somite Formation & Derivatives", h2))
story.append(bp("Paraxial mesoderm segments → Somites (42-44 pairs; appear Day 20)"))
story.append(bp("Each somite → Dermatome (dermis) + Myotome (muscles) + Sclerotome (vertebrae, ribs)"))
story.append(sp(4))
story.append(Paragraph("2.7 Pharyngeal (Branchial) Arches", h2))
rows7 = [
["1st (Mandibular)", "CN V2+V3", "Mandible, maxilla, malleus, incus, muscles of mastication, tensor tympani"],
["2nd (Hyoid)", "CN VII", "Stapes, styloid, lesser cornu of hyoid, stapedius, facial muscles"],
["3rd", "CN IX", "Greater cornu of hyoid, stylopharyngeus"],
["4th", "CN X (sup. laryngeal)", "Thyroid cartilage, cricothyroid, pharyngeal constrictors"],
["6th", "CN X (recurrent laryngeal)", "Arytenoid, cricoid, intrinsic laryngeal muscles (except cricothyroid)"],
]
story.append(make_table(["Arch", "Nerve", "Derivatives"], rows7))
story.append(sp(4))
story.append(Paragraph("2.8 Pharyngeal Pouches & Clefts", h2))
rows8 = [
["1st pouch", "Middle ear cavity, Eustachian tube, mastoid air cells"],
["2nd pouch", "Palatine tonsil crypts"],
["3rd pouch (dorsal)", "Inferior parathyroid glands (PTH)"],
["3rd pouch (ventral)", "Thymus"],
["4th pouch (dorsal)", "Superior parathyroid glands"],
["4th/5th pouch", "Parafollicular C cells of thyroid (calcitonin)"],
]
story.append(make_table(["Pouch", "Derivative"], rows8))
story.append(sp(4))
story.append(Paragraph("2.9 Heart Development", h2))
story.append(bp("Cardiogenic mesoderm → paired heart tubes → single heart tube (Day 22)"))
story.append(bp("Heart looping (Day 23): D-loop (rightward) — normal; L-loop = situs inversus"))
story.append(bp("5 dilations: Truncus arteriosus, Bulbus cordis, Primitive ventricle, Primitive atrium, Sinus venosus"))
story.append(bp("Septation: Septum primum + Septum secundum → foramen ovale (fetal shunt)"))
story.append(bp("Atrial septal defect (ASD): most common = ostium secundum defect"))
story.append(bp("Ventricular septal defect (VSD): most common CHD overall (membranous type)"))
story.append(sp(4))
story.append(Paragraph("2.10 Fetal Circulation Shunts", h2))
rows9 = [
["Foramen ovale", "RA → LA bypass", "Closes at birth → Fossa ovalis"],
["Ductus arteriosus", "Pulmonary trunk → Aorta bypass", "Closes → Ligamentum arteriosum"],
["Ductus venosus", "Umbilical vein → IVC bypass (bypasses liver)", "Closes → Ligamentum venosum"],
["Umbilical arteries", "Carry deoxygenated blood to placenta", "Closes → Medial umbilical ligaments"],
["Umbilical vein", "Carries oxygenated blood from placenta", "Closes → Ligamentum teres hepatis"],
]
story.append(make_table(["Structure", "Function", "Post-natal Fate"], rows9))
story.append(sp(8))
# ── CH03: Back & Spine ──
story.append(section_bar("CHAPTER 03: Back and Spine (Snell's PG 44-85)"))
story.append(sp(8))
story.append(Paragraph("3.1 Vertebral Column Overview", h2))
story.append(bp("33 vertebrae: 7 Cervical (C1-C7), 12 Thoracic (T1-T12), 5 Lumbar (L1-L5), 5 Sacral (fused), 4 Coccygeal (fused)"))
story.append(bp("Primary curvatures (kyphoses): Thoracic & Sacral (present at birth)"))
story.append(bp("Secondary curvatures (lordoses): Cervical (develops when holding head up ~3 mo) & Lumbar (develops with walking ~1 yr)"))
story.append(sp(4))
story.append(Paragraph("3.2 Typical Vertebra Components", h2))
rows10 = [
["Body", "Anterior weight-bearing cylindrical portion"],
["Vertebral arch", "Pedicles + Laminae — encloses vertebral foramen"],
["Vertebral foramen", "Together form vertebral canal containing spinal cord"],
["Spinous process", "Posterior projection — palpable landmark; muscle attachment"],
["Transverse processes", "Lateral projections — muscle/ligament attachment"],
["Superior/inferior articular processes", "Facet joints between adjacent vertebrae"],
["Intervertebral foramen", "Between pedicles of adjacent vertebrae — spinal nerve exit"],
]
story.append(make_table(["Component", "Description"], rows10))
story.append(sp(4))
story.append(Paragraph("3.3 Regional Vertebral Characteristics", h2))
rows11 = [
["C1 (Atlas)", "No body, no spinous process; ring-shaped; supports skull; atlanto-occipital = nodding"],
["C2 (Axis)", "Dens (odontoid process); atlanto-axial = rotation (shaking head)"],
["C3-C6 Typical cervical", "Bifid spinous process, triangular foramen, transverse foramina (vertebral artery C1-C6)"],
["C7 (Vertebra prominens)", "Long non-bifid spinous process — palpable landmark"],
["Thoracic", "Costal facets (articulate with ribs), circular foramen, heart-shaped body"],
["Lumbar", "Largest bodies, no transverse foramina or costal facets, kidney-shaped body, short broad spinous process"],
["Sacrum", "5 fused; sacral promontory, sacral hiatus, 4 sacral foramina each side"],
]
story.append(make_table(["Vertebra", "Key Features"], rows11))
story.append(sp(4))
story.append(Paragraph("3.4 Ligaments of the Vertebral Column", h2))
rows12 = [
["Anterior Longitudinal Ligament (ALL)", "Anterior surface of bodies — prevents hyperextension"],
["Posterior Longitudinal Ligament (PLL)", "Posterior surface of bodies (inside canal) — prevents hyperflexion"],
["Ligamentum Flavum", "Between laminae — elastic, maintains upright posture; site of epidural access"],
["Interspinous ligaments", "Between spinous processes"],
["Supraspinous ligament", "Connects tips of spinous processes (C7 to sacrum)"],
["Ligamentum Nuchae", "Continuation of supraspinous above C7 to external occipital protuberance"],
["Intertransverse ligaments", "Between transverse processes"],
]
story.append(make_table(["Ligament", "Location & Function"], rows12))
story.append(sp(4))
story.append(Paragraph("3.5 Intervertebral Disc (IVD)", h2))
story.append(bp("<b>Nucleus pulposus:</b> Inner gelatinous core (remnant of notochord) — absorbs compression"))
story.append(bp("<b>Annulus fibrosus:</b> Outer concentric fibrocartilaginous rings — contains nucleus"))
story.append(bp("<b>Disc herniation (slipped disc):</b> Nucleus pulposus ruptures through annulus, usually posterolateral"))
story.append(bp("Most common levels: L4-L5 and L5-S1"))
story.append(bp("Compresses the nerve root ONE LEVEL BELOW the disc level (e.g., L4-L5 disc → L5 root)"))
story.append(sp(4))
story.append(Paragraph("3.6 Back Muscles", h2))
rows13 = [
["Superficial (Extrinsic)", "Trapezius, Latissimus Dorsi, Levator Scapulae, Rhomboids — act on upper limb"],
["Intermediate (Extrinsic)", "Serratus Posterior Superior & Inferior — respiratory"],
["Deep (Intrinsic) — Superficial", "Splenius Capitis & Cervicis — extend and rotate head"],
["Deep (Intrinsic) — Intermediate", "Erector Spinae (Iliocostalis, Longissimus, Spinalis) — extend vertebral column"],
["Deep (Intrinsic) — Deep", "Transversospinalis group (Semispinalis, Multifidus, Rotatores) — fine posture control"],
["Deepest layer", "Interspinales, Intertransversarii, Levatores costarum"],
]
story.append(make_table(["Layer", "Muscles & Function"], rows13))
story.append(sp(4))
story.append(Paragraph("3.7 Spinal Cord & Meninges", h2))
story.append(bp("Spinal cord extends from foramen magnum → L1/L2 in adults (conus medullaris)"))
story.append(bp("Below L2: Cauda equina (roots of L2-Co)"))
story.append(bp("Filum terminale: fibrous extension from conus → coccyx"))
story.append(bp("Three meninges: Dura mater (outer) → Arachnoid mater → Pia mater (inner, adherent to cord)"))
story.append(bp("Epidural space: between dura and vertebral canal walls (fat + veins) — site of epidural injection"))
story.append(bp("Subarachnoid space: between arachnoid and pia — contains CSF"))
story.append(bp("Lumbar puncture: L3-L4 or L4-L5 interspace (below conus medullaris)"))
story.append(sp(4))
story.append(Paragraph("3.8 Spinal Nerve Formation", h2))
story.append(bp("Each spinal nerve = Dorsal root (sensory/afferent) + Ventral root (motor/efferent)"))
story.append(bp("Dorsal root ganglion (DRG): cell bodies of sensory neurons"))
story.append(bp("31 pairs: 8 Cervical, 12 Thoracic, 5 Lumbar, 5 Sacral, 1 Coccygeal"))
story.append(bp("C1-C7 exit ABOVE their respective vertebrae; C8 exits below C7; T1-Co exit below their vertebrae"))
story.append(sp(8))
# ── CH04: Basic Concepts of Imaging ──
story.append(section_bar("CHAPTER 04: Basic Concepts of Imaging"))
story.append(sp(8))
story.append(Paragraph("4.1 Types of Medical Imaging", h2))
rows14 = [
["Plain X-ray (Radiograph)", "X-ray beams; different tissues absorb differently", "Bone (white/opaque), air (black), soft tissue (grey)"],
["Computed Tomography (CT)", "Rotating X-ray source + detectors → cross-sectional slices", "Bone, hemorrhage, calcification — excellent"],
["Magnetic Resonance Imaging (MRI)", "Radio waves + magnetic field; no radiation", "Soft tissue superior; T1 (fat bright), T2 (water bright)"],
["Ultrasound (US)", "High-frequency sound waves (2-20 MHz)", "Real-time; safe (no radiation); fluid (anechoic/black), bone (hyperechoic)"],
["Nuclear Medicine (PET/SPECT)", "Radioactive tracers → detect metabolic activity", "Functional imaging; PET uses FDG (glucose analog)"],
["Fluoroscopy", "Real-time continuous X-ray", "Dynamic studies (swallowing, cardiac cath)"],
]
story.append(make_table(["Modality", "Principle", "Key Uses"], rows14))
story.append(sp(4))
story.append(Paragraph("4.2 Radiodensity Scale (X-ray)", h2))
story.append(p("From most radiopaque (white) to most radiolucent (black):"))
story.append(bp("<b>Metal/Contrast</b> → <b>Bone</b> → <b>Soft Tissue/Water</b> → <b>Fat</b> → <b>Air/Gas</b>"))
story.append(sp(4))
story.append(Paragraph("4.3 CT Hounsfield Units (HU)", h2))
rows15 = [
["Water", "0 HU"],
["Air", "-1000 HU"],
["Fat", "-100 to -50 HU"],
["Soft tissue", "+20 to +80 HU"],
["Bone (cortical)", "+400 to +1000 HU"],
["Acute blood/hemorrhage", "+50 to +80 HU"],
]
story.append(make_table(["Tissue", "HU Value"], rows15))
story.append(sp(4))
story.append(Paragraph("4.4 MRI Signal Characteristics", h2))
rows16 = [
["Fat", "Bright (white)", "Intermediate"],
["Water/CSF/Edema", "Dark (black)", "Bright (white)"],
["Muscle", "Intermediate", "Intermediate"],
["Cortical bone/Air", "Dark (black)", "Dark (black)"],
["Cartilage (hyaline)", "Dark-intermediate", "Bright"],
]
story.append(make_table(["Tissue", "T1 Signal", "T2 Signal"], rows16))
story.append(sp(4))
story.append(Paragraph("4.5 Imaging Planes Used", h2))
story.append(bp("<b>Axial/Transverse:</b> Most common CT/MRI plane — viewed from below looking up"))
story.append(bp("<b>Coronal:</b> Front-to-back division — good for sinuses, abdomen"))
story.append(bp("<b>Sagittal:</b> Left-right division — good for spine, brain"))
story.append(bp("<b>MPR (Multiplanar Reconstruction):</b> CT/MRI reformatted in any plane"))
story.append(sp(8))
# ── Imaging Lecture Coverages ──
story.append(section_bar("LECTURE COVERAGE: Imaging Topics (Mid-Term)"))
story.append(sp(8))
story.append(Paragraph("Imaging: Back and Spine", h2))
story.append(bp("Plain X-rays: AP + lateral views; assess vertebral alignment, disc spaces, fractures"))
story.append(bp("CT spine: Best for fractures (bony detail), HU values identify bone vs soft tissue"))
story.append(bp("MRI spine: Gold standard for disc herniation, cord compression, tumor, infection"))
story.append(bp("T2 MRI: Disc herniation appears as posterior protrusion compressing bright CSF"))
story.append(bp("Spondylolisthesis: Forward slip of one vertebra on another (L4 on L5 most common)"))
story.append(bp("Spinal stenosis: Narrowing of vertebral canal — seen on MRI as hourglass compression of cord"))
story.append(sp(6))
story.append(Paragraph("Imaging: Thoracic Wall & Breast", h2))
story.append(bp("Rib numbering on CXR: count from top; anterior ribs more horizontal than posterior"))
story.append(bp("Rib fractures: Look for step deformity; risk of pneumothorax if multiple"))
story.append(bp("Mammography: Low-dose X-ray for breast; two views (CC + MLO); standard screening"))
story.append(bp("Ultrasound breast: Distinguishes cystic (anechoic) from solid masses"))
story.append(bp("MRI breast: Best for occult lesion, implant evaluation, dense breast"))
story.append(sp(6))
story.append(Paragraph("Imaging: Pleural Cavities & Lungs", h2))
story.append(bp("CXR: Standard PA (posteroanterior) view; AP used when patient cannot stand"))
story.append(bp("Pneumothorax: Loss of lung markings; tracheal deviation AWAY from tension pneumothorax"))
story.append(bp("Pleural effusion: Blunting of costophrenic angle; >200 mL to see on CXR; meniscus sign"))
story.append(bp("CT chest: Better sensitivity for small pneumothorax, effusion, pulmonary emboli (CTPA)"))
story.append(bp("V/Q scan: Ventilation-Perfusion scan for PE when contrast contraindicated"))
story.append(sp(6))
story.append(Paragraph("Imaging: Heart & Pericardium", h2))
story.append(bp("CXR cardiac silhouette: Right border = SVC + RA; Left border = Aortic knuckle + PA + LAA + LV"))
story.append(bp("Cardiothoracic ratio (CTR): <0.5 normal; >0.5 cardiomegaly"))
story.append(bp("Boot-shaped heart (coeur en sabot): Tetralogy of Fallot"))
story.append(bp("Water-bottle heart: Pericardial effusion"))
story.append(bp("Echocardiography (Echo): Best non-invasive cardiac imaging; TTE vs TEE"))
story.append(bp("CT coronary angiography (CTA): Assess coronary artery stenosis"))
story.append(bp("MRI heart (Cardiac MRI): Gold standard for myocardial viability, cardiomyopathy"))
story.append(sp(6))
story.append(Paragraph("Imaging: Other Mediastinal Structures", h2))
story.append(bp("Mediastinum divided: Superior (above T4/Louis angle) and Inferior (Anterior, Middle, Posterior)"))
story.append(bp("Anterior mediastinal masses — 4 T's: Thymoma, Teratoma, Terrible lymphoma, Thyroid"))
story.append(bp("Middle mediastinum: Heart, pericardium, trachea, main bronchi, lymph nodes"))
story.append(bp("Posterior mediastinum: Esophagus, descending aorta, azygos vein, thoracic duct, sympathetic trunks"))
story.append(bp("CT mediastinum: Best for masses, lymphadenopathy, aortic aneurysm"))
story.append(sp(6))
story.append(Paragraph("Imaging: Breast & Cardiothoracic (Dr. Tupas)", h2))
story.append(bp("BIRADS classification (mammography): 0=incomplete, 1=negative, 2=benign, 3=probably benign (6mo follow-up), 4=suspicious biopsy, 5=highly suspicious, 6=known malignancy"))
story.append(bp("Cardiothoracic imaging includes CXR, CT, MRI, Echo, Nuclear stress test"))
story.append(bp("Hilar enlargement on CXR: Lymphadenopathy (sarcoidosis, lymphoma) vs vascular enlargement (PAH)"))
story.append(sp(8))
# ── Cranial Nerves ──
story.append(section_bar("LECTURE 07: Cranial Nerves, Nerves of Head & Neck, ANS of Neck"))
story.append(sp(8))
story.append(Paragraph("Cranial Nerves Overview", h2))
rows17 = [
["I", "Olfactory", "S", "Smell"],
["II", "Optic", "S", "Vision"],
["III", "Oculomotor", "M (+ parasympathetic)", "Most EOM (SR, IR, MR, IO), levator palpebrae; pupil constriction, lens accommodation"],
["IV", "Trochlear", "M", "Superior Oblique — intorsion, depression in adduction"],
["V", "Trigeminal", "S + M", "Face sensation (V1 ophthalmic, V2 maxillary, V3 mandibular); mastication muscles"],
["VI", "Abducens", "M", "Lateral Rectus — abduction of eye"],
["VII", "Facial", "S + M + parasympathetic", "Facial expression; taste (anterior 2/3 tongue); lacrimal, submandibular, sublingual glands"],
["VIII", "Vestibulocochlear", "S", "Hearing (cochlear) + Balance (vestibular)"],
["IX", "Glossopharyngeal", "S + M + parasympathetic", "Taste/sensation (posterior 1/3 tongue); stylopharyngeus; parotid gland (via otic ganglion)"],
["X", "Vagus", "S + M + parasympathetic", "Larynx, pharynx, viscera to splenic flexure; longest CN"],
["XI", "Accessory", "M", "Sternocleidomastoid (SCM), Trapezius"],
["XII", "Hypoglossal", "M", "Tongue muscles (all intrinsic + extrinsic except palatoglossus)"],
]
story.append(make_table(["#", "Name", "Type", "Function"], rows17))
story.append(sp(4))
story.append(Paragraph("Mnemonic: CN Types", h2))
story.append(p("<b>Some Say Marry Money But My Brother Says Big Brains Matter More</b>"))
story.append(p("S=Sensory, M=Motor, B=Both → I(S), II(S), III(M), IV(M), V(B), VI(M), VII(B), VIII(S), IX(B), X(B), XI(M), XII(M)"))
story.append(sp(4))
story.append(Paragraph("Key Cranial Nerve Lesions", h2))
rows18 = [
["CN III palsy", "Eye down and out; ptosis; dilated fixed pupil (posterior communicating artery aneurysm)"],
["CN IV palsy", "Vertical diplopia; patient tilts head away to compensate"],
["CN VI palsy", "Eye cannot abduct; horizontal diplopia on lateral gaze"],
["Bell's palsy (CN VII)", "LMN facial nerve palsy; entire ipsilateral face weakness; cannot close eye; forehead involved"],
["UMN facial palsy", "Contralateral lower face only (forehead spared — bilateral cortical representation)"],
["CN XI palsy", "Cannot shrug shoulder (trapezius) or turn head against resistance (SCM)"],
["CN XII palsy", "Tongue deviates TOWARD lesion side on protrusion"],
]
story.append(make_table(["Nerve/Condition", "Clinical Features"], rows18))
story.append(sp(4))
story.append(Paragraph("Autonomic Nervous System of the Neck", h2))
story.append(bp("<b>Sympathetic (fight/flight):</b> Preganglionic from T1-L2 spinal cord; superior, middle, inferior cervical ganglia in neck"))
story.append(bp("<b>Cervical sympathetic chain:</b> Superior cervical ganglion (largest; C1-C4 level) supplies head/neck"))
story.append(bp("<b>Horner's syndrome:</b> Damage to cervical sympathetic → ptosis, miosis, anhidrosis, enophthalmos (SAME side)"))
story.append(bp("<b>Parasympathetic:</b> CN III, VII, IX, X carry preganglionics; ganglia near target organs"))
story.append(bp("Ciliary ganglion (CN III) → pupil constriction; Pterygopalatine (CN VII) → lacrimal, nasal, palatal glands"))
story.append(bp("Otic ganglion (CN IX) → parotid gland; Submandibular ganglion (CN VII) → submandibular + sublingual"))
story.append(sp(8))
# ── Neck Triangles & Carotid ──
story.append(section_bar("LECTURE 08: Neck Triangles & Carotid Artery and its Branches"))
story.append(sp(8))
story.append(Paragraph("Triangles of the Neck", h2))
story.append(p("The neck is divided by the sternocleidomastoid (SCM) into anterior and posterior triangles."))
story.append(sp(4))
story.append(Paragraph("Anterior Triangle", h3))
story.append(bp("Borders: Midline (medial), Mandible (superior), SCM (lateral)"))
story.append(bp("Contains: Carotid arteries, IJV, CN X (vagus), CN XI, CN XII, lymph nodes, thyroid, trachea, esophagus"))
story.append(bp("<b>Subdivisions:</b> Submental, Digastric (submandibular), Carotid, Muscular triangles"))
story.append(sp(4))
story.append(Paragraph("Posterior Triangle", h3))
story.append(bp("Borders: SCM (anterior), Trapezius (posterior), Clavicle (inferior)"))
story.append(bp("Floor: Splenius capitis, Levator scapulae, Middle/Posterior scalene"))
story.append(bp("Contains: Spinal accessory nerve (CN XI) — at risk in surgery!, Brachial plexus (trunks), Subclavian artery (3rd part), EJV, Lymph nodes"))
story.append(bp("<b>Subdivisions:</b> Occipital triangle, Supraclavicular (omoclavicular) triangle"))
story.append(sp(4))
story.append(Paragraph("Carotid Arteries", h2))
story.append(bp("<b>Common Carotid Artery (CCA):</b> Right from brachiocephalic trunk; Left directly from aortic arch"))
story.append(bp("CCA ascends within carotid sheath (with IJV laterally, CN X posteriorly between them)"))
story.append(bp("<b>Bifurcates at C4 level</b> (upper border of thyroid cartilage) → External + Internal carotid arteries"))
story.append(bp("<b>Carotid sinus:</b> Dilatation at origin of ICA — baroreceptor (pressure), innervated by CN IX"))
story.append(bp("<b>Carotid body:</b> Chemoreceptor (O2, CO2, pH) at bifurcation — innervated by CN IX + X"))
story.append(sp(4))
story.append(Paragraph("External Carotid Artery (ECA) Branches", h2))
story.append(p("Mnemonic: <b>Some Anatomists Like Finding Odd Positions Most Stimulating</b>"))
story.append(make_table(
["Branch", "Mnemonic", "Supply"],
[
["Superior thyroid", "S", "Thyroid, larynx (superior laryngeal a.)"],
["Ascending pharyngeal", "A", "Pharynx, meninges, middle ear"],
["Lingual", "L", "Tongue, floor of mouth, sublingual gland"],
["Facial", "F", "Face (angular a. anastomoses with ophthalmic a.)"],
["Occipital", "O", "Posterior scalp, meninges"],
["Posterior auricular", "P", "Ear, scalp posterior to ear"],
["Maxillary", "M", "Deep face, meninges (middle meningeal a.), teeth, nose"],
["Superficial temporal", "S", "Temple, scalp, parotid"],
]
))
story.append(sp(4))
story.append(Paragraph("Internal Carotid Artery (ICA)", h2))
story.append(bp("Has NO branches in neck"))
story.append(bp("Enters carotid canal → petrous part of temporal bone → intracranially"))
story.append(bp("4 parts: Cervical, Petrous, Cavernous, Cerebral"))
story.append(bp("Intracranial branches: Ophthalmic, Posterior communicating, Anterior choroidal, ACA, MCA"))
story.append(sp(8))
# PAGE BREAK to Final Exam section
story.append(PageBreak())
# ═══════════════════════════════════════════════════════════
# PART 2 — FINAL EXAM
# ═══════════════════════════════════════════════════════════
story.append(Paragraph("PART 2: FINAL EXAM COVERAGE (July 2026)", exam_header_style))
story.append(sp(10))
# ── Subclavian / Veins / Lymph ──
story.append(section_bar("LECTURE 01: Subclavian Artery; Veins of Head & Neck; Lymph Drainage"))
story.append(sp(8))
story.append(Paragraph("Subclavian Artery", h2))
story.append(bp("<b>Right:</b> Arises from brachiocephalic trunk (behind right sternoclavicular joint)"))
story.append(bp("<b>Left:</b> Arises directly from aortic arch"))
story.append(bp("Divided into 3 parts by Scalenus anterior muscle"))
story.append(make_table(
["Part", "Location", "Branches"],
[
["1st part", "Medial to scalenus anterior", "Vertebral a., Internal thoracic (mammary) a., Thyrocervical trunk (suprascapular, transverse cervical, inferior thyroid)"],
["2nd part", "Behind scalenus anterior", "Costocervical trunk (superior intercostal + deep cervical)"],
["3rd part", "Lateral to scalenus anterior to 1st rib", "Dorsal scapular a. (sometimes from 2nd part)"],
]
))
story.append(sp(4))
story.append(Paragraph("Vertebral Artery", h3))
story.append(bp("Branch of 1st part of subclavian"))
story.append(bp("Ascends through transverse foramina of C6-C1 → foramen magnum"))
story.append(bp("Forms basilar artery with contralateral vertebral → posterior circulation (cerebellum, brainstem, posterior cerebrum)"))
story.append(sp(6))
story.append(Paragraph("Veins of Head and Neck", h2))
story.append(Paragraph("Internal Jugular Vein (IJV)", h3))
story.append(bp("Continuation of sigmoid sinus at jugular foramen"))
story.append(bp("Descends within carotid sheath lateral to CCA and ICA"))
story.append(bp("Tributaries: Facial, lingual, pharyngeal, superior and middle thyroid veins"))
story.append(bp("Joins subclavian vein at root of neck → Brachiocephalic vein (angle of Louis)"))
story.append(sp(4))
story.append(Paragraph("External Jugular Vein (EJV)", h3))
story.append(bp("Formed by posterior auricular + retromandibular (posterior division) veins"))
story.append(bp("Crosses SCM superficially → drains into subclavian vein"))
story.append(bp("Visible when raised intrathoracic pressure; used for JVP assessment"))
story.append(sp(4))
story.append(Paragraph("Dural Venous Sinuses", h3))
story.append(bp("Superior sagittal sinus → Confluence of sinuses → Transverse sinus → Sigmoid sinus → IJV"))
story.append(bp("Cavernous sinus: Surrounds pituitary fossa; CN III, IV, VI, V1, V2 pass through its walls"))
story.append(bp("Dangerous area of face: Venous drainage (facial → ophthalmic → cavernous sinus) — thrombophlebitis risk"))
story.append(sp(6))
story.append(Paragraph("Lymphatic Drainage of Head & Neck", h2))
story.append(bp("Lymph nodes arranged in rings and chains"))
story.append(bp("<b>Pericervical (outer) ring:</b> Occipital, retroauricular, parotid, submandibular, submental, anterior cervical nodes"))
story.append(bp("<b>Deep cervical chain (inner):</b> Along IJV — jugulodigastric node (angle of jaw; drains tonsil/pharynx) + jugulo-omohyoid node (drains tongue)"))
story.append(bp("<b>Drainage patterns:</b> Scalp → occipital/parotid nodes; Face → submandibular nodes; Tongue tip → submental then deep cervical; Tonsil → jugulodigastric node"))
story.append(bp("All lymph converges → Thoracic duct (left) or Right lymphatic duct → venous angle (junction IJV + subclavian)"))
story.append(bp("<b>Virchow's node:</b> Left supraclavicular node — sentinel node for intra-abdominal malignancy (gastric Ca)"))
story.append(sp(8))
# ── Viscera of Neck ──
story.append(section_bar("LECTURE 02: Viscera of the Neck; Endocrine Glands in Head & Neck"))
story.append(sp(8))
story.append(Paragraph("Thyroid Gland", h2))
story.append(bp("Location: C5-T1 level; two lobes connected by isthmus overlying 2nd-4th tracheal rings"))
story.append(bp("Enclosed in pretracheal fascia; moves with swallowing"))
story.append(bp("Blood supply: Superior thyroid artery (ECA) + Inferior thyroid artery (thyrocervical trunk)"))
story.append(bp("Venous drainage: Superior + Middle thyroid veins → IJV; Inferior thyroid veins → brachiocephalic veins"))
story.append(bp("<b>Parathyroid glands:</b> Usually 4; Superior (4th pouch) and Inferior (3rd pouch)"))
story.append(bp("Recurrent laryngeal nerve (RLN): runs in groove between trachea and esophagus — at risk in thyroid surgery"))
story.append(bp("<b>External laryngeal nerve:</b> Travels with superior thyroid artery — risk during ligation of superior thyroid artery"))
story.append(sp(4))
story.append(Paragraph("Trachea & Esophagus", h2))
story.append(bp("Trachea: Begins at C6 (lower border cricoid cartilage); C-shaped cartilaginous rings anterolateral"))
story.append(bp("Posterior wall: Trachealis muscle (smooth); allows food bolus in esophagus behind"))
story.append(bp("Esophagus: Starts at C6 (posterior to trachea) → descends to diaphragm (T10)"))
story.append(bp("Esophageal sphincters: Upper (cricopharyngeus) and Lower (physiologic)"))
story.append(sp(4))
story.append(Paragraph("Pharynx", h2))
story.append(bp("Muscular tube from base of skull → C6; posterior to nose/mouth/larynx"))
story.append(bp("<b>3 parts:</b> Nasopharynx (above soft palate) → Oropharynx (soft palate to epiglottis) → Laryngopharynx/Hypopharynx (epiglottis to C6)"))
story.append(bp("Muscles: Constrictors (superior/middle/inferior) + longitudinal (stylopharyngeus, salpingopharyngeus, palatopharyngeus)"))
story.append(bp("Pharyngeal (Waldeyer's) ring: Adenoids + Tubal tonsils + Palatine tonsils + Lingual tonsil"))
story.append(sp(4))
story.append(Paragraph("Endocrine Glands of Head & Neck", h2))
rows_endo = [
["Thyroid", "T3 (active), T4 (storage form); TSH regulated; iodine-dependent"],
["Parathyroid (4 glands)", "PTH: increases Ca2+ (bone resorption, renal reabsorption, GI absorption via Vit D)"],
["Adrenal medulla (neural crest)", "Epinephrine (80%), norepinephrine (20%) — fight/flight"],
["Pituitary (sella turcica)", "Anterior: GH, TSH, ACTH, FSH, LH, Prolactin; Posterior: ADH, Oxytocin"],
["Pineal gland", "Melatonin — circadian rhythm; calcifies with age (useful landmark on imaging)"],
]
story.append(make_table(["Gland", "Key Hormones & Function"], rows_endo))
story.append(sp(8))
# ── Scalp & Face ──
story.append(section_bar("LECTURE 03: Scalp and Face"))
story.append(sp(8))
story.append(Paragraph("Scalp Layers (SCALP mnemonic)", h2))
story.append(make_table(
["Layer", "Details"],
[
["S — Skin", "Thick, hair-bearing; rich in sebaceous glands"],
["C — Connective tissue (dense)", "Highly vascular (arteries tightly bound); wounds bleed profusely; infections spread easily"],
["A — Aponeurosis (Galea aponeurotica)", "Tough fibrous sheet; connects frontalis and occipitalis muscles"],
["L — Loose areolar tissue", "'Dangerous layer' — infections + blood spread here; between galea and periosteum"],
["P — Pericranium (Periosteum)", "Attached to skull; cannot cross sutures"],
]
))
story.append(sp(4))
story.append(Paragraph("Scalp Blood Supply", h3))
story.append(bp("5 pairs of arteries entering from periphery (scalp bleeds heavily when cut):"))
story.append(bp("Supratrochlear + Supraorbital (from ophthalmic/ICA) — forehead"))
story.append(bp("Superficial temporal + Posterior auricular (from ECA) — temporal region"))
story.append(bp("Occipital (from ECA) — posterior scalp"))
story.append(sp(6))
story.append(Paragraph("Face — Muscles of Facial Expression", h2))
story.append(bp("All innervated by CN VII (Facial nerve)"))
story.append(bp("Muscles insert into skin (unlike most muscles that insert into bone)"))
story.append(make_table(
["Muscle", "Action"],
[
["Orbicularis oculi", "Closes eyelid (orbital/palpebral parts)"],
["Orbicularis oris", "Closes/purses lips"],
["Buccinator", "Compresses cheek — aids chewing; innervated CN VII but deep to parotid"],
["Zygomaticus major", "Smiling — draws angle of mouth up and back"],
["Frontalis", "Raises eyebrows — wrinkles forehead"],
["Platysma", "Depresses mandible, tenses neck skin"],
["Nasalis", "Compresses and dilates nostril"],
]
))
story.append(sp(6))
story.append(Paragraph("Facial Artery & Vein", h2))
story.append(bp("Facial artery: Branch of ECA; enters face at inferior border of mandible (palpable pulse)"))
story.append(bp("Tortuous course to medial angle of eye → becomes angular artery (anastomoses with ophthalmic a. from ICA)"))
story.append(bp("Facial vein: Straight (no valves); drains to IJV; communicates with cavernous sinus via ophthalmic veins"))
story.append(bp("<b>Danger triangle of face:</b> Nose to corners of mouth; infection can spread to cavernous sinus"))
story.append(sp(8))
# ── Parotid / Fossae ──
story.append(section_bar("LECTURE 04: Parotid Region; Temporal, Infratemporal & Pterygopalatine Fossae"))
story.append(sp(8))
story.append(Paragraph("Parotid Gland", h2))
story.append(bp("Largest salivary gland; lies in parotid space between ramus of mandible and SCM"))
story.append(bp("Parotid duct (Stensen's duct): Opens into oral cavity opposite upper 2nd molar"))
story.append(bp("CN VII (facial nerve) passes through parotid (but does NOT supply it) → divides into 5 terminal branches"))
story.append(bp("<b>5 branches of CN VII from parotid:</b> Temporal, Zygomatic, Buccal, Marginal mandibular, Cervical (mnemonic: <b>Two Zebras Bit My Calf</b>)"))
story.append(bp("Parotid secretion: Serous; innervated by CN IX (glossopharyngeal) via otic ganglion"))
story.append(bp("Frey's syndrome: Auriculotemporal nerve damage after parotidectomy → gustatory sweating"))
story.append(sp(6))
story.append(Paragraph("Temporal Fossa", h2))
story.append(bp("Location: Above zygomatic arch on lateral skull"))
story.append(bp("Contains: Temporalis muscle (CN V3 — deep temporal nerves), temporal vessels"))
story.append(bp("Temporalis: Elevates mandible (closes jaw) and retracts mandible"))
story.append(sp(6))
story.append(Paragraph("Infratemporal Fossa (ITF)", h2))
story.append(bp("Below temporal fossa, medial to ramus of mandible, lateral to pterygoid plates"))
story.append(bp("<b>Contains:</b> Medial and lateral pterygoid muscles, Maxillary artery and branches, Mandibular nerve (V3), Chorda tympani, Otic ganglion"))
story.append(bp("<b>Muscles of mastication (all CN V3):</b> Masseter, Temporalis, Medial pterygoid, Lateral pterygoid"))
story.append(make_table(
["Muscle", "Action"],
[
["Masseter", "Elevates mandible (closes jaw)"],
["Temporalis", "Elevates + retracts mandible"],
["Medial Pterygoid", "Elevates + protrudes + medial excursion"],
["Lateral Pterygoid", "Depresses mandible (opens jaw), protrudes, contralateral excursion (chewing)"],
]
))
story.append(sp(6))
story.append(Paragraph("Pterygopalatine Fossa (PPF)", h2))
story.append(bp("Small funnel-shaped space behind maxilla, medial to ITF"))
story.append(bp("Contains: Maxillary nerve (V2) and branches, Pterygopalatine ganglion (parasympathetic, CN VII via greater petrosal nerve), Maxillary artery (3rd part)"))
story.append(bp("Communications: Opens to orbit, nasal cavity, oral cavity, ITF, middle cranial fossa, pharynx"))
story.append(bp("Clinical: Spread of nasopharyngeal carcinoma; sphenopalatine ganglion block for cluster headache"))
story.append(sp(8))
# ── Ear ──
story.append(section_bar("LECTURE 05: Ear"))
story.append(sp(8))
story.append(Paragraph("External Ear", h2))
story.append(bp("<b>Auricle (pinna):</b> Elastic cartilage covered by skin; collects sound"))
story.append(bp("<b>External acoustic meatus (EAM):</b> ~2.4 cm; outer 1/3 cartilaginous, inner 2/3 bony"))
story.append(bp("Skin of EAM has ceruminous glands (wax) and hairs in outer part"))
story.append(bp("<b>Tympanic membrane (eardrum):</b> Separates external from middle ear; Pars tensa (main) + Pars flaccida (upper, Shrapnell's membrane)"))
story.append(bp("Light reflex: Anteroinferior quadrant of tympanic membrane"))
story.append(sp(6))
story.append(Paragraph("Middle Ear (Tympanic Cavity)", h2))
story.append(bp("Air-filled space in petrous temporal bone"))
story.append(bp("<b>Ossicles (lateral → medial):</b> Malleus (handle attached to TM) → Incus → Stapes (footplate in oval window)"))
story.append(bp("Eustachian (pharyngotympanic) tube: Connects middle ear to nasopharynx — equalizes pressure; lined by mucosa — route of infection from pharynx"))
story.append(bp("Muscles: Tensor tympani (CN V3) — tenses TM; Stapedius (CN VII) — dampens ossicle vibration"))
story.append(bp("<b>Chorda tympani:</b> Branch of CN VII that crosses middle ear → joins lingual nerve → taste (anterior 2/3 tongue) + submandibular/sublingual glands"))
story.append(sp(6))
story.append(Paragraph("Inner Ear (Labyrinth)", h2))
story.append(bp("<b>Bony labyrinth</b> contains perilymph (similar to ECF); <b>Membranous labyrinth</b> floats inside, contains endolymph (similar to ICF)"))
story.append(bp("<b>Cochlea:</b> 2.5 turns; organ of Corti for hearing; high frequency at base, low at apex"))
story.append(bp("<b>Vestibule:</b> Utricle and Saccule — detect linear acceleration and gravity (otolith organs)"))
story.append(bp("<b>Semicircular canals (3):</b> Anterior, Posterior, Lateral — detect angular acceleration"))
story.append(bp("CN VIII (vestibulocochlear): Cochlear division (hearing) + Vestibular division (balance)"))
story.append(sp(8))
# ── Orbit & Eye ──
story.append(section_bar("LECTURE 06: Orbit and Eye"))
story.append(sp(8))
story.append(Paragraph("Orbit", h2))
story.append(bp("Pyramid-shaped bony cavity housing the eyeball"))
story.append(bp("<b>7 bones:</b> Frontal, Zygomatic, Maxilla, Lacrimal, Ethmoid, Sphenoid (greater + lesser wings), Palatine"))
story.append(bp("Orbital openings: Superior orbital fissure (CN III, IV, VI, V1, ophthalmic veins), Inferior orbital fissure (CN V2, infraorbital vessels), Optic canal (CN II, ophthalmic artery)"))
story.append(sp(6))
story.append(Paragraph("Extraocular Muscles (EOMs)", h2))
story.append(make_table(
["Muscle", "Nerve", "Primary Action"],
[
["Superior Rectus (SR)", "CN III", "Elevation (in abduction), intorsion, adduction"],
["Inferior Rectus (IR)", "CN III", "Depression (in abduction), extorsion, adduction"],
["Medial Rectus (MR)", "CN III", "Adduction"],
["Inferior Oblique (IO)", "CN III", "Elevation (in adduction), extorsion, abduction"],
["Superior Oblique (SO)", "CN IV", "Depression (in adduction), intorsion, abduction"],
["Lateral Rectus (LR)", "CN VI", "Abduction"],
["Levator Palpebrae Superioris", "CN III (smooth: sympathetic)", "Raises upper eyelid"],
]
))
story.append(p("Mnemonic: <b>LR6SO4</b> — Lateral Rectus CN6, Superior Oblique CN4; all others CN3"))
story.append(sp(6))
story.append(Paragraph("Layers of the Eye", h2))
rows_eye = [
["Outer fibrous layer", "Sclera (posterior 5/6) + Cornea (anterior 1/6)"],
["Middle vascular layer (Uvea)", "Choroid + Ciliary body (lens focus) + Iris (pupil diameter)"],
["Inner neural layer", "Retina: contains rods (dim light) + cones (color/detail); fovea centralis = sharpest vision; optic disc = blind spot"],
]
story.append(make_table(["Layer", "Structures"], rows_eye))
story.append(sp(4))
story.append(Paragraph("Lacrimal Apparatus", h2))
story.append(bp("Lacrimal gland (upper lateral orbit) → tears → puncta → canaliculi → lacrimal sac → nasolacrimal duct → inferior meatus of nasal cavity"))
story.append(bp("Tears drain INTO the nose (crying = runny nose)"))
story.append(bp("Innervation: Lacrimal gland from CN VII via greater petrosal nerve → pterygopalatine ganglion → lacrimal nerve (V1)"))
story.append(sp(8))
# ── Nose ──
story.append(section_bar("LECTURE 07: Nose"))
story.append(sp(8))
story.append(Paragraph("External Nose & Nasal Cavity", h2))
story.append(bp("Nasal septum: Perpendicular plate of ethmoid (upper) + Vomer (lower) + Septal cartilage (anterior)"))
story.append(bp("Deviated septum: Most common cause of nasal obstruction"))
story.append(bp("<b>Turbinates (Conchae):</b> Superior (ethmoid), Middle (ethmoid), Inferior (separate bone)"))
story.append(bp("Meatuses: Below each concha; inferior meatus receives nasolacrimal duct"))
story.append(sp(4))
story.append(Paragraph("Drainage of Paranasal Sinuses", h2))
rows_sinus = [
["Frontal sinus", "Middle meatus (via frontonasal duct)"],
["Maxillary sinus", "Middle meatus (via hiatus semilunaris) — drains poorly when standing"],
["Anterior ethmoidal cells", "Middle meatus"],
["Middle ethmoidal cells", "Middle meatus (ethmoid bulla)"],
["Posterior ethmoidal cells", "Superior meatus"],
["Sphenoidal sinus", "Sphenoethmoidal recess (above superior concha)"],
]
story.append(make_table(["Sinus", "Drainage Site"], rows_sinus))
story.append(sp(4))
story.append(Paragraph("Blood Supply of Nasal Cavity", h2))
story.append(bp("<b>Kiesselbach's plexus (Little's area):</b> Anteroinferior septum — most common site of epistaxis"))
story.append(bp("Supply: Sphenopalatine a. (ECA — main supply), Greater palatine a. (ECA), Anterior/Posterior ethmoidal aa. (ICA), Superior labial a. (ECA)"))
story.append(bp("<b>Olfactory nerve (CN I):</b> 20 bundles pass through cribriform plate of ethmoid → olfactory bulb"))
story.append(sp(8))
# ── Mouth & Pharynx ──
story.append(section_bar("LECTURE 08: Mouth & Pharynx"))
story.append(sp(8))
story.append(Paragraph("Oral Cavity", h2))
story.append(bp("Bounded by lips (anterior), cheeks (lateral), palate (superior), floor of mouth (inferior)"))
story.append(bp("Vestibule: Space between teeth/gums and lips/cheeks"))
story.append(bp("Parotid duct opens opposite upper 2nd molar; submandibular duct opens at sublingual caruncle"))
story.append(sp(4))
story.append(Paragraph("Tongue", h2))
story.append(bp("Body (anterior 2/3): Taste via CN VII (chorda tympani); general sensation via CN V3 (lingual nerve)"))
story.append(bp("Root (posterior 1/3): Taste + sensation via CN IX (glossopharyngeal)"))
story.append(bp("Motor to all tongue muscles: CN XII (hypoglossal) EXCEPT palatoglossus (CN X)"))
story.append(bp("<b>Papillae:</b> Filiform (no taste), Fungiform, Circumvallate/Vallate (largest, line), Foliate"))
story.append(bp("Lingual tonsil on posterior tongue; part of Waldeyer's ring"))
story.append(sp(4))
story.append(Paragraph("Palate", h2))
story.append(bp("<b>Hard palate:</b> Bone (maxilla palatine process + palatine bone); covered by mucosa; sensory CN V2"))
story.append(bp("<b>Soft palate:</b> Muscular; elevated during swallowing to close nasopharynx"))
story.append(bp("Muscles of soft palate: Levator veli palatini (CN X — main elevator), Tensor veli palatini (CN V3 — opens Eustachian tube), Musculus uvulae, Palatoglossus, Palatopharyngeus"))
story.append(bp("Gag reflex: Sensory CN IX → Motor CN X (contracts pharyngeal muscles)"))
story.append(sp(4))
story.append(Paragraph("Pharynx (detailed)", h2))
story.append(bp("<b>Nasopharynx:</b> Pharyngeal tonsil (adenoids), Eustachian tube opening, Choanae open here"))
story.append(bp("<b>Oropharynx:</b> Palatine tonsils in tonsillar fossa (between palatoglossal and palatopharyngeal arches)"))
story.append(bp("<b>Tonsil blood supply:</b> Tonsillar branch of facial artery (main); risk of hemorrhage post-tonsillectomy"))
story.append(bp("<b>Laryngopharynx:</b> Pyriform recesses on either side of laryngeal inlet — foreign bodies lodge here"))
story.append(bp("Pharynx innervation: CN IX + X via pharyngeal plexus (motor from CN X, sensory from CN IX/X)"))
story.append(sp(8))
# ── Larynx ──
story.append(section_bar("LECTURE 09: Larynx"))
story.append(sp(8))
story.append(Paragraph("Laryngeal Cartilages", h2))
rows_cart = [
["Thyroid", "Largest; forms laryngeal prominence (Adam's apple); two laminae; cricothyroid membrane below"],
["Cricoid", "Only complete ring; C6 level; connects larynx to trachea"],
["Epiglottis", "Leaf-shaped elastic cartilage; covers laryngeal inlet during swallowing"],
["Arytenoids (paired)", "Pyramid-shaped; articulate with cricoid; vocal process (cord attachment) + muscular process"],
["Corniculate (paired)", "On apex of arytenoids; in aryepiglottic fold"],
["Cuneiform (paired)", "In aryepiglottic folds; support the folds"],
]
story.append(make_table(["Cartilage", "Features"], rows_cart))
story.append(sp(4))
story.append(Paragraph("Laryngeal Cavity", h2))
story.append(bp("<b>Vestibule:</b> Inlet to vestibular folds (false cords)"))
story.append(bp("<b>Vestibular folds (false vocal cords):</b> Above, do not vibrate"))
story.append(bp("<b>Ventricle (sinus):</b> Space between vestibular and vocal folds — saccule extends superiorly"))
story.append(bp("<b>Vocal folds (true vocal cords):</b> White; vibrate for phonation; <b>rima glottidis</b> = space between them"))
story.append(bp("<b>Infraglottic cavity:</b> Below vocal folds → continuous with trachea"))
story.append(sp(4))
story.append(Paragraph("Laryngeal Muscles & Nerve Supply", h2))
story.append(p("<b>Abductors (open glottis):</b> Posterior cricoarytenoid (PCA) — ONLY abductor; CN X (RLN)"))
story.append(p("<b>Adductors (close glottis):</b> Lateral cricoarytenoid, transverse arytenoid, oblique arytenoid — all CN X (RLN)"))
story.append(p("<b>Tensor (tightens cords):</b> Cricothyroid — CN X superior laryngeal nerve (external branch) — ONLY muscle NOT supplied by RLN"))
story.append(sp(4))
story.append(Paragraph("Laryngeal Nerve Supply", h2))
story.append(bp("<b>Superior laryngeal nerve</b> (from CN X): External branch → cricothyroid (motor); Internal branch → sensation above vocal cords"))
story.append(bp("<b>Recurrent laryngeal nerve (RLN)</b> (from CN X): All other intrinsic muscles + sensation below vocal cords"))
story.append(bp("<b>RLN left</b>: longer; loops under aortic arch (ligamentum arteriosum)"))
story.append(bp("<b>RLN right</b>: loops under subclavian artery"))
story.append(bp("<b>RLN damage (unilateral):</b> Hoarseness; <b>bilateral:</b> Respiratory distress, aphonia"))
story.append(sp(8))
# ── Head & Neck Imaging ──
story.append(section_bar("LECTURE 10: Head and Neck Imaging"))
story.append(sp(8))
story.append(Paragraph("Imaging Modalities in Head & Neck", h2))
rows_hn_img = [
["Plain X-rays", "Sinuses (Waters view), Skull (AP/lateral), Mandible; limited soft tissue detail"],
["CT Head/Neck", "Best for bony detail, acute hemorrhage, calcification; fast; gold standard for trauma"],
["MRI Head/Neck", "Best for brain parenchyma, posterior fossa, spinal cord, soft tissue tumors; no radiation"],
["Ultrasound Neck", "Thyroid nodules (first-line), salivary glands, lymph nodes; guides FNA biopsy"],
["Contrast studies", "Sialography (salivary ducts), laryngography"],
["Nuclear Medicine", "Thyroid scan (Tc99m/I123) for cold/hot nodules; PET-CT for malignancy staging"],
["Angiography/MRA/CTA", "Carotid artery stenosis, aneurysm, AVM"],
]
story.append(make_table(["Modality", "Clinical Use"], rows_hn_img))
story.append(sp(4))
story.append(Paragraph("CT Head — Normal Anatomy on Axial Cuts", h2))
story.append(bp("Cortical bone: hyperdense (white); Acute blood: hyperdense; Chronic blood: hypodense; Edema: hypodense"))
story.append(bp("Gray-white matter differentiation: Grey matter more dense than white on CT"))
story.append(bp("Key levels: Posterior fossa (brainstem, cerebellum, 4th ventricle) → Basal ganglia → Lateral ventricles → High convexity"))
story.append(sp(4))
story.append(Paragraph("Thyroid Imaging", h2))
story.append(bp("Ultrasound: First-line for thyroid nodule evaluation; assess echogenicity, size, vascularity, calcification"))
story.append(bp("TI-RADS classification guides FNA biopsy decision"))
story.append(bp("<b>Radioactive iodine scan:</b> Hot nodule (increased uptake) = almost always benign; Cold nodule (reduced uptake) = higher malignancy risk (~15%)"))
story.append(bp("CT/MRI: For large goiters, substernal extension, malignancy staging"))
story.append(sp(4))
story.append(Paragraph("Salivary Gland Imaging", h2))
story.append(bp("Ultrasound: First-line for swelling; distinguishes cystic vs solid; detects calculi (sialolithiasis)"))
story.append(bp("Sialography: Contrast injected into duct; shows strictures, ductal dilation"))
story.append(bp("MRI: Best for parotid tumors (pleomorphic adenoma = most common benign; Warthin's = 2nd), perineural spread"))
story.append(sp(8))
# ── Clinical Cases ──
story.append(section_bar("LECTURES 11 & 12: Clinical Cases"))
story.append(sp(8))
story.append(Paragraph("Clinical Cases: Back & Spine", h2))
story.append(Paragraph("Case 1: Disc Herniation", h3))
story.append(bp("Young patient with low back pain + radiculopathy (shooting pain/numbness down leg)"))
story.append(bp("L4-L5 disc herniation → L5 root compression → weakness of great toe dorsiflexion, numbness dorsum of foot"))
story.append(bp("L5-S1 disc herniation → S1 root compression → weakness of plantar flexion, reduced ankle reflex, numbness lateral foot/sole"))
story.append(bp("Imaging: MRI spine is gold standard; shows posterior protrusion compressing neural elements"))
story.append(Paragraph("Case 2: Spinal Cord Injury", h3))
story.append(bp("C5-C6 injury: Biceps preserved (C5), triceps lost (C7); deltoid weak"))
story.append(bp("Brown-Séquard syndrome: Hemi-cord lesion → ipsilateral motor loss + proprioception loss; contralateral pain/temperature loss (below lesion)"))
story.append(bp("Cauda equina syndrome: L2+ bilateral leg weakness, saddle anesthesia, bowel/bladder dysfunction → surgical emergency"))
story.append(Paragraph("Case 3: Vertebral Fractures", h3))
story.append(bp("Jefferson fracture: C1 burst fracture (axial load); CT shows bilateral lateral mass displacement"))
story.append(bp("Hangman's fracture: C2 bilateral pedicle fracture (hyperextension)"))
story.append(bp("Odontoid fracture: Most common C2 fracture; Type II most unstable"))
story.append(sp(6))
story.append(Paragraph("Clinical Cases: Head and Neck Eye", h2))
story.append(Paragraph("Case 1: Facial Nerve Palsy", h3))
story.append(bp("Bell's palsy (LMN CN VII): Acute unilateral facial weakness; ALL muscles affected (forehead too)"))
story.append(bp("Stroke (UMN CN VII): Lower face only; forehead spared"))
story.append(bp("Parotid tumor: Facial nerve involvement — poor prognostic sign"))
story.append(Paragraph("Case 2: Neck Masses", h3))
rows_neck_mass = [
["Midline anterior", "Thyroid goiter, thyroglossal duct cyst (moves with tongue protrusion), dermoid cyst, lipoma"],
["Lateral neck", "Lymph node enlargement (infection, lymphoma, metastasis), branchial cleft cyst (2nd — at anterior border SCM, level II/III), carotid body tumor (pulsatile, lateral movement only)"],
["Posterior triangle", "Cervical lymphadenopathy, lipoma, cystic hygroma (children)"],
]
story.append(make_table(["Location", "Differential Diagnosis"], rows_neck_mass))
story.append(Paragraph("Case 3: Eye Conditions", h3))
story.append(bp("Sudden painless visual loss: Central retinal artery occlusion (cherry red spot), retinal detachment"))
story.append(bp("Glaucoma: Increased IOP → optic nerve damage; cupping of optic disc on fundoscopy"))
story.append(bp("Cataract: Opacity of lens; loss of red reflex; treated surgically (IOL)"))
story.append(bp("Papilledema: Blurred optic disc margins on fundoscopy — sign of raised ICP"))
story.append(sp(8))
# Footer note
story.append(hr())
story.append(p("<i>Notes compiled for Anatomy Lecture Coverage (Mid-Term: 26 March 2026; Final: 02 July 2026). Lab coverage excluded as requested. Reference sources: Gray's Anatomy for Students, Snell's Clinical Anatomy (PG 44-85 for Back & Spine), Netter's Atlas of Human Anatomy, Cummings Otolaryngology, Murray & Nadel's Respiratory Medicine.</i>"))
# Build PDF
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/anatomy-notes && python generate_notes.py
ls -lh /home/daytona/workspace/anatomy-notes/Anatomy_Exam_Notes.pdf
Anatomy Exam Notes
PDF Document · PDF
| Chapter | Topics Covered |
|---|---|
| Ch01: Basic Anatomy | Anatomical terminology, planes, directional terms, body cavities, tissue types, organ systems, joints & joint types with tables |
| Ch02: Embryology (Full) | Fertilization → bilaminar disc → gastrulation, germ layer derivatives, neurulation, neural tube defects, somites, pharyngeal arches (1-6), pouches, heart development (looping, septation, shunts), fetal circulation |
| Ch03: Back & Spine | Vertebral column, typical/atypical vertebrae (C1/C2/C7/thoracic/lumbar), ligaments, IVD + herniation, back muscle layers, spinal cord + meninges, lumbar puncture landmarks, spinal nerve formation |
| Ch04: Basic Imaging | X-ray, CT (HU scale), MRI (T1/T2), Ultrasound, Nuclear medicine; imaging planes |
| Imaging Lectures | Back & spine imaging, thoracic wall/breast (mammography, BIRADS), pleural cavities/lungs (CXR, pneumothorax, effusion), heart & pericardium (silhouette, CTR, echo), mediastinal masses (4 T's), cardiothoracic imaging |
| Cranial Nerves | All 12 CNs — type/function/lesion; Horner's syndrome; parasympathetic ganglia (ciliary, pterygopalatine, otic, submandibular) |
| Neck Triangles & Carotid | Anterior/posterior triangle contents, CCA bifurcation, carotid sinus/body, ECA branches (mnemonic), ICA course |
| Lecture | Topics Covered |
|---|---|
| Subclavian/Veins/Lymph | Subclavian artery (3 parts, branches, vertebral a.), IJV, EJV, dural sinuses, cavernous sinus, lymph node chains, Virchow's node |
| Viscera/Endocrine | Thyroid (supply, RLN risk), parathyroid, trachea, esophagus, pharynx (3 parts, Waldeyer's ring), pituitary/pineal |
| Scalp & Face | SCALP layers (danger zone), scalp blood supply, muscles of facial expression (CN VII), facial artery/vein, danger triangle |
| Parotid/Fossae | Parotid gland + Stensen's duct, CN VII branches (Two Zebras Bit My Calf), Frey's syndrome, temporal fossa, infratemporal fossa (muscles of mastication), pterygopalatine fossa |
| Ear | External ear → middle ear (ossicles, Eustachian tube, chorda tympani) → inner ear (cochlea, vestibule, semicircular canals) |
| Orbit & Eye | 7 orbital bones, orbital fissures, 6 EOMs (LR6SO4), eye layers, lacrimal apparatus |
| Nose | Nasal septum, turbinates, paranasal sinus drainage table, Kiesselbach's plexus (epistaxis), CN I |
| Mouth & Pharynx | Oral cavity, tongue (taste/sensation/motor by nerve), papillae, palate muscles, pharynx (3 parts), tonsil blood supply |
| Larynx | Cartilages (thyroid/cricoid/epiglottis/arytenoids), laryngeal cavity (true vs false cords), muscles, RLN vs superior laryngeal nerve |
| H&N Imaging | CT/MRI/US for head & neck, thyroid imaging (TI-RADS), salivary gland imaging, nuclear thyroid scan |
| Clinical Cases | Disc herniation (L4-L5 vs L5-S1 roots), spinal cord injury (Brown-Séquard, cauda equina), vertebral fractures (Jefferson, Hangman's, odontoid), facial nerve palsy (Bell's vs stroke), neck mass differentials, eye conditions |