Make notes for wilms tumor recent advances guidelines standard protocols which is asked in neet ss exam and inicet ss exam
Wilms tumor nephroblastoma treatment guidelines
Wilms tumor recent advances 2024 2025 NEET SS INICET pediatric surgery guidelines
https://pmc.ncbi.nlm.nih.gov/articles/PMC11943957
PMID: 40763792
Wilms tumor NCCN 2025 COG AREN staging treatment bilateral nephron sparing new protocols
| Parameter | Key Point |
|---|---|
| Most common primary renal tumor in children | YES |
| Peak age | 2-5 years (75% diagnosed <5 yr) |
| Annual incidence (US) | ~500 new cases/year |
| Overall cure rate | ~90% (up from 30% decades ago) |
| Bilateral involvement | 5-13% (synchronous or metachronous) |
| Lung metastases at diagnosis | 8% |
| 4th most common pediatric malignancy | YES |
| Hypertension at presentation | 25% |
| Syndrome | Features | Gene/Locus | WT Risk |
|---|---|---|---|
| WAGR | Wilms tumor, Aniridia, Genitourinary anomalies, mental Retardation | 11p13 deletion (WT1 + PAX6) | ~33% |
| Denys-Drash (DDS) | Gonadal dysgenesis (male pseudohermaphroditism), nephropathy (diffuse mesangial sclerosis), WT | WT1 dominant-negative missense mutation | ~90% (highest) |
| Beckwith-Wiedemann (BWS) | Macroglossia, macrosomia, visceromegaly, hemihypertrophy, neonatal hypoglycemia, midline abdominal wall defects | 11p15.5 (IGF2 loss of imprinting) | 4-10% |
| Li-Fraumeni | Multiple cancers | TP53 germline mutation | Increased |
| Neurofibromatosis | Cafe-au-lait, neurofibromas | NF1 | Increased |
Exam tip: Aniridia alone (PAX6 deletion only, WT1 intact) does NOT increase WT risk. When WT1 deletion accompanies aniridia (WAGR syndrome), the rate of WT development is 40%.
Histologic types relate to prognosis:
- Epithelial-predominant: less aggressive, tends to be stage I
- Blastemal-predominant: clinically aggressive, advanced disease
COG Protocol Update: Routine exploration of the contralateral kidney intraoperatively is NOT necessary if technically adequate imaging does not suggest bilateral involvement.
| Stage | Definition |
|---|---|
| Stage I | Tumor limited to kidney; completely excised; renal capsule intact; no rupture or biopsy prior to removal; vessels of renal sinus not involved; no tumor at margins |
| Stage II | Extends beyond renal capsule but completely excised; no microscopic residual; vessels outside kidney contain tumor; OR biopsy performed before removal |
| Stage III | Residual non-hematogenous tumor in abdomen: lymph nodes positive; peritoneal contamination/spillage; tumor growth through peritoneum; peritoneal implants; positive margins; tumor not fully resectable; preoperative chemo given; tumor removed in >1 piece |
| Stage IV | Hematogenous metastases (lung, liver, bone, brain) or lymph node involvement beyond abdominopelvic region |
| Stage V | Bilateral renal involvement at diagnosis |
Exam tip: Tumor spillage or biopsy UPSTAGES to Stage III and requires radiation + more chemo.
| Parameter | COG (NWTSG) - North American | SIOP - European |
|---|---|---|
| Approach | Surgery FIRST, then chemo/RT | Preoperative chemotherapy FIRST, then surgery |
| Advantage | Accurate staging; avoids over-treatment; prevents missing histologic diagnosis | Tumor shrinkage; reduced intraoperative rupture; facilitates resection |
| Disadvantage | Risk of intraoperative complications in large tumors | Loss of staging info; risk of over-treatment; changes histology |
| Preop chemo in both | Only for bilateral WT (Stage V), IVC thrombus above hepatic veins, solitary kidney | All patients (standard) |
| Stage | Histology | Treatment |
|---|---|---|
| Stage I | FH, Focal Anaplasia | Surgery + VA × 18 weeks; NO radiation |
| Stage II | FH | Surgery + VA × 18 weeks; NO radiation |
| Stage III | FH | Surgery + VAD × 24 weeks + Flank/Whole abdomen RT |
| Stage IV | FH | Surgery + VAD × 24 weeks + RT (abdominal + whole lung if pulmonary mets) |
| Stage V | FH | Preop chemo + bilateral NSS + Postop chemo based on highest stage |
| Stage I/II | Focal Anaplasia | Surgery + VA ± RT |
| Stage II-IV | Diffuse Anaplasia | Surgery + VAD + Cyclophosphamide + Carboplatin + Etoposide + RT |
Response-based therapy (recent update): For Stage IV with lung metastases - 3-drug regimen (VAD); if all lung nodules disappear by 6 weeks, whole lung radiation can be omitted (spares radiation toxicity).
| Stage/Histology | Survival |
|---|---|
| Stage I-II FH | ~95-97.6% (5-year) |
| Stage III FH | ~90% |
| Stage IV FH | ~75-85% |
| Stage II Diffuse Anaplasia | ~70% (4-year) |
| Stage III Diffuse Anaplasia | ~56% (4-year) |
| Stage IV Diffuse Anaplasia | ~17% (4-year) |
| Rhabdoid Tumor of Kidney | Very poor |

INICET/NEET SS Focus: The most frequently asked topics are staging (especially what constitutes Stage III), the COG vs SIOP difference, histologic classification (FH vs diffuse anaplasia), WAGR/Denys-Drash/BWS genetics, standard chemotherapy drugs by stage, indications for nephron-sparing surgery, and recent updates on lung met management (response-based RT omission) and molecular risk stratification with 1q/16q LOH.
3
ls /home/daytona/workspace/ 2>/dev/null && echo "---" && ls /home/daytona/worksp…
mkdir -p /home/daytona/workspace/wilms-tumor-notes && python3 -c "import reportl…
~/wilms-tumor-notes/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
OUTPUT = "/home/daytona/workspace/wilms-tumor-notes/Wilms_Tumor_NEET_SS_INICET_Notes.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=1.8*cm,
leftMargin=1.8*cm,
topMargin=2*cm,
bottomMargin=2*cm,
title="Wilms Tumor - NEET SS / INICET SS Notes",
author="Orris Medical AI"
)
styles = getSampleStyleSheet()
# Custom styles
DARK_BLUE = colors.HexColor("#1a3a5c")
MID_BLUE = colors.HexColor("#2563a8")
LIGHT_BLUE= colors.HexColor("#dbeafe")
ACCENT = colors.HexColor("#e63946")
GREEN = colors.HexColor("#166534")
LIGHT_GREEN=colors.HexColor("#dcfce7")
ORANGE = colors.HexColor("#ea580c")
LIGHT_ORANGE=colors.HexColor("#fff7ed")
YELLOW_BG = colors.HexColor("#fefce8")
GREY_BG = colors.HexColor("#f1f5f9")
WHITE = colors.white
title_style = ParagraphStyle(
"TitleStyle", parent=styles["Title"],
fontSize=20, textColor=WHITE, alignment=TA_CENTER,
spaceAfter=4, spaceBefore=4, fontName="Helvetica-Bold"
)
sub_title_style = ParagraphStyle(
"SubTitle", parent=styles["Normal"],
fontSize=11, textColor=WHITE, alignment=TA_CENTER,
spaceAfter=2, fontName="Helvetica"
)
h1_style = ParagraphStyle(
"H1", parent=styles["Heading1"],
fontSize=13, textColor=WHITE, fontName="Helvetica-Bold",
spaceBefore=12, spaceAfter=4, leftIndent=0
)
h2_style = ParagraphStyle(
"H2", parent=styles["Heading2"],
fontSize=11, textColor=DARK_BLUE, fontName="Helvetica-Bold",
spaceBefore=8, spaceAfter=3
)
body_style = ParagraphStyle(
"Body", parent=styles["Normal"],
fontSize=9, leading=13, spaceAfter=3, fontName="Helvetica",
alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
"Bullet", parent=styles["Normal"],
fontSize=9, leading=13, spaceAfter=2, fontName="Helvetica",
leftIndent=12, firstLineIndent=-10
)
small_style = ParagraphStyle(
"Small", parent=styles["Normal"],
fontSize=8, leading=11, spaceAfter=2, fontName="Helvetica",
textColor=colors.HexColor("#374151")
)
highlight_style = ParagraphStyle(
"Highlight", parent=styles["Normal"],
fontSize=9, leading=13, fontName="Helvetica-Bold",
textColor=ACCENT
)
note_style = ParagraphStyle(
"Note", parent=styles["Normal"],
fontSize=8.5, leading=12, fontName="Helvetica-Oblique",
textColor=GREEN, leftIndent=8, spaceAfter=4
)
def section_header(text, color=DARK_BLUE):
"""Returns a colored section header table"""
t = Table([[Paragraph(text, ParagraphStyle("hdr", fontSize=12, textColor=WHITE,
fontName="Helvetica-Bold", spaceAfter=0, spaceBefore=0))]],
colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("ROUNDEDCORNERS", [4, 4, 4, 4]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
]))
return t
def info_box(text, bg=LIGHT_BLUE, border=MID_BLUE):
t = Table([[Paragraph(text, ParagraphStyle("ib", fontSize=9, leading=13,
fontName="Helvetica", spaceAfter=0, spaceBefore=0))]],
colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 1, border),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
return t
def make_table(headers, rows, col_widths=None):
data = [headers] + rows
if col_widths is None:
col_widths = [17.4*cm / len(headers)] * len(headers)
hdr_style = ParagraphStyle("th", fontSize=8.5, fontName="Helvetica-Bold",
textColor=WHITE, spaceAfter=0, spaceBefore=0, leading=11)
cell_style = ParagraphStyle("td", fontSize=8, fontName="Helvetica",
spaceAfter=0, spaceBefore=0, leading=11,
textColor=colors.HexColor("#1e293b"))
fmt_data = []
for i, row in enumerate(data):
fmt_row = []
for cell in row:
s = hdr_style if i == 0 else cell_style
fmt_row.append(Paragraph(str(cell), s))
fmt_data.append(fmt_row)
t = Table(fmt_data, colWidths=col_widths, repeatRows=1)
ts = TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#94a3b8")),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#cbd5e1")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("VALIGN", (0,0), (-1,-1), "TOP"),
])
t.setStyle(ts)
return t
def bp(text):
return Paragraph(f"• {text}", bullet_style)
def sp(n=4):
return Spacer(1, n)
story = []
# ─────────────────────────────────────────────
# COVER
# ─────────────────────────────────────────────
cover = Table([[Paragraph("WILMS TUMOR\n(Nephroblastoma)", ParagraphStyle("cv",
fontSize=24, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER,
leading=30)),
]], colWidths=[17.4*cm])
cover.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING", (0,0), (-1,-1), 18),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
story.append(cover)
story.append(sp(4))
sub = Table([[Paragraph("Complete Exam Notes | NEET SS · INICET SS | Pediatric Surgery & Oncology", ParagraphStyle("sub",
fontSize=11, textColor=DARK_BLUE, fontName="Helvetica-Bold", alignment=TA_CENTER))]],
colWidths=[17.4*cm])
sub.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_BLUE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
]))
story.append(sub)
story.append(sp(6))
# NCCN 2025 badge
badge = Table([[Paragraph("✓ Updated with NCCN Guidelines v2.2025 · COG AREN Trials · Recent Advances 2022–2025", ParagraphStyle("badge",
fontSize=9, textColor=GREEN, fontName="Helvetica-Bold", alignment=TA_CENTER))]],
colWidths=[17.4*cm])
badge.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_GREEN),
("BOX", (0,0), (-1,-1), 1, GREEN),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))
story.append(badge)
story.append(sp(10))
# ─────────────────────────────────────────────
# 1. QUICK FACTS
# ─────────────────────────────────────────────
story.append(section_header("1. QUICK FACTS (High-Yield)"))
story.append(sp(4))
qf_headers = ["Parameter", "Key Point"]
qf_rows = [
["Most common primary renal tumor in children", "YES — nephroblastoma"],
["Peak age", "2–5 years; 75% diagnosed < 5 years"],
["Incidence", "~1 in 10,000 children (US: ~500 new cases/year)"],
["4th most common pediatric malignancy", "YES"],
["Bilateral involvement", "5–13% (synchronous or metachronous)"],
["Lung metastases at diagnosis", "8%"],
["Overall cure rate", "~90% (from 30% decades ago — one of pediatric oncology's greatest successes)"],
["Hypertension at presentation", "25% (renin-angiotensin disturbance)"],
["Sporadic (non-syndromic)", "~90–97% of all cases"],
]
story.append(make_table(qf_headers, qf_rows, [7*cm, 10.4*cm]))
story.append(sp(8))
# ─────────────────────────────────────────────
# 2. GENETICS
# ─────────────────────────────────────────────
story.append(section_header("2. GENETICS & PREDISPOSING SYNDROMES", MID_BLUE))
story.append(sp(4))
story.append(Paragraph("<b>Key Genes:</b>", h2_style))
gene_rows = [
["WT1", "11p13", "Tumor suppressor; critical for renal & gonadal development; mutations cause GU anomalies + WT risk"],
["WT2 / IGF2", "11p15", "Linked to Beckwith-Wiedemann; IGF2 over-expression via loss of imprinting"],
["TP53", "17p13", "Mutations → anaplasia; worst prognosis"],
["CTNNB1 (β-catenin)", "3p22", "Gain-of-function in ~10% sporadic WT"],
["miRNA processing\n(DROSHA, DICER1, DGCR8)", "Various", "Mutated in 15–20% sporadic WT; impairs mesenchymal-to-epithelial transformation"],
["SIX1 / SIX2", "14q22–23", "Mutated in ~20% WT; often co-mutated with miRNA genes"],
["REST", "4q12", "Germline mutations predispose to WT (Nat Genet 2015)"],
]
story.append(make_table(["Gene", "Locus", "Significance"], gene_rows, [3.5*cm, 2.5*cm, 11.4*cm]))
story.append(sp(6))
story.append(Paragraph("<b>Predisposing Syndromes:</b>", h2_style))
syn_rows = [
["WAGR", "WT + Aniridia + Genitourinary anomalies + mental Retardation",
"11p13 deletion (WT1 + PAX6)", "~33%"],
["Denys-Drash (DDS)", "Gonadal dysgenesis (male pseudohermaphroditism) + nephropathy (diffuse mesangial sclerosis) + WT",
"WT1 dominant-negative missense mutation", "<b>~90% (highest risk)</b>"],
["Beckwith-Wiedemann (BWS)", "Macroglossia, macrosomia, visceromegaly, hemihypertrophy, neonatal hypoglycemia, midline abdominal wall defects",
"11p15.5 (IGF2 LOI)", "4–10%"],
["Li-Fraumeni", "Multiple cancers, early onset", "TP53 germline mutation", "Increased"],
["Neurofibromatosis type 1", "Café-au-lait, neurofibromas", "NF1 gene", "Increased"],
]
story.append(make_table(
["Syndrome", "Features", "Gene/Locus", "WT Risk"],
syn_rows, [3*cm, 6*cm, 4.2*cm, 4.2*cm]
))
story.append(sp(4))
story.append(info_box(
"<b>Exam Tip:</b> Aniridia alone (PAX6 deletion only, WT1 intact) does NOT increase WT risk. "
"When WT1 deletion accompanies aniridia (WAGR syndrome), WT development rate is 40%. "
"DDS patients also at risk for gonadoblastoma (germ cell tumor).",
YELLOW_BG, colors.HexColor("#ca8a04")
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 3. PATHOLOGY
# ─────────────────────────────────────────────
story.append(section_header("3. PATHOLOGY", colors.HexColor("#7c3aed")))
story.append(sp(4))
story.append(Paragraph("<b>Gross:</b>", h2_style))
for t in ["Large, solitary, well-circumscribed mass (10% bilateral or multicentric)",
"Soft, homogeneous, tan-grey on cut section",
"Foci of hemorrhage, cystic degeneration, necrosis"]:
story.append(bp(t))
story.append(sp(4))
story.append(Paragraph("<b>Microscopy — Classic TRIPHASIC pattern:</b>", h2_style))
tri_rows = [
["Blastemal", "Sheets of small blue cells, high N:C ratio, scant cytoplasm — most aggressive component"],
["Stromal", "Spindle cells, myxoid stroma, may show skeletal muscle / adipose differentiation"],
["Epithelial", "Abortive tubules or glomeruloid structures — least aggressive; stage I when discovered early"],
]
story.append(make_table(["Component", "Description"], tri_rows, [3.5*cm, 13.9*cm]))
story.append(sp(4))
story.append(Paragraph("<b>Histologic Classification (KEY for staging & treatment):</b>", h2_style))
hist_rows = [
["Favorable (FH)", "Triphasic / blastemal / stromal / epithelial; cystic partially differentiated nephroblastoma",
"Stage I–II: ~95–97.6%\nStage III: ~90%"],
["Focal Anaplasia", "Confined to one/few discrete foci within primary tumor; treated like FH (Stages I–II)",
"Intermediate — same as FH if Stage I/II"],
["Diffuse Anaplasia", "Any extrarenal anaplasia OR multifocal intrarenal anaplasia; TP53 mutation underlies most",
"Stage IV: ~17% (4-yr)"],
["Clear Cell Sarcoma of Kidney (CCSK)", "Bone metastases; not true WT but classified with it",
"Intermediate-poor"],
["Rhabdoid Tumor of Kidney", "Most malignant; SMARCB1/INI1 mutation; brain metastases",
"Very poor"],
]
story.append(make_table(["Histology", "Features", "Prognosis"], hist_rows, [4*cm, 9.4*cm, 4*cm]))
story.append(sp(4))
story.append(Paragraph("<b>Nephrogenic Rests (Precursor Lesions):</b>", h2_style))
for t in ["Found in 25–40% of kidneys with WT",
"Perilobar vs intralobar rests (intralobar = higher risk)",
"Do NOT have oncologic potential; can spontaneously regress",
"<b>Nephroblastomatosis</b> = diffuse/multifocal nephrogenic rests → high risk for bilateral WT"]:
story.append(bp(t))
story.append(sp(8))
# ─────────────────────────────────────────────
# 4. CLINICAL PRESENTATION
# ─────────────────────────────────────────────
story.append(section_header("4. CLINICAL PRESENTATION", colors.HexColor("#0f766e")))
story.append(sp(4))
story.append(info_box(
"<b>Classic presentation:</b> Asymptomatic abdominal/flank mass noticed by a parent while bathing or dressing the child",
LIGHT_GREEN, GREEN
))
story.append(sp(4))
cp_data = [
["Common Symptoms", "Atypical (<10%)"],
["• Asymptomatic abdominal/flank mass\n• Vague abdominal discomfort\n• Hematuria (gross or micro) — collecting system invasion\n• Hypertension (25%) — renin-angiotensin disturbance\n• Obstipation / weight loss",
"• Varicocele (left spermatic vein compression)\n• Hepatomegaly (hepatic vein obstruction)\n• Ascites\n• Congestive heart failure (IVC/right atrial thrombus)\n• Abdominal trauma revealing mass"]
]
cp_table_fmt = []
hdr_s = ParagraphStyle("hdr2", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE, leading=12)
cell_s = ParagraphStyle("cell2", fontSize=8.5, fontName="Helvetica", leading=13, textColor=colors.HexColor("#1e293b"))
for i, row in enumerate(cp_data):
s = hdr_s if i == 0 else cell_s
cp_table_fmt.append([Paragraph(row[0], s), Paragraph(row[1], s)])
ct = Table(cp_table_fmt, colWidths=[8.7*cm, 8.7*cm])
ct.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_BLUE]),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#bfdbfe")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(ct)
story.append(sp(4))
story.append(info_box(
"<b>Important:</b> Acquired von Willebrand disease (vWD) associated with WT — obtain coagulation studies pre-op; "
"can cause profuse intraoperative bleeding only stopped after renal vessel ligation.",
LIGHT_ORANGE, ORANGE
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 5. INVESTIGATIONS
# ─────────────────────────────────────────────
story.append(section_header("5. INVESTIGATIONS & WORKUP", MID_BLUE))
story.append(sp(4))
inv_rows = [
["1. Abdominal Ultrasound", "FIRST investigation; defines intrinsic vs extrinsic lesion; evaluates renal vein & IVC thrombus extent"],
["2. CT Abdomen + Chest (contrast)", "Standard workup — characterizes mass, evaluates contralateral kidney, regional nodes, liver, lungs, IVC. Modern helical CT misses only 0.25% of bilateral tumors"],
["3. MRI Abdomen", "Avoids radiation; useful for bilateral disease surgical planning; NOT superior to CT for standard staging; requires sedation"],
["4. Chest X-ray", "Part of initial workup for pulmonary metastases"],
["5. CBC, coagulation", "Rule out anemia; screen for acquired von Willebrand disease"],
["6. Blood typing & crossmatch", "Pre-operative preparation"],
["7. Urinalysis", "Hematuria; renal function"],
]
story.append(make_table(["Investigation", "Role"], inv_rows, [5*cm, 12.4*cm]))
story.append(sp(4))
story.append(info_box(
"<b>COG Update:</b> Routine intraoperative contralateral kidney exploration is NOT necessary if "
"technically adequate imaging does not suggest bilateral involvement.",
GREY_BG, colors.HexColor("#64748b")
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 6. STAGING
# ─────────────────────────────────────────────
story.append(PageBreak())
story.append(section_header("6. STAGING SYSTEMS", colors.HexColor("#b45309")))
story.append(sp(4))
story.append(Paragraph("<b>COG/NWTSG Staging (North America — after upfront surgery):</b>", h2_style))
stage_rows = [
["Stage I", "Tumor limited to kidney; completely excised; renal capsule intact; no rupture or biopsy prior to removal; vessels of renal sinus not involved; no tumor at margins"],
["Stage II", "Extends beyond renal capsule but completely excised; no microscopic residual; vessels outside kidney may contain tumor; OR biopsy performed before removal"],
["Stage III", "Residual non-hematogenous tumor in abdomen: (+) lymph nodes; peritoneal contamination/spillage; tumor through peritoneum; peritoneal implants; positive margins; tumor removed in >1 piece; OR preoperative chemotherapy given"],
["Stage IV", "Hematogenous metastases (lung, liver, bone, brain) OR lymph node involvement beyond abdominopelvic region"],
["Stage V", "Bilateral renal involvement at diagnosis (synchronous or metachronous)"],
]
story.append(make_table(["Stage", "Definition"], stage_rows, [1.8*cm, 15.6*cm]))
story.append(sp(4))
story.append(info_box(
"<b>KEY EXAM POINT:</b> Tumor spillage, biopsy before surgery, or peritoneal contamination UPSTAGES to Stage III "
"→ mandates postoperative radiation therapy + more intensive chemotherapy.",
colors.HexColor("#fef2f2"), ACCENT
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 7. COG vs SIOP
# ─────────────────────────────────────────────
story.append(section_header("7. COG vs SIOP — CRITICAL COMPARISON", ACCENT))
story.append(sp(4))
cog_rows = [
["Approach", "Surgery FIRST → then adjuvant chemotherapy/RT", "Neoadjuvant chemotherapy FIRST → then surgery"],
["Standard regimen", "Upfront nephroureterectomy + lymph node sampling", "Vincristine + dactinomycin × 4 weeks before surgery"],
["Advantage", "Accurate pathologic staging; avoids over-treatment; no upfront chemo toxicity", "Tumor shrinkage; reduces intraoperative rupture risk; facilitates complete resection of large/adherent tumors"],
["Disadvantage", "Large tumors may be harder to resect; rupture risk", "Loss of staging information; alters histology; risk of over-treatment for favorable early stage"],
["Agree on preop chemo", "Bilateral WT (Stage V); IVC thrombus above hepatic veins; solitary kidney; unresectable tumor", "All patients (standard)"],
["Staging timing", "Before chemotherapy (surgical/pathologic staging)", "After surgery (based on pre-chemo imaging + pathology)"],
]
story.append(make_table(["Parameter", "COG (North America)", "SIOP (Europe)"], cog_rows,
[3.5*cm, 7*cm, 6.9*cm]))
story.append(sp(8))
# ─────────────────────────────────────────────
# 8. SURGICAL PRINCIPLES
# ─────────────────────────────────────────────
story.append(section_header("8. SURGICAL MANAGEMENT", colors.HexColor("#0f766e")))
story.append(sp(4))
story.append(Paragraph("<b>Standard Operation: Radical Nephroureterectomy + Regional Lymph Node Sampling</b>", h2_style))
surg_pts = [
"Transverse/transabdominal incision; transperitoneal approach",
"En bloc resection with tumor-free margins — MOST CRITICAL STEP",
"Lymph node sampling: hilar, paraaortic, paracaval nodes — MANDATORY for staging (≥7 nodes recommended by COG)",
"Control renal pedicle as initial step",
"Avoid tumor rupture — spillage upstages to Stage III",
"Inspect contralateral kidney if bilateral disease suspected",
"IVC thrombus removal at same sitting if below hepatic veins",
]
for pt in surg_pts:
story.append(bp(pt))
story.append(sp(4))
story.append(Paragraph("<b>Indications for Preoperative Chemotherapy (both COG and SIOP agree):</b>", h2_style))
preop_pts = [
"Stage V (bilateral WT) — standard approach",
"IVC thrombus extending ABOVE hepatic veins (may need cardiac bypass)",
"Solitary functioning kidney",
"Tumor involving both kidneys or unresectable tumor",
"Respiratory distress from extensive pulmonary metastases",
]
for pt in preop_pts:
story.append(bp(pt))
story.append(sp(4))
story.append(Paragraph("<b>Nephron-Sparing Surgery (NSS) / Partial Nephrectomy:</b>", h2_style))
nss_rows = [
["Standard indication", "Bilateral WT (Stage V) — after preop chemo to shrink tumors"],
["Solitary kidney", "Mandatory organ-preserving approach"],
["Genetic predisposition", "WAGR, Denys-Drash — high risk of bilateral/sequential disease"],
["Criteria for unilateral NSS", "Tumor in one pole only; no collecting system or vascular involvement; clear margins possible; appreciable function of involved kidney; only after preop chemo in COG protocol"],
["COG AREN0534 outcome", "Only 35–39% achieved bilateral NSS in multicenter study; specialized centers achieve >90%"],
["NCCN 2025 recommendation", "Continue bilateral NSS goal whenever feasible after preop chemo for Stage V"],
]
story.append(make_table(["Aspect", "Details"], nss_rows, [4.5*cm, 12.9*cm]))
story.append(sp(8))
# ─────────────────────────────────────────────
# 9. CHEMOTHERAPY
# ─────────────────────────────────────────────
story.append(section_header("9. CHEMOTHERAPY REGIMENS", MID_BLUE))
story.append(sp(4))
story.append(Paragraph("<b>Core Drugs:</b>", h2_style))
drug_rows = [
["V — Vincristine", "ALL stages; vinca alkaloid; microtubule inhibitor"],
["A — Dactinomycin (Actinomycin-D)", "ALL stages; intercalates DNA"],
["D — Doxorubicin", "Stage III, IV FH; unfavorable histology; cardiotoxic → monitor LVEF"],
["Cyclophosphamide", "Diffuse anaplastic WT; alkylating agent"],
["Carboplatin", "Diffuse anaplastic WT; platinum-based"],
["Etoposide", "Diffuse anaplastic WT; topoisomerase II inhibitor"],
]
story.append(make_table(["Drug", "Use"], drug_rows, [5*cm, 12.4*cm]))
story.append(sp(5))
story.append(Paragraph("<b>Treatment Protocol by Stage (COG/NWTSG):</b>", h2_style))
tx_rows = [
["Stage I", "FH / Focal Anaplasia", "Surgery + VA × 18 weeks", "NO radiation"],
["Stage II", "FH", "Surgery + VA × 18 weeks", "NO radiation"],
["Stage III", "FH", "Surgery + VAD × 24 weeks", "Flank RT (10.8 Gy) OR whole abdomen if diffuse spillage"],
["Stage IV", "FH", "Surgery + VAD × 24 weeks", "Abdominal RT + whole lung RT if pulmonary mets"],
["Stage V", "FH (bilateral)", "Preop chemo (VA/VAD) → bilateral NSS → postop chemo based on highest local stage", "RT based on stage after surgery"],
["Stage I/II", "Focal Anaplasia", "Surgery + VA ± RT", "RT for Stage II"],
["Stage II–IV", "Diffuse Anaplasia", "Surgery + VAD + Cyclophosphamide + Carboplatin + Etoposide", "RT mandatory"],
]
story.append(make_table(["Stage", "Histology", "Chemo", "Radiation"], tx_rows,
[1.8*cm, 3.5*cm, 8.1*cm, 4*cm]))
story.append(sp(4))
story.append(info_box(
"<b>Recent Update (Response-Based Therapy for Stage IV with lung metastases):</b> "
"Use 3-drug VAD regimen. If ALL lung nodules disappear by 6 weeks → "
"<b>whole lung radiation can be OMITTED</b>, sparing significant late toxicity.",
LIGHT_GREEN, GREEN
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 10. RADIATION THERAPY
# ─────────────────────────────────────────────
story.append(section_header("10. RADIATION THERAPY", colors.HexColor("#7c3aed")))
story.append(sp(4))
rt_rows = [
["Stage III FH", "Flank RT (10.8 Gy)", "YES"],
["Stage III FH with diffuse abdominal spillage", "Whole abdominal RT", "YES"],
["Stage IV FH with residual pulmonary lesions after chemo", "Whole lung RT (12 Gy)", "YES"],
["Stage IV FH — complete response in lungs by 6 weeks", "Whole lung RT", "<b>OMIT (recent update)</b>"],
["Diffuse Anaplasia Stage II–IV", "Flank RT ± whole abdomen", "YES"],
["Stage I FH / Stage I–II FH focal anaplasia", "—", "<b>NO RT</b>"],
]
story.append(make_table(["Setting", "RT Field/Dose", "RT Required?"], rt_rows, [5.5*cm, 6*cm, 5.9*cm]))
story.append(sp(4))
story.append(Paragraph("<b>Late Effects of Radiation (EXAM-IMPORTANT):</b>", h2_style))
for t in ["Secondary malignant tumors: 61% in irradiated patients vs 9% in surgery/chemo only",
"Scoliosis and musculoskeletal deformity",
"Ovarian failure, premature menopause, infertility",
"Bowel obstruction (adhesions + radiation enteritis)",
"Cardiac toxicity (compounded with doxorubicin)",
"Pulmonary fibrosis (whole lung RT)"]:
story.append(bp(t))
story.append(sp(4))
story.append(info_box(
"<b>Proton Therapy (Recent Advance):</b> Pencil-beam scanning proton therapy available for retroperitoneal RT. "
"Reduces dose to non-target organs (bowel, spine, ovaries, liver). "
"Preferred when available to reduce late effects.",
LIGHT_BLUE, MID_BLUE
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 11. PROGNOSIS
# ─────────────────────────────────────────────
story.append(PageBreak())
story.append(section_header("11. PROGNOSIS", colors.HexColor("#b45309")))
story.append(sp(4))
prog_rows = [
["Stage I–II FH", "~95–97.6% (5-year OS)", "Excellent"],
["Stage III FH", "~90%", "Good"],
["Stage IV FH", "~75–85%", "Good with treatment"],
["Stage I FH (overall)", "97.6% (COG data)", "Excellent"],
["Stage II Diffuse Anaplasia", "~70% (4-year)", "Moderate"],
["Stage III Diffuse Anaplasia", "~56% (4-year)", "Poor"],
["Stage IV Diffuse Anaplasia", "~17% (4-year)", "Very poor"],
["CCSK", "Intermediate", "Intermediate"],
["Rhabdoid Tumor of Kidney", "Very poor", "Very poor"],
]
story.append(make_table(["Stage / Histology", "Survival", "Outlook"], prog_rows,
[5.5*cm, 5.5*cm, 6.4*cm]))
story.append(sp(8))
# ─────────────────────────────────────────────
# 12. RECENT ADVANCES
# ─────────────────────────────────────────────
story.append(section_header("12. RECENT ADVANCES 2022–2025 (NEET SS Priority)", ACCENT))
story.append(sp(4))
adv_items = [
("<b>NCCN Guidelines v2.2025 (PMID: 40763792)</b>",
"Updated algorithms for unilateral FH-WT, bilateral FH-WT, and anaplastic WT. "
"Goal: maximize cure while minimizing long-term toxicities. Separate pathways for each histologic type."),
("<b>COG Updated Risk Stratification (FHWT)</b>",
"Based on prospective COG AREN0532/0533/0534 trials. "
"New molecular markers integrated: (1) 1q gain and (2) 16q LOH = HIGH-RISK molecular status → treatment escalation. "
"Low-risk tumors → treatment de-escalation (reduce chemo cycles, omit anthracycline). "
"Blastemal-type post-chemotherapy histology (SIOP) = high risk."),
("<b>Nephron-Sparing Surgery Advances</b>",
"3D preoperative imaging reconstruction for surgical planning. "
"Fluorescence-guided surgery (indocyanine green / ICG) for intraoperative tumor margin assessment. "
"Laparoscopic radical nephrectomy and laparoscopic-assisted partial nephrectomy: same outcomes as open in experienced hands. "
"Expanding NSS to unilateral multifocal WT with genetic predisposition."),
("<b>Molecular/Genetic Advances</b>",
"miRNA processing gene mutations (DROSHA, DICER1, DGCR8): 15–20% sporadic WT. "
"SIX1/SIX2 mutations: ~20% WT, often co-mutated with miRNA processing genes. "
"REST mutations predispose to WT (Nature Genetics 2015). "
"Exome sequencing identified new predisposition genes (Lancet Child & Adolescent Health 2019). "
"These markers being integrated into risk-stratified therapy."),
("<b>Imaging Advances</b>",
"Diffusion-weighted MRI: distinguishes viable tumor from necrosis; monitors treatment response. "
"Contrast-enhanced ultrasound (CEUS): avoids radiation, monitors response. "
"FDG-PET/CT: selected use in recurrent/refractory disease. "
"AI-based 3D tumor reconstruction for planning surgical resection margins."),
("<b>Relapsed/Refractory WT</b>",
"Salvage chemotherapy: ICE regimen (Ifosfamide + Carboplatin + Etoposide). "
"High-dose chemotherapy with autologous stem cell rescue for multiply relapsed disease. "
"Emerging: anti-IGF1R antibodies, immune checkpoint inhibitors (currently in trials). "
"Targeted therapies under investigation for TP53-mutant anaplastic WT."),
("<b>Oncofertility (SIOP/COG white paper 2022)</b>",
"Radiotherapy to flank/pelvis → ovarian damage. "
"Ovarian transposition BEFORE radiation in girls. "
"Oocyte / embryo cryopreservation in post-pubertal females. "
"Sperm banking for post-pubertal males receiving gonadotoxic chemo."),
("<b>Response-Based Therapy for Pulmonary Metastases</b>",
"Stage IV WT with lung metastases: use 3-drug VAD regimen. "
"If ALL lung nodules disappear by 6 weeks on imaging → OMIT whole lung radiation. "
"This reduces pulmonary fibrosis and secondary malignancy risk significantly."),
]
for title_text, detail_text in adv_items:
row_data = [[
Paragraph(title_text, ParagraphStyle("advT", fontSize=9, fontName="Helvetica-Bold",
textColor=DARK_BLUE, leading=13, spaceAfter=0, spaceBefore=0)),
Paragraph(detail_text, ParagraphStyle("advD", fontSize=8.5, fontName="Helvetica",
textColor=colors.HexColor("#1e293b"), leading=13, spaceAfter=0, spaceBefore=0))
]]
t = Table(row_data, colWidths=[4.2*cm, 13.2*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), LIGHT_BLUE),
("BACKGROUND", (1,0), (1,-1), WHITE),
("BOX", (0,0), (-1,-1), 0.5, MID_BLUE),
("LINEAFTER", (0,0), (0,-1), 0.5, MID_BLUE),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(t)
story.append(sp(2))
story.append(sp(8))
# ─────────────────────────────────────────────
# 13. IVC THROMBUS MANAGEMENT
# ─────────────────────────────────────────────
story.append(section_header("13. IVC / INTRACARDIAC THROMBUS MANAGEMENT", colors.HexColor("#0f766e")))
story.append(sp(4))
ivc_rows = [
["Renal vein thrombus only", "Stage III; radical nephrectomy + IVC thrombectomy at same sitting"],
["IVC thrombus — below hepatic veins", "Radical nephrectomy + IVC thrombectomy in same operation"],
["IVC thrombus — above hepatic veins", "Preoperative chemotherapy MANDATORY (both COG & SIOP agree); may require cardiac bypass / cardiac surgery team"],
["Intracardiac extension (right atrium)", "Preop chemo; cardiac bypass; multidisciplinary team"],
]
story.append(make_table(["Extent", "Management"], ivc_rows, [5.5*cm, 11.9*cm]))
story.append(sp(4))
story.append(info_box(
"<b>Imaging for thrombus:</b> Ultrasound is preferred to define IVC thrombus extent. "
"Contrast CT also accurately identifies cavoatrial thrombus and can replace US in many cases.",
GREY_BG, colors.HexColor("#64748b")
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 14. SCREENING
# ─────────────────────────────────────────────
story.append(section_header("14. SCREENING PROTOCOL", MID_BLUE))
story.append(sp(4))
story.append(Paragraph("<b>Indications for surveillance ultrasound screening:</b>", h2_style))
for t in ["WAGR syndrome",
"Denys-Drash syndrome",
"Beckwith-Wiedemann syndrome with hemihypertrophy",
"Isolated hemihypertrophy (without BWS)",
"Family history of Wilms tumor",
"Nephroblastomatosis on imaging"]:
story.append(bp(t))
story.append(sp(4))
story.append(info_box(
"<b>Protocol:</b> Abdominal ultrasound every <b>3–4 months</b> until age <b>7–8 years</b> "
"(when risk of WT development markedly decreases).",
LIGHT_GREEN, GREEN
))
story.append(sp(8))
# ─────────────────────────────────────────────
# 15. MEMORY AIDS
# ─────────────────────────────────────────────
story.append(PageBreak())
story.append(section_header("15. QUICK EXAM MEMORY AIDS", colors.HexColor("#b45309")))
story.append(sp(4))
mnemonics = [
("WAGR =", "W ilms + A niridia + G enitourinary anomalies + R etardation\n→ WT1 + PAX6 deletion, chr 11p13 → ~33% WT risk"),
("Denys-Drash =", "Gonadal dysgenesis + Nephropathy (diffuse mesangial sclerosis) + WT\n→ WT1 dominant-negative mutation → ~90% WT risk (HIGHEST)"),
("Triphasic WT =", "Blastemal + Stromal + Epithelial"),
("Stage III triggers =", "Spillage + Biopsy + Positive nodes + Peritoneal contamination + Positive margins"),
("COG surgery rule =", "Radical Nephroureterectomy + Lymph node sampling (hilar + paraaortic + paracaval)"),
("Both COG & SIOP\nagree on preop chemo =", "Bilateral WT + IVC thrombus above hepatic veins + Solitary kidney"),
("No RT needed =", "Stage I & II FH; Stage I focal anaplasia"),
("Worst prognosis =", "Diffuse Anaplasia Stage IV → only ~17% 4-year survival"),
("Lung mets: complete response\nby 6 weeks =", "OMIT whole lung RT (response-based therapy — recent update)"),
("High-risk molecular markers =", "1q gain + 16q LOH → treatment escalation in COG protocols"),
("NSS indications =", "Bilateral WT (Stage V) + Solitary kidney + Genetic predisposition (WAGR/DDS)"),
("SIOP high-risk post-chemo =", "Blastemal-type histology after preop chemo → intensive treatment"),
]
mnem_table_data = []
mnemo_key_s = ParagraphStyle("mk", fontSize=9, fontName="Helvetica-Bold",
textColor=DARK_BLUE, leading=13)
mnemo_val_s = ParagraphStyle("mv", fontSize=9, fontName="Helvetica",
textColor=colors.HexColor("#1e293b"), leading=13)
for key, val in mnemonics:
mnem_table_data.append([Paragraph(key, mnemo_key_s), Paragraph(val, mnemo_val_s)])
mt = Table(mnem_table_data, colWidths=[4.5*cm, 12.9*cm])
mt.setStyle(TableStyle([
("ROWBACKGROUNDS", (0,0), (-1,-1), [YELLOW_BG, WHITE]),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#ca8a04")),
("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#fde68a")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(mt)
story.append(sp(8))
# ─────────────────────────────────────────────
# 16. REFERENCES
# ─────────────────────────────────────────────
story.append(section_header("16. KEY REFERENCES", colors.HexColor("#374151")))
story.append(sp(4))
refs = [
"Balis F et al. Wilms Tumor, Version 2.2025, NCCN Clinical Practice Guidelines In Oncology. J Natl Compr Canc Netw. 2025. PMID: 40763792",
"Sabiston Textbook of Surgery, 21st ed., Chapter 117: Pediatric Surgery, Table 117.3 & Box 117.2",
"Schwartz's Principles of Surgery, 11th ed., Chapter 39: Pediatric Surgery",
"Robbins & Kumar Basic Pathology, Chapter 4: Pediatric Disease",
"Robbins, Cotran & Kumar Pathologic Basis of Disease, Chapter: Kidney",
"Theilen TM et al. Multidisciplinary Treatment Strategies for Wilms Tumor: Recent Advances, Technical Innovations and Future Directions. Front Pediatr. 2022;10:852185",
"Long CJ et al. Expanding the Use of Nephron-Sparing Surgery for Wilms Tumor. J Natl Compr Canc Netw. 2022. PMID: 35176725",
"NCI PDQ Wilms Tumor and Other Childhood Kidney Tumors Treatment — Health Professional Version (continuously updated)",
"COG AREN0534 study: Chintagumpala MM et al. Cancer. 2022;128:2493–2503 (bilateral WT outcomes)",
"Nature Reviews Urology 2025: Updated FHWT risk stratification for future COG clinical trials",
]
for ref in refs:
story.append(bp(ref))
story.append(sp(8))
footer_t = Table([[Paragraph(
"Prepared by Orris Medical AI | NEET SS / INICET SS Exam Preparation | July 2026 | "
"Based on NCCN 2025, Sabiston, Schwartz, Robbins & Recent Literature",
ParagraphStyle("foot", fontSize=7.5, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#6b7280"), alignment=TA_CENTER)
)]],
colWidths=[17.4*cm])
footer_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), GREY_BG),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
]))
story.append(footer_t)
# BUILD
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/wilms-tumor-notes && python3 generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/wilms-tumor-notes/Wilms_Tumor_NEET_SS_INICET_Note…
Wilms Tumor NEET SS INICET Notes
PDF Document · PDF