Treatment for equino cavovarus deformity of foot
cavovarus AND treatment
cavovarus foot treatment review adult pediatric orthopaedic
| Deformity component | Common procedure |
|---|---|
| Plantar fascial contracture/cavus | Plantar fascia release, sometimes intrinsic release |
| Plantar-flexed first ray | Dorsiflexion osteotomy of the first metatarsal |
| Persistent hindfoot varus | Lateralizing calcaneal slide or lateral closing-wedge calcaneal osteotomy |
| Peroneus longus overpowering peroneus brevis | Peroneus longus-to-brevis tendon transfer |
| Dorsiflexor weakness/foot drop | Tendon transfer selected according to residual muscle strength, commonly posterior tibial tendon transfer in selected patients |
| Equinus | Gastrocnemius recession if isolated gastrocnemius tightness; Achilles tendon lengthening if true Achilles contracture |
| Flexible claw hallux/toes | Tendon balancing; Jones procedure for a flexible claw hallux in selected cases |
How is flexible versus rigid cavovarus deformity assessed?
cavovarus foot assessment
cavovarus foot clinical assessment Coleman block test flexible rigid hindfoot
| Finding | Meaning |
|---|---|
| Heel varus corrects to neutral or slight valgus | Flexible, forefoot-driven hindfoot varus. The plantar-flexed first ray creates a tripod effect that pushes the heel into varus. |
| Heel varus partly corrects | Mixed deformity: a forefoot contribution plus some hindfoot stiffness. |
| Heel remains in varus | Rigid or hindfoot-driven varus. The hindfoot itself needs correction or there may be a structural cause such as subtalar pathology. |
.
How is flexible versus rigid cavovarus deformity assessed?
Create a quick-reference PDF on cavovarus assessment
cavovarus foot assessment Coleman block test review
~/
mkdir -p "/tmp/workspace/cavovarus-assessment-pdf/src" "/tmp/workspace/cavovarus-assessment-pdf/output" && python - <<'PY' from reportlab.lib import colors from reportlab.lib.enums import TA_CENTER from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import mm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether, PageBreak from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase import pdfmetrics from reportlab.lib.colors import HexColor out='/tmp/workspace/cavovarus-assessment-pdf/output/Cavovarus_Assessment_Quick_Reference.pdf' PAGE_W, PAGE_H=A4 navy=HexColor('#12324A'); teal=HexColor('#007C83'); pale=HexColor('#EAF4F4'); light=HexColor('#F4F7F9'); amber=HexColor('#FFF4D8'); red=HexColor('#8B2E2E'); gray=HexColor('#58636B') styles=getSampleStyleSheet() styles.add(ParagraphStyle(name='TitleQR', parent=styles['Title'], fontName='Helvetica-Bold', fontSize=21, leading=25, textColor=navy, spaceAfter=4)) styles.add(ParagraphStyle(name='SubQR', parent=styles['Normal'], fontName='Helvetica', fontSize=9.5, leading=13, textColor=gray, spaceAfter=10)) styles.add(ParagraphStyle(name='HeadQR', parent=styles['Heading2'], fontName='Helvetica-Bold', fontSize=12, leading=14, textColor=colors.white, backColor=teal, borderPadding=(5,6,4), spaceBefore=8, spaceAfter=6)) styles.add(ParagraphStyle(name='BodyQR', parent=styles['Normal'], fontName='Helvetica', fontSize=8.5, leading=11.2, textColor=HexColor('#1F2D36'), spaceAfter=3)) styles.add(ParagraphStyle(name='SmallQR', parent=styles['Normal'], fontName='Helvetica', fontSize=7.3, leading=9.2, textColor=gray)) styles.add(ParagraphStyle(name='CellQR', parent=styles['Normal'], fontName='Helvetica', fontSize=8, leading=10, textColor=HexColor('#1F2D36'))) styles.add(ParagraphStyle(name='CellHeadQR', parent=styles['Normal'], fontName='Helvetica-Bold', fontSize=8, leading=10, textColor=colors.white, alignment=TA_CENTER)) def P(t,style='BodyQR'): return Paragraph(t, styles[style]) def bullet(t): return P('• '+t) def footer(canvas, doc): canvas.saveState() canvas.setStrokeColor(HexColor('#C7D7DC')); canvas.line(16*mm, 13*mm, PAGE_W-16*mm, 13*mm) canvas.setFont('Helvetica', 7.2); canvas.setFillColor(gray) canvas.drawString(16*mm, 8.5*mm, 'Cavovarus assessment quick reference | Educational use only') canvas.drawRightString(PAGE_W-16*mm, 8.5*mm, f'Page {doc.page}') canvas.restoreState() doc=SimpleDocTemplate(out,pagesize=A4,rightMargin=16*mm,leftMargin=16*mm,topMargin=14*mm,bottomMargin=18*mm,title='Cavovarus Assessment Quick Reference',author='Orris') story=[] story += [P('Cavovarus Foot Assessment','TitleQR'), P('Quick-reference guide: determine flexibility, localize the driver, and identify features that require further work-up.','SubQR')] # Definition/cycle box=Table([[P('<b>Core assessment question</b><br/>Is the heel varus <b>forefoot-driven and flexible</b>, or is there a <b>fixed hindfoot component</b>?','BodyQR'), P('<b>Do not assess the heel alone.</b><br/>Evaluate the cavus, plantar-flexed first ray, hindfoot, equinus, toe deformity, muscle balance, sensation, and alignment under weight-bearing.','BodyQR')]], colWidths=[87*mm,87*mm]) box.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),pale),('BOX',(0,0),(-1,-1),0.5,HexColor('#9FC6C8')),('INNERGRID',(0,0),(-1,-1),0.4,HexColor('#BFDADD')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),7),('RIGHTPADDING',(0,0),(-1,-1),7),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)])) story += [box, Spacer(1,7), P('1. Standing and gait examination','HeadQR')] for x in [ '<b>Inspect standing alignment:</b> high medial arch, hindfoot varus viewed from behind, forefoot adduction/pronation, plantar-flexed first ray, claw toes, and callosities (often lateral border or first/fifth metatarsal heads).', '<b>Observe gait and function:</b> recurrent ankle sprains or instability, lateral overload, foot drop/steppage gait, ability to heel walk and toe walk.', '<b>Compare both sides:</b> asymmetry, progression, skin integrity, previous scars, footwear wear pattern, and limb rotation.' ]: story.append(bullet(x)) story += [P('2. Suppleness and component examination','HeadQR')] t=Table([[P('Component','CellHeadQR'),P('How to assess','CellHeadQR'),P('What to record','CellHeadQR')], [P('<b>Hindfoot</b>','CellQR'),P('Manually bring calcaneus from varus toward neutral/valgus with the subtalar joint controlled.','CellQR'),P('Fully correctable, partially correctable, or fixed.','CellQR')], [P('<b>Forefoot / first ray</b>','CellQR'),P('Assess whether first ray is plantar-flexed and whether forefoot pronation/cavus can be passively corrected.','CellQR'),P('Flexible versus fixed plantar-flexed first ray; claw toes.','CellQR')], [P('<b>Equinus</b>','CellQR'),P('Measure ankle dorsiflexion with hindfoot held neutral, knee extended and then flexed (Silfverskiöld test).','CellQR'),P('Gastrocnemius tightness if dorsiflexion improves with knee flexion; persistent restriction suggests Achilles/ankle contracture.','CellQR')], [P('<b>Neuromuscular</b>','CellQR'),P('Test dorsiflexors, evertors, invertors, plantarflexors; assess sensation, reflexes, and balance.','CellQR'),P('Muscle imbalance, sensory loss, foot drop, areflexia, or neuropathy signs.','CellQR')]], colWidths=[29*mm,72*mm,73*mm], repeatRows=1) t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('BACKGROUND',(0,1),(-1,-1),light),('GRID',(0,0),(-1,-1),0.35,HexColor('#B9C8CF')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)])) story += [t, Spacer(1,7), P('3. Coleman block test: key test for hindfoot flexibility','HeadQR')] story += [bullet('<b>Set-up:</b> with the patient weight-bearing, place a block, commonly about 1 inch high, under the heel and lateral border of the foot. The medial forefoot/first ray hangs free off the block.'), bullet('<b>Purpose:</b> removes the plantar-flexed first ray “tripod” effect and tests whether heel varus is secondary to the forefoot or intrinsic to the hindfoot.')] res=Table([[P('Result','CellHeadQR'),P('Interpretation','CellHeadQR'),P('Implication','CellHeadQR')], [P('<b>Heel corrects to neutral or slight valgus</b>','CellQR'),P('<b>Flexible, forefoot-driven hindfoot varus.</b> The plantar-flexed first ray is a principal driver.','CellQR'),P('Focus correction planning on the forefoot/first ray and muscle balance; confirm all components.','CellQR')], [P('<b>Partial correction</b>','CellQR'),P('<b>Mixed deformity.</b> There is a forefoot contribution plus residual hindfoot stiffness or deformity.','CellQR'),P('Plan may need both forefoot and hindfoot correction.','CellQR')], [P('<b>Heel remains in varus</b>','CellQR'),P('<b>Rigid or hindfoot-driven varus.</b> Evaluate for subtalar stiffness/arthritis, coalition, prior fracture, spasm, or fixed structural deformity.','CellQR'),P('A hindfoot procedure may be required if operative correction is indicated.','CellQR')]],colWidths=[47*mm,74*mm,53*mm],repeatRows=1) res.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('BACKGROUND',(0,1),(-1,-1),colors.white),('GRID',(0,0),(-1,-1),0.35,HexColor('#B9C8CF')),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)])) story += [res, Spacer(1,7), P('4. Imaging and additional work-up','HeadQR')] for x in [ '<b>Weight-bearing foot radiographs:</b> AP, lateral, and hindfoot alignment views. Document cavus (for example, Meary angle on lateral view), forefoot adduction, hindfoot varus, joint congruity, and arthritis.', '<b>Coleman-block radiographs:</b> can corroborate clinical correction of the hindfoot.', '<b>Consider weight-bearing CT:</b> when 3-dimensional alignment, subtalar pathology, coalition, or operative planning is unclear.', '<b>Neurologic assessment:</b> particularly important in bilateral or progressive cavovarus. Consider neurology/genetics evaluation for suspected Charcot-Marie-Tooth disease.' ]: story.append(bullet(x)) warn=Table([[P('<b>Red flags / prompt further evaluation</b><br/>New or progressive <b>unilateral</b> cavus, neurologic deficit or sensory loss, ulceration/infection, rapidly progressive deformity, severe pain, or suspected spinal/central neurologic disease.','BodyQR')]],colWidths=[174*mm]) warn.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),amber),('BOX',(0,0),(-1,-1),0.5,HexColor('#DBB66E')),('LEFTPADDING',(0,0),(-1,-1),7),('RIGHTPADDING',(0,0),(-1,-1),7),('TOPPADDING',(0,0),(-1,-1),6),('BOTTOMPADDING',(0,0),(-1,-1),6)])) story += [Spacer(1,5),warn,Spacer(1,7),P('Document in one line','HeadQR'),P('<b>Example:</b> “Right cavovarus with plantar-flexed first ray and flexible claw toes; heel varus corrects to neutral on Coleman block test, consistent with flexible forefoot-driven hindfoot varus. Ankle dorsiflexion improves with knee flexion. Peroneal weakness and reduced vibration sensation present.”','BodyQR'),Spacer(1,6),P('<b>Sources:</b> Campbell’s Operative Orthopaedics, 15th ed., Clinical Evaluation and Radiographic Evaluation of cavovarus foot, p. 1740. Miller’s Review of Orthopaedics, 9th ed., Pes Cavus and Coleman block assessment, p. 147. Foran IM et al. Impact of Coleman Block Test on Adult Hindfoot Alignment. Foot & Ankle Orthopaedics. 2020.','SmallQR'),P('This is an educational quick reference, not a substitute for examination, imaging interpretation, or specialist clinical judgment.','SmallQR')] doc.build(story,onFirstPage=footer,onLaterPages=footer) print(out) PY python - <<'PY' from pypdf import PdfReader p='/tmp/workspace/cavovarus-assessment-pdf/output/Cavovarus_Assessment_Quick_Reference.pdf' r=PdfReader(p) print('pages',len(r.pages),'bytes',__import__('os').path.getsize(p)) print(r.pages[0].extract_text()[:250]) PY
Cavovarus Assessment Quick Reference
PDF Document · PDF
Treatment for neurogenic clubfoot age wise
myelomeningocele clubfoot treatment
myelomeningocele neurogenic clubfoot treatment Ponseti age surgical management review
PMID: 39365806
https://pmc.ncbi.nlm.nih.gov/articles/PMC12777138
| Age / presentation | Main treatment | Key points |
|---|---|---|
| Newborn to 3 months | Start Ponseti serial manipulation and long-leg casting early | Correct cavus, adduction, varus, then equinus. Neurogenic feet are stiffer than idiopathic clubfeet and often need more casts. Perform percutaneous Achilles tenotomy when residual equinus persists. |
| After initial correction: infancy to walking age | Foot-abduction brace or AFO, physiotherapy, close surveillance | Bracing must be individualized for sensory loss and skin vulnerability. Monitor for pressure sores and recurrence. Tendon imbalance persists, so recurrence is common. |
| Infant or young child with residual/recurrent but still flexible deformity | Repeat Ponseti casting, repeat Achilles tenotomy or limited posterior release if needed | Recasting should generally be attempted before extensive surgery when the foot remains reducible. Identify and address brace nonadherence, progressive spasticity, tethered cord, and muscle imbalance. |
| Toddler to early school age with resistant deformity | Limited soft-tissue surgery plus muscle balancing, selected tendon lengthening or tendon excision/transfer | Surgery is for an unbraceable, painful, progressive, or non-plantigrade foot after casting. In myelomeningocele, tendon balancing or removal of deforming forces may be more reliable than tendon transfer alone. Avoid excessive releases where possible because a stiff, insensate foot is vulnerable to skin breakdown. |
| School-age child with fixed structural deformity | Osteotomy-based, joint-preserving reconstruction | Correct residual varus, cavus, adduction, and equinus using targeted soft-tissue procedures and osteotomies. Aim to preserve motion and obtain a braceable foot. |
| Adolescent with severe rigid, recurrent, or neglected clubfoot | Major joint-preserving reconstruction when feasible; salvage procedures only if necessary | Consider multi-level osteotomy and soft-tissue balancing. Arthrodesis is generally avoided in insensate myelomeningocele feet because of ulceration and Charcot-type joint risk. Talectomy or fusion may be rare salvage options for a severely rigid, unbraceable deformity. |
| Any age: ulceration, infection, rapidly progressive deformity, loss of function | Urgent multidisciplinary review | Evaluate skin, vascular status, infection/osteomyelitis, orthotic fit, neurologic progression or tethered cord, and caregiver ability to maintain treatment. |
Sequestrum when formed and when it is visible on xray
chronic osteomyelitis sequestrum radiograph
sequestrum visible radiograph 2 3 weeks osteomyelitis
Sequestrum forms by about 2 weeks and becomes apparent on radiograph by about 3-4 weeks.
Cubitus valgus examination cause management and treatment
cubitus valgus AND osteotomy
cubitus valgus examination causes management corrective osteotomy ulnar neuropathy
Post polio residual palsy deformity in foot examination and treatment with
Post polio residual palsy deformites in foot examination and treatment with age
| Deformity | Typical muscle imbalance |
|---|---|
| Equinus | Weak dorsiflexors, with functioning gastrocnemius-soleus |
| Calcaneus | Weak plantarflexors, with relatively functioning dorsiflexors |
| Equinovarus | Weak dorsiflexors and evertors; relatively strong tendo-Achilles, tibialis posterior, and often tibialis anterior imbalance |
| Cavovarus | Weak intrinsic muscles/peronei with relative overaction of tibialis posterior and peroneus longus |
| Planovalgus / calcaneovalgus | Weak tibialis posterior and plantarflexors with relative peroneal/dorsiflexor pull |
| Claw toes | Intrinsic muscle weakness with long flexor and extensor overactivity |
| Motion | Main muscles to test |
|---|---|
| Dorsiflexion | Tibialis anterior, extensor hallucis longus, extensor digitorum longus |
| Plantarflexion | Gastrocnemius, soleus |
| Inversion | Tibialis posterior, tibialis anterior |
| Eversion | Peroneus longus and brevis |
| Toe flexion/extension | Long flexors and extensors |
| Intrinsic function | Interossei and lumbricals |
| Deformity | Nonoperative | Operative options if indicated |
|---|---|---|
| Equinus | Stretching, serial cast, AFO | Gastrocnemius recession/Achilles lengthening, tendon balancing |
| Foot drop | AFO, footwear modification | Tendon transfer if donor strength is adequate |
| Equinovarus | Cast, AFO | Soft-tissue release, tendon transfer, calcaneal/foot osteotomy if fixed |
| Cavovarus | Orthosis, lateral posting, stretching | Plantar fascia release, tendon transfer, first-ray and/or calcaneal osteotomy |
| Calcaneus/calcaneovalgus | AFO to prevent excessive dorsiflexion | Tendon balancing, tenodesis, selected osteotomy |
| Rigid painful deformity | Custom brace/shoe | Osteotomy or, as salvage in mature patients, arthrodesis |
Detailed treatment
poliomyelitis foot deformity treatment
post polio residual paralysis foot deformity treatment tendon transfer osteotomy arthrodesis
https://posna.org/physician-education/study-guide/poliomyeli…
| Problem | Orthotic treatment |
|---|---|
| Foot drop / weak dorsiflexors | Posterior leaf-spring AFO or solid AFO |
| Equinus or ankle instability | Solid AFO or articulated AFO with plantarflexion stop |
| Calcaneus / weak plantarflexors | AFO designed to prevent excessive dorsiflexion, often with a plantarflexion stop |
| Varus or valgus hindfoot | Custom AFO with appropriate corrective posting |
| Mild cavus / callosity | Accommodative insole, metatarsal pad, lateral or medial posting as indicated |
| Limb shortening | Shoe raise or sole lift |
| Severe weakness involving knee and ankle | KAFO or caliper, sometimes floor-reaction design |
In post-polio residual paralysis, foot deformities are treated according to age, flexibility, muscle charting, and ambulatory requirement. In young children, treatment consists of stretching, serial casting, splintage, and limited soft-tissue release. In flexible deformities of older children, tendon lengthening, release, and carefully selected tendon transfers are used after correction of contracture. In fixed deformity, joint-preserving osteotomy is preferred. Triple arthrodesis or other fusion is reserved for severe rigid, painful, unstable, or unbraceable deformity near skeletal maturity.
Sciatic nerve palsy examination deformites and treatment
sciatic nerve palsy management
sciatic nerve palsy clinical examination foot deformity management tendon transfer
| Function | Muscles | Division |
|---|---|---|
| Knee flexion | Hamstrings: semitendinosus, semimembranosus, biceps femoris long head | Tibial division |
| Knee flexion | Biceps femoris short head | Peroneal division |
| Ankle dorsiflexion | Tibialis anterior | Deep peroneal |
| Great-toe extension | Extensor hallucis longus | Deep peroneal |
| Toe extension | Extensor digitorum longus | Deep peroneal |
| Eversion | Peroneus longus and brevis | Superficial peroneal |
| Plantarflexion | Gastrocnemius and soleus | Tibial |
| Inversion | Tibialis posterior | Tibial |
| Toe flexion | Flexor hallucis longus and flexor digitorum longus | Tibial |
| Intrinsic foot muscles | Interossei, lumbricals, abductor hallucis | Tibial |
| Area | Main nerve |
|---|---|
| Lateral calf and dorsum of foot | Common peroneal division |
| First dorsal web space | Deep peroneal nerve |
| Sole of foot and heel | Tibial division |
| Posterolateral calf | Sural contribution |
| Finding | Sciatic nerve palsy | Common peroneal palsy | L5 radiculopathy |
|---|---|---|---|
| Dorsiflexion | Weak | Weak | Weak |
| Eversion | Weak | Weak | Weak |
| Inversion | May be weak in complete palsy | Usually preserved | Often weak |
| Plantarflexion | Weak in complete palsy | Preserved | Usually preserved or variably weak |
| Hamstrings | May be weak | Preserved | May be weak |
| Sole sensation | Reduced in complete palsy | Preserved | May be altered |
| Ankle reflex | May be lost | Preserved | Often preserved, unless S1 involved |
Sciatic nerve palsy is examined by assessing gait, hamstring function, ankle and toe movements, sensory loss over the dorsum and sole of the foot, ankle jerk, and associated hip/spine pathology. Common deformities include foot drop, equinovarus, cavovarus, calcaneus/calcaneovalgus, and claw toes. Acute compression or laceration requires prompt identification and possible nerve exploration. During recovery, treatment consists of splintage/AFO, physiotherapy, skin protection, and serial EMG. In established palsy, flexible deformity is treated by contracture release and selected tendon transfer where a strong donor exists; fixed deformity requires osteotomy, while severe rigid unbraceable deformity may need arthrodesis.
Hip extension flexion abduction knee flexion extension ankle flexion extension toe flexion extension root values
lower limb myotomes examination
lower limb myotomes hip flexion knee extension ankle dorsiflexion toe extension root values
| Movement | Main muscle(s) | Root value(s) | Key root for clinical testing |
|---|---|---|---|
| Hip flexion | Iliopsoas | L1-L3 | L2 |
| Hip extension | Gluteus maximus, hamstrings | L5-S2 | L5-S1 |
| Hip abduction | Gluteus medius and minimus | L4-S1 | L5 |
| Knee extension | Quadriceps | L2-L4 | L3-L4 |
| Knee flexion | Hamstrings | L5-S2 | S1 |
| Ankle dorsiflexion | Tibialis anterior | L4-L5 | L4 |
| Ankle plantarflexion | Gastrocnemius, soleus | S1-S2 | S1 |
| Great-toe extension | Extensor hallucis longus | L5 | L5 |
| Toe extension | Extensor digitorum longus/brevis | L5-S1 | L5 |
| Great-toe flexion | Flexor hallucis longus/brevis | S1-S2 | S2 |
| Lesser-toe flexion | Flexor digitorum longus/brevis | S1-S2 | S2 |
Skyline view merchants view
patellofemoral radiography Merchant view
Merchant skyline patellofemoral radiographic view technique indications
Different views and their angles
patellar skyline views Merchant Laurin Settegast Hughston angles knee flexion x ray
patellar axial radiography Merchant Laurin
| View | Patient / knee position | Knee flexion | Central-ray angle | Main use |
|---|---|---|---|---|
| Merchant view | Supine, both knees flexed over a dedicated support | 45° | 30° caudad from horizontal toward the patella | Standard bilateral patellofemoral assessment: patellar tilt, subluxation, trochlear morphology, patellofemoral OA |
| Laurin view | Semi-recumbent, knee flexed; detector held above knee | 20° | 30° from horizontal, inferosuperior through patellofemoral joint | Detects subtle patellar tilt, lateral subluxation, and early maltracking because it is taken in relatively low flexion |
| Settegast view | Prone or sitting, knee flexed maximally, often difficult/painful after trauma | About 90-105° | Beam tangential to patellofemoral joint, commonly about 15-20° to the long axis of lower leg, adjusted to flexion | Patellar fracture, particularly vertical fracture; patellofemoral joint assessment |
| Hughston view | Prone, knee flexed around 55°; beam directed from posterior | 55° | About 45° cephalad to lower leg | Patellofemoral articulation and patellar tracking |
| Knutsson view | Usually sitting/semi-recumbent | 30-40° | Beam directed tangentially, generally around 15-20° depending on knee flexion | Patellofemoral alignment and joint space |
| Sunrise / Skyline view | Generic term, not one single standardized technique | Usually 20-45° | Depends on the specific method used | General axial evaluation of patella and trochlea |
Beighton score
Beighton score joint hypermobility
Beighton score 9 points criteria 2017 hypermobile Ehlers Danlos
| Test | Score |
|---|---|
| Passive dorsiflexion of the little finger beyond 90° - right | 1 |
| Passive dorsiflexion of the little finger beyond 90° - left | 1 |
| Passive apposition of the thumb to the flexor aspect of forearm - right | 1 |
| Passive apposition of the thumb to the flexor aspect of forearm - left | 1 |
| Elbow hyperextension beyond 10° - right | 1 |
| Elbow hyperextension beyond 10° - left | 1 |
| Knee hyperextension beyond 10° - right | 1 |
| Knee hyperextension beyond 10° - left | 1 |
| With knees straight, place both palms flat on the floor on forward bending | 1 |
Lateral condyle humerus fracture classification
pediatric lateral condyle humerus fracture classification
pediatric lateral humeral condyle fracture classification Milch Jakob Song
| Type | Fracture line | Stability |
|---|---|---|
| Milch I | Passes lateral to the trochlear groove, through the lateral part of the trochlea/ossific nucleus | Usually more stable because the trochlea remains intact |
| Milch II | Passes medially into or through the trochlear groove | More common and potentially unstable because trochlear integrity is disrupted |
| Stage | Displacement / appearance | Cartilage hinge and rotation |
|---|---|---|
| Jakob I | < 2 mm displacement | Intact cartilaginous hinge, stable |
| Jakob II | 2-4 mm displacement | Articular disruption may be present, but no fragment rotation |
| Jakob III | > 4 mm displacement | Fragment is completely displaced and usually rotated, unstable |
| Type | Displacement | Articular surface | Usual management principle |
|---|---|---|---|
| Weiss I | < 2 mm | Intact | Cast and close follow-up |
| Weiss II | > 2 mm, usually <4 mm | Intact cartilage hinge/articular surface | Closed reduction and percutaneous fixation may be possible |
| Weiss III | > 2 mm, often >4 mm | Articular surface disrupted | Open reduction and internal fixation generally required |
| Stage | Description |
|---|---|
| Song 1 | ≤2 mm displacement, metaphyseal fracture line, stable |
| Song 2 | ≤2 mm displacement, extends toward cartilage, stability uncertain |
| Song 3 | ≤2 mm displacement but fracture line reaches articular surface, unstable |
| Song 4 | >2 mm displacement without rotation, unstable |
| Song 5 | >2 mm displacement with rotation, grossly unstable |
Timing for surgery in cubitus varus and valgus
cubitus varus osteotomy children timing
cubitus varus cubitus valgus corrective osteotomy timing child lateral condyle nonunion tardy ulnar palsy
| Feature | Cubitus varus | Cubitus valgus |
|---|---|---|
| Usual cause | Supracondylar humeral fracture malunion | Lateral condyle fracture nonunion/malunion |
| Main reason for surgery | Cosmetic deformity, instability, functional symptoms | Tardy ulnar palsy, marked deformity, nonunion, pain/instability |
| Urgency | Elective after union and return of motion | Elective if asymptomatic; prompt if ulnar neuropathy or symptomatic nonunion |
| Typical timing | About 6-12 months after injury, once deformity is established | At diagnosis of symptomatic nonunion or tardy ulnar palsy; otherwise elective |
| Typical operation | Corrective distal humeral osteotomy | Corrective osteotomy ± lateral condyle nonunion fixation/bone grafting ± ulnar nerve transposition |
Cubitus varus correction is an elective corrective osteotomy after fracture union and recovery of elbow movement, usually around 6-12 months after injury if the deformity is cosmetically or functionally significant. Cubitus valgus is observed if mild and asymptomatic, but should be corrected when severe, associated with lateral condyle nonunion, or when tardy ulnar nerve palsy develops.
Clinical how to test lateral condyle humerus non union
clinical examination lateral humeral condyle nonunion child elbow instability cubitus valgus
“Old lateral elbow injury with increased carrying angle/cubitus valgus, lateral condylar prominence and tenderness, painful or unstable elbow on stress testing, and assess specifically for tardy ulnar nerve palsy.”
Instruments used in anterolateral decompression of spine with images
anterolateral spinal decompression surgical instruments curette pituitary rongeur high speed burr Kerrison rongeur
anterolateral decompression spine instruments curette pituitary rongeur Kerrison high speed drill
| Instrument | Main use |
|---|---|
| Scalpel with No. 10/15 blade | Skin incision and soft-tissue dissection |
| Artery forceps, sponge holder, suction | Haemostasis, swab handling, clearance of blood/debris |
| Periosteal elevator | Subperiosteal elevation from rib, vertebral body, and transverse process |
| Rib cutter / rib shears | Resection of a segment of rib when a costotransverse approach is used |
| Rib raspatory / Doyen raspatory | Elevation of periosteum and protection of pleura around the rib |
| Cobb elevator / broad periosteal elevator | Deep exposure and soft-tissue elevation |
| Self-retaining retractor, such as Gelpi or rib spreader where needed | Maintains the surgical corridor |
| Hohmann retractors | Retract paraspinal soft tissues and protect adjacent structures |
| Finochietto rib spreader | Used only if thoracotomy exposure is required |
| Bone-holding forceps | Hold rib or bony fragments during resection |
| Leksell rongeur / bone nibblers | Remove posterior rib, transverse process, pedicle, and cancellous bone |
| Kerrison rongeur | Controlled removal of small bone portions near the spinal canal, especially the posterior lip or residual compressive bone |
| Osteotomes and mallet | Remove bone, pedicle, or diseased vertebral elements in a controlled fashion |
| High-speed burr with diamond burr | Controlled bony decompression and smoothing of residual bone, particularly near neural structures |
| Curettes, straight and angled | Remove caseous material, granulation tissue, disc material, and necrotic cancellous bone |
| Penfield dissectors / angled dissectors | Gentle separation of epidural granulation tissue from the dura |
| Pituitary rongeur | Remove loose disc, pus debris, caseous material, and granulation tissue from a deep cavity |
| Disc forceps | Removal of disc material where disc-space debridement is required |
| Nerve root retractor / dural dissector | Neural tissue protection during final decompression, when required |
| Suction cannula, including fine Frazier-type suction | Maintains visualization and removes pus/debris |
| C-arm fluoroscopy | Confirms spinal level and guides instrumentation, if stabilization is performed |
| Pedicle screw and rod system | Posterior stabilization, often combined with anterolateral decompression in unstable disease |
| Titanium mesh cage / structural graft instruments | Anterior column reconstruction when significant vertebral-body loss exists |

| Step | Common instruments |
|---|---|
| Exposure through costotransverse/anterolateral route | Scalpel, periosteal elevator, retractors, rib cutter, rib raspatory |
| Remove posterior rib/transverse process and gain access | Leksell rongeur, osteotome, mallet, Kerrison |
| Debride abscess, caseation, granulation tissue, and disc | Suction, curettes, pituitary rongeur, disc forceps |
| Decompress anterior epidural compression | Angled curette, Penfield dissector, Kerrison, high-speed burr |
| Reconstruct/stabilize if needed | Cage/graft instruments, pedicle screws, rods, C-arm |
Create a one-page instrument identification PDF
~/
mkdir -p "/tmp/workspace/anterolateral-spine-instruments-pdf/src" "/tmp/workspace/anterolateral-spine-instruments-pdf/output" && python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.colors import HexColor from reportlab.lib.units import mm from reportlab.pdfgen import canvas from reportlab.pdfbase.pdfmetrics import stringWidth from pypdf import PdfReader import os out='/tmp/workspace/anterolateral-spine-instruments-pdf/output/Anterolateral_Spine_Decompression_Instruments.pdf' W,H=A4 navy=HexColor('#14394D'); teal=HexColor('#087F82'); light=HexColor('#F3F7F8'); line=HexColor('#B7CDD0'); ink=HexColor('#1D2B34'); gray=HexColor('#5D6D75'); amber=HexColor('#FFF2D2') c=canvas.Canvas(out,pagesize=A4) c.setTitle('Anterolateral Spine Decompression: Instrument Identification') # Header c.setFillColor(navy); c.rect(0,H-35*mm,W,35*mm,fill=1,stroke=0) c.setFillColor(colors.white); c.setFont('Helvetica-Bold',18); c.drawString(15*mm,H-16*mm,'ANTEROLATERAL SPINE DECOMPRESSION') c.setFont('Helvetica',9.2); c.drawString(15*mm,H-23*mm,'One-page instrument identification guide | Educational reference') c.setFillColor(HexColor('#BCE6E4')); c.setFont('Helvetica-Bold',8); c.drawRightString(W-15*mm,H-16*mm,'THORACIC / THORACOLUMBAR') # brief bar c.setFillColor(amber); c.roundRect(15*mm,H-47*mm,W-30*mm,7*mm,2*mm,fill=1,stroke=0) c.setFillColor(ink); c.setFont('Helvetica-Bold',7.7); c.drawString(18*mm,H-43*mm,'Aim: expose safely, remove bone and anterior compressive material, protect neural tissue, then reconstruct/stabilize when indicated.') # drawings in cells def label(x,y,name,tag,lines,kind): cw=57*mm; ch=49*mm c.setFillColor(light); c.roundRect(x,y,cw,ch,3*mm,fill=1,stroke=0) c.setStrokeColor(line); c.roundRect(x,y,cw,ch,3*mm,fill=0,stroke=1) # picture panel px=x+5*mm; py=y+22*mm; pw=cw-10*mm; ph=21*mm c.setFillColor(colors.white); c.roundRect(px,py,pw,ph,2*mm,fill=1,stroke=0) c.setStrokeColor(HexColor('#D5E2E5')); c.roundRect(px,py,pw,ph,2*mm,fill=0,stroke=0.5) draw_inst(px,py,pw,ph,kind) c.setFillColor(navy); c.setFont('Helvetica-Bold',9.2); c.drawString(x+5*mm,y+16.5*mm,name) c.setFillColor(teal); c.setFont('Helvetica-Bold',6.5); c.drawRightString(x+cw-5*mm,y+16.5*mm,tag.upper()) c.setFillColor(gray); c.setFont('Helvetica',6.7) ty=y+12*mm for s in lines: c.drawString(x+5*mm,ty,s); ty-=3.5*mm def draw_inst(x,y,w,h,k): c.setStrokeColor(navy); c.setFillColor(HexColor('#D9E9EA')); c.setLineWidth(1.4) cy=y+h/2 if k=='kerrison': # handle rings & shaft angled jaw c.circle(x+9*mm,cy+4*mm,3.1*mm,fill=0); c.circle(x+9*mm,cy-4*mm,3.1*mm,fill=0) c.line(x+12*mm,cy+3*mm,x+25*mm,cy+1.3*mm);c.line(x+12*mm,cy-3*mm,x+25*mm,cy-1.3*mm) c.rect(x+25*mm,cy-2*mm,17*mm,4*mm,fill=1);c.line(x+42*mm,cy,x+45*mm,cy+4*mm);c.line(x+45*mm,cy+4*mm,x+47*mm,cy+4*mm) elif k=='pituitary': c.circle(x+8*mm,cy+3.8*mm,2.7*mm,fill=0);c.circle(x+8*mm,cy-3.8*mm,2.7*mm,fill=0) c.line(x+11*mm,cy+2.8*mm,x+26*mm,cy+1.2*mm);c.line(x+11*mm,cy-2.8*mm,x+26*mm,cy-1.2*mm) c.rect(x+26*mm,cy-1.7*mm,16*mm,3.4*mm,fill=1); c.setFillColor(HexColor('#B5D7D9')); c.circle(x+45*mm,cy,3*mm,fill=1) elif k=='curette': c.roundRect(x+5*mm,cy-3*mm,14*mm,6*mm,2*mm,fill=1); c.line(x+19*mm,cy,x+43*mm,cy) c.arc(x+41*mm,cy-3*mm,x+48*mm,cy+5*mm,0,240); c.line(x+43*mm,cy,x+46*mm,cy+3*mm) elif k=='leksell': c.circle(x+8*mm,cy+4*mm,3*mm,fill=0);c.circle(x+8*mm,cy-4*mm,3*mm,fill=0) c.line(x+11*mm,cy+3*mm,x+27*mm,cy+1.5*mm);c.line(x+11*mm,cy-3*mm,x+27*mm,cy-1.5*mm) c.rect(x+27*mm,cy-3*mm,12*mm,6*mm,fill=1); c.setFillColor(HexColor('#B5D7D9'));c.rect(x+39*mm,cy-4*mm,7*mm,8*mm,fill=1) elif k=='burr': c.roundRect(x+5*mm,cy-4*mm,16*mm,8*mm,2*mm,fill=1);c.line(x+21*mm,cy,x+41*mm,cy);c.setFillColor(HexColor('#B5D7D9'));c.circle(x+45*mm,cy,4*mm,fill=1) c.setStrokeColor(teal);c.line(x+11*mm,cy+4*mm,x+11*mm,cy+9*mm) elif k=='osteotome': c.rect(x+5*mm,cy-5*mm,12*mm,10*mm,fill=1);c.line(x+17*mm,cy,x+42*mm,cy);c.setFillColor(HexColor('#B5D7D9'));c.wedge(x+42*mm,cy-4*mm,x+50*mm,cy+4*mm,180,360,fill=1) elif k=='retractor': c.setLineWidth(2);c.line(x+9*mm,cy,x+37*mm,cy);c.line(x+9*mm,cy,x+9*mm,cy+7*mm);c.line(x+37*mm,cy,x+43*mm,cy+7*mm);c.line(x+43*mm,cy+7*mm,x+48*mm,cy+7*mm) elif k=='suction': c.setLineWidth(2);c.line(x+5*mm,cy,x+35*mm,cy);c.line(x+35*mm,cy,x+45*mm,cy+5*mm);c.setFillColor(HexColor('#B5D7D9'));c.circle(x+47*mm,cy+6*mm,1.8*mm,fill=1) cols=[15*mm,76*mm,137*mm] # rows y positions rows=[H-105*mm,H-159*mm,H-213*mm] items=[ ('Kerrison rongeur','BONE','Fine controlled bone removal near canal.','Angled biting jaws; not used blindly.' ,'kerrison'), ('Pituitary rongeur','SOFT TISSUE','Grasps loose disc, caseation and debris.','Cupped jaws: not for dense cortical bone.','pituitary'), ('Angled ring curette','DEBRIDEMENT','Removes disc, granulation and necrotic bone.','Work under direct vision, away from dura.','curette'), ('Leksell rongeur','BONE','Removes rib, transverse process, cancellous bone.','Heavy rongeur for bulk bony removal.','leksell'), ('High-speed burr','BONE','Thins residual posterior vertebral cortex.','Diamond burr preferred near neural tissue.','burr'), ('Osteotome + mallet','BONE','Controlled osteotomy and bony resection.','Protect pleura, vessels and dura before use.','osteotome'), ('Hohmann / deep retractor','EXPOSURE','Maintains deep corridor and retracts tissue.','Place on bone and avoid sustained neural pressure.','retractor'), ('Frazier suction','VISUALIZATION','Clears blood, pus and fine debris.','Fine tip permits controlled deep suction.','suction'), ] for idx,it in enumerate(items): r=idx//3;cidx=idx%3 # last row only 2 label(cols[cidx],rows[r],*it) # safety / workflow footer c.setFillColor(navy);c.roundRect(15*mm,14*mm,W-30*mm,18*mm,2*mm,fill=1,stroke=0) c.setFillColor(colors.white);c.setFont('Helvetica-Bold',8.3);c.drawString(19*mm,25*mm,'RECOGNITION PEARLS') c.setFont('Helvetica',7.4);c.drawString(19*mm,20*mm,'Kerrison = fine biting bone punch | Pituitary = cupped tissue grasper | Curette = scraping/debridement | Leksell = bulk bone rongeur') c.setFillColor(HexColor('#CAEDEC'));c.setFont('Helvetica-Oblique',6.7);c.drawString(15*mm,8*mm,'Educational instrument-recognition aid. Instrument selection and surgical use require formal training, supervision, and local protocol.') c.save() r=PdfReader(out) print('pages',len(r.pages),'bytes',os.path.getsize(out)) print(r.pages[0].extract_text()[:180]) PY
python - <<'PY' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.colors import HexColor from reportlab.lib.units import mm from reportlab.pdfgen import canvas from pypdf import PdfReader import os out='/tmp/workspace/anterolateral-spine-instruments-pdf/output/Anterolateral_Spine_Decompression_Instruments.pdf' W,H=A4; navy=HexColor('#14394D'); teal=HexColor('#087F82'); light=HexColor('#F3F7F8'); line=HexColor('#B7CDD0'); ink=HexColor('#1D2B34'); gray=HexColor('#5D6D75'); amber=HexColor('#FFF2D2') c=canvas.Canvas(out,pagesize=A4); c.setTitle('Anterolateral Spine Decompression: Instrument Identification') c.setFillColor(navy); c.rect(0,H-35*mm,W,35*mm,fill=1,stroke=0) c.setFillColor(colors.white); c.setFont('Helvetica-Bold',18); c.drawString(15*mm,H-16*mm,'ANTEROLATERAL SPINE DECOMPRESSION') c.setFont('Helvetica',9.2); c.drawString(15*mm,H-23*mm,'One-page instrument identification guide | Educational reference') c.setFillColor(HexColor('#BCE6E4')); c.setFont('Helvetica-Bold',8); c.drawRightString(W-15*mm,H-16*mm,'THORACIC / THORACOLUMBAR') c.setFillColor(amber); c.roundRect(15*mm,H-47*mm,W-30*mm,7*mm,2*mm,fill=1,stroke=0) c.setFillColor(ink); c.setFont('Helvetica-Bold',7.7); c.drawString(18*mm,H-43*mm,'Aim: expose safely, remove bone and anterior compressive material, protect neural tissue, then reconstruct/stabilize when indicated.') def draw_inst(x,y,w,h,k): c.setStrokeColor(navy); c.setFillColor(HexColor('#D9E9EA')); c.setLineWidth(1.4); cy=y+h/2 if k=='kerrison': c.circle(x+9*mm,cy+4*mm,3.1*mm,fill=0); c.circle(x+9*mm,cy-4*mm,3.1*mm,fill=0); c.line(x+12*mm,cy+3*mm,x+25*mm,cy+1.3*mm);c.line(x+12*mm,cy-3*mm,x+25*mm,cy-1.3*mm);c.rect(x+25*mm,cy-2*mm,17*mm,4*mm,fill=1);c.line(x+42*mm,cy,x+45*mm,cy+4*mm);c.line(x+45*mm,cy+4*mm,x+47*mm,cy+4*mm) elif k=='pituitary': c.circle(x+8*mm,cy+3.8*mm,2.7*mm,fill=0);c.circle(x+8*mm,cy-3.8*mm,2.7*mm,fill=0);c.line(x+11*mm,cy+2.8*mm,x+26*mm,cy+1.2*mm);c.line(x+11*mm,cy-2.8*mm,x+26*mm,cy-1.2*mm);c.rect(x+26*mm,cy-1.7*mm,16*mm,3.4*mm,fill=1);c.setFillColor(HexColor('#B5D7D9'));c.circle(x+45*mm,cy,3*mm,fill=1) elif k=='curette': c.roundRect(x+5*mm,cy-3*mm,14*mm,6*mm,2*mm,fill=1);c.line(x+19*mm,cy,x+43*mm,cy);c.arc(x+41*mm,cy-3*mm,x+48*mm,cy+5*mm,0,240);c.line(x+43*mm,cy,x+46*mm,cy+3*mm) elif k=='leksell': c.circle(x+8*mm,cy+4*mm,3*mm,fill=0);c.circle(x+8*mm,cy-4*mm,3*mm,fill=0);c.line(x+11*mm,cy+3*mm,x+27*mm,cy+1.5*mm);c.line(x+11*mm,cy-3*mm,x+27*mm,cy-1.5*mm);c.rect(x+27*mm,cy-3*mm,12*mm,6*mm,fill=1);c.setFillColor(HexColor('#B5D7D9'));c.rect(x+39*mm,cy-4*mm,7*mm,8*mm,fill=1) elif k=='burr': c.roundRect(x+5*mm,cy-4*mm,16*mm,8*mm,2*mm,fill=1);c.line(x+21*mm,cy,x+41*mm,cy);c.setFillColor(HexColor('#B5D7D9'));c.circle(x+45*mm,cy,4*mm,fill=1);c.setStrokeColor(teal);c.line(x+11*mm,cy+4*mm,x+11*mm,cy+9*mm) elif k=='osteotome': c.rect(x+5*mm,cy-5*mm,12*mm,10*mm,fill=1);c.line(x+17*mm,cy,x+42*mm,cy);c.setFillColor(HexColor('#B5D7D9'));c.wedge(x+42*mm,cy-4*mm,x+50*mm,cy+4*mm,180,360,fill=1) elif k=='retractor': c.setLineWidth(2);c.line(x+9*mm,cy,x+37*mm,cy);c.line(x+9*mm,cy,x+9*mm,cy+7*mm);c.line(x+37*mm,cy,x+43*mm,cy+7*mm);c.line(x+43*mm,cy+7*mm,x+48*mm,cy+7*mm) else: c.setLineWidth(2);c.line(x+5*mm,cy,x+35*mm,cy);c.line(x+35*mm,cy,x+45*mm,cy+5*mm);c.setFillColor(HexColor('#B5D7D9'));c.circle(x+47*mm,cy+6*mm,1.8*mm,fill=1) def label(x,y,name,tag,use,pearl,kind): cw=57*mm;ch=49*mm;c.setFillColor(light);c.roundRect(x,y,cw,ch,3*mm,fill=1,stroke=0);c.setStrokeColor(line);c.roundRect(x,y,cw,ch,3*mm,fill=0,stroke=1) px=x+5*mm;py=y+22*mm;pw=cw-10*mm;ph=21*mm;c.setFillColor(colors.white);c.roundRect(px,py,pw,ph,2*mm,fill=1,stroke=0);c.setStrokeColor(HexColor('#D5E2E5'));c.roundRect(px,py,pw,ph,2*mm,fill=0,stroke=0.5);draw_inst(px,py,pw,ph,kind) c.setFillColor(navy);c.setFont('Helvetica-Bold',9.2);c.drawString(x+5*mm,y+16.5*mm,name);c.setFillColor(teal);c.setFont('Helvetica-Bold',6.5);c.drawRightString(x+cw-5*mm,y+16.5*mm,tag.upper());c.setFillColor(gray);c.setFont('Helvetica',6.7);c.drawString(x+5*mm,y+12*mm,use);c.drawString(x+5*mm,y+8.5*mm,pearl) cols=[15*mm,76*mm,137*mm];rows=[H-105*mm,H-159*mm,H-213*mm] items=[('Kerrison rongeur','BONE','Fine controlled bone removal near canal.','Angled biting jaws; not used blindly.','kerrison'),('Pituitary rongeur','SOFT TISSUE','Grasps loose disc, caseation and debris.','Cupped jaws: not for dense cortical bone.','pituitary'),('Angled ring curette','DEBRIDEMENT','Removes disc, granulation and necrotic bone.','Work under direct vision, away from dura.','curette'),('Leksell rongeur','BONE','Removes rib, transverse process, cancellous bone.','Heavy rongeur for bulk bony removal.','leksell'),('High-speed burr','BONE','Thins residual posterior vertebral cortex.','Diamond burr preferred near neural tissue.','burr'),('Osteotome + mallet','BONE','Controlled osteotomy and bony resection.','Protect pleura, vessels and dura first.','osteotome'),('Hohmann / deep retractor','EXPOSURE','Maintains deep corridor and retracts tissue.','Place on bone; avoid neural pressure.','retractor'),('Frazier suction','VISUALIZATION','Clears blood, pus and fine debris.','Fine tip permits controlled deep suction.','suction')] for i,it in enumerate(items): label(cols[i%3],rows[i//3],*it) c.setFillColor(navy);c.roundRect(15*mm,14*mm,W-30*mm,18*mm,2*mm,fill=1,stroke=0);c.setFillColor(colors.white);c.setFont('Helvetica-Bold',8.3);c.drawString(19*mm,25*mm,'RECOGNITION PEARLS');c.setFont('Helvetica',7.4);c.drawString(19*mm,20*mm,'Kerrison = fine biting bone punch | Pituitary = cupped tissue grasper | Curette = scraping/debridement | Leksell = bulk bone rongeur');c.setFillColor(HexColor('#CAEDEC'));c.setFont('Helvetica-Oblique',6.7);c.drawString(15*mm,8*mm,'Educational instrument-recognition aid. Instrument selection and surgical use require formal training, supervision, and local protocol.');c.save() r=PdfReader(out); print('pages',len(r.pages),'bytes',os.path.getsize(out));print(r.pages[0].extract_text()[:240]) PY
python - <<'PY' from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 from reportlab.lib.units import mm from reportlab.lib import colors from reportlab.lib.colors import HexColor from pypdf import PdfReader import os p='/tmp/workspace/anterolateral-spine-instruments-pdf/output/Anterolateral_Spine_Decompression_Instruments.pdf' W,H=A4 navy=HexColor('#14394D'); teal=HexColor('#087F82'); light=HexColor('#F3F7F8'); border=HexColor('#B7CDD0'); gray=HexColor('#53646D'); amber=HexColor('#FFF2D2') c=canvas.Canvas(p,pagesize=A4); c.setTitle('Anterolateral Spine Decompression Instrument Identification') c.setFillColor(navy);c.rect(0,H-35*mm,W,35*mm,fill=1,stroke=0) c.setFillColor(colors.white);c.setFont('Helvetica-Bold',17);c.drawString(15*mm,H-16*mm,'ANTEROLATERAL SPINE DECOMPRESSION') c.setFont('Helvetica',9);c.drawString(15*mm,H-23*mm,'One-page instrument identification guide | Thoracic and thoracolumbar procedures') c.setFillColor(amber);c.roundRect(15*mm,H-47*mm,W-30*mm,7*mm,2*mm,fill=1,stroke=0) c.setFillColor(navy);c.setFont('Helvetica-Bold',7.5);c.drawString(18*mm,H-43*mm,'Aim: safe exposure, removal of bone and anterior compressive material, neural protection, and reconstruction when indicated.') def instrument_icon(x,y,w,h,typ): cy=y+h/2;c.setStrokeColor(navy);c.setFillColor(HexColor('#D9E9EA'));c.setLineWidth(1.3) if typ in ('kerrison','pituitary','leksell'): c.circle(x+8*mm,cy+3.7*mm,2.6*mm,fill=0);c.circle(x+8*mm,cy-3.7*mm,2.6*mm,fill=0) c.line(x+11*mm,cy+2.7*mm,x+25*mm,cy+1.2*mm);c.line(x+11*mm,cy-2.7*mm,x+25*mm,cy-1.2*mm) c.rect(x+25*mm,cy-2*mm,15*mm,4*mm,fill=1) if typ=='kerrison': c.line(x+40*mm,cy,x+44*mm,cy+4*mm);c.line(x+44*mm,cy+4*mm,x+48*mm,cy+4*mm) elif typ=='pituitary': c.setFillColor(HexColor('#B7DCDE'));c.circle(x+45*mm,cy,3*mm,fill=1) else: c.setFillColor(HexColor('#B7DCDE'));c.rect(x+40*mm,cy-4*mm,7*mm,8*mm,fill=1) elif typ=='curette': c.roundRect(x+5*mm,cy-3*mm,14*mm,6*mm,2*mm,fill=1,stroke=0);c.line(x+19*mm,cy,x+42*mm,cy);c.arc(x+40*mm,cy-3*mm,x+48*mm,cy+5*mm,0,240) elif typ=='burr': c.roundRect(x+5*mm,cy-4*mm,16*mm,8*mm,2*mm,fill=1,stroke=0);c.line(x+21*mm,cy,x+41*mm,cy);c.setFillColor(HexColor('#B7DCDE'));c.circle(x+45*mm,cy,4*mm,fill=1) elif typ=='osteotome': c.rect(x+5*mm,cy-5*mm,12*mm,10*mm,fill=1);c.line(x+17*mm,cy,x+42*mm,cy);c.setFillColor(HexColor('#B7DCDE'));c.circle(x+46*mm,cy,4*mm,fill=1) elif typ=='retractor': c.setLineWidth(2);c.line(x+8*mm,cy,x+37*mm,cy);c.line(x+8*mm,cy,x+8*mm,cy+7*mm);c.line(x+37*mm,cy,x+43*mm,cy+7*mm);c.line(x+43*mm,cy+7*mm,x+49*mm,cy+7*mm) else: c.setLineWidth(2);c.line(x+5*mm,cy,x+36*mm,cy);c.line(x+36*mm,cy,x+46*mm,cy+5*mm);c.setFillColor(HexColor('#B7DCDE'));c.circle(x+48*mm,cy+6*mm,2*mm,fill=1) def card(x,y,name,category,use,tip,typ): cw,ch=57*mm,49*mm c.setFillColor(light);c.roundRect(x,y,cw,ch,3*mm,fill=1,stroke=0) c.setStrokeColor(border);c.roundRect(x,y,cw,ch,3*mm,fill=0,stroke=1) px,py,pw,ph=x+5*mm,y+22*mm,cw-10*mm,20*mm c.setFillColor(colors.white);c.roundRect(px,py,pw,ph,2*mm,fill=1,stroke=0) c.setStrokeColor(HexColor('#D6E3E5'));c.roundRect(px,py,pw,ph,2*mm,fill=0,stroke=1) instrument_icon(px,py,pw,ph,typ) c.setFillColor(navy);c.setFont('Helvetica-Bold',9);c.drawString(x+5*mm,y+16*mm,name) c.setFillColor(teal);c.setFont('Helvetica-Bold',6);c.drawRightString(x+cw-5*mm,y+16*mm,category) c.setFillColor(gray);c.setFont('Helvetica',6.6);c.drawString(x+5*mm,y+11.5*mm,use);c.drawString(x+5*mm,y+8*mm,tip) items=[ ('Kerrison rongeur','BONE','Fine controlled bone removal near canal.','Angled biting jaws: never use blindly.','kerrison'), ('Pituitary rongeur','SOFT TISSUE','Grasps loose disc, caseation and debris.','Cupped jaws: not for dense cortical bone.','pituitary'), ('Angled ring curette','DEBRIDEMENT','Removes disc, granulation and necrotic bone.','Use under direct vision, away from dura.','curette'), ('Leksell rongeur','BONE','Removes rib, transverse process, cancellous bone.','Heavy rongeur for bulk bony removal.','leksell'), ('High-speed burr','BONE','Thins posterior vertebral cortex.','Diamond burr is safer near neural tissue.','burr'), ('Osteotome + mallet','BONE','Controlled osteotomy and bony resection.','Protect pleura, vessels and dura first.','osteotome'), ('Hohmann / deep retractor','EXPOSURE','Maintains corridor and retracts tissue.','Place on bone: avoid sustained neural pressure.','retractor'), ('Frazier suction','VISUALIZATION','Clears blood, pus and fine debris.','Fine tip permits controlled deep suction.','suction')] cols=[15*mm,76*mm,137*mm]; ys=[H-105*mm,H-159*mm,H-213*mm] for i,item in enumerate(items): card(cols[i%3],ys[i//3],*item) c.setFillColor(navy);c.roundRect(15*mm,14*mm,W-30*mm,18*mm,2*mm,fill=1,stroke=0) c.setFillColor(colors.white);c.setFont('Helvetica-Bold',8);c.drawString(19*mm,25*mm,'RECOGNITION PEARLS') c.setFont('Helvetica',7.2);c.drawString(19*mm,20*mm,'Kerrison = fine biting bone punch | Pituitary = cupped tissue grasper | Curette = scraping/debridement | Leksell = bulk bone rongeur') c.setFillColor(HexColor('#A5CACB'));c.setFont('Helvetica-Oblique',6.5);c.drawString(15*mm,8*mm,'Educational instrument-recognition aid. Instrument selection and use require formal training, direct supervision, and local protocol.') c.save() r=PdfReader(p) assert len(r.pages)==1, len(r.pages) assert os.path.getsize(p)>2500 print('Verified:',len(r.pages),'page,',os.path.getsize(p),'bytes') PY
Anterolateral Spine Decompression Instruments
PDF Document · PDF