Paramedical emergency medical technician completed anatomy

Asking for Preferences
Asking for Preferences
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Based on the available resources from the medical library, here are your comprehensive Paramedical EMT Anatomy - Complete Study Notes covering all body systems:

Paramedical EMT Anatomy - Complete Study Notes

1. INTRODUCTION TO ANATOMY

Anatomy is the science of body structure and how structures relate to each other. For EMTs, it provides the foundation to understand injuries, disease processes, and emergency interventions.
Anatomical Position: Body standing upright, feet together, palms facing forward. All anatomical directions are described relative to this position.
Key Directional Terms:
TermMeaning
Superior / CranialToward the head
Inferior / CaudalToward the feet
Anterior / VentralFront of the body
Posterior / DorsalBack of the body
MedialToward the midline
LateralAway from the midline
ProximalCloser to the point of origin/trunk
DistalFurther from the point of origin/trunk
SuperficialCloser to the surface
DeepFurther from the surface
Body Planes:
  • Sagittal plane - divides left and right
  • Coronal (frontal) plane - divides anterior and posterior
  • Transverse (horizontal) plane - divides superior and inferior
Body Cavities:
  • Cranial cavity - contains the brain
  • Spinal (vertebral) cavity - contains the spinal cord
  • Thoracic cavity - contains the heart (in the mediastinum) and lungs (in pleural cavities), separated from abdomen by the diaphragm
  • Abdominal cavity - contains digestive organs, liver, spleen, kidneys
  • Pelvic cavity - contains bladder, reproductive organs, rectum
Abdominal Quadrants (EMT-critical):
  • Right Upper Quadrant (RUQ) - liver, gallbladder, right kidney
  • Left Upper Quadrant (LUQ) - stomach, spleen, left kidney
  • Right Lower Quadrant (RLQ) - appendix, cecum, right ovary (females)
  • Left Lower Quadrant (LLQ) - sigmoid colon, left ovary (females)

2. SKELETAL SYSTEM

Function: Support, protection, movement, mineral storage, blood cell production (hematopoiesis).
Bone Count: 206 bones in the adult human body.

Bone Classification by Shape:

  • Long bones - femur, humerus, tibia (lever action for movement)
  • Short bones - carpals, tarsals
  • Flat bones - skull, sternum, ribs (protect organs)
  • Irregular bones - vertebrae, facial bones
  • Sesamoid bones - patella (within tendons)

Bone Structure:

  • Periosteum - outer fibrous membrane, site of bone repair
  • Compact (cortical) bone - dense outer layer
  • Cancellous (spongy/trabecular) bone - inner porous layer; contains red marrow
  • Medullary cavity - contains yellow marrow (fat) in long bones
  • Epiphyseal plate - growth plate; fusion signals end of bone growth

Axial Skeleton (80 bones):

Skull (22 bones):
  • Cranium - 8 bones: frontal, parietal (2), temporal (2), occipital, sphenoid, ethmoid
  • Facial bones - 14 bones: maxilla (2), mandible, zygomatic (2), nasal (2), lacrimal (2), palatine (2), vomer, inferior nasal conchae (2)
Vertebral Column (33/26 bones):
  • Cervical - 7 vertebrae (C1-C7); C1 = Atlas, C2 = Axis
  • Thoracic - 12 vertebrae (T1-T12), articulate with ribs
  • Lumbar - 5 vertebrae (L1-L5), largest vertebrae
  • Sacrum - 5 fused
  • Coccyx - 4 fused (tailbone)
Thoracic Cage:
  • 12 pairs of ribs
  • True ribs (1-7): attach directly to sternum via costal cartilage
  • False ribs (8-10): attach indirectly via cartilage
  • Floating ribs (11-12): no anterior attachment
  • Sternum: manubrium, body, xiphoid process

Appendicular Skeleton (126 bones):

Pectoral girdle: clavicle + scapula Upper limb: humerus, radius, ulna, 8 carpals, 5 metacarpals, 14 phalanges Pelvic girdle: two hip bones (ilium + ischium + pubis = os coxae) + sacrum Lower limb: femur, patella, tibia, fibula, 7 tarsals (calcaneus = largest), 5 metatarsals, 14 phalanges

Joints (Articulations):

  • Fibrous (synarthrosis) - immovable; skull sutures
  • Cartilaginous (amphiarthrosis) - slightly movable; pubic symphysis, intervertebral discs
  • Synovial (diarthrosis) - freely movable; most limb joints; contain synovial fluid
Synovial Joint Types:
  • Ball-and-socket (hip, shoulder) - multiaxial
  • Hinge (elbow, knee, ankle) - uniaxial
  • Pivot (C1-C2, radioulnar) - rotation only
  • Condyloid (radiocarpal/wrist) - biaxial
  • Saddle (carpometacarpal of thumb) - biaxial
  • Gliding/Plane (intercarpal, intertarsal) - nonaxial

3. MUSCULAR SYSTEM

Three Types of Muscle:
FeatureSkeletalCardiacSmooth
LocationAttached to bonesHeart wallWalls of hollow organs
ControlVoluntaryInvoluntaryInvoluntary
AppearanceStriatedStriatedNon-striated
Cell shapeLong cylindrical fibersBranched, intercalated discsSpindle-shaped

Skeletal Muscle:

Connective tissue coverings:
  • Epimysium - outer, wraps entire muscle
  • Perimysium - surrounds fascicles (bundles)
  • Endomysium - surrounds individual fibers
Microstructure (Sliding Filament Theory):
  • Sarcomere = functional unit; contains thick filaments (myosin) and thin filaments (actin)
  • A band, I band, Z lines, H zone, M line
  • Contraction: actin slides over myosin (ATP + Ca²+ required)
  • Ca²+ released from sarcoplasmic reticulum when action potential arrives
Neuromuscular Junction:
  • Motor neuron releases acetylcholine (ACh) at the motor end plate
  • ACh binds nicotinic receptors → action potential in muscle fiber

Major Muscles (EMT-Relevant):

  • Diaphragm - primary muscle of breathing; separates thorax from abdomen
  • Intercostals - between ribs; internal and external; assist breathing
  • Sternocleidomastoid (SCM) - neck; accessory breathing muscle; landmark for carotid
  • Trapezius - upper back and neck
  • Quadriceps - anterior thigh; knee extension
  • Gastrocnemius/Soleus - calf; plantar flexion

Muscle Actions:

  • Flexion - decrease joint angle
  • Extension - increase joint angle
  • Abduction - move away from midline
  • Adduction - move toward midline
  • Rotation, Pronation, Supination, Circumduction

4. CARDIOVASCULAR SYSTEM

The Heart:

Location: Mediastinum; 2/3 to the left of the midline; apex at 5th intercostal space, midclavicular line.
Layers of the Heart Wall:
  • Epicardium (outer; visceral pericardium)
  • Myocardium (middle; cardiac muscle - the "pump")
  • Endocardium (inner lining)
  • Pericardium - fibrous sac surrounding the heart (parietal pericardium)
Chambers:
  • Right Atrium (RA) → receives deoxygenated blood from SVC and IVC
  • Right Ventricle (RV) → pumps to lungs via pulmonary artery
  • Left Atrium (LA) → receives oxygenated blood from pulmonary veins (4)
  • Left Ventricle (LV) → pumps to body via aorta; thickest wall
Heart Valves:
  • Tricuspid - between RA and RV (3 cusps)
  • Pulmonary semilunar - RV to pulmonary trunk
  • Mitral (bicuspid) - between LA and LV (2 cusps)
  • Aortic semilunar - LV to aorta
  • AV valves held by chordae tendineae and papillary muscles
Blood Flow Pathway: Body → SVC/IVC → RA → tricuspid → RV → pulmonary valve → pulmonary arteries → lungs → pulmonary veins → LA → mitral valve → LV → aortic valve → aorta → body

Cardiac Conduction System:

  • SA node (right atrium) - pacemaker; 60-100 bpm intrinsic rate
  • AV node - delays impulse (0.1 sec) to allow ventricular filling; 40-60 bpm backup rate
  • Bundle of His - enters interventricular septum
  • Right and Left Bundle Branches - distribute down septum
  • Purkinje Fibers - spread impulse through ventricular walls; 20-40 bpm backup rate

Blood Vessels:

VesselWallFunction
ArteriesThick, elastic, muscularCarry blood away from heart (usually oxygenated)
ArteriolesThinRegulate blood flow to capillaries
CapillariesOne cell thick (endothelium)Exchange O2, CO2, nutrients, waste
VenulesThinCollect from capillaries
VeinsThin wall, valvesReturn blood to heart; contain 60-70% blood volume
Key Arteries (EMT-critical):
  • Aorta → Common carotid (to head) → External + Internal carotid
  • Subclavian → Axillary → Brachial → Radial + Ulnar
  • Aorta → Celiac trunk (stomach, liver, spleen), Mesenteric arteries (gut)
  • Iliac → Femoral → Popliteal → Tibial
Pulse Sites: Radial, brachial, carotid, femoral, popliteal, dorsalis pedis, posterior tibial
Blood Pressure: Systolic (ventricular contraction) / Diastolic (ventricular relaxation); Normal: ~120/80 mmHg

5. RESPIRATORY SYSTEM

Anatomy:

Upper Respiratory Tract:
  • Nasal cavity - filters, warms, humidifies air; lined with ciliated mucosa
  • Pharynx - shared pathway for air and food; includes nasopharynx, oropharynx, laryngopharynx
  • Larynx - voice box; contains epiglottis (covers trachea during swallowing), vocal cords, thyroid cartilage (Adam's apple), cricoid cartilage (completely encircles airway - EMT landmark)
  • Cricothyroid membrane - emergency airway access site between thyroid and cricoid cartilages
Lower Respiratory Tract:
  • Trachea - 10-12 cm long; C-shaped cartilage rings (open posteriorly); divides at carina (T4-T5 level) into main bronchi
  • Right main bronchus - shorter, wider, more vertical → foreign bodies more likely to lodge here
  • Left main bronchus - longer, narrower, more horizontal
  • Bronchi → Bronchioles → Terminal bronchioles → Respiratory bronchioles → Alveolar ducts → Alveoli
Lungs:
  • Right lung - 3 lobes (upper, middle, lower); wider
  • Left lung - 2 lobes (upper, lower); cardiac notch accommodates the heart
  • Pleura - visceral pleura (lung surface) + parietal pleura (chest wall); potential space between them; pneumothorax = air in pleural space
Alveoli:
  • ~300 million alveoli; massive surface area
  • Type I pneumocytes - thin; gas exchange
  • Type II pneumocytes - produce surfactant (reduces surface tension, prevents collapse)

Mechanics of Breathing:

  • Inspiration (active): Diaphragm contracts (descends) + external intercostals contract → thoracic volume ↑ → pressure ↓ → air flows in
  • Expiration (passive at rest): Muscles relax → elastic recoil → thoracic volume ↓ → pressure ↑ → air flows out
Lung Volumes:
  • Tidal Volume (TV) = 500 mL (normal breath)
  • Inspiratory Reserve Volume (IRV) = ~3000 mL
  • Expiratory Reserve Volume (ERV) = ~1200 mL
  • Residual Volume (RV) = ~1200 mL (cannot be exhaled)
  • Vital Capacity = TV + IRV + ERV = ~4700 mL
  • Total Lung Capacity = ~6000 mL

Gas Exchange:

  • Occurs across the respiratory membrane (alveolus + capillary walls)
  • O2 diffuses into blood; CO2 diffuses out (driven by partial pressure gradients)
  • Oxyhemoglobin dissociation curve: Hb saturation affected by temperature, pH, PCO2

6. NERVOUS SYSTEM

Organization:

Central Nervous System (CNS): Brain + Spinal cord
Peripheral Nervous System (PNS):
  • Somatic NS - voluntary; controls skeletal muscles
  • Autonomic NS (ANS) - involuntary; controls smooth muscle, cardiac muscle, glands
    • Sympathetic ("fight or flight"): ↑HR, ↑BP, dilates pupils, bronchodilation, ↓GI activity
    • Parasympathetic ("rest and digest"): ↓HR, constricts pupils, ↑GI activity, ↑secretions

The Brain:

Cerebrum (cerebral cortex):
  • Frontal lobe - motor cortex, personality, decision-making, Broca's area (speech production)
  • Parietal lobe - somatosensory cortex (touch, pain, temperature, position)
  • Temporal lobe - hearing, memory, Wernicke's area (speech comprehension)
  • Occipital lobe - vision
  • Left hemisphere - language, logic (dominant in most)
  • Right hemisphere - spatial, artistic
Diencephalon:
  • Thalamus - relay station; routes sensory info to cortex (except smell)
  • Hypothalamus - controls ANS, temperature regulation, hunger, thirst, hormones, sleep-wake cycle; connects nervous system to endocrine system
Brainstem:
  • Midbrain (mesencephalon) - visual/auditory reflexes, pupillary reflexes
  • Pons - relay between cerebrum and cerebellum; breathing rhythm
  • Medulla oblongata - vital centers: cardiac, vasomotor, respiratory; reflexes: cough, sneeze, swallow, vomit
Cerebellum: Coordination, balance, fine motor control; located posteriorly
Limbic system: Emotions, memory (hippocampus), olfaction

Spinal Cord:

  • Extends from foramen magnum to L1-L2 (conus medullaris)
  • Gray matter (H-shaped): anterior horns (motor), posterior horns (sensory)
  • White matter: ascending sensory tracts, descending motor tracts
  • 31 pairs of spinal nerves: 8 cervical, 12 thoracic, 5 lumbar, 5 sacral, 1 coccygeal
Dermatomes (EMT-relevant):
  • C3-C5 - diaphragm (phrenic nerve; "C3, 4, 5 keeps the diaphragm alive")
  • T4 - nipple line
  • T10 - umbilicus
  • L1 - inguinal ligament
  • S2-S4 - perineum, bladder, bowel control

Neurons:

  • Sensory (afferent) - carry signals TO the CNS
  • Motor (efferent) - carry signals FROM the CNS
  • Interneurons - connect neurons within CNS
Nerve Impulse: Resting potential (-70 mV) → depolarization (Na+ influx) → repolarization (K+ efflux) → action potential propagates
Meninges (protective coverings): Dura mater (outer) → Arachnoid mater → Subarachnoid space (CSF) → Pia mater (inner)

7. INTEGUMENTARY SYSTEM (SKIN)

Functions: Protection, temperature regulation, sensation, vitamin D synthesis, fluid balance.
Layers:
  • Epidermis - outermost; avascular; 5 layers (strata); contains keratinocytes (protective), melanocytes (pigment), Langerhans cells (immune)
    • Innermost layer = stratum basale (germinativum) - where cell division occurs
    • Outermost layer = stratum corneum - dead, keratinized cells
  • Dermis - connective tissue; contains blood vessels, nerves, hair follicles, sweat glands, sebaceous glands
    • Papillary dermis (upper, papillae)
    • Reticular dermis (lower, denser)
  • Hypodermis (subcutaneous layer) - fat (adipose) and loose connective tissue; insulation and cushioning
Skin Appendages:
  • Hair follicles - in dermis; arrector pili muscle causes goosebumps
  • Sebaceous glands - oil glands; secrete sebum; prevent skin drying
  • Sweat glands - eccrine (temperature regulation, all over body) and apocrine (axillae, groin; odor)
  • Nails - modified keratin; protect distal phalanges
Burns Classification (EMT-critical):
  • 1st degree (superficial) - epidermis only; red, painful (sunburn)
  • 2nd degree (partial thickness) - epidermis + part of dermis; blistering, very painful
  • 3rd degree (full thickness) - entire dermis and epidermis; painless (nerve destruction), waxy/leathery
  • Rule of Nines: Head + Neck = 9%, Each arm = 9%, Chest = 9%, Abdomen = 9%, Upper back = 9%, Lower back = 9%, Each thigh = 9%, Each lower leg + foot = 9%, Perineum = 1%

8. DIGESTIVE SYSTEM

Function: Ingestion, mechanical/chemical digestion, absorption, elimination.
GI Tract (Alimentary Canal): Mouth → Pharynx → Esophagus → Stomach → Small intestine → Large intestine → Rectum → Anus
Key Structures:
  • Mouth - teeth (mastication), tongue, salivary glands (amylase begins carbohydrate digestion)
  • Esophagus - muscular tube; peristalsis moves food; lower esophageal sphincter prevents reflux
  • Stomach - J-shaped; gastric acid (HCl, pH 1-2) + pepsin → protein digestion; produces intrinsic factor (B12 absorption); pyloric sphincter controls emptying
  • Small intestine (~6 m) - major site of digestion and absorption
    • Duodenum (25 cm) - bile + pancreatic enzymes added
    • Jejunum - main absorption
    • Ileum - B12 absorption, bile salt recycling
    • Villi and microvilli (brush border) greatly increase surface area
  • Large intestine (~1.5 m): cecum (+ appendix) → ascending → transverse → descending → sigmoid colon → rectum → anal canal
    • Water and electrolyte absorption; formation of feces; houses gut microbiome
Accessory Organs:
  • Liver - largest internal organ; bile production, detoxification, protein synthesis (albumin, clotting factors), glycogen storage, metabolism
  • Gallbladder - stores and concentrates bile; bile emulsifies fats
  • Pancreas - exocrine (digestive enzymes: lipase, amylase, proteases) + endocrine (insulin from β-cells, glucagon from α-cells)

9. URINARY SYSTEM

Functions: Filtration, excretion, fluid/electrolyte balance, acid-base balance, erythropoietin production, renin release (BP regulation).
Organs: 2 kidneys, 2 ureters, 1 bladder, 1 urethra
Kidney Structure:
  • Located retroperitoneally at T12-L3; right kidney slightly lower (liver above)
  • Outer cortex - contains glomeruli (filtration) and proximal/distal tubules
  • Inner medulla - renal pyramids; collecting ducts converge to form renal papillae → minor calyces → major calyces → renal pelvis → ureter
Nephron (functional unit): Glomerulus → Bowman's capsule → Proximal convoluted tubule (PCT) → Loop of Henle → Distal convoluted tubule (DCT) → Collecting duct
Processes:
  1. Filtration (glomerulus) - water, glucose, amino acids, urea, ions filtered
  2. Reabsorption - 99% of filtrate reabsorbed; glucose in PCT; water + Na+ under hormonal control
  3. Secretion - H+, K+, drugs secreted into tubule
  4. Excretion - final urine (~1.5 L/day)
Key Hormones:
  • ADH (Vasopressin) - ↑water reabsorption in collecting duct; produced by hypothalamus
  • Aldosterone - ↑Na+ (and water) reabsorption, ↑K+ excretion in DCT
  • Renin-Angiotensin-Aldosterone System (RAAS) - activated by ↓BP → ↑BP
Ureters, Bladder, Urethra:
  • Ureters - 25-30 cm; peristalsis propels urine; ureteral orifices enter bladder at trigone
  • Urinary bladder - stores ~400-500 mL; transitional epithelium (urothelium)
  • Urethra - female (~4 cm); male (~20 cm; prostatic, membranous, spongy portions)

10. ENDOCRINE SYSTEM

Function: Chemical communication via hormones (blood-borne messengers).
GlandLocationKey HormonesActions
HypothalamusBrainReleasing/inhibiting hormones, ADH, OxytocinControls pituitary; water balance; uterine contractions
Anterior PituitaryBase of brainGH, TSH, ACTH, FSH, LH, ProlactinControls other glands; growth; reproduction
Posterior PituitaryBase of brainADH, OxytocinWater reabsorption; contractions
ThyroidNeckT3, T4 (metabolism), Calcitonin (↓Ca²+)Metabolic rate; growth; Ca²+ regulation
Parathyroid (4)Posterior thyroidPTH↑Ca²+ in blood (↑bone resorption, ↑renal reabsorption)
Adrenal cortexAbove kidneysCortisol (stress), Aldosterone (Na/K), AndrogensStress response; electrolyte balance
Adrenal medullaAbove kidneysEpinephrine, NorepinephrineFight or flight (↑HR, ↑BP, bronchodilation)
PancreasAbdomenInsulin (↓glucose), Glucagon (↑glucose)Blood glucose regulation
GonadsPelvisEstrogen, Progesterone, TestosteroneSex characteristics; reproduction
Pineal glandBrainMelatoninSleep-wake cycles

11. REPRODUCTIVE SYSTEM

Male Reproductive System:

  • Testes - produce sperm (spermatogenesis) + testosterone
  • Epididymis - sperm maturation and storage
  • Vas deferens - transports sperm to ejaculatory duct
  • Seminal vesicles - fructose-rich fluid (60% of semen)
  • Prostate gland - alkaline fluid (protects sperm from acidity)
  • Urethra - carries both urine and semen (not simultaneously)
  • Penis - delivery of sperm; erectile tissue (corpora cavernosa × 2, corpus spongiosum × 1)

Female Reproductive System:

  • Ovaries - produce eggs (oogenesis) + estrogen + progesterone
  • Fallopian tubes (uterine tubes) - site of fertilization; ciliated fimbriae capture ovum
  • Uterus - muscular organ; endometrium (implantation), myometrium (muscle), perimetrium (outer)
  • Cervix - inferior uterus; os opens during labor
  • Vagina - birth canal; receives sperm
  • Vulva - external genitalia (labia majora, labia minora, clitoris, vestibule)
Menstrual Cycle (~28 days):
  • Follicular phase (days 1-14): FSH → follicle growth → estrogen ↑ → LH surge → ovulation (day 14)
  • Luteal phase (days 14-28): corpus luteum → progesterone → prepares endometrium; if no fertilization, corpus luteum degenerates → menstruation

12. LYMPHATIC & IMMUNE SYSTEM

Lymphatic System Functions:
  • Return excess interstitial fluid to blood
  • Transport dietary lipids from gut
  • Immune defense
Components:
  • Lymph capillaries - blind-ended; collect excess fluid from tissues
  • Lymph vessels - carry lymph toward heart; contain valves
  • Lymph nodes - filter lymph; contain B and T cells; major groups at cervical, axillary, inguinal regions
  • Thoracic duct - largest lymph vessel; drains left side of body + lower body into left subclavian vein
  • Right lymphatic duct - drains right upper quadrant into right subclavian vein
  • Spleen - filters blood; removes old RBCs; immune response; largest lymphoid organ
  • Thymus - T cell maturation; most active in childhood; involutes after puberty
  • Tonsils - lymphoid tissue; first line of defense (palatine, pharyngeal/adenoids, lingual)
  • Peyer's patches - lymphoid tissue in small intestinal wall
Immune Responses:
  • Innate (non-specific) - immediate; physical barriers, phagocytes (neutrophils, macrophages), NK cells, inflammation, fever
  • Adaptive (specific) - slower; B cells (antibodies/humoral immunity) + T cells (cell-mediated immunity); memory

13. SPECIAL SENSES

Eye:

Layers:
  • Sclera (white, protective outer layer) → Cornea (transparent, anterior)
  • Choroid (vascular, middle) → Ciliary body (lens shape) + Iris (controls pupil size)
  • Retina (innermost, sensory): rods (low light, peripheral) + cones (color, central/fovea)
Vision pathway: Retina → Optic nerve (CN II) → Optic chiasm (nasal fibers cross) → Optic tract → Lateral geniculate nucleus (thalamus) → Occipital cortex

Ear:

  • Outer ear: Auricle + External auditory canal → tympanic membrane (eardrum)
  • Middle ear: Ossicles - Malleus → Incus → Stapes (amplify vibrations); Eustachian tube (equalize pressure)
  • Inner ear: Cochlea (hearing - hair cells, organ of Corti) + Vestibular apparatus (semicircular canals - rotation; utricle/saccule - linear acceleration/gravity)
Hearing pathway: Sound waves → tympanic membrane → ossicles → oval window → cochlea → CN VIII (vestibulocochlear nerve) → brainstem → auditory cortex (temporal lobe)

EMT-SPECIFIC ANATOMICAL PRIORITIES

Critical Airway Landmarks:
  • Epiglottis covers trachea during swallowing
  • Cricothyroid membrane = emergency surgical airway
  • Carina = where trachea bifurcates (right mainstem more vertical → right endobronchial intubation)
Shock Assessment Sites (Pulse Palpation):
  • Radial pulse absent → systolic BP likely <80 mmHg
  • Femoral pulse absent → systolic BP likely <70 mmHg
  • Carotid pulse absent → systolic BP likely <60 mmHg
Spinal Cord Injury Levels:
  • C3-C5 injury → diaphragm paralysis → respiratory arrest
  • T1-T4 injury → sympathetic disruption → neurogenic shock
  • Cauda equina syndrome (below L1) → bowel/bladder dysfunction
Abdominal Injury Organs by Quadrant:
  • Solid organs (liver, spleen, kidneys) → hemorrhage
  • Hollow organs (stomach, bowel, bladder) → contamination/peritonitis
  • McBurney's point (RLQ) → appendix

QUICK REFERENCE: CRANIAL NERVES

#NameTypeFunction
IOlfactorySensorySmell
IIOpticSensoryVision
IIIOculomotorMotorMost eye movements; pupillary constriction
IVTrochlearMotorSuperior oblique (eye down-in movement)
VTrigeminalMixedFace sensation; mastication
VIAbducensMotorLateral rectus (eye abduction)
VIIFacialMixedFacial expression; taste (anterior 2/3 tongue); lacrimal/salivary glands
VIIIVestibulocochlearSensoryHearing + balance
IXGlossopharyngealMixedTaste (posterior 1/3); swallowing; parotid gland
XVagusMixedParasympathetic to thorax/abdomen; swallowing/speech
XIAccessoryMotorSCM and trapezius
XIIHypoglossalMotorTongue movement
Mnemonic for CN names: "Oh Oh Oh To Touch And Feel Very Good Velvet Ah Heaven"
Mnemonic for CN type (S=Sensory, M=Motor, B=Both): "Some Say Marry Money But My Brother Says Big Brains Matter Most"

These notes cover all major body systems relevant to the Paramedical EMT Anatomy curriculum. Key topics to prioritize for exams include: airway anatomy, cardiovascular anatomy and conduction, spinal cord levels, burns classification, abdominal quadrant organs, and the autonomic nervous system (for understanding shock and drug effects).

Make a quick reference PDF poster of vital structures and landmarks

Reading File
Running Command

mkdir -p /tmp/workspace/emt-anatomy-poster && ls /tmp/workspace/

Writing File

~/emt-anatomy-poster/create_poster.py

from reportlab.lib.pagesizes import A1, landscape
from reportlab.lib import colors
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer,
    HRFlowable, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import Frame, PageTemplate
from reportlab.pdfgen import canvas
from reportlab.platypus.doctemplate import BaseDocTemplate, PageTemplate
from reportlab.platypus import Frame
import os

OUTPUT = "/tmp/workspace/emt-anatomy-poster/EMT_Anatomy_Quick_Reference.pdf"

# ── Colour palette ───────────────────────────────────────────────────────────
C_HEADER    = colors.HexColor("#1B3A6B")   # deep navy
C_RED       = colors.HexColor("#C0392B")   # danger red
C_ORANGE    = colors.HexColor("#D35400")   # warning orange
C_GREEN     = colors.HexColor("#1A7A4A")   # clinical green
C_BLUE      = colors.HexColor("#1F6BAE")   # mid blue
C_PURPLE    = colors.HexColor("#6C3483")   # purple
C_TEAL      = colors.HexColor("#148F77")   # teal
C_DARK_GRAY = colors.HexColor("#2C3E50")
C_MID_GRAY  = colors.HexColor("#7F8C8D")
C_LIGHT_BG  = colors.HexColor("#EAF2FB")   # very light blue bg
C_YELLOW_BG = colors.HexColor("#FEF9E7")
C_GREEN_BG  = colors.HexColor("#EAFAF1")
C_RED_BG    = colors.HexColor("#FDEDEC")
C_WHITE     = colors.white
C_ROW_ALT   = colors.HexColor("#F2F3F4")

PAGE_W, PAGE_H = landscape(A1)  # ~1189 x 841 pt
MARGIN = 0.8*cm

# ── Style helpers ─────────────────────────────────────────────────────────────
def make_styles():
    base = getSampleStyleSheet()

    def ps(name, parent="Normal", **kw):
        return ParagraphStyle(name, parent=base[parent], **kw)

    title   = ps("PTitle", fontSize=28, textColor=C_WHITE, alignment=TA_CENTER,
                 fontName="Helvetica-Bold", leading=34, spaceAfter=2)
    sub     = ps("PSub",   fontSize=11, textColor=C_WHITE, alignment=TA_CENTER,
                 fontName="Helvetica", leading=14)
    sh      = ps("SH",     fontSize=9,  textColor=C_WHITE, alignment=TA_CENTER,
                 fontName="Helvetica-Bold", leading=11)
    cell    = ps("Cell",   fontSize=7.5, textColor=C_DARK_GRAY,
                 fontName="Helvetica", leading=10, spaceAfter=0)
    cellb   = ps("CellB",  fontSize=7.5, textColor=C_DARK_GRAY,
                 fontName="Helvetica-Bold", leading=10)
    warn    = ps("Warn",   fontSize=7.5, textColor=C_RED,
                 fontName="Helvetica-Bold", leading=10)
    small   = ps("Small",  fontSize=6.8, textColor=C_MID_GRAY,
                 fontName="Helvetica", leading=9)
    footer  = ps("Footer", fontSize=7,   textColor=C_WHITE, alignment=TA_CENTER,
                 fontName="Helvetica", leading=9)
    return dict(title=title, sub=sub, sh=sh, cell=cell, cellb=cellb,
                warn=warn, small=small, footer=footer)

S = make_styles()

def hdr(text, bg=C_HEADER):
    return Paragraph(text, S["sh"])

def cell(text, bold=False, warn=False, color=None):
    style = S["warn"] if warn else (S["cellb"] if bold else S["cell"])
    if color:
        style = ParagraphStyle("tmp", parent=style, textColor=color)
    return Paragraph(text, style)

def small(text):
    return Paragraph(text, S["small"])

# ── Table builders ────────────────────────────────────────────────────────────
def section_style(header_bg=C_HEADER, row_bg=C_WHITE, alt_bg=C_ROW_ALT):
    return TableStyle([
        ("BACKGROUND",  (0,0), (-1,0), header_bg),
        ("TEXTCOLOR",   (0,0), (-1,0), C_WHITE),
        ("FONTNAME",    (0,0), (-1,0), "Helvetica-Bold"),
        ("FONTSIZE",    (0,0), (-1,0), 7.5),
        ("ALIGN",       (0,0), (-1,0), "CENTER"),
        ("VALIGN",      (0,0), (-1,-1), "MIDDLE"),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [row_bg, alt_bg]),
        ("FONTNAME",    (0,1), (-1,-1), "Helvetica"),
        ("FONTSIZE",    (0,1), (-1,-1), 7),
        ("GRID",        (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")),
        ("TOPPADDING",  (0,0), (-1,-1), 2.5),
        ("BOTTOMPADDING",(0,0),(-1,-1), 2.5),
        ("LEFTPADDING", (0,0), (-1,-1), 4),
        ("RIGHTPADDING",(0,0), (-1,-1), 4),
        ("ROWSPAN",     (0,0), (-1,0), 1),
    ])

# ════════════════════════════════════════════════════════════════════════
# SECTION BUILDERS  (each returns a KeepTogether flowable)
# ════════════════════════════════════════════════════════════════════════

def make_airway(w):
    data = [
        [cell("Structure", bold=True), cell("Location / Note", bold=True), cell("EMT Significance", bold=True)],
        [cell("Epiglottis"),     cell("Base of tongue / larynx"),       cell("Covers trachea during swallowing; visualised in laryngoscopy")],
        [cell("Thyroid cartilage"), cell("Anterior neck (Adam's apple)"),cell("Landmark for cricothyroid membrane below it")],
        [cell("Cricoid cartilage"), cell("Below thyroid cartilage"),    cell("Only complete ring; Sellick's manoeuvre applied here")],
        [cell("Cricothyroid membrane"), cell("Between thyroid & cricoid"), cell("Emergency surgical airway site (cric)", warn=True)],
        [cell("Trachea"),        cell("C6 to T4–5; ~12 cm"),           cell("C-rings open posteriorly; carina at T4–5")],
        [cell("Carina"),         cell("Tracheal bifurcation at T4–5"), cell("Right mainstem bronchus more vertical → FB/tube migration")],
        [cell("Right bronchus"), cell("Shorter, wider, steeper"),       cell("Endobronchial intubation risk; FB aspiration site")],
        [cell("Alveoli"),        cell("~300 million; type I & II cells"),cell("Gas exchange; surfactant prevents collapse (type II)")],
    ]
    t = Table(data, colWidths=[w*0.22, w*0.35, w*0.43])
    style = section_style(C_BLUE, C_WHITE, C_LIGHT_BG)
    style.add("BACKGROUND", (0,4), (-1,4), colors.HexColor("#FADBD8"))
    t.setStyle(style)
    return KeepTogether([
        Table([[cell("AIRWAY ANATOMY & LANDMARKS", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_BLUE),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_cardio(w):
    data = [
        [cell("Chamber/Valve", bold=True), cell("Connects", bold=True), cell("Key Point", bold=True)],
        [cell("Right Atrium"),   cell("Receives SVC + IVC"),             cell("Contains SA node; receives deoxygenated blood")],
        [cell("Tricuspid valve"),cell("RA → RV"),                        cell("3 cusps; held by chordae tendineae")],
        [cell("Right Ventricle"),cell("Pumps → pulmonary artery"),       cell("Pulmonary circulation (low pressure)")],
        [cell("Left Atrium"),    cell("Receives 4 pulmonary veins"),     cell("Oxygenated blood from lungs")],
        [cell("Mitral valve"),   cell("LA → LV"),                        cell("2 cusps (bicuspid); most common valve diseased")],
        [cell("Left Ventricle"), cell("Pumps → Aorta"),                  cell("Thickest wall; systemic circulation (high pressure)")],
        [cell("SA Node"),        cell("Right atrium wall"),              cell("Primary pacemaker: 60–100 bpm", warn=True)],
        [cell("AV Node"),        cell("Atrio-ventricular junction"),     cell("Delays impulse 0.1 s; backup 40–60 bpm")],
        [cell("Bundle of His / BB"), cell("IVS → Purkinje fibers"),     cell("Rapid conduction; backup 20–40 bpm")],
    ]
    t = Table(data, colWidths=[w*0.25, w*0.32, w*0.43])
    t.setStyle(section_style(C_RED, C_WHITE, C_RED_BG))
    return KeepTogether([
        Table([[cell("CARDIOVASCULAR: CHAMBERS, VALVES & CONDUCTION", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_RED),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_pulse_shock(w):
    left_data = [
        [cell("Pulse Site", bold=True), cell("Location", bold=True),     cell("Use", bold=True)],
        [cell("Radial"),    cell("Wrist, lateral"),                       cell("Routine; absent → SBP < 80 mmHg", warn=True)],
        [cell("Brachial"),  cell("Antecubital fossa"),                    cell("BP in children; absent → SBP < 70 mmHg")],
        [cell("Carotid"),   cell("Lateral to trachea, neck"),            cell("CPR check; absent → SBP < 60 mmHg", warn=True)],
        [cell("Femoral"),   cell("Inguinal crease, midpoint"),           cell("Large bore IV; absent → SBP < 70 mmHg")],
        [cell("Popliteal"), cell("Posterior knee"),                      cell("Lower limb perfusion")],
        [cell("Dorsalis pedis"), cell("Dorsum of foot"),                cell("Distal perfusion check")],
        [cell("Post. tibial"),   cell("Posterior medial malleolus"),    cell("Distal perfusion check")],
    ]
    lt = Table(left_data, colWidths=[w*0.22, w*0.35, w*0.43])
    lt.setStyle(section_style(C_RED, C_WHITE, C_RED_BG))

    right_data = [
        [cell("Shock Type", bold=True), cell("Mechanism", bold=True), cell("Signs", bold=True)],
        [cell("Hypovolaemic"), cell("↓ blood/fluid volume"),     cell("↑HR, ↓BP, cool/pale/clammy skin")],
        [cell("Cardiogenic"),  cell("Heart pump failure"),        cell("↑HR, ↓BP, crackles, JVD, oedema")],
        [cell("Distributive"), cell("Vasodilation (sepsis/anaphylaxis/neuro)"), cell("Warm flushed skin (early sepsis/anaphylaxis)")],
        [cell("Neurogenic"),   cell("T1–T4 SCI; sympathetic loss"), cell("Bradycardia + hypotension (warm skin)", warn=True)],
        [cell("Obstructive"),  cell("PE, tamponade, tension PTX"), cell("JVD + ↓BP; tension → tracheal deviation")],
    ]
    rt = Table(right_data, colWidths=[w*0.22, w*0.38, w*0.40])
    rt.setStyle(section_style(C_ORANGE, C_WHITE, C_YELLOW_BG))

    return KeepTogether([
        Table([[
            Table([[cell("PULSE SITES & SHOCK THRESHOLDS", bold=True, color=C_WHITE)]],
                  colWidths=[w*0.5-3], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_RED),
                    ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
            Table([[cell("SHOCK CLASSIFICATION", bold=True, color=C_WHITE)]],
                  colWidths=[w*0.5-3], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_ORANGE),
                    ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        ]], colWidths=[w*0.5, w*0.5],
           style=TableStyle([("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0),
                             ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),0)])),
        Table([[lt, rt]], colWidths=[w*0.5, w*0.5],
              style=TableStyle([("VALIGN",(0,0),(-1,-1),"TOP"),
                                ("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0),
                                ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),2)])),
    ])

def make_spinal(w):
    data = [
        [cell("Level", bold=True), cell("Structures Supplied", bold=True), cell("Injury Consequence", bold=True)],
        [cell("C3–C5"),  cell("Phrenic nerve → Diaphragm"),            cell("Respiratory arrest ('C3,4,5 keeps diaphragm alive')", warn=True)],
        [cell("C5–C6"),  cell("Deltoid, biceps, wrist extensors"),      cell("Arm weakness; some hand function lost")],
        [cell("C7–C8"),  cell("Triceps, finger flexors/extensors"),     cell("Hand function impaired")],
        [cell("T1–T4"),  cell("Sympathetic chain, upper limbs"),        cell("Neurogenic shock (brady + hypotension)", warn=True)],
        [cell("T4"),     cell("Nipple line dermatome"),                  cell("Sensory level reference landmark")],
        [cell("T10"),    cell("Umbilicus dermatome"),                   cell("Sensory level reference landmark")],
        [cell("L1"),     cell("Inguinal region"),                       cell("Sensory level reference")],
        [cell("L2–L4"),  cell("Quadriceps, hip flexors"),               cell("Walking impaired; bowel/bladder intact")],
        [cell("S2–S4"),  cell("Perineum, bladder, bowel"),              cell("Cauda equina → bowel/bladder dysfunction", warn=True)],
    ]
    t = Table(data, colWidths=[w*0.15, w*0.40, w*0.45])
    style = section_style(C_PURPLE, C_WHITE, colors.HexColor("#F5EEF8"))
    style.add("BACKGROUND", (0,1), (-1,1), colors.HexColor("#FADBD8"))
    style.add("BACKGROUND", (0,2), (-1,2), colors.HexColor("#F5EEF8"))
    style.add("BACKGROUND", (0,8), (-1,8), colors.HexColor("#FDEDEC"))
    t.setStyle(style)
    return KeepTogether([
        Table([[cell("SPINAL CORD LEVELS & CLINICAL CONSEQUENCES", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_PURPLE),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_burns(w):
    left_data = [
        [cell("Degree", bold=True), cell("Layers", bold=True), cell("Appearance", bold=True), cell("Pain", bold=True)],
        [cell("1st (Superficial)"),      cell("Epidermis only"),          cell("Red, dry"),          cell("Painful")],
        [cell("2nd (Partial thickness)"),cell("Epidermis + part dermis"),  cell("Blisters, moist"),  cell("Very painful", warn=True)],
        [cell("3rd (Full thickness)"),   cell("All dermis + epidermis"),  cell("White/leathery/charred"), cell("Painless (nerve loss)", color=C_MID_GRAY)],
    ]
    lt = Table(left_data, colWidths=[w*0.30, w*0.26, w*0.24, w*0.20])
    lt.setStyle(section_style(C_ORANGE, C_WHITE, C_YELLOW_BG))

    right_data = [
        [cell("Region", bold=True), cell("% BSA", bold=True)],
        [cell("Head + Neck"),        cell("9%")],
        [cell("Each Arm"),           cell("9% (each)")],
        [cell("Chest (anterior)"),   cell("9%")],
        [cell("Abdomen (anterior)"), cell("9%")],
        [cell("Upper back"),         cell("9%")],
        [cell("Lower back"),         cell("9%")],
        [cell("Each Thigh"),         cell("9% (each)")],
        [cell("Each Lower Leg+Foot"),cell("9% (each)")],
        [cell("Perineum"),           cell("1%", bold=True)],
        [cell("TOTAL"),              cell("100%", bold=True)],
    ]
    rt = Table(right_data, colWidths=[w*0.55, w*0.45])
    rt.setStyle(section_style(C_ORANGE, C_WHITE, C_YELLOW_BG))

    return KeepTogether([
        Table([[
            Table([[cell("BURNS CLASSIFICATION", bold=True, color=C_WHITE)]],
                  colWidths=[w*0.5-3], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_ORANGE),
                    ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
            Table([[cell("RULE OF NINES", bold=True, color=C_WHITE)]],
                  colWidths=[w*0.5-3], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_ORANGE),
                    ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        ]], colWidths=[w*0.5, w*0.5],
           style=TableStyle([("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0),
                             ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),0)])),
        Table([[lt, rt]], colWidths=[w*0.5, w*0.5],
              style=TableStyle([("VALIGN",(0,0),(-1,-1),"TOP"),
                                ("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0),
                                ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),2)])),
    ])

def make_abdomen(w):
    data = [
        [cell("Quadrant", bold=True), cell("Key Organs", bold=True), cell("Clinical Alert", bold=True)],
        [cell("RUQ"),  cell("Liver, gallbladder, right kidney, hepatic flexure"), cell("Hepatic injury → massive haemorrhage; Murphy's sign (cholecystitis)")],
        [cell("LUQ"),  cell("Stomach, spleen, left kidney, splenic flexure"),     cell("Splenic rupture → haemorrhagic shock; Kehr's sign (referred L shoulder pain)")],
        [cell("RLQ"),  cell("Appendix, cecum, right ovary/tube, right ureter"),  cell("McBurney's point tenderness → appendicitis")],
        [cell("LLQ"),  cell("Sigmoid colon, left ovary/tube, left ureter"),      cell("Diverticulitis, ectopic pregnancy, AAA may radiate here")],
        [cell("Epigastric"), cell("Stomach, pancreas, aorta"),                   cell("AAA pulsatile mass; gastric ulcer; pancreatitis radiates to back", warn=True)],
        [cell("Periumbilical"),cell("Small bowel, aorta"),                       cell("Early appendicitis (migrates to RLQ); mesenteric ischaemia")],
    ]
    t = Table(data, colWidths=[w*0.18, w*0.40, w*0.42])
    t.setStyle(section_style(C_GREEN, C_WHITE, C_GREEN_BG))
    return KeepTogether([
        Table([[cell("ABDOMINAL QUADRANTS & CLINICAL ALERTS", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_GREEN),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_cranial_nerves(w):
    data = [
        [cell("CN#", bold=True), cell("Name", bold=True), cell("Type", bold=True), cell("Function / EMT Use", bold=True)],
        [cell("I"),   cell("Olfactory"),         cell("S"),  cell("Smell")],
        [cell("II"),  cell("Optic"),             cell("S"),  cell("Vision; pupil afferent")],
        [cell("III"), cell("Oculomotor"),        cell("M"),  cell("Eye movement (most); pupil constriction — blown pupil = uncal herniation", warn=True)],
        [cell("IV"),  cell("Trochlear"),         cell("M"),  cell("Eye down-and-in")],
        [cell("V"),   cell("Trigeminal"),        cell("B"),  cell("Face sensation; corneal reflex afferent; mastication")],
        [cell("VI"),  cell("Abducens"),          cell("M"),  cell("Lateral eye movement")],
        [cell("VII"), cell("Facial"),            cell("B"),  cell("Facial expression; taste anterior 2/3 tongue")],
        [cell("VIII"),cell("Vestibulocochlear"), cell("S"),  cell("Hearing + balance")],
        [cell("IX"),  cell("Glossopharyngeal"),  cell("B"),  cell("Gag reflex (afferent); swallowing; taste posterior 1/3")],
        [cell("X"),   cell("Vagus"),             cell("B"),  cell("Parasympathetic heart/gut; ↓HR; gag reflex efferent; vasovagal syncope", warn=True)],
        [cell("XI"),  cell("Accessory"),         cell("M"),  cell("SCM + trapezius")],
        [cell("XII"), cell("Hypoglossal"),       cell("M"),  cell("Tongue movement; deviation → lesion side")],
    ]
    t = Table(data, colWidths=[w*0.07, w*0.22, w*0.08, w*0.63])
    style = section_style(C_TEAL, C_WHITE, colors.HexColor("#E8F8F5"))
    style.add("BACKGROUND", (0,4), (-1,4), colors.HexColor("#FADBD8"))
    style.add("BACKGROUND", (0,11), (-1,11), colors.HexColor("#FADBD8"))
    t.setStyle(style)
    return KeepTogether([
        Table([[cell("CRANIAL NERVES (S=Sensory M=Motor B=Both)", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_TEAL),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_vital_signs(w):
    data = [
        [cell("Parameter", bold=True), cell("Adult Normal", bold=True), cell("Child (1–10 yr)", bold=True), cell("Infant (<1 yr)", bold=True), cell("Critical Alert", bold=True)],
        [cell("HR"),       cell("60–100 bpm"),  cell("70–120 bpm"),  cell("100–160 bpm"), cell("< 50 or > 150 adult = emergency", warn=True)],
        [cell("RR"),       cell("12–20 /min"),  cell("20–30 /min"),  cell("30–60 /min"),  cell("< 8 or > 30 adult = respiratory distress", warn=True)],
        [cell("SBP"),      cell("90–140 mmHg"), cell("80–110 mmHg"), cell("70–90 mmHg"),  cell("SBP < 90 = hypotension; < 60 = no carotid pulse")],
        [cell("SpO2"),     cell(">= 95%"),      cell(">= 95%"),      cell(">= 95%"),       cell("< 90% = hypoxia; < 85% = severe hypoxia", warn=True)],
        [cell("Temp"),     cell("36.5–37.5 °C"),cell("36.5–37.5 °C"),cell("36.5–37.5 °C"),cell("< 35 °C = hypothermia; > 38.5 °C = fever")],
        [cell("GCS"),      cell("15 (normal)"), cell("15 (normal)"), cell("Modified scale"),cell("< 8 = severe TBI; consider airway", warn=True)],
        [cell("Glucose"),  cell("4–7 mmol/L"),  cell("4–7 mmol/L"),  cell("3–6 mmol/L"),  cell("< 3 = hypoglycaemia; > 15 = hyperglycaemia")],
    ]
    t = Table(data, colWidths=[w*0.14, w*0.18, w*0.18, w*0.18, w*0.32])
    t.setStyle(section_style(C_DARK_GRAY, C_WHITE, C_LIGHT_BG))
    return KeepTogether([
        Table([[cell("VITAL SIGNS REFERENCE", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_DARK_GRAY),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_body_cavities(w):
    data = [
        [cell("Cavity", bold=True), cell("Contents", bold=True), cell("Dividing Structure", bold=True)],
        [cell("Cranial"),   cell("Brain, cranial nerves, CSF"),             cell("Foramen magnum (↔ spinal canal)")],
        [cell("Spinal"),    cell("Spinal cord, nerve roots, CSF"),          cell("Vertebral column")],
        [cell("Thoracic"),  cell("Heart (mediastinum), lungs, great vessels, oesophagus, trachea"), cell("Diaphragm (↕ abdominal)")],
        [cell("Abdominal"), cell("Stomach, liver, spleen, SI, LI, kidneys, pancreas, aorta"),        cell("Pelvic inlet (↕ pelvic)")],
        [cell("Pelvic"),    cell("Bladder, rectum, uterus/ovaries (F), prostate (M)"),               cell("Pelvic floor muscles")],
        [cell("Pleural (x2)"), cell("Lung + pleural fluid; potential space"),                       cell("Mediastinum (separates left/right)")],
        [cell("Pericardial"), cell("Heart + pericardial fluid"),                                    cell("Fibrous pericardium")],
    ]
    t = Table(data, colWidths=[w*0.20, w*0.48, w*0.32])
    t.setStyle(section_style(C_HEADER, C_WHITE, C_LIGHT_BG))
    return KeepTogether([
        Table([[cell("BODY CAVITIES & CONTENTS", bold=True, color=C_WHITE)]],
              colWidths=[w], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_HEADER),
                ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        t])

def make_bones(w):
    left_data = [
        [cell("Bone Count", bold=True), cell("Value", bold=True)],
        [cell("Total adult bones"),    cell("206")],
        [cell("Axial skeleton"),       cell("80 bones")],
        [cell("Appendicular"),         cell("126 bones")],
        [cell("Cervical vertebrae"),   cell("7 (C1=Atlas, C2=Axis)")],
        [cell("Thoracic vertebrae"),   cell("12 (with ribs)")],
        [cell("Lumbar vertebrae"),     cell("5 (largest)")],
        [cell("Ribs"),                 cell("12 pairs: True 1-7 / False 8-10 / Floating 11-12")],
        [cell("Carpal bones"),         cell("8 (Scaphoid most fractured)")],
        [cell("Tarsal bones"),         cell("7 (Calcaneus = heel, largest)")],
    ]
    lt = Table(left_data, colWidths=[w*0.55, w*0.45])
    lt.setStyle(section_style(C_HEADER, C_WHITE, C_LIGHT_BG))

    right_data = [
        [cell("Joint Type", bold=True), cell("Example", bold=True), cell("Motion", bold=True)],
        [cell("Ball & socket"), cell("Hip, shoulder"),     cell("Multiaxial")],
        [cell("Hinge"),         cell("Elbow, knee, ankle"),cell("Uniaxial (flex/ext)")],
        [cell("Pivot"),         cell("C1–C2, radioulnar"), cell("Rotation only")],
        [cell("Condyloid"),     cell("Wrist"),             cell("Biaxial")],
        [cell("Saddle"),        cell("Thumb CMC"),         cell("Biaxial")],
        [cell("Gliding/Plane"), cell("Intercarpal"),       cell("Non-axial glide")],
    ]
    rt = Table(right_data, colWidths=[w*0.33, w*0.35, w*0.32])
    rt.setStyle(section_style(C_HEADER, C_WHITE, C_LIGHT_BG))

    return KeepTogether([
        Table([[
            Table([[cell("SKELETAL LANDMARKS", bold=True, color=C_WHITE)]],
                  colWidths=[w*0.4-3], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_HEADER),
                    ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
            Table([[cell("JOINT TYPES", bold=True, color=C_WHITE)]],
                  colWidths=[w*0.6-3], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),C_HEADER),
                    ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])),
        ]], colWidths=[w*0.4, w*0.6],
           style=TableStyle([("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0),
                             ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),0)])),
        Table([[lt, rt]], colWidths=[w*0.4, w*0.6],
              style=TableStyle([("VALIGN",(0,0),(-1,-1),"TOP"),
                                ("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0),
                                ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),2)])),
    ])

# ════════════════════════════════════════════════════════════════════════
# PAGE BACKGROUND + HEADER using canvas
# ════════════════════════════════════════════════════════════════════════
HEADER_HEIGHT = 2.0*cm

def draw_background(c, doc):
    w, h = PAGE_W, PAGE_H
    # dark navy header band
    c.setFillColor(C_HEADER)
    c.rect(0, h - HEADER_HEIGHT, w, HEADER_HEIGHT, fill=1, stroke=0)
    # red accent stripe
    c.setFillColor(C_RED)
    c.rect(0, h - HEADER_HEIGHT - 3, w, 3, fill=1, stroke=0)
    # title
    c.setFillColor(C_WHITE)
    c.setFont("Helvetica-Bold", 22)
    c.drawCentredString(w/2, h - 1.4*cm, "PARAMEDICAL EMT - ANATOMY QUICK REFERENCE POSTER")
    c.setFont("Helvetica", 10)
    c.drawCentredString(w/2, h - 1.85*cm,
        "Vital Structures, Landmarks & Clinical Decision Points  |  All Systems Overview")
    # footer band
    c.setFillColor(C_HEADER)
    c.rect(0, 0, w, 0.65*cm, fill=1, stroke=0)
    c.setFillColor(C_WHITE)
    c.setFont("Helvetica", 7)
    c.drawCentredString(w/2, 0.2*cm,
        "For educational use only  |  Paramedical EMT Anatomy  |  "
        "Red = Critical Action  |  Always follow local protocols")
    # subtle side borders
    c.setStrokeColor(C_RED)
    c.setLineWidth(3)
    c.line(MARGIN*0.4, HEADER_HEIGHT + 3, MARGIN*0.4, 0.65*cm)
    c.line(w - MARGIN*0.4, HEADER_HEIGHT + 3, w - MARGIN*0.4, 0.65*cm)

# ════════════════════════════════════════════════════════════════════════
# MAIN BUILD
# ════════════════════════════════════════════════════════════════════════
def build():
    doc = BaseDocTemplate(
        OUTPUT,
        pagesize=landscape(A1),
        leftMargin=MARGIN, rightMargin=MARGIN,
        topMargin=HEADER_HEIGHT + 0.5*cm + 3,
        bottomMargin=0.75*cm,
    )

    usable_w = PAGE_W - 2*MARGIN
    col_gap  = 0.35*cm
    # 3-column layout
    n_cols = 3
    col_w  = (usable_w - (n_cols-1)*col_gap) / n_cols

    frames = [
        Frame(MARGIN + i*(col_w + col_gap),
              doc.bottomMargin,
              col_w,
              PAGE_H - doc.topMargin - doc.bottomMargin,
              leftPadding=0, rightPadding=0, topPadding=0, bottomPadding=0,
              showBoundary=0)
        for i in range(n_cols)
    ]

    doc.addPageTemplates([PageTemplate(id="poster", frames=frames,
                                       onPage=draw_background)])

    # ── Content ordering ─────────────────────────────────────────────
    gap = Spacer(1, 0.22*cm)

    story = []
    # Column 1
    story.append(make_airway(col_w))
    story.append(gap)
    story.append(make_cardio(col_w))
    story.append(gap)
    story.append(make_pulse_shock(col_w))

    # Column 2
    story.append(make_spinal(col_w))
    story.append(gap)
    story.append(make_burns(col_w))
    story.append(gap)
    story.append(make_abdomen(col_w))
    story.append(gap)
    story.append(make_vital_signs(col_w))

    # Column 3
    story.append(make_cranial_nerves(col_w))
    story.append(gap)
    story.append(make_body_cavities(col_w))
    story.append(gap)
    story.append(make_bones(col_w))

    doc.build(story)
    print(f"PDF created: {OUTPUT}")

build()
Running Command

cd /tmp/workspace/emt-anatomy-poster && python create_poster.py 2>&1

Running Command

ls -lh /tmp/workspace/emt-anatomy-poster/

Your poster is ready! Download it here:

EMT Anatomy Quick Reference

PDF Document · PDF


What's on the poster (A1 landscape, 3-column layout):
Column 1
  • Airway Anatomy & Landmarks - epiglottis, cricothyroid membrane, carina, right bronchus, alveoli
  • Cardiovascular - chambers, valves, conduction system (SA/AV node, bundle of His)
  • Pulse Sites & Shock Thresholds + Shock Classification table (5 types)
Column 2
  • Spinal Cord Levels & Consequences - C3-C5 diaphragm, T1-T4 neurogenic shock, S2-S4 cauda equina
  • Burns Classification (1st/2nd/3rd degree) + Rule of Nines
  • Abdominal Quadrants & Clinical Alerts - McBurney's, Kehr's sign, AAA
  • Vital Signs Reference (adult / child / infant with critical thresholds)
Column 3
  • All 12 Cranial Nerves - type + EMT function (blown pupil, vagal syncope highlighted)
  • Body Cavities & Contents
  • Skeletal Landmarks + Joint Types
Design highlights: Navy/red/green/teal color-coded sections, red-highlighted rows for critical actions, alternating row shading for fast scanning, and a footer reminder to follow local protocols. Sized for A1 print or use on any tablet screen.
This is a shared conversation. Sign in to Orris to start your own chat.