Can you answer these questions using Recent Advances books in Pathology ?
WHO 2021 classification brain tumours IHC molecular biology pathology recent advances
soft tissue tumors epithelioid morphology diagnostic challenges IHC pathology 2023 2024
regenerative neoplastic hepatic nodule pathology FNH hepatocellular adenoma HCC diagnosis
https://pmc.ncbi.nlm.nih.gov/articles/PMC7864385
point of care testing coagulation POCT pathology laboratory recent advances 2023
https://www.e-jyms.org/journal/view.php?number=2864
| Tumor | Key IHC | Molecular |
|---|---|---|
| Epithelioid GIST | CD117, DOG1, CD34; KIT/PDGFRA mutation | KIT exon 11/9 mutations |
| Synovial sarcoma (biphasic/monophasic) | EMA, AE1/AE3, TLE1 | SS18-SSX1/SSX2 fusion |
| Inflammatory myofibroblastic tumor | ALK (cytoplasmic or nuclear membrane pattern) | ALK-RANBP2 fusion = nuclear membrane ALK |
| Perivascular epithelioid cell tumor (PEComa) | HMB-45, MelanA, SMA, TFE3 | TSC1/TSC2 mutations |
| Myoepithelial carcinoma | EMA, S100, variable cytokeratin; may lose INI1 | EWSR1 fusions |
Source: PMC7864385 - Soft Tissue Tumor IHC Update; WHO Classification of Tumors of Soft Tissue and Bone 5th Ed; Current Surgical Therapy 14e; Virchows Arch 484:353-367 (2024)
Regenerative Nodules
├── Cirrhotic regenerative nodule (macronodular / micronodular)
├── Nodular regenerative hyperplasia (NRH)
└── Focal Nodular Hyperplasia (FNH)
Neoplastic Nodules - Benign
├── Hepatocellular Adenoma (HCA)
└── Dysplastic nodule (low grade / high grade) [pre-malignant]
Neoplastic Nodules - Malignant
└── Hepatocellular Carcinoma (HCC)
| Subtype | Frequency | Key Feature | IHC | Malignant Risk |
|---|---|---|---|---|
| HNF1A-inactivated (H-HCA) | 35-40% | Steatosis, OCA, no atypia | LFABP loss | Very low |
| Inflammatory (I-HCA) | 40-50% | Sinusoidal dilatation, inflammatory infiltrate | SAA+, CRP+ | Low; higher with beta-catenin co-activation |
| Beta-catenin activated (B-HCA) | 10-15% | Atypia, pseudoacinar formation | GS diffuse/strong+, nuclear beta-catenin+ | HIGH (malignant transformation ~10%) |
| Unclassified | ~10% | - | - | Uncertain |
| Marker | Cirrhotic Nodule | FNH | HCA | LGDN | HGDN | HCC |
|---|---|---|---|---|---|---|
| Reticulin | Intact | Intact | Intact | Intact | Focal loss | Lost |
| GS | Centrizonal | Map-like | Focal or normal | Normal | Focally increased | Diffuse strong |
| Glypican-3 | - | - | - | - | ± | ++ |
| HSP70 | - | - | - | - | ± | + |
| CD34 | Periportal | Diffuse sinusoidal | Diffuse sinusoidal | - | ± | Diffuse |
| Beta-catenin | Membranous | Membranous | Nuclear (B-HCA) | Membranous | Focal nuclear | Nuclear (some) |
Source: e-jyms.org Narrative Review on Well-Differentiated Hepatocellular Lesions; Sleisenger and Fordtran's GI and Liver Disease; AASLD Pathology Pearls: HCC
| Tumor | Grade | Key Molecular Feature | IHC |
|---|---|---|---|
| Astrocytoma, IDH-mutant | 2, 3, 4 | IDH1/2 mutation + ATRX loss + No 1p/19q codeletion | IDH1 R132H antibody+; ATRX loss; p53+ |
| Oligodendroglioma, IDH-mutant, 1p/19q-codeleted | 2, 3 | IDH mutation + 1p/19q codeletion | IDH1+; FISH for 1p/19q |
| Glioblastoma, IDH-wildtype | 4 | IDH-wildtype + one of: TERT promoter mut, EGFR amplification, +7/-10 | EGFR amplification; PTEN loss; lacks IDH1/2 |
| Tumor | Site | Key Molecular | IHC |
|---|---|---|---|
| Supratentorial ependymoma, ZFTA fusion+ | Supratentorial | ZFTA::RELA (previously C11orf95::RELA) or other ZFTA fusions | L1CAM+, RELA protein by IHC |
| Supratentorial ependymoma, YAP1 fusion+ | Supratentorial | YAP1::MAMLD1 or YAP1::FAM118B | YAP1+ by IHC |
| Posterior fossa ependymoma, PFA | PF | H3K27me3 loss (EZH inhibitory protein EZHIP) | H3K27me3 loss |
| Posterior fossa ependymoma, PFB | PF | CDKN2A/B deletion | H3K27me3 intact |
| Spinal ependymoma, MYCN-amplified | Spinal | MYCN amplification | - |
| Myxopapillary ependymoma | Spinal/cauda equina | Grade 2 (upgraded from 1) | - |
| IHC Marker | Tumor / Significance |
|---|---|
| IDH1 R132H antibody | Detects most common IDH1 mutation; IDH1/2 positive = better prognosis |
| ATRX | Nuclear loss = astrocytic lineage in IDH-mutant glioma; ATRX intact = IDH-wildtype or oligodendroglioma |
| p53 (nuclear accumulation) | Correlates with TP53 mutation in astrocytomas |
| H3K27M | Diffuse midline glioma (thalamus, brainstem, spinal cord); poor prognosis |
| H3.3 G34R/V | Diffuse hemispheric glioma; young adults; ATRX loss |
| H3K27me3 loss | Posterior fossa Group A ependymoma; ATRT |
| Ki-67 / MIB-1 | Proliferation index for grading |
| INI1 (SMARCB1) loss | ATRT, poorly differentiated chordoma, ES |
| Nuclear beta-catenin | WNT-activated medulloblastoma |
| STAT6 (nuclear) | Solitary fibrous tumor (former HPC) |
| L1CAM | ZFTA fusion ependymoma |
| EGFR amplification by IHC | IDH-wildtype GBM surrogate |
| GFAP | Glial lineage marker |
| Synaptophysin, NeuN, MAP2 | Neuronal differentiation |
| Technique | Application |
|---|---|
| FISH | 1p/19q codeletion (oligodendroglioma); EGFR amplification; CDKN2A deletion; MYCN, CDK4 |
| Sanger/PCR sequencing | IDH1/2 mutations; TERT promoter mutations; BRAF V600E; H3F3A/HIST1H3B mutations |
| Next-generation sequencing (NGS) | Comprehensive mutation profiling; fusion detection; copy number analysis |
| RNA sequencing | Fusion gene detection (ZFTA::RELA, ALK, ROS1, NTRK, MET fusions) |
| DNA methylation profiling (EPIC array) | Gold standard for tumor classification; defines methylation class; identifies new entities (PLNTY, CONCH, CEPNET etc.) |
| Copy number analysis | +7/-10 (IDH-wildtype GBM); iAMP21; chromosome 6 loss (WNT MB) |
| TERT promoter sequencing | IDH-wildtype GBM criterion; also in meningioma grading |
| Leukemia | Preferred MRD Method | Sensitivity | Clinical Use |
|---|---|---|---|
| B-ALL | MFC + Ig/TCR PCR; NGS | 10⁻⁵ to 10⁻⁶ | Post-induction, post-consolidation; alloSCT decisions |
| T-ALL | TCR PCR; MFC | 10⁻⁵ | Same timepoints |
| APL | PML-RARA RT-PCR | 10⁻⁵ | Post-consolidation; surveillance every 3 months |
| AML (NPM1+) | NPM1 PCR; NGS | 10⁻⁴ to 10⁻⁵ | Post induction and consolidation |
| CML | BCR-ABL1 RT-PCR (IS) | 10⁻⁵ | TKI discontinuation trial thresholds |
Source: Henry's Clinical Diagnosis and Management by Laboratory Methods (block 37, lines 1794-1865); [Adaptive Biotechnologies - clonoSEQ; NGS MRD review literature]
Source: Brenner and Rector's The Kidney, block 19, lines 2022-2057
| Feature | EoE | GERD |
|---|---|---|
| Eosinophils/HPF | >15 | 0-7 |
| Proximal esophagus involvement | Yes | No |
| Eotaxin-3 elevation | Yes | No |
| Response to PPI | Subset | Yes |
| pH impedance | Normal | Abnormal |
| Food elimination diet | Helpful | Not helpful |
| Dupilumab (anti-IL-4Ra) | Approved | Not helpful |
Source: Sleisenger and Fordtran's Gastrointestinal and Liver Disease (block 6, lines 55-440); Yamada's Textbook of Gastroenterology
Create a summary PDF of these 5 topics for quick reference
ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace …
mkdir -p /home/daytona/workspace/pathology-summary && python3 -c "from reportlab…
~/pathology-summary/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
OUTPUT = "/home/daytona/workspace/pathology-summary/Pathology_Quick_Reference.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="MD Pathology Quick Reference - Modern Trends & Recent Advances",
author="GMERS Medical College, Gandhinagar"
)
styles = getSampleStyleSheet()
# ── Custom Styles ─────────────────────────────────────────────
TEAL = colors.HexColor("#006D6D")
GOLD = colors.HexColor("#C8860A")
LBLUE = colors.HexColor("#D6EAF8")
LGRAY = colors.HexColor("#F2F3F4")
DGRAY = colors.HexColor("#2C3E50")
RED = colors.HexColor("#C0392B")
GREEN = colors.HexColor("#1E8449")
cover_title = ParagraphStyle("CoverTitle", fontSize=20, textColor=TEAL,
fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=6)
cover_sub = ParagraphStyle("CoverSub", fontSize=13, textColor=DGRAY,
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=4)
cover_info = ParagraphStyle("CoverInfo", fontSize=10, textColor=colors.grey,
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=3)
h1 = ParagraphStyle("H1", fontSize=14, textColor=colors.white,
fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4,
leftIndent=6, borderPad=4, backColor=TEAL)
h2 = ParagraphStyle("H2", fontSize=11, textColor=TEAL,
fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=3,
borderPad=2)
h3 = ParagraphStyle("H3", fontSize=10, textColor=GOLD,
fontName="Helvetica-Bold", spaceBefore=5, spaceAfter=2)
body = ParagraphStyle("Body", fontSize=9, fontName="Helvetica",
leading=13, spaceAfter=4, alignment=TA_JUSTIFY)
bullet_style = ParagraphStyle("Bullet", fontSize=9, fontName="Helvetica",
leading=12, leftIndent=12, spaceAfter=2)
key_box = ParagraphStyle("KeyBox", fontSize=9, fontName="Helvetica-Bold",
backColor=LBLUE, borderColor=TEAL, borderPad=4,
leading=13, spaceAfter=6)
note_style = ParagraphStyle("Note", fontSize=8.5, fontName="Helvetica-Oblique",
textColor=colors.HexColor("#555555"), leading=12, spaceAfter=3)
bold_body = ParagraphStyle("BoldBody", fontSize=9, fontName="Helvetica-Bold",
leading=13, spaceAfter=2)
def tbl_style(header_color=TEAL):
return TableStyle([
("BACKGROUND", (0,0),(-1,0), header_color),
("TEXTCOLOR", (0,0),(-1,0), colors.white),
("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0),(-1,0), 8),
("FONTNAME", (0,1),(-1,-1), "Helvetica"),
("FONTSIZE", (0,1),(-1,-1), 8),
("ROWBACKGROUNDS",(0,1),(-1,-1), [colors.white, LGRAY]),
("GRID", (0,0),(-1,-1), 0.4, colors.HexColor("#AAAAAA")),
("VALIGN", (0,0),(-1,-1), "TOP"),
("TOPPADDING", (0,0),(-1,-1), 3),
("BOTTOMPADDING",(0,0),(-1,-1), 3),
("LEFTPADDING", (0,0),(-1,-1), 5),
("RIGHTPADDING",(0,0),(-1,-1), 5),
("WORDWRAP", (0,0),(-1,-1), True),
])
def section_header(title, q_num):
return [
Spacer(1, 6),
HRFlowable(width="100%", thickness=2, color=TEAL),
Paragraph(f"Q{q_num} {title}", h1),
HRFlowable(width="100%", thickness=1, color=GOLD),
Spacer(1, 4),
]
def sub(text): return Paragraph(text, h2)
def sub2(text): return Paragraph(text, h3)
def p(text): return Paragraph(text, body)
def b(text): return Paragraph(f"• {text}", bullet_style)
def key(text): return Paragraph(f"🔑 {text}", key_box)
def note(text): return Paragraph(f"<i>{text}</i>", note_style)
def sp(n=4): return Spacer(1, n)
W = A4[0] - 3.6*cm # usable width
# ══════════════════════════════════════════════════════════════
story = []
# ─── COVER ────────────────────────────────────────────────────
story += [
Spacer(1, 2.5*cm),
Paragraph("MD PATHOLOGY", cover_title),
Paragraph("Preliminary Examination – Paper IV", cover_sub),
Paragraph("Modern Trends & Recent Advances", cover_sub),
Spacer(1, 0.6*cm),
HRFlowable(width="60%", thickness=2, color=GOLD, hAlign="CENTER"),
Spacer(1, 0.6*cm),
Paragraph("QUICK REFERENCE SUMMARY", ParagraphStyle("QR", fontSize=16,
fontName="Helvetica-Bold", textColor=GOLD, alignment=TA_CENTER)),
Spacer(1, 0.4*cm),
Paragraph("5 Key Topics at a Glance", cover_sub),
Spacer(1, 1.5*cm),
]
toc_data = [
["#", "Topic", "Marks"],
["Q1", "Soft Tissue Tumors with Epithelioid Morphology – Diagnostic Challenges", "20"],
["Q2", "Pathology of Regenerative & Neoplastic Hepatic Nodules", "20"],
["Q3", "WHO Classification of Brain Tumours + IHC & Molecular Biology", "20"],
["Q4a", "Point of Care Testing in Coagulation", "10"],
["Q4b", "Minimal Residual Disease Detection in Acute Leukemia", "10"],
["Q5a", "Antiphospholipid Syndrome", "10"],
["Q5b", "Eosinophilic Diseases of the GI Tract", "10"],
]
toc_t = Table(toc_data, colWidths=[1.4*cm, 12.5*cm, 1.8*cm])
toc_t.setStyle(tbl_style(TEAL))
story += [
Paragraph("Contents", ParagraphStyle("TOC_H", fontSize=11,
fontName="Helvetica-Bold", textColor=DGRAY, alignment=TA_CENTER, spaceAfter=6)),
toc_t,
Spacer(1, 1.5*cm),
Paragraph("GMERS Medical College, Gandhinagar | Pathology Department | Date: 10/07/26",
cover_info),
PageBreak(),
]
# ══════════════════════════════════════════════════════════════
# Q1 – EPITHELIOID SOFT TISSUE TUMORS
# ══════════════════════════════════════════════════════════════
story += section_header("Soft Tissue Tumors with Epithelioid Morphology – Diagnostic Challenges", 1)
story += [
p("Epithelioid morphology (large polygonal cells resembling epithelial cells) is a key or defining "
"feature of several soft tissue tumors. The central diagnostic challenge is distinguishing these "
"from carcinoma, melanoma, and each other, especially since many express cytokeratin and EMA."),
sp(),
sub("Major Epithelioid Soft Tissue Tumors & Diagnostic Keys"),
]
q1_data = [
["Tumor", "Key Histology", "Diagnostic IHC / Molecular", "Pitfall / DDx"],
["Epithelioid Sarcoma (ES)",
"Nodular granuloma-like pattern; central necrosis; distal vs. proximal type",
"CK+, EMA+, CD34+ (50%); ERG+; INI1 (SMARCB1) LOST (~90%) — most useful marker",
"Carcinoma, granuloma, rhabdoid tumor; proximal type mimics carcinoma closely"],
["Epithelioid MPNST",
"Rounded cells, vesicular nuclei, prominent nucleoli; may show rhabdoid change",
"S100 diffuse+, SOX10+; INI1 may be lost; GFAP focal+",
"Melanoma (also S100+); use SOX10+INI1 loss to separate from melanoma"],
["Epithelioid Angiosarcoma",
"Sheets of epithelioid cells; focal vasoformative areas; may be purely epithelioid on bx",
"CD31+, CD34+, ERG+, FLI1+; CK+ (35%); INI1 intact",
"Metastatic carcinoma (CK+); find vasoformative foci; vascular markers essential"],
["Sclerosing Epithelioid Fibrosarcoma (SEF)",
"Cords of small epithelioid cells in dense hyaline stroma",
"MUC4+ (highly specific), EMA+, BCOR+; EWSR1-CREB3L1/2 fusion",
"Lobular breast Ca, LGMSRCT; MUC4 is hallmark"],
["Clear Cell Sarcoma",
"Nests of clear/pale cells in tendons/aponeuroses; melanin+ (Fontana)",
"S100+, HMB-45+, MART-1+, SOX10+; EWSR1-ATF1 or EWSR1-CREM fusion",
"Malignant melanoma (identical IHC) – FISH for EWSR1 rearrangement differentiates"],
["Epithelioid Hemangioendothelioma (EHE)",
"Cords of epithelioid endothelial cells in myxohyaline stroma; intracyto vacuoles",
"CD31+, ERG+, CAMTA1+ (nuclear); TFE3+ in YAP1-TFE3 subtype; WWTR1-CAMTA1 fusion (90%)",
"Metastatic carcinoma (signet ring), epithelioid sarcoma; CAMTA1 IHC is specific"],
["Alveolar Soft Part Sarcoma (ASPS)",
"Pseudoalveolar/organoid nests; large cells with granular PAS+ diastase-resistant cytoplasm",
"TFE3 strong nuclear+; MyoD1+; ASPSCR1-TFE3 fusion by FISH",
"Renal cell Ca (also TFE3+), paraganglioma; deep extremity location; fusion FISH required"],
["PEComa",
"Perivascular epithelioid cells; clear to pale eosinophilic cytoplasm",
"HMB-45+, MelanA+, SMA+; TFE3+ in TFE3-rearranged; TSC1/TSC2 mutations",
"Lipomatous tumors, carcinoma; dual muscle+melanocytic IHC is hallmark"],
["Synovial Sarcoma (biphasic/glandular)",
"Glandular epithelial component + spindle cells; variable epithelioid predominance",
"EMA+, AE1/AE3+, TLE1 (strong nuclear)+; SS18-SSX1/SSX2 fusion by FISH",
"Carcinoma (TLE1 key); t(X;18) FISH is gold standard"],
]
q1_t = Table(q1_data, colWidths=[3.2*cm, 3.8*cm, 4.2*cm, 3.8*cm])
q1_t.setStyle(tbl_style(TEAL))
story += [q1_t, sp(6)]
story += [
sub("Practical Diagnostic Algorithm"),
p("<b>Step 1 – H&E:</b> Architecture (nodular, nested, sheets), stroma type, necrosis pattern, "
"mitoses, background (NF-1? cirrhosis?)."),
p("<b>Step 2 – Site & Age:</b> Distal extremity young adult = ES/CCS; tendon = CCS/ASPS; "
"deep visceral = EHE; NF-1 = E-MPNST; perivascular = PEComa."),
p("<b>Step 3 – First-line IHC panel:</b> AE1/AE3, EMA, S100, SOX10, CD34, CD31, INI1."),
p("<b>Step 4 – INI1 status:</b> Loss → ES, proximal-type ES, E-MPNST, myoepithelial Ca, rhabdoid tumor."),
p("<b>Step 5 – Second-line:</b> ERG/FLI1 (vascular), HMB-45/MelanA/TFE3 (PEComa/ASPS/CCS/EHE), "
"MUC4 (SEF), DOG1+CD117 (GIST), TLE1 (synovial sarcoma), CAMTA1 (EHE)."),
p("<b>Step 6 – Molecular:</b> FISH (EWSR1, SS18, TFE3, CAMTA1); RT-PCR (fusion transcripts); "
"NGS panel if ambiguous."),
key("INI1 loss is the single most critical IHC in any malignant epithelioid soft tissue tumor. "
"Always include vascular markers (CD31/ERG) to exclude epithelioid angiosarcoma."),
]
# ══════════════════════════════════════════════════════════════
# Q2 – HEPATIC NODULES
# ══════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Pathology of Regenerative & Neoplastic Hepatic Nodules", 2)
story += [
p("Hepatic nodules span a continuous spectrum from benign regenerative processes to malignancy. "
"Correct classification is critical for management. The key anchor tools are: reticulin stain, "
"glutamine synthetase (GS) pattern, and a 3-marker IHC panel (GPC3 + HSP70 + GS) for HCC confirmation."),
sp(),
sub("Classification at a Glance"),
]
q2_class = [
["Category", "Entities"],
["Regenerative (non-neoplastic)", "Cirrhotic regenerative nodule · Nodular regenerative hyperplasia (NRH) · Focal Nodular Hyperplasia (FNH)"],
["Neoplastic – Benign", "Hepatocellular Adenoma (HCA) – 4 molecular subtypes"],
["Pre-malignant", "Low-grade Dysplastic Nodule (LGDN) · High-grade Dysplastic Nodule (HGDN)"],
["Malignant", "Hepatocellular Carcinoma (HCC) – conventional & fibrolamellar types"],
]
t2c = Table(q2_class, colWidths=[4.5*cm, 11*cm])
t2c.setStyle(tbl_style(TEAL))
story += [t2c, sp(6)]
story += [sub("Histopathology & IHC Comparison Table")]
q2_main = [
["Feature", "FNH", "HCA", "LGDN", "HGDN", "HCC"],
["Reticulin", "Intact", "Intact", "Intact", "Focal loss", "LOST ✓"],
["Portal tracts", "Absent (fibrous septa)", "Absent", "Present", "Reduced", "Absent"],
["Bile ductular reaction", "YES (at interface)", "No", "No", "No", "No"],
["Glutamine Synthetase (GS)", "Map-like (geographic) ✓", "Focal/normal", "Normal", "Focally ↑", "Diffuse strong"],
["Glypican-3 (GPC3)", "–", "–", "–", "±", "++ (~80%)"],
["HSP70", "–", "–", "–", "±", "+ (~50%)"],
["CD34 (sinusoids)", "Diffuse", "Diffuse", "Periportal", "±", "Diffuse"],
["Unpaired arteries", "No", "No", "No", "YES (key)", "YES"],
["Nuclear β-catenin", "No", "B-HCA only", "No", "Focal", "Some"],
["AFP", "–", "–", "–", "–", "+ (~50%)"],
]
t2m = Table(q2_main, colWidths=[3.2*cm, 2.5*cm, 2.5*cm, 2.2*cm, 2.2*cm, 2.9*cm])
t2m.setStyle(tbl_style(TEAL))
story += [t2m, sp(6)]
story += [sub("Hepatocellular Adenoma (HCA) – WHO Molecular Subtypes")]
hca_data = [
["Subtype", "Freq", "Key Feature", "IHC", "Malignant Risk"],
["HNF1A-inactivated (H-HCA)", "35-40%", "Marked steatosis, OCA", "LFABP loss", "Very low"],
["Inflammatory (I-HCA)", "40-50%", "Sinusoidal dilatation, inflammation", "SAA+, CRP+ (serum amyloid A)", "Low; ↑ if β-cat co-activated"],
["β-catenin activated (B-HCA)", "10-15%", "Atypia, pseudoacinar formation", "Nuclear β-cat+, GS diffuse+", "HIGH (~10% → HCC)"],
["Unclassified", "~10%", "No defining feature", "Non-specific", "Uncertain"],
]
t_hca = Table(hca_data, colWidths=[4*cm, 1.5*cm, 3.8*cm, 3.5*cm, 2.7*cm])
t_hca.setStyle(tbl_style(GOLD))
story += [t_hca, sp(6)]
story += [
sub("Key Points for FNH vs HCA vs HCC"),
b("<b>FNH:</b> Central stellate scar, thick-walled dystrophic arteries, bile ductules at interface, "
"MAP-LIKE GS pattern – most specific IHC for FNH"),
b("<b>HCA:</b> No portal tracts, no bile ducts, no fibrous septa; risk of rupture/hemorrhage; "
"B-HCA has highest malignant risk"),
b("<b>HCC:</b> Reticulin loss (most reliable on biopsy), trabecular thickening >3 cells, "
"pseudoacini; 2 of 3 positive (GPC3 + HSP70 + GS diffuse) = HCC"),
b("<b>HGDN vs Early HCC:</b> Unpaired arteries + stromal invasion = HCC; "
"HGDN lacks stromal invasion despite cytologic atypia"),
key("Reticulin stain is mandatory on all liver biopsies with suspected hepatocellular lesion. "
"GS map-like pattern = FNH; GS diffuse = HCC."),
]
# ══════════════════════════════════════════════════════════════
# Q3 – WHO CNS5 BRAIN TUMOURS
# ══════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("WHO CNS5 (2021) Brain Tumour Classification + IHC & Molecular Biology", 3)
story += [
p("The WHO CNS 5th Edition (2021) represents a paradigm shift: molecular diagnostics are now the "
"primary determinants of classification and grading for most CNS tumors. Key innovations: "
"<b>integrated layered diagnosis</b>, elimination of IDH-mutant GBM, molecular grading criteria, "
"and DNA methylation profiling as a gold-standard classifier."),
sp(),
sub("Adult-Type Diffuse Gliomas"),
]
glioma_data = [
["Tumor", "Grade", "Key Molecular Feature", "IHC Surrogates"],
["Astrocytoma, IDH-mutant",
"2, 3, 4",
"IDH1/2 mutation + ATRX loss + TP53 mutation\n(no 1p/19q codeletion)",
"IDH1 R132H Ab+; ATRX loss (nuclear); p53 nuclear acc."],
["Oligodendroglioma, IDH-mutant, 1p/19q-codeleted",
"2, 3",
"IDH1/2 mutation + 1p/19q codeletion (FISH)\n(TERT promoter mutation also expected)",
"IDH1 R132H Ab+; FISH for 1p/19q; ATRX intact"],
["Glioblastoma, IDH-wildtype",
"4",
"IDH-wildtype + ≥1 of:\nTERT promoter mut, EGFR amplification, +7/–10",
"EGFR amplification (FISH/IHC); PTEN loss; IDH1/2 negative"],
["Diffuse midline glioma, H3 K27-altered",
"4",
"H3K27M or H3K27me3 loss (EZHIP overexpression)",
"H3K27M mutation Ab+; loss of H3K27me3 trimethylation IHC"],
["Diffuse hemispheric glioma, H3 G34-mutant",
"4",
"H3.3 G34R/V mutation (H3F3A) + ATRX loss",
"H3.3 G34R/V Ab+; ATRX loss; OLIG2 lost"],
["Infant-type hemispheric glioma",
"Variable",
"RTK fusions: ALK, ROS1, NTRK, MET",
"Pan-TRK IHC (NTRK); ALK IHC; RNA fusion panel"],
]
t_gl = Table(glioma_data, colWidths=[4*cm, 1.5*cm, 4.8*cm, 5.2*cm])
t_gl.setStyle(tbl_style(TEAL))
story += [t_gl, sp(6)]
story += [sub("Ependymal Tumors (Now Classified by Site + Molecular)")]
epen_data = [
["Tumor", "Site", "Key Molecular", "IHC"],
["Supratentorial ependymoma, ZFTA fusion+", "Supratentorial", "ZFTA::RELA fusion (formerly C11orf95::RELA)", "L1CAM+, nuclear RelA"],
["Supratentorial ependymoma, YAP1 fusion+", "Supratentorial", "YAP1::MAMLD1 or YAP1::FAM118B", "YAP1 IHC+"],
["Posterior fossa ependymoma, Group A (PFA)", "Posterior fossa", "EZHIP overexpression, H3K27me3 loss", "H3K27me3 lost (IHC)"],
["Posterior fossa ependymoma, Group B (PFB)", "Posterior fossa", "Balanced genome; CDKN2A/B deletion in some", "H3K27me3 intact"],
["Spinal ependymoma, MYCN-amplified", "Spinal", "MYCN amplification", "MYCN FISH"],
["Myxopapillary ependymoma (Grade 2)", "Spinal/cauda equina", "Upgraded from Grade 1", "GFAP+, EMA+"],
]
t_ep = Table(epen_data, colWidths=[4.5*cm, 2.5*cm, 4.5*cm, 4*cm])
t_ep.setStyle(tbl_style(TEAL))
story += [t_ep, sp(6)]
story += [sub("Medulloblastoma – Molecular Groups (Now Primary Classification)")]
mb_data = [
["Group", "Molecular Features", "IHC / Prognosis", "Clinical Notes"],
["WNT-activated", "CTNNB1 mutation; monosomy 6", "Nuclear β-catenin+; BEST prognosis", "Classic histology; young children"],
["SHH-activated, TP53-wildtype", "PTCH1/SMO/SUFU/GLI amp", "GAB1+, SFRP1+; intermediate", "Desmoplastic/nodular common; infants + adults"],
["SHH-activated, TP53-mutant", "TP53 mutation + MYCN/GLI2 amp", "p53+; WORST in SHH", "Children 5-17yr; high risk"],
["Non-WNT/Non-SHH (Grp 3 & 4)", "MYC amp (Grp3); i(17q), MYCN", "WNT/SHH negative; risk by methylation", "Most common group; classic/LCA histology"],
]
t_mb = Table(mb_data, colWidths=[3.2*cm, 4.3*cm, 3.7*cm, 4.3*cm])
t_mb.setStyle(tbl_style(TEAL))
story += [t_mb, sp(6)]
story += [sub("Key IHC Markers in Brain Tumors – Quick Reference")]
ihc_brain = [
["IHC Marker", "Tumor / Significance"],
["IDH1 R132H Ab", "Detects most common IDH mutation; glioma favorable prognosis"],
["ATRX loss", "Astrocytic lineage in IDH-mutant glioma (ATRX intact = oligodendroglioma or GBM)"],
["H3K27M", "Diffuse midline glioma (pons/thalamus/spine) – poor prognosis"],
["H3K27me3 loss", "Posterior fossa Group A ependymoma; ATRT; H3K27M glioma"],
["Nuclear β-catenin", "WNT-activated medulloblastoma (best prognosis)"],
["INI1 (SMARCB1) loss", "ATRT – key diagnostic marker; also poorly differentiated chordoma"],
["STAT6 nuclear", "Solitary fibrous tumor (retired hemangiopericytoma) – NAB2::STAT6 fusion"],
["L1CAM", "ZFTA fusion+ ependymoma (supratentorial)"],
["TFE3 nuclear", "YAP1-TFE3 ependymoma subtype; also ASPS"],
["p53 nuclear accumulation", "TP53 mutation; high-grade glioma; SHH MB (TP53-mutant)"],
["Ki-67 / MIB-1", "Proliferation index – aids grading"],
["GFAP, OLIG2, SOX2", "Glial lineage markers; OLIG2 lost in G34-mutant glioma"],
["Synaptophysin, NeuN", "Neuronal differentiation"],
]
t_ihcb = Table(ihc_brain, colWidths=[4*cm, 11.5*cm])
t_ihcb.setStyle(tbl_style(GOLD))
story += [t_ihcb, sp(6)]
story += [sub("Molecular Techniques in CNS Tumor Diagnosis")]
mol_data = [
["Technique", "Application in CNS Tumors"],
["FISH", "1p/19q codeletion (oligodendroglioma); EGFR amplification; MYCN; CDKN2A deletion; FGFR1 duplication"],
["Sanger PCR sequencing", "IDH1/2, TERT promoter, BRAF V600E, H3F3A/HIST1H3B mutations"],
["Next-Generation Sequencing (NGS)", "Comprehensive mutation + copy number + fusion profiling; identifies rare mutations"],
["RNA sequencing / fusion panel", "ZFTA::RELA, ALK/ROS1/NTRK/MET fusions (infant glioma), SS18 fusions"],
["DNA Methylation Profiling (EPIC 850K array)", "Gold standard classifier; defines methylation class; identifies new entities (PLNTY, CONCH, CEPNET)"],
["Copy number variation (CNV)", "+7/–10 (IDH-wildtype GBM); i(17q) (MB); iAMP21 (ALL); chromosome 6 loss (WNT MB)"],
["TERT promoter sequencing", "IDH-wildtype GBM criterion (with +7/–10 or EGFR amp); meningioma grade 3 criterion"],
]
t_mol = Table(mol_data, colWidths=[4.5*cm, 11*cm])
t_mol.setStyle(tbl_style(TEAL))
story += [t_mol, sp(4)]
story += [key("WHO CNS5 key rule: IDH-mutant GBM no longer exists – such cases = Astrocytoma IDH-mutant Grade 4. "
"GBM is exclusively IDH-wildtype. Meningioma grade 3 now includes TERT promoter mutation or "
"CDKN2A/B deletion as independent criteria.")]
# ══════════════════════════════════════════════════════════════
# Q4a – POCT IN COAGULATION
# ══════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Point of Care Testing (POCT) in Coagulation", "4a")
story += [
p("POCT in coagulation brings hemostasis testing to the bedside or perioperative setting, "
"enabling real-time, goal-directed hemostatic therapy. The most transformative advance is "
"<b>viscoelastic testing (VET)</b> – whole-blood global hemostasis assessment."),
sp(),
sub("Key POCT Coagulation Tests"),
]
poct_data = [
["Test", "Device / Method", "Parameters", "Clinical Use"],
["PT/INR (POC)",
"CoaguChek XS (Roche)\nXprecia Stride (Siemens)",
"PT, INR",
"Warfarin monitoring; home INR self-testing; anticoagulation clinics"],
["Activated Clotting Time (ACT)",
"Hemochron, i-STAT (Abbott)\nWhole blood, no centrifugation",
"ACT (seconds)\nNormal: 70-180s\nCPB target: >480s",
"UFH monitoring in cardiac surgery, PCI, ECMO"],
["Thromboelastography (TEG)",
"TEG 5000 / TEG 6s (Haemonetics)",
"R time (initiation), K time (kinetics), α-angle (rate), MA (clot strength), LY30 (fibrinolysis)",
"Cardiac surgery, trauma, liver transplant, obstetric hemorrhage; MTP guidance"],
["Rotational Thromboelastometry (ROTEM)",
"ROTEM sigma (Instrumentation Laboratory)",
"CT, CFT, MCF, ML\nChannels: INTEM, EXTEM, FIBTEM, APTEM",
"Same indications as TEG; FIBTEM channel isolates fibrin from platelet contribution"],
["Quantra (HemoSonics)",
"Sonic estimation of ratio of thrombus",
"CT, CS (clot stiffness), FCS (fibrinogen), PCS (platelet contribution)",
"Cardiac surgery; separates fibrinogen vs platelet contribution to stiffness"],
["PFA-100/200",
"Siemens; collagen/ADP & collagen/EPI cartridges",
"Closure time (CT) in seconds",
"Screening for VWD and platelet function disorders; aspirin monitoring"],
["Multiplate / VerifyNow",
"Impedance aggregometry / optical",
"Area under curve (AUC); platelet aggregation %",
"Antiplatelet drug monitoring (aspirin, P2Y12); platelet function assessment"],
]
t_poct = Table(poct_data, colWidths=[2.8*cm, 3.5*cm, 4*cm, 5.2*cm])
t_poct.setStyle(tbl_style(TEAL))
story += [t_poct, sp(6)]
story += [
sub("VET Parameters at a Glance"),
]
vet_data = [
["TEG Parameter", "ROTEM Equiv.", "Meaning", "Abnormal → Treat with"],
["R time (reaction)", "CT (clotting time)", "Clot initiation – factor activity", "Prolonged → FFP"],
["K time", "CFT (clot formation)", "Clot kinetics – fibrinogen + platelets", "Prolonged → Cryo/fibrinogen"],
["α-angle (alpha)", "CFT-derived", "Rate of clot formation", "Decreased → Cryoprecipitate"],
["MA (max amplitude)", "MCF (max clot firmness)", "Clot strength = platelet + fibrin", "Decreased → Platelets ± cryo"],
["LY30 / LY60", "ML (max lysis)", "Fibrinolysis at 30/60 min", "Increased → TXA / antifibrinolytics"],
]
t_vet = Table(vet_data, colWidths=[3*cm, 3*cm, 4*cm, 5.5*cm])
t_vet.setStyle(tbl_style(GOLD))
story += [t_vet, sp(4)]
story += [
key("Goal-directed hemostatic therapy guided by VET reduces blood product transfusion by up to 30% in "
"cardiac surgery and massive transfusion. FIBTEM (ROTEM) separates fibrinogen from platelet "
"contribution to clot firmness – a unique advantage of VET."),
sp(),
sub("Advantages & Limitations"),
p("<b>Advantages:</b> Rapid turnaround (mins vs. hours), whole blood (no centrifugation), "
"global hemostasis assessment, guides specific component therapy, reduces unnecessary transfusion."),
p("<b>Limitations:</b> Requires training and QA program; higher per-test cost vs. central lab; "
"less analytical precision; limited reference ranges for extremes of age; "
"connectivity and POCT governance requirements."),
]
# ══════════════════════════════════════════════════════════════
# Q4b – MRD IN ACUTE LEUKEMIA
# ══════════════════════════════════════════════════════════════
story += section_header("Minimal Residual Disease (MRD) Detection in Acute Leukemia", "4b")
story += [
p("MRD refers to leukemic cells below the morphological threshold (<5% blasts). "
"MRD >10⁻⁴ post-induction strongly predicts relapse independent of cytogenetics. "
"MRD-negativity enables de-escalation; MRD-positivity triggers intensification or alloSCT."),
sp(),
sub("Methods of MRD Detection – Comparison"),
]
mrd_data = [
["Method", "Sensitivity", "Target", "Advantages", "Limitations"],
["Multiparameter Flow Cytometry (MFC)",
"10⁻⁴ to 10⁻⁵\n(next-gen EuroFlow: 10⁻⁵)",
"Leukemia-associated immunophenotype (LAIP)",
"Rapid (4-6h); applicable to all leukemia types; no prior molecular characterization",
"Immunophenotypic shift at relapse; technical standardization challenging"],
["Fusion Gene PCR (RT-PCR)",
"10⁻⁵ to 10⁻⁶",
"BCR-ABL1, PML-RARA, RUNX1-RUNX1T1, CBFB-MYH11",
"Highly sensitive; quantitative (BCR-ABL1 IS); guides TKI decisions in APL",
"Applicable only if fusion present at diagnosis (~30% of ALL)"],
["Ig/TCR PCR (RQ-PCR)",
"10⁻⁴ to 10⁻⁵",
"V(D)J clonal rearrangements\n(IgH, IgK, TCRβ, TCRγ, TCRδ)",
">90% of B-ALL and T-ALL have suitable targets; high specificity",
"Labor-intensive; oligoclonality; clonal evolution may cause false negatives"],
["NGS – clonoSEQ / ImmunoSEQ",
"10⁻⁶",
"Ig/TCR gene rearrangements by deep sequencing",
"Highest sensitivity; FDA-cleared for ALL/CLL/MM; multiplexed; absolute quantification",
"Cost; turnaround 1-2 weeks; requires diagnostic sample for reference sequencing"],
["Digital PCR (ddPCR)",
"10⁻⁵ to 10⁻⁶",
"Fusion transcripts (BCR-ABL1, NPM1), specific mutations",
"Absolute quantification; no standard curve needed; high reproducibility",
"Limited targets; technical complexity; not widely available"],
["Mutation-tracking NGS (AML)",
"10⁻³ to 10⁻⁵",
"NPM1, FLT3-ITD, IDH1/2, TP53",
"NPM1 MRD is standard of care (ELN 2022); broad AML applicability",
"CHIP variants (DNMT3A, TET2, ASXL1) persist in remission – not true MRD"],
]
t_mrd = Table(mrd_data, colWidths=[2.8*cm, 2*cm, 3*cm, 3.8*cm, 4*cm])
t_mrd.setStyle(tbl_style(TEAL))
story += [t_mrd, sp(6)]
story += [sub("MRD Targets by Leukemia Type")]
mrd_type = [
["Leukemia", "Preferred MRD Method", "Sensitivity", "Key Clinical Timepoints"],
["B-ALL", "MFC + Ig/TCR PCR or NGS (clonoSEQ)", "10⁻⁵ to 10⁻⁶", "End-induction, end-consolidation; alloSCT decisions"],
["T-ALL", "TCR gene PCR + MFC", "10⁻⁵", "Same as B-ALL; TCRβ/γ/δ targets"],
["APL", "PML-RARA RT-PCR (quantitative)", "10⁻⁵", "Post-consolidation; 3-monthly surveillance; positivity = impending relapse"],
["AML (NPM1+)", "NPM1 PCR (quantitative RT-PCR)", "10⁻⁴ to 10⁻⁵", "Post induction, post each consolidation; guide transplant"],
["CML", "BCR-ABL1 RT-PCR (International Scale)", "10⁻⁵", "Deep MR4.5 needed for TKI discontinuation (EURO-SKI trial)"],
]
t_mrd_t = Table(mrd_type, colWidths=[2.5*cm, 4*cm, 2.5*cm, 6.5*cm])
t_mrd_t.setStyle(tbl_style(GOLD))
story += [t_mrd_t, sp(4)]
story += [key("NGS-based MRD (clonoSEQ) achieves 10⁻⁶ sensitivity – 10,000-fold more sensitive than "
"morphology. MRD >10⁻⁴ at end of induction = high relapse risk regardless of cytogenetics. "
"NPM1 mutation PCR is the ELN 2022 standard MRD marker for NPM1-mutated AML.")]
# ══════════════════════════════════════════════════════════════
# Q5a – ANTIPHOSPHOLIPID SYNDROME
# ══════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Antiphospholipid Syndrome (APS)", "5a")
story += [
p("APS is a systemic autoimmune thrombophilic disorder characterised by recurrent thrombosis "
"and/or pregnancy morbidity in association with persistently positive antiphospholipid (aPL) antibodies. "
"It is the most common acquired thrombophilia."),
sp(),
sub("Sapporo/Sydney Classification Criteria (Diagnosis requires ≥1 clinical + ≥1 laboratory criterion)"),
]
aps_crit = [
["Clinical Criteria", "Laboratory Criteria (must be +ve on 2 occasions, ≥12 weeks apart)"],
["1. Vascular thrombosis (venous / arterial / small vessel)\n"
"2. Pregnancy morbidity:\n"
" a) ≥1 unexplained fetal death ≥10 wks gestation\n"
" b) ≥1 premature birth ≤34 wks (eclampsia/placental insufficiency)\n"
" c) ≥3 recurrent early losses <10 wks",
"1. Lupus anticoagulant (LA) – in plasma\n"
"2. Anti-cardiolipin (aCL): IgG or IgM >40 GPL/MPL or >99th percentile\n"
"3. Anti-β₂-glycoprotein I (anti-β₂GPI): IgG or IgM >99th percentile\n"
"Note: Triple positivity (LA + aCL + anti-β₂GPI) = HIGHEST thrombotic risk"],
]
t_aps_c = Table(aps_crit, colWidths=[7.5*cm, 8*cm])
t_aps_c.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,0), TEAL), ("TEXTCOLOR",(0,0),(-1,0), colors.white),
("FONTNAME",(0,0),(-1,0),"Helvetica-Bold"), ("FONTSIZE",(0,0),(-1,-1),8.5),
("FONTNAME",(0,1),(-1,-1),"Helvetica"), ("GRID",(0,0),(-1,-1),0.4,colors.grey),
("VALIGN",(0,0),(-1,-1),"TOP"), ("TOPPADDING",(0,0),(-1,-1),4),
("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),5),
]))
story += [t_aps_c, sp(6)]
story += [
sub("Pathogenesis – Two-Hit Hypothesis"),
p("<b>Hit 1 (Predisposing):</b> aPL antibodies (especially anti-β₂GPI) bind to β₂GPI on endothelial cells, "
"platelets, and monocytes via Annexin A2 and TLR4 → activation of pro-coagulant pathways."),
p("<b>Hit 2 (Triggering):</b> Pregnancy, OCP, surgery, infection, nephrotic syndrome, SLE flare → "
"clinical thrombosis."),
p("<b>Mechanisms of thrombosis:</b> Inhibition of protein C/S and annexin V → loss of anticoagulant "
"protection; tissue factor induction on monocytes; platelet activation and aggregation; "
"complement activation (placental injury); inhibition of fibrinolysis (t-PA inhibition); "
"mTOR pathway inhibition → endothelial damage and intravascular coagulation."),
sp(),
sub("Pathology – Renal Biopsy (APL Nephropathy)"),
p("APL nephropathy occurs in ~25% of primary APS and ~40% of aPL-positive patients:"),
b("Glomerular capillary thrombosis with mesangiolysis and mesangial interposition"),
b("Duplication of GBMs; subendothelial electron-lucent flocculent material (TMA pattern)"),
b("Arterioles: fibrin thrombi; intimal mucoid thickening; subendothelial fibrosis"),
b("Interlobular arteries: organizing/recanalized thrombi narrowing lumens; 'onion-skin' lesion"),
b("Interstitial fibrosis and cortical atrophy from chronic ischemia"),
note("Note: Non-inflammatory vasculopathy (NO vasculitis). May mimic FSGS, membranous nephropathy, "
"MPGN, or RPGN on light microscopy."),
sp(),
sub("Laboratory Findings"),
]
lab_aps = [
["Test", "Finding in APS", "Explanation"],
["aPTT", "PROLONGED (paradox)", "LA interferes with phospholipid-dependent clotting in vitro, despite pro-thrombotic state in vivo"],
["Platelet count", "Thrombocytopenia (30-50%)", "aPL antibodies activate platelets and cause platelet consumption"],
["VDRL", "False positive", "aCL antibodies cross-react with cardiolipin in VDRL reagent"],
["aCL IgG/IgM", "Elevated", "Confirmed on 2 occasions ≥12 weeks apart"],
["Anti-β₂GPI IgG/IgM", "Elevated", "Most thrombosis-specific antibody; β₂GPI-dependent mechanism"],
["Lupus anticoagulant (LA)", "Detected by mixing studies (no correction) + confirmatory tests", "Most thrombosis-predictive single test"],
]
t_lab = Table(lab_aps, colWidths=[3.5*cm, 4*cm, 8*cm])
t_lab.setStyle(tbl_style(GOLD))
story += [t_lab, sp(4)]
story += [
key("LA > aCL > anti-β₂GPI for thrombotic risk prediction. DOAK/NOAC (rivaroxaban) is inferior to "
"warfarin for arterial APS (TRAPS trial) – warfarin INR 2-3 remains standard."),
]
# ══════════════════════════════════════════════════════════════
# Q5b – EOSINOPHILIC GI DISORDERS
# ══════════════════════════════════════════════════════════════
story += section_header("Eosinophilic Diseases of the GI Tract (EGIDs)", "5b")
story += [
p("EGIDs are defined by selective eosinophil-rich inflammation in the GI tract, in absence of known causes "
"(parasites, drugs, IBD, malignancy), associated with GI symptoms. The most prevalent and best-studied "
"is Eosinophilic Esophagitis (EoE)."),
sp(),
sub("Spectrum of EGIDs"),
]
egid_spec = [
["EGID", "Location", "Key Pathologic Feature", "Prevalence"],
["Eosinophilic Esophagitis (EoE)", "Esophagus", "≥15 eos/HPF (normally ZERO); basal cell hyperplasia; microabscesses", "~40-57/100,000 (US)"],
["Eosinophilic Gastritis (EG)", "Stomach", ">30 eos/5HPF; antral and fundal biopsies required", "~6.4/100,000"],
["Eosinophilic Enteritis (EEn)", "Small bowel", ">20 eos/HPF; villous atrophy in severe cases", "Rare"],
["Eosinophilic Gastroenteritis (EGE)", ">1 segment", "Mucosal / muscularis / serosal forms (see below)", "Rare"],
["Eosinophilic Colitis (EC)", "Colon", ">50 eos/HPF (cecum normal limit!); bloody diarrhea", "~3.5/100,000"],
]
t_spec = Table(egid_spec, colWidths=[3.8*cm, 2.5*cm, 5.5*cm, 3.7*cm])
t_spec.setStyle(tbl_style(TEAL))
story += [t_spec, sp(6)]
story += [sub("Pathophysiology")]
story += [
p("<b>Immune mechanism:</b> Th2-skewed response between IgE-mediated and delayed hypersensitivity. "
"Key drivers: IL-5 (eosinophil production), IL-13 and IL-4 (barrier dysfunction), "
"eotaxin-3 / CCL26 (eosinophil recruitment – hallmark of EoE), TSLP."),
p("<b>Eosinophil granule proteins:</b> MBP-1/2, ECP, EDN, EPO – released into tissue causing "
"epithelial damage, nerve stimulation, and subepithelial fibrosis."),
p("<b>Genetic factors:</b> Sibling recurrence risk >50-fold in EoE; associated SNPs and rare damaging variants. "
"ERBIN deficiency, Netherton syndrome, and hypermobility EDS associated with familial EoE."),
p("<b>FIP1L1-PDGFRA fusion:</b> Subset of EGE with hypereosinophilic syndrome (HES) overlap; "
"sensitive to imatinib mesylate."),
sp(),
sub("Eosinophilic Esophagitis (EoE) – Detailed Pathology"),
]
eoe_dx = [
["Feature", "EoE", "GERD (for comparison)"],
["Eos/HPF", "≥15/HPF (proximal AND distal bx)", "0-7/HPF (distal only)"],
["Eosinophilic microabscesses", "Present", "Absent"],
["Basal cell hyperplasia", "Severely increased (>20% thickness)", "Increased (mild)"],
["Dilated intercellular spaces", "Present (spongiosis)", "Present"],
["Papillary elongation", "Yes", "Yes"],
["Sub-epithelial fibrosis", "Yes (deeper biopsies)", "No"],
["Eotaxin-3 level", "Elevated", "Normal"],
["pH impedance", "Normal", "Abnormal"],
["PPI response", "Subset (PPI-responsive EoE)", "Yes"],
]
t_eoe = Table(eoe_dx, colWidths=[5.5*cm, 5.5*cm, 4.5*cm])
t_eoe.setStyle(tbl_style(TEAL))
story += [t_eoe, sp(6)]
story += [
sub("EoE Histology Scoring System (HSS, 2017 – 8 features)"),
p("The validated EoE-HSS outperforms eosinophil count alone for diagnosis and treatment monitoring. "
"Features: (1) eosinophil density, (2) basal cell hyperplasia, (3) eosinophilic abscesses, "
"(4) surface layering of eosinophils, (5) dilated intercellular spaces, "
"(6) epithelial disarray, (7) superficial epithelial alteration, (8) lamina propria fibrosis."),
sp(),
sub("EGE – Three Histological Layers (Clinical Forms)"),
]
ege_data = [
["Form", "Layer Involved", "Clinical Presentation"],
["Mucosal (most common)", "Mucosa", "Vomiting, diarrhea, malabsorption, protein-losing enteropathy, iron deficiency anemia, failure to thrive"],
["Muscularis", "Muscularis propria", "Bowel wall thickening → gastric outlet obstruction (mimics pyloric stenosis) or intestinal obstruction"],
["Serosal (rare)", "Subserosa", "Eosinophilic ascites; highest peripheral eosinophilia"],
]
t_ege = Table(ege_data, colWidths=[3.5*cm, 3.5*cm, 8.5*cm])
t_ege.setStyle(tbl_style(GOLD))
story += [t_ege, sp(6)]
story += [
sub("Diagnostic Workup"),
b("CBC with differential; total IgE; ESR/CRP (normal in EGIDs)"),
b("Allergy testing: skin prick test + specific IgE panel (aeroallergens, food)"),
b("Stool examination for parasites; Strongyloides serology before immunosuppression"),
b("Upper + lower GI endoscopy with biopsies from ≥6 sites (proximal AND distal esophagus in EoE)"),
b("pH-impedance study (to exclude GERD in EoE)"),
b("If hypereosinophilia present: BM biopsy, serum tryptase, B12, PDGFRA gene testing"),
sp(),
sub("Treatment"),
]
rx_egid = [
["Approach", "EoE", "EG/EGE/EC"],
["Dietary", "6-food elimination (milk, wheat, egg, soy, nuts, seafood) or elemental formula", "Empiric elimination; elemental formula in children"],
["Topical steroids", "Swallowed fluticasone or budesonide oral suspension", "Topical budesonide (limited data)"],
["Systemic steroids", "Effective but side effects with long-term use", "Effective; often needed"],
["PPI", "Helpful in PPI-responsive EoE subset", "Not helpful"],
["Biologics", "Dupilumab (anti-IL-4Rα) – FDA-approved 2022; mepolizumab (anti-IL-5)", "Mepolizumab, benralizumab (investigational)"],
["Mast cell stabilizers", "Limited benefit", "Sodium cromoglycate (some evidence in EGE)"],
["Targeted therapy", "N/A", "Imatinib for FIP1L1-PDGFRA+ HES with GI involvement"],
["Endoscopic dilation", "For fibrotic strictures in EoE", "N/A"],
]
t_rx = Table(rx_egid, colWidths=[3.5*cm, 6.5*cm, 5.5*cm])
t_rx.setStyle(tbl_style(TEAL))
story += [t_rx, sp(4)]
story += [key("The esophagus is normally completely devoid of eosinophils. Any esophageal eosinophilia = pathology. "
"Dupilumab (anti-IL-4Rα) was FDA-approved for EoE in 2022 – first biologic for EoE. "
"≥15 eos/HPF in BOTH proximal and distal esophagus = required for EoE diagnosis.")]
# ── Final footer ──────────────────────────────────────────────
story += [
Spacer(1, 1*cm),
HRFlowable(width="100%", thickness=1, color=TEAL),
Paragraph(
"GMERS Medical College, Gandhinagar – MD Pathology Quick Reference | "
"Sources: Henry's Clinical Diagnosis (Laboratory Methods), "
"Sleisenger & Fordtran's GI & Liver Disease, Brenner & Rector's Kidney, "
"WHO CNS5 (2021), WHO Soft Tissue & Bone 5th Ed | Date: 10/07/26",
ParagraphStyle("Footer", fontSize=7, textColor=colors.grey,
fontName="Helvetica-Oblique", alignment=TA_CENTER)
),
]
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/pathology-summary && python3 generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/pathology-summary/Pathology_Quick_Reference.pdf
Pathology Quick Reference
PDF Document · PDF
| Section | Content |
|---|---|
| Cover page | Title, contents table with all 7 topics and marks |
| Q1 – Epithelioid STT | 9-entity comparison table (IHC + molecular), diagnostic algorithm, INI1 key box |
| Q2 – Hepatic Nodules | Classification spectrum, 6-marker IHC comparison table, HCA molecular subtypes table, FNH vs HCA vs HCC key points |
| Q3 – WHO CNS5 | Adult diffuse gliomas table, ependymoma molecular table, medulloblastoma molecular groups, IHC marker reference table, molecular techniques table |
| Q4a – POCT Coagulation | All POC devices table, VET parameters (TEG/ROTEM) with treatment guidance, advantages/limitations |
| Q4b – MRD in Leukemia | Methods comparison table (sensitivity + advantages), MRD by leukemia type table |
| Q5a – APS | Sapporo criteria table, pathogenesis two-hit summary, renal biopsy pathology, laboratory findings table |
| Q5b – EGIDs | EGID spectrum table, EoE vs GERD pathology table, EGE 3-layer table, treatment table |