A 10 yr old boy with trauma to right elbow 2 yrs back now has gun stock deformity with 30° flexion deformity with further flexion possible supination pronation complete with increased internal rotation at shoulder by Yamamoto test with disturbed 3 point bony prominence relationship (medial limb short) differentials and treatment
"cubitus varus" AND osteotomy
pediatric cubitus varus deformity treatment corrective osteotomy late complication supracondylar fracture
cubitus varus gunstock deformity child elbow clinical photograph radiograph
PMID: 38375863
https://pmc.ncbi.nlm.nih.gov/articles/PMC5427392
Make a quick-reference PDF for cubitus varus evaluation
~/
cubitus varus evaluation radiographs humerus elbow wrist angle pediatric corrective osteotomy
"cubitus varus" AND osteotomy
mkdir -p "/tmp/workspace/cubitus-varus-quick-reference/output" python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics from reportlab.lib.colors import HexColor from pathlib import Path out = Path('/tmp/workspace/cubitus-varus-quick-reference/output/Cubitus_Varus_Evaluation_Quick_Reference.pdf') NAVY=HexColor('#123B5D'); BLUE=HexColor('#DCECF7'); TEAL=HexColor('#0D6B72'); RED=HexColor('#A52A2A'); PALE=HexColor('#F5F8FA'); GOLD=HexColor('#FCE9B5'); GRAY=HexColor('#555555') styles=getSampleStyleSheet() styles.add(ParagraphStyle(name='Title2', parent=styles['Title'], fontName='Helvetica-Bold', fontSize=19, leading=23, textColor=NAVY, alignment=TA_CENTER, spaceAfter=4)) styles.add(ParagraphStyle(name='Sub', parent=styles['Normal'], fontName='Helvetica', fontSize=8.5, leading=11, textColor=GRAY, alignment=TA_CENTER, spaceAfter=10)) styles.add(ParagraphStyle(name='H', parent=styles['Heading2'], fontName='Helvetica-Bold', fontSize=10.5, leading=13, textColor=colors.white, backColor=NAVY, borderPadding=(4,6,4,6), spaceBefore=7, spaceAfter=5)) styles.add(ParagraphStyle(name='B', parent=styles['BodyText'], fontName='Helvetica', fontSize=8.25, leading=10.4, spaceAfter=2)) styles.add(ParagraphStyle(name='Small', parent=styles['BodyText'], fontName='Helvetica', fontSize=7.35, leading=9.1, textColor=GRAY)) styles.add(ParagraphStyle(name='Box', parent=styles['BodyText'], fontName='Helvetica-Bold', fontSize=8.5, leading=11, textColor=NAVY)) def P(t, style='B'): return Paragraph(t, styles[style]) def bullet(t): return P('• '+t) def section(title, items): return [P(title,'H')] + items doc=SimpleDocTemplate(str(out),pagesize=A4,rightMargin=1.15*cm,leftMargin=1.15*cm,topMargin=0.85*cm,bottomMargin=0.8*cm) story=[] story += [P('CUBITUS VARUS: EVALUATION QUICK REFERENCE','Title2'), P('Child with post-traumatic gun-stock deformity | Clinical assessment, imaging, red flags, and planning checklist','Sub')] alert=Table([[P('<b>Working definition:</b> Decreased or reversed carrying angle after elbow trauma, usually from distal-humeral malunion. It is commonly a multiplanar deformity: coronal varus + internal rotation + sagittal-plane angulation.','Box')]], colWidths=[18.7*cm]) alert.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),BLUE),('BOX',(0,0),(-1,-1),0.6,TEAL),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)])) story += [alert, Spacer(1,5)] story += section('1. HISTORY', [ bullet('<b>Index injury:</b> age, side, mechanism, initial diagnosis, treatment, reduction/pinning, complications, and old radiographs.'), bullet('<b>Course:</b> onset and progression of deformity; change with growth; prior physiotherapy or surgery.'), bullet('<b>Symptoms:</b> pain, weakness, clicking/snapping, recurrent instability, limitation in sport/ADLs, paraesthesia in ulnar distribution.'), bullet('<b>Patient goal:</b> appearance, function, pain, instability, or neurological symptoms.'), ]) story += section('2. EXAMINATION: DO BOTH SIDES', [ bullet('<b>Inspect standing, arms fully extended and forearms supinated:</b> compare carrying angle, arm-forearm axis, scars, swelling, muscle wasting, and lateral condylar prominence.'), bullet('<b>Measure:</b> carrying angle with elbow extended and supinated. It normally disappears with flexion or pronation. Record side-to-side difference.'), bullet('<b>ROM:</b> flexion-extension arc; pronation-supination; document fixed flexion/extension deformity.'), bullet('<b>Rotation:</b> assess distal-humeral internal rotation. A positive Yamamoto test, with increased apparent shoulder internal rotation, supports internal-rotation malunion.'), bullet('<b>Palpate:</b> medial/lateral epicondyle, olecranon, joint line, distal humerus; look for snapping medial triceps or ulnar nerve.'), bullet('<b>Neurovascular:</b> ulnar nerve motor/sensation, median/AIN and radial/PIN function, pulses and perfusion.'), bullet('<b>Stability:</b> assess lateral collateral ligament complex / posterolateral rotatory instability if pain, apprehension, or giving way.'), ]) red=Table([[P('<b>Key discriminator:</b> In an uncomplicated extra-articular supracondylar malunion, the olecranon and epicondylar three-point relationship should be preserved. A disturbed triangle, shortened medial limb, or joint incongruity suggests intra-articular injury, especially medial condyle malunion/nonunion, or old fracture-dislocation.','B')]], colWidths=[18.7*cm]) red.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),HexColor('#FBE5E5')),('BOX',(0,0),(-1,-1),0.6,RED),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)])) story += [red] story += section('3. DIFFERENTIAL DIAGNOSIS', [ bullet('<b>Most likely:</b> malunited extension-type supracondylar humeral fracture.'), bullet('<b>Must exclude when bony triangle is abnormal:</b> medial condyle fracture malunion/nonunion; old elbow fracture-dislocation.'), bullet('<b>Other causes:</b> lateral condyle malunion, distal-humeral physeal arrest, trochlear osteonecrosis/fishtail deformity, congenital cubitus varus, pseudo-varus from altered distal-humeral width.'), ]) story += section('4. IMAGING', [ bullet('<b>First line:</b> bilateral AP and true lateral elbow radiographs. Obtain full extension AP where tolerated; compare with contralateral side.'), bullet('<b>On AP:</b> carrying angle, humerus-elbow-wrist angle, Baumann (humerocapitellar) angle, distal-humeral width, epicondylar symmetry, union/malunion, and joint congruity.'), bullet('<b>On lateral:</b> flexion/extension component, anterior humeral line, radiocapitellar alignment, ulnohumeral congruity, osteophytes/heterotopic bone.'), bullet('<b>CT with 3D reconstruction:</b> for multiplanar deformity, doubtful condylar union, altered bony triangle, intra-articular malunion, or preoperative planning.'), bullet('<b>MRI/US selectively:</b> cartilage/physeal pathology, ulnar nerve or snapping triceps, and suspected ligament injury.'), ]) story += section('5. DOCUMENT THE DEFORMITY', [ bullet('Coronal: varus/valgus and side-to-side carrying-angle or HEW-angle difference.'), bullet('Sagittal: fixed flexion or extension deformity; flexion-extension arc.'), bullet('Axial: internal/external rotation component, including Yamamoto-test finding.'), bullet('Joint status: congruent vs incongruent; condylar union; physeal/trochlear morphology.'), bullet('Function: pain, instability, nerve signs, cosmesis, limitation of daily activity/sport.'), ]) story += section('6. MANAGEMENT TRIAGE', [ bullet('<b>Observe/reassure:</b> mild stable deformity, congruent painless elbow, full/acceptable function, no neurological or instability symptoms. Counsel that established bony deformity has limited spontaneous correction.'), bullet('<b>Refer for pediatric upper-limb orthopedic assessment:</b> meaningful cosmetic concern, loss of motion, pain, instability, progressive deformity, neurological symptoms, or suspected intra-articular malunion/nonunion.'), bullet('<b>Corrective osteotomy:</b> for symptomatic or unacceptable extra-articular malunion. Plan correction in all relevant planes and restore alignment close to the opposite side.'), bullet('<b>Intra-articular/medial-condyle pathology:</b> requires individualized reconstruction, possible fixation/bone grafting plus osteotomy, and ulnar nerve evaluation. Do not treat as a simple cosmetic osteotomy without defining the anatomy.'), ]) story += section('7. PREOPERATIVE CHECKLIST', [ bullet('☐ Bilateral standardized radiographs reviewed ☐ deformity measured in 3 planes ☐ contralateral template available'), bullet('☐ CT-3D if anatomy/rotation/articular congruity uncertain ☐ nerve and instability assessment documented'), bullet('☐ Family goals, scar/lateral-prominence risks, residual deformity, stiffness, infection, nerve injury, and fixation plan discussed.'), ]) story += [Spacer(1,4), P('<b>Sources:</b> S Das, <i>A Manual on Clinical Surgery</i>, 13th ed., pp. 963-74. Campbell\'s <i>Operative Orthopaedics</i>, 15th ed., pp. 8357-60. Hoffman et al., systematic review of operative techniques for pediatric cubitus varus, PMID 38375863 (2024). This aid supports, but does not replace, specialist assessment and imaging review.','Small')] doc.build(story) print(out) PY
python - <<'PY' from pathlib import Path from pypdf import PdfReader p=Path('/tmp/workspace/cubitus-varus-quick-reference/output/Cubitus_Varus_Evaluation_Quick_Reference.pdf') print('exists=',p.exists(),'bytes=',p.stat().st_size if p.exists() else 0) r=PdfReader(str(p)) print('pages=',len(r.pages)) for i,page in enumerate(r.pages,1): text=page.extract_text() or '' print(i, len(text), text[:90].replace('\n',' | ')) PY
mkdir -p "/tmp/workspace/cubitus-varus-quick-reference/output" && python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER from reportlab.lib.units import cm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle from reportlab.lib.colors import HexColor from pathlib import Path out=Path('/tmp/workspace/cubitus-varus-quick-reference/output/Cubitus_Varus_Evaluation_Quick_Reference.pdf') NAVY=HexColor('#123B5D'); BLUE=HexColor('#DCECF7'); TEAL=HexColor('#0D6B72'); RED=HexColor('#A52A2A'); GRAY=HexColor('#555555') s=getSampleStyleSheet() s.add(ParagraphStyle(name='Title2',parent=s['Title'],fontName='Helvetica-Bold',fontSize=19,leading=23,textColor=NAVY,alignment=TA_CENTER,spaceAfter=4)) s.add(ParagraphStyle(name='Sub',parent=s['Normal'],fontName='Helvetica',fontSize=8.5,leading=11,textColor=GRAY,alignment=TA_CENTER,spaceAfter=10)) s.add(ParagraphStyle(name='H',parent=s['Heading2'],fontName='Helvetica-Bold',fontSize=10.5,leading=13,textColor=colors.white,backColor=NAVY,borderPadding=(4,6,4,6),spaceBefore=7,spaceAfter=5)) s.add(ParagraphStyle(name='B',parent=s['BodyText'],fontName='Helvetica',fontSize=8.25,leading=10.4,spaceAfter=2)) s.add(ParagraphStyle(name='Small',parent=s['BodyText'],fontName='Helvetica',fontSize=7.35,leading=9.1,textColor=GRAY)) s.add(ParagraphStyle(name='Box',parent=s['BodyText'],fontName='Helvetica-Bold',fontSize=8.5,leading=11,textColor=NAVY)) def P(t,style='B'): return Paragraph(t,s[style]) def bullet(t): return P('• '+t) def sec(t, rows): return [P(t,'H'),*rows] story=[P('CUBITUS VARUS: EVALUATION QUICK REFERENCE','Title2'),P('Child with post-traumatic gun-stock deformity | Clinical assessment, imaging, red flags, and planning checklist','Sub')] def callout(text,bg,border): t=Table([[P(text,'Box')]],colWidths=[18.7*cm]);t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),bg),('BOX',(0,0),(-1,-1),0.6,border),('LEFTPADDING',(0,0),(-1,-1),8),('RIGHTPADDING',(0,0),(-1,-1),8),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)]));return t story += [callout('<b>Working definition:</b> Decreased or reversed carrying angle after elbow trauma, usually from distal-humeral malunion. It is commonly a multiplanar deformity: coronal varus + internal rotation + sagittal-plane angulation.',BLUE,TEAL),Spacer(1,5)] story += sec('1. HISTORY',[bullet('<b>Index injury:</b> age, side, mechanism, initial diagnosis, treatment, reduction/pinning, complications, and old radiographs.'),bullet('<b>Course:</b> onset and progression of deformity; change with growth; prior physiotherapy or surgery.'),bullet('<b>Symptoms:</b> pain, weakness, clicking/snapping, recurrent instability, limitation in sport/ADLs, paraesthesia in ulnar distribution.'),bullet('<b>Patient goal:</b> appearance, function, pain, instability, or neurological symptoms.')]) story += sec('2. EXAMINATION: DO BOTH SIDES',[bullet('<b>Inspect standing, arms fully extended and forearms supinated:</b> compare carrying angle, arm-forearm axis, scars, swelling, muscle wasting, and lateral condylar prominence.'),bullet('<b>Measure:</b> carrying angle with elbow extended and supinated. Record side-to-side difference.'),bullet('<b>ROM:</b> flexion-extension arc; pronation-supination; document fixed flexion/extension deformity.'),bullet('<b>Rotation:</b> assess distal-humeral internal rotation. A positive Yamamoto test, with increased apparent shoulder internal rotation, supports internal-rotation malunion.'),bullet('<b>Palpate:</b> medial/lateral epicondyle, olecranon, joint line, distal humerus; look for snapping medial triceps or ulnar nerve.'),bullet('<b>Neurovascular and stability:</b> ulnar, median/AIN, radial/PIN function; pulses; assess lateral collateral ligament/posterolateral rotatory instability when indicated.')]) story += [callout('<b>Key discriminator:</b> In an uncomplicated extra-articular supracondylar malunion, the olecranon and epicondylar three-point relationship should be preserved. A disturbed triangle, shortened medial limb, or joint incongruity suggests intra-articular injury, especially medial condyle malunion/nonunion, or old fracture-dislocation.',' #FBE5E5'.strip(),RED)] story += sec('3. DIFFERENTIAL DIAGNOSIS',[bullet('<b>Most likely:</b> malunited extension-type supracondylar humeral fracture.'),bullet('<b>Must exclude when bony triangle is abnormal:</b> medial condyle fracture malunion/nonunion; old elbow fracture-dislocation.'),bullet('<b>Other causes:</b> lateral condyle malunion, distal-humeral physeal arrest, trochlear osteonecrosis/fishtail deformity, congenital cubitus varus, pseudo-varus from altered distal-humeral width.')]) story += sec('4. IMAGING',[bullet('<b>First line:</b> bilateral AP and true lateral elbow radiographs. Obtain full-extension AP where tolerated; compare with the contralateral side.'),bullet('<b>AP:</b> carrying angle, humerus-elbow-wrist angle, Baumann angle, distal-humeral width, epicondylar symmetry, union/malunion, and joint congruity.'),bullet('<b>Lateral:</b> flexion/extension component, anterior humeral line, radiocapitellar alignment, ulnohumeral congruity, osteophytes/heterotopic bone.'),bullet('<b>CT with 3D reconstruction:</b> multiplanar deformity, doubtful condylar union, altered bony triangle, intra-articular malunion, or preoperative planning.'),bullet('<b>MRI/US selectively:</b> cartilage/physeal pathology, ulnar nerve or snapping triceps, suspected ligament injury.')]) story += sec('5. DOCUMENT THE DEFORMITY',[bullet('Coronal: varus/valgus and side-to-side carrying-angle or HEW-angle difference.'),bullet('Sagittal: fixed flexion or extension deformity; flexion-extension arc.'),bullet('Axial: internal/external rotation component, including Yamamoto-test finding.'),bullet('Joint status: congruent vs incongruent; condylar union; physeal/trochlear morphology.'),bullet('Function: pain, instability, nerve signs, cosmesis, activity/sport limitation.')]) story += sec('6. MANAGEMENT TRIAGE',[bullet('<b>Observe/reassure:</b> mild stable deformity, congruent painless elbow, acceptable function, no neurological or instability symptoms.'),bullet('<b>Refer for pediatric upper-limb orthopedic assessment:</b> meaningful cosmetic concern, loss of motion, pain, instability, progressive deformity, neurological symptoms, or suspected intra-articular malunion/nonunion.'),bullet('<b>Corrective osteotomy:</b> symptomatic or unacceptable extra-articular malunion. Plan correction in all relevant planes and restore alignment close to the opposite side.'),bullet('<b>Intra-articular/medial-condyle pathology:</b> individualized reconstruction, possible fixation/bone grafting plus osteotomy, and ulnar nerve evaluation. Do not treat as a simple cosmetic osteotomy without defining anatomy.')]) story += sec('7. PREOPERATIVE CHECKLIST',[bullet('☐ Bilateral standardized radiographs reviewed ☐ deformity measured in 3 planes ☐ contralateral template available'),bullet('☐ CT-3D if anatomy/rotation/articular congruity uncertain ☐ nerve and instability assessment documented'),bullet('☐ Family goals, scar/lateral-prominence risks, residual deformity, stiffness, infection, nerve injury, and fixation plan discussed.')]) story += [Spacer(1,4),P('<b>Sources:</b> S Das, <i>A Manual on Clinical Surgery</i>, 13th ed., pp. 963-74. Campbell\'s <i>Operative Orthopaedics</i>, 15th ed., pp. 8357-60. Hoffman et al., systematic review of operative techniques for pediatric cubitus varus, PMID 38375863 (2024). Educational aid only: supports, but does not replace, specialist assessment and imaging review.','Small')] doc=SimpleDocTemplate(str(out),pagesize=A4,rightMargin=1.15*cm,leftMargin=1.15*cm,topMargin=.85*cm,bottomMargin=.8*cm) doc.build(story) print(out) PY python - <<'PY' from pathlib import Path from pypdf import PdfReader p=Path('/tmp/workspace/cubitus-varus-quick-reference/output/Cubitus_Varus_Evaluation_Quick_Reference.pdf') print('exists=',p.exists(),'bytes=',p.stat().st_size) r=PdfReader(str(p)); print('pages=',len(r.pages),'chars=',sum(len(pg.extract_text() or '') for pg in r.pages)) PY
Cubitus Varus Evaluation Quick Reference
PDF Document · PDF
Unilateral talipes equino cavovarus deformity with planter upgoing with delayed milestones but normal IQ
"cerebral palsy" AND equinovarus
unilateral equinocavovarus upgoing plantar delayed milestones normal intelligence spastic hemiplegic cerebral palsy evaluation
spastic hemiplegic cerebral palsy equinovarus foot child clinical illustration
https://www.ncbi.nlm.nih.gov/books/NBK533221
PMID: 40540630