OPLITEAL FOSSA AND LEG Popliteal Abscess and Tumor Because the deep popliteal ascia is strong and lim- its expansion, pain rom an abscess or tumor in the popliteal ossa is usually severe. Popliteal abscesses tend to spread superiorly and ineriorly because o the tough- ness o the popliteal ascia. Popliteal Pulse Because the popliteal artery is deep, it may be di- cult to eel the popliteal pulse. Palpation o this pulse is commonly perormed with the person in Popliteal Fossa and Leg 763 to the our lateral digits. The tendon o the FT may be pal- pable lateral to the tendons o the EDL, especially when the oot is dorsifexed and everted. The shat o the bula is subcutaneous only in its distal part, proximal to the lateral malleolus; this is the common site o ractures. The medial and lateral malleoli are subcu- taneous and prominent. Palpate them, noting that the tip o the lateral malleolus extends arther distally and posteriorly than the medial malleolus. The bularis longus (FL) is subcutaneous throughout its course (Fig. 7.67C). The tendons o this muscle and the bularis brevis (FB) are palpable when the oot is everted as they pass around the posterior aspect o the lateral malleolus. These tendons may be ollowed anteriorly along the lateral side o the oot. The tendon o the FL runs as ar anteriorly as the cuboid and then disappears by turning into the sole o the oot. The tendon o the FB may be traced to its attachment to the base o the 5th metatarsal. The calcaneal tendon can be easily ollowed to its attach- ment to the calcaneal tuberosity, the posterior part o the calcaneus. The ankle joint is airly supercial in the depres- sion on each side o the calcaneal tendon. The heads o the gastrocnemius are easily recognizable in the superior part o the cal o the leg (Fig. 7.67B, C). The soleus can be palpated deep to and at the sides o the superior part o the calcaneal tendon. The triceps surae (soleus and gastrocnemius) is easy to palpate when the individual is standing on the toes. The soleus can be distinguished rom the gastrocnemius during squatting (fexing the knees while standing on toes) because fexion o the knee to approximately 90° makes the gastrocne- mius faccid; plantarfexion in this position is maintained by the soleus. The deep muscles o the posterior compartment are not easily palpated, but their tendons can be observed just posterior to the medial malleolus, especially when the oot is inverted and the toes are fexed. the prone position with the knee fexed to relax the popliteal ascia and hamstrings. The pulsations are best elt in the ine- rior part o the ossa where the popliteal artery is related to the tibia. Weakening or loss o the popliteal pulse is a sign o a emoral artery obstruction. Popliteal Aneurysm and Hemorrhage A popliteal aneurysm (abnormal dilation o all or part o the popliteal artery) usually causes edema and pain in the popliteal ossa. A popli- teal aneurysm may be distinguished rom other masses by palpable pulsations (thrills) and abnormal arterial sounds (bruits) detectable with a stethoscope. Because the artery 7 764 764 Chapter 7 Lower Limb Chapter 7 Lower Limb lies deep to the tibial nerve, an aneurysm may stretch the nerve or compress its blood supply (vasa vasorum). Pain rom such nerve compression is usually reerred, in this case to the skin overlying the medial aspect o the cal, ankle, or oot. Because the popliteal artery is closely applied to the popliteal surace o the emur and the joint capsule (see Fig. 7.60), ractures o the distal emur or dislocations o the knee may rupture the artery, resulting in hemorrhage. Furthermore, because o their proximity and connement within the popliteal ossa, an injury o the artery and vein may result in an arteriovenous stula (communication between an artery and a vein). Failure to recognize these occurrences and to act promptly may result in the loss o the leg and oot. I the emoral artery must be ligated, blood can bypass the occlusion through the genicular anastomosis and reach the popliteal artery distal to the ligation (see Fig. 7.53). Injury to Tibial Nerve Injury to the tibial nerve is uncommon because o its deep and protected position in the popliteal ossa; however, the nerve may be injured by deep lacerations in the ossa. Posterior dislocation o the knee joint may also damage the tibial nerve. Severance o the tibial nerve produces paralysis o the fexor muscles in the leg and the intrinsic muscles in the sole o the oot. People with a tibial nerve injury are unable to plantarfex their ankle or fex their toes. Loss o sensation also occurs on the sole o the oot. Containment and Spread o Compartmental Inections in Leg The ascial compartments o the lower limbs are generally closed spaces, ending proximally and dis- tally at the joints. Because the septa and deep ascia o the leg orming the boundaries o the leg compartments are strong, the increased volume consequent to inection with suppuration (ormation o pus) increases intracom- partmental pressure. Infammations within the anterior and posterior compartments o the leg spread chiefy in a dis- tal direction; however, a purulent (pus-orming) inection in the lateral compartment o the leg can ascend proximally into the popliteal ossa, presumably along the course o the bular nerve. Fasciotomy (incision o ascia) may be neces- sary to relieve pressure and debride (scrape away) pockets o inection. Tibialis Anterior Strain (Shin Splints) Shin splints—edema and pain in the area o the distal two thirds o the tibia—result rom repeti- tive microtrauma o the tibialis anterior (TA; Fig. 7.57A), which causes small tears in the periosteum cov- ering the shat o the tibia and/or o feshy attachments to the overlying deep ascia o the leg. Shin splints are a mild orm o the anterior compartment syndrome. Shin splints com- monly occur during traumatic injury or athletic overexertion o muscles in the anterior compartment, especially TA, by untrained persons. Oten, persons who lead sedentary lives develop shin splints when they participate in long-distance walks. Shin splints also occur in trained runners who do not warm up and cool down suciently. Muscles in the anterior compartment swell rom sudden overuse, and the edema and muscle–tendon infammation reduce the blood fow to the muscles. The swollen muscles are painul and tender to pressure. Fibularis Muscles and Evolution o Human Foot Whereas the eet o anthropoids (higher pri- mates) are inverted so that they walk on the outer border o the oot, the eet o humans are rela- tively everted (pronated) so that the soles lie more ully on the ground. This pronation is the result, at least in part, o the medial migration o the distal attachment o the bu- laris longus across the sole o the oot (Fig. 7.62K) and the development o a bularis tertius that is attached to the base o the 5th metatarsal. These eatures are unique to the human oot. Injury to Common Fibular Nerve and Footdrop Because o its supercial position, the common bular nerve is the nerve most oten injured in the lower limb, mainly because it winds subcu- taneously around the bular neck, leaving it vulnerable to direct trauma (see Fig. 7.58A). This nerve may also be severed during racture o the bular neck or severely stretched when the knee joint is injured or dislocated. Severance o the common bular nerve results in faccid paralysis o all muscles in the anterior and lateral compart- ments o the leg (dorsifexors o ankle and evertors o oot). The loss o dorsifexion o the ankle causes ootdrop, which is urther exacerbated by unopposed inversion o the oot. This has the eect o making the limb “too long”: the toes do not clear the ground during the swing phase o walking (Fig. B7.21A, E). There are several other conditions that may result in a lower limb that is “too long” unctionally, or example, pelvic tilt (see Fig. B7.19C) and spastic paralysis or contraction o the soleus. There are at least three means o compensating or this problem: 1. A waddling gait, in which the individual leans to the side opposite the long limb, “hiking” the hip (Fig. B7.21B). 2. A swing-out gait, in which the long limb is swung out laterally (abducted) to allow the toes to clear the ground (Fig. B7.21C). Popliteal Fossa and Leg 765 Popliteal Fossa and Leg 765 (A) (B) (C) (D) (E) FIGURE B7.21. 3. A high-stepping steppage gait, in which extra fexion is employed at the hip and knee to raise the oot as high as necessary to keep the toes rom hitting the ground (Fig. B7.21D, E). Because the dropped oot makes it dicult to make the heel strike the ground rst as in a normal gait, a steppage gait is commonly employed in the case o faccid paralysis. Sometimes, an extra “kick” is added as the ree limb swings orward in an attempt to fip the oreoot upward just beore setting the oot down. The braking action normally produced by eccentric con- traction o the dorsifexors is also lost in faccid paralysis oot- drop. Thereore, the oot is not lowered to the ground in a controlled manner ater heel strike; instead, the oot slaps the ground suddenly, producing a distinctive “clop” and greatly increasing the shock both received by the oreoot and transmitted up the tibia to the knee. Individuals with a common bular nerve injury may also experience a variable loss o sensation on the anterolateral aspect o the leg and the dorsum o the oot. Deep Fibular Nerve Entrapment Excessive use o muscles supplied by the deep bu- lar nerve (e.g., during skiing, running, and danc- ing) may result in muscle injury and edema in the anterior compartment. This entrapment may cause com- pression o the deep bular nerve and pain in the anterior compartment. Compression o the deep bular nerve by tight-tting ski boots, or example, may occur where the nerve passes deep to the inerior extensor retinaculum and the extensor hallucis brevis (see Fig. 7.55A). Pain occurs in the dorsum o the oot and usually radiates to the web space between the 1st and 2nd toes. Because ski boots are a common cause o this type o nerve entrapment, this condition has been called the “ski boot syndrome”; however, the syndrome also occurs in soc- cer players and runners and can also result rom tight shoes. Superfcial Fibular Nerve Entrapment Chronic ankle sprains may produce recurrent stretching o the supercial bular nerve, which may cause pain along the lateral side o the leg and the dorsum o the ankle and oot. Numbness and paresthesia (tickling or tingling) may be present and increase with activity. Fabella in Gastrocnemius Close to its proximal attachment, the lateral head o the gastrocnemius may contain a sesamoid bone, the abella (L., bean), which articulates with the lateral emoral condyle. The abella is visible in lateral radio- graphs o the knee in 3–5% o people (Fig. B7.22). Calcaneal Tendinitis Infammation o the calcaneal tendon constitutes 9–18% o running injuries. Microscopic tears o col- lagen bers in the tendon, particularly just superior 7 7 Femur Patella Fabella Fibula Tibia Lateral view FIGURE B7.22. 766 766 Chapter 7 Lower Limb Chapter 7 Lower Limb to its attachment to the calcaneus, result in tendinitis, which causes pain during walking, especially when wearing rigid- soled shoes. Calcaneal tendinitis oten occurs during repeti- tive activities, especially in individuals who take up running ater prolonged inactivity, or suddenly increase the intensity o their training, but it may also result rom poor ootwear or training suraces. Ruptured Calcaneal Tendon Rupture o the calcaneal tendon is oten sustained by poorly conditioned people with a history o cal- caneal tendinitis. The injury is typically experienced as an audible snap during a orceul push o (plantarfexion with the knee extended) ollowed immediately by sudden cal pain and sudden dorsifexion o the plantarfexed
Ruptured Calcaneal Tendon Rupture o the calcaneal tendon is oten sustained by poorly conditioned people with a history o cal- caneal tendinitis. The injury is typically experienced as an audible snap during a orceul push o (plantarfexion with the knee extended) ollowed immediately by sudden cal pain and sudden dorsifexion o the plantarfexed oot. In a completely ruptured tendon, a gap is palpable, usually 1–5 cm proximal to the calcaneal attachment. The muscles aected are the gastrocnemius, soleus, and plantaris. Calcaneal tendon rupture is probably the most severe acute muscular problem o the leg. Individuals with this injury cannot plantarfex against resistance (cannot raise the heel rom the ground or balance on the aected side), and passive dorsifexion (usually limited to 20° rom neutral) is excessive. Ambulation (walking) is possible only when the limb is laterally (externally) rotated, rolling over the transversely placed oot during the stance phase without push o. Bruising appears in the malleolar region, and a lump usu- ally appears in the cal owing to shortening o the triceps surae. In older or nonathletic people, nonsurgical repairs are oten adequate, but surgical intervention is usually advised or those with active liestyles, such as tennis players. Calcaneal Tendon Reex The ankle jerk refex, or triceps surae refex, is acalca- neal tendon refex. It is a myotatic refex elicited while the person’s legs are dangling over the side o the examining table. The calcaneal tendon is struck briskly with a refex hammer just proximal to the calcaneus (Fig. B7.23). The normal result is plantarfexion o the ankle joint. The calcaneal tendon refex tests the S1 and S2 nerve roots. I the S1 nerve root is injured or compressed, the ankle refex is virtually absent. Calcaneal tendon FIGURE B7.23. Absence o Plantarexion I the muscles o the cal are paralyzed, the cal- caneal tendon is ruptured, or normal push o is painul, a much less eective and ecient push o (rom the midoot) can still be accomplished by the actions o the gluteus maximus and hamstrings in extending the thigh at the hip joint and the quadriceps in extending the knee. Because push o rom the oreoot is not possible (in act, the ankle will be passively dorsifexed as the body’s weight moves anterior to the oot), those attempting to walk in the absence o plantarfexion oten rotate the oot as ar later- ally (externally) as possible during the stance phase to dis- able passive dorsifexion and allow a more eective push o through hip and knee extension exerted at the midoot. Gastrocnemius Strain Gastrocnemius strain (tennis leg) is a painul acute injury resulting rom partial tearing o the medial belly o the gastrocnemius at or near its musculo- tendinous junction, oten seen in individuals older than 40 years o age. It is caused by overstretching the muscle by concomitant ull extension o the knee and dorsifexion o the ankle joint. Usually, an abrupt onset o stabbing pain is ollowed by edema and spasm o the gastrocnemius. Calcaneal Bursitis Calcaneal bursitis (retro-Achilles bursitis) results rom infammation o the deep bursa o the calca- neal tendon, located between the calcaneal tendon and the superior part o the posterior surace o the calcaneus (Fig. B7.24). Calcaneal bursitis causes pain posterior to the heel and occurs commonly during long-distance running, basketball, and tennis. It is caused by excessive riction on the bursa as the tendon continuously slides over it. Venous Return From Leg A venous plexus deep to the triceps surae is involved in the return o blood rom the leg. When a person is standing, the venous return rom the leg depends largely on the muscular activity o the triceps surae Calcaneal tendon Deep calcaneal bursa FIGURE B7.24. (see “Venous Drainage o Lower Limb” in this chapter). Contraction o the cal muscles pumps blood superiorly in the deep veins. The musculovenous pump is improved by the deep ascia that invests the muscles like an elastic stocking. Accessory Soleus An accessory soleus is present in approximately 3% o people (Fig. B7.25). The accessory muscle usu- ally appears as a distal belly medial to the calcaneal tendon. Clinically, an accessory soleus may be associated with pain and edema (swelling) during prolonged exercise. Gastrocnemius Soleus Accessory soleus Posterior view FIGURE B7.25. The Bottom Line POPLITEAL FOSSA AND LEG Popliteal ossa: The popliteal ossa is a at-flled and relatively confned compartment posterior to the knee that is traversed by all neurovascular structures passing between the thigh and the leg. ● The sciatic nerve biurcates at the apex o the ossa, with the common fbular nerve passing laterally along the biceps tendon. ● The tibial nerve, popliteal vein, and popliteal artery bisect the ossa—in that order, rom superfcial (posterior) to deep (anterior). ● Genicular branches o the popliteal artery orm a peri-articular genicular anastomosis around the knee, providing collateral circulation to maintain blood ow in all positions o the knee. Popliteal Fossa and Leg 767 Popliteal Fossa and Leg 767 Posterior Tibial Pulse The posterior tibial pulse can usually be palpated between the posterior surace o the medial malleo- lus and the medial border o the calcaneal tendon (Fig. B7.26). Because the posterior tibial artery passes deep to the fexor retinaculum, it is important when palpating this pulse to have the person invert the oot to relax the retinacu- lum. Failure to do so may lead to the erroneous conclusion that a pulse is absent. Both arteries are examined simultaneously or equal- ity o orce. Palpation o the posterior tibial pulses is essential or examining patients with occlusive periph- eral arterial disease. Although posterior tibial pulses are absent in approximately 15% o normal young people, absence o posterior tibial pulses is a sign o occlusive peripheral arterial disease in people older than 60 years. For example, intermittent claudication, characterized by leg pain and cramps, develops during walking and disap- pears ater rest. These conditions result rom ischemia o the leg muscles caused by narrowing or occlusion o the leg arteries.
Can you give me a summary of these clinicals and important points only for exam purpose
| Compartment | Direction of Spread |
|---|---|
| Anterior | Distally |
| Posterior | Distally |
| Lateral | Proximally into popliteal fossa (along fibular nerve) |
| Fact | Answer |
|---|---|
| Most commonly injured nerve in lower limb | Common fibular nerve |
| Gait in flaccid footdrop | Steppage gait |
| Calcaneal tendon reflex tests | S1, S2 |
| Popliteal aneurysm distinguished by | Thrills + bruits |
| Lateral compartment infection spreads | Proximally into popliteal fossa |
| Posterior tibial pulse - invert foot because | Relaxes flexor retinaculum |
| Ski boot syndrome nerve | Deep fibular nerve (1st-2nd toe web space) |
Create a quick reference PDF cheat sheet of these clinical points
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/popliteal-cheatsheet && cat > /tmp/workspace/popliteal-cheatsheet/generate_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import mm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_LEFT, TA_CENTER from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/popliteal-cheatsheet/Popliteal_Fossa_Leg_Cheatsheet.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=12*mm, rightMargin=12*mm, topMargin=14*mm, bottomMargin=12*mm, ) # ── Colours ────────────────────────────────────────────────────────────────── DARK_BLUE = colors.HexColor("#1a3a5c") MED_BLUE = colors.HexColor("#2563a8") LIGHT_BLUE = colors.HexColor("#dbeafe") ACCENT_RED = colors.HexColor("#c0392b") ACCENT_GOLD = colors.HexColor("#f0a500") LIGHT_GOLD = colors.HexColor("#fff8e1") LIGHT_RED = colors.HexColor("#fdecea") LIGHT_GREEN = colors.HexColor("#e8f5e9") MED_GREEN = colors.HexColor("#2e7d32") WHITE = colors.white DARK_GRAY = colors.HexColor("#2d2d2d") MID_GRAY = colors.HexColor("#555555") LIGHT_GRAY = colors.HexColor("#f4f4f4") BORDER_GRAY = colors.HexColor("#cccccc") # ── Styles ──────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() def S(name, **kw): return ParagraphStyle(name, **kw) title_style = S("Title", fontSize=18, leading=22, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=0) subtitle_style = S("Subtitle", fontSize=9, leading=12, textColor=colors.HexColor("#b0c8e8"), fontName="Helvetica", alignment=TA_CENTER) section_style = S("Section", fontSize=9.5, leading=13, textColor=WHITE, fontName="Helvetica-Bold", spaceBefore=0, spaceAfter=0) bullet_style = S("Bullet", fontSize=8, leading=11.5, textColor=DARK_GRAY, fontName="Helvetica", leftIndent=10, spaceBefore=1) bullet_bold = S("BulletBold", fontSize=8, leading=11.5, textColor=DARK_GRAY, fontName="Helvetica-Bold", leftIndent=10, spaceBefore=1) warn_style = S("Warn", fontSize=8, leading=11, textColor=ACCENT_RED, fontName="Helvetica-Bold", leftIndent=10) key_style = S("Key", fontSize=7.5, leading=10.5, textColor=DARK_GRAY, fontName="Helvetica", leftIndent=4) table_hdr = S("TableHdr", fontSize=8, leading=10, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER) table_cell = S("TableCell", fontSize=7.5, leading=10, textColor=DARK_GRAY, fontName="Helvetica", alignment=TA_LEFT) story = [] # ══════════════════════════════════════════════════════════════════════════════ # HEADER BANNER # ══════════════════════════════════════════════════════════════════════════════ header_data = [[ Paragraph("POPLITEAL FOSSA & LEG", title_style), Paragraph("Clinical Quick-Reference Cheat Sheet | Exam Edition", subtitle_style) ]] header_tbl = Table(header_data, colWidths=[186*mm]) header_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), DARK_BLUE), ("BOTTOMPADDING", (0,0), (-1,-1), 8), ("TOPPADDING", (0,0), (-1,-1), 10), ("LEFTPADDING", (0,0), (-1,-1), 8), ("RIGHTPADDING", (0,0), (-1,-1), 8), ("ROWBACKGROUNDS", (0,0), (-1,-1), [DARK_BLUE]), ("SPAN", (0,0), (-1,-1)), ])) story.append(header_tbl) story.append(Spacer(1, 4*mm)) # ── helper: section header ──────────────────────────────────────────────────── def sec_header(text, color=MED_BLUE): t = Table([[Paragraph(text, section_style)]], colWidths=[186*mm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), color), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 8), ("ROUNDEDCORNERS", [3, 3, 3, 3]), ])) return t def b(text): return Paragraph(f"• {text}", bullet_style) def bb(text): return Paragraph(f"• {text}", bullet_bold) def warn(text): return Paragraph(f"⚠ {text}", warn_style) def sp(h=2): return Spacer(1, h*mm) # ══════════════════════════════════════════════════════════════════════════════ # ROW 1: TWO COLUMNS (Popliteal Artery topics | Nerve Injuries) # ══════════════════════════════════════════════════════════════════════════════ col_w = [91*mm, 91*mm] # ── Left: Popliteal Pulse / Aneurysm / Tibial Nerve ────────────────────────── left_items = [ sec_header("1. POPLITEAL PULSE"), b("Artery is deep → difficult to feel"), b("Patient: <b>prone, knee flexed</b> (relaxes fascia + hamstrings)"), b("Best palpated at inferior fossa (artery contacts tibia)"), warn("Weak/absent = femoral artery obstruction"), sp(2), sec_header("2. POPLITEAL ANEURYSM"), b("Causes <b>edema + pain</b> in popliteal fossa"), b("Distinguished by <b>palpable thrills + bruits</b> on auscultation"), b("Artery lies <b>deep to tibial nerve</b> → nerve compression → pain referred to <b>medial calf / ankle / foot</b>"), b("Distal femur fracture or knee dislocation → can <b>rupture</b> popliteal artery"), b("Artery + vein injury → <b>arteriovenous fistula</b>"), b("Femoral ligation bypassed via <b>genicular anastomosis</b>"), sp(2), sec_header("3. POPLITEAL ABSCESS / TUMOR"), b("Strong deep fascia limits expansion → <b>severe pain</b>"), b("Abscess spreads <b>superiorly & inferiorly</b> (fascia too tough laterally)"), ] # ── Right: Nerve Injuries ───────────────────────────────────────────────────── right_items = [ sec_header("4. TIBIAL NERVE INJURY"), b("Protected position → <b>uncommon</b>"), b("Caused by: deep lacerations, <b>posterior knee dislocation</b>"), b("Paralysis: flexor muscles of leg + intrinsic muscles of <b>sole</b>"), b("Cannot <b>plantarflex</b> ankle or <b>flex toes</b>"), warn("Loss of sensation on SOLE of foot"), sp(2), sec_header("5. COMMON FIBULAR NERVE INJURY ★", color=ACCENT_RED), bb("MOST COMMONLY injured nerve in lower limb"), b("Vulnerable at <b>fibular neck</b> (winds subcutaneously)"), b("Causes: direct trauma, fibular neck fracture, knee dislocation"), b("Results in: paralysis of <b>anterior + lateral compartments</b>"), b("→ Footdrop + unopposed inversion"), warn("Sensation lost: anterolateral leg + dorsum of foot"), b("<b>3 Compensatory Gaits:</b>"), b(" 1. Waddling gait – leans to opposite side"), b(" 2. Swing-out (circumduction) – limb abducted"), bb(" 3. Steppage gait – extra hip + knee flexion (most common)"), b("'Foot slap' = braking action of dorsiflexors lost"), ] # equal row count while len(left_items) < len(right_items): left_items.append(sp(2)) while len(right_items) < len(left_items): right_items.append(sp(2)) two_col = Table([[left_items, right_items]], colWidths=col_w) two_col.setStyle(TableStyle([ ("VALIGN", (0,0), (-1,-1), "TOP"), ("LEFTPADDING", (0,0), (-1,-1), 3), ("RIGHTPADDING", (0,0), (-1,-1), 3), ("TOPPADDING", (0,0), (-1,-1), 0), ("BOTTOMPADDING", (0,0), (-1,-1), 0), ])) story.append(two_col) story.append(sp(3)) # ══════════════════════════════════════════════════════════════════════════════ # ROW 2: Entrapment syndromes + Compartment infections + Shin Splints # ══════════════════════════════════════════════════════════════════════════════ left2 = [ sec_header("6. DEEP FIBULAR NERVE ENTRAPMENT\n(Ski Boot Syndrome)", color=MED_GREEN), b("Tight ski boots / overuse (skiing, running, dancing)"), b("Compressed under <b>inferior extensor retinaculum + EHB</b>"), warn("Pain: dorsum of foot + 1st–2nd toe WEB SPACE"), sp(2), sec_header("7. SUPERFICIAL FIBULAR NERVE ENTRAPMENT", color=MED_GREEN), b("Caused by: <b>chronic ankle sprains</b>"), b("Pain: lateral leg + dorsum of ankle/foot"), b("Numbness + paresthesia (worsens with activity)"), ] right2 = [ sec_header("8. COMPARTMENTAL INFECTION SPREAD"), b("<b>Anterior compartment</b> → spreads <b>distally</b>"), b("<b>Posterior compartment</b> → spreads <b>distally</b>"), warn("Lateral compartment → spreads PROXIMALLY into popliteal fossa (along fibular nerve)"), b("Treatment: <b>Fasciotomy</b> to relieve pressure"), sp(2), sec_header("9. SHIN SPLINTS (Tibialis Anterior Strain)"), b("Pain over <b>distal 2/3 of tibia</b>"), b("Mild form of <b>anterior compartment syndrome</b>"), b("Cause: repetitive microtrauma → periosteal tears"), b("Common in sedentary people, runners without warm-up"), ] while len(left2) < len(right2): left2.append(sp(1)) while len(right2) < len(left2): right2.append(sp(1)) row2 = Table([[left2, right2]], colWidths=col_w) row2.setStyle(TableStyle([ ("VALIGN", (0,0), (-1,-1), "TOP"), ("LEFTPADDING", (0,0), (-1,-1), 3), ("RIGHTPADDING", (0,0), (-1,-1), 3), ("TOPPADDING", (0,0), (-1,-1), 0), ("BOTTOMPADDING", (0,0), (-1,-1), 0), ])) story.append(row2) story.append(sp(3)) # ══════════════════════════════════════════════════════════════════════════════ # ROW 3: Calcaneal Tendon conditions (full width split 3 cols) # ══════════════════════════════════════════════════════════════════════════════ c3w = [62*mm, 62*mm, 62*mm] col_a = [ sec_header("10. CALCANEAL TENDINITIS"), b("9–18% of running injuries"), b("Collagen tears <b>just superior to</b> calcaneal attachment"), b("Pain during walking with <b>rigid-soled shoes</b>"), b("Risk: sudden increase in training, poor footwear"), sp(2), sec_header("11. CALCANEAL BURSITIS\n(Retro-Achilles Bursitis)"), b("Inflammation of <b>deep bursa</b> between calcaneal tendon & posterior calcaneus"), b("Pain <b>posterior to heel</b>"), b("Common: long-distance running, basketball, tennis"), b("Cause: excessive tendon friction over bursa"), ] col_b = [ sec_header("12. RUPTURED CALCANEAL TENDON ★", color=ACCENT_RED), b("Poorly conditioned people + history of tendinitis"), b("Mechanism: forceful <b>plantarflexion with knee extended</b>"), bb("Signs:"), b(" • Audible SNAP"), b(" • Palpable gap <b>1–5 cm proximal</b> to attachment"), b(" • Cannot plantarflex against resistance"), b(" • Excessive passive dorsiflexion (>20°)"), b(" • Bruising in malleolar region"), b(" • Calf lump (triceps surae shortening)"), warn("Management: nonsurgical (older/inactive); SURGICAL (active)"), ] col_c = [ sec_header("13. CALCANEAL TENDON REFLEX"), b("Tests <b>S1 and S2</b> nerve roots"), b("Strike tendon proximal to calcaneus → plantarflexion"), warn("Absent reflex = S1 nerve root injury"), sp(2), sec_header("14. GASTROCNEMIUS STRAIN\n(Tennis Leg)"), b("Partial tear of <b>medial belly</b> at musculotendinous junction"), b("Age: typically <b>>40 years</b>"), b("Mechanism: simultaneous <b>full knee extension +\nankle dorsiflexion</b>"), b("Sudden stabbing pain + edema + spasm"), sp(2), sec_header("15. FABELLA"), b("Sesamoid in lateral head of gastrocnemius"), warn("Visible in only 3–5% of people on lateral X-ray"), ] while len(col_a) < len(col_b): col_a.append(sp(1)) while len(col_b) < len(col_a): col_b.append(sp(1)) while len(col_c) < len(col_a): col_c.append(sp(1)) while len(col_a) < len(col_c): col_a.append(sp(1)) while len(col_b) < len(col_c): col_b.append(sp(1)) row3 = Table([[col_a, col_b, col_c]], colWidths=c3w) row3.setStyle(TableStyle([ ("VALIGN", (0,0), (-1,-1), "TOP"), ("LEFTPADDING", (0,0), (-1,-1), 3), ("RIGHTPADDING", (0,0), (-1,-1), 3), ("TOPPADDING", (0,0), (-1,-1), 0), ("BOTTOMPADDING", (0,0), (-1,-1), 0), ])) story.append(row3) story.append(sp(3)) # ══════════════════════════════════════════════════════════════════════════════ # POSTERIOR TIBIAL PULSE (full width) # ══════════════════════════════════════════════════════════════════════════════ story.append(sec_header("16. POSTERIOR TIBIAL PULSE & PERIPHERAL ARTERIAL DISEASE")) story.append(sp(1)) pt_items = [ [b("Palpated between <b>posterior medial malleolus + medial border of calcaneal tendon</b>"), b("<b>Invert foot</b> first to relax flexor retinaculum (prevents false-negative)"), b("Absent in ~15% of <b>normal young people</b> (not pathological)")], [warn("Absent in >60 yrs = OCCLUSIVE PERIPHERAL ARTERIAL DISEASE"), b("<b>Intermittent claudication</b> = leg pain during walking, relieved by rest"), b("Cause: ischemia from arterial narrowing/occlusion")], ] pt_tbl = Table(pt_items, colWidths=[62*mm, 62*mm, 62*mm]) pt_tbl.setStyle(TableStyle([ ("VALIGN", (0,0), (-1,-1), "TOP"), ("LEFTPADDING", (0,0), (-1,-1), 4), ("TOPPADDING", (0,0), (-1,-1), 2), ("BOTTOMPADDING", (0,0), (-1,-1), 2), ])) story.append(pt_tbl) story.append(sp(3)) # ══════════════════════════════════════════════════════════════════════════════ # QUICK-REFERENCE TABLE # ══════════════════════════════════════════════════════════════════════════════ story.append(HRFlowable(width="100%", thickness=1.5, color=DARK_BLUE, spaceAfter=4)) story.append(sec_header("★ HIGH-YIELD QUICK-REFERENCE TABLE", color=DARK_BLUE)) story.append(sp(1)) qr_data = [ [Paragraph("Fact / Question", table_hdr), Paragraph("Key Answer", table_hdr)], [Paragraph("Most commonly injured nerve in lower limb", key_style), Paragraph("<b>Common fibular nerve</b> (at fibular neck)", key_style)], [Paragraph("Gait in flaccid footdrop", key_style), Paragraph("<b>Steppage gait</b> (high-stepping)", key_style)], [Paragraph("Calcaneal tendon reflex tests nerve roots", key_style), Paragraph("<b>S1 and S2</b>", key_style)], [Paragraph("How to distinguish popliteal aneurysm", key_style), Paragraph("<b>Palpable thrills + bruits</b> on auscultation", key_style)], [Paragraph("Direction infection spreads from lateral leg compartment", key_style), Paragraph("<b>Proximally → into popliteal fossa</b> (along fibular nerve)", key_style)], [Paragraph("Why invert foot before palpating posterior tibial pulse", key_style), Paragraph("Relaxes <b>flexor retinaculum</b> (prevents false-negative)", key_style)], [Paragraph("Ski boot syndrome nerve + symptom location", key_style), Paragraph("<b>Deep fibular nerve;</b> pain radiates to <b>1st–2nd toe web space</b>", key_style)], [Paragraph("Tibial nerve injury → sensation lost where", key_style), Paragraph("<b>Sole of foot</b>", key_style)], [Paragraph("Ruptured calcaneal tendon: palpable gap location", key_style), Paragraph("<b>1–5 cm proximal</b> to calcaneal attachment", key_style)], [Paragraph("Absent ankle jerk reflex (>60 yrs) significance", key_style), Paragraph("<b>Occlusive peripheral arterial disease</b>", key_style)], [Paragraph("Tennis leg: which part of gastrocnemius tears", key_style), Paragraph("<b>Medial belly</b> at musculotendinous junction", key_style)], [Paragraph("Fabella visibility on X-ray", key_style), Paragraph("<b>3–5%</b> of people (lateral view)", key_style)], [Paragraph("Calcaneal tendinitis: % of running injuries", key_style), Paragraph("<b>9–18%</b>", key_style)], ] qr_table = Table(qr_data, colWidths=[95*mm, 91*mm]) qr_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_GRAY]), ("GRID", (0,0), (-1,-1), 0.4, BORDER_GRAY), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ])) story.append(qr_table) story.append(sp(3)) # ══════════════════════════════════════════════════════════════════════════════ # FOOTER # ══════════════════════════════════════════════════════════════════════════════ footer_style = S("Footer", fontSize=7, leading=9, textColor=colors.HexColor("#888888"), fontName="Helvetica", alignment=TA_CENTER) story.append(HRFlowable(width="100%", thickness=0.5, color=BORDER_GRAY)) story.append(sp(1)) story.append(Paragraph( "Popliteal Fossa & Leg Clinical Cheatsheet | Based on Moore's Clinically Oriented Anatomy | For Exam Use Only", footer_style)) # ── Build ───────────────────────────────────────────────────────────────────── doc.build(story) print("PDF generated:", OUTPUT) PYEOF echo "Script written"
cd /tmp/workspace/popliteal-cheatsheet && python generate_pdf.py
ls -lh /tmp/workspace/popliteal-cheatsheet/
Popliteal Fossa Leg Cheatsheet
PDF Document · PDF
do the same with these what you did with the text above
mkdir -p /tmp/workspace/bones-cheatsheet && cat > /tmp/workspace/bones-cheatsheet/generate_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import mm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_LEFT, TA_CENTER OUTPUT = "/tmp/workspace/bones-cheatsheet/Bones_Lower_Limb_Cheatsheet.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=11*mm, rightMargin=11*mm, topMargin=13*mm, bottomMargin=11*mm, ) # ── Colours ──────────────────────────────────────────────────────────────── DARK_BLUE = colors.HexColor("#1a3a5c") MED_BLUE = colors.HexColor("#1e5fa8") LIGHT_BLUE = colors.HexColor("#dbeafe") ACCENT_RED = colors.HexColor("#b71c1c") MED_RED = colors.HexColor("#c0392b") MED_GREEN = colors.HexColor("#2e7d32") DARK_PURP = colors.HexColor("#4a148c") MED_PURP = colors.HexColor("#6a1b9a") ORANGE = colors.HexColor("#e65100") TEAL = colors.HexColor("#00695c") WHITE = colors.white DARK_GRAY = colors.HexColor("#2d2d2d") LIGHT_GRAY = colors.HexColor("#f4f4f4") BORDER_GRAY = colors.HexColor("#cccccc") # ── Styles ───────────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) title_s = S("T", fontSize=17, leading=21, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER) sub_s = S("Su", fontSize=8.5, leading=11, textColor=colors.HexColor("#b0c8e8"), fontName="Helvetica", alignment=TA_CENTER) sec_s = S("Se", fontSize=9, leading=12, textColor=WHITE, fontName="Helvetica-Bold") bul_s = S("B", fontSize=7.8, leading=11, textColor=DARK_GRAY, fontName="Helvetica", leftIndent=9, spaceBefore=1) bolb_s = S("BB", fontSize=7.8, leading=11, textColor=DARK_GRAY, fontName="Helvetica-Bold", leftIndent=9, spaceBefore=1) warn_s = S("W", fontSize=7.8, leading=10.5, textColor=ACCENT_RED, fontName="Helvetica-Bold", leftIndent=9) key_s = S("K", fontSize=7.5, leading=10, textColor=DARK_GRAY, fontName="Helvetica") thdr_s = S("TH", fontSize=8, leading=10, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER) foot_s = S("F", fontSize=6.8, leading=9, textColor=colors.HexColor("#888888"), fontName="Helvetica", alignment=TA_CENTER) story = [] # ── helpers ──────────────────────────────────────────────────────────────── def hdr(text, bg=MED_BLUE): t = Table([[Paragraph(text, sec_s)]], colWidths=[188*mm]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),bg), ("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),7), ])) return t def b(txt): return Paragraph(f"• {txt}", bul_s) def bb(txt): return Paragraph(f"• {txt}", bolb_s) def w(txt): return Paragraph(f"⚠ {txt}", warn_s) def sp(h=2): return Spacer(1, h*mm) def two_col(left, right, lw=93*mm, rw=93*mm): while len(left)<len(right): left.append(sp(1)) while len(right)<len(left): right.append(sp(1)) t = Table([[left, right]], colWidths=[lw, rw]) t.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),3), ("RIGHTPADDING",(0,0),(-1,-1),3), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) return t def three_col(a,b_,c, cw=62*mm): mx = max(len(a),len(b_),len(c)) while len(a)<mx: a.append(sp(1)) while len(b_)<mx: b_.append(sp(1)) while len(c)<mx: c.append(sp(1)) t = Table([[a,b_,c]], colWidths=[cw,cw,cw]) t.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),3), ("RIGHTPADDING",(0,0),(-1,-1),3), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) return t # ══ HEADER ════════════════════════════════════════════════════════════════════ hdr_tbl = Table([[ Paragraph("BONES OF LOWER LIMB", title_s), Paragraph("Clinical Quick-Reference Cheat Sheet | Exam Edition", sub_s) ]], colWidths=[188*mm]) hdr_tbl.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),DARK_BLUE), ("BOTTOMPADDING",(0,0),(-1,-1),8),("TOPPADDING",(0,0),(-1,-1),10), ("LEFTPADDING",(0,0),(-1,-1),8),("RIGHTPADDING",(0,0),(-1,-1),8), ("SPAN",(0,0),(-1,-1)), ])) story.append(hdr_tbl) story.append(sp(3)) # ══ ROW 1: General + Hip Bone ═════════════════════════════════════════════════ left1 = [ hdr("1. LOWER LIMB INJURIES (GENERAL)"), b("Knee, leg & foot are <b>most common</b> lower limb injuries"), b("Hip injuries = <b><3%</b> of lower limb injuries"), b("Causes: acute trauma (contact sports), overuse (endurance sports)"), w("Adolescents most vulnerable — epiphysial plates still present"), b("<b>Epiphysial plates</b> = hyaline cartilage discs between metaphysis & epiphysis"), b("During growth spurts: bone grows faster than attached muscle → stress on plates"), w("Osteochondrosis = irritation/injury to epiphysial plates from rapid growth"), ] right1 = [ hdr("2. INJURIES OF HIP BONE", bg=MED_RED), bb("Hip fractures = pelvic fractures (correct terminology)"), b("Most fractures involve femoral head, neck or trochanters"), b("<b>Avulsion fractures of hip</b>: sudden accel/decel forces (sprinting, kicking, jumping)"), b("Small bone piece torn away at <b>apophyses</b> (bony projections without secondary ossification centers)"), b("Common avulsion sites:"), b(" • Anterior superior & inferior iliac spines"), b(" • Ischial tuberosities"), b(" • Ischiopubic rami"), ] story.append(two_col(left1, right1)) story.append(sp(3)) # ══ ROW 2: Coxa Vara/Valga + Dislocated Epiphysis ════════════════════════════ left2 = [ hdr("3. COXA VARA AND COXA VALGA"), b("Angle of inclination = angle between femoral neck & femoral shaft"), b("Varies with age, sex, and femoral ossification"), bb("Coxa vara = <b>DECREASED</b> angle of inclination"), b(" → mild shortening of lower limb + limits passive abduction"), bb("Coxa valga = <b>INCREASED</b> angle of inclination"), b("Causes: congenital, rickets, or pathological process weakening neck"), ] right2 = [ hdr("4. DISLOCATED EPIPHYSIS OF FEMORAL HEAD"), b("Age: <b>10–17 years</b> (older children/adolescents)"), b("Epiphysis slips away from femoral neck (weakened epiphysial plate)"), b("Causes: acute trauma OR repetitive microtrauma (shearing during abduction + lateral rotation)"), b("Epiphysis slowly dislocates → progressive <b>coxa vara</b>"), w("Initial symptom: hip pain that may be REFERRED to the knee"), b("Radiograph of proximal femur required to confirm diagnosis"), ] story.append(two_col(left2, right2)) story.append(sp(3)) # ══ ROW 3: Femoral Fractures (full width 3-col) ═══════════════════════════════ col_a = [ hdr("5. FEMORAL FRACTURES ★", bg=ACCENT_RED), b("Despite large size, femur is commonly fractured"), b("Fracture type is <b>age- and sex-related</b>"), bb("Femoral NECK: most frequently fractured"), b(" → Narrowest & weakest part"), b(" → Lies at marked angle to weight-bearing line"), b(" → Increasingly vulnerable with age, esp. females (osteoporosis)"), b("Proximal femur fractures occur at:"), b(" • <b>Transcervical</b> (middle of neck)"), b(" • <b>Intertrochanteric</b>"), w("Intracapsular fractures → risk of femoral head degeneration (vascular trauma)"), ] col_b = [ hdr("5b. FEMORAL FRACTURES (cont.)", bg=ACCENT_RED), b("Indirect trauma (stumbling, stepping off curb) → proximal fractures"), b("Angle of inclination → fragments inherently unstable + <b>impaction</b>"), b("Muscle spasm contributes to limb shortening"), b("<b>Greater trochanter + shaft fractures</b>: direct trauma (falls, being hit)"), b(" → Common in younger active years, MVC, skiing, climbing"), b(" → Spiral fracture = fragments override → foreshortening"), b(" → Comminuted = fragments displaced in multiple directions"), w("Distal femur fracture → may compromise popliteal artery (always check)"), b("Union of comminuted femoral shaft fracture: <b>up to 1 year</b>"), ] col_c = [ hdr("6. TIBIAL FRACTURES"), b("Tibial shaft narrowest at junction of <b>middle & inferior thirds</b>"), b(" → Most frequent fracture site"), w("Poorest blood supply → most common site for compound fracture"), b("Anterior surface subcutaneous → common site for compound fractures"), b("'Bumper fracture': car bumper strikes leg → tibia fracture"), b("Fracture of tibia through nutrient canal → risk of <b>nonunion</b>"), b("<b>Transverse march (stress) fractures</b>: inferior third, long hikers"), b("<b>Boot-top fracture</b>: torsion during skiing → diagonal fracture at middle-inferior junction"), b("Indirect violence (foot fixed + bone turns) → transverse fractures"), ] story.append(three_col(col_a, col_b, col_c)) story.append(sp(3)) # ══ ROW 4: Epiphysial + Fibular + Bone Grafts ═══════════════════════════════ left4 = [ hdr("7. FRACTURES INVOLVING EPIPHYSIAL PLATES"), b("Tibial fractures in children more serious if epiphysial plates involved"), b(" → Normal bone growth may be jeopardized"), b("Tibial tuberosity forms by inferior bone growth from superior epiphysial center at ~<b>10 yrs</b>"), b("Separate center for tibial tuberosity at ~<b>12 yrs</b>"), w("Osgood-Schlatter Disease: disruption of epiphysial plate at tibial tuberosity → chronic pain during adolescence (especially young athletes)"), b("Seen on X-ray: prominence + fragmentation of tibial tuberosity"), ] right4 = [ hdr("8. FIBULAR FRACTURES"), b("Fibular fractures: commonly <b>2–6 cm proximal</b> to lateral malleolus"), b("Often associated with <b>fracture-dislocations of ankle joint</b>"), b("Combined with tibial fractures (Fig B7.6B)"), b("Excessive inversion: ankle ligaments tear → talus forced against lateral malleolus → <b>shears it off</b>"), b("<b>Lateral + medial malleoli fractures</b>: common in soccer & basketball"), w("Walking compromised: fibula's role in ankle stability"), b("<b>Boot-top fracture</b>: high-speed forward fall + rigid ski boot → leg angled → diagonal fibula fracture"), ] story.append(two_col(left4, right4)) story.append(sp(3)) # ══ ROW 5: Bone Grafts + IO infusion + Calcaneal + Talar ═════════════════════ col_5a = [ hdr("9. BONE GRAFTS", bg=TEAL), b("If major bone destroyed → limb becomes useless"), b("Bone transplant → may avoid amputation"), b("<b>Fibula</b>: common source for bone grafting"), b("Even after shaft segment removed → walking, running, jumping can be normal"), b("Free vascularized fibulas: restore skeletal integrity in congenital defects + post-tumor excision"), w("Nutrient foramen in MIDDLE THIRD of fibula — graft must include blood supply to medullary cavity"), b("Anterior tibia: subcutaneous → accessible for obtaining grafts in children"), ] col_5b = [ hdr("10. INTRAOSSEOUS (IO) INFUSION", bg=TEAL), b("Delivers hydration, blood, medications into <b>medullary cavity</b>"), b("Used when peripheral venous access is difficult"), b("Used in: traumatic shock, circulatory collapse"), bb("Most common site: <b>proximal tibia</b>"), b(" → Thin skin + prominent landmarks aid insertion"), b(" → Insert <b>2 cm distal + slightly medial</b> from tibial tuberosity"), b("Other sites: distal femur, tibia, fibula, proximal humerus, manubrium"), w("Must replace IO with peripheral/central line within 24 hrs (osteomyelitis risk)"), ] col_5c = [ hdr("11. CALCANEAL FRACTURES"), b("Hard fall onto heel (e.g., from ladder) → calcaneus fractures into several pieces"), b("Produces <b>comminuted fracture</b>"), w("Disrupts subtalar (talocalcaneal) joint where talus articulates → usually DISABLING"), sp(2), hdr("12. FRACTURES OF TALAR NECK"), b("Mechanism: <b>severe dorsiflexion</b> (pressing hard on brake pedal in head-on collision)"), w("Body of talus may dislocate POSTERIORLY"), ] story.append(three_col(col_5a, col_5b, col_5c)) story.append(sp(3)) # ══ ROW 6: Metatarsal + Os Trigonum + Sesamoids ══════════════════════════════ left6 = [ hdr("13. FRACTURES OF METATARSALS", bg=MED_PURP), b("Causes: heavy object falls on foot, run over by heavy object"), b("Common in dancers (especially ballet — <b>demi-pointe technique</b>)"), b("<b>Dancer's fracture</b>: dancer loses balance, full weight on metatarsal"), b("<b>Fatigue fractures</b>: repeated stress during prolonged walking (transverse)"), b("Sudden violent inversion → tuberosity of 5th metatarsal avulsed by <b>fibularis brevis</b>"), bb("Avulsion fracture of 5th metatarsal tuberosity"), b(" → Pain + edema at base of 5th metatarsal"), w("Common in basketball & tennis; associated with severe ankle sprains"), ] right6 = [ hdr("14. OS TRIGONUM", bg=MED_PURP), b("Accessory ossicle — secondary ossification center of talus fails to unite"), b("Occurs in <b>14–25%</b> of adults, more commonly bilateral"), w("Increased prevalence in SOCCER PLAYERS and BALLET DANCERS"), b("May result from forceful plantarflexion in early teens"), b("Partly/fully ossified center may fracture → progress to nonunion → accessory ossicle (os trigonum)"), sp(2), hdr("15. FRACTURE OF SESAMOID BONES"), b("Sesamoids of great toe (in tendon of flexor hallucis longus)"), b("Bear weight during latter part of stance phase"), b("Sesamoids develop before birth; begin ossifying in late childhood"), w("Fracture may result from a CRUSHING injury"), ] story.append(two_col(left6, right6)) story.append(sp(3)) # ══ HIGH-YIELD TABLE ══════════════════════════════════════════════════════════ story.append(HRFlowable(width="100%", thickness=1.5, color=DARK_BLUE, spaceAfter=3)) story.append(hdr("★ HIGH-YIELD QUICK-REFERENCE TABLE", bg=DARK_BLUE)) story.append(sp(1)) rows = [ [Paragraph("Fact / Question", thdr_s), Paragraph("Key Answer", thdr_s)], [Paragraph("Hip injuries are what % of lower limb injuries?", key_s), Paragraph("<b><3%</b>", key_s)], [Paragraph("Most frequently fractured part of femur", key_s), Paragraph("<b>Femoral neck</b> (narrowest, weakest, angled to weight-bearing line)", key_s)], [Paragraph("Most vulnerable group for femoral neck fractures", key_s), Paragraph("<b>Elderly females</b> (osteoporosis)", key_s)], [Paragraph("Intracapsular femoral neck fractures risk", key_s), Paragraph("<b>Femoral head avascular necrosis</b> (vascular trauma)", key_s)], [Paragraph("Most common site of tibial shaft fracture", key_s), Paragraph("<b>Junction of middle & inferior thirds</b> (narrowest + poorest blood supply)", key_s)], [Paragraph("Bumper fracture mechanism", key_s), Paragraph("<b>Car bumper strikes leg</b> → compound tibial fracture", key_s)], [Paragraph("Boot-top fracture mechanism", key_s), Paragraph("<b>Torsion during skiing</b> → diagonal fracture at middle-inferior third of tibia/fibula", key_s)], [Paragraph("Osgood-Schlatter disease involves which structure?", key_s), Paragraph("<b>Epiphysial plate at tibial tuberosity</b> → chronic pain in adolescent athletes", key_s)], [Paragraph("Most common site for IO infusion", key_s), Paragraph("<b>Proximal tibia</b> (2 cm distal + slightly medial to tibial tuberosity)", key_s)], [Paragraph("IO infusion must be replaced within how long?", key_s), Paragraph("<b>24 hours</b> (osteomyelitis risk)", key_s)], [Paragraph("Calcaneal fracture disrupts which joint?", key_s), Paragraph("<b>Subtalar (talocalcaneal) joint</b>", key_s)], [Paragraph("Talar neck fracture mechanism", key_s), Paragraph("<b>Severe dorsiflexion</b> (brake pedal in head-on collision) → talus dislocates posteriorly", key_s)], [Paragraph("Avulsion fracture of 5th metatarsal tuberosity: which muscle?", key_s), Paragraph("<b>Fibularis (peroneus) brevis</b>", key_s)], [Paragraph("Os trigonum prevalence + high-risk groups", key_s), Paragraph("<b>14–25%</b> of adults; soccer players + ballet dancers", key_s)], [Paragraph("Avulsion fracture sites of hip bone", key_s), Paragraph("<b>ASIS, AIIS, ischial tuberosities, ischiopubic rami</b>", key_s)], [Paragraph("Age for dislocated epiphysis of femoral head", key_s), Paragraph("<b>10–17 years</b>; referred pain to knee", key_s)], [Paragraph("Coxa vara vs. coxa valga", key_s), Paragraph("<b>Vara = decreased angle</b> (bow-legged); <b>Valga = increased angle</b>", key_s)], [Paragraph("Fibular fracture common location", key_s), Paragraph("<b>2–6 cm proximal to lateral malleolus</b>; often with ankle fracture-dislocation", key_s)], [Paragraph("Nutrient foramen of fibula location (for grafts)", key_s), Paragraph("<b>Middle third</b> — graft must include medullary blood supply", key_s)], ] qr = Table(rows, colWidths=[96*mm, 90*mm]) qr.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,0),DARK_BLUE), ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LIGHT_GRAY]), ("GRID",(0,0),(-1,-1),0.4,BORDER_GRAY), ("TOPPADDING",(0,0),(-1,-1),3),("BOTTOMPADDING",(0,0),(-1,-1),3), ("LEFTPADDING",(0,0),(-1,-1),5),("RIGHTPADDING",(0,0),(-1,-1),5), ("VALIGN",(0,0),(-1,-1),"MIDDLE"), ])) story.append(qr) story.append(sp(3)) # ══ FOOTER ════════════════════════════════════════════════════════════════════ story.append(HRFlowable(width="100%", thickness=0.5, color=BORDER_GRAY)) story.append(sp(1)) story.append(Paragraph( "Bones of Lower Limb Clinical Cheatsheet | Based on Moore's Clinically Oriented Anatomy | For Exam Use Only", foot_s)) doc.build(story) print("PDF generated:", OUTPUT) PYEOF echo "Script written"
cd /tmp/workspace/bones-cheatsheet && python generate_pdf.py
ls -lh /tmp/workspace/bones-cheatsheet/
Bones Lower Limb Cheatsheet
PDF Document · PDF
| Section | Topic |
|---|---|
| 1 | Lower Limb Injuries - General (epiphysial plates, osteochondrosis) |
| 2 | Hip Bone Injuries (avulsion fractures + 4 common sites) |
| 3 | Coxa Vara vs. Coxa Valga (angle of inclination) |
| 4 | Dislocated Epiphysis of Femoral Head (10-17 yrs, knee referral) |
| 5 | Femoral Fractures (neck, shaft, distal - age/sex related) |
| 6 | Tibial Fractures (boot-top, bumper, march stress fractures) |
| 7 | Epiphysial Plate Fractures + Osgood-Schlatter Disease |
| 8 | Fibular Fractures (ankle dislocation, lateral malleolus shear) |
| 9 | Bone Grafts (fibula as donor, nutrient foramen location) |
| 10 | Intraosseous Infusion (proximal tibia, 24-hr replacement rule) |
| 11 | Calcaneal Fractures (subtalar joint disruption) |
| 12 | Talar Neck Fractures (brake pedal mechanism) |
| 13 | Metatarsal Fractures (dancer's fracture, fibularis brevis avulsion) |
| 14 | Os Trigonum (14-25%, soccer/ballet) |
| 15 | Sesamoid Bone Fractures |
try again
cat > /tmp/workspace/bones-cheatsheet/generate_v2.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import mm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether, PageBreak) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_LEFT, TA_CENTER OUTPUT = "/tmp/workspace/bones-cheatsheet/Bones_Lower_Limb_Cheatsheet_v2.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=12*mm, rightMargin=12*mm, topMargin=14*mm, bottomMargin=12*mm, ) # ─── Colours ────────────────────────────────────────────────────────────── DARK_BLUE = colors.HexColor("#1a3a5c") MED_BLUE = colors.HexColor("#2563a8") ACCENT_RED = colors.HexColor("#b71c1c") MED_RED = colors.HexColor("#c0392b") MED_GREEN = colors.HexColor("#2e7d32") DARK_GREEN = colors.HexColor("#1b5e20") TEAL = colors.HexColor("#00695c") ORANGE = colors.HexColor("#bf360c") MED_PURP = colors.HexColor("#6a1b9a") WHITE = colors.white DARK_GRAY = colors.HexColor("#1e1e1e") LIGHT_GRAY = colors.HexColor("#f5f5f5") ALT_GRAY = colors.HexColor("#e8e8e8") BORDER_GRAY = colors.HexColor("#c0c0c0") # ─── Styles ─────────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) title_s = S("Ti", fontSize=19, leading=23, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER) sub_s = S("Su", fontSize=8.5, leading=12, textColor=colors.HexColor("#aac4de"), fontName="Helvetica", alignment=TA_CENTER) sec_s = S("Se", fontSize=9.2, leading=13, textColor=WHITE, fontName="Helvetica-Bold") bul_s = S("Bu", fontSize=8, leading=11.5, textColor=DARK_GRAY, fontName="Helvetica", leftIndent=10, spaceBefore=1) bolb_s = S("Bb", fontSize=8, leading=11.5, textColor=DARK_GRAY, fontName="Helvetica-Bold", leftIndent=10, spaceBefore=1) warn_s = S("Wn", fontSize=8, leading=11, textColor=ACCENT_RED, fontName="Helvetica-Bold", leftIndent=10) key_s = S("Ke", fontSize=7.5, leading=10.5, textColor=DARK_GRAY, fontName="Helvetica", leftIndent=4) thdr_s = S("Th", fontSize=8.2, leading=11, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER) foot_s = S("Fo", fontSize=7, leading=9, textColor=colors.HexColor("#888888"), fontName="Helvetica", alignment=TA_CENTER) pg2hdr_s = S("P2", fontSize=11, leading=14, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER) story = [] W = 186*mm # usable width # ─── helpers ────────────────────────────────────────────────────────────── def banner(text, bg=MED_BLUE): t = Table([[Paragraph(text, sec_s)]], colWidths=[W]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),bg), ("TOPPADDING",(0,0),(-1,-1),4), ("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),8), ])) return t def b(txt): return Paragraph(f"• {txt}", bul_s) def bb(txt): return Paragraph(f"• {txt}", bolb_s) def w(txt): return Paragraph(f"⚠ {txt}", warn_s) def sp(h=2): return Spacer(1, h*mm) def col2(L, R, lw=91*mm, rw=91*mm): m = max(len(L), len(R)) while len(L)<m: L.append(sp(1)) while len(R)<m: R.append(sp(1)) t = Table([[L, R]], colWidths=[lw, rw]) t.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),3), ("RIGHTPADDING",(0,0),(-1,-1),3), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) return t def col3(A, B, C, cw=62*mm): m = max(len(A),len(B),len(C)) while len(A)<m: A.append(sp(1)) while len(B)<m: B.append(sp(1)) while len(C)<m: C.append(sp(1)) t = Table([[A, B, C]], colWidths=[cw, cw, cw]) t.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1),3), ("RIGHTPADDING",(0,0),(-1,-1),3), ("TOPPADDING",(0,0),(-1,-1),0), ("BOTTOMPADDING",(0,0),(-1,-1),0), ])) return t # ═══════════════════════════════════════════════════════════════════════════ # PAGE 1 # ═══════════════════════════════════════════════════════════════════════════ # ── Header banner ────────────────────────────────────────────────────────── hdr = Table([[ Paragraph("BONES OF THE LOWER LIMB", title_s), Paragraph("Clinical Quick-Reference Cheat Sheet · Exam Edition", sub_s), ]], colWidths=[W]) hdr.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),DARK_BLUE), ("TOPPADDING",(0,0),(-1,-1),10), ("BOTTOMPADDING",(0,0),(-1,-1),9), ("LEFTPADDING",(0,0),(-1,-1),8), ("SPAN",(0,0),(-1,-1)), ])) story.append(hdr) story.append(sp(4)) # ── Block 1: General Injuries + Hip Bone ────────────────────────────────── L1 = [ banner("1. LOWER LIMB INJURIES — GENERAL"), b("Knee, leg & foot = <b>most common</b> lower limb injuries"), b("Hip injuries = <b><3%</b> of lower limb injuries"), b("Mechanisms: acute trauma (contact sports) OR overuse (endurance)"), w("Adolescents most vulnerable — epiphysial plates still open"), b("<b>Epiphysial plates</b> = hyaline cartilage discs at metaphysis–epiphysis junction; allow bone lengthening"), b("Growth spurts: bone grows faster than muscle → stress on plates"), w("Osteochondrosis = irritation/injury of epiphysial plates due to physical activity + rapid growth"), ] R1 = [ banner("2. INJURIES OF THE HIP BONE", bg=MED_RED), bb("Hip fractures are correctly termed <b>pelvic fractures</b>"), b("'Hip fracture' commonly applied to femoral head, neck or trochanters"), b("<b>Avulsion fractures of the hip</b>: sudden acceleration or deceleration"), b("Mechanism: sprinting, kicking (football/soccer), hurdle jumping, basketball, martial arts"), b("A piece of bone torn at <b>apophyses</b> (bony projections lacking secondary ossification centers)"), bb("Common avulsion sites:"), b(" • Anterior superior iliac spine (ASIS)"), b(" • Anterior inferior iliac spine (AIIS)"), b(" • Ischial tuberosities"), b(" • Ischiopubic rami"), ] story.append(col2(L1, R1)) story.append(sp(3)) # ── Block 2: Coxa Vara/Valga + Dislocated Epiphysis ─────────────────────── L2 = [ banner("3. COXA VARA AND COXA VALGA"), b("Angle of inclination = angle between <b>femoral neck</b> and <b>femoral shaft</b>"), b("Varies with age, sex, and ossification of femoral neck"), bb("Coxa vara = <b>DECREASED</b> inclination angle"), b(" → mild lower limb shortening + limits passive hip abduction"), bb("Coxa valga = <b>INCREASED</b> inclination angle"), b("Causes of coxa vara: congenital defect in ossification, rickets, pathological process weakening femoral neck"), w("The term 'vara/valgus' = deformity where DISTAL element deviates TOWARD (vara) or AWAY FROM (valga) midline"), ] R2 = [ banner("4. DISLOCATED EPIPHYSIS OF FEMORAL HEAD"), b("Age: <b>10–17 years</b> (older children / adolescents)"), b("Weakened epiphysial plate → femoral head epiphysis slips from neck"), b("Caused by: acute trauma OR repetitive microtrauma with shearing stress"), b("Shearing stress occurs during <b>abduction + lateral rotation</b> of thigh"), b("Epiphysis often dislocates slowly → progressive <b>coxa vara</b>"), w("Initial symptom: hip pain REFERRED to the KNEE"), w("Radiograph of proximal femur required to confirm diagnosis"), ] story.append(col2(L2, R2)) story.append(sp(3)) # ── Block 3: Femoral Fractures (3-col) ──────────────────────────────────── cA = [ banner("5a. FEMORAL FRACTURES ★", bg=ACCENT_RED), bb("Despite size & strength, femur commonly fractured"), b("Fracture type is <b>age- and sex-related</b>"), b("Femoral <b>NECK</b>: most frequently fractured part"), b(" → Narrowest & weakest part of femur"), b(" → Lies at marked angle to weight-bearing line"), b(" → Increasingly vulnerable with age; especially <b>females with osteoporosis</b>"), b("Proximal femur fracture locations:"), b(" • <b>Transcervical</b> (middle of neck)"), b(" • <b>Intertrochanteric</b>"), w("Intracapsular fractures → femoral head avascular necrosis (vascular trauma)"), ] cB = [ banner("5b. FEMORAL FRACTURES (cont.)", bg=ACCENT_RED), b("Proximal fractures: indirect trauma (stumbling, stepping off curb)"), b("Angle of inclination → fragments inherently <b>unstable</b>"), b("Impaction = overriding of fragments → limb foreshortening"), b("Muscle spasm contributes to further limb shortening"), b("<b>Greater trochanter + shaft fractures</b>:"), b(" → Direct trauma (falls, being hit during active years)"), b(" → Motor vehicle accidents, skiing, climbing"), b(" → Spiral fracture: fragments override → foreshortening"), b(" → Comminuted: multiple fragments, variable displacement"), w("Distal femur fracture: may lacerate popliteal artery — ALWAYS check vascular status"), b("Union of comminuted femoral shaft fracture: may take <b>up to 1 year</b>"), ] cC = [ banner("6. TIBIAL FRACTURES"), b("Narrowest at junction of <b>middle & inferior thirds</b> = most frequent fracture site"), w("Poorest blood supply → common site for compound & non-union fractures"), b("Anterior surface is subcutaneous → <b>compound fracture</b> risk"), b("'<b>Bumper fracture</b>': car bumper strikes leg → tibial fracture"), b("Fracture through nutrient canal → risk of <b>nonunion</b> (damage to nutrient artery)"), b("<b>Transverse march/stress fracture</b>: inferior third, unfit long-distance hikers"), b("Indirect violence (foot fixed, body turns) → transverse fracture"), b("<b>Boot-top fracture</b>: torsion during skiing → diagonal fracture at middle-inferior third junction"), b("Diagonal fractures: limb shortening from fragment overriding"), ] story.append(col3(cA, cB, cC)) story.append(sp(3)) # ── Block 4: Epiphysial Plates + Fibular Fractures ──────────────────────── L4 = [ banner("7. FRACTURES — EPIPHYSIAL PLATES", bg=TEAL), b("Tibial fractures in children more serious if epiphysial plates involved"), b(" → Continued normal bone growth may be jeopardized"), b("Tibial tuberosity forms from superior epiphysial center at ~<b>10 years</b>"), b("Separate ossification center for tibial tuberosity at ~<b>12 years</b>"), w("OSGOOD-SCHLATTER DISEASE: disruption of epiphysial plate at tibial tuberosity"), b(" → Chronic, recurring pain during adolescence"), b(" → Especially in young athletes"), b(" → X-ray: elongated & fragmented tibial tuberosity with soft tissue swelling"), ] R4 = [ banner("8. FIBULAR FRACTURES", bg=TEAL), b("Commonly <b>2–6 cm proximal to lateral malleolus</b>"), b("Often associated with <b>fracture-dislocations of the ankle joint</b>"), b("Frequently combined with tibial fractures"), b("Excessive inversion: ankle ligaments tear → talus forced against lateral malleolus → <b>shears off</b>"), b("<b>Lateral + medial malleolar fractures</b>: common in soccer & basketball"), w("Walking compromised — fibula critical for ankle stability"), b("<b>Boot-top fracture</b>: rigid ski boot + high-speed forward fall → leg angled → diagonal fibula fracture"), b("Diagonal fibular fractures: associated with limb shortening"), ] story.append(col4 := col2(L4, R4)) story.append(sp(3)) # ── Quick-ref footer line ────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=0.5, color=BORDER_GRAY)) story.append(sp(1)) story.append(Paragraph("Page 1 of 2 · Bones of Lower Limb Clinical Cheatsheet · Moore's Clinically Oriented Anatomy", foot_s)) # ═══════════════════════════════════════════════════════════════════════════ # PAGE 2 # ═══════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) # Page 2 mini-header pg2hdr_tbl = Table([[Paragraph("BONES OF LOWER LIMB — Page 2", pg2hdr_s)]], colWidths=[W]) pg2hdr_tbl.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),DARK_BLUE), ("TOPPADDING",(0,0),(-1,-1),6), ("BOTTOMPADDING",(0,0),(-1,-1),6), ("LEFTPADDING",(0,0),(-1,-1),8), ])) story.append(pg2hdr_tbl) story.append(sp(4)) # ── Block 5: Bone Grafts + IO Infusion + Calcaneal ──────────────────────── e1 = [ banner("9. BONE GRAFTS", bg=MED_GREEN), b("Major bone destruction → limb useless; bone transplant → avoids amputation"), b("<b>Fibula</b>: most common source for bone grafting"), b("After fibular shaft removal → walking, running, jumping remains normal"), b("Free vascularized fibulas: restore integrity in congenital bone defects & post-tumor excision"), w("Nutrient foramen of fibula: MIDDLE THIRD — graft must include medullary blood supply"), b("Anterior tibia: subcutaneous → accessible for graft harvest in children"), b("Also used as site for <b>intraosseous infusion</b>"), ] e2 = [ banner("10. INTRAOSSEOUS (IO) INFUSION", bg=MED_GREEN), b("Delivers fluids, blood, medications into <b>medullary cavity</b>"), b("Used when peripheral venous access is difficult or impossible"), b("Indications: traumatic shock, circulatory collapse"), bb("Most common site: <b>proximal tibia</b>"), b(" → Thin skin + landmarks aid insertion"), b(" → Insert <b>2 cm distal & slightly medial</b> from tibial tuberosity"), b("Avoid growth plate during insertion"), b("Other sites: distal femur, fibula, proximal humerus, manubrium"), w("Replace IO with peripheral/central line within <b>24 hours</b> (osteomyelitis risk)"), b("Battery-powered & impact-driven devices available for insertion"), ] e3 = [ banner("11. CALCANEAL FRACTURES"), b("Cause: hard fall onto heel (e.g., from ladder)"), b("Calcaneus shatters → <b>comminuted fracture</b>"), w("Disrupts subtalar (talocalcaneal) joint — USUALLY DISABLING"), sp(2), banner("12. FRACTURES OF TALAR NECK"), b("Severe <b>dorsiflexion</b> mechanism"), b("Classic: pressing hard on <b>brake pedal</b> during head-on collision"), w("Body of talus may dislocate POSTERIORLY"), sp(2), banner("13. FRACTURE OF SESAMOID BONES"), b("Sesamoids of great toe: in tendon of <b>flexor hallucis longus</b>"), b("Bear body weight during latter stance phase"), b("Develop before birth; ossify in late childhood"), w("Fracture: <b>crushing injury</b> mechanism"), ] story.append(col3(e1, e2, e3)) story.append(sp(3)) # ── Block 6: Metatarsals + Os Trigonum ──────────────────────────────────── L6 = [ banner("14. FRACTURES OF METATARSALS", bg=MED_PURP), b("Causes: heavy object onto foot, run over by heavy object (e.g., metal wheel)"), b("Also common in dancers — especially <b>female ballet dancers (demi-pointe)</b>"), b("<b>Dancer's fracture</b>: loses balance → full body weight on metatarsal"), b("<b>Fatigue fractures</b>: repeated walking stress → transverse fractures of metatarsal shafts"), b("Sudden violent inversion: <b>fibularis (peroneus) brevis</b> avulses tuberosity of <b>5th metatarsal</b>"), bb("Avulsion fracture of 5th metatarsal tuberosity:"), b(" → Pain & edema at base of 5th metatarsal"), w("Common in basketball & tennis; often associated with severe ankle sprain"), ] R6 = [ banner("15. OS TRIGONUM", bg=MED_PURP), b("Secondary ossification center of talus (lateral tubercle) fails to unite"), b("Becomes accessory ossicle — <b>os trigonum</b>"), b("Occurs in <b>14–25%</b> of adults, more commonly bilateral"), b("Partly/fully ossified center may fracture → progress to nonunion"), b("May be caused by applied stress (forceful plantarflexion) in early teens"), w("Increased prevalence in SOCCER PLAYERS and BALLET DANCERS"), b("Either event may result in an <b>os trigonum</b> (accessory ossicle)"), b("Clinically: posterior ankle pain; impingement during plantarflexion"), ] story.append(col2(L6, R6)) story.append(sp(4)) # ── HIGH-YIELD QUICK-REFERENCE TABLE ───────────────────────────────────── story.append(HRFlowable(width="100%", thickness=1.5, color=DARK_BLUE, spaceAfter=4)) story.append(banner("★ HIGH-YIELD QUICK-REFERENCE TABLE", bg=DARK_BLUE)) story.append(sp(2)) rows = [ [Paragraph("Fact / Question", thdr_s), Paragraph("Key Answer", thdr_s)], [Paragraph("Hip injuries = what % of lower limb injuries?", key_s), Paragraph("<b><3%</b>", key_s)], [Paragraph("Most frequently fractured part of femur", key_s), Paragraph("<b>Femoral neck</b> — narrowest, weakest, angled to weight-bearing line", key_s)], [Paragraph("Most vulnerable group for femoral neck fractures", key_s), Paragraph("<b>Elderly females</b> (osteoporosis)", key_s)], [Paragraph("Intracapsular femoral neck fracture — key complication", key_s), Paragraph("<b>Avascular necrosis of femoral head</b> (vascular trauma)", key_s)], [Paragraph("Most frequent tibial fracture site", key_s), Paragraph("Junction of <b>middle & inferior thirds</b> — narrowest + poorest blood supply", key_s)], [Paragraph("Bumper fracture mechanism", key_s), Paragraph("<b>Car bumper strikes leg</b> → compound tibial fracture", key_s)], [Paragraph("Boot-top fracture mechanism", key_s), Paragraph("<b>Torsion during skiing</b> → diagonal fracture at tibia/fibula middle–inferior junction", key_s)], [Paragraph("Osgood-Schlatter Disease", key_s), Paragraph("Disruption of <b>epiphysial plate at tibial tuberosity</b>; chronic pain in adolescent athletes", key_s)], [Paragraph("Most common IO infusion site", key_s), Paragraph("<b>Proximal tibia</b> — 2 cm distal + slightly medial to tibial tuberosity", key_s)], [Paragraph("IO infusion: replace within how long?", key_s), Paragraph("<b>24 hours</b> (risk of osteomyelitis)", key_s)], [Paragraph("Calcaneal fracture: which joint disrupted?", key_s), Paragraph("<b>Subtalar (talocalcaneal) joint</b> — usually disabling", key_s)], [Paragraph("Talar neck fracture: mechanism", key_s), Paragraph("<b>Severe dorsiflexion</b> (brake pedal in head-on collision) → talus dislocates posteriorly", key_s)], [Paragraph("5th metatarsal avulsion: which muscle?", key_s), Paragraph("<b>Fibularis (peroneus) brevis</b> — mechanism: sudden violent inversion", key_s)], [Paragraph("Os trigonum: prevalence + who is at risk?", key_s), Paragraph("<b>14–25%</b> of adults; soccer players + ballet dancers", key_s)], [Paragraph("Avulsion fracture sites of the hip bone (4 sites)", key_s), Paragraph("<b>ASIS, AIIS, ischial tuberosities, ischiopubic rami</b>", key_s)], [Paragraph("Dislocated epiphysis of femoral head: age + referred pain", key_s), Paragraph("<b>10–17 years</b>; pain referred to the <b>knee</b>", key_s)], [Paragraph("Coxa vara vs coxa valga", key_s), Paragraph("<b>Vara = decreased angle</b> (distal deviates toward midline); <b>Valga = increased angle</b>", key_s)], [Paragraph("Fibular fracture: typical location", key_s), Paragraph("<b>2–6 cm proximal to lateral malleolus</b>; often with ankle fracture-dislocation", key_s)], [Paragraph("Fibula for bone grafts: where is nutrient foramen?", key_s), Paragraph("<b>Middle third</b> — graft must include medullary blood supply", key_s)], [Paragraph("Sesamoid bone fracture mechanism", key_s), Paragraph("<b>Crushing injury</b>", key_s)], ] qrt = Table(rows, colWidths=[96*mm, 88*mm]) qrt.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,0),DARK_BLUE), ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, LIGHT_GRAY]), ("GRID",(0,0),(-1,-1),0.4,BORDER_GRAY), ("TOPPADDING",(0,0),(-1,-1),3.5), ("BOTTOMPADDING",(0,0),(-1,-1),3.5), ("LEFTPADDING",(0,0),(-1,-1),6), ("RIGHTPADDING",(0,0),(-1,-1),6), ("VALIGN",(0,0),(-1,-1),"MIDDLE"), ])) story.append(qrt) story.append(sp(3)) # ── Footer ───────────────────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=0.5, color=BORDER_GRAY)) story.append(sp(1)) story.append(Paragraph( "Bones of Lower Limb Clinical Cheatsheet · Based on Moore's Clinically Oriented Anatomy · For Exam Use Only · Page 2 of 2", foot_s)) doc.build(story) print("PDF generated:", OUTPUT) PYEOF python /tmp/workspace/bones-cheatsheet/generate_v2.py
ls -lh /tmp/workspace/bones-cheatsheet/
Bones Lower Limb Cheatsheet v2
PDF Document · PDF
do the same with this page
how subscribe
how to buy a subscription
tell me important points to study from this page