Ankle approaches give extensively
| Approach | Position | Primary Use | Structures at Risk |
|---|---|---|---|
| Anterolateral (Universal) | Supine | Pilon Fx, arthrodesis, talectomy | Superficial peroneal nerve, intermediate dorsal cutaneous branches |
| Extensile Anteromedial (Assal) | Supine | High-energy pilon fractures | Saphenous vein/nerve, tibialis anterior tendon |
| Anterior | Supine | Ankle arthrodesis, OCD access | Dorsalis pedis artery, deep peroneal nerve |
| Lateral to Distal Fibula | Supine | Lateral malleolus ORIF (most common) | Superficial peroneal nerve (~10 cm proximal to fibular tip) |
| Posterolateral | Prone/Lateral | Posterior malleolus + fibula fixation | Sural nerve, FHL, peroneal tendons |
| J-type Posterolateral (Choi) | Prone/Lateral | Posterior + lateral malleolus combined | Sural nerve |
| Transfibular Posterolateral (Gatellier & Chastang) | Prone | Large posterior malleolus Fx, OCD lateral talar dome, TAR | Distal fibular physis (children), PITFL |
| Anterolateral to Lateral Talar Dome (Tochigi) | Supine | Centrolateral OCD of talus | Lateral branch of superficial peroneal nerve |
| Posterior | Prone | Posterior ankle arthrodesis, blade plate | Posterior tibial vessels, tibial nerve |
| Medial Approach to Medial Malleolus | Supine | Medial malleolus fracture ORIF | Saphenous nerve and vein |
| Medial Approach to Tarsus (Knupp) | Supine | Hindfoot arthrodesis, PTT dysfunction | Anterior deltoid fibers |
| Transverse Medial (Koenig & Schaefer) | Supine | Fracture-dislocation of talus, OCD | Tibial vessels, tibial nerve |
| Medial Approach to Posterior Tibia (Broomhead/Colonna) | Supine | Medial posterior malleolus Fx | Neurovascular bundle |
| Kocher Lateral to Tarsus & Ankle | Supine | Triple arthrodesis, talectomy | Peroneal tendons, sural nerve, skin viability |
| Posteromedial via PTT Sheath (Bassett) | Supine/Prone | OCD posterior talar dome, posterior capsule | Deep deltoid, posteromedial NV structures |


Key Precautions: Superficial peroneal nerve location is highly variable (3-18 cm proximal to fibular tip). Avoid complete disruption of superior peroneal retinaculum when inserting plates. Protect AITFL fibers during extensor retinaculum incision for syndesmosis access.
Warning: The sural nerve passes tangential to the skin incision - protect it carefully.

Key Precautions: In children with open physes, distal fibular physis is at risk during reflection. Failure to overdrill the fibula = no compression = syndesmosis widening = tibiotalar arthritis. Not commonly used now due to extensive soft-tissue disruption.
Safety Note: Keeping dissection lateral to FHL protects the posterior tibial vessels and tibial nerve, which lie medial to FHL.
Author's Preference (Campbell's): Apex-anterior curved incision to anterior colliculus tip. For talar fracture, use apex-posterior incision instead.
| Clinical Scenario | Recommended Approach |
|---|---|
| Ankle fracture - lateral malleolus | Lateral to distal fibula |
| Ankle fracture - posterior malleolus | Posterolateral |
| Ankle fracture - medial malleolus | Medial approach to medial malleolus |
| High-energy pilon fracture | Extensile anteromedial (± lateral fibula approach) |
| Ankle arthrodesis | Anterolateral or Anterior |
| Posterior ankle arthrodesis | Posterior |
| Triple or pantalar arthrodesis | Anterolateral (universal), Kocher, or medial (Knupp) |
| Large posterior malleolus + lateral OCD talar dome | Transfibular posterolateral (Gatellier & Chastang) |
| Centrolateral OCD of talus (extensive) | Anterolateral talar dome (Tochigi) |
| Medial talar dome OCD / talar fracture-dislocation | Transverse medial (Koenig & Schaefer) or posteromedial (Bassett) |
| PTT dysfunction / hindfoot arthrodesis | Medial to tarsus (Knupp) |
| Posterior tibial fracture (posterior malleolus, medial part) | Medial to posterior tibia (Colonna & Ralston) |
What are the sources unused?
| Book | Speciality | Status |
|---|---|---|
| Campbell's Operative Orthopaedics, 15th Ed 2026 | Orthopedics | ✅ Used |
Search in those books too and search in stanley hoppenfield also
"Tom, Dick, and Very Angry Nervous Harry" = Tibialis posterior, flexor Digitorum longus, posterior tibial Vein, posterior tibial Artery, tibial Nerve, flexor Hallucis longus
| Approach | Campbell's | Rockwood & Green | Miller's | Key Addition |
|---|---|---|---|---|
| Anterior | ✅ (Technique 1.16) | ✅ (anatomy plane) | ✅ (interval EHL/EDL) | Safe plane = TA/EHL interval; retract NV bundle medially |
| Anterolateral (Universal) | ✅ (Technique 1.15) | - | - | "Universal incision"; exposes almost all tarsal joints |
| Extensile Anteromedial (Assal) | ✅ (Technique 1.14) | - | - | Pilon fractures; apex >120° |
| Lateral to Distal Fibula | ✅ (Technique 1.17) | ✅ (fracture detail) | ✅ | SPN in 20% within 5 cm of tip; posterior plating sacrifices AITFL/Chaput access |
| Medial to Medial Malleolus | ✅ (Technique 1.25) | ✅ (2 variants) | - | Straight or curvilinear; saphenous vein/nerve at risk |
| Posteromedial | - | ✅ (gaining popularity) | ✅ (clubfoot) | FHL-peroneal interval; midway between MM and Achilles |
| Posterolateral | ✅ (Technique 1.18) | ✅ | ✅ (peroneus brevis/FHL) | Prone; FHL elevated medially; sural nerve risk |
| J-type Posterolateral (Choi) | ✅ (Technique 1.19) | - | - | Single incision for posterior + lateral malleolus |
| Transfibular Posterolateral (Gatellier) | ✅ (Technique 1.22) | - | - | Historical; fibula osteotomized/swung lateral |
| Posterolateral to Hindfoot | - | - | ✅ | Triple arthrodesis; EDB reflected off sinus tarsi |
| Posterior | ✅ (Technique 1.24) | - | - | Z-plasty Achilles; FHL medially |
| Kocher Lateral | ✅ (Technique 1.20) | - | - | Triple arthrodesis; skin slough risk |
| Transverse Medial (Koenig) | ✅ (Technique 1.27) | - | - | Medial malleolar osteotomy; OCD |
| Posteromedial via PTT Sheath (Bassett) | ✅ | - | - | Posterior talar dome; through PTT sheath |
Can u give this in slide manner for ppt
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/ankle-approaches-ppt
~/ankle-approaches-ppt/build_ppt.py
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.oxml.ns import qn
from pptx.util import Inches, Pt
import copy
from lxml import etree
# ── Colour palette (medical / academic theme) ──────────────────────────────
C_DARK_BLUE = RGBColor(0x1A, 0x3A, 0x5C) # header background
C_ACCENT = RGBColor(0x2E, 0x86, 0xAB) # accent / bullet icons
C_LIGHT_BG = RGBColor(0xF0, 0xF6, 0xFC) # slide background
C_WHITE = RGBColor(0xFF, 0xFF, 0xFF)
C_TEXT = RGBColor(0x1A, 0x1A, 0x2E)
C_SUBHEAD = RGBColor(0x2E, 0x86, 0xAB)
C_TABLE_HDR = RGBColor(0x1A, 0x3A, 0x5C)
C_TABLE_ALT = RGBColor(0xE8, 0xF4, 0xFD)
C_TABLE_ROW = RGBColor(0xFF, 0xFF, 0xFF)
C_HIGHLIGHT = RGBColor(0xFF, 0xC1, 0x07) # warning / key point yellow
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
# ── Helper functions ────────────────────────────────────────────────────────
def fill_shape(shape, color):
sp = shape._element
spPr = sp.find(qn('p:spPr'))
solidFill = etree.SubElement(spPr, qn('a:solidFill'))
srgb = etree.SubElement(solidFill, qn('a:srgbClr'))
srgb.set('val', f'{color.rgb:06X}')
def add_rect(slide, x, y, w, h, color, alpha=None):
shape = slide.shapes.add_shape(
1, # MSO_SHAPE_TYPE.RECTANGLE
Inches(x), Inches(y), Inches(w), Inches(h)
)
shape.line.fill.background()
fill = shape.fill
fill.solid()
fill.fore_color.rgb = color
return shape
def add_text(slide, text, x, y, w, h, size=18, bold=False, color=None,
align=PP_ALIGN.LEFT, italic=False, wrap=True, font="Calibri"):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = wrap
tf.margin_left = Inches(0.05)
tf.margin_right = Inches(0.05)
tf.margin_top = Inches(0.02)
tf.margin_bottom= Inches(0.02)
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.name = font
run.font.size = Pt(size)
run.font.bold = bold
run.font.italic = italic
if color:
run.font.color.rgb = color
return tf
def add_para(tf, text, size=14, bold=False, color=None,
align=PP_ALIGN.LEFT, italic=False, space_before=0, indent=0,
font="Calibri"):
p = tf.add_paragraph()
p.alignment = align
if space_before:
p.space_before = Pt(space_before)
if indent:
p.level = indent
run = p.add_run()
run.text = text
run.font.name = font
run.font.size = Pt(size)
run.font.bold = bold
run.font.italic = italic
if color:
run.font.color.rgb = color
return p
def slide_bg(slide, color=C_LIGHT_BG):
bg = slide.background
fill = bg.fill
fill.solid()
fill.fore_color.rgb = color
def header_bar(slide, title, subtitle=None):
"""Top dark-blue header bar with title."""
add_rect(slide, 0, 0, 13.333, 1.1, C_DARK_BLUE)
add_text(slide, title, 0.3, 0.1, 10.5, 0.7,
size=28, bold=True, color=C_WHITE, align=PP_ALIGN.LEFT, font="Calibri")
if subtitle:
add_text(slide, subtitle, 0.3, 0.75, 12, 0.35,
size=13, bold=False, color=RGBColor(0xAD, 0xD8, 0xE6),
align=PP_ALIGN.LEFT, font="Calibri")
# Accent line
add_rect(slide, 0, 1.08, 13.333, 0.05, C_ACCENT)
def footer_bar(slide, text="Surgical Approaches to the Ankle | Orthopaedics"):
add_rect(slide, 0, 7.2, 13.333, 0.3, C_DARK_BLUE)
add_text(slide, text, 0.2, 7.22, 13, 0.26,
size=9, color=RGBColor(0xAD, 0xD8, 0xE6), align=PP_ALIGN.LEFT)
def bullet_box(slide, bullets, x, y, w, h, title=None,
bg_color=C_WHITE, title_color=C_DARK_BLUE, bullet_size=13.5,
title_size=15):
"""Card with optional title and bullet points."""
add_rect(slide, x, y, w, h, bg_color)
# thin left accent bar
add_rect(slide, x, y, 0.06, h, C_ACCENT)
start_y = y + 0.08
if title:
add_text(slide, title, x+0.12, start_y, w-0.2, 0.32,
size=title_size, bold=True, color=title_color, font="Calibri")
start_y += 0.32
tb = slide.shapes.add_textbox(
Inches(x+0.15), Inches(start_y),
Inches(w-0.25), Inches(h - (start_y - y) - 0.05)
)
tf = tb.text_frame
tf.word_wrap = True
tf.margin_left = Inches(0.0)
tf.margin_top = Inches(0.0)
first = True
for b in bullets:
if first:
p = tf.paragraphs[0]
first = False
else:
p = tf.add_paragraph()
p.space_before = Pt(3)
run = p.add_run()
run.text = b
run.font.name = "Calibri"
run.font.size = Pt(bullet_size)
run.font.color.rgb = C_TEXT
return tf
def make_table(slide, headers, rows, x, y, w, h, col_widths=None):
"""Simple table via python-pptx add_table."""
n_cols = len(headers)
n_rows = len(rows) + 1
tbl = slide.shapes.add_table(
n_rows, n_cols,
Inches(x), Inches(y), Inches(w), Inches(h)
).table
if col_widths:
for i, cw in enumerate(col_widths):
tbl.columns[i].width = Inches(cw)
def fmt_cell(cell, text, bg, fg, bold=False, sz=11, align=PP_ALIGN.LEFT):
cell.fill.solid()
cell.fill.fore_color.rgb = bg
tf = cell.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.name = "Calibri"
run.font.size = Pt(sz)
run.font.bold = bold
run.font.color.rgb = fg
for ci, h_txt in enumerate(headers):
fmt_cell(tbl.cell(0, ci), h_txt, C_TABLE_HDR, C_WHITE, bold=True,
sz=12, align=PP_ALIGN.CENTER)
for ri, row in enumerate(rows):
bg = C_TABLE_ALT if ri % 2 == 0 else C_TABLE_ROW
for ci, val in enumerate(row):
fmt_cell(tbl.cell(ri+1, ci), val, bg, C_TEXT, sz=11)
return tbl
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 1 — TITLE SLIDE
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide, C_DARK_BLUE)
# Big background accent rectangle
add_rect(slide, 0, 2.6, 13.333, 2.8, C_ACCENT)
add_text(slide, "SURGICAL APPROACHES", 0.6, 1.2, 12.2, 1.1,
size=44, bold=True, color=C_WHITE, align=PP_ALIGN.CENTER, font="Calibri")
add_text(slide, "TO THE ANKLE", 0.6, 2.15, 12.2, 0.9,
size=38, bold=True, color=C_HIGHLIGHT, align=PP_ALIGN.CENTER, font="Calibri")
add_text(slide, "Anatomy · Indications · Technique · Hazards", 0.6, 2.75, 12.2, 0.55,
size=18, bold=False, color=C_WHITE, align=PP_ALIGN.CENTER, font="Calibri")
add_text(slide, "Based on: Campbell's Operative Orthopaedics 15e (2026) | Rockwood & Green's Fractures in Adults 10e (2025) | Miller's Review of Orthopaedics 9e",
0.6, 3.4, 12.2, 0.5,
size=11, color=RGBColor(0xE0,0xF0,0xFF), align=PP_ALIGN.CENTER)
add_text(slide, "Orthopaedic Surgery · Foot & Ankle", 0.6, 6.8, 12.2, 0.5,
size=13, color=RGBColor(0xAD,0xD8,0xE6), align=PP_ALIGN.CENTER)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 2 — OVERVIEW / TABLE OF CONTENTS
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "Overview of Ankle Approaches", "Classification by anatomical direction")
footer_bar(slide)
approaches = [
("ANTERIOR", ["1. Anterior Approach", "2. Extensile Anteromedial (Assal)", "3. Anterolateral (Universal Incision)", "4. Anterolateral to Lateral Talar Dome (Tochigi)"]),
("LATERAL", ["5. Lateral Approach to Distal Fibula", "6. Kocher Lateral Approach"]),
("POSTERIOR", ["7. Posterolateral Approach", "8. J-type Posterolateral (Choi)", "9. Transfibular Posterolateral (Gatellier)", "10. Posterior Approach"]),
("MEDIAL", ["11. Medial Approach to Medial Malleolus", "12. Medial Approach to Tarsus (Knupp)", "13. Transverse Medial / Osteotomy (Koenig)", "14. Medial to Posterior Tibia (Colonna)", "15. Posteromedial via PTT Sheath (Bassett)"]),
]
colors = [RGBColor(0xE8,0xF4,0xFD), RGBColor(0xFFF3E0), RGBColor(0xE8,0xF5,0xE9), RGBColor(0xFCE4EC)]
acc = [C_ACCENT, RGBColor(0xFF,0x98,0x00), RGBColor(0x43,0xA0,0x47), RGBColor(0xE5,0x39,0x35)]
positions = [(0.3,1.3,3.0,5.6),(3.55,1.3,3.0,5.6),(6.8,1.3,3.0,5.6),(10.05,1.3,3.0,5.6)]
for i,(direction, items) in enumerate(approaches):
x,y,w,h = positions[i]
add_rect(slide, x, y, w, h, colors[i])
add_rect(slide, x, y, w, 0.45, acc[i])
add_text(slide, direction, x+0.1, y+0.05, w-0.15, 0.38,
size=15, bold=True, color=C_WHITE, font="Calibri")
tb = slide.shapes.add_textbox(Inches(x+0.12), Inches(y+0.55),
Inches(w-0.2), Inches(h-0.65))
tf = tb.text_frame
tf.word_wrap = True
first = True
for it in items:
p = tf.paragraphs[0] if first else tf.add_paragraph()
first = False
p.space_before = Pt(5)
run = p.add_run()
run.text = "• " + it
run.font.name = "Calibri"
run.font.size = Pt(12)
run.font.color.rgb = C_TEXT
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 3 — ANTERIOR APPROACH
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "1. Anterior Approach to the Ankle Joint", "Technique 1.16 | Campbell's Operative Orthopaedics")
footer_bar(slide)
# Left column
bullet_box(slide,
["Interval: between EHL & EDL (or tibialis anterior & EHL)",
"Incision: 7.5–10 cm proximal to ankle, extend 5 cm distal",
"Divide deep fascia in line with incision",
"Ligate anterolateral malleolar & lateral tarsal arteries",
"Retract neurovascular bundle LATERALLY",
"Incise periosteum, capsule & synovium",
"Expose entire anterior ankle width by subperiosteal dissection"],
0.3, 1.25, 6.0, 5.6,
title="⚙ TECHNIQUE", bg_color=RGBColor(0xE8,0xF4,0xFD), bullet_size=13)
# Right column
bullet_box(slide,
["Deep peroneal nerve & anterior tibial artery — lie directly in interval → must be retracted MEDIALLY with EHL",
"Superficial peroneal nerve — superficial, protect before incising retinaculum",
"Dorsalis pedis artery — lies lateral to EHL"],
6.6, 1.25, 6.4, 2.6,
title="⚠ STRUCTURES AT RISK", bg_color=RGBColor(0xFF,0xF3,0xE0), bullet_size=13)
bullet_box(slide,
["Ankle arthrodesis (medial compartment access)",
"OCD — medial corner of tibial plafond",
"Anterior ankle debridement",
"Difficult to access medial facet via anterolateral approach"],
6.6, 4.1, 6.4, 2.75,
title="✔ INDICATIONS", bg_color=RGBColor(0xE8,0xF5,0xE9), bullet_size=13)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 4 — EXTENSILE ANTEROMEDIAL APPROACH (ASSAL)
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "2. Extensile Anteromedial Approach (Assal, Ray & Stern)", "Technique 1.14 | Campbell's Operative Orthopaedics")
footer_bar(slide)
bullet_box(slide,
["Incision: 0.5 cm LATERAL to tibialis anterior tendon",
"Curve at ankle level → tip of medial malleolus",
"⚠ Apex must be > 120° to avoid apex necrosis",
"Develop full-thickness flap to extensor retinaculum",
"Expect crossing veins from saphenous vein near distal incision",
"Incise extensor retinaculum MEDIAL to tibialis anterior",
"Retract tibialis anterior medially",
"Protect superficial peroneal nerve & dorsal veins",
"Incise periosteum & capsule to expose anterior distal tibia",
"Repair extensor retinaculum before skin closure"],
0.3, 1.25, 6.0, 5.6,
title="⚙ TECHNIQUE", bg_color=RGBColor(0xE8,0xF4,0xFD), bullet_size=12.5)
bullet_box(slide,
["High-energy pilon fractures",
"Allows both anterolateral AND medial plate application",
"Best for: distal tibial metaphyseal fractures"],
6.6, 1.25, 6.4, 2.0,
title="✔ INDICATIONS", bg_color=RGBColor(0xE8,0xF5,0xE9), bullet_size=13)
bullet_box(slide,
["Saphenous vein & saphenous nerve (near distal incision)",
"Superficial peroneal nerve",
"Tibialis anterior tendon integrity"],
6.6, 3.5, 6.4, 1.7,
title="⚠ STRUCTURES AT RISK", bg_color=RGBColor(0xFF,0xF3,0xE0), bullet_size=13)
bullet_box(slide,
["Less ideal for ankle fusion (tibialis anterior blocks anterior talar access)",
"Can be combined with lateral fibula approach — plan skin bridges carefully"],
6.6, 5.45, 6.4, 1.4,
title="📌 NOTES", bg_color=RGBColor(0xFCE4EC), bullet_size=12)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 5 — ANTEROLATERAL (UNIVERSAL) APPROACH
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "3. Anterolateral Approach — The 'Universal Incision'", "Technique 1.15 | Campbell's Operative Orthopaedics")
footer_bar(slide)
bullet_box(slide,
["Begin: anterolateral leg, medial to fibula, 5 cm proximal to ankle",
"Extend over anterolateral talus → calcaneocuboid joint → base of 4th metatarsal",
"Incise fascia & superior/inferior extensor retinacula down to periosteum",
"Divide anterolateral malleolar & lateral tarsal arteries",
"Protect intermediate dorsal cutaneous branches of superficial peroneal nerve",
"Divide extensor digitorum brevis in line with fibers (or reflect distally)",
"Retract ext. tendons + dorsalis pedis + deep peroneal nerve MEDIALLY",
"Incise ankle capsule → talonavicular joint (transverse capsulotomy)",
"Continue to calcaneocuboid joint (same plane)",
"Incise fat lateral to talar neck → expose subtalar joint",
"Extend distally: cuboid-4th/5th MT and navicular-3rd cuneiform"],
0.3, 1.25, 6.2, 5.6,
title="⚙ TECHNIQUE", bg_color=RGBColor(0xE8,0xF4,0xFD), bullet_size=12)
bullet_box(slide,
["Ankle joint (tibiotalar)",
"Talonavicular joint",
"Subtalar joint",
"Calcaneocuboid joint",
"Cuboid-4th & 5th MT joints",
"Navicular-3rd cuneiform joint",
"❌ Cannot reach: navicular-1st & 2nd cuneiform joints"],
6.75, 1.25, 6.2, 3.2,
title="🦴 STRUCTURES EXPOSED", bg_color=RGBColor(0xE8,0xF5,0xE9), bullet_size=12.5)
bullet_box(slide,
["Pilon fractures", "Excision of entire talus", "Triple arthrodesis (single incision)",
"Pantalar arthrodesis", "Osteochondral lesions of talus"],
6.75, 4.65, 6.2, 2.2,
title="✔ INDICATIONS", bg_color=RGBColor(0xFF,0xF3,0xE0), bullet_size=12.5)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 6 — LATERAL APPROACH TO DISTAL FIBULA
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "4. Lateral Approach to the Distal Fibula (Most Common)", "Technique 1.17 | Campbell's · Rockwood & Green")
footer_bar(slide)
bullet_box(slide,
["Mark incision along anterior or posterior border of distal fibula (or central)",
"Elevate FULL-THICKNESS flaps",
"Incise fascia; elevate peroneal musculature posteriorly (supraperiosteal)",
"For posterior plating: incise superior peroneal retinaculum partially",
"For syndesmosis access: dissect anteriorly, partially incise extensor retinaculum",
" → Protect AITFL fibers if intact",
"Layered closure; avoid suturing superficial peroneal nerve in anterior wound"],
0.3, 1.25, 6.0, 5.6,
title="⚙ TECHNIQUE", bg_color=RGBColor(0xE8,0xF4,0xFD), bullet_size=12.5)
bullet_box(slide,
["Superficial peroneal nerve (SPN):",
" • Highly variable location: 3–18 cm proximal to fibular tip",
" • Substantial branch within 5 cm of tip in 20% of patients (R&G)",
" • Risk increases as you go PROXIMAL",
"AITFL — do not disrupt if intact when accessing syndesmosis",
"Superior peroneal retinaculum — avoid complete disruption when inserting plate"],
6.6, 1.25, 6.4, 3.2,
title="⚠ STRUCTURES AT RISK", bg_color=RGBColor(0xFF,0xF3,0xE0), bullet_size=12.5)
bullet_box(slide,
["ORIF of lateral malleolus (most commonly used ankle approach)",
"Fibula plating — anterolateral or posterior",
"Syndesmosis repair / screw fixation",
"Ankle joint inspection (arthrotomy distally)",
"Access to tubercle of Chaput (anterior extension)"],
6.6, 4.65, 6.4, 2.2,
title="✔ INDICATIONS", bg_color=RGBColor(0xE8,0xF5,0xE9), bullet_size=12.5)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 7 — POSTEROLATERAL APPROACH
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "5. Posterolateral Approach to Posterior Malleolus & Fibula", "Technique 1.18 | Campbell's · Rockwood & Green · Miller's")
footer_bar(slide)
bullet_box(slide,
["Position: PRONE or Lateral decubitus",
"Incision: midway between posterior fibular border & lateral Achilles tendon",
"Blunt dissection → avoid sural nerve",
"Incise deep fascia JUST MEDIAL to peroneal tendons",
"Internervous plane: Peroneal tendons (SPN) ↔ FHL (tibial nerve)",
"Incise fascia overlying FHL along its LATERAL border",
"Elevate FHL off posterior tibia → expose posterior malleolus",
"⚠ DO NOT dissect into interval between posterior malleolus & fibula (protects PITFL)",
"For posterior fibular fixation: retract peroneal musculature LATERALLY",
"For lateral fibular fixation: create secondary window LATERAL to peroneal tendons"],
0.3, 1.25, 6.1, 5.6,
title="⚙ TECHNIQUE", bg_color=RGBColor(0xE8,0xF4,0xFD), bullet_size=12)
bullet_box(slide,
["Sural nerve & lesser saphenous vein (posterior to lateral malleolus)",
"PITFL — posterior inferior tibiofibular ligament (avoid deep dissection between PM and fibula)",
"FHL tendon itself"],
6.65, 1.25, 6.3, 2.4,
title="⚠ STRUCTURES AT RISK", bg_color=RGBColor(0xFF,0xF3,0xE0), bullet_size=13)
bullet_box(slide,
["Posterior malleolus fracture fixation (ORIF)",
"Combined posterior malleolus + fibula fixation",
"Posterior tibial plafond exposure"],
6.65, 3.85, 6.3, 1.7,
title="✔ INDICATIONS", bg_color=RGBColor(0xE8,0xF5,0xE9), bullet_size=13)
bullet_box(slide,
["Peroneus brevis: more muscular, lies ANTERIOR to longus directly behind fibula (Miller's mnemonic)"],
6.65, 5.75, 6.3, 1.1,
title="📌 MILLER'S KEY POINT", bg_color=RGBColor(0xFCE4EC), bullet_size=12.5)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 8 — J-TYPE POSTEROLATERAL (CHOI) + TRANSFIBULAR (GATELLIER)
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "6–7. J-type Posterolateral (Choi) & Transfibular Posterolateral (Gatellier)", "Techniques 1.19, 1.22 | Campbell's Operative Orthopaedics")
footer_bar(slide)
# Left half — Choi
add_rect(slide, 0.2, 1.25, 6.3, 5.6, RGBColor(0xE8,0xF4,0xFD))
add_rect(slide, 0.2, 1.25, 6.3, 0.4, C_ACCENT)
add_text(slide, "J-type Single-Incision Posterolateral (Choi et al.)", 0.35, 1.28, 6.1, 0.35,
size=13, bold=True, color=C_WHITE)
tb = slide.shapes.add_textbox(Inches(0.4), Inches(1.75), Inches(6.0), Inches(4.9))
tf = tb.text_frame; tf.word_wrap = True
for b in [
"Position: Prone or lateral",
"Incision: 10 cm along posterior fibular edge → curves posteriorly at syndesmosis → Achilles tendon insertion on calcaneus",
"Dissect sural nerve carefully (passes tangential to incision)",
"Take down peroneal tendons off posterior lateral malleolus",
"Develop interval: peroneal tendons ↔ FHL",
"Retract FHL + Achilles tendon MEDIALLY → expose posterior malleolus",
"─────────────────────────────",
"INDICATIONS: Posterior + lateral malleolus fracture (combined, single incision); improved access to lateral fibula & anterior syndesmosis",
"⚠ RISK: Sural nerve — tangential to incision",
]:
p = tf.paragraphs[0] if b == "Position: Prone or lateral" else tf.add_paragraph()
p.space_before = Pt(3)
run = p.add_run(); run.text = b
run.font.name = "Calibri"; run.font.size = Pt(12); run.font.color.rgb = C_TEXT
# Right half — Gatellier
add_rect(slide, 6.8, 1.25, 6.3, 5.6, RGBColor(0xFCE4EC))
add_rect(slide, 6.8, 1.25, 6.3, 0.4, RGBColor(0xE5,0x39,0x35))
add_text(slide, "Transfibular Posterolateral (Gatellier & Chastang, 1924)", 6.95, 1.28, 6.1, 0.35,
size=13, bold=True, color=C_WHITE)
tb2 = slide.shapes.add_textbox(Inches(7.0), Inches(1.75), Inches(5.9), Inches(4.9))
tf2 = tb2.text_frame; tf2.word_wrap = True
for b in [
"Incision: 12 cm proximal to lateral malleolus tip → along posterior fibular margin → tip of malleolus → curves anteriorly 2.5–4 cm along peroneal tendons",
"Expose fibula superiosteally; displace peroneal tendons ANTERIORLY",
"If fibula intact: osteotomize 10 cm proximal to tip; divide interosseous membrane + AITFL + PITFL",
"Preserve calcaneofibular & talofibular ligaments as HINGE",
"Turn fibula LATERALLY → expose lateral & posterior distal tibia + lateral ankle",
"Closure: Replace fibula; fix with transverse screw",
" → OVERDRILL fibula hole for compression across syndesmosis",
" → DORSIFLEX ankle while tightening (talar dome wider anteriorly)",
"─────────────────────────────",
"INDICATIONS: Large laterally-situated posterior malleolus Fx, lateral talar dome OCD, ankle osteochondromatosis, TAR (laterally-based)",
"⚠ RISKS: Distal fibular physis (children), syndesmosis widening if not overdrilled → tibiotalar arthritis",
]:
p = tf2.paragraphs[0] if b.startswith("Incision") else tf2.add_paragraph()
p.space_before = Pt(2)
run = p.add_run(); run.text = b
run.font.name = "Calibri"; run.font.size = Pt(11.5); run.font.color.rgb = C_TEXT
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 9 — POSTERIOR APPROACH
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "8. Posterior Approach to the Ankle", "Technique 1.24 | Campbell's Operative Orthopaedics")
footer_bar(slide)
bullet_box(slide,
["Position: PRONE",
"Incision: 12 cm along posterolateral border of Achilles tendon → calcaneal insertion",
"Divide superficial & deep fasciae",
"Divide Achilles tendon by Z-PLASTY (or central split — Hammit modification, lower complication rate)",
"Develop fat & areolar tissue to posterior tibia: space between FHL and peroneal tendons",
"Retract FHL tendon MEDIALLY → exposes:",
" • Distal 2.5 cm of tibia",
" • Posterior ankle joint",
" • Posterior talus",
" • Subtalar joint",
" • Posterior superior calcaneus",
"Keeping dissection LATERAL to FHL protects posterior tibial vessels & tibial nerve"],
0.3, 1.25, 6.0, 5.6,
title="⚙ TECHNIQUE", bg_color=RGBColor(0xE8,0xF4,0xFD), bullet_size=12.5)
bullet_box(slide,
["Posterior tibial vessels & tibial nerve (medial to FHL — protected if dissection stays lateral to FHL)",
"Achilles tendon integrity (Z-plasty required)"],
6.6, 1.25, 6.4, 2.2,
title="⚠ STRUCTURES AT RISK", bg_color=RGBColor(0xFF,0xF3,0xE0), bullet_size=13)
bullet_box(slide,
["Posterior ankle arthrodesis (blade plate)",
"Posterior fracture fixation (less commonly)",
"Access to posterior subtalar joint & calcaneus"],
6.6, 3.65, 6.4, 1.9,
title="✔ INDICATIONS", bg_color=RGBColor(0xE8,0xF5,0xE9), bullet_size=13)
bullet_box(slide,
["Hammit modification (central Achilles split): lower wound complication rate than standard approach without sacrificing exposure"],
6.6, 5.75, 6.4, 1.1,
title="📌 MODIFICATION", bg_color=RGBColor(0xFCE4EC), bullet_size=12)
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 10 — MEDIAL APPROACHES (3 on one slide)
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "9–11. Medial Approaches to the Ankle", "Techniques 1.25–1.28 | Campbell's · Rockwood & Green")
footer_bar(slide)
# Medial Malleolus
add_rect(slide, 0.2, 1.25, 4.1, 5.6, RGBColor(0xE8,0xF4,0xFD))
add_rect(slide, 0.2, 1.25, 4.1, 0.4, C_ACCENT)
add_text(slide, "Medial Approach to Medial Malleolus", 0.35, 1.28, 3.9, 0.35,
size=12, bold=True, color=C_WHITE)
tb = slide.shapes.add_textbox(Inches(0.38), Inches(1.75), Inches(3.85), Inches(4.85))
tf = tb.text_frame; tf.word_wrap = True
for b in [
"Internervous plane: Dorsiflexors (DPN) ↔ Invertors/plantarflexors (PTN)",
"Variant 1 (R&G): Straight longitudinal directly over malleolus",
"Variant 2 (R&G): Curvilinear anteriorly over front of malleolus → curves posteriorly distally (for plafond visualization)",
"Campbell's preferred: Apex-ANTERIOR curved incision to tip of anterior colliculus",
"For talar fracture: Apex-POSTERIOR incision → anteromedial talar approach",
"Protect saphenous nerve & vein (anterior to malleolus in subcut. fat)",
"Incise through anteromedial joint capsule",
"Excise injured periosteum; irrigate ankle joint",
"Fix with plate or screws through same incision",
"─",
"INDICATIONS: Medial malleolus ORIF",
"⚠ RISK: Great saphenous vein & saphenous nerve",
]:
p = tf.paragraphs[0] if b.startswith("Internervous") else tf.add_paragraph()
p.space_before = Pt(2)
run = p.add_run(); run.text = b
run.font.name = "Calibri"; run.font.size = Pt(11); run.font.color.rgb = C_TEXT
# Medial to Posterior Tibia (Broomhead / Colonna)
add_rect(slide, 4.55, 1.25, 4.1, 5.6, RGBColor(0xFFF3E0))
add_rect(slide, 4.55, 1.25, 4.1, 0.4, RGBColor(0xFF,0x98,0x00))
add_text(slide, "Medial Approach to Posterior Tibia (Colonna & Ralston)", 4.7, 1.28, 3.9, 0.35,
size=12, bold=True, color=C_WHITE)
tb2 = slide.shapes.add_textbox(Inches(4.73), Inches(1.75), Inches(3.85), Inches(4.85))
tf2 = tb2.text_frame; tf2.word_wrap = True
for b in [
"Incision: begin 10 cm proximal & 2.5 cm posterior to medial malleolus",
"Curve anteriorly & inferiorly across center of medial malleolus",
"Continue inferiorly & posteriorly 4 cm toward heel",
"Expose medial malleolus by reflecting periosteum (PRESERVE deltoid ligament)",
"Divide flexor retinaculum",
"Retract FHL + neurovascular bundle POSTERIORLY & LATERALLY",
"Retract tibialis posterior + FDL MEDIALLY & ANTERIORLY",
"→ Exposes posterior tibial fracture",
"─",
"INDICATIONS: Medial posterior malleolus Fx (Broomhead); ORIF of posteromedial tibial fragment",
"⚠ RISK: Posterior tibial NV bundle",
]:
p = tf2.paragraphs[0] if b.startswith("Incision") else tf2.add_paragraph()
p.space_before = Pt(2)
run = p.add_run(); run.text = b
run.font.name = "Calibri"; run.font.size = Pt(11); run.font.color.rgb = C_TEXT
# Transverse Medial (Koenig)
add_rect(slide, 8.9, 1.25, 4.2, 5.6, RGBColor(0xE8,0xF5,0xE9))
add_rect(slide, 8.9, 1.25, 4.2, 0.4, RGBColor(0x43,0xA0,0x47))
add_text(slide, "Transverse Medial Approach + Osteotomy (Koenig & Schaefer)", 9.05, 1.28, 4.0, 0.35,
size=12, bold=True, color=C_WHITE)
tb3 = slide.shapes.add_textbox(Inches(9.08), Inches(1.75), Inches(3.95), Inches(4.85))
tf3 = tb3.text_frame; tf3.word_wrap = True
for b in [
"Transverse incision just proximal to medial malleolus",
"Divide malleolus with osteotome / power saw",
"PRESERVE deltoid ligament attachment",
"Pre-drill screw holes BEFORE osteotomy; insert then remove",
"Subluxate talus & malleolus LATERALLY to reach joint surfaces",
"At closure: reinsert screws → use interfragmentary compression",
"Use TWO screws to prevent rotation of osteotomized malleolus",
"─",
"INDICATIONS: Fracture-dislocations of talus, OCD of medial talar dome, traumatic ankle lesions",
"⚠ RISK: Proximity of tibial vessels & nerve; transverse incision not popular",
]:
p = tf3.paragraphs[0] if b.startswith("Transverse") else tf3.add_paragraph()
p.space_before = Pt(2)
run = p.add_run(); run.text = b
run.font.name = "Calibri"; run.font.size = Pt(11); run.font.color.rgb = C_TEXT
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 11 — POSTEROMEDIAL + KOCHER + TOCHIGI + KNUPP
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "12–15. Remaining Approaches", "Bassett · Knupp · Kocher · Tochigi | Campbell's Operative Orthopaedics")
footer_bar(slide)
pairs = [
("Posteromedial via PTT Sheath (Bassett et al.)",
["Patient: Supine (hip/knee flexed, externally rotated) or prone",
"5–8 cm incision overlying posterior tibial tendon behind medial malleolus",
"Curve distally & slightly anteriorly, following contour of medial malleolus",
"Enter posterior tibial tendon sheath",
"Exposes: talar dome, tibial articular surface of posterior joint, posterior capsule",
"Protects: posteromedial tendons, NV structures, deep posterior deltoid fibers",
"INDICATIONS: OCD posterior talar dome, posterior capsule pathology"],
RGBColor(0xE8,0xF4,0xFD), C_ACCENT),
("Medial Approach to Tarsus (Knupp et al.)",
["Patient: Supine, involved foot externally rotated",
"4 cm incision from center of medial malleolus toward navicular",
"5 mm above & parallel to posterior tibial tendon",
"Extend as needed to reach cuneiform",
"Open subtalar joint capsule",
"⚠ Do NOT damage anterior fibers of deltoid ligament",
"INDICATIONS: Hindfoot arthrodesis in PTT dysfunction"],
RGBColor(0xFFF3E0), RGBColor(0xFF,0x98,0x00)),
("Kocher Lateral Approach to Tarsus & Ankle",
["Incision: from lateral/distal to talar head → 2.5 cm inferior to lateral malleolus tip → posteriorly & proximally",
"Ends 2.5 cm posterior to fibula, 5 cm proximal to malleolus tip",
"Retract peroneal tendons posteriorly; protect sural nerve & lesser saphenous vein",
"Divide calcaneofibular lig. → expose subtalar joint",
"Divide talofibular ligs. → dislocate ankle medially for full articular access",
"DISADVANTAGE: Skin slough risk; peroneal tendons must be divided",
"INDICATIONS: Triple arthrodesis, talectomy (anterolateral approach preferred)"],
RGBColor(0xE8,0xF5,0xE9), RGBColor(0x43,0xA0,0x47)),
("Anterolateral to Lateral Talar Dome (Tochigi et al.)",
["10 cm vertical incision along anterolateral corner of ankle",
"Avoid lateral branch of superficial peroneal nerve",
"Outline anterolateral tibial osteotomy to include AITFL",
"Cortical fragment ≥ 1 cm²",
"Pre-drill fixation screw holes before osteotomy",
"Rotate fragment; articular cartilage 'cracked' as fragment rotates",
"Closure: rotate back, fix with 4-mm cancellous screw + washer",
"Exposes: all but posterior 1/4 of lateral talar dome",
"INDICATIONS: Extensive centrolateral OCD of talus (alternative to lateral malleolar osteotomy)"],
RGBColor(0xFCE4EC), RGBColor(0xE5,0x39,0x35)),
]
positions2 = [(0.2,1.25,6.3,5.6),(6.8,1.25,6.3,5.6),(0.2,1.25,6.3,5.6),(6.8,1.25,6.3,5.6)]
# Use 2x2 grid
positions2 = [
(0.2, 1.25, 6.3, 2.65),
(6.8, 1.25, 6.3, 2.65),
(0.2, 4.1, 6.3, 2.75),
(6.8, 4.1, 6.3, 2.75),
]
for i,(title_t, bullets, bg, ac) in enumerate(pairs):
x,y,w,h = positions2[i]
add_rect(slide, x, y, w, h, bg)
add_rect(slide, x, y, w, 0.38, ac)
add_text(slide, title_t, x+0.12, y+0.05, w-0.2, 0.32, size=11.5, bold=True, color=C_WHITE)
tb = slide.shapes.add_textbox(Inches(x+0.15), Inches(y+0.46), Inches(w-0.25), Inches(h-0.55))
tf = tb.text_frame; tf.word_wrap = True
first=True
for b in bullets:
p = tf.paragraphs[0] if first else tf.add_paragraph()
first = False
p.space_before = Pt(1)
run = p.add_run(); run.text = "• " + b
run.font.name = "Calibri"; run.font.size = Pt(10.5); run.font.color.rgb = C_TEXT
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 12 — MILLER'S KEY POINTS & MNEMONICS
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "Key Points & Mnemonics (Miller's Review of Orthopaedics)", "High-yield summary for exams")
footer_bar(slide)
add_rect(slide, 0.3, 1.25, 12.7, 1.2, C_DARK_BLUE)
add_text(slide, '🧠 Mnemonic — Structures behind medial malleolus (Tom, Dick, and Very Angry Nervous Harry)',
0.5, 1.3, 12.4, 0.45, size=15, bold=True, color=C_HIGHLIGHT)
add_text(slide, '"Tibialis posterior | flexor Digitorum longus | posterior tibial Vein | posterior tibial Artery | tibial Nerve | flexor Hallucis longus"',
0.5, 1.72, 12.4, 0.55, size=13.5, bold=False, color=C_WHITE)
rows2 = [
("Anterior","EHL ↔ EDL or TA","DPN & ant. tibial artery → retract MEDIALLY; protect SPN before retinaculum incision"),
("Lateral","Subcutaneous over fibula","SPN (variable; 20% have branch within 5 cm of tip); sural nerve posterolateral"),
("Posterolateral","Peroneus brevis ↔ FHL","Lesser saphenous vein; sural nerve; peroneus brevis = more muscular, lies anterior to longus"),
("Posteromedial","FHL ↔ FDL (or retract PTN)","Posterior tibial nerve & artery and branches"),
("Lateral Hindfoot","Peroneus tertius ↔ Peroneal tendons","Lateral branch of DPN (to EDB); deep penetration → FHL injury"),
]
make_table(slide,
["Approach","Internervous Plane","Key Hazard / Note"],
rows2,
x=0.3, y=2.65, w=12.7, h=4.3,
col_widths=[2.5, 4.0, 6.2])
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 13 — QUICK REFERENCE: APPROACH SELECTION
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "Quick Reference: Approach Selection by Clinical Scenario", "Integrated from all three sources")
footer_bar(slide)
sel_rows = [
("Lateral malleolus fracture ORIF", "Lateral to distal fibula (most common approach)"),
("Posterior malleolus fracture", "Posterolateral approach"),
("Combined posterior + lateral malleolus", "J-type posterolateral (Choi) — single incision"),
("Large laterally-placed posterior malleolus / lateral talar OCD", "Transfibular posterolateral (Gatellier & Chastang)"),
("Medial malleolus fracture", "Medial approach to medial malleolus"),
("High-energy pilon fracture", "Extensile anteromedial (Assal) ± lateral fibula approach"),
("Ankle arthrodesis — anterior", "Anterior approach or Anterolateral (Universal)"),
("Posterior ankle arthrodesis", "Posterior approach (blade plate)"),
("Triple or pantalar arthrodesis", "Anterolateral (universal), Kocher, or Medial (Knupp)"),
("Centrolateral OCD of talus (extensive)", "Anterolateral lateral talar dome (Tochigi)"),
("Medial OCD talar dome / talar fracture-dislocation", "Transverse medial + osteotomy (Koenig & Schaefer)"),
("Hindfoot arthrodesis in PTT dysfunction", "Medial to tarsus (Knupp et al.)"),
("Posteromedial tibial fragment", "Medial to posterior tibia (Broomhead / Colonna & Ralston)"),
("Posterior talar dome OCD / posterior capsule", "Posteromedial via PTT sheath (Bassett et al.)"),
("Clubfoot release (children)", "Posteromedial approach (Cincinnati incision)"),
]
make_table(slide,
["Clinical Scenario", "Recommended Approach"],
sel_rows,
x=0.3, y=1.25, w=12.7, h=5.7,
col_widths=[6.0, 6.7])
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 14 — COMPLICATIONS & KEY HAZARDS SUMMARY
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide)
header_bar(slide, "Complications & Key Hazards Summary", "Across all ankle surgical approaches")
footer_bar(slide)
hazard_rows = [
("Superficial peroneal nerve (SPN)", "Lateral / Extensile anteromedial / Anterolateral", "Variable course; 3–18 cm from fibular tip; 20% have branch within 5 cm (R&G)"),
("Deep peroneal nerve + ant. tibial artery", "Anterior approach", "Lie directly in EHL/EDL interval — must be retracted MEDIALLY"),
("Sural nerve", "Posterolateral / Transfibular / Kocher / J-type", "Posterior to lateral malleolus; tangential to Choi J-incision"),
("Saphenous vein + nerve", "Medial / Extensile anteromedial", "Anterior to medial malleolus in subcutaneous fat"),
("Posterior tibial NV bundle", "Posteromedial / Posterior / Colonna", "Medial to FHL — protected if dissection stays lateral to FHL"),
("AITFL", "Lateral fibula / Gatellier", "Protect if intact during syndesmosis access; divided in transfibular approach"),
("PITFL", "Posterolateral", "Avoid dissection between posterior malleolus and fibula"),
("Apex skin necrosis", "Extensile anteromedial (Assal)", "Ensure apex of curved incision > 120° at all times"),
("Skin slough", "Kocher lateral", "Especially if ankle dislocation performed"),
("Syndesmosis widening (Gatellier)", "Transfibular posterolateral", "Overdrill fibula hole; dorsiflex ankle while tightening syndesmosis screw"),
("Fibular physis fracture", "Transfibular posterolateral (children)", "Extra care during fibular reflection over the physis"),
("Spring ligament injury", "Anterolateral midfoot", "Can be injured during calcaneonavicular bar excision"),
]
make_table(slide,
["Structure at Risk", "Approach(es) Involved", "Key Note / Prevention"],
hazard_rows,
x=0.3, y=1.2, w=12.7, h=5.8,
col_widths=[3.2, 4.0, 5.5])
# ════════════════════════════════════════════════════════════════════════════
# SLIDE 15 — SOURCES
# ════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_bg(slide, C_DARK_BLUE)
header_bar(slide, "References & Sources", "")
add_rect(slide, 0, 1.08, 13.333, 0.05, C_HIGHLIGHT)
footer_bar(slide)
srcs = [
("1.", "Campbell's Operative Orthopaedics, 15th Edition (2026)", "Chapters 1 & 94 — Approaches to the ankle. Techniques 1.13–1.28, 94.11"),
("2.", "Rockwood and Green's Fractures in Adults, 10th Edition (2025)", "Chapter 65 — Ankle Fractures: Surgical Approaches for Ankle Fractures section (pp. 3289–3291)"),
("3.", "Miller's Review of Orthopaedics, 9th Edition", "Chapter 2 — Surgical Approaches: Foot and Ankle subsection (pp. 224–227)"),
("4.", "Hoppenfield S, deBoer P. Surgical Exposures in Orthopaedics: The Anatomic Approach", "NOT AVAILABLE IN LIBRARY — classic reference for layered dissection of ankle approaches"),
]
y = 1.5
for num, title_s, detail in srcs:
add_text(slide, num, 0.4, y, 0.4, 0.35, size=16, bold=True, color=C_HIGHLIGHT)
add_text(slide, title_s, 0.85, y, 11.5, 0.38, size=16, bold=True, color=C_WHITE)
add_text(slide, detail, 0.85, y+0.37, 11.5, 0.38, size=12, color=RGBColor(0xAD,0xD8,0xE6))
y += 1.05
out = "/tmp/workspace/ankle-approaches-ppt/Ankle_Surgical_Approaches.pptx"
prs.save(out)
print(f"Saved: {out}")
print(f"Total slides: {len(prs.slides)}")
cd /tmp/workspace/ankle-approaches-ppt && python build_ppt.py
~/ankle-approaches-ppt/build_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/ankle-approaches-ppt/build_ppt.py'
cd /tmp/workspace/ankle-approaches-ppt && python build_ppt.py 2>&1
grep -n "RGBColor(0x[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9])" /tmp/workspace/ankle-approaches-ppt/build_ppt.py
sed -i 's/RGBColor(0xFCE4EC)/RGBColor(0xFC,0xE4,0xEC)/g; s/RGBColor(0xFFF3E0)/RGBColor(0xFF,0xF3,0xE0)/g' /tmp/workspace/ankle-approaches-ppt/build_ppt.py && python /tmp/workspace/ankle-approaches-ppt/build_ppt.py 2>&1
Ankle Surgical Approaches
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide |
| 2 | Overview / classification by direction (4-column card layout) |
| 3 | Anterior Approach - technique, risks, indications |
| 4 | Extensile Anteromedial (Assal) |
| 5 | Anterolateral Universal Incision |
| 6 | Lateral Approach to Distal Fibula (most common) |
| 7 | Posterolateral Approach |
| 8 | J-type Posterolateral (Choi) + Transfibular (Gatellier) side-by-side |
| 9 | Posterior Approach |
| 10 | Medial Approaches - three on one slide (medial malleolus, posterior tibia, Koenig osteotomy) |
| 11 | Remaining 4 approaches - Bassett, Knupp, Kocher, Tochigi in 2x2 grid |
| 12 | Miller's mnemonics + internervous plane table (Tom Dick & Very Angry Nervous Harry) |
| 13 | Quick reference - approach selection by clinical scenario (table) |
| 14 | Complications & hazards summary table |
| 15 | References (Campbell's 15e, Rockwood & Green 10e, Miller's 9e, Hoppenfield note) |