diagram and definition of fractures of upper limb
Anatomical diagram of upper limb fractures showing: clavicle fracture at mid-shaft, proximal humerus fracture, supracondylar fracture of the humerus, Monteggia fracture (proximal ulna fracture with radial head dislocation), Galeazzi fracture (distal radius fracture with distal radioulnar joint dislocation), Colles fracture at distal radius with dorsal angulation (dinner fork deformity), Smith fracture at distal radius with volar angulation, scaphoid fracture at waist, and boxer's fracture at 5th metacarpal neck. Each fracture site labeled clearly on a clean anatomical skeleton of the upper limb.


| Type | Ulnar fracture | Radial head dislocation |
|---|---|---|
| I (most common) | Anterior angulation | Anterior |
| II | Posterior angulation | Posterior |
| III | Lateral angulation | Lateral |
| IV | Any | Any + radius fracture |

| Type | Description | Prognosis |
|---|---|---|
| I | Through the physis only | Good |
| II | Physis + metaphysis (most common) | Good |
| III | Physis + epiphysis (intra-articular) | Fair |
| IV | Physis + metaphysis + epiphysis | Poor |
| V | Crush injury of the physis | Worst - growth arrest |
| Fracture | Bone | Mechanism | Classic Sign | Key Risk |
|---|---|---|---|---|
| Clavicle | Clavicle (mid-shaft) | FOOSH / direct | Palpable step | Brachial plexus injury |
| Proximal humerus | Surgical neck | FOOSH / fall | Shoulder swelling | AVN of humeral head |
| Supracondylar | Distal humerus | FOOSH (extension) | Anterior humeral line shift | Volkmann's contracture |
| Colles' | Distal radius | FOOSH (wrist extension) | Dinner fork deformity | Median nerve compression |
| Smith's | Distal radius | FOOSH (wrist flexion) | Garden spade deformity | Volar neurovascular injury |
| Monteggia | Proximal ulna | Direct / FOOSH | Radial head dislocation | PIN (posterior interosseous nerve) palsy |
| Galeazzi | Distal radius shaft | Direct / FOOSH | DRUJ disruption | Chronic DRUJ instability |
| Scaphoid | Waist of scaphoid | FOOSH | Anatomical snuff box tenderness | AVN of proximal pole |
| Boxer's | 5th metacarpal neck | Punch | Volar angulation | Fight bite septic arthritis |
create an document for this
mkdir -p /home/daytona/workspace/upper-limb-fractures && ls /home/daytona/worksp…
~/upper-limb-fractures/generate.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, Header, Footer, PageBreak,
TableOfContents, StyleLevel
} = require('docx');
const fs = require('fs');
// ── colour palette ──────────────────────────────────────────────────────────
const DARK_BLUE = "1B3A6B";
const MID_BLUE = "2563A8";
const LIGHT_BLUE = "D6E4F7";
const ACCENT = "E84545";
const GRAY_HDR = "EAF0FB";
const WHITE = "FFFFFF";
// ── helpers ─────────────────────────────────────────────────────────────────
function h1(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_1,
spacing: { before: 320, after: 120 },
children: [new TextRun({ text, color: WHITE, bold: true, size: 32, font: "Calibri" })],
shading: { type: ShadingType.SOLID, color: DARK_BLUE },
indent: { left: 200, right: 200 },
});
}
function h2(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_2,
spacing: { before: 280, after: 80 },
children: [new TextRun({ text, color: WHITE, bold: true, size: 26, font: "Calibri" })],
shading: { type: ShadingType.SOLID, color: MID_BLUE },
indent: { left: 120 },
});
}
function h3(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_3,
spacing: { before: 180, after: 60 },
children: [new TextRun({ text, color: DARK_BLUE, bold: true, size: 22, font: "Calibri" })],
});
}
function body(text) {
return new Paragraph({
spacing: { before: 60, after: 60 },
children: [new TextRun({ text, size: 20, font: "Calibri" })],
});
}
function bullet(text, bold_prefix) {
const runs = [];
if (bold_prefix) {
runs.push(new TextRun({ text: bold_prefix, bold: true, size: 20, font: "Calibri" }));
runs.push(new TextRun({ text: " " + text, size: 20, font: "Calibri" }));
} else {
runs.push(new TextRun({ text, size: 20, font: "Calibri" }));
}
return new Paragraph({
bullet: { level: 0 },
spacing: { before: 40, after: 40 },
children: runs,
});
}
function sub_bullet(text) {
return new Paragraph({
bullet: { level: 1 },
spacing: { before: 30, after: 30 },
children: [new TextRun({ text, size: 19, font: "Calibri" })],
});
}
function label_value(label, value) {
return new Paragraph({
spacing: { before: 50, after: 50 },
children: [
new TextRun({ text: label + ": ", bold: true, size: 20, color: DARK_BLUE, font: "Calibri" }),
new TextRun({ text: value, size: 20, font: "Calibri" }),
],
});
}
function note(text) {
return new Paragraph({
spacing: { before: 60, after: 60 },
indent: { left: 400 },
children: [new TextRun({ text: "⚠ " + text, size: 19, color: ACCENT, italics: true, font: "Calibri" })],
});
}
function source_line(text) {
return new Paragraph({
spacing: { before: 40, after: 40 },
children: [new TextRun({ text: "📚 Source: " + text, size: 17, italics: true, color: "666666", font: "Calibri" })],
});
}
function spacer() {
return new Paragraph({ spacing: { before: 80, after: 80 }, children: [] });
}
// ── table builder ────────────────────────────────────────────────────────────
function makeTable(headers, rows) {
const headerCells = headers.map(h =>
new TableCell({
shading: { type: ShadingType.SOLID, color: DARK_BLUE },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({
alignment: AlignmentType.CENTER,
children: [new TextRun({ text: h, bold: true, color: WHITE, size: 18, font: "Calibri" })],
})],
})
);
const tableRows = [new TableRow({ children: headerCells, tableHeader: true })];
rows.forEach((row, ri) => {
const cells = row.map(cell =>
new TableCell({
shading: { type: ShadingType.SOLID, color: ri % 2 === 0 ? WHITE : GRAY_HDR },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 60, bottom: 60, left: 120, right: 120 },
children: [new Paragraph({
children: [new TextRun({ text: cell, size: 18, font: "Calibri" })],
})],
})
);
tableRows.push(new TableRow({ children: cells }));
});
return new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: tableRows,
});
}
// ── Salter-Harris table ───────────────────────────────────────────────────────
function shTable() {
return makeTable(
["Type", "Description", "Prognosis"],
[
["I", "Fracture through the physis only", "Excellent"],
["II", "Physis + metaphysis (most common, ~75%)", "Good"],
["III", "Physis + epiphysis – intra-articular", "Fair"],
["IV", "Physis + metaphysis + epiphysis", "Poor"],
["V", "Crush injury of the physis – growth arrest likely", "Worst"],
]
);
}
// ── Monteggia table ──────────────────────────────────────────────────────────
function montTable() {
return makeTable(
["Bado Type", "Ulnar Fracture Angulation", "Radial Head Dislocation"],
[
["I (most common)", "Anterior", "Anterior"],
["II", "Posterior", "Posterior"],
["III", "Lateral", "Lateral"],
["IV", "Any + radius fracture", "Any"],
]
);
}
// ── Quick Reference summary table ─────────────────────────────────────────────
function summaryTable() {
return makeTable(
["Fracture", "Bone", "Mechanism", "Classic Sign", "Key Risk"],
[
["Clavicle", "Clavicle (mid-shaft)", "FOOSH / direct blow", "Palpable step deformity", "Brachial plexus injury"],
["Proximal Humerus", "Surgical neck", "FOOSH / fall on shoulder", "Shoulder swelling, limited ROM", "AVN of humeral head"],
["Supracondylar", "Distal humerus", "FOOSH (extension type 95%)", "Anterior humeral line shift", "Volkmann's contracture"],
["Colles'", "Distal radius", "FOOSH – wrist in extension", "Dinner fork deformity", "Median nerve compression"],
["Smith's", "Distal radius", "FOOSH – wrist in flexion", "Garden spade deformity", "Volar neurovascular injury"],
["Monteggia", "Proximal ulna", "Direct blow / FOOSH + pronation","Radial head dislocation", "PIN palsy"],
["Galeazzi", "Distal radius shaft", "Direct blow / FOOSH", "DRUJ disruption", "Chronic DRUJ instability"],
["Scaphoid", "Waist of scaphoid", "FOOSH with radial deviation", "Anatomical snuff box tenderness", "AVN of proximal pole"],
["Boxer's", "5th metacarpal neck", "Punch to hard object", "Volar angulation + shortening", "Fight bite septic arthritis"],
]
);
}
// ── DOCUMENT ─────────────────────────────────────────────────────────────────
const doc = new Document({
creator: "Orris Medical AI",
title: "Fractures of the Upper Limb",
description: "Definitions, mechanisms, clinical features and management of upper limb fractures",
styles: {
default: {
document: {
run: { font: "Calibri", size: 20 },
},
},
},
sections: [{
properties: {
page: {
margin: { top: 1080, bottom: 1080, left: 1080, right: 1080 },
},
},
headers: {
default: new Header({
children: [new Paragraph({
alignment: AlignmentType.RIGHT,
children: [new TextRun({
text: "Fractures of the Upper Limb | Orris Medical Reference",
size: 16, color: "888888", font: "Calibri",
})],
border: { bottom: { style: BorderStyle.SINGLE, size: 4, color: "CCCCCC" } },
})],
}),
},
footers: {
default: new Footer({
children: [new Paragraph({
alignment: AlignmentType.CENTER,
children: [
new TextRun({ text: "Page ", size: 16, color: "888888", font: "Calibri" }),
new TextRun({ children: [PageNumber.CURRENT], size: 16, color: "888888", font: "Calibri" }),
new TextRun({ text: " of ", size: 16, color: "888888", font: "Calibri" }),
new TextRun({ children: [PageNumber.TOTAL_PAGES], size: 16, color: "888888", font: "Calibri" }),
],
border: { top: { style: BorderStyle.SINGLE, size: 4, color: "CCCCCC" } },
})],
}),
},
children: [
// ── TITLE PAGE ──────────────────────────────────────────────────────────
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 1200, after: 200 },
shading: { type: ShadingType.SOLID, color: DARK_BLUE },
children: [new TextRun({
text: "Fractures of the Upper Limb",
bold: true, size: 56, color: WHITE, font: "Calibri",
})],
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 100, after: 100 },
shading: { type: ShadingType.SOLID, color: MID_BLUE },
children: [new TextRun({
text: "Definitions · Mechanisms · Clinical Features · Management",
size: 24, color: WHITE, font: "Calibri", italics: true,
})],
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 300, after: 1200 },
children: [new TextRun({
text: "Sources: Bailey & Love's Surgery 28e · ROSEN's Emergency Medicine · Miller's Orthopaedics 9e · Campbell's Operative Orthopaedics 15e",
size: 17, color: "666666", font: "Calibri", italics: true,
})],
}),
new Paragraph({ children: [new PageBreak()] }),
// ── 1. CLAVICLE ─────────────────────────────────────────────────────────
h1("1. Clavicle Fracture"),
label_value("Definition", "Break in the clavicle, most commonly at the junction of the middle and distal thirds."),
spacer(),
h3("Mechanism"),
bullet("Birth trauma – direct pressure from symphysis pubis"),
bullet("Fall on an outstretched hand (FOOSH)"),
bullet("Direct blow to the clavicle or acromion"),
spacer(),
h3("Key Clinical Features"),
bullet("Most frequent fracture in children; ~90% of obstetric fractures"),
bullet("Often associated with brachial plexus palsies in neonates"),
bullet("Palpable tenderness, swelling, and crepitus over clavicle"),
bullet("Risk of subclavian vessel injury, brachial plexus injury, and pneumothorax (displaced fractures)"),
spacer(),
h3("Imaging"),
bullet("AP radiograph is sufficient in most cases"),
bullet("Cephalic tilt views (35–40°) or axial CT for medial fractures"),
spacer(),
h3("Treatment"),
bullet("Sling and swath for 4–6 weeks (standard in children and adolescents)"),
bullet("Surgical fixation: open fractures, neurovascular compromise, displacement >2 cm"),
note("Figure-of-eight splinting NOT recommended – risk of brachial plexus palsy with prolonged use."),
spacer(),
h3("Complications"),
bullet("Non-union (1–3%)"), bullet("Malunion"), bullet("Pneumothorax"),
source_line("ROSEN's Emergency Medicine, p. 3303; Miller's Review of Orthopaedics 9th Ed, p. 932"),
new Paragraph({ children: [new PageBreak()] }),
// ── 2. PROXIMAL HUMERUS ─────────────────────────────────────────────────
h1("2. Proximal Humerus Fracture"),
label_value("Definition", "Fracture at or near the surgical/anatomical neck of the humerus, commonly at the physis in children."),
spacer(),
h3("Mechanism"),
bullet("FOOSH, fall directly on the shoulder, or direct blow"),
bullet("In elderly osteoporotic patients: minimal force sufficient"),
spacer(),
h3("Key Features"),
bullet("80–90% of humeral growth occurs at the proximal physis – high remodeling potential in children"),
bullet("Proximal fragment", "Rotated into abduction and external rotation by the rotator cuff"),
bullet("Distal fragment", "Pulled into adduction and shortened by pectoralis major and deltoid"),
bullet("Gravity can be used as a reduction aid"),
bullet("Blocks to closed reduction: long head of biceps tendon, joint capsule, periosteum"),
spacer(),
h3("Salter-Harris Classification (paediatric)"),
bullet("SH I: most common in children <5 years"),
bullet("SH II: most common in children >12 years"),
bullet("Metaphyseal fractures: most common between ages 5–12 years"),
spacer(),
h3("Treatment"),
bullet("Non-operative in most children (high remodeling)"),
bullet("Surgical fixation for significantly displaced or unstable fractures"),
source_line("Miller's Review of Orthopaedics 9th Ed, p. 932"),
new Paragraph({ children: [new PageBreak()] }),
// ── 3. SUPRACONDYLAR ────────────────────────────────────────────────────
h1("3. Supracondylar Fracture of the Humerus"),
label_value("Definition", "Fracture of the distal humerus just proximal to the condyles; most common elbow fracture in children."),
spacer(),
h3("Mechanism"),
bullet("Extension type (95%): FOOSH with elbow in extension – distal fragment displaced posteriorly"),
bullet("Flexion type (5%): impact on a flexed elbow – distal fragment displaced anteriorly"),
spacer(),
h3("Gartland Classification"),
makeTable(
["Grade", "Description", "Treatment"],
[
["I", "Undisplaced", "Collar and cuff / backslab 3 weeks"],
["II", "Partially displaced – posterior hinge intact", "Closed reduction + above-elbow cast"],
["III", "Fully displaced – no cortical contact", "Closed reduction + percutaneous K-wires"],
]
),
spacer(),
h3("Radiographic Assessment"),
bullet("Anterior humeral line (lateral view): should bisect posterior 2/3 of capitellum – if displaced anteriorly, suspect fracture"),
bullet("Baumann's angle: normally 70–75°; formed between capitellar physis and humeral shaft axis"),
bullet("CRITOE mnemonic for ossification centres:", ""),
sub_bullet("C – Capitellum (age 1)"),
sub_bullet("R – Radial head (age 3)"),
sub_bullet("I – Internal (medial) epicondyle (age 5)"),
sub_bullet("T – Trochlea (age 7)"),
sub_bullet("O – Olecranon (age 9)"),
sub_bullet("E – External (lateral) epicondyle (age 11)"),
spacer(),
h3("Complications"),
bullet("Volkmann's ischaemic contracture (most feared) – missed compartment syndrome"),
bullet("Anterior interosseous nerve (AIN) palsy – most common nerve injury"),
bullet("Brachial artery injury"),
note("White pulseless hand = surgical emergency requiring IMMEDIATE reduction."),
note("Pink pulseless hand = reduce and fix first; if pulse absent post-reduction, explore vessels."),
source_line("Bailey & Love's Surgery 28th Ed, p. 462; ROSEN's Emergency Medicine, p. 3304"),
new Paragraph({ children: [new PageBreak()] }),
// ── 4. COLLES' ──────────────────────────────────────────────────────────
h1("4. Colles' Fracture"),
label_value("Definition", "Transverse fracture of the distal radial metaphysis (within 2 cm of the articular surface) with dorsal displacement and angulation."),
spacer(),
h3("Mechanism"),
bullet("FOOSH with the wrist in dorsiflexion (extension)"),
bullet("Classic injury in elderly osteoporotic women"),
spacer(),
h3("Clinical Features"),
bullet("Dinner fork deformity – dorsal displacement creates an upturned fork profile on lateral view"),
bullet("Loss of normal volar tilt of the distal radial articular surface"),
bullet("May extend intra-articularly (radiocarpal or radioulnar joints)"),
bullet("Median nerve most commonly injured (acute CTS from haematoma / post-reduction compression)"),
spacer(),
h3("Treatment"),
bullet("Reduction under hematoma block, Bier block, or regional anaesthesia"),
bullet("Immobilise in a double sugar tong splint – allow finger movement"),
bullet("Avoid circumferential casting for ≥24 h (oedema risk)"),
bullet("Surgical indications: dorsal angulation >20°, intra-articular step-off, comminution, neurovascular compromise"),
note("Evaluate neurological function BEFORE and AFTER reduction."),
source_line("ROSEN's Emergency Medicine, p. 612"),
spacer(),
// ── 5. SMITH'S ──────────────────────────────────────────────────────────
h1("5. Smith's Fracture (\"Reverse Colles'\")"),
label_value("Definition", "Distal radius fracture with volar (anterior) displacement and angulation – opposite of Colles'."),
spacer(),
h3("Mechanism"),
bullet("FOOSH with the wrist in flexion, or direct blow to the dorsum of the wrist"),
spacer(),
h3("Clinical Features"),
bullet("Garden spade deformity – hand displaced volarly"),
bullet("Less common than Colles'; tends to occur in younger patients"),
spacer(),
h3("Treatment"),
bullet("Closed reduction; higher rate of instability than Colles' – often requires surgical fixation (volar locking plate)"),
new Paragraph({ children: [new PageBreak()] }),
// ── 6. MONTEGGIA ────────────────────────────────────────────────────────
h1("6. Monteggia Fracture"),
label_value("Definition", "Fracture of the proximal third of the ulna combined with dislocation of the radial head."),
spacer(),
h3("Mechanism"),
bullet("Direct blow to the ulna, or FOOSH with forced pronation"),
spacer(),
h3("Bado Classification"),
montTable(),
spacer(),
h3("Key Points"),
note("Any isolated ulna fracture: X-ray the ELBOW to exclude radial head dislocation."),
bullet("Missed Monteggia → chronic radial head dislocation → limited forearm rotation and pain"),
bullet("Nerve at risk: posterior interosseous nerve (PIN) – weakness of wrist/finger extension"),
spacer(),
h3("Treatment"),
bullet("Adults: ORIF of ulna fracture; radial head usually reduces spontaneously"),
bullet("Children: closed reduction often successful"),
source_line("Campbell's Operative Orthopaedics 15th Ed 2026"),
spacer(),
// ── 7. GALEAZZI ─────────────────────────────────────────────────────────
h1("7. Galeazzi Fracture"),
label_value("Definition", "Fracture of the distal third of the radius combined with disruption of the distal radioulnar joint (DRUJ)."),
spacer(),
h3("Mechanism"),
bullet("FOOSH, or direct blow to the wrist"),
spacer(),
h3("Key Points"),
bullet("Mirror image of Monteggia – wrist X-ray mandatory with all radius shaft fractures"),
bullet("Nerve at risk: superficial radial nerve"),
note("Called the 'fracture of necessity' – almost always requires ORIF of the radius + DRUJ stabilisation."),
spacer(),
h3("Treatment"),
bullet("ORIF of the radial fracture (plate fixation)"),
bullet("Assess DRUJ stability after fixation; if unstable, K-wire across DRUJ in supination for 6 weeks"),
new Paragraph({ children: [new PageBreak()] }),
// ── 8. SCAPHOID ─────────────────────────────────────────────────────────
h1("8. Scaphoid Fracture"),
label_value("Definition", "Fracture of the scaphoid carpal bone, most commonly at the waist (70% of cases)."),
spacer(),
h3("Mechanism"),
bullet("FOOSH with radial deviation"),
spacer(),
h3("Clinical Features"),
bullet("Anatomical snuff box tenderness – classic and most sensitive clinical sign"),
bullet("Up to 20% of fractures NOT visible on initial plain radiographs"),
spacer(),
h3("Blood Supply & AVN Risk"),
body("The scaphoid blood supply enters distally and runs in a retrograde fashion. A displaced waist fracture interrupts the supply to the proximal pole, predisposing to avascular necrosis (AVN)."),
spacer(),
h3("Protocol for Suspected but X-ray-Negative Scaphoid Fracture"),
bullet("Immobilise in a below-elbow cast"),
bullet("Re-examine at 10–14 days; repeat scaphoid views"),
bullet("If tenderness persists: MRI (gold standard), bone scan, or CT"),
spacer(),
h3("Treatment"),
bullet("Undisplaced: below-elbow cast (thumb immobilisation NOT routinely required)"),
bullet("Displaced (>1 mm): ORIF with headless compression screw"),
spacer(),
h3("Complications"),
bullet("Non-union"), bullet("Avascular necrosis (AVN)"), bullet("Malunion"), bullet("Carpal instability"),
source_line("Bailey & Love's Surgery 28th Ed, p. 455"),
spacer(),
// ── 9. BOXER'S ──────────────────────────────────────────────────────────
h1("9. Boxer's Fracture"),
label_value("Definition", "Fracture of the neck of the 5th metacarpal (occasionally 4th) with volar angulation of the distal fragment."),
spacer(),
h3("Mechanism"),
bullet("Punching a hard object with a clenched fist"),
spacer(),
h3("Clinical Features"),
bullet("Volar angulation and shortening of the 5th metacarpal"),
bullet("Up to 40° volar angulation accepted for 5th metacarpal (less for index/middle)"),
note("Assess for 'fight bite' – tooth puncture over MCP joint requiring urgent surgical debridement for septic arthritis."),
spacer(),
h3("Treatment"),
bullet("Buddy taping + ulnar gutter splint for 3–4 weeks"),
bullet("Surgical fixation if angulation >40°, rotational deformity, or open wound"),
new Paragraph({ children: [new PageBreak()] }),
// ── 10. SALTER-HARRIS ────────────────────────────────────────────────────
h1("10. Salter-Harris Fractures (Paediatric Physeal Injuries)"),
body("Applies to any bone with a growth plate in skeletally immature patients. Classified by the Salter-Harris (SH) system based on the relationship of the fracture line to the physis, metaphysis, and epiphysis."),
spacer(),
shTable(),
spacer(),
body("Mnemonic: SALTR – Slip (I), Above metaphysis (II), Lower epiphysis (III), Through (IV), Ram/crush (V)."),
note("Types III, IV, and V are intra-articular or crush injuries with risk of premature growth plate closure and leg length discrepancy."),
source_line("ROSEN's Emergency Medicine, p. 3304"),
new Paragraph({ children: [new PageBreak()] }),
// ── QUICK REFERENCE TABLE ───────────────────────────────────────────────
h1("Quick Reference Summary"),
summaryTable(),
spacer(),
source_line("Bailey & Love's Short Practice of Surgery 28e · ROSEN's Emergency Medicine · Miller's Review of Orthopaedics 9e · Campbell's Operative Orthopaedics 15e 2026"),
],
}],
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync("/home/daytona/workspace/upper-limb-fractures/Upper_Limb_Fractures.docx", buffer);
console.log("Document written successfully.");
}).catch(err => {
console.error("Error:", err);
process.exit(1);
});
cd /home/daytona/workspace/upper-limb-fractures && node generate.js 2>&1
python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/worksp…
cd /home/daytona/workspace/upper-limb-fractures && python3 -c " import zipfile, …
Upper Limb Fractures
Word Document · DOCX