This calculator estimates the Residual Cancer Burden (RCB) score based on pathological and clinical data after neoadjuvant chemotherapy.
Your Estimated RCB Score:
—
—
Understanding Residual Cancer Burden (RCB)
The Residual Cancer Burden (RCB) score is a quantitative method used in oncology to assess the extent of residual disease in the breast and axillary lymph nodes after neoadjuvant chemotherapy (treatment given before surgery). It helps predict treatment response and prognosis, guiding further management decisions.
Neoadjuvant chemotherapy aims to shrink tumors before surgery, making them easier to remove and potentially reducing the risk of cancer spread. The RCB system provides a standardized way to measure how well the chemotherapy worked by analyzing key pathological features from the surgically removed specimen.
How is the RCB Score Calculated?
The RCB score is calculated using a formula that considers several pathological factors. The exact formula is complex and has been refined over time, but it generally involves assigning points based on:
Tumor Size: The size of the invasive tumor remaining in the breast after treatment.
Lymph Node Involvement: The number of positive lymph nodes and the number of examined lymph nodes.
Histological Grade: The aggressiveness of the cancer cells (Grade 1: low, Grade 2: intermediate, Grade 3: high).
Lymphovascular Invasion (LVI): The presence or absence of cancer cells in blood vessels or lymphatic channels.
Pathological Stage: The clinical staging of the tumor and nodes based on pathological examination (pT and pN).
The RCB score is then categorized into different groups, each correlating with a different prognosis.
RCB Categories and Prognosis
The calculated RCB score is typically classified into four categories:
RCB 0: Complete pathological response. Minimal residual disease. Associated with the best prognosis.
Higher RCB scores (II and III) generally indicate a less favorable outcome and may prompt consideration of additional or alternative treatment strategies.
Factors Used in This Calculator:
This calculator uses the following inputs to estimate the RCB score:
Pathological Stage (pT): T0, Tis, T1, T2, T3, T4
Pathological Node Stage (pN): N0, N1, N2, N3
Tumor Size (mm): The largest dimension of the invasive tumor in millimeters.
Lymphovascular Invasion: Whether LVI is present or absent.
Number of Lymph Nodes Examined: Total number of lymph nodes evaluated pathologically.
Number of Positive Lymph Nodes: Number of lymph nodes found to contain cancer.
Important Disclaimer:
This calculator is intended for informational and educational purposes only. It provides an *estimation* of the RCB score based on simplified inputs and common interpretations. The actual clinical calculation may involve more nuanced details and specific algorithms used by pathologists and oncologists. Always consult with your healthcare provider for accurate diagnosis, treatment decisions, and prognosis. This tool is not a substitute for professional medical advice.
function calculateRCB() {
var pTStage = document.getElementById("pathologicalStage").value.trim().toLowerCase();
var pNStage = document.getElementById("pathologicalNodeStage").value.trim().toLowerCase();
var tumorSizeMM = parseFloat(document.getElementById("tumorSizeMM").value);
var lvi = document.getElementById("lymphovascularInvasion").value.trim().toLowerCase();
var grade = parseFloat(document.getElementById("grade").value);
var lymphNodesExamined = parseFloat(document.getElementById("lymphNodesRemoved").value);
var positiveLymphNodes = parseFloat(document.getElementById("positiveLymphNodes").value);
var calculationResult = document.getElementById("calculationResult");
var resultCategory = document.getElementById("resultCategory");
calculationResult.innerText = "–";
resultCategory.innerText = "–";
// Input validation
if (isNaN(tumorSizeMM) || isNaN(grade) || isNaN(lymphNodesExamined) || isNaN(positiveLymphNodes)) {
alert("Please enter valid numbers for Tumor Size, Grade, Lymph Nodes Examined, and Positive Lymph Nodes.");
return;
}
if (pTStage === "" || pNStage === "" || lvi === "") {
alert("Please fill in all required fields, including Pathological Stage, Node Stage, and Lymphovascular Invasion.");
return;
}
if (grade 3) {
alert("Histological Grade must be between 1 and 3.");
return;
}
if (positiveLymphNodes > lymphNodesExamined) {
alert("Number of positive lymph nodes cannot exceed the total number of lymph nodes examined.");
return;
}
if (lvi !== "yes" && lvi !== "no") {
alert("Lymphovascular Invasion should be entered as 'Yes' or 'No'.");
return;
}
var tScore = 0;
switch (pTStage) {
case 'pT0': tScore = 0; break;
case 'pTis': tScore = 0; break; // Often considered no invasive tumor
case 'pT1': tScore = 1; break;
case 'pT2': tScore = 2; break;
case 'pT3': tScore = 3; break;
case 'pT4': tScore = 4; break;
default:
alert("Invalid Pathological Stage (pT). Please use pT0, pT1, pT2, pT3, or pT4.");
return;
}
var nScore = 0;
switch (pNStage) {
case 'pN0': nScore = 0; break;
case 'pN1': nScore = 1; break;
case 'pN2': nScore = 2; break;
case 'pN3': nScore = 3; break;
default:
alert("Invalid Pathological Node Stage (pN). Please use pN0, pN1, pN2, or pN3.");
return;
}
var lviScore = (lvi === "yes") ? 1 : 0;
// Simplified RCB calculation based on common factors.
// The actual clinical RCB calculation is a specific piecewise linear function
// that requires precise coefficients and specific staging criteria (e.g., AJCC staging).
// This simplified version aims to give a *relative* indication.
// Real-world RCB calculation involves these components but in a more defined equation.
// A simplified scoring approach:
// Higher values for tumor size, grade, nodes, and LVI indicate more disease.
var tumorComponent = Math.log(tumorSizeMM + 1) * 1.5; // Log for diminishing returns of size
var nodeComponent = (lymphNodesExamined > 0) ? Math.log(positiveLymphNodes + 1) * 2 : 0; // Log for diminishing returns of nodes
var gradeComponent = grade * 0.8;
var lviComponent = lviScore * 1.2;
var baseScore = tumorComponent + nodeComponent + gradeComponent + lviComponent;
// A very rough mapping to actual RCB categories based on relative scores.
// This is NOT the official RCB formula but an approximation for demonstration.
// Official RCB uses a specific formula like RCB = a*ln(pT) + b*ln(pN) + c*Grade + d*LVI + e
// Where pT, pN are specific measurements not just categories, and a, b, c, d, e are coefficients.
// For demonstration, we'll use the derived 'baseScore' to categorize.
var rcbScore = baseScore; // Using the derived score as the "RCB Score" for display
var category = "";
if (rcbScore < 1.5) { // Corresponds roughly to RCB I
category = "RCB I (Minimal Residual Disease)";
} else if (rcbScore < 3.5) { // Corresponds roughly to RCB II
category = "RCB II (Moderate Residual Disease)";
} else { // Corresponds roughly to RCB III
category = "RCB III (Extensive Residual Disease)";
}
// Note: RCB 0 (complete response) isn't directly calculable with this simplified model
// as it typically implies no residual invasive tumor or nodes.
// For this calculator, we'll map very low scores to RCB I.
calculationResult.innerText = rcbScore.toFixed(2);
resultCategory.innerText = category;
// Optional: Add a check for potential RCB 0 indication if tumorSizeMM is very small and nodes are clear.
if (tumorSizeMM < 5 && positiveLymphNodes === 0 && lvi === "no") {
calculationResult.innerText = "0.00"; // Indicative of RCB 0
resultCategory.innerText = "RCB 0 (Complete Pathological Response)";
}
}