Posterior instrumentation of spine

Reading File
Finding Sources
Finding Sources
Searching the Web

posterior instrumentation spine pedicle screws rods surgical technique indications

Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Loading Image
Here is a comprehensive, textbook-based overview of posterior instrumentation of the spine.

Posterior Instrumentation of the Spine

1. Definition and Concept

Posterior spinal instrumentation refers to all hardware placed through a dorsal (posterior) approach to stabilize, fuse, correct, or decompress the spine. Every construct has two elements:
  1. Anchor element - attaches solidly to the vertebra: sublaminar wires/cables, hooks (sublaminar or transpedicular), or pedicle screws
  2. Traversing element - runs longitudinally across segments: rods or plates that lock to the anchors
Most modern devices are made of titanium to minimize MRI artifact. All constructs will eventually fail by loosening or fracture if bony fusion does not occur.
  • Schwartz's Principles of Surgery 11th Ed, p. 1893

2. Types of Posterior Fixation Devices

A. Pedicle Screws

The dominant modern anchor. Inserted through the pedicle into the vertebral body, providing three-column fixation (anterior, middle, and posterior columns) through a posterior approach alone.
Pedicle types (Roy-Camille classification):
TypeDescription
ALarge cancellous channel - probe passes easily
BSmall cancellous channel - probe fits snugly
CCortical channel - requires mallet to advance
DAbsent pedicle channel - requires juxtapedicular placement
  • Campbell's Operative Orthopaedics 15th Ed 2026, p. 2015
Screw density correlates with blood loss and operative time; an intermediate density of ~1.6 screws/level is recommended, with higher density at construct ends and curve apex. Pedicle screws provide superior correction compared to hook constructs.
Pedicle screw approach zone (funnel concept) through upper lumbar vertebra
Screw entry landmarks:
  • Roy-Camille point: intersection of the vertical line through the facet joint and the horizontal line through the middle of the transverse process
  • Weinstein point: slightly more lateral, reducing interference with the uninstrumented segment above
  • Lumbar pedicles are widest at L5 and narrowest in the upper lumbar/thoracic region; T5 has the narrowest horizontal pedicle diameter
Cervical pedicle screws: All cervical pedicles angle medially (most at C5, least at C2/C7). The vertebral artery is at significant risk from C3-C6 because the lateral pedicle cortex is the thinnest; C2 and C7-T1 are safer entry points.

B. Sublaminar Wires/Cables (Luque System)

Eduardo Luque popularized L-shaped rods combined with sublaminar wires passing beneath each lamina at multiple levels. This provides excellent segmental control and is particularly useful for:
  • Neuromuscular scoliosis (e.g., cerebral palsy)
  • Situations where pedicle screw placement is unsafe
  • Growing rod constructs in children
Wires/cables are threaded beneath the lamina and twisted or crimped to lock to the longitudinal rod. They carry risk of spinal cord injury during passage.

C. Hooks

Hooks are placed under the lamina (sublaminar hooks), over the transverse process (transverse process hooks), or around the pedicle (pedicle hooks). They are used:
  • In the thoracic spine where pedicles may be too small/narrow for screws
  • As part of hybrid constructs (hooks at upper thoracic + screws distally)
  • In pediatric patients with growing rod systems
  • Historical use in Cotrel-Dubousset (CD) instrumentation for scoliosis

D. Connecting Rods

Rods (typically 5.5-6.5 mm titanium or cobalt-chrome) are contoured to the desired sagittal alignment and locked to the screws/hooks bilaterally. Cross-connectors are added to improve rotational rigidity of the construct.

3. Biomechanical Advantages of Segmental Instrumentation

Modern posterior segmental systems (vs. older Harrington rod):
FeatureHarrington RodModern Segmental
Fixation pointsEnd points onlyMultiple segmental anchors
Forces appliedDistraction onlyCompression + distraction + rotation
Sagittal controlPoor (creates flatback)Preserves/restores lordosis and kyphosis
Rotational correctionMinimalExcellent (especially pedicle screws)
Postop immobilizationCast/brace 6-9 monthsOften none
Pseudarthrosis rateHigherLower
The Harrington rod caused flatback deformity by distracting without sagittal contouring and has been entirely replaced by segmental systems.
  • Campbell's Operative Orthopaedics 15th Ed 2026, p. 2012-2013
Lateral and AP lumbar X-rays showing pedicle screws with connecting rods (L3-L5 instrumentation) - the standard posterior construct for fixation and fusion

4. Indications

IndicationNotes
Spinal fractures (AO type B/C, burst fractures)PLC disruption almost always requires posterior instrumentation to restore posterior tension band
Scoliosis (AIS, neuromuscular)Pedicle screw constructs provide best 3D correction
SpondylolisthesisPosterolateral fusion + pedicle screws with transvertebral fixation
Degenerative disease (spondylosis, stenosis with instability)Posterolateral fusion or PLIF/TLIF with posterior instrumentation
Spinal tumorsStabilization after corpectomy or laminectomy
Spinal infections (osteomyelitis)After debridement, to restore stability
Iatrogenic instabilityAfter wide laminectomy or facetectomy
Kyphosis (congenital, Scheuermann)Posterior or combined correction
  • Rockwood and Green's Fractures in Adults 10th Ed 2025, p. 2274-2275

5. Surgical Technique - General Steps (Thoracic/Lumbar Pedicle Screw Fixation)

  1. Patient prone on a radiolucent table (four-post frame or chest rolls)
  2. Tranexamic acid infusion pre- and intraoperatively
  3. Neuromonitoring (if canal manipulation is planned) - SSEPs and MEPs
  4. Standard posterior midline incision, subperiosteal dissection
  5. Identify entry points using facet joint and transverse process landmarks
  6. Create pedicle tract with awl or powered burr - advance gently without forcing
  7. Confirm position with lateral C-arm/fluoroscopy; palpate 360° of pedicle walls for breach
  8. If self-tapping: insert screw directly; if not: tap first, then insert screw
  9. Contour rods to desired sagittal profile; lock into screw heads bilaterally
  10. Apply correction maneuvers (distraction for fracture reduction, rod rotation for scoliosis)
  11. Cross-link rods for rotational stability
  12. Decorticate posterior elements; apply bone graft for fusion
  13. Final fluoroscopic/radiographic check before closure
  • Campbell's Operative Orthopaedics 15th Ed 2026, Technique 40.8 / Technique 48.15

6. Correction Maneuvers in Scoliosis

The rod derotation maneuver: the concave rod is precontoured to the desired sagittal profile, attached to each anchor, then rotated ~90 degrees. This converts the coronal scoliosis into sagittal kyphosis (or corrects hypokyphosis), achieving simultaneous coronal and sagittal plane correction. Apical vertebral derotation is then performed to improve vertebral rotation.

7. Cortical Bone Trajectory (CBT) - Modern Variant

Described by Santoni and Hynes for the lumbar spine: screws are directed from an inferomedial to superolateral orientation within the pedicle, maximizing cortical contact throughout the screw path.
Advantages over traditional trajectory:
  • Increased pull-out strength (critical in osteoporotic bone)
  • More medial starting point = less tissue disruption
  • Shorter incision feasible (MIS-compatible)

8. Complications

ComplicationDetails
Pedicle breachMost are asymptomatic; rate can be reduced by intraoperative fluoroscopy, CT navigation, or robotic-assisted placement
Anterior vertebral body penetrationCan be missed on standard lateral view; requires ~30° oblique "near-approach" view to detect true breakthrough
Neurologic injuryNerve root or cord damage from medial pedicle breach; risk increases in small thoracic pedicles
Vascular injuryAorta, IVC, or segmental vessels from anterior cortex penetration; esophageal erosion from prominent anterior thoracic screws
Vertebral artery injuryRisk during cervical pedicle screw placement, especially C3-C6
Construct failure/pseudarthrosisHardware breakage if fusion fails
Flatback/junctional kyphosisFailure to restore sagittal balance
InfectionDeep wound infection requiring washout +/- hardware removal
For malpositioned screws: most are asymptomatic but a low threshold for removal is recommended given the potential for serious complications including aortic or esophageal erosion.
  • Campbell's Operative Orthopaedics 15th Ed 2026, Table 40.6

9. Posterior vs. Combined Approaches

  • Posterior-only surgery takes the least time, causes the least blood loss, and is least expensive among posterior, anterior, or combined approaches - with no significant difference in kyphotic correction, neurologic outcomes, or return to work in fracture surgery
  • Combined anterior-posterior fixation is indicated when there is significant anterior column compromise (e.g., corpectomy), allowing shorter posterior constructs
  • Posterior indirect decompression via ligamentotaxis (distraction + annular traction) can achieve up to 50% canal decompression for burst fractures - but is ineffective when the retropulsed fragment has rotated 180° with disrupted annular attachments
  • Rockwood and Green's Fractures in Adults 10th Ed 2025, p. 2274; Campbell's Operative Orthopaedics 15th Ed 2026, p. 2509

10. Minimally Invasive (MIS) Posterior Instrumentation

Percutaneous pedicle screw systems allow fixation through small stab incisions using fluoroscopic or CT-navigated guidance. MIS techniques currently do not allow all correction maneuvers of open surgery but permit compression and distraction. Their role in complex deformity correction continues to evolve, with increasing use in fracture stabilization and degenerative disease.

Key reference: Campbell's Operative Orthopaedics 15th Ed 2026, Chapters 40, 42, 43, 48; Rockwood and Green's Fractures in Adults 10th Ed 2025, Chapter 49; Schwartz's Principles of Surgery 11th Ed, Chapter 42

Posterior instrumentation of spine in orthopaedics 10 marks pg answer with flow chart and images

Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Loading Image
Loading Image
Loading Image
Loading Image
Loading Image
Loading Image
Loading Image
Now I have all I need. Here is the complete 10-marks exam-standard answer with flowchart and images.

POSTERIOR INSTRUMENTATION OF THE SPINE

(10 Marks Answer)


DEFINITION

Posterior spinal instrumentation refers to hardware placed through a dorsal (posterior) midline approach to stabilize, correct deformity, or facilitate fusion of the spine. Every construct has two essential elements:
  1. Anchor element - attaches to the vertebra (pedicle screws / hooks / sublaminar wires)
  2. Traversing element - spans the segments (longitudinal rods or plates)
Goal: Correct deformity as much as possible and stabilize the spine in the corrected position while the fusion mass solidifies. - Campbell's Operative Orthopaedics 15th Ed

FLOWCHART: POSTERIOR SPINAL INSTRUMENTATION - OVERVIEW

SPINAL PATHOLOGY REQUIRING SURGERY
              │
              ▼
    POSTERIOR APPROACH CHOSEN
              │
    ┌─────────┴──────────────────────────┐
    │                                    │
ANCHOR FIXATION              TRAVERSING ELEMENT
    │                                    │
    ├── Pedicle Screws                   ├── Titanium Rods (5.5–6.5mm)
    ├── Hooks (sublaminar /              ├── Cobalt-Chrome Rods
    │   transverse process /             └── Cross-connectors
    │   pedicle hooks)
    └── Sublaminar Wires/Cables
              │
    ┌─────────┴─────────┐
    │                   │
CORRECTION          STABILIZATION
FORCES              + FUSION
    │                   │
    ├── Distraction      └── Bone graft
    ├── Compression          (autograft/
    ├── Rotation             allograft)
    └── Translation
              │
              ▼
        COMPLICATIONS
              │
    ┌─────────┴─────────────┐
    │                       │
INTRAOPERATIVE         POSTOPERATIVE
- Pedicle breach       - Pseudarthrosis
- Neuro injury         - Hardware failure
- Vascular injury      - Junctional kyphosis
- Dural tear           - Infection

1. INDICATIONS

CategoryExamples
TraumaThoracolumbar burst fractures (AO B/C), fracture-dislocations
DeformityAdolescent idiopathic scoliosis, Scheuermann kyphosis, neuromuscular scoliosis
DegenerativeSpondylolisthesis, instability after laminectomy/facetectomy
Tumor/InfectionPost-corpectomy stabilization, spinal tuberculosis with instability
CongenitalCongenital scoliosis, achondroplasia with kyphosis

2. TYPES OF POSTERIOR FIXATION DEVICES

A. PEDICLE SCREWS (Gold Standard)

  • Placed through the pedicle into the vertebral body
  • Provides three-column fixation via a single posterior approach
  • Superior to hooks: better coronal, sagittal, AND rotational (transverse plane) correction
Pedicle Classification (Roy-Camille):
TypeDescription
ALarge cancellous channel - probe passes easily
BSmall cancellous channel - snug fit
CCortical channel - mallet required
DAbsent pedicle channel - juxtapedicular placement needed
Entry Point Landmarks:
Posterior (B) view showing Roy-Camille (X) and Weinstein (•) entry points for lumbar pedicle screws
Fig: Posterior view - Roy-Camille (X) and Weinstein (•) entry points. X = intersection of vertical line through facet and horizontal through mid-transverse process. Weinstein point is slightly more lateral.
Funnel-shaped pedicle approach zone (blue cone) in upper lumbar vertebra (L1) - axial view
Fig: Funnel-shaped pedicle approach zone (blue) - the safe corridor for screw insertion. This funnel is wider at L5 and narrowest at T5.
Screw Density:
  • Recommended: ~1.6 screws/level (intermediate density)
  • Higher density at construct ends and curve apex
  • No proven difference between high vs low density overall

B. HOOKS

  • Placed under the lamina (sublaminar), over the transverse process, or around the pedicle
  • Used in thoracic spine (small pedicles unsafe for screws), hybrid constructs, pediatric patients
  • Primary correction forces: distraction (concave side) and compression (convex side)
  • Historical basis: Cotrel-Dubousset (CD) instrumentation

C. SUBLAMINAR WIRES / CABLES (Luque System)

  • Popularized by Eduardo Luque using L-shaped rods + sublaminar wires
  • Excellent for neuromuscular scoliosis (cerebral palsy, muscular dystrophy)
  • Provides multiple segmental anchor points
  • Risk: spinal cord injury during wire passage
  • Modern cables have replaced metal wires (better fatigue resistance)

3. LONGITUDINAL RODS

  • Material: Titanium (MRI compatible) or cobalt-chrome (stiffer, better deformity correction)
  • Diameter: 5.5-6.5 mm standard; 4.5 mm for smaller/pediatric patients
  • Cross-connectors add rotational rigidity to the bilateral rod construct
  • Contoured to desired sagittal profile before insertion

4. HISTORICAL EVOLUTION

1962 - Harrington Rod (distraction rod)
    └── Advantages: First effective scoliosis system
    └── Disadvantages:
        ├── End-point fixation only → anchor failure
        ├── Distraction → flatback deformity (loss of lumbar lordosis)
        ├── No rotational correction
        └── Required cast/brace 6-9 months postop
              │
              ▼
1970s - Luque Rod + Sublaminar Wires
    └── Segmental fixation; no postop brace needed
    └── Good for neuromuscular scoliosis
              │
              ▼
1984 - Cotrel-Dubousset (CD) Instrumentation
    └── Hook + rod + cross-connector system
    └── Three-dimensional correction possible
    └── Introduced rod derotation maneuver
              │
              ▼
1990s-Present - Pedicle Screw Constructs
    └── Three-column fixation
    └── Best 3D correction + rotational control
    └── No postoperative immobilization
    └── Lower pseudarthrosis and implant failure rates
Harrington distraction rod showing flatback deformity: distraction flattens lumbar lordosis and creates kyphosis above the rod
Fig (eFig 40.3): Harrington rod causing flatback. Left = normal sagittal balance; Right = Harrington rod flattens lumbar lordosis and creates kyphosis proximal to the rod - the "flatback deformity."

5. CORRECTION MANEUVERS (for Scoliosis)

ManeuverMechanism
Rod DerotationConcave rod connected to all anchors, then rotated 90° - converts coronal scoliosis to sagittal kyphosis
TranslationSpine pulled to precontoured rod using reduction screws/towers
CantileverRod fixed proximally, then sequentially reduced distally
In situ ContouringBending tools applied to rods already in place
En bloc Vertebral Derotation3-4 apical vertebrae derotated together
DistractionConcave thoracic side: corrects scoliosis, restores kyphosis
CompressionConvex lumbar side: corrects scoliosis, restores lordosis

6. SURGICAL TECHNIQUE (Thoracolumbar Pedicle Screw Fixation)

PATIENT PRONE on radiolucent table
(4-post frame / chest rolls)
         │
         ▼
Neuromonitoring (SSEP + MEPs)
Tranexamic acid infusion
         │
         ▼
Standard posterior midline incision
Subperiosteal exposure of posterior elements
         │
         ▼
Identify entry points
(facet joint + transverse process landmarks)
         │
         ▼
Create pedicle tract with awl/burr
Advance WITHOUT FORCE
Confirm 360° bony walls on palpation
         │
         ▼
C-arm/Fluoroscopy confirmation
(or CT navigation / robotic guidance)
         │
         ▼
Tap (if required) → Insert pedicle screw
         │
         ▼
Contour rods to sagittal profile
Lock into screw heads bilaterally
         │
         ▼
Apply correction maneuvers
(distraction / compression / derotation)
         │
         ▼
Add cross-connectors
Decorticate + apply bone graft
         │
         ▼
Final fluoroscopic check
Layer closure

7. POSTERIOR INDIRECT DECOMPRESSION (Fractures)

Posterolateral decompression technique for L1 burst fracture: (A) retropulsed bone fragment compressing spinal cord; (B) pedicle and transverse process removal; (C) fragment reduced into vertebral body
Fig 48.37: Posterolateral decompression. A = L1 burst fracture with bone fragment + area of decompression. B = pedicle, transverse process, and lateral facet removed after L5 root isolation. C = fragments undercut and reduced into vertebral body.
Ligamentotaxis effect: Distraction across the fracture site restores vertebral height and indirectly decompresses the spinal canal via tensioning of the posterior longitudinal ligament and annulus. Can achieve up to 50% canal decompression but is ineffective when the retropulsed fragment has rotated 180°.

8. RADIOLOGICAL APPEARANCE

Lateral (A) and AP (B) lumbar X-rays: L3-L5 pedicle screw and rod instrumentation for burst fracture
Fig 42-32 (Schwartz's Surgery): A = Lateral view showing pedicle screws at L4-L5 for spondylolisthesis. B = AP view showing L3-L5 bilateral pedicle screws with connecting rods after L4 burst fracture.

9. SPECIAL SITUATIONS

Cortical Bone Trajectory (CBT) - Modern Technique

  • Inferomedial to superolateral screw trajectory
  • Greater cortical contact = higher pull-out strength (especially in osteoporotic bone)
  • More medial starting point = less soft tissue disruption, MIS-compatible

Sacropelvic Fixation

  • Extension of constructs to pelvis using iliac wing screws or S2 alar-iliac (S2AI) screws
  • Used in long-segment fusions, high-grade spondylolisthesis, neuromuscular deformity
  • Prevents "lumbopelvic mismatch" and sacral stress fractures

Growing Rods (Pediatric)

  • Construct uses hooks + pedicle screws at proximal and distal anchors
  • Rods lengthened every 6 months to allow spinal growth
  • Avoids final fusion until skeletal maturity

10. COMPLICATIONS

COMPLICATIONS OF POSTERIOR SPINAL INSTRUMENTATION
                    │
        ┌───────────┴───────────────┐
  INTRAOPERATIVE              POSTOPERATIVE
        │                          │
  ┌─────┤                    ┌─────┤
  │     │                    │     │
Pedicle  Neuro              Hard-  Infec-
Breach   Injury             ware   tion
(most    (cord/             Fail-
asymp-   root)              ure
tomatic)
        │                          │
  Vascular                  Pseudo-
  Injury                    arthrosis
  (aorta/IVC)
        │                          │
  Dural                     Junc-
  Tear                      tional
                            Kyphosis
                                   │
                            Flat-
                            back
                            Deformity
ComplicationKey Point
Pedicle breachMost asymptomatic; low threshold for removal if symptomatic
Anterior cortex penetrationNeeds 30° oblique "near-approach" view to detect true breakthrough
Vertebral artery injuryRisk in cervical pedicle screws C3-C6; lateral cortex is thinnest
Flatback deformityFailure to restore lumbar lordosis; seen classically with Harrington rods
PseudarthrosisHardware failure inevitable without solid bony fusion
Junctional kyphosisTransition zone above/below construct; related to sagittal imbalance

SUMMARY TABLE: COMPARISON OF INSTRUMENTATION SYSTEMS

FeatureHarrington RodLuque (Wires+Rod)Pedicle Screws
Year introduced19621970s1980s-present
FixationEnd points onlySegmentalSegmental
Planes correctedCoronal onlyCoronalCoronal + sagittal + rotational
3D correctionNoPartialYes (best)
Postop brace6-9 monthsNoneNone
Flatback riskHighLowLow
Main use todayObsoleteNeuromuscularUniversal

Source: Campbell's Operative Orthopaedics 15th Ed 2026 (Ch. 40, 42, 48); Rockwood and Green's Fractures in Adults 10th Ed 2025 (Ch. 49); Schwartz's Principles of Surgery 11th Ed (Ch. 42)

Werthim and bohlman

Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Loading Image
Reading File
Finding Sources
Loading Image
Loading Image
Loading Image
All four steps of the Wertheim and Bohlman technique are now illustrated. Here is the complete answer.

WERTHEIM AND BOHLMAN TECHNIQUE

Occipitocervical Fusion


DEFINITION

The Wertheim and Bohlman technique is a method of posterior occipitocervical fusion using corticocancellous iliac crest bone grafts secured by wires passed through the outer table only of the external occipital protuberance, the arch of the atlas (C1), and the spinous process of the axis (C2).
"Wires passed through outer table of skull at occipital protuberance instead of through inner and outer tables near foramen magnum - lessens risk of danger to superior sagittal and transverse sinuses."
  • Campbell's Operative Orthopaedics 15th Ed 2026

INDICATIONS

Occipitocervical fusion is required when:
IndicationExamples
Bony anomalies at occipitoatlantoaxial junctionOccipital condyle fractures, Os odontoideum
Occipitocervical instabilityTraumatic atlantooccipital dislocation
Rheumatoid arthritisCranial settling, basilar invagination
Congenital abnormalitiesKlippel-Feil syndrome, atlanto-axial instability in Down syndrome
Odontoid anomaliesType II/III odontoid fractures, odontoid hypoplasia
Tumors/InfectionsInvolving C1-C2 region causing instability
Failed C1-C2 fusionWhen instability extends to occipitocervical junction

KEY ANATOMICAL RATIONALE

The critical safety feature of this technique is wire placement through the outer table only at the external occipital protuberance:
  • Near the foramen magnum, the occipital bone is very thin - passing wires through both tables risks sinus injury
  • At the external occipital protuberance, the bone is thick enough to allow outer table wire passage alone
  • The transverse sinuses and superior sagittal sinus lie cephalad to the protuberance - outer table wiring at this level keeps them out of danger
  • This is the key difference from earlier techniques (Cone and Turner; Willard and Nicholson; Rogers) which passed wires near the foramen magnum

SURGICAL TECHNIQUE (eTechnique 39.2, Campbell's)

Pre-operative

  • Stabilize the spine with cranial skeletal traction (patient on turning frame or cerebellar headrest)

Steps

Step 1 - Positioning:
  • Patient prone; lateral radiograph obtained to confirm alignment
Step 2 - Incision:
  • Midline incision from external occipital protuberance to spine of C3
  • Electrocautery dissection of paraspinous muscles, staying strictly in midline (to avoid paramedian venous plexus)
Step 3 - Occipital preparation (Step A):
A (posterior view): Ridge creation at occipital protuberance - the occipitocervical junction with C1 arch and C2 visible before wire placement
  • At a point 2 cm above the rim of the foramen magnum, use a high-speed diamond burr to create a trough on either side of the protuberance, making a ridge in the center
  • With a towel clip, make a hole through this ridge through the outer table only
Step 4 - Wire placement (Step B):
B (lateral view): Three 20-gauge wires in position - one looped through the outer table ridge of occiput (top), one around the C1 arch (middle), one through the C2 spinous process base (bottom)
Three separate 20-gauge wires are placed:
  1. Wire 1: Looped through the hole and around the occipital ridge (outer table only)
  2. Wire 2: Looped around the arch of the atlas (C1)
  3. Wire 3: Passed through a drill hole in the base of the spinous process of the axis (C2) and around this structure
Step 5 - Graft harvest and preparation (Step C):
C (lateral view): Two corticocancellous iliac crest grafts threaded onto the wires bilaterally, positioned alongside the occiput-C1-C2 complex before final tightening
  • Expose posterior iliac crest; harvest a thick, slightly curved corticocancellous graft of premeasured length and width
  • Divide horizontally into two pieces
  • Place three drill holes in each graft (to accommodate the three wires)
Step 6 - Graft fixation (Step D):
D (posterior view, final construct): Two iliac crest grafts secured bilaterally with wires tightened, bridging from the occiput to C1-C2 on each side
  • Decorticate the occiput
  • Thread grafts onto wires and anchor bilaterally on either side of the spine
  • Pack additional cancellous bone around and between the two grafts
  • Close wound in layers over suction drains

TECHNIQUE SUMMARY FLOWCHART

OCCIPITOCERVICAL INSTABILITY
            │
            ▼
  PREOPERATIVE SKELETAL TRACTION
  (align occiput to cervical spine)
            │
            ▼
  PATIENT PRONE - LATERAL X-RAY CONFIRMS ALIGNMENT
            │
            ▼
  MIDLINE INCISION: Occiput → C3
  (Electrocautery, stay midline)
            │
            ▼
  OCCIPITAL BURR WORK (2 cm above foramen magnum)
  ├── Create trough on either side of protuberance
  └── Make RIDGE in center
  └── Towel clip hole through OUTER TABLE ONLY
            │
            ▼
  THREE-WIRE PLACEMENT
  ├── Wire 1: Through outer table hole, looped around occipital ridge
  ├── Wire 2: Around arch of ATLAS (C1)
  └── Wire 3: Through base of AXIS (C2) spinous process
            │
            ▼
  ILIAC CREST GRAFT HARVEST
  ├── Thick corticocancellous curved graft
  ├── Cut into TWO PIECES
  └── Three drill holes per piece
            │
            ▼
  DECORTICATE OCCIPUT
  Thread grafts onto wires (bilaterally)
  Tighten wires to secure grafts
  Pack extra cancellous bone
            │
            ▼
  WOUND CLOSURE (layers + suction drains)
            │
            ▼
  POSTOPERATIVE CARE
  ├── Rigid cervical orthosis OR halo cast: 6-12 weeks
  └── Soft collar: additional 6 weeks

POSTOPERATIVE CARE

  • Rigid cervical orthosis or halo cast for 6 to 12 weeks
  • Followed by a soft collar for an additional 6 weeks
  • Serial radiographs to confirm fusion and maintain alignment

ADVANTAGES OF WERTHEIM AND BOHLMAN TECHNIQUE

FeatureAdvantage
Outer table wiring onlyAvoids risk to transverse and superior sagittal sinuses
No metal implant spanning the constructAvoids metal fatigue/breakage; graft is the final stable construct
Simple, reproducibleCan be performed without specialized implants
Good fusion rateBilateral corticocancellous grafts provide large surface area

COMPARISON WITH OTHER OCCIPITOCERVICAL FUSION METHODS

TechniqueFixation MethodKey Feature
Wertheim & BohlmanWires + iliac crest graftsOuter table wiring at protuberance; no metal construct
Cone & Turner / RogersWires through inner+outer tables near foramen magnumOlder; higher sinus risk
Koop, Winter, LonsteinNo internal fixationOnly autogenous bone graft; pediatric use
Dormans et al.Button wire + burr hole wiresUsed in Down syndrome; shorter immobilization
Contoured rod-screw-plateOccipital plate + rods + screwsImmediate rigidity; modern standard; allows shorter postop immobilization

Source: Campbell's Operative Orthopaedics 15th Ed 2026 - eTechnique 39.2 (Chapter 39: Pediatric Cervical Spine), p. 1942-1943

Harrington rod

Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Loading Image
Finding Sources
Finding Sources
Reading File
Reading File
I now have all the essential content. Here is the complete answer.

HARRINGTON ROD


DEFINITION

The Harrington rod is a stainless steel distraction rod introduced in 1962 by Dr. Paul R. Harrington as the first effective spinal instrumentation system for surgical treatment of scoliosis. It operates on the principle of longitudinal distraction applied between two laminar hooks at the ends of the construct on the concave side of the curve, combined with a separate compression rod on the convex side.
"In 1962, Harrington introduced the first effective instrumentation system for scoliosis. For more than 30 years, use of the Harrington distraction rod combined with thorough posterior arthrodesis and immobilization in a cast or brace for 6 to 9 months was the standard surgical treatment of adolescent idiopathic scoliosis."
  • Campbell's Operative Orthopaedics 15th Ed 2026

COMPONENTS

HARRINGTON INSTRUMENTATION SYSTEM
            │
   ┌────────┴────────┐
   │                 │
DISTRACTION       COMPRESSION
   ROD               ROD
(Concave side)   (Convex side)
   │                 │
   ├── Ratchet shaft  ├── Threaded shaft
   ├── Hook at top    ├── Multiple hooks
   │   (under lamina) │   (over transverse
   └── Hook at bottom │    processes)
       (under lamina) └── Nut tightened
                          for compression
Distraction rod:
  • A stainless steel rod with a ratchet mechanism (one-way incremental notches)
  • Upper hook placed under the lamina at the upper end of the construct (cephalad)
  • Lower hook placed under the lamina at the lower end (caudad)
  • Rod is distracted incrementally using the ratchet to correct the scoliosis
Compression rod:
  • A threaded rod placed on the convex side
  • Multiple hooks placed around transverse processes
  • Nuts tightened to apply compression, reinforcing coronal correction

MECHANISM OF ACTION

SCOLIOTIC CURVE
       │
       ▼
CONCAVE SIDE              CONVEX SIDE
Distraction rod           Compression rod
│                         │
Laminar hooks at          Hooks on transverse
top and bottom            processes
│                         │
DISTRACTION force         COMPRESSION force
pushes curve              reinforces
towards midline           correction
       │
       ▼
CORONAL PLANE CORRECTION
(No sagittal or rotational correction)
Principle: Distraction straightens the spine by pulling the two ends of the curve apart on the concave side. This is purely a coronal plane (frontal plane) correction - it does not address the rotational component of the scoliotic deformity.

SURGICAL TECHNIQUE (Classic Approach)

  1. Patient prone on a Relton-Hall frame (reduces intraabdominal pressure, decreases blood loss)
  2. Posterior midline incision from the upper to lower instrumented vertebra
  3. Subperiosteal dissection and exposure of laminae and facets
  4. Identify end vertebrae of the curve (uppermost and lowermost tilted vertebrae)
  5. Place upper hook under the lamina of the upper end vertebra
  6. Place lower hook under the lamina of the lower end vertebra
  7. Insert the distraction rod (ratchet end up) and distract sequentially
  8. Perform wake-up test (Stagnara test) to assess neurological function
  9. Place compression rod on convex side with transverse process hooks
  10. Thorough posterolateral decortication and bone grafting (autologous iliac crest)
  11. Postoperative immobilization in plaster cast or brace for 6 to 9 months

THE STAGNARA WAKE-UP TEST

A critical safety step performed intraoperatively after distraction:
  • Anesthesia lightened; patient asked to move hands then feet
  • If hands move but feet do not → neurological compromise → release distraction one notch → repeat
  • If no improvement → implant removal and investigation
  • Rationale: excessive distraction can stretch the spinal cord and cause paraplegia
  • Disadvantage: only a single time-point assessment; patient may fall off table, dislodge tube
Modern replacement: continuous intraoperative neuromonitoring (SSEP + MEP)

RESULTS AND ADVANTAGES

FeatureDetail
Coronal correction~50% correction of Cobb angle achievable
First systemAllowed surgical treatment of previously untreatable severe curves (e.g., polio scoliosis)
No external fixation intraoperativelyInternal fixation was a major advance over cast treatment alone
Simple designOnly two hooks; no complex screw placement

DISADVANTAGES AND WHY IT WAS ABANDONED

eFig 40.3: Harrington distraction rod causing flatback deformity. Left = normal sagittal profile. Right = distraction rod flattens lumbar lordosis and creates kyphosis above the rod level (red arrows)
eFig 40.3 (Campbell's): Left = normal sagittal balance. Right = Harrington rod flattening lumbar lordosis - the classic "flatback deformity" - with kyphosis forming just above the rod.
DisadvantageExplanation
Flatback deformityDistraction without sagittal contouring flattens lumbar lordosis → forward-stooped posture, chronic low back pain
End-point fixation onlyAnchored at two points only → laminar hook failure common (avulsion fracture)
No rotational correctionDistraction corrects only the coronal plane; vertebral rotation (the "hump") remains uncorrected
No sagittal controlCannot simultaneously address hypokyphosis or lordosis
Postop immobilizationRequired 6-9 months in cast or brace (significant morbidity)
PseudarthrosisHigher rates than modern segmental systems
"Crankshaft phenomenon"If used in skeletally immature patients, continued anterior growth can rotate the fused posterior spine

COMPLICATIONS

COMPLICATIONS OF HARRINGTON ROD
              │
    ┌─────────┴──────────────┐
INTRAOPERATIVE          POSTOPERATIVE
    │                        │
    ├── Neurological      ├── Flatback deformity
    │   injury            │   (most important)
    │   (cord stretch)    │
    │                     ├── Hook dislodgement
    ├── Blood loss        │   / laminar fracture
    │                     │
    └── Dural tear        ├── Pseudarthrosis
                          │
                          ├── Rod breakage
                          │
                          ├── Late infection
                          │   (stainless steel)
                          │
                          └── "Adding-on"
                              (curve progression
                               above/below fusion)

COMPARISON: HARRINGTON ROD vs. MODERN SEGMENTAL SYSTEMS

FeatureHarrington RodModern Pedicle Screw System
Year19621980s-present
Fixation points2 end-point hooks onlyMultiple segmental anchors
Planes correctedCoronal onlyCoronal + sagittal + rotational (3D)
Force appliedDistraction onlyDistraction + compression + rotation
Sagittal controlNoneExcellent (rod contouring)
Rotational correctionMinimalExcellent
Postop brace6-9 monthsNone required
Implant failureHigherLower
PseudarthrosisHigherLower
Status todayObsoleteStandard of care

HISTORICAL EVOLUTION FOLLOWING HARRINGTON

1962 - Harrington Rod
    ↓
1970s - Luque Rod + Sublaminar Wires
    (Segmental fixation; better for neuromuscular scoliosis)
    ↓
1984 - Cotrel-Dubousset (CD) Instrumentation
    (Hooks + rod derotation; first true 3D correction)
    ↓
1990s - Pedicle Screw + Rod Systems
    (Three-column fixation; best 3D correction; current gold standard)

CURRENT RELEVANCE

The Harrington rod is no longer used for scoliosis but retains historical importance as it:
  • Was the first instrumentation to demonstrate that surgical correction and fusion of scoliosis was feasible
  • Provided the conceptual framework (distraction + fusion) on which all subsequent systems were built
  • Still occasionally referenced in the context of thoracolumbar fracture stabilization in historical literature
  • The flatback syndrome (iatrogenic loss of lumbar lordosis) it caused remains a clinical entity seen in adults who underwent Harrington instrumentation decades ago and now present with progressive deformity and back pain

Source: Campbell's Operative Orthopaedics 15th Ed 2026 (Ch. 40); Barash, Cullen & Stoelting's Clinical Anesthesia 9th Ed (Ch. Spinal Cord Monitoring)

Alif tlif plif xlif in detail

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
Reading File
Reading File
Loading Image
Loading Image
Loading Image
I now have excellent textbook content and all key images. Here is the complete detailed answer.

ALIF, PLIF, TLIF, XLIF

Lumbar Interbody Fusion Techniques - In Detail


OVERVIEW AND CONCEPT

Lumbar interbody fusion (LIF) refers to surgical procedures that access the intervertebral disc space to:
  1. Remove the disc (discectomy)
  2. Prepare the endplates
  3. Insert an interbody cage (PEEK, titanium, or carbon composite) filled with bone graft
  4. Achieve circumferential fusion (anterior + posterior column)
The four major approaches differ in the direction from which the disc space is accessed, each with unique anatomical corridors, advantages, and complications.

AXIAL ANATOMY OF APPROACH DIRECTIONS

Cross-sectional diagram of the lumbar spine showing all approach directions: ALIF anteriorly (between aorta/IVC), OLIF/ATP obliquely (left side between vessels and psoas), XLIF/LLIF directly laterally (through psoas), TLIF posterolaterally through foramen, and PLIF directly posteriorly through canal
Fig 44.37: Axial cross-section showing the zones of approach. ALIF = directly anterior (between great vessels). OLIF/ATP = oblique, left of vessels, anterior to psoas. XLIF/LLIF = directly lateral through psoas. TLIF = posterolateral through foramen. PLIF = directly posterior through canal.

DECISION ALGORITHM

Lumbar interbody treatment algorithm by level - L4-5, L5-S1, L2-L4: ALIF preferred for simultaneous L5-S1, TLIF for previous retroperitoneal surgery or high iliac crest, XLIF/DLIF for low iliac crest with favorable psoas, OLIF/ATP for corridor between psoas and vessels
Fig 44.32 (Campbell's): Lumbar interbody treatment decision algorithm by level and patient anatomy.


1. ALIF - ANTERIOR LUMBAR INTERBODY FUSION

Definition

Anterior approach through the abdomen (transperitoneal or retroperitoneal) to access the disc space directly from the front, anterior to the great vessels.

Approach

  • Transperitoneal (L5-S1): midline or Pfannenstiel incision; enter peritoneal cavity; retract bowel; open posterior peritoneum; retract aorta/IVC
  • Retroperitoneal (L2-L5): left paramedian incision; muscle-splitting; peritoneal sac swept medially; access the lateral surface of the vertebral column without entering the peritoneal cavity
ALIF transperitoneal approach (Technique 44.20): A = midline vertical or transverse (Pfannenstiel) skin incision. B = surgical exposure showing common iliac artery and vein, L5 vertebral body, and middle sacral artery in the retroperitoneal space

Levels

  • Best suited for L5-S1 (standard) and L4-L5 (with vessel mobilization)
  • Less commonly used at L2-L4 (avoided unless necessary due to vascular complexity)

Technique Steps

  1. Patient supine; general anesthesia
  2. Midline or Pfannenstiel incision
  3. Access retroperitoneal/peritoneal space
  4. Retract or mobilize aorta leftward and IVC rightward (at L4-5) or retract common iliac vessels laterally (at L5-S1)
  5. Avoid electrocautery anterior to L5-S1 disc (protects superior hypogastric plexus)
  6. Complete discectomy; prepare endplates
  7. Insert large lordotic cage (widest footprint of all approaches)
  8. Pack cage with bone graft (autograft/BMP-2)
  9. Optional supplemental posterior fixation (pedicle screws)

Unique Structure: Superior Hypogastric Plexus

  • Sympathetic plexus anterior to L5-S1
  • Injury → retrograde ejaculation in men (ejaculatory dysfunction, not impotence)
  • Avoided by: blunt dissection left-to-right, minimizing electrocautery, stay medial until disc exposed

Advantages

AdvantageDetail
Largest cage footprintMaximizes endplate contact → best lordosis restoration
No neural retractionSpinal cord/cauda equina not disturbed
Complete discectomyFull disc removal via direct visualization
Best sagittal balance correctionLordotic cage restores lumbar lordosis
No posterior muscle damageParaspinal muscles intact

Disadvantages / Complications

ComplicationNotes
Retrograde ejaculation0.5-5%; hypogastric plexus injury
Vascular injuryAorta, IVC, iliac vessels
Access surgeon neededVascular or general surgery expertise required
Cannot decompress posteriorlyDoes not treat canal or foraminal stenosis directly
SubsidenceEndplate violation → cage settling
Approach-related ileusBowel handling

2. PLIF - POSTERIOR LUMBAR INTERBODY FUSION

Definition

Access the disc space directly through the posterior midline approach, retracting the dural sac and nerve roots bilaterally to insert two small cages laterally within the disc space.

Approach

  • Standard posterior midline incision
  • Bilateral laminectomy/laminotomy + bilateral medial facetectomy
  • Dural sac retracted medially to access disc space on each side
  • Two small cages placed bilaterally (kidney-shaped or bullet-shaped)

Levels

  • L3-L4, L4-L5, L5-S1 (most commonly L4-L5)
  • Most practical where neural anatomy allows bilateral retraction

Technique Steps

  1. Patient prone; posterior midline incision
  2. Bilateral subperiosteal muscle dissection
  3. Bilateral laminectomy and medial facetectomy
  4. Nerve root identified and carefully retracted medially
  5. Annulotomy; discectomy bilaterally
  6. Endplate preparation
  7. Two small cages (12-14 mm wide) inserted bilaterally
  8. Bone graft packed around cages
  9. Pedicle screw-rod fixation placed simultaneously

Advantages

AdvantageDetail
Single incisionDecompression + interbody fusion + posterior fixation in one approach
Direct neural decompressionForaminotomy, laminectomy all performed simultaneously
No approach surgeon neededOne team, one position
Good fusion ratesLarge interbody surface + posterior graft

Disadvantages / Complications

ComplicationNotes
Bilateral nerve root retractionHigh risk of dural tear, nerve injury, epidural fibrosis
Limited cage sizeSmall cage (narrow canal space) → less lordosis correction
Epidural scarringGreater posterior dissection → adhesions
Blood lossEpidural venous bleeding
Limited lordosis restorationSmall bilateral cages less effective than single large ALIF cage

3. TLIF - TRANSFORAMINAL LUMBAR INTERBODY FUSION

Definition

Access the disc space through the neural foramen (posterolateral approach), entering unilaterally via the Kambin's triangle after removing the facet joint on one side. A single crescent-shaped or bullet cage is inserted from one side.

Concept

TLIF is a modification of PLIF that avoids bilateral neural retraction by entering the disc space from the posterolateral corner (the foramen), where the traversing nerve root is not at risk.

Levels

  • L3-4, L4-5, L5-S1 - most versatile of all approaches
  • Gold standard for spondylolisthesis
  • Can be done open or minimally invasive (MIS-TLIF)

Technique Steps

  1. Patient prone; posterior midline or paramedian incision
  2. Unilateral exposure; complete facetectomy on the side of approach
  3. Pedicle screws placed bilaterally
  4. Ipsilateral nerve root retracted medially (exiting root protected in foramen)
  5. Unilateral annulotomy and complete discectomy
  6. Endplate preparation
  7. Single kidney-shaped or curved cage inserted through foramen into the disc space
  8. Cage positioned in the anterior half of the disc space for maximal lordosis
  9. Compression across construct to lock cage in position
  10. Contralateral posterolateral bone graft

Kambin's Triangle

The safe working corridor in TLIF:
  • Hypotenuse: exiting nerve root
  • Base: superior endplate of the lower vertebra
  • Height: traversing nerve root / dural sac

Advantages

AdvantageDetail
Unilateral approachOnly one nerve root retracted (vs. bilateral in PLIF)
Single-position surgeryProne position for decompression + fusion + fixation
Good for spondylolisthesisSimultaneous reduction + interbody support
MIS-compatibleTubular retractors, percutaneous screws - less blood loss
No access surgeonPerformed by single spine surgeon
Decompresses canalLaminectomy/laminotomy can be added

Disadvantages / Complications

ComplicationNotes
Exiting nerve root injuryAt the foramen during cage insertion
Limited cage sizeSmaller than ALIF cage; less lordosis restoration
Unilateral decompressionContralateral foramen not directly decompressed
Dural tearEpidural dissection
SubsidenceEndplate damage during preparation

4. XLIF / LLIF - EXTREME LATERAL / LATERAL LUMBAR INTERBODY FUSION

Definition

Access the disc space directly laterally through the psoas muscle in a retroperitoneal corridor, using sequential dilators and intraoperative EMG monitoring to avoid the lumbar plexus. Also called LLIF (Lateral Lumbar Interbody Fusion) or DLIF (Direct Lateral Interbody Fusion).

Approach

  • Patient in lateral decubitus position (right side up/down depending on preference)
  • Two skin incisions: one in the flank (retroperitoneal access), one lateral over the disc level
  • Sequential dilators passed through the psoas muscle under live EMG monitoring
  • Expandable retractor placed over dilators to create working portal
  • Disc accessed from the exact lateral position (widest disc diameter)
XLIF/LLIF: Patient in lateral decubitus position with retractor system through the psoas muscle; cross-sectional view shows retractor reaching the disc space lateral to the spinal canal with kidney, psoas, and great vessels labeled
Fig 44.38: Patient positioning and exposure for oblique/lateral lumbar fusion - lateral decubitus with retroperitoneal corridor between vessels and psoas.

Safe Zone (Moro Classification)

The disc is divided into 4 zones (I-IV) from anterior to posterior:
XLIF safe zone diagram: Lumbar disc divided into Zones I-IV from anterior (A) to posterior (P); pink zone = anterior ALIF safe zone; blue zone = XLIF safe corridor through psoas; Zone IV posterior = unsafe (neural structures)
Safe zone for XLIF dilator passage is Zone I-II (anterior half of disc) at L1-L4, to avoid the lumbar plexus which migrates anteriorly at L4-L5.
ZoneLocationSafety
IAnterior quarterVascular risk (ALIF zone)
IIAnterior-middleSafe for XLIF (optimal)
IIIPosterior-middleLumbar plexus risk
IVPosteriorUnsafe (neural elements)

Levels

  • L1-L2 to L4-L5 (most commonly)
  • NOT L5-S1 (iliac crest blocks access)
  • Optimal at L2-L4

EMG Monitoring During Psoas Dilation

  • Continuous EMG monitoring of lumbar plexus as dilators traverse psoas
  • >10 mA threshold = nerve is at safe distance
  • <10 mA → stop, redirect (nerve too close)

Technique Steps

  1. Patient right lateral decubitus; slight reverse Trendelenburg
  2. Fluoroscopy to plan incision over disc
  3. Small flank incision → retroperitoneal space → peritoneal sac swept anteriorly
  4. Psoas identified; sequential dilators passed through psoas under EMG monitoring
  5. Expandable retractor seated at disc level; fluoroscopy confirms position
  6. Annulotomy and complete discectomy; endplate preparation
  7. Large wide cage (widest footprint) inserted laterally, spanning the apophyseal rings bilaterally
  8. Cage packed with bone graft (BMP-2 commonly used)
  9. Supplemental posterior pedicle screw fixation (same position or repositioned)

Advantages

AdvantageDetail
Largest cage availableWide lateral cage spans both apophyseal rings - best endplate support, lowest subsidence
No posterior muscle damageParaspinal muscles completely intact
No neural retractionCord/cauda equina untouched
Indirect decompressionCage distraction opens foramen and canal (ligamentotaxis)
Minimal blood lossMIS approach
Multi-level capabilityMultiple levels through same flank exposure with "sliding window"
Rapid recoveryNo posterior dissection → shorter hospital stay

Disadvantages / Complications

ComplicationNotes
Lumbar plexus injuryMost feared complication - thigh pain, hip flexor weakness, femoral neuropathy
Genitofemoral nerve injuryAnterior thigh numbness/dysesthesia; most common neurological complication (~10%)
Cannot access L5-S1Iliac crest obstruction
Indirect decompression onlyDoes not treat severe central stenosis or disc herniation directly
Approach-side hip flexor weaknessPsoas retraction / injury
SubsidenceDespite wide cage, endplate violation still occurs
Sympathetic chain injuryRetrograde ejaculation if injured anteriorly

COMPARISON TABLE: ALIF vs. PLIF vs. TLIF vs. XLIF

FeatureALIFPLIFTLIFXLIF/LLIF
Full nameAnterior LIFPosterior LIFTransforaminal LIFExtreme/Direct Lateral LIF
Patient positionSupineProneProneLateral decubitus
Approach directionAnteriorPosterior (bilateral)Posterolateral (unilateral)Direct lateral through psoas
Access surgeon neededYes (vascular/gen surg)NoNoNo
Cage sizeLargestSmallestIntermediateWidest (spanning apophyseal rings)
Lordosis restorationBestLeastGoodGood
Direct decompressionNoYes (bilateral)Yes (unilateral)No (indirect only)
Neural retractionNoneBilateralUnilateralNone
LevelsL4-S1 (best L5-S1)L3-S1L3-S1L1-L4 only (NOT L5-S1)
NeuromonitoringNoSSEP/MEP optionalSSEP/MEP optionalEMG mandatory
Main unique riskRetrograde ejaculation; vascular injuryDural tear; bilateral nerve injuryExiting nerve root injuryLumbar plexus/genitofemoral injury
MIS optionYes (mini-ALIF)LimitedYes (MIS-TLIF)Yes (standard)
360° fusion possibleYes (with posterior fixation)Yes (all-posterior)Yes (all-posterior)Yes (add posterior fixation)

COMMON INDICATIONS BY APPROACH

IndicationPreferred Approach
Spondylolisthesis (grade I-II)TLIF (standard) or ALIF
Degenerative disc diseaseTLIF or ALIF
Adjacent segment diseaseTLIF (if posterior hardware already present)
Sagittal imbalance correctionALIF (best lordosis)
Multi-level degenerative diseaseXLIF (L2-L4) + posterior fixation
Spinal deformity (flat back)ALIF + posterior osteotomy
High-grade spondylolisthesisALIF or combined ALIF + posterior
Revision after prior posterior surgeryALIF or XLIF (avoids scar tissue)

CAGE MATERIALS

All interbody cages:
  • PEEK (polyether ether ketone) - radiolucent, modulus similar to bone, most common
  • Titanium mesh - radiopaque, excellent osseointegration
  • Carbon composite - radiolucent, strong
  • Filled with: autologous bone, allograft, BMP-2 (recombinant bone morphogenetic protein), or ceramics
  • Must achieve solid bony fusion - cages alone will fail by fatigue fracture if fusion does not occur

Source: Campbell's Operative Orthopaedics 15th Ed 2026 (Ch. 44); Grainger & Allison's Diagnostic Radiology (Ch. 51); Gray's Anatomy for Students 4th Ed

Generate a step-by-step PDF guide for each interbody fusion technique

Reading File
Running Command

mkdir -p /tmp/workspace/interbody-fusion-guide

Writing File

~/interbody-fusion-guide/generate_pdf.py

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

OUTPUT_PATH = "/tmp/workspace/interbody-fusion-guide/Interbody_Fusion_Techniques_Guide.pdf"

# ─── COLOR PALETTE ───────────────────────────────────────────────────────────
C_DARK_BLUE   = HexColor("#1A3A5C")
C_MED_BLUE    = HexColor("#2E6DA4")
C_LIGHT_BLUE  = HexColor("#D6E8F7")
C_ALIF        = HexColor("#1B6CA8")  # blue
C_PLIF        = HexColor("#1E8449")  # green
C_TLIF        = HexColor("#B7770D")  # amber
C_XLIF        = HexColor("#7D3C98")  # purple
C_ALIF_LIGHT  = HexColor("#D6EAF8")
C_PLIF_LIGHT  = HexColor("#D5F5E3")
C_TLIF_LIGHT  = HexColor("#FEF9E7")
C_XLIF_LIGHT  = HexColor("#F5EEF8")
C_WHITE       = colors.white
C_LIGHT_GREY  = HexColor("#F2F2F2")
C_MID_GREY    = HexColor("#CCCCCC")
C_TEXT        = HexColor("#1A1A1A")

# ─── STYLES ──────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def make_style(name, parent='Normal', **kwargs):
    s = ParagraphStyle(name, parent=styles[parent], **kwargs)
    return s

TITLE_STYLE = make_style('DocTitle', fontSize=26, textColor=C_WHITE,
                         alignment=TA_CENTER, fontName='Helvetica-Bold',
                         spaceAfter=6)
SUBTITLE_STYLE = make_style('DocSubtitle', fontSize=13, textColor=HexColor("#C8DCF0"),
                             alignment=TA_CENTER, fontName='Helvetica',
                             spaceAfter=4)
AUTHOR_STYLE = make_style('Author', fontSize=10, textColor=HexColor("#90B8D8"),
                           alignment=TA_CENTER, fontName='Helvetica-Oblique')

SECTION_TITLE = make_style('SectionTitle', fontSize=18, textColor=C_WHITE,
                            fontName='Helvetica-Bold', alignment=TA_LEFT,
                            spaceBefore=0, spaceAfter=0)

H2 = make_style('H2', fontSize=13, textColor=C_DARK_BLUE,
                fontName='Helvetica-Bold', spaceBefore=10, spaceAfter=4)
H3 = make_style('H3', fontSize=11, textColor=C_MED_BLUE,
                fontName='Helvetica-Bold', spaceBefore=6, spaceAfter=3)

BODY = make_style('Body', fontSize=10, textColor=C_TEXT,
                  fontName='Helvetica', leading=15, spaceAfter=4,
                  alignment=TA_JUSTIFY)
BODY_BOLD = make_style('BodyBold', fontSize=10, textColor=C_TEXT,
                       fontName='Helvetica-Bold', leading=15)
STEP_NUM = make_style('StepNum', fontSize=11, textColor=C_WHITE,
                      fontName='Helvetica-Bold', alignment=TA_CENTER)
STEP_TEXT = make_style('StepText', fontSize=10, textColor=C_TEXT,
                       fontName='Helvetica', leading=14, spaceAfter=2)
STEP_TITLE = make_style('StepTitle', fontSize=10, textColor=C_DARK_BLUE,
                        fontName='Helvetica-Bold', leading=14)
CAUTION = make_style('Caution', fontSize=9.5, textColor=HexColor("#7E5109"),
                     fontName='Helvetica', leading=13, spaceAfter=3)
TIP = make_style('Tip', fontSize=9.5, textColor=HexColor("#145A32"),
                 fontName='Helvetica', leading=13, spaceAfter=3)
TABLE_HEADER = make_style('TH', fontSize=9, textColor=C_WHITE,
                          fontName='Helvetica-Bold', alignment=TA_CENTER)
TABLE_CELL = make_style('TC', fontSize=9, textColor=C_TEXT,
                        fontName='Helvetica', leading=12, alignment=TA_LEFT)
TABLE_CELL_C = make_style('TCC', fontSize=9, textColor=C_TEXT,
                           fontName='Helvetica', leading=12, alignment=TA_CENTER)
FOOTER_STYLE = make_style('Footer', fontSize=8, textColor=HexColor("#888888"),
                           alignment=TA_CENTER, fontName='Helvetica-Oblique')
TOC_TITLE = make_style('TOCTitle', fontSize=11, textColor=C_DARK_BLUE,
                       fontName='Helvetica-Bold', leading=14)
TOC_ENTRY = make_style('TOCEntry', fontSize=10, textColor=C_TEXT,
                       fontName='Helvetica', leading=14, leftIndent=12)

# ─── HELPERS ─────────────────────────────────────────────────────────────────

def section_header(title, color, subtitle=None):
    """A full-width colored banner for each section."""
    inner = [Paragraph(title, SECTION_TITLE)]
    if subtitle:
        inner.append(Paragraph(subtitle, make_style(
            'SH_Sub', fontSize=10, textColor=HexColor("#D0E8FF"),
            fontName='Helvetica-Oblique', alignment=TA_LEFT)))
    tbl = Table([[inner]], colWidths=[17*cm])
    tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), color),
        ('TOPPADDING', (0,0), (-1,-1), 10),
        ('BOTTOMPADDING', (0,0), (-1,-1), 10),
        ('LEFTPADDING', (0,0), (-1,-1), 14),
        ('RIGHTPADDING', (0,0), (-1,-1), 14),
        ('ROUNDEDCORNERS', [6,6,6,6]),
    ]))
    return tbl

def step_row(num, title, detail, color):
    """A single numbered step row."""
    num_cell = Table([[Paragraph(str(num), STEP_NUM)]], colWidths=[1.1*cm], rowHeights=[1.1*cm])
    num_cell.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), color),
        ('TOPPADDING', (0,0), (-1,-1), 0),
        ('BOTTOMPADDING', (0,0), (-1,-1), 0),
        ('LEFTPADDING', (0,0), (-1,-1), 0),
        ('RIGHTPADDING', (0,0), (-1,-1), 0),
        ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
        ('ROUNDEDCORNERS', [4,4,4,4]),
    ]))
    text_cell = [Paragraph(title, STEP_TITLE), Paragraph(detail, STEP_TEXT)]
    row_tbl = Table([[num_cell, text_cell]], colWidths=[1.3*cm, 15.7*cm])
    row_tbl.setStyle(TableStyle([
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('LEFTPADDING', (0,0), (0,-1), 0),
        ('RIGHTPADDING', (0,0), (0,-1), 6),
        ('TOPPADDING', (0,0), (-1,-1), 4),
        ('BOTTOMPADDING', (0,0), (-1,-1), 4),
        ('LEFTPADDING', (1,0), (1,-1), 8),
        ('BACKGROUND', (1,0), (1,-1), C_LIGHT_GREY),
        ('LINEBELOW', (0,0), (-1,-1), 0.5, C_MID_GREY),
    ]))
    return row_tbl

def info_box(text, bg_color, label="NOTE"):
    """A coloured info/caution/tip box."""
    tbl = Table([[Paragraph(f"<b>{label}:</b> {text}", BODY)]], colWidths=[17*cm])
    tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), bg_color),
        ('TOPPADDING', (0,0), (-1,-1), 7),
        ('BOTTOMPADDING', (0,0), (-1,-1), 7),
        ('LEFTPADDING', (0,0), (-1,-1), 10),
        ('RIGHTPADDING', (0,0), (-1,-1), 10),
        ('BOX', (0,0), (-1,-1), 0.8, C_MID_GREY),
    ]))
    return tbl

def comparison_table(header_row, data_rows, col_widths, header_color):
    table_data = []
    header_cells = [Paragraph(h, TABLE_HEADER) for h in header_row]
    table_data.append(header_cells)
    for row in data_rows:
        table_data.append([Paragraph(str(c), TABLE_CELL) for c in row])
    tbl = Table(table_data, colWidths=col_widths, repeatRows=1)
    style = [
        ('BACKGROUND', (0,0), (-1,0), header_color),
        ('TEXTCOLOR', (0,0), (-1,0), C_WHITE),
        ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
        ('FONTSIZE', (0,0), (-1,-1), 9),
        ('ALIGN', (0,0), (-1,0), 'CENTER'),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('GRID', (0,0), (-1,-1), 0.4, C_MID_GREY),
        ('ROWBACKGROUNDS', (0,1), (-1,-1), [C_WHITE, C_LIGHT_GREY]),
        ('TOPPADDING', (0,0), (-1,-1), 5),
        ('BOTTOMPADDING', (0,0), (-1,-1), 5),
        ('LEFTPADDING', (0,0), (-1,-1), 5),
        ('RIGHTPADDING', (0,0), (-1,-1), 5),
    ]
    tbl.setStyle(TableStyle(style))
    return tbl

# ─── COVER PAGE ──────────────────────────────────────────────────────────────

def build_cover():
    elems = []
    elems.append(Spacer(1, 2.5*cm))
    cover_tbl = Table([[
        Paragraph("LUMBAR INTERBODY FUSION", TITLE_STYLE),
    ]], colWidths=[17*cm])
    cover_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), C_DARK_BLUE),
        ('TOPPADDING', (0,0), (-1,-1), 20),
        ('BOTTOMPADDING', (0,0), (-1,-1), 8),
        ('LEFTPADDING', (0,0), (-1,-1), 16),
        ('RIGHTPADDING', (0,0), (-1,-1), 16),
    ]))
    subtitle_tbl = Table([[
        Paragraph("Step-by-Step Surgical Guide", SUBTITLE_STYLE),
    ]], colWidths=[17*cm])
    subtitle_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,-1), C_MED_BLUE),
        ('TOPPADDING', (0,0), (-1,-1), 8),
        ('BOTTOMPADDING', (0,0), (-1,-1), 18),
        ('LEFTPADDING', (0,0), (-1,-1), 16),
        ('RIGHTPADDING', (0,0), (-1,-1), 16),
    ]))
    elems.append(cover_tbl)
    elems.append(subtitle_tbl)
    elems.append(Spacer(1, 0.6*cm))

    # 4 technique boxes
    tech_data = [
        [Paragraph("ALIF", make_style('T1', fontSize=16, textColor=C_WHITE,
                   fontName='Helvetica-Bold', alignment=TA_CENTER)),
         Paragraph("PLIF", make_style('T2', fontSize=16, textColor=C_WHITE,
                   fontName='Helvetica-Bold', alignment=TA_CENTER)),
         Paragraph("TLIF", make_style('T3', fontSize=16, textColor=C_WHITE,
                   fontName='Helvetica-Bold', alignment=TA_CENTER)),
         Paragraph("XLIF", make_style('T4', fontSize=16, textColor=C_WHITE,
                   fontName='Helvetica-Bold', alignment=TA_CENTER))],
        [Paragraph("Anterior<br/>Lumbar<br/>Interbody Fusion",
                   make_style('T1s', fontSize=9, textColor=HexColor("#C8DCF0"),
                   fontName='Helvetica', alignment=TA_CENTER)),
         Paragraph("Posterior<br/>Lumbar<br/>Interbody Fusion",
                   make_style('T2s', fontSize=9, textColor=HexColor("#C8DCF0"),
                   fontName='Helvetica', alignment=TA_CENTER)),
         Paragraph("Transforaminal<br/>Lumbar<br/>Interbody Fusion",
                   make_style('T3s', fontSize=9, textColor=HexColor("#C8DCF0"),
                   fontName='Helvetica', alignment=TA_CENTER)),
         Paragraph("Extreme Lateral<br/>Lumbar<br/>Interbody Fusion",
                   make_style('T4s', fontSize=9, textColor=HexColor("#C8DCF0"),
                   fontName='Helvetica', alignment=TA_CENTER))],
    ]
    tech_tbl = Table(tech_data, colWidths=[4.25*cm]*4, rowHeights=[1.5*cm, 1.5*cm])
    tech_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (0,-1), C_ALIF),
        ('BACKGROUND', (1,0), (1,-1), C_PLIF),
        ('BACKGROUND', (2,0), (2,-1), C_TLIF),
        ('BACKGROUND', (3,0), (3,-1), C_XLIF),
        ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
        ('TOPPADDING', (0,0), (-1,-1), 8),
        ('BOTTOMPADDING', (0,0), (-1,-1), 8),
        ('INNERGRID', (0,0), (-1,-1), 1.5, C_WHITE),
    ]))
    elems.append(tech_tbl)
    elems.append(Spacer(1, 0.6*cm))
    elems.append(Paragraph("Reference: Campbell's Operative Orthopaedics 15th Ed 2026 · Grainger & Allison's Diagnostic Radiology · Gray's Anatomy for Students", AUTHOR_STYLE))
    elems.append(Spacer(1, 0.3*cm))
    elems.append(Paragraph("Compiled by Orris Medical AI · July 2026", AUTHOR_STYLE))
    return elems

# ─── TOC ─────────────────────────────────────────────────────────────────────

def build_toc():
    elems = []
    elems.append(PageBreak())
    elems.append(Paragraph("TABLE OF CONTENTS", H2))
    elems.append(HRFlowable(width="100%", thickness=1.5, color=C_DARK_BLUE, spaceAfter=8))
    entries = [
        ("1.  Overview & Concept", "3"),
        ("2.  Axial Anatomy & Approach Zones", "3"),
        ("3.  ALIF — Anterior Lumbar Interbody Fusion", "4"),
        ("      3.1  Indications & Contraindications", "4"),
        ("      3.2  Anatomy at Risk", "4"),
        ("      3.3  Step-by-Step Technique", "5"),
        ("      3.4  Complications", "6"),
        ("4.  PLIF — Posterior Lumbar Interbody Fusion", "7"),
        ("      4.1  Indications & Contraindications", "7"),
        ("      4.2  Anatomy at Risk", "7"),
        ("      4.3  Step-by-Step Technique", "8"),
        ("      4.4  Complications", "9"),
        ("5.  TLIF — Transforaminal Lumbar Interbody Fusion", "10"),
        ("      5.1  Indications & Contraindications", "10"),
        ("      5.2  Kambin's Triangle", "10"),
        ("      5.3  Step-by-Step Technique", "11"),
        ("      5.4  Complications", "12"),
        ("6.  XLIF/LLIF — Extreme Lateral Interbody Fusion", "13"),
        ("      6.1  Indications & Contraindications", "13"),
        ("      6.2  Safe Zone & EMG Monitoring", "13"),
        ("      6.3  Step-by-Step Technique", "14"),
        ("      6.4  Complications", "15"),
        ("7.  Master Comparison Table", "16"),
        ("8.  Cage Materials & Bone Graft Options", "17"),
        ("9.  Decision Algorithm by Level", "17"),
    ]
    for title, page in entries:
        row = Table([[Paragraph(title, TOC_ENTRY), Paragraph(page, make_style(
            'TOCP', fontSize=10, fontName='Helvetica', alignment=TA_CENTER,
            textColor=C_MED_BLUE))]],
            colWidths=[15*cm, 2*cm])
        row.setStyle(TableStyle([
            ('LINEBELOW', (0,0), (-1,-1), 0.3, C_MID_GREY),
            ('TOPPADDING', (0,0), (-1,-1), 3),
            ('BOTTOMPADDING', (0,0), (-1,-1), 3),
        ]))
        elems.append(row)
    return elems

# ─── OVERVIEW ────────────────────────────────────────────────────────────────

def build_overview():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header("1.  OVERVIEW & CONCEPT", C_DARK_BLUE,
                                "Lumbar Interbody Fusion — Principles"))
    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph(
        "Lumbar interbody fusion (LIF) techniques access the intervertebral disc space "
        "to remove the disc, prepare the vertebral endplates, and insert an interbody "
        "cage packed with bone graft material. The goal is to achieve <b>circumferential "
        "fusion</b> (anterior + posterior column), restoring disc height, correcting "
        "sagittal alignment, and providing long-term stability.", BODY))
    elems.append(Spacer(1, 0.3*cm))

    elems.append(Paragraph("Core Surgical Goals", H3))
    goals = [
        ("Stability", "Eliminate painful motion at the diseased segment"),
        ("Decompression", "Restore foraminal height and canal dimensions"),
        ("Alignment", "Restore/improve lumbar lordosis and sagittal balance"),
        ("Fusion", "Achieve solid bony union — hardware alone will fatigue-fracture without fusion"),
    ]
    for g, d in goals:
        elems.append(Paragraph(f"<b>{g}:</b> {d}", BODY))

    elems.append(Spacer(1, 0.3*cm))
    elems.append(Paragraph("Two-Element Framework (Common to All LIF Techniques)", H3))
    fw_data = [
        ["Element", "Options", "Purpose"],
        ["Anchor\n(Vertebral Attachment)", "Pedicle screws\nTranslaminar screws", "Secure the construct to bone"],
        ["Interbody Device", "PEEK cage · Titanium cage\nCarbon composite cage", "Restore height · Promote fusion"],
        ["Graft Material", "Autologous bone · Allograft\nBMP-2 · Ceramic substitute", "Drive osteogenesis within the cage"],
    ]
    fw_tbl = comparison_table(fw_data[0], fw_data[1:],
                               [4*cm, 7*cm, 6*cm], C_DARK_BLUE)
    elems.append(fw_tbl)

    elems.append(Spacer(1, 0.5*cm))
    elems.append(section_header("2.  AXIAL ANATOMY & APPROACH ZONES", C_DARK_BLUE,
                                "Cross-sectional view of the lumbar spine showing surgical corridors"))
    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph(
        "Each technique uses a distinct corridor to reach the disc space. "
        "Understanding the axial anatomy prevents injury to vascular, neural, "
        "and visceral structures adjacent to each approach zone.", BODY))
    elems.append(Spacer(1, 0.2*cm))

    zone_data = [
        ["Approach", "Direction", "Key Corridor Structures", "Primary Risk"],
        ["ALIF", "Directly anterior", "Transperitoneal or retroperitoneal;\nAnterior to aorta & IVC", "Vascular, retrograde ejaculation"],
        ["PLIF", "Directly posterior", "Posterior midline through spinal canal", "Bilateral nerve root / dural injury"],
        ["TLIF", "Posterolateral", "Posterior midline; unilateral foramen\n(Kambin's triangle)", "Exiting nerve root injury"],
        ["XLIF/LLIF", "Directly lateral", "Retroperitoneal; through psoas muscle", "Lumbar plexus / genitofemoral nerve"],
        ["OLIF/ATP", "Oblique-anterior", "Between anterior vessels & psoas", "Sympathetic chain, vessels"],
    ]
    zone_tbl = comparison_table(zone_data[0], zone_data[1:],
                                 [2.5*cm, 3*cm, 6*cm, 5.5*cm], C_DARK_BLUE)
    elems.append(zone_tbl)
    elems.append(Spacer(1, 0.3*cm))
    elems.append(info_box(
        "The iliac crest blocks access to L5-S1 in XLIF/LLIF. "
        "ALIF is the preferred approach for L5-S1 interbody fusion requiring a large cage.",
        HexColor("#EBF5FB"), "KEY ANATOMY POINT"))
    return elems

# ─── ALIF ────────────────────────────────────────────────────────────────────

def build_alif():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header(
        "3.  ALIF — ANTERIOR LUMBAR INTERBODY FUSION", C_ALIF,
        "Approach: Anterior (transperitoneal or retroperitoneal)  |  Position: Supine"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("3.1  Indications & Contraindications", H2))
    ic_data = [
        ["INDICATIONS", "CONTRAINDICATIONS / CAUTIONS"],
        ["Degenerative disc disease (L4-5, L5-S1)\nSpondylolisthesis (grade I-II)\nSagittal imbalance / flatback correction\nPseudarthrosis (revision after posterior fusion)\nDiscogenic low back pain\nAdjacent segment disease",
         "Prior retroperitoneal surgery / extensive abdominal adhesions\nOsteoporosis (cage subsidence risk)\nMale patient desiring future fertility (retrograde ejaculation risk)\nNo available vascular/access surgeon\nMorbid obesity\nInflammatory bowel disease / stoma"],
    ]
    ic_tbl = Table([[Paragraph(ic_data[0][0], TABLE_HEADER),
                     Paragraph(ic_data[0][1], TABLE_HEADER)],
                    [Paragraph(ic_data[1][0], BODY),
                     Paragraph(ic_data[1][1], BODY)]],
                   colWidths=[8.5*cm, 8.5*cm])
    ic_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,0), C_ALIF),
        ('BACKGROUND', (0,1), (0,1), C_ALIF_LIGHT),
        ('BACKGROUND', (1,1), (1,1), HexColor("#FDEDEC")),
        ('GRID', (0,0), (-1,-1), 0.4, C_MID_GREY),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 7),
        ('RIGHTPADDING', (0,0), (-1,-1), 7),
    ]))
    elems.append(ic_tbl)
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("3.2  Anatomy at Risk", H2))
    anat_data = [
        ["Structure", "Location", "Injury Consequence"],
        ["Aorta / iliac arteries", "Anterior to vertebral body", "Catastrophic haemorrhage"],
        ["IVC / iliac veins", "Right anterolateral to vertebra", "Major venous haemorrhage"],
        ["Superior hypogastric plexus", "Anterior to L5-S1 disc space", "Retrograde ejaculation (NOT impotence)"],
        ["Left ureter", "Crosses left iliac artery", "Ureteral injury, hydronephrosis"],
        ["Sympathetic chain", "Anterolateral to vertebral bodies", "Sympathetic dysfunction"],
        ["Lumbosacral trunk (L4-L5 nerve)", "Posterior to iliac vessels", "Motor weakness lower limb"],
    ]
    elems.append(comparison_table(anat_data[0], anat_data[1:],
                                   [4.5*cm, 5.5*cm, 7*cm], C_ALIF))
    elems.append(Spacer(1, 0.4*cm))
    elems.append(info_box(
        "Retrograde ejaculation occurs in 0.5–5% of male patients due to injury to the "
        "superior hypogastric plexus. It is distinct from impotence (erectile function is preserved). "
        "Minimise by using blunt dissection from left to right and avoiding electrocautery anterior to L5-S1.",
        HexColor("#FEF9E7"), "CAUTION"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("3.3  Step-by-Step Technique (Transperitoneal — L5-S1)", H2))
    steps = [
        ("Patient Positioning", "Supine on a radiolucent table. Slight Trendelenburg to allow bowel to fall cephalad. "
         "Ensure fluoroscopy access for lateral and AP views. Secure both arms padded on armboards."),
        ("Skin Incision", "Vertical midline from umbilicus to pubis OR transverse Pfannenstiel incision (preferred — cosmetically superior, better exposure). "
         "Pfannenstiel requires transection of the rectus abdominis sheath."),
        ("Peritoneal Entry", "Identify and open posterior rectus sheath and abdominal fascia. Carefully open the peritoneum. "
         "Pack abdominal contents cephalad with moistened lap pads."),
        ("Posterior Peritoneum", "Identify the aortic bifurcation and sacral promontory by palpation through the posterior peritoneum. "
         "Make a longitudinal incision in the posterior peritoneum in the midline, around the aortic bifurcation."),
        ("Vessel Mobilisation", "Extend incision distally along the right common iliac artery to its bifurcation. "
         "Identify right ureter crossing the right iliac artery — curve incision medially to avoid it. "
         "Retract common iliac vessels laterally with vessel loops or retractors."),
        ("Middle Sacral Vessels", "Identify and ligate/clip the middle sacral artery and vein in the midline "
         "over the L5-S1 disc space (see Fig 44.36B)."),
        ("Disc Exposure", "AVOID electrocautery anterior to the L5-S1 disc space — protect the superior hypogastric plexus. "
         "Use blunt dissection left to right. Expose the anterior annulus of L5-S1 clearly."),
        ("Level Confirmation", "Confirm the correct disc level with lateral fluoroscopy using a needle or Kirschner wire in the disc space."),
        ("Discectomy", "Incise the anterior annulus with a scalpel (box or H-shaped annulotomy). "
         "Remove all disc material using curettes, rongeurs, and pituitary forceps. "
         "Achieve complete discectomy including cartilaginous endplates."),
        ("Endplate Preparation", "Use rasps, scrapers, and curettes to decorticate the endplates to bleeding bone. "
         "Avoid violating the cortical endplate (increases subsidence risk). "
         "Achieve flat, parallel endplates to accept the cage."),
        ("Trial Cage Sizing", "Insert trial cages of increasing height until the desired disc distraction is achieved. "
         "Confirm with lateral fluoroscopy. Choose the largest cage that fits without over-distraction."),
        ("Cage Insertion", "Pack the final cage with autologous bone graft, allograft, or BMP-2. "
         "Insert the cage in the anterior-central position to maximise lordosis and endplate contact. "
         "Confirm AP and lateral position with fluoroscopy."),
        ("Haemostasis & Closure", "Obtain haemostasis. Close the posterior peritoneum over the great vessels. "
         "Close the abdominal wall in layers (rectus sheath, subcutaneous tissue, skin). "
         "Insert a urinary catheter preoperatively; remove on day 1-2."),
        ("Supplemental Posterior Fixation", "For most indications, posterior percutaneous pedicle screw-rod fixation is added "
         "(same anaesthetic or staged). This converts ALIF to a 360° fusion construct."),
    ]
    for i, (title, detail) in enumerate(steps, 1):
        elems.append(step_row(i, title, detail, C_ALIF))
        elems.append(Spacer(1, 0.15*cm))

    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph("3.4  ALIF Complications", H2))
    comp_data = [
        ["Complication", "Incidence", "Prevention / Management"],
        ["Retrograde ejaculation", "0.5–5% males", "Blunt dissection; avoid electrocautery anterior to L5-S1"],
        ["Vascular injury (aorta/IVC/iliac)", "1–3%", "Gentle retraction; vascular access surgeon on standby"],
        ["Cage subsidence", "4–10%", "Avoid endplate violation; choose correct cage size"],
        ["Postoperative ileus", "3–5%", "Gentle bowel handling; early ambulation"],
        ["Wound infection (superficial/deep)", "1–2%", "Prophylactic antibiotics; sterile technique"],
        ["Approach-related nerve injury", "<1%", "Identify ureter; avoid deep retraction near L4-5 nerve"],
        ["Pseudarthrosis", "3–8%", "Ensure solid endplate preparation; use BMP-2 if needed"],
        ["Deep vein thrombosis/PE", "1–3%", "Sequential compression devices; early mobilisation"],
    ]
    elems.append(comparison_table(comp_data[0], comp_data[1:],
                                   [5*cm, 3*cm, 9*cm], C_ALIF))
    return elems

# ─── PLIF ────────────────────────────────────────────────────────────────────

def build_plif():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header(
        "4.  PLIF — POSTERIOR LUMBAR INTERBODY FUSION", C_PLIF,
        "Approach: Posterior midline  |  Position: Prone"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("4.1  Indications & Contraindications", H2))
    ic_data = [
        ["INDICATIONS", "CONTRAINDICATIONS / CAUTIONS"],
        ["Lumbar spondylolisthesis with neural compression\nDegenerative disc disease with instability\nRecurrent disc herniation (after previous discectomy)\nSpondylolysis with instability\nDegenerative scoliosis requiring decompression + fusion\nSegmental instability following laminectomy",
         "Severe epidural fibrosis (previous posterior surgery — consider TLIF instead)\nOsteoporosis (small cages + limited endplate contact)\nSevere canal stenosis with multiple adhesions\nActive infection at operative level\nMajor comorbidities precluding prolonged prone position"],
    ]
    ic_tbl = Table([[Paragraph(ic_data[0][0], TABLE_HEADER),
                     Paragraph(ic_data[0][1], TABLE_HEADER)],
                    [Paragraph(ic_data[1][0], BODY),
                     Paragraph(ic_data[1][1], BODY)]],
                   colWidths=[8.5*cm, 8.5*cm])
    ic_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,0), C_PLIF),
        ('BACKGROUND', (0,1), (0,1), C_PLIF_LIGHT),
        ('BACKGROUND', (1,1), (1,1), HexColor("#FDEDEC")),
        ('GRID', (0,0), (-1,-1), 0.4, C_MID_GREY),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 7),
        ('RIGHTPADDING', (0,0), (-1,-1), 7),
    ]))
    elems.append(ic_tbl)
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("4.2  Anatomy at Risk", H2))
    anat_data = [
        ["Structure", "Location", "Injury Consequence"],
        ["Dural sac / cauda equina", "Central posterior to disc", "CSF leak, neural injury, arachnoiditis"],
        ["Traversing nerve roots (bilateral)", "Medial to pedicles bilaterally", "Radiculopathy, motor weakness, foot drop"],
        ["Epidural veins", "Surrounding dural sac", "Epidural haematoma, blood loss"],
        ["Segmental vessels", "Lateral to disc anteriorly", "Haemorrhage during discectomy"],
        ["Anterior dura / nerve sleeves", "Anterior to posterior longitudinal ligament", "Injury during disc removal"],
    ]
    elems.append(comparison_table(anat_data[0], anat_data[1:],
                                   [4.5*cm, 5.5*cm, 7*cm], C_PLIF))
    elems.append(Spacer(1, 0.3*cm))
    elems.append(info_box(
        "PLIF requires BILATERAL nerve root retraction to gain access to both sides of the disc space. "
        "This is the most significant disadvantage vs. TLIF (unilateral retraction). "
        "In the presence of previous posterior surgery with epidural scarring, "
        "TLIF through the foramen is strongly preferred.",
        HexColor("#EAFAF1"), "TECHNIQUE NOTE"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("4.3  Step-by-Step Technique", H2))
    steps = [
        ("Patient Positioning", "Prone on a 4-post frame or Wilson frame. Hips and knees slightly flexed to reduce lumbar lordosis "
         "and open the interlaminar space. Abdomen hangs free (reduces epidural venous pressure and blood loss). "
         "Ensure no ocular pressure."),
        ("Skin Incision", "Standard posterior midline incision over the target level(s). Length depends on number of levels. "
         "Mark skin landmarks with fluoroscopy before incision."),
        ("Muscle Dissection", "Subperiosteal dissection of paraspinal muscles bilaterally. "
         "Expose laminae, facet joints, and transverse processes at the target level(s). "
         "Use Cobb elevator and electrocautery."),
        ("Pedicle Screw Placement", "Place bilateral pedicle screws above and below the target disc before neural work. "
         "This provides stability and allows distraction across the disc space. "
         "Confirm with AP and lateral fluoroscopy."),
        ("Laminectomy / Laminotomy", "Perform a wide bilateral laminectomy and medial facetectomy to expose the posterior disc. "
         "Remove ligamentum flavum. The dural sac and bilateral nerve roots must be visible."),
        ("Epidural Haemostasis", "Control epidural bleeding with bipolar diathermy and Gelfoam/Surgicel. "
         "Thorough haemostasis before neural retraction is essential."),
        ("Bilateral Nerve Root Retraction", "Using nerve root retractors, gently retract the dural sac medially AND both traversing "
         "nerve roots medially on each side. This creates bilateral corridors lateral to the dura. "
         "Limit retraction time — prolonged retraction causes nerve injury."),
        ("Annulotomy (Bilateral)", "Using a 15-blade or Kerrison rongeur, make annulotomy windows bilaterally. "
         "Access the disc space from both sides."),
        ("Discectomy", "Remove disc material bilaterally using curettes, pituitary rongeurs, and disc forceps. "
         "Achieve complete disc removal. Visualise the anterior annulus."),
        ("Endplate Preparation", "Use rasps and curettes to prepare the endplates bilaterally to bleeding cancellous bone. "
         "Match the endplate contour to the cage profile."),
        ("Trial Cage Sizing", "Insert bilateral trial sizers to determine correct cage dimensions. "
         "Distraction across the pedicle screws (using the rod and distractor) opens the disc space "
         "and facilitates cage insertion."),
        ("Cage Insertion (Bilateral)", "Pack two small PLIF cages (typically 10-12 mm wide, kidney-shaped) with bone graft. "
         "Insert one cage from each side, positioning them in the anterior one-third of the disc space. "
         "Confirm position with AP and lateral fluoroscopy."),
        ("Posterolateral Bone Grafting", "Decorticate transverse processes and facet joints. "
         "Apply autologous bone graft for posterolateral fusion."),
        ("Rod Insertion & Compression", "Insert connecting rods bilaterally. Apply compression across the construct "
         "to seat the cages and close the disc space. Tighten all screw caps."),
        ("Closure", "Irrigate wound thoroughly with antibiotic solution. Place suction drain(s). "
         "Close paraspinal fascia, subcutaneous tissue, and skin in layers."),
    ]
    for i, (title, detail) in enumerate(steps, 1):
        elems.append(step_row(i, title, detail, C_PLIF))
        elems.append(Spacer(1, 0.12*cm))

    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph("4.4  PLIF Complications", H2))
    comp_data = [
        ["Complication", "Incidence", "Prevention / Management"],
        ["Dural tear / CSF leak", "5–10%", "Primary repair with 6-0 Prolene; fibrin glue; flat bed rest 24–48h"],
        ["Bilateral nerve root injury", "2–5%", "Minimise retraction duration; careful technique"],
        ["Epidural haematoma", "1–3%", "Haemostasis before retraction; suction drain postop"],
        ["Cage migration / expulsion", "1–5%", "Size cage correctly; position anteriorly; compress construct"],
        ["Adjacent segment disease", "5–10%/year", "Minimise fusion levels; preserve motion where possible"],
        ["Pseudarthrosis", "5–10%", "Thorough endplate prep; adequate graft volume; stop NSAIDs/smoking"],
        ["Infection (deep)", "1–3%", "Prophylactic antibiotics; drain removal by 48h"],
        ["Foot drop / motor deficit", "<1%", "Immediate post-op exam; urgent MRI if new deficit"],
    ]
    elems.append(comparison_table(comp_data[0], comp_data[1:],
                                   [5*cm, 3*cm, 9*cm], C_PLIF))
    return elems

# ─── TLIF ────────────────────────────────────────────────────────────────────

def build_tlif():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header(
        "5.  TLIF — TRANSFORAMINAL LUMBAR INTERBODY FUSION", C_TLIF,
        "Approach: Posterolateral through foramen (unilateral)  |  Position: Prone"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("5.1  Indications & Contraindications", H2))
    ic_data = [
        ["INDICATIONS", "CONTRAINDICATIONS / CAUTIONS"],
        ["Spondylolisthesis grades I-II (gold standard)\nDegenerative disc disease with instability\nRecurrent disc herniation (after PLIF or discectomy)\nPost-laminectomy instability\nPrevious posterior surgery (TLIF avoids bilateral scar)\nSingle-level degenerative disease\nMinimally invasive surgery (MIS-TLIF)",
         "Bilateral foraminal stenosis requiring bilateral decompression\nSevere foraminal scarring at entry side\nConjoined nerve root anomaly at approach foramen\nActive discitis / infection\nSevere osteoporosis"],
    ]
    ic_tbl = Table([[Paragraph(ic_data[0][0], TABLE_HEADER),
                     Paragraph(ic_data[0][1], TABLE_HEADER)],
                    [Paragraph(ic_data[1][0], BODY),
                     Paragraph(ic_data[1][1], BODY)]],
                   colWidths=[8.5*cm, 8.5*cm])
    ic_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,0), C_TLIF),
        ('BACKGROUND', (0,1), (0,1), C_TLIF_LIGHT),
        ('BACKGROUND', (1,1), (1,1), HexColor("#FDEDEC")),
        ('GRID', (0,0), (-1,-1), 0.4, C_MID_GREY),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 7),
        ('RIGHTPADDING', (0,0), (-1,-1), 7),
    ]))
    elems.append(ic_tbl)
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("5.2  Kambin's Triangle — The TLIF Safe Working Zone", H2))
    elems.append(Paragraph(
        "Kambin's triangle is the anatomical safe zone for posterolateral disc access used in TLIF. "
        "Working within this triangle avoids injury to the traversing and exiting nerve roots.", BODY))
    kb_data = [
        ["Side of Triangle", "Anatomical Structure"],
        ["Hypotenuse (lateral)", "Exiting nerve root in the foramen"],
        ["Base (inferior)", "Superior endplate of the lower vertebra"],
        ["Height (medial)", "Traversing nerve root / lateral border of dural sac"],
        ["Safe working area", "Within this triangle — typically 8-12 mm diameter space"],
    ]
    kb_tbl = comparison_table(kb_data[0], kb_data[1:],
                               [5.5*cm, 11.5*cm], C_TLIF)
    elems.append(kb_tbl)
    elems.append(Spacer(1, 0.3*cm))
    elems.append(info_box(
        "At L4-5 and L5-S1, the exiting nerve root (L4 or L5) runs in the superior portion "
        "of the foramen. Always identify and protect it before inserting the cage. "
        "The exiting root is at greater risk in TLIF than PLIF.",
        HexColor("#FEF9E7"), "CAUTION"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("5.3  Step-by-Step Technique (Open TLIF)", H2))
    steps = [
        ("Patient Positioning", "Prone on a 4-post frame or Jackson table. Abdomen hanging free. "
         "Slight reverse Trendelenburg. Fluoroscopy set for lateral and AP views. "
         "If MIS-TLIF: tubular retractor system aligned over target foramen."),
        ("Skin Incision", "Posterior midline incision OR paramedian incision for MIS-TLIF. "
         "Length depends on number of levels and if bilateral decompression is planned. "
         "Confirm level with fluoroscopy before incising fascia."),
        ("Muscle Dissection", "Subperiosteal dissection of paraspinal muscles. "
         "For MIS-TLIF: sequential muscle dilation through tubular retractor. "
         "Expose the facet joint on the approach side (usually the symptomatic side)."),
        ("Bilateral Pedicle Screw Placement", "Place bilateral pedicle screws above and below the target level "
         "BEFORE facetectomy to maintain stability. Use fluoroscopy or navigation to confirm. "
         "For MIS-TLIF: percutaneous screws placed through stab incisions before/after interbody work."),
        ("Ipsilateral Laminotomy / Facetectomy", "On the approach side: perform a partial or complete ipsilateral "
         "facetectomy (superior articular process of lower level + inferior articular process of upper level). "
         "This opens the foramen and exposes Kambin's triangle. "
         "Also perform laminotomy for canal access if decompression is required."),
        ("Contralateral Decompression (if needed)", "Using angled curettes and Kerrison rongeurs, perform "
         "contralateral laminotomy and foraminotomy through the same ipsilateral approach by "
         "tilting the table and working 'over the top'. This avoids bilateral approach."),
        ("Nerve Root Identification", "Identify the exiting nerve root in the foramen (ipsilateral) and the "
         "traversing nerve root medially. Protect both. "
         "Use Woodson probe to palpate nerve root before inserting any instrument into the disc."),
        ("Annulotomy", "With the exiting nerve root retracted superolaterally and traversing root "
         "retracted medially, perform a unilateral annulotomy at the posterolateral corner of the disc. "
         "Use a 15-blade scalpel or Kerrison rongeur."),
        ("Discectomy", "Thorough disc removal using curettes, pituitary rongeurs, straight and angled instruments. "
         "Work from one side through the foramen. Achieve decompression of the anterior neural elements."),
        ("Endplate Preparation", "Rasps, disc space shavers, and curettes used to prepare both endplates "
         "to cancellous bone while preserving the cortical rim (cage support). "
         "Confirm with fluoroscopy — instrument should reach the anterior annulus."),
        ("Cage Selection & Packing", "Select a curved or kidney-shaped TLIF cage of appropriate height. "
         "Pack with bone graft (autologous bone from facetectomy + allograft or BMP-2)."),
        ("Cage Insertion", "Insert cage through the foramen using an inserter handle. "
         "Rotate/translate cage into the anterior-central position (anterior half of disc space). "
         "A cage sitting posteriorly risks nerve compression and provides less lordosis correction. "
         "Confirm with AP and lateral fluoroscopy."),
        ("Contralateral Bone Graft", "Pack bone graft into the contralateral side of the disc space through "
         "the same ipsilateral window using a curved bone graft funnel."),
        ("Posterolateral Graft", "Decorticate ipsilateral transverse processes. Apply autologous bone graft."),
        ("Rod Insertion & Compression", "Insert connecting rods bilaterally. Apply compression to seat "
         "the cage and close the disc height. Final tightening. Confirm final construct with fluoroscopy."),
        ("Closure", "Irrigate copiously. Place suction drain. Close fascia, subcutaneous, skin in layers."),
    ]
    for i, (title, detail) in enumerate(steps, 1):
        elems.append(step_row(i, title, detail, C_TLIF))
        elems.append(Spacer(1, 0.1*cm))

    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph("5.4  TLIF Complications", H2))
    comp_data = [
        ["Complication", "Incidence", "Prevention / Management"],
        ["Exiting nerve root injury", "1–5%", "Identify root before disc entry; gentle retraction; avoid overfilling foramen"],
        ["Dural tear", "3–7%", "Primary repair; fibrin glue; avoid CSF fistula"],
        ["Cage migration", "1–4%", "Position cage anteriorly; compress construct after cage placement"],
        ["Pseudarthrosis", "3–7%", "Thorough endplate prep; adequate graft; cease NSAIDs/smoking preop"],
        ["Adjacent segment disease", "5%/year", "Preserve motion segments; match fusion to pathology only"],
        ["Postop neurological deficit", "<2%", "Immediate neurological assessment; urgent MRI/CT if deficit"],
        ["Infection", "1–3%", "Prophylactic antibiotics; irrigation; drain by 48h"],
        ["Haematoma (epidural)", "0.5–1%", "Adequate haemostasis; drain; urgent decompression if dense deficit"],
    ]
    elems.append(comparison_table(comp_data[0], comp_data[1:],
                                   [5*cm, 3*cm, 9*cm], C_TLIF))
    return elems

# ─── XLIF ────────────────────────────────────────────────────────────────────

def build_xlif():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header(
        "6.  XLIF/LLIF — EXTREME LATERAL INTERBODY FUSION", C_XLIF,
        "Approach: Direct lateral through psoas  |  Position: Lateral decubitus"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("6.1  Indications & Contraindications", H2))
    ic_data = [
        ["INDICATIONS", "CONTRAINDICATIONS / CAUTIONS"],
        ["Degenerative disc disease L1-L4 (multi-level)\nDegenerative scoliosis correction\nSagittal imbalance (with posterior fixation)\nAdjacent segment disease (above L5-S1)\nRetroperitoneal approach contraindicated (prior ALIF)\nMinimally invasive multi-level fusion\nFailed prior posterior fusion (revision via lateral)",
         "L5-S1 disc (iliac crest obstruction — use ALIF)\nPrior ipsilateral retroperitoneal surgery (relative)\nPsoas abscess or tumour\nBilateral severe canal stenosis requiring direct decompression\nHigh-grade spondylolisthesis (anterior translation prevents lateral access)\nCoagulopathy"],
    ]
    ic_tbl = Table([[Paragraph(ic_data[0][0], TABLE_HEADER),
                     Paragraph(ic_data[0][1], TABLE_HEADER)],
                    [Paragraph(ic_data[1][0], BODY),
                     Paragraph(ic_data[1][1], BODY)]],
                   colWidths=[8.5*cm, 8.5*cm])
    ic_tbl.setStyle(TableStyle([
        ('BACKGROUND', (0,0), (-1,0), C_XLIF),
        ('BACKGROUND', (0,1), (0,1), C_XLIF_LIGHT),
        ('BACKGROUND', (1,1), (1,1), HexColor("#FDEDEC")),
        ('GRID', (0,0), (-1,-1), 0.4, C_MID_GREY),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('TOPPADDING', (0,0), (-1,-1), 6),
        ('BOTTOMPADDING', (0,0), (-1,-1), 6),
        ('LEFTPADDING', (0,0), (-1,-1), 7),
        ('RIGHTPADDING', (0,0), (-1,-1), 7),
    ]))
    elems.append(ic_tbl)
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("6.2  Safe Zone & EMG Monitoring", H2))
    elems.append(Paragraph(
        "The disc is divided into four zones (I-IV) from anterior (A) to posterior (P) per the Moro classification. "
        "The lumbar plexus migrates anteriorly at lower lumbar levels, "
        "making L4-5 the most dangerous level for XLIF.", BODY))
    sz_data = [
        ["Zone", "Location on Disc", "Contents / Risk", "Relevance to XLIF"],
        ["I (Anterior)", "Anterior quarter", "Anterior to psoas; great vessel zone", "ALIF territory — avoid in XLIF"],
        ["II (Anterior-mid)", "Second quarter from front", "Anterior to lumbar plexus", "OPTIMAL XLIF working zone"],
        ["III (Posterior-mid)", "Third quarter", "Lumbar plexus traverses here", "HIGH RISK — avoid if possible"],
        ["IV (Posterior)", "Posterior quarter", "Lumbar plexus and dural sac", "UNSAFE — do not enter"],
    ]
    elems.append(comparison_table(sz_data[0], sz_data[1:],
                                   [2.5*cm, 3.5*cm, 6*cm, 5*cm], C_XLIF))
    elems.append(Spacer(1, 0.3*cm))

    elems.append(Paragraph("EMG Thresholds (NVM5/NovaBay Monitoring):", H3))
    emg_data = [
        ["Threshold (mA)", "Interpretation", "Action"],
        [">10 mA", "Nerve at SAFE distance", "Continue dilator advancement"],
        ["5–10 mA", "Nerve NEAR — caution zone", "Slow down; redirect slightly anterior"],
        ["<5 mA", "Nerve VERY CLOSE — STOP", "Remove dilator; redirect significantly or abort"],
    ]
    elems.append(comparison_table(emg_data[0], emg_data[1:],
                                   [3.5*cm, 6.5*cm, 7*cm], C_XLIF))
    elems.append(Spacer(1, 0.3*cm))
    elems.append(info_box(
        "L4-5 is the most neurologically challenging level for XLIF. The lumbar plexus "
        "(particularly the femoral nerve) migrates to the anterior half of the psoas "
        "at this level, dramatically reducing the safe working zone. "
        "Some surgeons prefer TLIF or OLIF at L4-5 for this reason.",
        HexColor("#F5EEF8"), "CRITICAL POINT — L4-5 XLIF"))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("6.3  Step-by-Step Technique", H2))
    steps = [
        ("Patient Positioning", "Right lateral decubitus (left side up — approach from the left). "
         "The patient is placed perpendicular to the table and secured with kidney rest and tape. "
         "The operating table is flexed at the hip to open the lateral flank space. "
         "All bony prominences padded. Neuromonitoring (EMG) electrodes placed in lower extremity muscles."),
        ("Fluoroscopic Planning", "Obtain a true lateral fluoroscopic view — ensure the pedicles are perfectly "
         "superimposed. Mark the disc centre on the skin. Confirm the iliac crest is below the target disc "
         "(if iliac crest obstructs — XLIF not feasible; use ALIF or TLIF)."),
        ("Retroperitoneal Access (Flank Incision)", "Make a 2-3 cm transverse or oblique incision in the flank "
         "posterior to the anterior axillary line. Incise external oblique, internal oblique, and transverse "
         "abdominis along their fibres (muscle-splitting technique). "
         "Identify and enter the retroperitoneal space."),
        ("Peritoneal Sac Mobilisation", "Bluntly sweep the peritoneal sac anteriorly with the fingers. "
         "Use a finger to confirm the retroperitoneal corridor — "
         "feel the psoas muscle posteriorly and the peritoneal sac anteriorly."),
        ("Lateral Skin Incision", "With finger in the retroperitoneal space, turn the index finger laterally "
         "toward the lateral skin over the disc. Make a second 2-cm stab incision at this mark."),
        ("Initial Dilator Insertion", "Insert the initial dilator through the lateral incision under finger guidance. "
         "Use live EMG monitoring as the dilator contacts the psoas muscle. "
         "Advance slowly — <b>EMG must remain >10 mA throughout</b>. "
         "Confirm position with AP and lateral fluoroscopy."),
        ("Sequential Dilation of Psoas", "Pass sequential dilators of increasing diameter through the psoas muscle "
         "under continuous EMG monitoring. Monitor all lower limb muscle groups. "
         "Spread the psoas fibres longitudinally (parallel to nerve direction) "
         "rather than transversely to minimise plexus injury."),
        ("Retractor Placement", "Once the largest dilator reaches the disc surface, insert the expandable "
         "lateral retractor system. Expand the blades to create a working window over the disc. "
         "Attach to the table-mounted arm holder. Reconfirm position with fluoroscopy."),
        ("Level Confirmation", "Final AP and lateral fluoroscopy before disc work. "
         "A Kirschner wire or marker needle in the disc confirms the correct level."),
        ("Annulotomy", "Make a wide annulotomy on the lateral disc surface with a 15-blade scalpel "
         "or electrosurgical device. The annulotomy window should span the full anterior-posterior "
         "width of the disc to allow insertion of a wide cage."),
        ("Discectomy", "Complete disc removal using straight and angled curettes, rongeurs, and pituitary forceps. "
         "Work from the lateral window to reach the contralateral side. "
         "The XLIF cage will span the full width — both endplates must be cleared."),
        ("Endplate Preparation", "Use laterally-angled rasps and scrapers to prepare both endplates. "
         "The XLIF cage spans both apophyseal rings bilaterally — "
         "this is the biomechanical advantage over PLIF/TLIF cages. "
         "Preserve the cortical apophyseal ring for cage support."),
        ("Trial Sizing", "Insert lateral trial cages to determine the correct height and width. "
         "The cage footprint should span the full width of the endplate. "
         "Confirm with AP fluoroscopy — cage should reach the contralateral apophyseal ring."),
        ("Cage Packing & Insertion", "Pack the cage with bone graft (allograft/autograft/BMP-2). "
         "Insert the cage using a lateral inserter handle, advancing to the anterior-central position. "
         "AP view confirms cage spans full endplate width. Lateral view confirms anterior positioning."),
        ("Supplemental Fixation", "XLIF provides interbody support but inadequate rotational control alone. "
         "Options: (a) percutaneous posterior bilateral pedicle screws (standard), "
         "(b) lateral plate (standalone at single level if bone quality adequate). "
         "Patient may be repositioned prone for posterior fixation."),
        ("Retractor Removal & Closure", "Slowly remove the retractor while checking for bleeding. "
         "The psoas reconstitutes around the working corridor. "
         "Close lateral incision in layers: transverse abdominis, internal oblique, "
         "external oblique, subcutaneous, skin. No drain usually required."),
    ]
    for i, (title, detail) in enumerate(steps, 1):
        elems.append(step_row(i, title, detail, C_XLIF))
        elems.append(Spacer(1, 0.1*cm))

    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph("6.4  XLIF Complications", H2))
    comp_data = [
        ["Complication", "Incidence", "Prevention / Management"],
        ["Genitofemoral nerve injury\n(anterior thigh numbness)", "5–15%", "Most resolve spontaneously in 3–6 months; reassurance; gabapentin"],
        ["Lumbar plexus injury\n(thigh pain, hip flexor weakness)", "1–5%", "Strict EMG monitoring; limit retraction; avoid L4-5 if plexus not safe"],
        ["Femoral nerve injury\n(quadriceps weakness)", "<2%", "EMG monitoring; abort if threshold <5 mA; urgent MRI if postop weakness"],
        ["Approach-side hip flexor weakness", "10–30% transient", "Psoas retraction; resolves in 6–12 weeks in most"],
        ["Sympathetic chain injury", "<1%", "Retrograde ejaculation; careful anterior dissection"],
        ["Cage subsidence", "4–10%", "Preserve apophyseal ring; avoid endplate violation"],
        ["Inadequate decompression", "Variable", "Add posterior decompression if indirect decompression insufficient"],
        ["Peritoneal entry / bowel injury", "<0.5%", "Careful retroperitoneal dissection; surgical repair if entered"],
    ]
    elems.append(comparison_table(comp_data[0], comp_data[1:],
                                   [4.5*cm, 3*cm, 9.5*cm], C_XLIF))
    return elems

# ─── COMPARISON ──────────────────────────────────────────────────────────────

def build_comparison():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header("7.  MASTER COMPARISON TABLE", C_DARK_BLUE,
                                "ALIF vs. PLIF vs. TLIF vs. XLIF"))
    elems.append(Spacer(1, 0.5*cm))
    data = [
        ["Feature", "ALIF", "PLIF", "TLIF", "XLIF/LLIF"],
        ["Approach direction", "Anterior", "Posterior (bilateral)", "Posterolateral (unilateral)", "Direct lateral through psoas"],
        ["Patient position", "Supine", "Prone", "Prone", "Lateral decubitus"],
        ["Access surgeon needed", "Yes (vascular / gen surg)", "No", "No", "No"],
        ["Levels accessible", "L4-S1 (best L5-S1)", "L3-S1", "L3-S1", "L1-L4 ONLY (not L5-S1)"],
        ["Cage footprint", "Largest (lordotic)", "Smallest (2 bilateral)", "Intermediate (1 unilateral)", "Widest (spans full endplate)"],
        ["Lordosis restoration", "Best", "Least", "Good", "Good"],
        ["Direct decompression", "No", "Yes (bilateral)", "Yes (unilateral)", "No (indirect only)"],
        ["Neural retraction needed", "None", "Bilateral", "Unilateral", "None"],
        ["Neuromonitoring required", "Optional", "SSEP/MEP optional", "SSEP/MEP optional", "EMG MANDATORY"],
        ["Unique complication", "Retrograde ejaculation; vascular injury", "Bilateral nerve injury; dural tear", "Exiting nerve root injury", "Lumbar plexus / genitofemoral nerve"],
        ["MIS option available", "Mini-ALIF", "Limited", "MIS-TLIF (standard)", "Standard MIS"],
        ["Blood loss", "Moderate", "Moderate-high", "Low-moderate", "Low"],
        ["Hospital stay", "2–4 days", "3–5 days", "2–4 days", "1–3 days"],
        ["360° fusion", "Yes (+ posterior screws)", "Yes (all-posterior)", "Yes (all-posterior)", "Yes (+ posterior screws)"],
    ]
    header = data[0]
    rows = data[1:]
    tbl_data = [[Paragraph(h, TABLE_HEADER) for h in header]]
    for row in rows:
        cells = [Paragraph(row[0], BODY_BOLD)]
        colors_row = [C_ALIF_LIGHT, C_PLIF_LIGHT, C_TLIF_LIGHT, C_XLIF_LIGHT]
        for j, cell in enumerate(row[1:]):
            cells.append(Paragraph(cell, TABLE_CELL))
        tbl_data.append(cells)

    tbl = Table(tbl_data, colWidths=[4*cm, 3.25*cm, 3.25*cm, 3.25*cm, 3.25*cm], repeatRows=1)
    style = [
        ('BACKGROUND', (0,0), (-1,0), C_DARK_BLUE),
        ('BACKGROUND', (1,1), (1,-1), C_ALIF_LIGHT),
        ('BACKGROUND', (2,1), (2,-1), C_PLIF_LIGHT),
        ('BACKGROUND', (3,1), (3,-1), C_TLIF_LIGHT),
        ('BACKGROUND', (4,1), (4,-1), C_XLIF_LIGHT),
        ('BACKGROUND', (0,1), (0,-1), C_LIGHT_GREY),
        ('FONTNAME', (0,1), (0,-1), 'Helvetica-Bold'),
        ('FONTSIZE', (0,0), (-1,-1), 8.5),
        ('GRID', (0,0), (-1,-1), 0.4, C_MID_GREY),
        ('VALIGN', (0,0), (-1,-1), 'TOP'),
        ('TOPPADDING', (0,0), (-1,-1), 5),
        ('BOTTOMPADDING', (0,0), (-1,-1), 5),
        ('LEFTPADDING', (0,0), (-1,-1), 4),
        ('RIGHTPADDING', (0,0), (-1,-1), 4),
        ('TEXTCOLOR', (0,0), (-1,0), C_WHITE),
    ]
    tbl.setStyle(TableStyle(style))
    elems.append(tbl)
    return elems

# ─── CAGE MATERIALS ──────────────────────────────────────────────────────────

def build_cage_and_algorithm():
    elems = []
    elems.append(PageBreak())
    elems.append(section_header("8.  CAGE MATERIALS & BONE GRAFT OPTIONS", C_DARK_BLUE))
    elems.append(Spacer(1, 0.4*cm))
    cage_data = [
        ["Material", "Radiopacity", "Key Properties", "Common Use"],
        ["PEEK\n(Polyether ether ketone)", "Radiolucent\n(with markers)", "Modulus close to bone; reduces stress shielding;\nRadiolucent — fusion assessment easy", "Most common; all techniques"],
        ["Titanium (mesh/solid)", "Radiopaque", "Excellent osseointegration; high strength;\nCan cause artefact on MRI/CT", "Revision; corpectomy cages"],
        ["Carbon composite", "Radiolucent", "Radiolucent; strong; good biocompatibility", "ALIF, TLIF"],
        ["Bioabsorbable (PLA)", "Radiolucent", "Resorbs over time; avoids permanent implant;\nLimited long-term data", "Experimental / paediatric"],
    ]
    elems.append(comparison_table(cage_data[0], cage_data[1:],
                                   [3.5*cm, 3*cm, 6*cm, 4.5*cm], C_DARK_BLUE))
    elems.append(Spacer(1, 0.4*cm))

    elems.append(Paragraph("Bone Graft Options", H2))
    graft_data = [
        ["Graft Type", "Source", "Properties", "Limitations"],
        ["Autologous\nIliac crest bone", "Patient's iliac crest", "Gold standard; osteogenic + osteoconductive + osteoinductive", "Donor site pain; limited volume"],
        ["Local autograft\n(facet/lamina bone)", "Laminectomy/facetectomy chips", "Readily available; no donor site morbidity", "Lower volume; variable quality"],
        ["Allograft\n(bone bank)", "Cadaveric bone bank", "No donor site; available in large quantities;\nFemoral rings, fibular strut, chips", "No live cells; infection risk (small); slower fusion"],
        ["BMP-2\n(Infuse, Medtronic)", "Recombinant human", "Strong osteoinductive signal; high fusion rates;\nReduces autograft need", "Expensive; ectopic bone; oedema; cancer risk debate"],
        ["Ceramics\n(TCP, HA, CaSO4)", "Synthetic", "Osteoconductive scaffold; readily available;\nNo infection risk", "Not osteoinductive; brittle"],
        ["DBM (Demineralised\nBone Matrix)", "Processed allograft", "Some osteoinductivity; easy to use", "Variable efficacy; cost"],
    ]
    elems.append(comparison_table(graft_data[0], graft_data[1:],
                                   [3.5*cm, 3*cm, 5.5*cm, 5*cm], C_DARK_BLUE))
    elems.append(Spacer(1, 0.5*cm))

    elems.append(section_header("9.  DECISION ALGORITHM BY LEVEL", C_DARK_BLUE,
                                "Choosing the right approach based on level and patient factors"))
    elems.append(Spacer(1, 0.4*cm))
    algo_data = [
        ["Level", "First-Choice Approach", "Rationale / Key Factors"],
        ["L5-S1", "ALIF", "Largest cage; best lordosis; iliac crest does not obstruct; L5-S1 most accessible anteriorly"],
        ["L5-S1\n(ALIF not feasible)", "TLIF", "Previous abdominal surgery; male requesting fertility preservation; no vascular surgeon available"],
        ["L4-5", "TLIF or ALIF", "TLIF if prior retroperitoneal surgery or high iliac crest; ALIF if large cage + lordosis needed"],
        ["L4-5\n(low iliac crest, good psoas anatomy)", "XLIF", "MIS approach; low blood loss; if direct decompression not needed"],
        ["L2-4\n(multi-level, deformity)", "XLIF + posterior fixation", "Efficient multi-level corridor; good cage footprint; combine with posterior correction"],
        ["L1-4\n(need direct decompression)", "TLIF", "Canal/foraminal stenosis requiring direct neural decompression"],
        ["Any level\n(prior posterior surgery)", "ALIF or XLIF", "Avoids epidural scar tissue; anterior/lateral virgin corridor"],
        ["Any level\n(sagittal imbalance)", "ALIF or XLIF + PSO/SPO", "Lordotic ALIF cage or lateral cage + posterior osteotomy for major deformity"],
    ]
    elems.append(comparison_table(algo_data[0], algo_data[1:],
                                   [3.5*cm, 4.5*cm, 9*cm], C_DARK_BLUE))
    elems.append(Spacer(1, 0.5*cm))
    elems.append(info_box(
        "All interbody fusion constructs will eventually fail by hardware loosening or fracture "
        "if solid bony fusion does not occur. The cage is a temporary scaffold — "
        "fusion is the ultimate goal. Smoking cessation, optimisation of diabetes/osteoporosis, "
        "and avoidance of NSAIDs in the post-fusion period are essential to achieve solid fusion.",
        HexColor("#EBF5FB"), "FINAL NOTE — CRITICAL PRINCIPLE"))
    elems.append(Spacer(1, 0.4*cm))
    elems.append(Paragraph(
        "Reference: Campbell's Operative Orthopaedics 15th Ed 2026 · "
        "Grainger & Allison's Diagnostic Radiology · Gray's Anatomy for Students 4th Ed · "
        "Schwartz's Principles of Surgery 11th Ed",
        make_style('Ref', fontSize=8, textColor=HexColor("#666666"),
                   fontName='Helvetica-Oblique', alignment=TA_CENTER)))
    return elems

# ─── PAGE TEMPLATE ───────────────────────────────────────────────────────────

def on_later_pages(canvas, doc):
    canvas.saveState()
    canvas.setFont('Helvetica', 8)
    canvas.setFillColor(HexColor("#888888"))
    canvas.drawString(2*cm, 1.2*cm,
                      "Lumbar Interbody Fusion — Step-by-Step Surgical Guide   |   Orris Medical AI")
    canvas.drawRightString(19*cm, 1.2*cm, f"Page {doc.page}")
    canvas.setStrokeColor(HexColor("#CCCCCC"))
    canvas.line(2*cm, 1.5*cm, 19*cm, 1.5*cm)
    canvas.restoreState()

def on_first_page(canvas, doc):
    canvas.saveState()
    canvas.restoreState()

# ─── BUILD PDF ───────────────────────────────────────────────────────────────

def build_pdf():
    doc = SimpleDocTemplate(
        OUTPUT_PATH,
        pagesize=A4,
        topMargin=2*cm,
        bottomMargin=2*cm,
        leftMargin=2*cm,
        rightMargin=2*cm,
        title="Lumbar Interbody Fusion — Step-by-Step Surgical Guide",
        author="Orris Medical AI",
        subject="ALIF PLIF TLIF XLIF Surgical Technique Guide",
    )
    elements = []
    elements += build_cover()
    elements += build_toc()
    elements += build_overview()
    elements += build_alif()
    elements += build_plif()
    elements += build_tlif()
    elements += build_xlif()
    elements += build_comparison()
    elements += build_cage_and_algorithm()

    doc.build(elements,
              onFirstPage=on_first_page,
              onLaterPages=on_later_pages)
    print(f"PDF saved to: {OUTPUT_PATH}")

if __name__ == "__main__":
    build_pdf()
Running Command

cd /tmp/workspace/interbody-fusion-guide && python generate_pdf.py 2>&1

Running Command

ls -lh /tmp/workspace/interbody-fusion-guide/Interbody_Fusion_Techniques_Guide.pdf

The PDF has been generated successfully (52 KB, fully formatted). Download it here:

Interbody Fusion Techniques Guide

PDF Document · PDF


What's inside the PDF:
SectionContent
Cover PageColor-coded banner for all 4 techniques (ALIF/PLIF/TLIF/XLIF)
Table of Contents9 sections with page references
Overview & ConceptTwo-element framework, approach zone table
Axial AnatomyAll approach corridors in a comparison table
ALIF (Section 3)Indications/contraindications · 7 anatomy-at-risk structures · 14 numbered steps · 8-row complication table
PLIF (Section 4)Indications/contraindications · 5 anatomy-at-risk structures · 15 numbered steps · complication table
TLIF (Section 5)Indications · Kambin's triangle breakdown · 16 numbered steps · complication table
XLIF/LLIF (Section 6)Indications · Moro safe zone (Zones I-IV) · EMG threshold table · 16 numbered steps · complication table
Master Comparison Table15 features compared side-by-side across all 4 techniques
Cage MaterialsPEEK/Titanium/Carbon/Bioabsorbable + 6 graft options
Decision AlgorithmWhich approach to use at each lumbar level (L1-S1)
Each technique section uses a distinct color (blue/green/amber/purple) so you can flip directly to the relevant section.
This is a shared conversation. Sign in to Orris to start your own chat.