Prepare a presentation ppt on the topic of secondary in bone
bone metastasis secondary tumors radiograph

This composite figure displays diagnostic imaging of a 60-year-old female with extensive locoregional metastasis to the right clavicle from cervix adenocarcinoma. Image (A) is a posterior-anterior (PA) chest radiograph showing significant structural disruption and increased radiopacity of the right clavicle compared to the normal appearance of the left. There is associated soft tissue swelling and apical lung density on the right side. Image (B) is an axial CT scan (computed tomography) in a bone window, revealing a large, heterogeneous, and infiltrative soft tissue mass centered on the right clavicle. The image demonstrates advanced osteolysis (bone destruction) and cortical erosion of the clavicle, with tumor extension into the surrounding pectoral and supraclavicular musculature. These findings illustrate the aggressive nature of secondary bone tumors (metastatic disease) in the thoracic girdle, emphasizing the importance of multi-modal imaging in staging and evaluating the extent of musculoskeletal involvement in advanced malignancies.

This composite figure illustrates the multi-modal diagnostic and therapeutic approach to a hyper-vascular bone metastasis in the right humerus. Panel A is an AP radiograph showing a lytic, expansive lesion in the proximal humeral diaphysis (arrowhead) secondary to renal cell carcinoma. A non-displaced pathologic fracture is identified by a thin white arrow. Panels B and C present digital subtraction angiography (DSA) images of the humeral region. Panel B demonstrates intense tumor blush and neovascularization, characteristic of a hyper-vascular metastasis. Panel C shows the same region post-transcatheter arterial embolization, revealing a significant reduction in vascular supply. Panel D is a post-operative radiograph demonstrating surgical fixation using an intramedullary nail with proximal and distal interlocking screws, providing mechanical stability to the pathologic fracture. This series highlights the clinical workflow of using pre-operative embolization to minimize intra-operative bleeding risk during the internal fixation of hyper-vascular metastatic bone disease.

This composite of four axial images (a-d) demonstrates osteolytic bone metastasis at the skull base, a common site for secondary malignancies such as prostate cancer. Image (a) is a non-contrast CT in a bone window showing an osteolytic lesion (yellow arrow) extending from the left clivus (oblique plateau) to the occipital bone, with evidence of cortical destruction near the hypoglossal canal (sublingual neural tube, white arrow). Image (b) is a T1-weighted MRI where the corresponding lesion appears hypointense (yellow arrow) relative to normal bone marrow. Image (c) is a Diffusion-Weighted Image (DWI) showing marked hyperintensity (yellow arrow), suggesting restricted diffusion and high cellularity typical of metastatic tumors. Image (d) is a post-gadolinium contrast-enhanced T1-weighted MRI (or enhanced CT) showing abnormal enhancement in the lesion area (yellow arrow). These imaging modalities collectively define the extent of bone marrow replacement and surrounding tissue invasion, which in this clinical context caused cranial nerve deficits including hypoglossal nerve (CN XII) and vagus nerve (CN X) involvement.

This composite diagnostic image features axial CT and MRI scans of a human thorax, demonstrating rib metastasis secondary to lung cancer. Panels A and B are 5mm slice thickness CT scans showing an expansive lesion in a posterior rib with predominant osteolytic characteristics. Panels C, D, and E utilize a 1mm thin-slice CT technique, revealing a mixed-pattern metastasis with distinct areas of osteolytic bone destruction (white arrow) and osteoblastic bone formation (black arrow). The MRI series (Panels F-H) provides further tissue characterization: T1-weighted imaging (F) shows the lesion with isometric to low signal intensity; Gadolinium-enhanced T1-weighted imaging (G) exhibits heterogeneous contrast enhancement; and T2-weighted fat-saturated imaging (H) displays a mixed high and low signal intensity. The comparison highlights the superior resolution of thin-slice CT (1mm) over standard CT (5mm) for identifying mixed metastatic features and the role of MRI in characterizing the soft tissue components and vascularity of secondary bone tumors.

This diagnostic x-ray radiograph of the femur illustrates classic skeletal manifestations of secondary hyperparathyroidism. The femoral diaphysis exhibits a pathological fragility fracture occurring through a prominent brown tumor. This lesion is characterized by a focal area of altered bone density, showing both osteolytic bone destruction and attempts at new bone formation. Additionally, in the distal region of the femur, two further brown tumors are visible as well-defined, expansible, radiolucent lesions that clearly demarcate themselves from the surrounding cortical and medullary bone. The presence of these multiple osteoclastic giant-cell tumors (brown tumors) and the resulting fracture demonstrate the severe cortical thinning and reduced bone integrity associated with advanced metabolic bone disease. The image is a critical educational resource for identifying renal osteodystrophy and the radiological hallmarks of hyperparathyroidism in a clinical setting.

A standard anterior-posterior (AP) radiograph of the left wrist and forearm demonstrating a significant pathological process at the distal radius. The image shows extensive osteolysis of the distal radial metaphysis and epiphysis, characterized by a loss of bone density and a permeative, lucent appearance. The normal cortical contour is disrupted, exhibiting irregular and indistinct borders suggestive of bone destruction and aggressive soft tissue involvement. The distal ulna appears relatively spared compared to the radius, though localized demineralization is visible. The carpal bones and proximal metacarpals are partially visualized and maintain gross anatomical alignment despite the adjacent expansive lesion. This diagnostic image illustrates a secondary bone tumor (metastasis), typically associated with primary malignancies such as rectal adenocarcinoma. Key educational features include the radiographic presentation of malignant osteolysis, loss of structural integrity in the distal forearm, and signs of aggressive local invasion.
osteolytic osteoblastic bone metastasis pathology histology

Paget disease of bone (osteitis deformans) histology showing active remodeling with mixed osteolytic and osteoblastic phases. The specimen is a decalcified long-bone or cancellous bone biopsy prepared for light microscopy and stained with hematoxylin and eosin. At higher magnification, osteoclasts are evident within resorption bays and are juxtaposed by prominent osteoblasts lining the bay openings, reflecting abrupt cycles of bone resorption followed by exuberant new bone formation. The resorption bays are irregular and often bordered by new lamellar bone with a mosaic or jigsaw-puzzle appearance. In this sample the invasive phase has progressed to fibrous and fibrovascular marrow replacement, with diminished hematopoietic elements and expanded stroma. The osteoid production is variable, and thickened trabeculae may fuse, producing coarse, sclerotic areas alongside lytic pockets. Clinically, these histologic patterns correlate with high bone turnover and disorganized remodeling that underlie the deformities and pain seen in Paget disease. The mosaicization of bone and the presence of eroded marrow spaces help distinguish Paget from metabolic or neoplastic processes, such as fibrous dysplasia or osteoblastic metastasis. Overall, the image demonstrates hallmark characteristics of active Paget remodeling and provides diagnostic confirmation in the appropriate clinical context.

This diagnostic image consists of four axial Computed Tomography (CT) scans of vertebral bodies, illustrating the radiological spectrum of bone metastasis. The image is a comparison chart categorized by lesion morphology: osteoblastic, mildly osteoblastic, mixed type, and osteolytic. The 'Osteoblastic' panel shows a diffuse, homogeneous increase in bone density (sclerosis) within the vertebral body. The 'Mildly osteoblastic' panel, indicated by a white arrow, demonstrates a subtle focal area of increased radiodensity compared to normal trabecular bone. The 'Mixed type' panel displays a combination of sclerotic (hyperdense) and lytic (hypodense) regions, representing concurrent bone formation and destruction. The 'Osteolytic' panel exhibits significant cortical and medullary bone loss, characterized by a well-defined hypodense area and compromised structural integrity. These images serve as an educational reference for oncologic imaging, specifically for classifying metastatic bone disease and understanding how different primary cancers may alter bone remodeling.

Imaging modality: Light microscopy of hematoxylin and eosin (H&E)–stained bone tissue section. Primary subject: Paget disease of bone (osteitis deformans) in a mixed osteolytic and osteoblastic phase, demonstrated by plate-like trabeculae with exuberant remodeling. Specimen: bone biopsy/surgical bone specimen. Perspective: histologic section examined under finite magnification; features documented on a transverse/longitudinal plane of trabecular bone. Visual description: broad, thickened, disorganized lamellar bone forming plate-like trabeculae; mosaic pattern of lamellar bone; cement lines appearing as irregular blue/gray intertrabecular bands; active osteoblasts line bone formation surfaces; multinucleated osteoclasts erode adjacent bone; increased vascularity and fibrous tissue may be present at the marrow interface. Pathology: accelerated bone turnover with concurrent osteolysis and osteogenesis; signs of high-output remodeling; regions of sclerosis interspersed with radiolucent zones. Diagnostic significance: the mosaic lamellar bone with cement lines is characteristic of Paget disease and helps distinguish it from osteomyelitis, fibrous dysplasia, or metastasis; correlation with clinical markers like alkaline phosphatase and imaging findings strengthens diagnosis. Potential clinical applications: confirm suspected Paget disease, guide bisphosphonate therapy, monitor treatment response, educate trainees on osteoclast–osteoblast coupling, and differentiate high-turnover bone disorders in musculoskeletal pathology. This histology correlates with radiographs showing mixed lytic and sclerotic lesions and is essential for confirming disease activity and guiding therapy response monitoring.

This diagnostic image displays three axial computed tomography (CT) scans of the femur, illustrating the primary patterns of bone metastasis. Panel (a) shows an osteolytic lesion, characterized by a focal area of bone destruction with significantly decreased radiodensity (darkness) and thinning of the cortical bone, indicating high osteoclastic activity. Panel (b) demonstrates an osteoblastic (sclerotic) metastasis, visible as a localized region of markedly increased bone density (brightness/opacity) due to excessive bone formation. Panel (c) reveals a mixed metastasis, featuring a heterogeneous presentation with coexisting areas of radiolucent bone destruction and radiopaque bone formation. Arrows highlight the specific metastatic sites in each panel. This comparison is clinically significant for oncological staging and assessing fracture risk in patients with primary malignancies such as breast, prostate, or lung cancer. The images serve as an educational tool for differentiating bone remodeling responses in metastatic disease.
mkdir -p /tmp/workspace/secondary-bone-ppt && ls /tmp/workspace/
~/secondary-bone-ppt/create_ppt.py
import json, subprocess, base64
from io import BytesIO
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
# ── Color palette ──────────────────────────────────────────────────────────────
DARK_BLUE = RGBColor(0x1A, 0x37, 0x6C) # deep navy
MID_BLUE = RGBColor(0x2E, 0x6D, 0xA8) # medical blue
LIGHT_BLUE = RGBColor(0xD6, 0xE8, 0xF7) # very light blue
ACCENT_RED = RGBColor(0xC0, 0x39, 0x2B) # medical red
ACCENT_TEAL= RGBColor(0x1A, 0x8C, 0x8C) # teal
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x2C, 0x2C, 0x2C)
MID_GRAY = RGBColor(0x55, 0x55, 0x55)
LIGHT_GRAY = RGBColor(0xF0, 0xF4, 0xF8)
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
# ── Helper functions ───────────────────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_rgb, transparency=0):
from pptx.util import Inches
shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
shape.line.fill.background()
shape.fill.solid()
shape.fill.fore_color.rgb = fill_rgb
return shape
def add_textbox(slide, text, x, y, w, h, font_size=18, bold=False,
color=DARK_GRAY, align=PP_ALIGN.LEFT, italic=False, wrap=True):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = wrap
tf.margin_left = Pt(2)
tf.margin_right = Pt(2)
tf.margin_top = Pt(2)
tf.margin_bottom= Pt(2)
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.size = Pt(font_size)
run.font.bold = bold
run.font.italic= italic
run.font.color.rgb = color
run.font.name = "Calibri"
return tf
def add_para(tf, text, font_size=16, bold=False, color=DARK_GRAY,
align=PP_ALIGN.LEFT, italic=False, space_before=6):
from pptx.util import Pt as Ptt
p = tf.add_paragraph()
p.alignment = align
p.space_before = Ptt(space_before)
run = p.add_run()
run.text = text
run.font.size = Ptt(font_size)
run.font.bold = bold
run.font.italic = italic
run.font.color.rgb = color
run.font.name = "Calibri"
return p
def add_bullet(slide, lines, x, y, w, h, font_size=16, title_size=0,
title_text="", bullet_color=MID_BLUE, text_color=DARK_GRAY):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = True
tf.margin_left = Pt(4)
tf.margin_right = Pt(2)
tf.margin_top = Pt(2)
tf.margin_bottom= Pt(2)
first = True
if title_text:
p = tf.paragraphs[0] if first else tf.add_paragraph()
first = False
p.alignment = PP_ALIGN.LEFT
run = p.add_run()
run.text = title_text
run.font.size = Pt(title_size or font_size + 2)
run.font.bold = True
run.font.color.rgb = bullet_color
run.font.name = "Calibri"
for line in lines:
p = tf.paragraphs[0] if first else tf.add_paragraph()
first = False
p.alignment = PP_ALIGN.LEFT
p.space_before = Pt(4)
run = p.add_run()
run.text = " " + line
run.font.size = Pt(font_size)
run.font.color.rgb = text_color
run.font.name = "Calibri"
return tf
def add_image_url(slide, url, x, y, w, h):
try:
result = json.loads(subprocess.check_output(
["python", "/tmp/skills/shared/scripts/fetch_images.py", url],
timeout=30
))
if result and result[0].get("base64"):
raw = base64.b64decode(result[0]["base64"].split(",")[-1])
slide.shapes.add_picture(BytesIO(raw), Inches(x), Inches(y), Inches(w), Inches(h))
return True
except Exception as e:
print(f"Image fetch failed for {url}: {e}")
return False
def slide_header(slide, title, subtitle=""):
# Navy top bar
add_rect(slide, 0, 0, 13.333, 1.1, DARK_BLUE)
add_textbox(slide, title, 0.35, 0.1, 11, 0.9,
font_size=30, bold=True, color=WHITE, align=PP_ALIGN.LEFT)
if subtitle:
add_rect(slide, 0, 1.1, 13.333, 0.35, MID_BLUE)
add_textbox(slide, subtitle, 0.35, 1.1, 12.5, 0.35,
font_size=14, bold=False, color=WHITE, align=PP_ALIGN.LEFT)
# Bottom bar
add_rect(slide, 0, 7.2, 13.333, 0.3, MID_BLUE)
add_textbox(slide, "Secondary (Metastatic) Bone Disease", 0.3, 7.2, 8, 0.3,
font_size=10, color=WHITE)
add_textbox(slide, "Miller's Orthopaedics | Robbins Pathology", 9, 7.2, 4, 0.3,
font_size=10, color=WHITE, align=PP_ALIGN.RIGHT)
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 1 — TITLE
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
add_rect(slide, 0, 3.3, 13.333, 2.4, MID_BLUE)
add_rect(slide, 0, 5.7, 13.333, 1.8, ACCENT_TEAL)
add_textbox(slide, "SECONDARY TUMORS", 0.6, 1.0, 12, 1.2,
font_size=52, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, "OF BONE", 0.6, 2.1, 12, 1.1,
font_size=52, bold=True, color=LIGHT_BLUE, align=PP_ALIGN.CENTER)
add_textbox(slide, "Metastatic Bone Disease — Pathology, Diagnosis & Management",
0.6, 3.4, 12, 0.7,
font_size=20, bold=False, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, "Based on Miller's Review of Orthopaedics 9e | Robbins & Cotran Pathologic Basis of Disease",
0.6, 4.1, 12, 0.5,
font_size=13, italic=True, color=LIGHT_BLUE, align=PP_ALIGN.CENTER)
add_textbox(slide, "Orthopaedics | Oncology | Pathology",
0.6, 6.0, 12, 0.5,
font_size=16, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 2 — OVERVIEW / OUTLINE
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Overview", "What We Will Cover")
add_rect(slide, 0.3, 1.6, 5.9, 5.5, LIGHT_GRAY)
add_rect(slide, 6.4, 1.6, 6.6, 5.5, LIGHT_GRAY)
topics_left = [
"01 Introduction & Definition",
"02 Epidemiology & Incidence",
"03 Common Primary Tumors (BLT-KP Rule)",
"04 Pathogenesis & Batson's Plexus",
"05 Metastatic Cascade",
"06 Sites of Bone Involvement",
]
topics_right = [
"07 Types: Lytic vs Sclerotic vs Mixed",
"08 Clinical Features & Presentation",
"09 Imaging & Diagnosis",
"10 Histopathology",
"11 Management & Treatment",
"12 Prognosis & Key Points",
]
tb = slide.shapes.add_textbox(Inches(0.5), Inches(1.65), Inches(5.6), Inches(5.4))
tf = tb.text_frame; tf.word_wrap = True
for i, t in enumerate(topics_left):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(8)
run = p.add_run(); run.text = t
run.font.size = Pt(17); run.font.name = "Calibri"
run.font.color.rgb = DARK_BLUE if i == 0 else MID_GRAY
run.font.bold = True if i == 0 else False
tb2 = slide.shapes.add_textbox(Inches(6.6), Inches(1.65), Inches(6.3), Inches(5.4))
tf2 = tb2.text_frame; tf2.word_wrap = True
for i, t in enumerate(topics_right):
p = tf2.paragraphs[0] if i == 0 else tf2.add_paragraph()
p.space_before = Pt(8)
run = p.add_run(); run.text = t
run.font.size = Pt(17); run.font.name = "Calibri"
run.font.color.rgb = DARK_BLUE if i == 0 else MID_GRAY
run.font.bold = True if i == 0 else False
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 3 — DEFINITION & EPIDEMIOLOGY
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Definition & Epidemiology", "Secondary Bone Tumors — Key Facts")
add_rect(slide, 0.3, 1.6, 8.3, 2.1, LIGHT_BLUE)
add_rect(slide, 0.3, 3.85, 8.3, 3.2, LIGHT_GRAY)
add_rect(slide, 8.9, 1.6, 4.1, 5.45, LIGHT_GRAY)
add_textbox(slide, "DEFINITION", 0.5, 1.65, 8, 0.5, font_size=13, bold=True, color=MID_BLUE)
add_textbox(slide,
"Secondary (metastatic) bone tumors are malignant lesions that arise when cancer cells "
"from a distant primary site spread to bone via the bloodstream or lymphatics. "
"They are FAR more common than primary bone tumors in adults over 40 years.",
0.5, 2.05, 8, 1.5, font_size=15, color=DARK_GRAY)
add_textbox(slide, "KEY EPIDEMIOLOGICAL FACTS", 0.5, 3.9, 8, 0.4, font_size=13, bold=True, color=MID_BLUE)
epi_points = [
"Most common malignant bone lesion in adults > 40 years",
"Bone is 3rd most common site of metastasis (after lung & liver)",
"~70% of patients with advanced breast or prostate cancer develop bone mets",
"Autopsy studies: 70% of cancer deaths show bone involvement",
"Most occur in the axial skeleton (spine, pelvis, ribs) and proximal limbs",
]
tb = slide.shapes.add_textbox(Inches(0.5), Inches(4.35), Inches(8.1), Inches(2.7))
tf = tb.text_frame; tf.word_wrap = True
for i, pt in enumerate(epi_points):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(5)
run = p.add_run(); run.text = "▶ " + pt
run.font.size = Pt(14); run.font.name = "Calibri"; run.font.color.rgb = DARK_GRAY
add_textbox(slide, "INCIDENCE BY PRIMARY TUMOR", 9.0, 1.65, 3.8, 0.4,
font_size=13, bold=True, color=MID_BLUE)
inc_data = [
("Breast Cancer", "65–75%"),
("Prostate Cancer","65–75%"),
("Thyroid Cancer", "60%"),
("Kidney (RCC)", "40%"),
("Lung Cancer", "30–40%"),
("Bladder Cancer", "40%"),
("Melanoma", "15–45%"),
]
tb3 = slide.shapes.add_textbox(Inches(9.0), Inches(2.1), Inches(3.8), Inches(4.7))
tf3 = tb3.text_frame; tf3.word_wrap = True
for i, (tumor, pct) in enumerate(inc_data):
p = tf3.paragraphs[0] if i == 0 else tf3.add_paragraph()
p.space_before = Pt(7)
run = p.add_run(); run.text = f"{tumor:<22} {pct}"
run.font.size = Pt(14); run.font.name = "Courier New"
run.font.color.rgb = DARK_BLUE if i % 2 == 0 else MID_GRAY
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 4 — COMMON PRIMARY TUMORS — BLT-KP MNEMONIC
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Common Primary Tumors", "The 'BLT-KP' Mnemonic — Five Carcinomas Most Likely to Metastasize to Bone")
add_rect(slide, 0.3, 1.6, 12.7, 0.6, MID_BLUE)
add_textbox(slide,
'"The five carcinomas most likely to metastasize to bone: Breast, Lung, Thyroid, Kidney, Prostate — mnemonic: BLT and a Kosher Pickle"',
0.5, 1.65, 12.3, 0.55, font_size=14, italic=True, color=WHITE)
blt_data = [
("B", "Breast", "Most common in women\nOsteolytic & osteoblastic\n65–75% incidence", ACCENT_RED),
("L", "Lung", "Most common overall source\nPredominantly osteolytic\nPoor prognosis", MID_BLUE),
("T", "Thyroid", "Highly vascular\nExpansile lytic lesions\nHypernephroma-like", ACCENT_TEAL),
("K", "Kidney", "Renal Cell Carcinoma\nHypervascular metastases\nEmbolise before surgery", RGBColor(0x8E,0x44,0xAD)),
("P", "Prostate", "Most common in men\nPredominantly osteoblastic\nSclerotic \"ivory\" bone", RGBColor(0xD3,0x54,0x00)),
]
box_w = 2.3
for i, (letter, name, desc, col) in enumerate(blt_data):
x = 0.3 + i * (box_w + 0.18)
add_rect(slide, x, 2.35, box_w, 4.6, col)
add_rect(slide, x, 2.35, box_w, 1.0, RGBColor(
max(0, col.red - 40), max(0, col.green - 40), max(0, col.blue - 40)))
add_textbox(slide, letter, x, 2.38, box_w, 0.95,
font_size=44, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, name, x, 3.4, box_w, 0.55,
font_size=17, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, desc, x + 0.08, 4.05, box_w - 0.16, 2.7,
font_size=13, color=WHITE, align=PP_ALIGN.LEFT)
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 5 — PATHOGENESIS / BATSON'S PLEXUS
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Pathogenesis", "Role of Batson's Vertebral Venous Plexus")
add_rect(slide, 0.3, 1.6, 7.8, 5.5, LIGHT_GRAY)
add_rect(slide, 8.4, 1.6, 4.7, 5.5, LIGHT_BLUE)
batson_pts = [
"Batson's Plexus — a valveless, low-pressure venous network running alongside the vertebral column",
"Connects venous drainage of breast, lung, thyroid, kidney & prostate directly to vertebral bodies",
"Because the plexus is VALVELESS, flow can be bidirectional — coughing/straining drives tumor cells into vertebral veins",
"The plexus has intimate connections with the vertebral bodies, pelvis, skull, and proximal limb girdles — explaining the distribution of metastases",
"Arterial spread also occurs: highly vascular bones (vertebrae, pelvis, proximal femur) are preferential sites due to high blood flow",
"Tumor cells arrest in sinusoids, survive immune surveillance, and proliferate in the bone marrow",
"Growth is fueled by paracrine signaling: tumor cells release RANKL-activating factors → osteoclast activation → bone destruction → release of growth factors (IGF, TGF-β) → further tumor growth ('Vicious Cycle')",
]
tb = slide.shapes.add_textbox(Inches(0.5), Inches(1.7), Inches(7.5), Inches(5.2))
tf = tb.text_frame; tf.word_wrap = True
for i, pt in enumerate(batson_pts):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(7)
run = p.add_run()
run.text = ("• " if i > 0 else "★ ") + pt
run.font.size = Pt(13 if i > 0 else 14)
run.font.name = "Calibri"
run.font.bold = (i == 0)
run.font.color.rgb = DARK_BLUE if i == 0 else DARK_GRAY
add_textbox(slide, "SITES OF PREDILECTION", 8.5, 1.65, 4.4, 0.5,
font_size=14, bold=True, color=DARK_BLUE)
sites = [
"Vertebral bodies",
"Pelvis",
"Ribs",
"Skull",
"Proximal femur",
"Proximal humerus",
"Sternum",
]
tb2 = slide.shapes.add_textbox(Inches(8.5), Inches(2.2), Inches(4.4), Inches(4.7))
tf2 = tb2.text_frame; tf2.word_wrap = True
for i, s in enumerate(sites):
p = tf2.paragraphs[0] if i == 0 else tf2.add_paragraph()
p.space_before = Pt(12)
run = p.add_run(); run.text = f" {i+1}. {s}"
run.font.size = Pt(16); run.font.name = "Calibri"; run.font.bold = True
run.font.color.rgb = MID_BLUE
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 6 — METASTATIC CASCADE (with image)
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "The Metastatic Cascade", "Sequential Steps in Hematogenous Bone Metastasis")
steps = [
("1", "Invasion of ECM", "Tumor cells loosen intercellular adhesion, degrade basement membrane via proteases (MMPs)"),
("2", "Intravasation", "Cancer cells enter blood vessels or lymphatics"),
("3", "Survival in Circulation", "Tumor cells evade immune surveillance, form emboli"),
("4", "Extravasation", "Arrest in bone sinusoids, exit vasculature"),
("5", "Colonisation", "Proliferate in bone marrow niche, establish metastatic focus"),
("6", "Bone Destruction","Activate osteoclasts → lytic lesion OR stimulate osteoblasts → sclerotic lesion"),
]
for i, (num, title, desc) in enumerate(steps):
y = 1.55 + i * 0.97
col = MID_BLUE if i % 2 == 0 else ACCENT_TEAL
add_rect(slide, 0.3, y, 0.55, 0.75, col)
add_textbox(slide, num, 0.3, y + 0.05, 0.55, 0.65,
font_size=20, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, 0.88, y, 8.2, 0.75, LIGHT_GRAY)
add_textbox(slide, title, 0.95, y + 0.02, 2.8, 0.38,
font_size=14, bold=True, color=DARK_BLUE)
add_textbox(slide, desc, 0.95, y + 0.36, 8.0, 0.38,
font_size=12, color=MID_GRAY)
# Place metastatic cascade diagram image
add_image_url(slide,
"https://cdn.orris.care/cdss_images/2724a109787ff4dbfef19b8d2a8ac30f2f55ddbb97120d793ef35a90d78d2ef8.png",
9.3, 1.55, 3.8, 5.7)
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 7 — TYPES OF BONE METASTASIS (with CT comparison image)
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Types of Bone Metastasis", "Lytic vs Sclerotic vs Mixed Patterns")
types = [
("OSTEOLYTIC", MID_BLUE,
"Bone destruction > formation\nOsteoclast activation dominant\n\nCauses: Breast (most), Lung, Thyroid, Kidney, Myeloma\n\nRadiology: Radiolucent 'punched-out' lesions, moth-eaten pattern, cortical destruction\n\nRisk: Pathological fracture, hypercalcaemia"),
("OSTEOBLASTIC\n(SCLEROTIC)", ACCENT_TEAL,
"Bone formation > destruction\nOsteoblast stimulation dominant\n\nCauses: Prostate (most), Carcinoid tumors, some Breast\n\nRadiology: Increased bone density, 'ivory vertebra', ground-glass opacity\n\nRisk: Spinal cord compression, nerve entrapment"),
("MIXED", ACCENT_RED,
"Both lytic and sclerotic areas\nConcurrent resorption and formation\n\nCauses: Breast cancer (commonly), Lung, Cervix\n\nRadiology: Heterogeneous lesion — areas of density and lucency\n\nRisk: Combination of fracture risk and cord compression"),
]
box_w = 3.8
for i, (title, col, desc) in enumerate(types):
x = 0.3 + i * (box_w + 0.25)
add_rect(slide, x, 1.55, box_w, 0.75, col)
add_textbox(slide, title, x, 1.57, box_w, 0.72,
font_size=16, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, x, 2.3, box_w, 2.6, LIGHT_GRAY)
add_textbox(slide, desc, x + 0.1, 2.35, box_w - 0.2, 2.5,
font_size=12.5, color=DARK_GRAY)
# CT comparison image
add_image_url(slide,
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_5c38b7db3eb53a4d22ff0fba3bb49c40bf6b932699e7d4320ac436ac3537c7bc.jpg",
0.3, 4.95, 12.7, 2.1)
add_textbox(slide, "CT comparison: Osteolytic (a) | Osteoblastic (b) | Mixed (c) — femur metastases",
0.3, 7.05, 12.7, 0.18, font_size=9, italic=True, color=MID_GRAY, align=PP_ALIGN.CENTER)
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 8 — CLINICAL FEATURES
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Clinical Features", "Presentation of Metastatic Bone Disease")
add_rect(slide, 0.3, 1.55, 6.0, 5.5, LIGHT_GRAY)
add_rect(slide, 6.6, 1.55, 6.4, 5.5, LIGHT_GRAY)
add_textbox(slide, "SYMPTOMS & SIGNS", 0.5, 1.6, 5.7, 0.4,
font_size=14, bold=True, color=MID_BLUE)
symptoms = [
"Bone pain — dull, aching, worse at night, unrelenting",
"Pathological fracture — fracture with minimal or no trauma (most common: proximal femur)",
"Neurological symptoms — spinal cord compression → myelopathy, radiculopathy",
"Hypercalcaemia (lytic mets) — confusion, nausea, polyuria, constipation",
"Palpable mass (late feature)",
"Weight loss, fatigue — constitutional symptoms of malignancy",
"Anaemia — bone marrow replacement",
"Raised ALP and ESR",
]
tb = slide.shapes.add_textbox(Inches(0.5), Inches(2.1), Inches(5.7), Inches(4.7))
tf = tb.text_frame; tf.word_wrap = True
for i, s in enumerate(symptoms):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(6)
run = p.add_run(); run.text = "• " + s
run.font.size = Pt(13); run.font.name = "Calibri"; run.font.color.rgb = DARK_GRAY
add_textbox(slide, "CLINICAL PEARLS", 6.8, 1.6, 6.0, 0.4,
font_size=14, bold=True, color=ACCENT_RED)
pearls = [
"Single destructive lesion in patient > 50 yrs with NO known primary → METASTASIS until proven otherwise",
"Pathologic fractures most common at PROXIMAL FEMUR",
"Vertebral collapse may be the first sign of metastasis",
"Metastatic lesions in LONG BONES require prophylactic fixation if > 50% cortex involved (Mirels' score)",
"Occult primary: work-up includes CXR, CT chest/abdomen/pelvis, bone scan, mammogram (women), PSA (men), thyroid USS",
"Labs: ↑ ALP, ↑ Ca²⁺, ↑ ESR, anaemia, ↑ PSA (prostate), ↑ LDH",
]
tb2 = slide.shapes.add_textbox(Inches(6.8), Inches(2.1), Inches(6.0), Inches(4.7))
tf2 = tb2.text_frame; tf2.word_wrap = True
for i, s in enumerate(pearls):
p = tf2.paragraphs[0] if i == 0 else tf2.add_paragraph()
p.space_before = Pt(6)
run = p.add_run(); run.text = "★ " + s
run.font.size = Pt(12.5); run.font.name = "Calibri"
run.font.color.rgb = DARK_BLUE if i == 0 else DARK_GRAY
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 9 — IMAGING & DIAGNOSIS (with images)
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Imaging & Diagnosis", "Multi-Modal Approach to Metastatic Bone Disease")
add_rect(slide, 0.3, 1.55, 7.5, 5.5, LIGHT_GRAY)
imaging = [
("Plain X-Ray", "First-line; identifies lytic ('punched-out'), sclerotic, or mixed lesions. Requires >50% trabecular bone loss to detect lytic lesions. Cortical erosion, periosteal reaction, pathological fracture visible"),
("Bone Scintigraphy\n(Tc-99m)", "Most sensitive for OSTEOBLASTIC mets (50–85%); may miss pure lytic lesions. Whole-body screening. Shows 'hot spots' at active bone turnover sites"),
("CT Scan", "Best for cortical bone detail; lytic/sclerotic characterisation; CT-guided biopsy. Detects lesions not visible on XR"),
("MRI", "Best for marrow involvement, soft tissue extension, spinal cord compression. T1 hypointense / T2 hyperintense. Superior for perilesional oedema"),
("PET-CT (FDG)", "Metabolically active lesions; useful for lytic mets and unknown primary. Detects extra-skeletal disease simultaneously"),
("Biopsy", "Histological confirmation required for unknown primary. CT-guided core biopsy preferred. Must obtain representative tissue from viable (non-necrotic) area"),
]
tb = slide.shapes.add_textbox(Inches(0.45), Inches(1.65), Inches(7.3), Inches(5.2))
tf = tb.text_frame; tf.word_wrap = True
for i, (mod, desc) in enumerate(imaging):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(6)
run = p.add_run(); run.text = f"[{mod}] "
run.font.size = Pt(12); run.font.name = "Calibri"; run.font.bold = True
run.font.color.rgb = MID_BLUE
run2 = p.add_run(); run2.text = desc
run2.font.size = Pt(12); run2.font.name = "Calibri"; run2.font.color.rgb = DARK_GRAY
# Right side: clinical image of lytic lesion
add_image_url(slide,
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_87f275f601eca53ac75818e6b8c07e0460930d7a26fea67521f64acdcbca155c.jpg",
8.1, 1.55, 5.0, 2.55)
add_image_url(slide,
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_c04c4ac6dd02fd3b6092e045afce4cb1672a1c064443d061155eceafed86628f.jpg",
8.1, 4.2, 5.0, 2.55)
add_textbox(slide, "Lytic clavicle metastasis from cervix adenocarcinoma (CXR + CT)",
8.1, 4.1, 5.0, 0.18, font_size=8.5, italic=True, color=MID_GRAY)
add_textbox(slide, "Hypervascular proximal humerus met — pre & post embolisation, surgical fixation",
8.1, 6.72, 5.0, 0.18, font_size=8.5, italic=True, color=MID_GRAY)
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 10 — HISTOPATHOLOGY
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Histopathology", "Microscopic Features of Bone Metastasis")
add_rect(slide, 0.3, 1.55, 12.7, 5.5, LIGHT_GRAY)
add_textbox(slide, "KEY HISTOLOGICAL FEATURES", 0.5, 1.65, 8, 0.4,
font_size=14, bold=True, color=MID_BLUE)
histo = [
"Epithelial cells in a fibrous stroma — often the first clue that the lesion is a carcinoma, not a primary bone tumor",
"Cells frequently arranged in a GLANDULAR pattern — suggests adenocarcinoma origin (breast, prostate, lung, colon)",
"Immunohistochemistry (IHC) is KEY to identifying the primary site:",
" • ER/PR/HER2 positive → Breast cancer",
" • PSA / PSAP positive → Prostate cancer",
" • TTF-1 positive → Lung adenocarcinoma",
" • PAX-8 positive → Kidney (RCC) or Thyroid",
" • CK7/CK20 pattern → Helps narrow GI vs urothelial vs other",
"Carcinoma of Unknown Primary (CUP) — histologically confirmed metastatic cancer without identifiable primary site even after full work-up",
"Bone marrow infiltration by tumor cells ('myelophthisis') → leukoerythroblastic blood film",
"Reactive bone changes: woven bone formation around tumor nests; giant osteoclasts at resorption fronts",
]
tb = slide.shapes.add_textbox(Inches(0.5), Inches(2.15), Inches(12.3), Inches(4.7))
tf = tb.text_frame; tf.word_wrap = True
for i, h in enumerate(histo):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(5)
run = p.add_run()
run.text = ("▶ " if not h.startswith(" ") else "") + h
run.font.size = Pt(13 if not h.startswith(" ") else 12.5)
run.font.name = "Calibri"
run.font.bold = (i in [0, 2])
run.font.color.rgb = DARK_BLUE if i in [0, 2] else DARK_GRAY
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 11 — MANAGEMENT
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Management", "Multidisciplinary Treatment of Metastatic Bone Disease")
mgmt_cols = [
("SYSTEMIC\nTHERAPY", MID_BLUE, [
"Chemotherapy (tumour-specific)",
"Hormonal therapy (breast: AIs, SERMs; prostate: ADT)",
"Targeted therapy (e.g. TKIs for RCC)",
"Immunotherapy (checkpoint inhibitors)",
"Bisphosphonates / Denosumab — reduce skeletal-related events (SREs), prevent further lytic destruction",
]),
("RADIATION\nTHERAPY", ACCENT_TEAL, [
"Palliative external beam radiotherapy (EBRT) — excellent pain relief in 70–80%",
"Stereotactic body RT (SBRT) — higher-dose, precise delivery; spinal metastases",
"Radioisotopes: Radium-223 (prostate), Strontium-89 — for diffuse bone pain",
"Hemibody irradiation for widespread disease",
]),
("SURGICAL\nINTERVENTION", ACCENT_RED, [
"Prophylactic fixation before fracture (Mirels' score ≥ 9)",
"Pathological fracture fixation — IM nail, plate, endoprosthesis",
"Spinal surgery — decompression ± stabilisation for cord compression",
"Vertebroplasty / Kyphoplasty — cement augmentation of vertebral mets",
"Pre-op embolisation for hypervascular mets (RCC, thyroid)",
]),
("SUPPORTIVE\nCARE", RGBColor(0x55,0x55,0x55), [
"Adequate analgesia (WHO pain ladder; opioids for severe pain)",
"Calcium & Vitamin D supplementation",
"Physiotherapy & mobility aids",
"Palliative care input early",
"Treat hypercalcaemia: IV fluids, bisphosphonates",
]),
]
box_w = 3.0
for i, (title, col, pts) in enumerate(mgmt_cols):
x = 0.25 + i * (box_w + 0.15)
add_rect(slide, x, 1.55, box_w, 0.8, col)
add_textbox(slide, title, x, 1.56, box_w, 0.78,
font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, x, 2.35, box_w, 4.75, LIGHT_GRAY)
tb = slide.shapes.add_textbox(Inches(x + 0.1), Inches(2.43), Inches(box_w - 0.2), Inches(4.5))
tf = tb.text_frame; tf.word_wrap = True
for j, pt in enumerate(pts):
p = tf.paragraphs[0] if j == 0 else tf.add_paragraph()
p.space_before = Pt(7)
run = p.add_run(); run.text = "• " + pt
run.font.size = Pt(12); run.font.name = "Calibri"; run.font.color.rgb = DARK_GRAY
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 12 — PROGNOSIS & KEY SUMMARY POINTS
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
slide_header(slide, "Prognosis & Key Summary", "Take-Home Messages")
add_rect(slide, 0.3, 1.55, 12.7, 5.5, LIGHT_GRAY)
key_points = [
("Commonest malignant bone tumor in adults",
"Always suspect metastasis in any destructive bone lesion in a patient > 40–50 years, especially with known malignancy"),
("BLT-KP rule",
"Breast, Lung, Thyroid, Kidney, Prostate are the five carcinomas MOST likely to metastasize to bone"),
("Batson's plexus",
"Valveless vertebral venous plexus explains the axial skeleton distribution of metastases"),
("Lytic vs Sclerotic",
"Lytic (breast, lung, kidney, thyroid, myeloma) vs Sclerotic (prostate, carcinoid) vs Mixed (breast). RCC = highly vascular, embolize pre-op"),
("Pathological fracture",
"Most common at proximal femur; prophylactic fixation if Mirels' score ≥ 9. Bone met is NOT a contraindication to surgery"),
("Prognosis",
"Generally poor but depends on primary tumor. Median survival: prostate (40 mo) > breast (24 mo) > lung (6–12 mo). Solitary metastasis may be resectable"),
("Treatment goals",
"Palliative in most cases — pain control, prevent SREs, maintain function and quality of life"),
]
tb = slide.shapes.add_textbox(Inches(0.5), Inches(1.65), Inches(12.2), Inches(5.25))
tf = tb.text_frame; tf.word_wrap = True
for i, (head, body) in enumerate(key_points):
p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
p.space_before = Pt(7)
run = p.add_run(); run.text = f" {i+1}. {head}: "
run.font.size = Pt(13.5); run.font.name = "Calibri"
run.font.bold = True; run.font.color.rgb = MID_BLUE
run2 = p.add_run(); run2.text = body
run2.font.size = Pt(13.5); run2.font.name = "Calibri"
run2.font.color.rgb = DARK_GRAY
# ═══════════════════════════════════════════════════════════════════════════════
# SLIDE 13 — THANK YOU / REFERENCES
# ═══════════════════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
add_rect(slide, 0, 3.5, 13.333, 2.0, MID_BLUE)
add_rect(slide, 0, 5.5, 13.333, 2.0, ACCENT_TEAL)
add_textbox(slide, "THANK YOU", 0.5, 0.6, 12.333, 1.2,
font_size=56, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_textbox(slide, "Questions & Discussion Welcome", 0.5, 1.8, 12.333, 0.7,
font_size=22, color=LIGHT_BLUE, align=PP_ALIGN.CENTER)
add_textbox(slide, "REFERENCES", 0.5, 3.55, 12.333, 0.45,
font_size=15, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
refs = (
"1. Miller MD. Miller's Review of Orthopaedics, 9th Ed. Elsevier, 2024. — Chapter 9: Metastatic Bone Disease, pp. 850–855\n"
"2. Robbins SL, Cotran RS, Kumar V. Pathologic Basis of Disease, 10th Ed. Elsevier, 2024. — Chapter 7: Neoplasia, pp. 290–310\n"
"3. Schwartz SI. Schwartz's Principles of Surgery, 11th Ed. McGraw-Hill, 2019.\n"
"4. Mirels H. Metastatic Disease in Long Bones: A Proposed Scoring System for Diagnosing Impending Pathologic Fractures. Clin Orthop, 1989."
)
add_textbox(slide, refs, 0.5, 4.05, 12.333, 1.35,
font_size=12.5, color=WHITE, align=PP_ALIGN.CENTER, italic=True)
# ── SAVE ───────────────────────────────────────────────────────────────────────
out_path = "/tmp/workspace/secondary-bone-ppt/Secondary_Bone_Tumors.pptx"
prs.save(out_path)
print(f"Saved: {out_path}")
cd /tmp/workspace/secondary-bone-ppt && python create_ppt.py 2>&1
~/secondary-bone-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/secondary-bone-ppt/create_ppt.py'
cd /tmp/workspace/secondary-bone-ppt && python create_ppt.py 2>&1
~/secondary-bone-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/secondary-bone-ppt/create_ppt.py'
cd /tmp/workspace/secondary-bone-ppt && python create_ppt.py 2>&1
ls -lh /tmp/workspace/secondary-bone-ppt/Secondary_Bone_Tumors.pptx && python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/secondary-bone-ppt/Secondary_Bone_Tumors.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [sh.text_frame.text[:60].replace(chr(10),' ') for sh in slide.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(f' Slide {i:2d}: {texts[0] if texts else \"(no text)\"}') "
Secondary Bone Tumors
Presentation · PPTX
| # | Slide | Highlights |
|---|---|---|
| 1 | Title Slide | Full navy/teal design, topic overview |
| 2 | Outline | 12-topic roadmap |
| 3 | Definition & Epidemiology | Incidence table by primary tumor type |
| 4 | BLT-KP Rule | Color-coded 5-column layout — Breast, Lung, Thyroid, Kidney, Prostate |
| 5 | Pathogenesis / Batson's Plexus | Mechanism of venous spread + sites of predilection |
| 6 | Metastatic Cascade | 6-step sequential cascade + embedded Robbins' diagram image |
| 7 | Types: Lytic vs Sclerotic vs Mixed | 3-column comparison + embedded CT femur comparison image |
| 8 | Clinical Features | Symptoms & signs, clinical pearls (Mirels' score, CUP work-up) |
| 9 | Imaging & Diagnosis | X-ray, bone scan, CT, MRI, PET-CT + embedded clinical radiographs |
| 10 | Histopathology | Microscopic features, IHC panel (ER, PSA, TTF-1, PAX-8) |
| 11 | Management | 4-column: Systemic |
| 12 | Prognosis & Key Summary | 7 take-home messages with survival data |
| 13 | References | Miller's Orthopaedics 9e, Robbins Pathology 10e, Mirels' score paper |