~/ortho-exam-pdf/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
OUTPUT = "/tmp/workspace/ortho-exam-pdf/Orthopaedics_Exam_Summary.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Orthopaedics AMCB-8 Exam Summary",
author="Army Medical College Bogura - Orthopaedics Dept"
)
styles = getSampleStyleSheet()
# ββ Custom styles ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
NAVY = colors.HexColor("#1a3a5c")
TEAL = colors.HexColor("#0077aa")
GOLD = colors.HexColor("#d4a017")
LB = colors.HexColor("#ddeeff") # light-blue tint
LG = colors.HexColor("#eeffee") # light-green tint
LY = colors.HexColor("#fffde7") # light-yellow tint
WHITE = colors.white
cover_title = ParagraphStyle("cover_title", parent=styles["Title"],
fontSize=26, textColor=NAVY, spaceAfter=8, alignment=TA_CENTER,
fontName="Helvetica-Bold")
cover_sub = ParagraphStyle("cover_sub", parent=styles["Normal"],
fontSize=13, textColor=TEAL, spaceAfter=6, alignment=TA_CENTER)
cover_info = ParagraphStyle("cover_info", parent=styles["Normal"],
fontSize=11, textColor=colors.grey, spaceAfter=4, alignment=TA_CENTER)
h1 = ParagraphStyle("h1", parent=styles["Heading1"],
fontSize=16, textColor=WHITE, backColor=NAVY,
spaceBefore=14, spaceAfter=6, leftIndent=-4, rightIndent=-4,
borderPad=6, fontName="Helvetica-Bold")
h2 = ParagraphStyle("h2", parent=styles["Heading2"],
fontSize=13, textColor=NAVY, spaceBefore=10, spaceAfter=4,
fontName="Helvetica-Bold", borderPad=2,
borderColor=TEAL, borderWidth=0)
h3 = ParagraphStyle("h3", parent=styles["Heading3"],
fontSize=11, textColor=TEAL, spaceBefore=7, spaceAfter=3,
fontName="Helvetica-Bold")
body = ParagraphStyle("body", parent=styles["Normal"],
fontSize=9.5, leading=14, spaceAfter=4, alignment=TA_JUSTIFY)
bullet = ParagraphStyle("bullet", parent=styles["Normal"],
fontSize=9.5, leading=13, spaceAfter=2, leftIndent=14, bulletIndent=4)
bold_body = ParagraphStyle("bold_body", parent=body, fontName="Helvetica-Bold")
note = ParagraphStyle("note", parent=body,
fontSize=8.5, textColor=colors.HexColor("#555555"),
backColor=colors.HexColor("#f8f8f8"), borderPad=4,
borderColor=colors.lightgrey, borderWidth=0.5,
leftIndent=8, rightIndent=8)
def H1(text): return Paragraph(f" {text}", h1)
def H2(text): return Paragraph(text, h2)
def H3(text): return Paragraph(text, h3)
def B(text): return Paragraph(text, body)
def BU(text): return Paragraph(f"β’ {text}", bullet)
def SP(h=6): return Spacer(1, h)
def HR(): return HRFlowable(width="100%", thickness=0.5, color=TEAL, spaceAfter=4)
def NOTE(t): return Paragraph(t, note)
def quick_table(headers, rows, col_widths=None, zebra=True, header_color=NAVY):
data = [[Paragraph(f"<b>{h}</b>", ParagraphStyle("th", fontSize=9,
textColor=WHITE, fontName="Helvetica-Bold")) for h in headers]]
for i, row in enumerate(rows):
data.append([Paragraph(str(c), ParagraphStyle("td", fontSize=9,
leading=12)) for c in row])
w = col_widths or ([14*cm / len(headers)] * len(headers))
t = Table(data, colWidths=w)
style = [
("BACKGROUND", (0,0), (-1,0), header_color),
("GRID", (0,0), (-1,-1), 0.4, colors.lightgrey),
("VALIGN", (0,0), (-1,-1), "TOP"),
("ROWBACKGROUNDS", (0,1), (-1,-1),
[LB if zebra else WHITE, WHITE] if zebra else [WHITE]),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
]
t.setStyle(TableStyle(style))
return t
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
# ββ COVER PAGE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [
SP(60),
Paragraph("ARMY MEDICAL COLLEGE BOGURA", cover_title),
Paragraph("Department of Orthopaedics β AMCB-8, Phase-IV", cover_sub),
SP(10),
HRFlowable(width="80%", thickness=2, color=GOLD, hAlign="CENTER"),
SP(10),
Paragraph("Comprehensive Exam Summary", ParagraphStyle("ct2",
fontSize=20, textColor=TEAL, alignment=TA_CENTER, fontName="Helvetica-Bold")),
SP(6),
Paragraph("All 4 Ward Assessment Examinations", cover_sub),
SP(30),
Paragraph("Subjects Covered:", cover_info),
Paragraph("β’ Exam 01 β Introduction & Fracture Basics", cover_info),
Paragraph("β’ Exam 02 β Fractures of Upper & Lower Limb, Dislocation", cover_info),
Paragraph("β’ Exam 03 β Bone Infections (Osteomyelitis)", cover_info),
Paragraph("β’ Exam 04 β Bone Tumour, Polytrauma, Mass Casualty, Amputation", cover_info),
SP(50),
HRFlowable(width="80%", thickness=1, color=GOLD, hAlign="CENTER"),
SP(10),
Paragraph("Quick-Reference Tables | Detailed Answers | High-Yield Notes", cover_info),
Paragraph("Prepared: July 2026", cover_info),
PageBreak(),
]
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# MASTER QUICK-REFERENCE SECTION
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [H1("MASTER QUICK-REFERENCE TABLES"), SP(8)]
# Table 1 β Fracture classification
story += [
H2("Table 1 β Fracture Classification (Gustilo-Anderson Open Fractures)"),
quick_table(
["Type","Description","Management Hint"],
[["I","Wound <1 cm, clean, low energy","Antibiotics + fixation"],
["II","Wound >1 cm, moderate soft-tissue damage","IV antibiotics, fixation"],
["IIIA","High energy; adequate soft-tissue cover after debridement","Debride + nail/fixator"],
["IIIB","Inadequate cover; periosteum stripped; flap needed","Debride + free/local flap"],
["IIIC","Any open # + arterial injury requiring repair","Emergency vascular repair + fasciotomy"]],
[3*cm, 8*cm, 5.5*cm]), SP(8),
H2("Table 2 β Fracture Healing Stages"),
quick_table(
["Stage","Time","Key Events"],
[["1. Haematoma","0β48 h","Fibrin clot; scaffold; cytokines (IL-1, IL-6, TNF-Ξ±)"],
["2. Inflammatory","Days 1β7","Neutrophils/macrophages; granulation tissue; neovascularisation"],
["3. Soft Callus","Wks 1β4","Chondrocytes; cartilage bridges gap; bone 'sticky'"],
["4. Hard Callus","Wks 4β12","Enchondral ossification; woven bone; callus on X-ray"],
["5. Remodelling","Monthsβyears","Woven β lamellar bone; Wolff's Law; medullary canal restored"]],
[3.5*cm, 3*cm, 10*cm]), SP(8),
H2("Table 3 β Complications of Long Bone Fracture"),
quick_table(
["Timing","Complication"],
[["Immediate","Haemorrhage/shock, neurovascular injury, fat embolism (24β72 h)"],
["Early","Compartment syndrome (5 P's), DVT/PE, infection, wound breakdown"],
["Late","Non-union, malunion, delayed union, AVN, Volkmann's contracture, post-traumatic OA, osteomyelitis, Sudeck's atrophy, myositis ossificans"]],
[3.5*cm, 13*cm]), SP(8),
H2("Table 4 β Common Fractures: Quick-Reference"),
quick_table(
["Fracture","Classic Feature","Most Common Nerve Injured","Treatment"],
[["Colles'","Dinner-fork deformity; FOOSH; post-menopausal β","Median nerve (CTS)","Closed reduction + POP cast; ORIF if unstable"],
["Smith's","Reverse Colles' (volar displacement)","β","Usually ORIF (unstable)"],
["Supracondylar humerus","Children 5β10 y; elbow after FOOSH","AIN (anterior interosseous)","Closed reduction + K-wire fixation (Gartland III)"],
["Fracture NOF","Elderly β; short ER limb after low-energy fall","β","Undisplacedβscrews; Displaced elderlyβhemiarthroplasty"],
["Monteggia","Proximal ulna # + radial head dislocation","PIN (posterior interosseous)","ORIF ulna + reduce radial head"],
["Galeazzi","Distal radius # + DRUJ dislocation","β","ORIF radius + DRUJ stabilisation"]],
[3.5*cm, 4.5*cm, 3.5*cm, 5*cm]), SP(8),
]
# Table 5 β Osteomyelitis
story += [
H2("Table 5 β Osteomyelitis: Key Facts"),
quick_table(
["Feature","Detail"],
[["Definition","Infection of bone cortex and/or medullary cavity; pyogenic or non-pyogenic"],
["Most common organism","Staphylococcus aureus (all ages, all types)"],
["Sickle cell","Salmonella species"],
["Neonates","S. aureus + Group B Strep + Gram-negatives"],
["Why metaphysis?","Slow sinusoidal flow, no phagocytic lining, end-arteries, minor trauma nidus, active growth"],
["Sequestrum","Dead avascular cortical bone; nidus for persistent infection; must be removed surgically"],
["Involucrum","New periosteal reactive bone surrounding sequestrum"],
["Cloaca","Holes in involucrum through which pus drains"],
["Brodie's abscess","Subacute osteomyelitis; walled-off metaphyseal abscess with sclerotic rim"],
["Antibiotic duration","IV 2β3 weeks then oral; total minimum 4β6 weeks"],
["First-line antibiotic","Flucloxacillin (MSSA); Vancomycin (MRSA); Ciprofloxacin (Gram-neg)"],
["Chronic treatment","Sequestrectomy + saucerisation + debridement + antibiotics"],
["Late complication","Marjolin's ulcer (SCC in chronic sinus tract); Amyloidosis"]],
[5*cm, 11.5*cm]), SP(8),
]
# Table 6 β Bone Tumours
story += [
H2("Table 6 β Bone Tumours: Classification and Key Features"),
quick_table(
["Tumour","Age","Site","X-Ray","Treatment"],
[["Osteosarcoma","10β20 y (peak)","Metaphysis: distal femur, proximal tibia","Sunburst periosteal reaction; Codman's triangle","Neoadj chemo (MAP) + limb-sparing surgery; radiation RESISTANT"],
["Ewing Sarcoma","5β15 y","Diaphysis: femur, pelvis, ribs","Onion-skin periosteal reaction; permeative lysis","Chemo + radiotherapy Β± surgery; radiation SENSITIVE; t(11;22)"],
["Chondrosarcoma",">40 y","Pelvis, proximal femur, humerus","Stippled calcification; lobulated; cortical thickening","Wide excision; chemo/RT resistant"],
["GCT (Osteoclastoma)","20β40 y","Epiphysis: distal femur, proximal tibia, distal radius","Eccentric lytic; soap bubble; no periosteal reaction; extends to subchondral bone","Curettage + adjuvant Β± cement; Denosumab for unresectable"],
["Osteoid Osteoma","5β25 y","Cortex: femoral neck, tibia","Nidus (<1 cm lucency) in dense sclerosis; CT best","NSAIDs; CT-guided RFA (treatment of choice)"],
["Osteochondroma","10β30 y","Metaphysis: distal femur, proximal tibia","Bony exostosis; cartilage cap","Excision if symptomatic; malignant transformation <1%"],
["Metastases",">40 y","Vertebrae, pelvis, ribs, proximal femur","Lytic (BLT-K) or sclerotic (prostate)","Treat primary; bisphosphonates; RT; surgical fixation if fracture risk"]],
[3*cm, 2*cm, 3.5*cm, 4*cm, 4*cm]), SP(8),
]
# Table 7 β GCS
story += [
H2("Table 7 β Glasgow Coma Scale (GCS)"),
quick_table(
["Component","Score","Response"],
[["Eye (E)","4","Spontaneous"],
["","3","To speech"],
["","2","To pain"],
["","1","None"],
["Verbal (V)","5","Oriented"],
["","4","Confused"],
["","3","Inappropriate words"],
["","2","Incomprehensible sounds"],
["","1","None"],
["Motor (M)","6","Obeys commands"],
["","5","Localises pain"],
["","4","Withdraws"],
["","3","Flexion (Decorticate)"],
["","2","Extension (Decerebrate)"],
["","1","None"],
["TOTAL","3β15","3 = deep coma; 15 = fully conscious; β€8 = intubate"]],
[3*cm, 2.5*cm, 11*cm]), SP(8),
]
# Table 8 β Triage
story += [
H2("Table 8 β Mass Casualty Triage (START System)"),
quick_table(
["Colour","Priority","Category","Criteria","Action"],
[["RED","P1","Immediate","Life-threatening but survivable; airway problem; RR<10 or >30; no radial pulse; GCSβ€8","Treat FIRST"],
["YELLOW","P2","Delayed","Serious but stable; can wait 30β60 min","Treat next"],
["GREEN","P3","Minor","Walking wounded; minor injuries","Treat last"],
["BLACK","P0","Expectant/Dead","Not breathing after airway opened; unsurvivable injuries","No active treatment"]],
[2*cm, 1.8*cm, 3*cm, 6.2*cm, 3.5*cm]), SP(8),
]
# Table 9 β Amputation indications
story += [
H2("Table 9 β Indications for Amputation (DIVE mnemonic)"),
quick_table(
["Category","Examples"],
[["Dead limb (Vascular)","PVD with gangrene; diabetic foot; Buerger's disease; traumatic ischaemia; frostbite"],
["Infection","Gas gangrene (Clostridium perfringens) β emergency; necrotising fasciitis; uncontrolled osteomyelitis"],
["Injury/Trauma","Mangled extremity (MESS β₯7); traumatic amputation; IIIC open fracture with failed vascular repair"],
["Elective","Malignant tumour (osteosarcoma); congenital non-functional limb; failed arthroplasty with sepsis"]],
[4*cm, 12.5*cm]), SP(8),
]
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# EXAM 01 ANSWERS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [H1("EXAM 01 β Introduction & Fracture Basics (17.5 Marks)"), SP(8)]
story += [
H2("Q1a β Principles of Musculoskeletal History Taking"),
BU("<b>Presenting complaint</b> β chief complaint, duration, onset"),
BU("<b>SOCRATES</b> β Site, Onset, Character, Radiation, Associations, Timing, Exacerbating/Relieving factors, Severity"),
BU("<b>Specific orthopaedic enquiry</b> β mechanism of injury; swelling (immediate = haemarthrosis; delayed = synovial); deformity; instability; locking"),
BU("<b>Neurological symptoms</b> β tingling, numbness, weakness, bowel/bladder (spine)"),
BU("<b>PMH</b> β previous fractures, operations, metabolic bone disease, malignancy, steroids"),
BU("<b>Drug/Social/Family history</b> β occupation, dominant hand, sport; family history of arthritis/tumours"),
BU("<b>Systemic review</b> β fever, weight loss (suggest infection or malignancy)"),
SP(6),
H2("Q1b β What is Orthopaedics? Branches?"),
B("Orthopaedics (orthos = straight; pais = child) is the branch of surgery dealing with prevention, diagnosis and treatment of disorders of the musculoskeletal system (bones, joints, muscles, tendons, ligaments, nerves)."),
quick_table(
["Branch","Focus"],
[["Trauma & Fracture Surgery","Acute fractures and dislocations"],
["Paediatric Orthopaedics","CTEV, DDH, scoliosis, congenital conditions"],
["Arthroplasty","Hip and knee replacement"],
["Spine Surgery","Disc prolapse, scoliosis, spinal fractures"],
["Sports Medicine","Ligament injuries, arthroscopy"],
["Hand Surgery","Microsurgery, tendon repair, carpal tunnel"],
["Orthopaedic Oncology","Bone and soft-tissue tumours"],
["Foot & Ankle Surgery","Deformities, trauma"],
["Rehabilitation","Physiotherapy, prosthetics, orthotics"]],
[5*cm, 11.5*cm]), SP(6),
H2("Q1c β Principles of Musculoskeletal Clinical Examination"),
B("<b>LOOK:</b> Skin (scars, sinuses, redness); shape (swelling, wasting, deformity); alignment (valgus/varus, shortening); gait"),
B("<b>FEEL:</b> Temperature; tenderness (localise precisely); swelling character (bony hard/fluctuant); crepitus"),
B("<b>MOVE:</b> Active then passive ROM in degrees; painful arc; end-feel; compare with opposite side"),
B("<b>SPECIAL TESTS:</b> Stability tests; provocative tests; limb length and girth measurements"),
B("<b>NEUROVASCULAR:</b> Motor power (MRC 0β5); sensation (light touch, pin-prick); reflexes; peripheral pulses; capillary refill"),
B("<b>RADIOLOGY:</b> Always X-ray: two views (AP + lateral), include joints above and below"),
SP(6),
H2("Q2a β Define and Classify Fracture"),
B("A <b>fracture</b> is a break in the structural continuity of bone. It may be complete or incomplete, with or without displacement."),
B("<b>Classification:</b>"),
BU("<b>Skin:</b> Closed (simple) vs. Open (compound)"),
BU("<b>Completeness:</b> Complete vs. Incomplete (Greenstick, Stress, Torus)"),
BU("<b>Pattern:</b> Transverse, Oblique, Spiral, Comminuted, Segmental, Butterfly, Impacted"),
BU("<b>Cause:</b> Traumatic, Stress/Fatigue, Pathological"),
BU("<b>Special types:</b> Avulsion, Compression, Depressed, Salter-Harris (children)"),
SP(6),
H2("Q2b β Investigations for an Orthopaedic Patient"),
B("<b>Imaging:</b> X-ray (AP + lateral; 2 joints) β CT (complex fractures, 3D planning) β MRI (soft tissue, osteomyelitis, occult fracture) β USS (tendons, effusion) β Bone scan (stress fracture, metastases) β PET-CT (oncology)"),
B("<b>Labs:</b> FBC, ESR, CRP (infection) β Calcium/Phosphate/ALP (bone metabolism) β Uric acid (gout) β Group & save (pre-op) β Biopsy (tumour) β Synovial fluid analysis"),
B("<b>Special:</b> NCS/EMG (nerve entrapment) β DEXA scan (osteoporosis) β Arthrography"),
SP(6),
H2("Q2c β How to Obtain an Orthopaedic X-Ray ('Rule of Two's')"),
BU("<b>Two views</b> β AP and lateral"),
BU("<b>Two joints</b> β include joint above and below fracture"),
BU("<b>Two limbs</b> β compare with opposite side in children"),
BU("<b>Two times</b> β repeat at 10β14 days if initially negative but fracture suspected"),
BU("<b>Two occasions</b> β before and after reduction"),
SP(6),
H2("Q3a β Simple vs. Compound Fracture"),
quick_table(
["Feature","Simple (Closed)","Compound (Open)"],
[["Skin","Intact","Breached; communicates with outside"],
["Infection risk","Low","High (osteomyelitis risk)"],
["Urgency","Less urgent","Orthopaedic emergency"],
["Treatment","Cast/fixation","Debridement + antibiotics + fixation"]],
[4.5*cm, 6.5*cm, 5.5*cm]), SP(6),
H2("Q3b β Methods of Immobilisation"),
B("<b>External (Non-operative):</b> POP cast/slab; synthetic cast; Thomas splint; skin traction (Buck's); skeletal traction (Steinmann pin/K-wire); functional brace; arm sling/collar-and-cuff; buddy strapping"),
B("<b>Internal (Operative):</b> IMN (femur/tibia/humerus); DHS (hip fractures); plates and screws (ORIF); tension band wiring (olecranon/patella); K-wires (temporary); cannulated screws (NOF)"),
B("<b>External Fixation:</b> Ilizarov/Orthofix/Hoffmann frames β open fractures, infected non-union, pelvic fractures, limb lengthening"),
SP(6),
H2("Q3c β Principles of Closed Fracture Management β 'Three R's'"),
BU("<b>REDUCE</b> β restore length, alignment, rotation; closed (MUA) or open (ORIF)"),
BU("<b>HOLD (Immobilise)</b> β maintain reduction until union; cast/traction/fixation"),
BU("<b>REHABILITATE</b> β prevent complications; early joint mobilisation; physiotherapy; return to function"),
B("Additional: analgesia; DVT prophylaxis; patient education; serial X-rays to confirm union"),
SP(6),
H2("Q4a β Fracture Healing Process"),
NOTE("Direct (primary) healing = no callus; absolute rigidity. Indirect (secondary) healing = callus; most common."),
quick_table(
["Stage","Time","Events"],
[["Haematoma","0β48 h","Fibrin clot; IL-1, IL-6, TNF-Ξ±; scaffold for repair"],
["Inflammatory","Days 1β7","Neutrophils, macrophages; granulation tissue; neovascularisation"],
["Soft Callus","Weeks 1β4","Chondrocytes; cartilaginous callus bridges fracture; bone 'sticky'"],
["Hard Callus","Weeks 4β12","Enchondral ossification; woven bone; visible on X-ray"],
["Remodelling","Monthsβyears","Woven β lamellar bone; Wolff's Law; medullary canal restored"]],
[4*cm, 3*cm, 9.5*cm]), SP(6),
H2("Q4b β Classify Open Fracture (Gustilo-Anderson)"),
NOTE("Type IIIC has highest amputation rate (~50%). Farmyard/contaminated wounds = automatic Type III regardless of wound size."),
quick_table(
["Type","Description"],
[["I","<1 cm, clean wound, low energy, minimal soft-tissue damage"],
["II",">1 cm wound, moderate soft-tissue damage, no flap/avulsion"],
["IIIA","High energy; wound any size; adequate soft-tissue cover after debridement"],
["IIIB","High energy; inadequate cover; periosteum stripped; flap required"],
["IIIC","Open fracture + arterial injury requiring repair; limb-threatening"]],
[2.5*cm, 14*cm]), SP(6),
H2("Q4c β Complications of Long Bone Fracture"),
B("<b>Immediate:</b> Haemorrhage/shock; neurovascular injury; fat embolism (24β72 h)"),
B("<b>Early:</b> Compartment syndrome (5 P's β fasciotomy); DVT/PE; infection; wound breakdown"),
B("<b>Late:</b> Non-union; malunion; delayed union; AVN; joint stiffness; post-traumatic OA; osteomyelitis; Volkmann's contracture; myositis ossificans; Sudeck's atrophy (CRPS); refracture"),
SP(6),
H2("Q5 β Open Femur Fracture (RTA, 30-year-old)"),
B("<b>Diagnosis:</b> Compound (open) fracture of shaft of right femur β Gustilo-Anderson Type III"),
B("<b>Treatment:</b>"),
BU("ABCDE primary survey; haemorrhage control; IV access Γ 2; resuscitation"),
BU("Cover wound with saline-soaked sterile gauze; IV antibiotics (cefuroxime Β± gentamicin); tetanus prophylaxis"),
BU("Thomas splint for temporary immobilisation"),
BU("Theatre: wound debridement + irrigation; external fixator or IMN after wound clean"),
BU("Post-op: serial wound checks; DVT prophylaxis; physiotherapy"),
B("<b>Two orthopaedic emergencies:</b> (1) Compartment syndrome β fasciotomy. (2) Open fracture β emergency debridement within 6 hours."),
PageBreak(),
]
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# EXAM 02 ANSWERS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [H1("EXAM 02 β Fractures of Upper & Lower Limb, Dislocation (24.5 Marks)"), SP(8)]
story += [
H2("Q1c β Pathological Fracture: Definition and Causes"),
B("A pathological fracture occurs through bone weakened by pre-existing disease, with minimal or no trauma."),
quick_table(
["Category","Examples"],
[["Generalised bone disease","Osteoporosis (most common), Osteomalacia, Paget's, Osteogenesis imperfecta"],
["Primary bone tumour","Osteosarcoma, Ewing sarcoma, GCT, Enchondroma, UBC"],
["Metastatic disease","Breast, Lung, Thyroid, Kidney, Prostate (BLT-KP) β most common in adults >40 y"],
["Haematological","Multiple myeloma, leukaemia, lymphoma"],
["Infection","Osteomyelitis (pyogenic, TB)"],
["Nutritional/metabolic","Scurvy, renal osteodystrophy, hyperparathyroidism"]],
[5*cm, 11.5*cm]), SP(6),
H2("Q2c β Management of Open Tibia Fracture (RTA, 20-year-old)"),
BU("ATLS primary survey (ABCDE); haemorrhage control"),
BU("Sterile wound cover; IV antibiotics within 1 h (co-amoxiclav + gentamicin for Type III); tetanus"),
BU("Below-knee backslab; document neurovascular status"),
BU("Theatre: thorough debridement + copious irrigation (β₯9 L for Type III)"),
BU("External fixator initially for contaminated wound β convert to IMN when wound clean (72 hβ2 weeks)"),
BU("Wound closure: primary (I/II); delayed/flap (III). Type IIIC: emergency vascular repair + 4-compartment fasciotomy"),
BU("Post-op: serial wound checks; antibiotics 72 h IV then oral; DVT prophylaxis; physiotherapy"),
SP(6),
H2("Q4 β Colles' Fracture (55-year-old woman, dinner-fork deformity)"),
B("<b>Diagnosis:</b> Colles' fracture β fracture of distal radius within 2.5 cm of articular surface; dorsal displacement; dinner-fork deformity; most common in post-menopausal women (osteoporosis)."),
B("<b>Evaluation:</b> X-ray AP + lateral; check median nerve (carpal tunnel); check ulnar styloid; radial height (normal 12 mm), volar tilt (normal 11Β°), radial inclination (normal 23Β°)"),
B("<b>Treatment:</b>"),
BU("Undisplaced: POP backslab 4β6 weeks; repeat X-ray at 1β2 weeks"),
BU("Displaced: Closed reduction (haematoma block/Bier's block) + below-elbow POP cast 5β6 weeks"),
BU("Surgical (ORIF/K-wire): intra-articular step-off >2 mm; unstable; failed closed reduction; young active patient"),
B("<b>Smith's fracture</b> = reverse Colles' (volar displacement); usually requires ORIF"),
SP(6),
H2("Q5 β Supracondylar Fracture (10-year-old boy, elbow after FOOSH)"),
B("<b>Diagnosis:</b> Supracondylar fracture of humerus β most common elbow fracture in children (5β10 y); Gartland classification (I: undisplaced; II: partially displaced; III: completely displaced)"),
B("<b>Management:</b>"),
quick_table(
["Type","Treatment"],
[["Gartland I","Above-elbow backslab 90Β° flexion + collar-and-cuff; 3β4 weeks"],
["Gartland II","Closed reduction + K-wire if unstable; cast 3β4 weeks"],
["Gartland III (β
exam favourite)","Emergency closed reduction under GA + percutaneous K-wire fixation; cast 3β4 weeks; remove K-wires at 3β4 weeks"]],
[3*cm, 13.5*cm]),
B("<b>Pulseless limb:</b> If warm/pink β reduce first; if cold/white β emergency vascular exploration"),
B("<b>Complications:</b>"),
BU("Most common nerve: Anterior interosseous nerve (AIN) β 'OK sign' test"),
BU("Most common late complication: Cubitus varus (gunstock deformity) β lateral closing wedge osteotomy"),
BU("Volkmann's ischaemic contracture (if compartment syndrome missed)"),
BU("Tardy ulnar nerve palsy (from cubitus valgus)"),
SP(6),
H2("Q6 β Hip Injury (65-year-old lady, fall, unable to walk)"),
B("<b>Differential:</b> (1) Fracture NOF β most likely. (2) Hip dislocation (posterior)."),
quick_table(
["Feature","Fracture NOF","Hip Dislocation (Posterior)"],
[["Limb position","Short, externally rotated","Flexed, adducted, internally rotated"],
["Mechanism","Low-energy fall","High-energy trauma"],
["Nerve injury","Rare","Sciatic nerve (common)"],
["Treatment","Internal fixation or arthroplasty","Emergency reduction under GA within 6 hours"]],
[4*cm, 6.5*cm, 6*cm]),
B("<b>Garden Classification for NOF:</b> I = incomplete undisplaced; II = complete undisplaced; III = complete partially displaced; IV = completely displaced"),
B("<b>Treatment:</b> Garden I/II β cannulated screws; Garden III/IV elderly β hemiarthroplasty; Garden III/IV young β ORIF attempt"),
SP(6),
H2("Q7 β Shoulder Dislocation"),
B("<b>Dislocation:</b> Complete loss of contact between joint surfaces. <b>Subluxation:</b> Partial contact retained."),
B("<b>Most commonly dislocated joint: Shoulder (glenohumeral)</b> β large head, shallow socket ('golf ball on tee'); reliance on rotator cuff; wide ROM; weak inferior capsule; 95% are anterior."),
quick_table(
["Type","Frequency","Position","X-ray sign"],
[["Anterior (subcoracoid)","95%","Arm abducted + externally rotated; loss of deltoid contour","Hill-Sachs + Bankart lesion"],
["Posterior","2β4%","Arm internally rotated + adducted","Light bulb sign on AP"],
["Inferior (luxatio erecta)","<1%","Arm fixed above head","β"]],
[4*cm, 3*cm, 5.5*cm, 4*cm]),
B("<b>Reduction methods:</b> Cunningham technique; Kocher's manoeuvre; Hippocratic method; Milch technique; Stimson's method"),
B("<b>Post-reduction:</b> Confirm X-ray; axillary nerve check (badge area sensation); broad arm sling 3β4 weeks; rotator cuff physio"),
B("<b>Young patient (army recruit):</b> Recurrence risk up to 90% in <25 y β Bankart repair (arthroscopic); Latarjet if bone loss"),
PageBreak(),
]
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# EXAM 03 ANSWERS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [H1("EXAM 03 β Bone Infections / Osteomyelitis (14 Marks)"), SP(8)]
story += [
H2("Q01 β Child 7 y: Fever, Hot Swollen Right Leg (36 h)"),
B("<b>Differential diagnoses:</b> (1) Acute haematogenous osteomyelitis (most probable); (2) Septic arthritis of knee; (3) Ewing's sarcoma"),
B("<b>Evaluation:</b> Blood cultures before antibiotics; FBC (βWBC), ESR/CRP (β); X-ray (normal in first 10β14 days); USS (subperiosteal collection); MRI (most sensitive β bone oedema early); Bone scan"),
B("<b>Treatment of AHO:</b>"),
BU("Admit; IV fluids; analgesia; limb splinting"),
BU("IV antibiotics immediately β <b>IV Flucloxacillin</b> (MSSA) or Cefazolin; Vancomycin if MRSA suspected"),
BU("IV for 2β3 weeks; oral for total 4β6 weeks minimum; monitor CRP response"),
BU("<b>Surgery if:</b> no response to antibiotics in 48β72 h; subperiosteal abscess on USS/MRI; pus on aspiration β drainage + debridement"),
SP(6),
H2("Q02 β Chronic Discharging Sinus, H/O Open Tibia Fracture 6 months ago"),
B("<b>Diagnosis:</b> Chronic post-traumatic osteomyelitis of right tibia"),
B("<b>Management:</b>"),
BU("Investigations: X-ray (sequestrum, involucrum, cloaca); CT (gold standard for sequestrum planning); MRI; sinogram; deep tissue culture"),
BU("Antibiotics: culture-guided; IV then oral; total months of therapy"),
BU("Surgery (cornerstone): sequestrectomy β saucerisation β debridement β dead space management (antibiotic cement beads/muscle flap) β bone graft/Ilizarov once infection cleared"),
B("<b>Complications:</b> Non-union; pathological fracture; malunion; recurrence; septic arthritis; amyloidosis; Marjolin's ulcer (SCC in sinus) β rare"),
SP(6),
H2("Q03a β Define Osteomyelitis"),
B("Osteomyelitis is infection of bone involving the cortex and/or medullary cavity, caused by pyogenic or non-pyogenic organisms, characterised by bone destruction, necrosis, and reactive new bone formation."),
SP(6),
H2("Q03b β Classification of Osteomyelitis"),
quick_table(
["By Duration","Features"],
[["Acute (<2 weeks)","Rapid onset; fever; toxaemia; bone still alive if treated early"],
["Subacute (weeksβmonths)","Insidious; less systemic signs; Brodie's abscess"],
["Chronic (monthsβyears)","Sequestrum; involucrum; sinus; recurrent flare-ups"]],
[4*cm, 12.5*cm]),
SP(4),
quick_table(
["By Pathogenesis","Common Setting"],
[["Haematogenous","Children (metaphysis); adults (vertebrae)"],
["Contiguous focus","Post-trauma; post-surgery; diabetic foot"],
["Vascular insufficiency","Diabetics; PVD"],
["Direct inoculation","Open fractures; prosthetic joints"]],
[5*cm, 11.5*cm]), SP(6),
H2("Q03c β Pathogenesis of Chronic Pyogenic Osteomyelitis"),
B("1. <b>Bacteraemia</b> β bacteria seed metaphysis (slow sinusoidal flow; no phagocytes)"),
B("2. <b>Inflammatory response</b> β intramedullary pressure rises β ischaemia of endosteal supply"),
B("3. <b>Vascular thrombosis</b> β bone necrosis β <b>sequestrum</b> forms (dead avascular bone = nidus; antibiotics cannot penetrate)"),
B("4. <b>Periosteal elevation</b> by pus β periosteum forms new reactive bone = <b>involucrum</b>"),
B("5. <b>Cloaca</b> form in involucrum β pus drains to skin = <b>sinus tract</b>"),
B("6. <b>Chronic cycle</b>: sequestrum persists β periodic flare-ups β more bone destruction β never resolves without sequestrectomy"),
SP(6),
H2("Q04a β Why Does AHO Preferentially Affect the Metaphysis?"),
BU("<b>Slow sinusoidal blood flow</b> β hairpin capillary loops at metaphysis; bacteria have more time to adhere"),
BU("<b>No phagocytic lining</b> β metaphyseal sinusoids lack phagocytes unlike liver/spleen"),
BU("<b>Rich blood supply</b> β high bacteraemic load delivered to metaphysis"),
BU("<b>End-arteries</b> β no collaterals; once thrombosed β rapid ischaemia + necrosis"),
BU("<b>Minor trauma nidus</b> β active bone growth creates micro-haematomas; focus for bacterial seeding"),
BU("<b>Growth plate barrier</b> β avascular physis prevents epiphyseal spread (except neonates)"),
BU("<b>Fastest-growing ends = most vulnerable</b>: distal femur, proximal tibia, proximal humerus"),
SP(6),
H2("Q04b β Common Organisms in Osteomyelitis"),
quick_table(
["Group / Setting","Organism(s)"],
[["All ages (most common)","Staphylococcus aureus"],
["Neonates (<1 month)","S. aureus; Group B Streptococcus; Gram-negatives (E. coli)"],
["Children 1β16 y","S. aureus (dominant); Streptococcus pyogenes"],
["Sickle cell disease","Salmonella species + S. aureus"],
["IV drug users","Pseudomonas aeruginosa; Candida; S. aureus"],
["Post-open fracture (contiguous)","S. aureus; gram-negatives; anaerobes; polymicrobial"],
["Adults (vertebral)","S. aureus (40β50%); gram-negatives (20%); streptococci (12%)"],
["Subacute (endemic regions)","Mycobacterium tuberculosis; Brucella"]],
[5.5*cm, 11*cm]), SP(6),
H2("Q04c β Define Acute Osteomyelitis; Sequestrum; Involucrum"),
B("<b>Acute osteomyelitis:</b> Rapidly developing pyogenic infection of bone presenting with sudden high fever, severe localised bone pain and tenderness over the metaphysis, local swelling/redness/warmth, duration <2 weeks. Bone is still alive if treated early."),
quick_table(
["Term","Definition","X-Ray"],
[["Sequestrum","Fragment of dead, necrotic, avascular cortical bone separated from living bone. Nidus for persistent infection. Must be surgically removed.","Dense/sclerotic fragment surrounded by lucency"],
["Involucrum","Sheath of new reactive periosteal bone formed around the sequestrum. Body's containment mechanism. Has holes (cloaca) for pus drainage.","Expanded shell of new bone surrounding sequestrum"],
["Cloaca","Holes/openings in the involucrum through which pus and bone fragments discharge to skin.","Apparent holes in involucrum on X-ray/CT"]],
[3*cm, 8.5*cm, 5*cm]),
PageBreak(),
]
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# EXAM 04 ANSWERS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [H1("EXAM 04 β Bone Tumour, Polytrauma, Mass Casualty, Amputation (21 Marks)"), SP(8)]
story += [
H2("Q01a β Define Neoplasm"),
B("A neoplasm is an abnormal mass of tissue whose growth <b>exceeds and is uncoordinated with</b> that of normal tissues, <b>persists</b> after cessation of the stimuli which evoked the change, and <b>serves no useful physiological purpose</b>. (Willis, 1952)"),
SP(6),
H2("Q01b β Benign vs. Malignant Neoplasm"),
quick_table(
["Feature","Benign","Malignant"],
[["Growth","Slow","Rapid, uncontrolled"],
["Encapsulation","Usually encapsulated","No capsule; infiltrative"],
["Invasion","No local invasion","Invades and destroys"],
["Metastasis","None","Yes (blood/lymphatics)"],
["Differentiation","Well-differentiated","Poorly differentiated (anaplastic)"],
["Mitoses","Rare; normal","Frequent; abnormal"],
["Necrosis","Rare","Common"],
["Recurrence","Rare","Frequent"],
["Prognosis","Excellent","Potentially fatal"]],
[4.5*cm, 5.5*cm, 6.5*cm]), SP(6),
H2("Q01c β Common Sites for Primary and Secondary Bone Tumours"),
quick_table(
["Tumour","Site"],
[["Osteosarcoma","Distal femur (most common), proximal tibia, proximal humerus (β₯50% around knee)"],
["Ewing sarcoma","Diaphysis: femur, tibia, fibula; flat bones: pelvis, ribs, scapula"],
["GCT","Epiphysis: distal femur, proximal tibia, distal radius"],
["Osteochondroma","Metaphysis: distal femur, proximal tibia, proximal humerus"],
["Osteoid osteoma","Cortex: femoral neck, tibia"],
["Chondrosarcoma","Pelvis, proximal femur, humerus; axial skeleton"],
["Metastases (secondary)","Vertebral column (most common), pelvis, ribs, skull, proximal femur β axial skeleton + proximal long bones (red marrow areas)"],
["Sources of metastases","BLT-KP: Breast, Lung, Thyroid, Kidney, Prostate"]],
[4.5*cm, 12*cm]), SP(6),
H2("Q02a β Classification of Bone Tumours"),
quick_table(
["Cell of Origin","Benign","Malignant"],
[["Bone-forming","Osteoma, Osteoid osteoma, Osteoblastoma","Osteosarcoma"],
["Cartilage-forming","Osteochondroma, Enchondroma, Chondroblastoma","Chondrosarcoma"],
["Fibrous","Non-ossifying fibroma, Fibrous dysplasia","Fibrosarcoma"],
["Marrow/round cells","β","Ewing sarcoma, Multiple myeloma, Lymphoma"],
["Unknown/other","GCT (borderline), UBC, ABC","Undifferentiated pleomorphic sarcoma"],
["Secondary (metastatic)","β","Breast, lung, prostate, kidney, thyroid"]],
[4*cm, 6.5*cm, 6*cm]), SP(6),
H2("Q02b β Osteosarcoma vs. Ewing Sarcoma"),
quick_table(
["Feature","Osteosarcoma","Ewing Sarcoma"],
[["Age","10β20 y (adolescents)","5β15 y (younger)"],
["Cell of origin","Osteoblast","Primitive neuroectodermal (neural crest)"],
["Location in bone","Metaphysis","Diaphysis"],
["Common site","Distal femur, proximal tibia","Femur, pelvis, ribs"],
["X-ray (key sign)","Sunburst periosteal reaction + Codman's triangle","Onion-skin periosteal reaction + Codman's triangle"],
["Systemic features","Pain, swelling; no fever","Fever, raised ESR, leukocytosis (mimics infection)"],
["Genetics","p53, RB mutations","t(11;22) EWS-FLI1 fusion β diagnostic"],
["Histology","Pleomorphic osteoblasts + osteoid","Small round blue cells; PAS+ glycogen"],
["Radiation","RESISTANT","SENSITIVE"],
["Treatment","Neoadjuvant chemo (MAP) + limb-sparing surgery","Chemo + radiotherapy Β± surgery"]],
[4*cm, 6.5*cm, 6*cm]), SP(6),
H2("Q02c β Radiological Findings of Ewing's Sarcoma"),
BU("<b>Onion-skin (laminated) periosteal reaction</b> β most characteristic; multiple parallel layers of new periosteal bone"),
BU("<b>Codman's triangle</b> β triangular periosteal elevation at tumour edge"),
BU("<b>Permeative (moth-eaten) lytic pattern</b> β ill-defined destruction through diaphysis"),
BU("<b>Large soft-tissue mass</b> β disproportionately large; visible on X-ray"),
BU("<b>Diaphyseal location</b> (unlike osteosarcoma which is metaphyseal)"),
BU("<b>CT/MRI:</b> extent of cortical destruction; marrow involvement; surgical planning"),
SP(6),
H2("Q03 β Osteosarcoma (20-year-old, sunburst X-ray, distal femur)"),
B("<b>Diagnosis:</b> Osteosarcoma of distal femur"),
B("<b>Diagnostic approach:</b>"),
BU("Blood: ALP (markedly raised); LDH (poor prognostic marker); FBC; ESR/CRP; pre-op bloods"),
BU("X-ray: sunburst periosteal reaction; Codman's triangle; lytic/sclerotic metaphyseal lesion"),
BU("MRI whole bone: intramedullary extent; NV involvement; skip lesions β essential for surgical planning"),
BU("CT chest: lung metastases (20% at diagnosis)"),
BU("Bone scan: skip lesions; distant bone mets"),
BU("<b>Biopsy (mandatory)</b>: core needle biopsy by treating surgeon; confirms diagnosis"),
B("<b>Treatment:</b>"),
BU("<b>Neoadjuvant chemotherapy</b> (MAP: Methotrexate + Adriamycin + Cisplatin) Γ 2β3 cycles"),
BU("<b>Limb-sparing surgery</b> (85β90%): wide excision + endoprosthesis/allograft"),
BU("<b>Amputation</b> (10β15%): NV involvement; pathological fracture; failed limb salvage"),
BU("<b>Adjuvant chemotherapy</b> (MAP) Γ 4β6 cycles post-surgery"),
NOTE("Osteosarcoma is RADIATION RESISTANT. Prognosis: ~70% 5-year survival for localised disease."),
SP(6),
H2("Q04a β Mass Casualty Triage"),
quick_table(
["Colour","Priority","Criteria","Action"],
[["RED","P1 Immediate","Life-threatening but survivable; airway compromise; RR <10 or >30; no radial pulse; GCS β€8","Treat FIRST"],
["YELLOW","P2 Delayed","Serious but stable; can wait 30β60 min","Treat next"],
["GREEN","P3 Minor","Walking wounded; minor injuries","Treat last"],
["BLACK","P0 Expectant","Not breathing after airway opened; unsurvivable injuries","No active treatment"]],
[2*cm, 3.5*cm, 7.5*cm, 3.5*cm]), SP(6),
H2("Q04b β Indications of Amputation (DIVE)"),
BU("<b>Dead limb (Vascular):</b> PVD gangrene; diabetic foot; Buerger's; traumatic ischaemia; frostbite"),
BU("<b>Infection:</b> Gas gangrene (Clostridium perfringens) β emergency; necrotising fasciitis; uncontrolled osteomyelitis"),
BU("<b>Injury/Trauma:</b> Mangled extremity (MESS β₯7); traumatic amputation; IIIC fracture with failed vascular repair"),
BU("<b>Elective:</b> Malignant tumour; congenital non-functional limb; failed arthroplasty with sepsis"),
SP(6),
H2("Q04c β Complications of Amputation"),
B("<b>Immediate:</b> Haemorrhage; wound infection; shock; DVT/PE"),
B("<b>Early:</b> Wound breakdown/dehiscence; flap necrosis; haematoma; joint contracture (flexion deformity) β prevent with physio + positioning"),
B("<b>Late:</b>"),
BU("<b>Phantom limb pain</b> β patient feels pain in amputated part; treat with mirror therapy, gabapentin, amitriptyline"),
BU("<b>Phantom limb sensation</b> β non-painful awareness of absent limb"),
BU("<b>Neuroma</b> β painful bulbous swelling at cut nerve end; excise or bury deeper"),
BU("<b>Stump pain / bursitis</b> β over bony prominence"),
BU("<b>Bone overgrowth</b> β children especially; revision surgery needed"),
BU("<b>Depression / psychological adjustment</b>"),
BU("Above-knee amputation β 60β80% increased energy expenditure for walking"),
SP(6),
H2("Q05a β Define Polytrauma"),
B("Polytrauma = simultaneous injury to multiple body regions/organ systems, of which at least two are life-threatening, with synergistic risk of death and organ failure. Modern: ISS β₯16 + at least one of: SBP β€90 mmHg; GCS β€8; BE β€-6; PTT β₯40 sec; Age β₯70 y. (Berlin Definition 2014)"),
SP(6),
H2("Q05b β Management of Polytrauma (ATLS / ABCDE)"),
quick_table(
["Step","Key Actions"],
[["A β Airway + C-spine","Jaw thrust; suction; C-collar; intubate if GCS β€8"],
["B β Breathing","Oβ 15 L/min; treat tension pneumothorax (needle decomp β drain); open pneumothorax (3-sided seal); massive haemothorax (drain)"],
["C β Circulation","Two large-bore IV lines; blood cultures; FBC/clotting/X-match; permissive hypotension (SBP 80β90 mmHg until bleeding controlled); 1:1:1 (RBC:FFP:platelets); FAST scan"],
["D β Disability","GCS; pupils; blood sugar; lateralising signs"],
["E β Exposure","Full exposure; log-roll; prevent hypothermia (warm blankets/fluids)"],
["Secondary survey","Head-to-toe exam; AMPLE history; trauma pan-scan CT"],
["Definitive care","Damage control surgery; ICU; MDT (neurosurgery, vascular, orthopaedics)"]],
[4*cm, 12.5*cm]), SP(6),
H2("Q05c β Glasgow Coma Scale Components"),
quick_table(
["Component (Max)","Score","Response"],
[["Eye (E) β max 4","4","Spontaneous"],
["","3","To speech"],
["","2","To pain"],
["","1","None"],
["Verbal (V) β max 5","5","Oriented (name, place, date)"],
["","4","Confused"],
["","3","Inappropriate words"],
["","2","Incomprehensible sounds"],
["","1","None"],
["Motor (M) β max 6","6","Obeys commands"],
["","5","Localises pain"],
["","4","Withdraws (normal flexion)"],
["","3","Abnormal flexion (Decorticate)"],
["","2","Extension (Decerebrate)"],
["","1","None"],
["TOTAL: E+V+M","3β15","β€8 = severe = intubate; 9β12 = moderate; 13β15 = minor"]],
[5*cm, 3*cm, 8.5*cm]), SP(6),
H2("Q06a β Giant Cell Tumour (GCT / Osteoclastoma)"),
B("<b>Definition:</b> Locally aggressive primary bone tumour of multinucleated giant cells (osteoclast-like) on mononuclear stromal cells. Age 20β40 y; slightly more common in β. The mononuclear stromal cell is the true neoplastic cell."),
B("<b>Location:</b> Always epiphysis extending to subchondral bone β distal femur, proximal tibia, distal radius."),
B("<b>X-ray:</b>"),
BU("Eccentric lytic lesion in epiphysis"),
BU("'Soap bubble' appearance (thin bony trabeculae within lytic area)"),
BU("Extends to subchondral plate (right up to articular surface)"),
BU("Expansile β cortex thinned and may be breached"),
BU("NO periosteal reaction (distinguishes from osteosarcoma)"),
B("<b>Treatment:</b> Extended curettage + high-speed burr + adjuvant (phenol/liquid nitrogen/PMMA cement) β recurrence ~15β25%; distal radius β wide excision + fibular graft; Denosumab (anti-RANKL) for unresectable/recurrent. Avoid radiotherapy (malignant transformation)."),
SP(6),
H2("Q06b β Osteoid Osteoma"),
B("<b>Definition:</b> Benign bone-forming tumour <2 cm with a central vascular nidus of osteoid surrounded by dense reactive cortical sclerosis. Age 5β25 y; male predominance (2β3:1)."),
B("<b>Location:</b> Cortex of proximal femur (femoral neck most common), tibia; spine (posterior elements β painful scoliosis)."),
B("<b>Classic feature:</b> Constant boring <b>nocturnal pain dramatically relieved by aspirin/NSAIDs</b> β pathognomonic (nidus produces prostaglandin E2)."),
B("<b>X-ray:</b> Dense fusiform cortical sclerosis; central nidus (<1 cm lucency Β± calcification) may be obscured."),
B("<b>CT scan:</b> Investigation of choice β best shows the nidus ('target lesion')."),
B("<b>Treatment:</b> NSAIDs (symptoms control; may resolve in 3β7 y); <b>CT-guided radiofrequency ablation (RFA)</b> β treatment of choice; >90% success. Surgical excision if RFA unavailable."),
NOTE("Key difference: Osteoblastoma = >2 cm; does NOT respond to NSAIDs; more aggressive. Osteoid osteoma = <2 cm; responds to aspirin/NSAIDs."),
PageBreak(),
]
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# FINAL HIGH-YIELD REVISION PAGE
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story += [H1("HIGH-YIELD EXAM RAPID REVISION β All Topics"), SP(8)]
story += [
H2("Fractures β Must Know"),
quick_table(
["Topic","Key Fact"],
[["Femur fracture blood loss","Up to 1.5 litres"],
["Compartment syndrome treatment","Emergency fasciotomy; 5 P's: Pain, Pallor, Paresthesia, Paralysis, Pulselessness"],
["Open fracture antibiotic timing","Within 1 hour; co-amoxiclav Β± gentamicin"],
["Perren's strain theory","<2% = bone; <10% = cartilage; >10% = fibrous tissue"],
["Three R's of fracture Rx","Reduce, Hold, Rehabilitate"],
["Colles' fracture","Distal radius; dorsal displacement; post-menopausal women; closed reduction + cast"],
["Reverse Colles' (Smith's)","Volar displacement; usually ORIF"],
["Supracondylar Humerus (child)","Most common nerve = AIN; late complication = cubitus varus; emergency Gartland III"],
["Garden classification NOF","I = undisplaced incomplete; II = undisplaced complete; III = displaced; IV = fully displaced"],
["Shoulder dislocation β most common","Anterior (95%); nerve = axillary; recurrence 90% in <25 y; Bankart repair"],
["Monteggia","Proximal ulna # + radial head dislocation; nerve = PIN"],
["Galeazzi","Distal radius # + DRUJ dislocation"]],
[6*cm, 10.5*cm]), SP(8),
H2("Osteomyelitis β Must Know"),
quick_table(
["Topic","Key Fact"],
[["Most common organism","Staphylococcus aureus at all ages"],
["Sickle cell","Salmonella (not Staph!)"],
["Why metaphysis?","Slow flow + no phagocytes + end-arteries + minor trauma nidus"],
["Sequestrum","Dead bone; nidus; MUST be removed surgically"],
["Involucrum","New periosteal bone; body's containment"],
["Brodie's abscess","Subacute osteomyelitis; walled-off with sclerosis"],
["AHO first-line antibiotic","Flucloxacillin (MSSA); Vancomycin (MRSA)"],
["Chronic OM treatment","Sequestrectomy + saucerisation + debridement + prolonged antibiotics"],
["Marjolin's ulcer","SCC in chronic sinus tract; rare but aggressive complication"]],
[6*cm, 10.5*cm]), SP(8),
H2("Bone Tumours β Must Know"),
quick_table(
["Topic","Key Fact"],
[["Most common primary malignant bone tumour in children","Osteosarcoma"],
["Most common bone tumour overall (adults >40 y)","Metastatic bone disease"],
["Osteosarcoma X-ray","Sunburst periosteal reaction; Codman's triangle; metaphyseal"],
["Ewing sarcoma X-ray","Onion-skin periosteal reaction; diaphyseal"],
["Ewing genetics","t(11;22) EWS-FLI1 translocation"],
["Osteosarcoma treatment","MAP chemo (neoadj + adj) + limb-sparing surgery; radiation RESISTANT"],
["Ewing treatment","Chemo + radiotherapy; radiation SENSITIVE"],
["GCT location","Epiphysis; extends to subchondral plate; distal femur most common"],
["GCT X-ray","Eccentric lytic; soap bubble appearance; no periosteal reaction"],
["Osteoid osteoma","<2 cm; nocturnal pain; relieved by ASPIRIN; CT-guided RFA is treatment"],
["Osteoblastoma",">2 cm; NOT relieved by NSAIDs; more aggressive; often spinal"],
["Metastases β lytic","Breast, Lung, Thyroid, Kidney"],
["Metastases β sclerotic","Prostate (also breast can be mixed)"]],
[6*cm, 10.5*cm]), SP(8),
H2("Polytrauma / Triage / Amputation β Must Know"),
quick_table(
["Topic","Key Fact"],
[["GCS β intubate threshold","β€8 (cannot protect airway)"],
["GCS maximum","15 (fully conscious); minimum 3 (deep coma/death)"],
["GCS components","Eye (4) + Verbal (5) + Motor (6) = max 15"],
["Triage RED","Life-threatening but survivable β treat FIRST"],
["Triage BLACK","Unsurvivable or not breathing after airway opened"],
["Lethal triad in trauma","Hypothermia + Acidosis + Coagulopathy"],
["Permissive hypotension target","SBP 80β90 mmHg until haemorrhage controlled"],
["Massive transfusion ratio","1:1:1 (RBC : FFP : platelets)"],
["Amputation β most common indication (developed world)","Diabetic foot with gangrene / PVD"],
["Gas gangrene","Clostridium perfringens; emergency amputation"],
["Phantom limb pain treatment","Mirror therapy; gabapentin; amitriptyline; dorsal column stimulation"],
["Polytrauma definition","ISS β₯16 + at least one physiological abnormality (Berlin 2014)"]],
[6*cm, 10.5*cm]),
SP(10),
HRFlowable(width="100%", thickness=1.5, color=GOLD),
SP(6),
Paragraph("End of Orthopaedics AMCB-8 Exam Summary", ParagraphStyle("end",
fontSize=11, textColor=colors.grey, alignment=TA_CENTER)),
Paragraph("Army Medical College Bogura β Department of Orthopaedics", ParagraphStyle("end2",
fontSize=10, textColor=colors.grey, alignment=TA_CENTER)),
]
# ββ Build PDF βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story)
print(f"PDF saved to: {OUTPUT}")