oppurtunities for passive income as a hectic radiology resident

Here are some practical passive income ideas tailored specifically for a busy radiology resident - options that work around your schedule and leverage your existing expertise:
Searching sources...
Searching the Web

passive income ideas for radiology residents physicians 2025

Here's a practical breakdown built specifically for a radiology resident - time-constrained, medically trained, and often with unpredictable schedules:

Passive Income for a Hectic Radiology Resident

1. Leverage Your Radiology Knowledge Directly

Online radiology teaching content
  • Record case-based teaching videos once and upload to YouTube or sell on platforms like Udemy, Teachable, or Osmosis. Radiology education is in high demand among medical students and junior residents.
  • Write radiology question banks or flashcard decks (Anki) and sell them on platforms like Gumroad or Etsy. A well-structured chest X-ray or CT interpretation guide can sell passively for years.
Radiopaedia contributions
  • Not directly paid, but builds your profile and can lead to consulting/editing work.
AI radiology annotation / data labeling
  • Companies like Scale AI, Aidoc, and Nanox pay radiologists to annotate imaging datasets. You do it on your own schedule - 1-2 hours on a quiet night or weekend.

2. Financial Investments (Set-and-Forget)

Index fund / ETF investing
  • The single highest-ROI passive income option for residents. Even investing $300-500/month into low-cost index funds (Vanguard, Fidelity) during residency compounds dramatically by the time you're an attending.
  • Use a Roth IRA first (max $7,000/year in 2026) - your tax bracket as a resident is lower than it will ever be again. This is a uniquely favorable window.
High-yield savings / money market accounts
  • Park your emergency fund in a HYSA (currently ~4-5% APY). Completely passive.
REITs (Real Estate Investment Trusts)
  • If you want real estate exposure without being a landlord, REITs traded on stock exchanges give you dividend income with zero management burden.

3. Real Estate (Low Involvement Options)

Real estate crowdfunding
  • Platforms like Fundrise, RealtyMogul, or CrowdStreet let you invest in real estate projects with as little as $500-1,000. Returns are typically 6-12% annually in dividends/appreciation, and you do nothing after investing.
  • Physician-focused platforms like Passive Income MD have curated real estate syndication deals specifically for doctors.
House hacking (if you own)
  • If you're buying a home near your program, renting out a room or basement covers a significant portion of your mortgage.

4. Digital Products & Writing

Medical writing / radiology case reports
  • Write a case report or review article once. Journals don't pay well, but if you publish in open-access journals, you build a reputation that leads to paid consulting/editorial work later.
Radiology blog or newsletter
  • Niche radiology blogs (e.g., focused on MSK, neuro, or interventional) attract a dedicated audience. Monetize with ads, affiliate links to textbooks, or a paid Substack tier. Initial setup is time-heavy, but ongoing is ~1-2 hours/week.
Selling study materials
  • ABR Core Exam prep materials are perennially needed. If you create a high-quality study guide, question set, or spreadsheet system, sell it on Gumroad or Teachers Pay Teachers.

5. Peer-to-Peer / Automated Income

Robo-advisors
  • Betterment or Wealthfront auto-invest and rebalance your portfolio. No active management needed.
Dividend stock portfolios
  • Build gradually during residency. Healthcare and utility stocks tend to pay reliable dividends.

Honest Prioritization for a Busy Resident

Given your time constraints, here's the realistic order of effort-to-reward:
OptionUpfront EffortOngoing TimeIncome Potential
Roth IRA + Index FundsLowMinimalHigh (long-term)
Real estate crowdfundingLowMinimalMedium
Radiology Anki/study materialsMediumVery lowLow-Medium
AI data annotationLowFlexibleLow-Medium
YouTube/teaching contentHighLow after launchMedium-High
Blog/newsletterHighLow-MediumVariable
The honest truth: During residency, your time is too valuable to chase complex passive income schemes. The two highest-leverage moves are:
  1. Max out your Roth IRA every year - the tax-free compounding from your resident years is irreplaceable.
  2. Build one digital knowledge product (Anki deck, study guide, short course) that aligns with your radiology exam prep - you're studying anyway, so the marginal effort is low.
Everything else can scale after you're an attending with more bandwidth and capital.

differentiate between blood and iron on mri based on mri machine coil if swan shows blooming with old infarct and acute at the same region again

Reading File
Searching sources...
Finding Sources
Finding Sources
Searching the Web

SWAN MRI blooming artifact blood vs iron differentiation old infarct hemosiderin 2024

Finding Sources
Finding Sources
Searching the Web

SWAN GRE phase image blood vs calcification vs iron differentiation radiology MRI coil susceptibility

Finding Sources
Reading Web Page

https://mriquestions.com/phase-of-blood-v-ca.html

Finding Sources
Searching the Web

old infarct acute re-infarction same region SWAN blooming hemosiderin differentiation MRI approach

This is a brilliant and clinically nuanced question. Let me break this down comprehensively.

Blood vs Iron on MRI / SWAN: The Full Framework


Part 1 - The Core Physics (Why Both Bloom)

Both blood products and iron (e.g., hemosiderin, ferritin, mineral iron deposits) bloom on SWAN/SWI/GRE because they are paramagnetic - they distort the local magnetic field, causing phase shifts and signal dropout that extend beyond the true lesion boundary (hence "blooming" = lesion appears larger than it is).
Calcification is the key diamagnetic counterpart - it also blooms on the magnitude image but has opposite phase signal, which is how you differentiate it.
The problem you're asking about is harder: blood products and iron are both paramagnetic - so on the magnitude/SWI image alone, they look identical. You need additional tools.

Part 2 - The Handedness Rule (Scanner-Dependent Phase Signal)

This is the most important and most commonly confused concept. The phase image is the key to differentiating substances, but phase polarity flips depending on the scanner manufacturer:
ScannerSystemVeins / Blood (paramagnetic) on PhaseCalcification (diamagnetic) on Phase
SiemensLeft-handedBrightDark
Canon (Toshiba)Left-handedBrightDark
GE (SWAN)Right-handedDarkBright
Philips (venous BOLD)Right-handedDarkBright
How to calibrate instantly at the scanner:
  • Find the sagittal sinus or cortical veins on the phase image - they contain deoxyhemoglobin (paramagnetic). Whatever signal these are = the expected signal for blood/iron.
  • Find the pineal gland, choroid plexus, or dorsum sellae (known physiologic calcification) - they will be the opposite signal.
  • On GE SWAN specifically: veins are dark on phase, calcification is bright on phase.
Practical rule on SWAN (GE):
  • Blood / iron / hemosiderin = dark on SWAN magnitude + dark on phase
  • Calcification = dark on SWAN magnitude + bright on phase
So on SWAN: if you see blooming and the phase is bright - think calcium. If phase is dark - think blood/iron/hemosiderin.

Part 3 - Differentiating Blood FROM Iron (Both Paramagnetic)

This is the real challenge because the phase image cannot separate these two - both are paramagnetic and behave identically on phase. You need multisequence correlation:
FeatureAcute Blood (deoxy-Hb / early met-Hb)Chronic Blood (hemosiderin / ferritin)Mineral Iron deposit (e.g., basal ganglia iron, neurodegeneration)
SWAN/SWIBlooms (dark, magnitude)Blooms strongly (dark)Blooms (dark)
Phase imageParamagnetic (dark on GE/SWAN)Paramagnetic (dark on GE/SWAN)Paramagnetic (dark on GE/SWAN)
T1WVariable: early = isointense; subacute = bright (extracellular met-Hb)Hypointense / darkHypointense / dark
T2W / FLAIRHypointense (deoxy-Hb, intracellular met-Hb) or hyperintense (extracellular)Markedly hypointense (rim or dot)Hypointense
DWIRestricted (acute infarct with hemorrhage)No restrictionNo restriction
ADCLowNormal to highNormal
FLAIRHyperintense (surrounding edema)Hypointense scar / encephalomalaciaIsointense or low
T1 fat satMet-Hb = brightDarkDark
CTHyperdense if acuteIsodense / hypodense (chronic)Can be hyperdense (mineral)

Part 4 - Your Specific Clinical Scenario: SWAN Blooming at Old Infarct + Acute at Same Region

This is the classic trap in stroke MRI. Here's what happens:
Why it's a diagnostic dilemma: An old infarct leaves behind:
  • Encephalomalacia / gliosis
  • Hemosiderin deposits (if there was any prior hemorrhagic transformation, even microhemorrhagic)
These hemosiderin deposits bloom on SWAN and cannot be distinguished from acute hemorrhage on SWAN alone.
When the patient re-infarcts in the same territory, or presents acutely again with new symptoms, you see blooming at a region with known old disease and cannot tell if:
  1. This is just the old hemosiderin from the prior infarct
  2. There is new hemorrhagic transformation of the new infarct
  3. Both
The 5-sequence approach to resolve this:
SequenceWhat to look for
DWI + ADCNew restricted diffusion = active acute ischemia. This is the anchor sequence.
FLAIRNew hyperintensity (cytotoxic edema, acute) vs. old hypointense cavity (encephalomalacia from prior)
T1WOld hemosiderin = hypointense. Subacute blood = hyperintense (T1 shortening from met-Hb). New acute = isointense.
T2WOld infarct cavity = very bright (CSF-like). Acute = subtle T2 hyperintensity + mass effect
CT (if available)Acute hemorrhage = hyperdense. Old hemosiderin/calcium on CT = hypodense or isodense. CT is your gold standard for ruling IN acute hemorrhage.
The key practical algorithm:
SWAN blooming at old infarct site, new presentation:

1. Is DWI restricted in the SAME zone?
   YES → Active acute ischemia confirmed
   
2. Is there NEW T1 bright signal (not old)?
   YES → Subacute/acute hemorrhagic transformation (methemoglobin)
   
3. Does FLAIR show NEW hyperintensity beyond the old cavity?
   YES → Acute edema = new event
   
4. Does CT show hyperdensity?
   YES → Acute hemorrhage
   NO → Likely hemosiderin from old event
   
5. Compare with prior MRI if available
   Old blooming same size/location = hemosiderin, not new
Critical point: SWAN/SWI cannot on its own distinguish old hemosiderin from new deoxyhemoglobin. The key discriminators are DWI (ischemia) and T1 (subacute blood = bright). FLAIR suppresses free water and helps distinguish an old CSF-filled cavity from new edema.

Part 5 - Blood Product Evolution Timeline on MRI (Quick Reference)

StageTimingBlood productT1T2SWAN/GRE
Hyperacute<12 hrsOxyhemoglobinIsoBrightMinimal blooming
Acute12h - 2dDeoxyhemoglobinIsoDarkBlooms
Early subacute2-7dIntracellular methemoglobinBrightDarkBlooms
Late subacute1-4 wkExtracellular methemoglobinBrightBrightBlooms
ChronicMonths-yearsHemosiderin / ferritinDarkVery darkStrongly blooms
  • Old hemosiderin is in the chronic stage - it has the most pronounced blooming because hemosiderin is highly paramagnetic.
  • Acute deoxyhemoglobin also blooms but is accompanied by T2 darkening and DWI restriction (if ischemic).

Summary Table: Blood vs Iron vs Calcium on SWAN (GE system)

SubstanceSWAN magnitudePhase (GE = right-handed)T1T2DWI
Deoxyhemoglobin (acute blood)Dark/bloomsDarkIsoDarkRestricted (if infarct)
Methemoglobin (subacute)Dark/bloomsDarkBrightDark then brightRestricted fading
Hemosiderin (chronic blood)Dark/bloomsDarkDarkVery darkNo restriction
Ferritin / mineral ironDark/bloomsDarkDarkDarkNo restriction
CalcificationDark/bloomsBrightDarkVariableNo restriction
The bottom line: on GE SWAN, the phase image is the only way to separate calcium from blood/iron. Within blood and iron, you need T1, T2, DWI, and clinical timeline to differentiate. SWI/SWAN alone is insufficient for the blood-vs-old-hemosiderin problem - you must use it as one component of a multisequence read.

segmnts of ica

The internal carotid artery (ICA) has multiple classification systems, the most widely used being the Bouthillier (1996) system with 7 segments (C1-C7). Let me pull the authoritative anatomical detail from the medical library.
Searching sources...
Reading File
Finding Sources
Finding Sources
Searching the Web

Bouthillier segments internal carotid artery C1-C7 anatomy radiology 2024

Finding Sources
Reading Web Page

https://radiopaedia.org/articles/internal-carotid-artery-1?l…

Reading File
Reading File
Loading Image
Here is a complete, radiologist-oriented breakdown of the ICA segments.

Segments of the Internal Carotid Artery (ICA)

Bouthillier Classification (1996) - The Standard

The most widely used system. 7 segments, C1 to C7, running distal-to-proximal in numerical order (C1 = lowest, C7 = terminal).
Mnemonic: "Can Petrous Lacerum Cross Clinoid Optic Communicating"
C - Cervical, P - Petrous, L - Lacerum, C - Cavernous, C - Clinoid, O - Ophthalmic, C - Communicating

ICA Segments Diagram - Carotid Syphon showing C1-C5 with branches and cranial nerve relationships
Fig. Schematic of the Carotid Syphon showing ICA segments C1-C5 with branches and cranial nerve relationships. (Grainger & Allison's Diagnostic Radiology)

Segment-by-Segment Detail

SegmentNameStartEndLocationBranches
C1CervicalCCA bifurcation (C4 level)Entry into carotid canalNeck, in carotid sheathNone
C2PetrousEntry into carotid canalPosterior edge of foramen lacerumWithin petrous temporal boneCaroticotympanic a., Vidian (pterygoid canal) a.
C3LacerumAbove foramen lacerumSuperior margin of petrolingual ligamentLies over (not through) foramen lacerumNone
C4CavernousPetrolingual ligamentProximal dural ring (anterior clinoid)Inside cavernous sinusMeningohypophyseal trunk, Inferolateral trunk, McConnell's capsular aa.
C5ClinoidProximal dural ringDistal dural ringBetween the two dural rings; transitional extradural-intraduralNone
C6Ophthalmic (Supraclinoid)Distal dural ringJust proximal to PComm originIntradural, lateral to optic chiasmOphthalmic a., Superior hypophyseal a.
C7Communicating (Terminal)PComm originICA bifurcationIntraduralPosterior communicating a., Anterior choroidal a. → terminates as ACA + MCA

Key Anatomical Points for Radiology

The "S"-shaped carotid syphon: The ICA makes a series of four 90° turns from C2 through C6 - this creates the characteristic syphon shape seen on lateral DSA/CTA. The curves are:
  1. C2: 90° anteromedially in carotid canal (in front of cochlea)
  2. C3→C4: 90° superiorly then immediately 90° anteriorly entering cavernous sinus
  3. C4→C5: 90° superiorly through proximal dural ring
  4. C5→C6: 90° posteriorly through distal dural ring (medial to anterior clinoid process)
Branching pattern rule:
  • Odd segments (C1, C3, C5) = no branches
  • Even segments (C2, C4, C6) = have branches
  • C7 (terminal) = major terminal branches
Clinically important relations:
  • C4 (Cavernous): CN III, IV, V1, V2 run in the lateral wall of the cavernous sinus; CN VI runs directly lateral to the artery. Cavernous ICA aneurysm causes painful ophthalmoplegia.
  • C5 (Clinoid): The transition zone between extradural (cavernous) and intradural. Aneurysms here are "paraclinoid" and surgically complex; they don't rupture into subarachnoid space (being extradural).
  • C6 (Ophthalmic): Most common site of paraclinoid aneurysms. Ophthalmic artery arises here - its occlusion causes amaurosis fugax / central retinal artery occlusion.
  • C7 (Communicating): Posterior communicating artery origin - classic site for PComm aneurysms causing CN III palsy (pupil-involving).

Other Classification Systems (Comparison)

Fisher (1938)Gibo (1981)Bouthillier (1996)
CervicalC1 (cervical)C1 Cervical
IntrapetrousC2 (petrous)C2 Petrous
--C3 Lacerum
IntracavernousC3 (cavernous)C4 Cavernous
--C5 Clinoid
SupraclinoidC4 (supraclinoid)C6 Ophthalmic
--C7 Communicating
The Bouthillier system is preferred in modern reporting because it separates the clinoid and lacerum segments - previously lumped with cavernous and petrous respectively - which have distinct aneurysm types and surgical approaches.

Important Branches Summary (for Neuroradiology)

BranchOriginSuppliesClinical significance
Caroticotympanic a.C2Middle earPulsatile tinnitus if prominent
Vidian a.C2Pterygopalatine fossaCollateral to ECA
Meningohypophyseal trunkC4Dura, posterior pituitary, CN VIDural fistula supply
Inferolateral trunkC4Cavernous sinus nervesECA-ICA anastomosis; embolization risk
Ophthalmic a.C6Orbit, retina, foreheadRetrograde ECA-ICA collateral
Superior hypophyseal a.C6Anterior pituitary, optic chiasmPituitary ischemia
Posterior communicating a.C7Connects ICA to PCAPComm aneurysm → CN III palsy
Anterior choroidal a.C7Choroid plexus, posterior limb IC, optic tractOcclusion: hemiplegia + hemianopia
Sources: - Grainger & Allison's Diagnostic Radiology | Radiopaedia - ICA | UW Emergency Radiology - Bouthillier Classification | Gray's Anatomy for Students

segmnts of vertebral aretery

The vertebral artery has 4 segments (V1-V4), from its origin at the subclavian artery to its fusion forming the basilar artery. Let me pull the detailed anatomy from the medical library.
Searching sources...
Finding Sources
Finding Sources
Searching the Web

vertebral artery segments V1 V2 V3 V4 anatomy radiology branches course

Reading File
Reading File
Loading Image
Finding Sources
Here is the complete breakdown of vertebral artery segments, with the textbook diagram:

Segments of the Vertebral Artery (VA)

The vertebral artery is divided into 4 segments (V1-V4). The first three are extracranial; only V4 is intracranial.
Vertebral artery segments V1-V4 showing course from subclavian artery through cervical spine to basilar artery
Fig. Anatomical segments of the vertebral artery V1-V4. (Fischer's Mastery of Surgery, 8th ed.)

Segment-by-Segment Detail

SegmentNameStartEndLocation / CourseBranches
V1Preforaminal (Extraosseous)Origin from subclavian artery (1st part)Entry into C6 transverse foramenPasses between longus colli and anterior scalene muscles; ascends posterior to vertebral veinSegmental muscular branches, spinal branches
V2Foraminal (Transversarial)C6 transverse foramenC2 transverse foramenRuns vertically through transverse foramina of C6→C5→C4→C3→C2; surrounded by venous plexus and sympathetic fibers; makes an inverted L-shaped turn at C2Anterior meningeal a., muscular branches, radicular/spinal branches
V3Extraspinal (Atlantic / Atlas loop)Exits C2 transverse foramenDura at foramen magnumExits C2, curves posterolaterally around posterior arch of C1 (atlas) in a deep groove - the "atlas loop"; then turns sharply anterosuperiorly to pierce the dura at foramen magnum; most tortuous segmentPosterior meningeal a. (only branch)
V4Intradural (Intracranial)Dural entry at foramen magnumJunction with contralateral VA at pontomedullary junctionAscends superomedially behind the clivus; curves around medulla; unites with contralateral VA to form basilar arteryPICA, Anterior spinal a., Posterior spinal a., perforating medullary branches

Key Points Per Segment

V1 - Preforaminal
  • Origin: posterior surface of the 1st part of subclavian artery (most commonly)
  • In ~6% of cases the left VA arises directly from the aortic arch (between left CCA and left subclavian) - important variant
  • Lies between longus colli medially and anterior scalene laterally
  • Most common site of atherosclerotic stenosis (at the origin)
  • On CTA/DSA: the ostium is the narrowest point and most prone to disease
V2 - Foraminal
  • Normally enters at C6 (variants: C5 or C7 entry in ~10%)
  • Surrounded by a rich sympathetic plexus - sympathetic fibers accompany the VA and can cause Horner's syndrome with VA dissection
  • Most commonly injured segment in blunt cervical trauma (due to bony fixation within foramina)
  • Note: the VA does NOT pass through the transverse foramen of C7 (this is a key anatomical fact)
V3 - Extraspinal (Atlas Loop)
  • Most tortuous and mobile segment
  • The curve around the posterior arch of C1 creates a hairpin turn - vulnerable to stretch injury with extreme neck rotation/extension (vertebrobasilar insufficiency with head turning, "beauty parlor stroke syndrome")
  • The suboccipital triangle formed by rectus capitis posterior major, obliquus capitis superior and inferior contains this loop
  • V3 is the most common site for VA dissection
V4 - Intradural
  • Once intradural, the VA lacks a muscular adventitial layer - dissection here causes subarachnoid hemorrhage
  • Dominant VA: in ~75% of people one VA (usually left) is larger. The basilar artery bows away from the dominant side.
  • If one VA is dominant (hypoplastic contralateral), its occlusion = functional basilar artery occlusion

Branches Summary

BranchSegmentSuppliesClinical Significance
Muscular/spinal branchesV1, V2Cervical muscles, nerve roots, vertebral bodiesAnastomose with ascending/deep cervical aa. (collateral path)
Anterior meningeal a.V2Dura of spinal canal (anterior)Meningeal supply
Posterior meningeal a.V3Posterior fossa duraCan be source of dural fistula
PICA (posterior inferior cerebellar a.)V4Lateral medulla, inferior cerebellum, choroid plexus of 4th ventriclePICA occlusion = Wallenberg syndrome (lateral medullary syndrome)
Anterior spinal a. (ASA)V4 (bilateral contribution)Anterior 2/3 of spinal cordOcclusion = anterior cord syndrome (motor loss + pain/temp loss; preserved vibration/position)
Posterior spinal a. (PSA)V4Posterior columns of spinal cordLess often implicated clinically
Perforating medullary branchesV4Medulla oblongataMedullary infarcts

Variant Anatomy (Radiologically Important)

VariantFrequencySignificance
Left VA arises from aortic arch~6%"Aberrant" origin; seen on CTA as separate arch vessel
VA enters at C5 instead of C6~5%Higher entry - don't mistake for pathology
VA enters at C7~1%Lower entry - longer V1
Hypoplastic VA (one side)~10-15%Contralateral must be preserved; dominant side occlusion = basilar insufficiency
Fenestrated VA (V3-V4)Rare"Split" lumen - can be mistaken for dissection on CTA
Persistent carotid-vertebrobasilar anastomosesRareTrigeminal, hypoglossal, proatlantal - important before intervention

Clinical-Radiological Correlations by Segment

SegmentKey PathologyImaging clue
V1Atherosclerotic stenosis/occlusionOrigin narrowing on CTA/DSA; subclavian steal on duplex
V2Traumatic dissection, fracture-related injuryIntramural hematoma on MRI (T1 fat-sat crescent sign); CTA narrowing/occlusion
V3Dissection (most common site), rotational compressionMRI T1 fat-sat bright mural hematoma; pearl-and-string on DSA
V4Atherothrombosis, dissection with SAH, PICA occlusionDiffusion restriction in lateral medulla (Wallenberg); SAH on CT if V4 dissects
Sources: - Adams and Victor's Principles of Neurology, 12th ed. - Fischer's Mastery of Surgery, 8th ed. - Grainger & Allison's Diagnostic Radiology | Radiopaedia - Vertebral Artery | Radiology Key - Vertebral Arteries

Branches of subclavian artery

The subclavian artery has branches grouped into 3 parts relative to scalenus anterior. The classic mnemonic is VIT C D (Vertebral, Internal thoracic, Thyrocervical trunk, Costocervical trunk, Dorsal scapular). Let me pull the full detail from the medical library.
Searching sources...
Finding Sources
Finding Sources
Searching the Web

subclavian artery branches parts anatomy radiology VIT C D mnemonic

Reading File
Reading File
Reading File
Loading Image
Loading Image
Excellent - got both diagrams from the textbooks. Here is the complete reference:

Branches of the Subclavian Artery

Mnemonic: VIT C D

Vertebral - Internal thoracic - Thyrocervical trunk - Costocervical trunk - Dorsal scapular artery

Origin

SideOrigin
RightFrom the brachiocephalic trunk (which bifurcates into right subclavian + right CCA)
LeftDirectly from the arch of aorta (3rd branch of arch)
The subclavian artery is divided into 3 parts by the anterior scalene muscle:
  • Part 1: medial to anterior scalene
  • Part 2: posterior to anterior scalene (retroscalene)
  • Part 3: lateral to anterior scalene → becomes axillary artery at lateral border of rib 1

Arteries in the posterior triangle of the neck showing thyrocervical trunk, transverse cervical, suprascapular, and subclavian artery parts
Fig. Arteries in the Posterior Triangle of the Neck showing branches of the subclavian artery (Gray's Anatomy for Students)

Branches by Part

PartBranchSub-branchesSupplies
Part 1Vertebral artery-Spinal cord, brainstem, cerebellum, posterior brain (via basilar)
Part 1Internal thoracic artery (internal mammary)Anterior intercostal aa., musculophrenic a., superior epigastric a., pericardiophrenic a.Anterior chest wall, pericardium, diaphragm, breast; continues as superior epigastric below
Part 1Thyrocervical trunk4 branches (see below)Short wide trunk; branches to thyroid, neck, shoulder
Part 2Costocervical trunkDeep cervical a., Supreme (superior) intercostal a.Posterior neck muscles, upper 2 intercostal spaces
Part 3Dorsal scapular artery-Rhomboids, levator scapulae, trapezius (may arise from Part 2)

Thyrocervical Trunk - 4 Branches (Part 1)

This is the most important trunk to know in detail:
BranchCourseSupplies
Inferior thyroid arteryAscends then curves medially behind carotid sheathInferior thyroid gland, parathyroid glands, larynx, pharynx, esophagus, trachea
Ascending cervical arteryRuns superiorly on anterior scalene muscleCervical muscles, spinal cord (via spinal branches)
Suprascapular arteryPasses laterally across posterior triangle; passes over the superior transverse scapular ligamentSupraspinatus, infraspinatus muscles; shoulder joint
Transverse cervical arteryPasses laterally across posterior triangle anterior to brachial plexus; divides into superficial and deep branchesTrapezius (superficial), rhomboids (deep branch = dorsal scapular in some)

Costocervical Trunk - 2 Branches (Part 2)

BranchCourseSupplies
Deep cervical arteryPasses posteriorly between C7 transverse process and 1st rib neckDeep muscles of posterior neck (semispinalis cervicis)
Supreme (Superior) intercostal arteryDescends anterior to neck of rib 11st and 2nd posterior intercostal spaces

Variant Anatomy Diagram

Subclavian artery branch variants - normal (a) and variants b-e showing different origins of transverse cervical and internal thoracic arteries
Fig. Subclavian artery branches: (a) normal anatomy and (b-e) common variants. Red = variant portion. (THIEME Atlas of Anatomy)
VariantFrequency
Normal (thyrocervical trunk with all 3 branches + vertebral + ITA + costocervical trunk)~30%
Transverse cervical artery arises separately from subclavian~30%
Internal thoracic artery arises from thyrocervical trunk~10%
Thyrocervical trunk = inferior thyroid + suprascapular + ITA~8%

Key Clinical Points (Radiology Relevance)

BranchClinical Significance
Vertebral arterySubclavian steal: proximal subclavian stenosis → retrograde flow in VA → vertebrobasilar symptoms with arm exercise
Internal thoracic arteryUsed as CABG conduit; seen on chest X-ray as clips after bypass; origin stenosis can compromise bypass
Inferior thyroid arteryRuns posterior to carotid sheath - passes close to recurrent laryngeal nerve (surgical hazard in thyroid surgery)
Suprascapular arteryPasses over superior transverse scapular ligament (suprascapular nerve passes under it - mnemonic: "army [artery] over the bridge, nerve under")
Costocervical trunkImportant collateral pathway in subclavian/aortic coarctation
Dorsal scapular arteryPart of scapular anastomotic ring - important collateral in subclavian/axillary occlusion

Anastomoses (Radiologically Important)

The subclavian branches form rich anastomotic networks that are visible on angiography in occlusive disease:
  • Scapular anastomosis: suprascapular + transverse cervical + dorsal scapular ↔ subscapular branches of axillary artery (bypass for subclavian occlusion)
  • Thyroid anastomosis: inferior thyroid (subclavian) ↔ superior thyroid (external carotid) - cross-fill visible on carotid angiogram
  • Spinal anastomosis: ascending cervical + deep cervical ↔ vertebral artery perforators (important in VA occlusion)
Sources: - Gray's Anatomy for Students - THIEME Atlas of General Anatomy and Musculoskeletal System | Kenhub - Subclavian Artery | StatPearls - Subclavian Artery Trauma

Create a quick reference PDF for subclavian artery branches and variants

Reading File
Reading File
Running Command

ls -la /tmp/workspace/ 2>/dev/null || echo "workspace does not exist yet"

Running Command

mkdir -p /tmp/workspace/subclavian-ref

Writing File

~/subclavian-ref/build_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak

OUTPUT = "/tmp/workspace/subclavian-ref/Subclavian_Artery_Quick_Reference.pdf"

# ── Colour palette ──────────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1A3A5C")
MID_BLUE    = colors.HexColor("#2E6DA4")
LIGHT_BLUE  = colors.HexColor("#D6E8F7")
ACCENT_RED  = colors.HexColor("#C0392B")
ACCENT_GOLD = colors.HexColor("#E67E22")
PALE_GOLD   = colors.HexColor("#FEF9EE")
PALE_RED    = colors.HexColor("#FDECEA")
PALE_GREEN  = colors.HexColor("#EAF7EE")
MID_GREEN   = colors.HexColor("#27AE60")
GREY_LIGHT  = colors.HexColor("#F4F6F8")
GREY_MID    = colors.HexColor("#BDC3C7")
WHITE       = colors.white
BLACK       = colors.black

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=18*mm, rightMargin=18*mm,
    topMargin=20*mm, bottomMargin=18*mm,
    title="Subclavian Artery – Quick Reference",
    author="Orris Medical Reference",
)

W = A4[0] - 36*mm   # usable width

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

def S(name, **kw):
    return ParagraphStyle(name, **kw)

sTitle = S("sTitle", fontSize=22, textColor=WHITE, alignment=TA_CENTER,
           fontName="Helvetica-Bold", leading=28, spaceAfter=2)
sSubtitle = S("sSubtitle", fontSize=10, textColor=colors.HexColor("#A8D4F5"),
              alignment=TA_CENTER, fontName="Helvetica", leading=14)

sSH = S("sSH", fontSize=11, textColor=WHITE, fontName="Helvetica-Bold",
        leading=15, leftIndent=4, spaceAfter=0)

sBody = S("sBody", fontSize=8.5, textColor=BLACK, fontName="Helvetica",
          leading=12, spaceAfter=2)
sBold = S("sBold", fontSize=8.5, textColor=DARK_BLUE, fontName="Helvetica-Bold",
          leading=12)
sNote = S("sNote", fontSize=7.8, textColor=colors.HexColor("#555555"),
          fontName="Helvetica-Oblique", leading=11, leftIndent=6)

sTH = S("sTH", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold",
        alignment=TA_CENTER, leading=11)
sTD = S("sTD", fontSize=8, textColor=BLACK, fontName="Helvetica",
        leading=11, alignment=TA_LEFT)
sTDc = S("sTDc", fontSize=8, textColor=BLACK, fontName="Helvetica",
         leading=11, alignment=TA_CENTER)
sTDbold = S("sTDbold", fontSize=8, textColor=DARK_BLUE, fontName="Helvetica-Bold",
            leading=11)
sMnem = S("sMnem", fontSize=16, textColor=DARK_BLUE, fontName="Helvetica-Bold",
          alignment=TA_CENTER, leading=22)
sMnemSub = S("sMnemSub", fontSize=9, textColor=colors.HexColor("#444444"),
             alignment=TA_CENTER, fontName="Helvetica", leading=13)

# ── Helper: section header ──────────────────────────────────────────────────
def sec_hdr(text, color=MID_BLUE):
    tbl = Table([[Paragraph(text, sSH)]], colWidths=[W])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), color),
        ("ROUNDEDCORNERS", [4, 4, 4, 4]),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ]))
    return tbl

# ── Helper: generic table ──────────────────────────────────────────────────
def make_table(headers, rows, col_widths, hdr_color=MID_BLUE, row_colors=None):
    data = [[Paragraph(h, sTH) for h in headers]]
    for row in rows:
        data.append([Paragraph(str(c), sTD) if i == 0 else
                     Paragraph(str(c), sTD) for i, c in enumerate(row)])
    t = Table(data, colWidths=col_widths, repeatRows=1)
    style = [
        ("BACKGROUND",    (0,0), (-1,0),  hdr_color),
        ("TEXTCOLOR",     (0,0), (-1,0),  WHITE),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, GREY_LIGHT]),
        ("GRID",          (0,0), (-1,-1), 0.4, GREY_MID),
        ("TOPPADDING",    (0,0), (-1,-1), 4),
        ("BOTTOMPADDING", (0,0), (-1,-1), 4),
        ("LEFTPADDING",   (0,0), (-1,-1), 5),
        ("RIGHTPADDING",  (0,0), (-1,-1), 5),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ]
    if row_colors:
        for (r, bg) in row_colors:
            style.append(("BACKGROUND", (0,r), (-1,r), bg))
    t.setStyle(TableStyle(style))
    return t

# ════════════════════════════════════════════════════════════════════════════
story = []

# ── TITLE BANNER ─────────────────────────────────────────────────────────────
title_tbl = Table(
    [[Paragraph("Subclavian Artery", sTitle)],
     [Paragraph("Branches · Variants · Clinical Correlations", sSubtitle)],
     [Paragraph("Quick Reference for Radiology", sSubtitle)]],
    colWidths=[W]
)
title_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DARK_BLUE),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
    ("ROUNDEDCORNERS",[6,6,6,6]),
]))
story.append(title_tbl)
story.append(Spacer(1, 8*mm))

# ── MNEMONIC BOX ─────────────────────────────────────────────────────────────
mnem_inner = Table(
    [[Paragraph("VIT C D", sMnem)],
     [Paragraph("Vertebral · Internal Thoracic · Thyrocervical trunk · Costocervical trunk · Dorsal scapular", sMnemSub)]],
    colWidths=[W - 16]
)
mnem_inner.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), PALE_GOLD),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
]))
mnem_outer = Table([[mnem_inner]], colWidths=[W])
mnem_outer.setStyle(TableStyle([
    ("BOX",           (0,0), (-1,-1), 1.5, ACCENT_GOLD),
    ("TOPPADDING",    (0,0), (-1,-1), 0),
    ("BOTTOMPADDING", (0,0), (-1,-1), 0),
    ("LEFTPADDING",   (0,0), (-1,-1), 0),
    ("RIGHTPADDING",  (0,0), (-1,-1), 0),
]))
story.append(KeepTogether([mnem_outer]))
story.append(Spacer(1, 6*mm))

# ── SECTION 1 ─ ORIGIN ────────────────────────────────────────────────────────
story.append(sec_hdr("1.  Origin"))
story.append(Spacer(1, 3*mm))

origin_rows = [
    ["Right subclavian", "Brachiocephalic trunk (innominate artery) → bifurcates into right subclavian + right CCA, above sternoclavicular joint"],
    ["Left subclavian",  "Directly from aortic arch (3rd branch of arch), posterior to left CCA"],
]
story.append(make_table(["Side", "Origin"], origin_rows, [38*mm, W-38*mm]))
story.append(Spacer(1, 2*mm))
story.append(Paragraph("Both arteries become the <b>axillary artery</b> at the lateral border of the 1st rib.", sNote))
story.append(Spacer(1, 6*mm))

# ── SECTION 2 ─ THREE PARTS (SCALENE DIVISION) ────────────────────────────────
story.append(sec_hdr("2.  Three Parts Relative to Anterior Scalene Muscle"))
story.append(Spacer(1, 3*mm))

parts_rows = [
    ["Part 1  (Prescalene)",   "Medial border of anterior scalene → origin",
     "3 branches: Vertebral a. · Internal thoracic a. · Thyrocervical trunk"],
    ["Part 2  (Retroscalene)", "Behind / posterior to anterior scalene",
     "1 branch: Costocervical trunk"],
    ["Part 3  (Postscalene)",  "Lateral border of anterior scalene → lateral border of rib 1",
     "1 branch: Dorsal scapular a. (sometimes from Part 2)"],
]
story.append(make_table(
    ["Part", "Position", "Branches"],
    parts_rows,
    [38*mm, 56*mm, W - 94*mm],
    row_colors=[(1, LIGHT_BLUE), (3, LIGHT_BLUE)]
))
story.append(Spacer(1, 6*mm))

# ── SECTION 3 ─ BRANCHES IN DETAIL ───────────────────────────────────────────
story.append(sec_hdr("3.  Branches – Detailed"))
story.append(Spacer(1, 3*mm))

branches_rows = [
    ["Part 1", "Vertebral artery (V)",
     "Posterior to common carotid; enters C6 transverse foramen → 4 segments (V1–V4)",
     "Spinal cord, brainstem, cerebellum, occipital lobes (via basilar)"],
    ["Part 1", "Internal thoracic a. (I)\n(internal mammary a.)",
     "Descends behind costal cartilages; gives anterior intercostals, musculophrenic, superior epigastric, pericardiophrenic",
     "Anterior chest wall, pericardium, breast; CABG conduit"],
    ["Part 1", "Thyrocervical trunk (T)",
     "Short wide trunk; 4 branches: inferior thyroid a., ascending cervical a., suprascapular a., transverse cervical a.",
     "Thyroid, parathyroids, larynx, esophagus, shoulder muscles, cervical spinal cord"],
    ["Part 2", "Costocervical trunk (C)",
     "2 branches: deep cervical a. (posterior neck) + supreme intercostal a. (1st–2nd intercostal spaces)",
     "Deep neck muscles; 1st–2nd posterior intercostal spaces"],
    ["Part 3", "Dorsal scapular a. (D)",
     "Passes posterolaterally; descends along medial border of scapula deep to rhomboids",
     "Rhomboids, levator scapulae, trapezius; scapular collateral network"],
]
story.append(make_table(
    ["Part", "Branch", "Course / Sub-branches", "Supply"],
    branches_rows,
    [16*mm, 38*mm, 72*mm, W - 126*mm],
    row_colors=[(2, PALE_GOLD), (3, PALE_GREEN), (4, PALE_GOLD)]
))
story.append(Spacer(1, 6*mm))

# ── SECTION 4 ─ THYROCERVICAL TRUNK DETAIL ───────────────────────────────────
story.append(sec_hdr("4.  Thyrocervical Trunk – 4 Branches (Part 1)", color=colors.HexColor("#1A6640")))
story.append(Spacer(1, 3*mm))

tc_rows = [
    ["Inferior thyroid a.",    "Ascends then curves medially behind carotid sheath",
     "Inferior thyroid gland, parathyroids, larynx, trachea, esophagus, pharynx",
     "Runs close to recurrent laryngeal nerve — surgical hazard in thyroidectomy"],
    ["Ascending cervical a.",  "Ascends along anterior scalene muscle medial surface",
     "Cervical muscles, spinal cord (spinal branches through intervertebral foramina)",
     "Collateral to vertebral artery"],
    ["Suprascapular a.",       "Crosses posterior triangle; passes OVER superior transverse scapular ligament",
     "Supraspinatus, infraspinatus, shoulder joint",
     "\"Artery over, nerve under\" the transverse scapular ligament (suprascapular nerve passes under)"],
    ["Transverse cervical a.", "Crosses posterior triangle, anterior to brachial plexus; divides into superficial (trapezius) + deep (rhomboids) branches",
     "Trapezius, rhomboids, levator scapulae",
     "Deep branch = dorsal scapular a. in many (30% variant)"],
]
story.append(make_table(
    ["Branch", "Course", "Supply", "Clinical Note"],
    tc_rows,
    [38*mm, 52*mm, 52*mm, W - 142*mm],
    hdr_color=MID_GREEN
))
story.append(Spacer(1, 6*mm))

# ── SECTION 5 ─ COSTOCERVICAL TRUNK ───────────────────────────────────────────
story.append(sec_hdr("5.  Costocervical Trunk – 2 Branches (Part 2)", color=colors.HexColor("#6C3483")))
story.append(Spacer(1, 3*mm))

cc_rows = [
    ["Deep cervical a.",        "Passes posteriorly between C7 transverse process and neck of rib 1",
     "Semispinalis cervicis and other deep posterior neck muscles",
     "Anastomoses with descending branch of occipital artery and VA"],
    ["Supreme intercostal a.", "Descends anterior to neck of rib 1; divides into 1st and 2nd posterior intercostals",
     "1st and 2nd posterior intercostal spaces",
     "Collateral path in aortic coarctation; important in thoracic outlet assessment"],
]
story.append(make_table(
    ["Branch", "Course", "Supply", "Clinical Note"],
    cc_rows,
    [40*mm, 52*mm, 48*mm, W - 140*mm],
    hdr_color=colors.HexColor("#8E44AD")
))
story.append(Spacer(1, 6*mm))

# PAGE BREAK
story.append(PageBreak())

# ── SECTION 6 ─ VARIANTS ──────────────────────────────────────────────────────
story.append(sec_hdr("6.  Anatomical Variants (Lippert & Pabst Classification)", color=ACCENT_RED))
story.append(Spacer(1, 3*mm))

var_rows = [
    ["a", "Normal",
     "Thyrocervical trunk (inferior thyroid + suprascapular + transverse cervical) + Vertebral a. + Internal thoracic a. + Costocervical trunk",
     "~30%"],
    ["b", "Transverse cervical arises separately from subclavian",
     "Transverse cervical a. does not arise from thyrocervical trunk; arises directly from Part 1 or 2",
     "~30%"],
    ["c", "Internal thoracic a. from thyrocervical trunk",
     "ITA shares origin with thyrocervical trunk instead of Part 1",
     "~10%"],
    ["d", "Thyrocervical trunk = inferior thyroid + suprascapular + ITA",
     "Transverse cervical absent or separate; ITA is part of thyrocervical trunk",
     "~8%"],
    ["e", "Two main trunks",
     "Trunk 1: inferior thyroid + transverse cervical. Trunk 2: ITA + suprascapular. No conventional thyrocervical trunk.",
     "~4%"],
    ["-", "Left VA from aortic arch",
     "Left vertebral artery arises between left CCA and left subclavian on aortic arch (no V1 segment in neck)",
     "~6%"],
    ["-", "Right aberrant subclavian (arteria lusoria)",
     "Right subclavian arises as 4th branch of aortic arch; courses posterior to esophagus → dysphagia lusoria",
     "~0.5–1%"],
]
story.append(make_table(
    ["Key", "Variant", "Description", "Freq."],
    var_rows,
    [10*mm, 42*mm, W - 78*mm, 26*mm],
    hdr_color=ACCENT_RED
))
story.append(Spacer(1, 6*mm))

# ── SECTION 7 ─ CLINICAL CORRELATIONS ─────────────────────────────────────────
story.append(sec_hdr("7.  Clinical & Radiological Correlations", color=colors.HexColor("#17202A")))
story.append(Spacer(1, 3*mm))

clin_rows = [
    ["Subclavian steal syndrome",
     "Proximal subclavian stenosis/occlusion → reversal of flow in ipsilateral vertebral artery → vertebrobasilar insufficiency triggered by arm exercise. Left > Right (2:1).",
     "Duplex: reversal of VA flow. CTA/MRA: proximal subclavian stenosis. DSA: 'steal' pattern."],
    ["CABG – internal thoracic a.",
     "Left ITA is the conduit of choice for LAD bypass. Right ITA used for bilateral IMA grafting. ITA provides long-term patency >90% at 10 years.",
     "CTA coronary: ITA runs retrosternally, clips visible on CXR. Pre-op: assess ITA origin on CTA."],
    ["Thoracic outlet syndrome",
     "Compression of subclavian artery between scalene muscles / cervical rib / 1st rib. Causes arm claudication, Raynaud's, distal emboli.",
     "CTA/MRA in provocation position. Duplex with arm elevation. DSA before surgical decompression."],
    ["Aberrant right subclavian (arteria lusoria)",
     "Passes posterior to esophagus → dysphagia lusoria. Aneurysm at origin (diverticulum of Kommerell) risks dissection/rupture.",
     "Incidental on CT chest/neck. Look for retroesophageal vessel at aortic arch. Check for Kommerell diverticulum."],
    ["Costocervical / intercostal collaterals in coarctation",
     "Aortic coarctation distal to left subclavian → collateral flow through supreme intercostal + internal thoracic arteries. Rib notching on CXR from enlarged intercostals.",
     "CXR: rib notching (usually ribs 3–9). CTA: dilated intercostal and ITA collaterals."],
    ["Suprascapular nerve entrapment",
     "Suprascapular artery passes OVER superior transverse scapular ligament; nerve passes UNDER it. Hypertrophy of artery or ligament ossification traps nerve → supraspinatus/infraspinatus weakness.",
     "MRI: denervation edema/atrophy of supra/infraspinatus. US-guided injection at ligament."],
    ["Recurrent laryngeal nerve and inferior thyroid a.",
     "Right RLN loops under right subclavian; left RLN loops under aortic arch. Inferior thyroid artery crosses RLN at thyroid lower pole — varies anterior, posterior, or interdigitating.",
     "Surgical anatomy: tie inferior thyroid artery away from thyroid to avoid RLN injury."],
]
story.append(make_table(
    ["Condition", "Mechanism", "Imaging / Relevance"],
    clin_rows,
    [44*mm, 72*mm, W - 116*mm],
    hdr_color=colors.HexColor("#17202A")
))
story.append(Spacer(1, 6*mm))

# ── SECTION 8 ─ ANASTOMOSES ────────────────────────────────────────────────────
story.append(sec_hdr("8.  Key Anastomotic Networks", color=colors.HexColor("#154360")))
story.append(Spacer(1, 3*mm))

anast_rows = [
    ["Scapular anastomotic ring",
     "Suprascapular a. (subclavian) + Transverse cervical / Dorsal scapular a. (subclavian) ↔ Subscapular a. branches (axillary)",
     "Bypass for subclavian or axillary occlusion; visible on DSA as rich shoulder blush"],
    ["Thyroid anastomosis",
     "Inferior thyroid a. (subclavian via thyrocervical) ↔ Superior thyroid a. (external carotid)",
     "Cross-filling on carotid angiogram; embolization risk during carotid procedures"],
    ["Spinal / deep cervical anastomosis",
     "Ascending cervical a. + Deep cervical a. (costocervical) ↔ Vertebral artery perforators",
     "Collateral to VA; deep cervical supply to semispinalis cervicis anastomoses with descending occipital"],
    ["Internal thoracic – epigastric axis",
     "Internal thoracic a. (subclavian) → Superior epigastric a. ↔ Inferior epigastric a. (external iliac)",
     "Important collateral in aortic occlusive disease; the 'longitudinal anastomosis'"],
    ["Intercostal collaterals",
     "Supreme intercostal a. (costocervical) + Posterior intercostals (aorta) ↔ Anterior intercostals (ITA)",
     "Active in coarctation; rib notching results from hypertrophied posterior intercostals"],
]
story.append(make_table(
    ["Network", "Connections", "Significance"],
    anast_rows,
    [46*mm, 74*mm, W - 120*mm],
    hdr_color=colors.HexColor("#1A5276")
))
story.append(Spacer(1, 6*mm))

# ── FOOTER NOTE ──────────────────────────────────────────────────────────────
footer_tbl = Table([[
    Paragraph(
        "Sources: Gray's Anatomy for Students · THIEME Atlas of Anatomy · Fischer's Mastery of Surgery · "
        "Grainger & Allison's Diagnostic Radiology · Kenhub · Radiopaedia",
        sNote
    )
]], colWidths=[W])
footer_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), GREY_LIGHT),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 8),
    ("BOX",           (0,0), (-1,-1), 0.5, GREY_MID),
]))
story.append(footer_tbl)

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

cd /tmp/workspace/subclavian-ref && python build_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/subclavian-ref/Subclavian_Artery_Quick_Reference.pdf

Your quick reference PDF is ready:

Subclavian Artery Quick Reference

PDF Document · PDF


What's inside (2 pages, colour-coded by section):
SectionContent
Mnemonic bannerVIT C D in large type with full expansion
1. OriginRight (brachiocephalic) vs Left (aortic arch)
2. Three PartsPrescalene / Retroscalene / Postscalene with branches per part
3. All 5 BranchesPart, course, sub-branches, supply for each
4. Thyrocervical trunkAll 4 branches with the RLN and suprascapular nerve clinical notes
5. Costocervical trunkDeep cervical + supreme intercostal detail
6. Variants (a-e + others)Lippert & Pabst classification with frequencies; arteria lusoria
7. Clinical correlationsSubclavian steal, CABG, TOS, arteria lusoria, coarctation, RLN anatomy
8. Anastomotic networksScapular ring, thyroid, ITA-epigastric axis, intercostal collaterals
This is a shared conversation. Sign in to Orris to start your own chat.