Fracture of humerus surgery long answer from S DAS
| Type | Description |
|---|---|
| Adduction type | Shaft is adducted relative to the humeral head — the inner half of the fractured ends are impacted |
| Abduction type | Shaft is abducted relative to the humeral head — the outer half of the fractured ends are impacted; greater tuberosity may be avulsed |
| Type | Mechanism | Lower fragment displacement |
|---|---|---|
| Backward (Posterior) — much commoner | Fall on the hand with bent elbow; forearm fully pronated | Backwards, upwards, backward angulation + slight internal rotation |
| Forward (Anterior) — rarer | Fall on the stretched hand with fully extended elbow | Tilted forward; more extended elbow posture |
| Fracture | Age group | Mechanism | Key Sign | Key Complication |
|---|---|---|---|---|
| Surgical neck of humerus | Adults/elderly | Fall on outstretched hand | Bony tenderness at surgical neck | Axillary nerve injury |
| Anatomical neck | Rare | Direct blow | X-ray only | AVN of head |
| Greater tuberosity | Adults | Direct blow / abducted arm fall | Tenderness below acromion | Supraspinatus dysfunction |
| Supracondylar | Children | Fall on bent elbow (posterior type) | Posterior prominence, radial pulse check | Volkmann's contracture, cubitus varus/valgus, tardy ulnar palsy |
| T/Y-shaped | Adults | Fall on point of elbow | Broadened lower humerus | Stiffness |
| Lateral condylar epiphysis | Children | — | Lateral swelling | Cubitus valgus, tardy ulnar palsy |
Make a pdf of this answer and include all the points
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace does not exist"
mkdir -p /home/daytona/workspace/humerus-fracture && echo "done"
~/humerus-fracture/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, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
OUTPUT = "/home/daytona/workspace/humerus-fracture/Fracture_of_Humerus_S_Das.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Fracture of Humerus – S Das",
author="S Das: A Manual on Clinical Surgery, 13th Edition"
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
'CustomTitle',
parent=styles['Title'],
fontSize=20,
textColor=colors.HexColor('#1a3c6b'),
spaceAfter=6,
alignment=TA_CENTER,
fontName='Helvetica-Bold'
)
subtitle_style = ParagraphStyle(
'Subtitle',
parent=styles['Normal'],
fontSize=11,
textColor=colors.HexColor('#4a6fa5'),
spaceAfter=4,
alignment=TA_CENTER,
fontName='Helvetica-Oblique'
)
h1_style = ParagraphStyle(
'H1',
parent=styles['Heading1'],
fontSize=14,
textColor=colors.white,
backColor=colors.HexColor('#1a3c6b'),
spaceBefore=14,
spaceAfter=6,
leftIndent=-0.3*cm,
rightIndent=-0.3*cm,
borderPad=5,
fontName='Helvetica-Bold'
)
h2_style = ParagraphStyle(
'H2',
parent=styles['Heading2'],
fontSize=12,
textColor=colors.HexColor('#1a3c6b'),
spaceBefore=10,
spaceAfter=4,
fontName='Helvetica-Bold',
borderPad=3,
)
h3_style = ParagraphStyle(
'H3',
parent=styles['Heading3'],
fontSize=11,
textColor=colors.HexColor('#2e5fa3'),
spaceBefore=7,
spaceAfter=3,
fontName='Helvetica-Bold',
)
body_style = ParagraphStyle(
'Body',
parent=styles['Normal'],
fontSize=10,
leading=15,
spaceAfter=5,
alignment=TA_JUSTIFY,
fontName='Helvetica'
)
bullet_style = ParagraphStyle(
'Bullet',
parent=styles['Normal'],
fontSize=10,
leading=14,
leftIndent=18,
spaceAfter=3,
bulletIndent=6,
fontName='Helvetica'
)
sub_bullet_style = ParagraphStyle(
'SubBullet',
parent=styles['Normal'],
fontSize=10,
leading=14,
leftIndent=36,
spaceAfter=2,
bulletIndent=22,
fontName='Helvetica'
)
note_style = ParagraphStyle(
'Note',
parent=styles['Normal'],
fontSize=9,
leading=12,
textColor=colors.HexColor('#555555'),
fontName='Helvetica-Oblique',
spaceAfter=4,
alignment=TA_CENTER
)
def h1(text):
return Paragraph(f" {text}", h1_style)
def h2(text):
return Paragraph(text, h2_style)
def h3(text):
return Paragraph(text, h3_style)
def body(text):
return Paragraph(text, body_style)
def bullet(text, level=1):
marker = "•" if level == 1 else "–"
style = bullet_style if level == 1 else sub_bullet_style
return Paragraph(f"{marker} {text}", style)
def spacer(h=0.2):
return Spacer(1, h*cm)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#cccccc'), spaceAfter=4, spaceBefore=2)
# ─── TABLE HELPER ───────────────────────────────────────────────
def make_table(data, col_widths=None, header_color='#1a3c6b'):
t = Table(data, colWidths=col_widths, repeatRows=1)
style = [
('BACKGROUND', (0,0), (-1,0), colors.HexColor(header_color)),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 9),
('ALIGN', (0,0), (-1,0), 'CENTER'),
('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,1), (-1,-1), 9),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, colors.HexColor('#f0f4fa')]),
('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#aaaaaa')),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
]
t.setStyle(TableStyle(style))
return t
# ════════════════════════════════════════════════════════════════
# BUILD CONTENT
# ════════════════════════════════════════════════════════════════
story = []
# ── TITLE ──────────────────────────────────────────────────────
story.append(spacer(0.5))
story.append(Paragraph("FRACTURE OF THE HUMERUS", title_style))
story.append(Paragraph("A Complete Long Answer", subtitle_style))
story.append(Paragraph("Source: S Das — A Manual on Clinical Surgery, 13th Edition", note_style))
story.append(spacer(0.3))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a3c6b'), spaceAfter=10))
# ── INTRO ───────────────────────────────────────────────────────
story.append(h1("ANATOMY OVERVIEW"))
story.append(spacer(0.1))
story.append(body("The humerus may fracture at three main regions:"))
for item in [
"<b>Upper end</b> — Surgical neck, anatomical neck, greater tuberosity",
"<b>Shaft</b> — Mid-shaft (radial nerve at risk)",
"<b>Lower end</b> — Supracondylar, T/Y-shaped, condylar epiphysis, capitulum",
]:
story.append(bullet(item))
story.append(spacer(0.2))
# ══════════════════════════════════════════════════════
# PART I: UPPER END
# ══════════════════════════════════════════════════════
story.append(h1("PART I: FRACTURE OF THE UPPER END OF THE HUMERUS"))
story.append(spacer(0.1))
story.append(h2("A. Fracture of the Neck of the Humerus and the Greater Tuberosity"))
story.append(h3("Mechanism of Injury"))
story.append(bullet("Fall on the outstretched hand — the surgical neck breaks and the upward thrust may shear off the greater tuberosity."))
story.append(bullet("Direct injury on the point of the shoulder may cause fracture at the anatomical neck."))
story.append(spacer(0.15))
story.append(h2("B. Fracture Through the Surgical Neck"))
story.append(body("This fracture is classified into <b>two varieties</b> based on the position of the shaft relative to the humeral head:"))
story.append(spacer(0.1))
table_data = [
["Type", "Shaft Position", "Impaction Site", "Additional Feature"],
["Adduction type", "Shaft adducted relative to head", "Inner half of fractured ends impacted", "—"],
["Abduction type", "Shaft abducted relative to head", "Outer half of fractured ends impacted", "Greater tuberosity may be avulsed"],
]
story.append(make_table(table_data, col_widths=[3.5*cm, 4.5*cm, 5*cm, 4*cm]))
story.append(spacer(0.15))
story.append(h3("X-Ray Findings (Both AP and Lateral Views Essential)"))
story.append(bullet("<b>Abduction type:</b> Shaft abducted relative to humeral head — outer half of fracture impacted."))
story.append(bullet("<b>Adduction type:</b> Shaft adducted relative to humeral head — inner half of fracture impacted."))
story.append(bullet("X-ray confirms exact site of fracture, type of displacement, and type of dislocation if any."))
story.append(spacer(0.15))
story.append(h2("C. Fracture Through the Anatomical Neck"))
story.append(bullet("Very difficult to diagnose clinically without X-ray."))
story.append(bullet("May be associated with <b>anterior dislocation of the shoulder</b>."))
story.append(spacer(0.15))
story.append(h2("D. Fracture of the Greater Tuberosity"))
story.append(bullet("Occurs by direct injury on the greater tuberosity, or by a fall on the abducted arm where the greater tuberosity impinges against the acromion process."))
story.append(bullet("May occur in association with dislocation of the shoulder and fracture neck of the humerus."))
story.append(spacer(0.15))
story.append(h2("E. Clinical Examination — Shoulder Region (S Das Method)"))
story.append(h3("1. Inspection"))
story.append(bullet("Attitude: arm supported by the other hand; contour of the shoulder joint is lost and becomes flattened."))
story.append(bullet("Note whether the greater tuberosity is at its normal position."))
story.append(spacer(0.1))
story.append(h3("2. Palpation"))
story.append(body("The surgeon stands behind the seated patient and palpates systematically:"))
story.append(bullet("Palpate acromion processes of both sides → slide fingers downwards to the greater tuberosity."))
story.append(bullet("Disappearance of the greater tuberosity + loss of resistance → <b>dislocation of the shoulder</b>."))
story.append(bullet("<b>Local bony tenderness + bony irregularity at the surgical neck</b> → fracture neck of humerus."))
story.append(bullet("Medial epicondyle normally shows the direction of the head of the humerus; lateral epicondyle shows the direction of the greater tuberosity. Disturbance of this relation → fracture at neck or shaft."))
story.append(bullet("In dislocation: rotate the flexed elbow — if no transmitted rotation of head + crepitus + pain at neck → <b>fracture-dislocation</b>."))
story.append(bullet("<b>Marked tenderness just below the acromion process</b> → fracture of the greater tuberosity or rupture of the supraspinatus tendon."))
story.append(bullet("<b>Bimanual palpation</b> through the deltoid and axilla (better felt by hand in axilla) is useful for upper end of humerus."))
story.append(spacer(0.1))
story.append(h3("3. Measurements"))
story.append(bullet("Length of the arm will be increased in fracture of the upper end of the humerus, fracture neck of the scapula."))
story.append(spacer(0.2))
# ══════════════════════════════════════════════════════
# PART II: LOWER END
# ══════════════════════════════════════════════════════
story.append(h1("PART II: FRACTURES AROUND THE LOWER END OF THE HUMERUS"))
story.append(spacer(0.1))
story.append(body("The following conditions are considered in injuries around the elbow:"))
items_elbow = [
"Supracondylar fracture",
"T- and Y-shaped fractures",
"Fracture-separation of the lateral condylar epiphysis",
"Fracture-separation of the medial epicondyle",
"Fractured capitulum",
"Fracture neck of the radius",
"Fracture head of the radius",
"Fracture of the olecranon process",
"Posterior dislocation of the elbow with or without fracture of the coronoid process",
"Subluxation of the head of the radius in children (Pulled elbow)",
"Monteggia fracture and reversed Monteggia",
]
for item in items_elbow:
story.append(bullet(item))
story.append(spacer(0.2))
story.append(h2("A. SUPRACONDYLAR FRACTURE"))
story.append(body("The <b>most important fracture</b> in the lower humerus, especially in <b>children</b>."))
story.append(spacer(0.1))
story.append(h3("Types of Supracondylar Fracture"))
table_data2 = [
["Type", "Mechanism", "Lower Fragment Displacement", "Frequency"],
["Backward\n(Posterior)", "Fall on the hand with bent elbow;\nforearm fully pronated", "Backwards, upwards, backward angulation\n+ slight internal rotation", "COMMON"],
["Forward\n(Anterior)", "Fall on stretched hand with fully\nextended elbow", "Tilted forward;\nmore extended elbow posture", "Rare"],
]
story.append(make_table(table_data2, col_widths=[3*cm, 5*cm, 6*cm, 3*cm]))
story.append(spacer(0.15))
story.append(h3("Clinical Features — Inspection"))
story.append(bullet("Young child with <b>swollen, flexed elbow supported by the other hand</b> — classic presentation of supracondylar fracture."))
story.append(bullet("<b>From behind:</b> Olecranon appears unduly prominent (in children this suggests supracondylar fracture, not posterior dislocation of elbow). Olecranon may be displaced sideways."))
story.append(bullet("<b>From the side:</b> Antero-posterior broadening of the elbow (also seen in posterior dislocation)."))
story.append(bullet("<b>Carrying angle</b> (normally 10°–15°): Abnormally increased = cubitus valgus; abnormally decreased = cubitus varus."))
story.append(spacer(0.1))
story.append(h3("Clinical Features — Palpation"))
story.append(bullet("Palpate both epicondyles with thumb and fingers; check for abnormal mobility by steadying the upper humerus with the other hand."))
story.append(bullet("<b>Abnormal mobility + crepitus → supracondylar fracture</b> (must be done with utmost gentleness)."))
story.append(bullet("In supracondylar fracture: the <b>normal relationship of the three bony points</b> (two epicondyles + olecranon) is <b>preserved</b> in the flexed position — this distinguishes it from posterior dislocation where this relationship is disturbed."))
story.append(bullet("<b>Abnormal broadening</b> of the lower end of humerus with distortion of condyles → T/Y-shaped fracture."))
story.append(spacer(0.1))
story.append(h3("Special Tests and X-Ray Landmarks"))
story.append(bullet("<b>Midposterior line of the arm:</b> A line drawn along the posterior midline of the arm normally passes through the olecranon process. Any sideways deviation of the olecranon can be demonstrated by this line."))
story.append(bullet("<b>Anterior humeral line</b> on lateral X-ray: A line along the anterior surface of the humerus divides the circular trochlea into anterior 1/3 and posterior 2/3. Posterior displacement disrupts this relationship."))
story.append(bullet("The centre of ossification for the <b>capitulum must not be mistaken for the head of the radius</b> in the AP view — they are distinguishable in the lateral view."))
story.append(spacer(0.1))
story.append(h3("Neurovascular Assessment (URGENT — Before and After Reduction)"))
story.append(bullet("<b>Brachial artery injury</b> — check radial pulse (keep elbow in position where radial pulse is well palpated)"))
story.append(bullet("<b>Nerve injuries</b> — examine ulnar, median, and radial nerves"))
story.append(bullet("<b>Volkmann's ischaemic contracture</b> — watch for impending signs"))
story.append(spacer(0.1))
story.append(h3("Treatment Principle (S Das)"))
story.append(bullet("Immediate reduction of the displaced fracture is essential."))
story.append(bullet("Elbow kept <b>flexed in collar and cuff</b> in a position where the <b>radial pulse is well palpated</b> (to avoid vascular compromise)."))
story.append(spacer(0.1))
story.append(h3("Complications of Supracondylar Fracture"))
complications = [
"Malunion",
"<b>Cubitus valgus or varus</b> — most common long-term deformity",
"<b>Myositis ossificans traumatica</b>",
"Injury to the brachial vessels",
"<b>Volkmann's ischaemic contracture</b>",
"Injury to nerves — ulnar, median, and/or radial (tardy ulnar palsy is the most common late nerve complication)",
]
for i, c in enumerate(complications, 1):
story.append(Paragraph(f"<b>{i}.</b> {c}", bullet_style))
story.append(spacer(0.2))
story.append(h2("B. T- AND Y-SHAPED FRACTURES"))
story.append(bullet("More common in <b>adults</b>."))
story.append(bullet("Caused by falls on the <b>point of the elbow</b>, driving the olecranon upwards and splitting the two condyles apart."))
story.append(bullet("Palpation: Abnormal broadening of the lower end of humerus with distortion of the condyles."))
story.append(spacer(0.15))
story.append(h2("C. FRACTURE-SEPARATION OF THE LATERAL CONDYLAR EPIPHYSIS (Children)"))
story.append(bullet("Occurs in children; presents with localized lateral swelling and tenderness."))
story.append(bullet("Malunion leads to <b>cubitus valgus</b> → eventually <b>tardy ulnar palsy</b>."))
story.append(spacer(0.15))
story.append(h2("D. FRACTURE-SEPARATION OF THE MEDIAL EPICONDYLE (Children)"))
story.append(bullet("Presents as medial tenderness; may be associated with elbow dislocation."))
story.append(bullet("Risk of <b>ulnar nerve injury</b>."))
story.append(spacer(0.15))
story.append(h2("E. FRACTURED CAPITULUM (Adults)"))
story.append(bullet("Localized tenderness on palpation of the capitulum."))
story.append(bullet("Diagnosed on lateral X-ray as a 'half-moon' fragment."))
story.append(spacer(0.2))
# ══════════════════════════════════════════════════════
# PART III: COMPLICATIONS
# ══════════════════════════════════════════════════════
story.append(h1("PART III: COMPLICATIONS OF FRACTURES AND DISLOCATIONS OF THE HUMERUS"))
story.append(spacer(0.1))
story.append(h2("A. Tardy Ulnar Palsy"))
story.append(bullet("The most common example of <b>late nerve injury</b> as a late complication of fracture."))
story.append(bullet("Occurs after supracondylar fracture of the humerus → malunion → <b>cubitus valgus</b> → progressive stretching of the ulnar nerve."))
story.append(bullet("Features: wasting of small muscles of the hand, clawing of 4th and 5th fingers, sensory loss over ulnar distribution."))
story.append(spacer(0.1))
story.append(h2("B. Axillary Nerve Injury"))
story.append(bullet("Occurs in subcoracoid dislocation of the humerus and fracture of the neck of the humerus."))
story.append(bullet("Results in <b>paralysis of the deltoid muscle</b>."))
story.append(spacer(0.1))
story.append(h2("C. Radial Nerve Injury"))
story.append(bullet("May occur in fracture of the <b>shaft of the humerus</b> (at the spiral groove)."))
story.append(bullet("Results in wrist drop."))
story.append(spacer(0.2))
# ══════════════════════════════════════════════════════
# PART IV: X-RAY
# ══════════════════════════════════════════════════════
story.append(h1("PART IV: X-RAY INTERPRETATION — KEY POINTS (S Das)"))
story.append(spacer(0.1))
story.append(bullet("Always take <b>both AP and lateral views</b>."))
story.append(bullet("Know all epiphyseal centres around the elbow to avoid misdiagnosing epiphyseal lines as fracture lines."))
story.append(spacer(0.1))
story.append(h3("Ossification Centres Around the Elbow (CRITOE Sequence)"))
ossif_data = [
["Centre", "Females", "Males"],
["Capitulum", "1st year", "1st year"],
["Medial epicondyle", "4th year", "6th year"],
["Head of radius", "~4th year", "~6th year"],
["Medial trochlea", "9th year", "10th year"],
["Olecranon", "~9th year", "~10th year"],
["Lateral epicondyle", "~12th year", "~12th year"],
["Fusion of lat. epicondyle + capitulum + trochlea with shaft", "14th year", "16th year"],
]
story.append(make_table(ossif_data, col_widths=[9*cm, 3.5*cm, 3.5*cm]))
story.append(spacer(0.1))
story.append(bullet("The <b>anterior humeral line</b> on lateral X-ray divides the trochlea into anterior 1/3 and posterior 2/3. Disruption indicates posterior displacement (supracondylar fracture)."))
story.append(bullet("In supracondylar fracture, the <b>centre of ossification for the capitulum must not be mistaken for the head of the radius</b> in AP view — they are distinguishable in the lateral view."))
story.append(spacer(0.2))
# ══════════════════════════════════════════════════════
# SUMMARY TABLE
# ══════════════════════════════════════════════════════
story.append(h1("SUMMARY TABLE"))
story.append(spacer(0.1))
summary_data = [
["Fracture", "Age Group", "Mechanism", "Key Clinical Sign", "Key Complication"],
["Surgical neck of humerus", "Adults/Elderly", "Fall on outstretched hand", "Bony tenderness at surgical neck", "Axillary nerve injury"],
["Anatomical neck", "Rare (any age)", "Direct blow to shoulder", "X-ray diagnosis only", "AVN of humeral head"],
["Greater tuberosity", "Adults", "Direct blow / abducted arm fall", "Tenderness below acromion", "Supraspinatus dysfunction"],
["Supracondylar (posterior)", "Children", "Fall on bent elbow (pronated)", "Posterior prominence, check radial pulse", "Volkmann's contracture, cubitus varus/valgus"],
["Supracondylar (anterior)", "Children", "Fall on extended elbow", "More extended elbow, forward prominence", "Rare; same as above"],
["T/Y-shaped fracture", "Adults", "Fall on point of elbow", "Broadened lower humerus", "Stiffness, malunion"],
["Lateral condylar epiphysis", "Children", "Varus force on extended elbow", "Lateral swelling", "Cubitus valgus → tardy ulnar palsy"],
["Medial epicondyle", "Children", "Elbow dislocation / avulsion", "Medial tenderness", "Ulnar nerve injury"],
["Capitulum", "Adults", "Fall on outstretched hand", "Lateral elbow pain, lateral film 'half-moon'", "Stiffness, AVN"],
]
story.append(make_table(summary_data, col_widths=[3.5*cm, 2.5*cm, 3.5*cm, 4*cm, 4*cm]))
story.append(spacer(0.3))
# FOOTER NOTE
story.append(hr())
story.append(Paragraph("S Das — A Manual on Clinical Surgery, 13th Edition", note_style))
story.append(Paragraph("Compiled for academic use", note_style))
# BUILD PDF
doc.build(story)
print(f"PDF created: {OUTPUT}")
python /home/daytona/workspace/humerus-fracture/generate_pdf.py
ls -lh /home/daytona/workspace/humerus-fracture/Fracture_of_Humerus_S_Das.pdf
Fracture of Humerus S Das
PDF Document · PDF