Emergency · LIVE
CRASH chemotherapy toxicity score
CRASH
Sum Extermann 2012 Table 4 CRASH points into hematologic (0–6), nonhematologic (0–8), and combined (0–12, Chemotox once) scores with published four-level risk bands.
Markdown: /docs/crash.md · Canonical: https://magentlab.com/docs/crash
Not a medical device. Not a diagnosis, dose, or listing recommendation.
What it computes
Sum Extermann 2012 Table 4 CRASH points into hematologic (0–6), nonhematologic (0–8), and combined (0–12, Chemotox once) scores with published four-level risk bands.
When to use
When an agent already has caller-assigned CRASH inputs for an older patient considered for chemotherapy and needs the published hematologic, nonhematologic, and combined scores, not a chemotherapy order, not CARG-TT, and not the trauma CRASH score. magent does not look up regimens or assay LDH.
When not to use
- Not a medical device.
- Not a chemotherapy order. This tool does not start, stop, or choose cancer treatment. Not CARG-TT.
- Not the trauma CRASH score (MRC CRASH head-injury trial). This is the Extermann 2012 Chemotherapy Risk Assessment Scale for High-Age Patients.
- Hematologic, nonhematologic, and combined incidences (7/23/54/100%, 33/46/67/93%, 50/58/77/79%) are derivation-cohort observations, not patient-specific probabilities.
- Chemotox is caller-assigned MAX2 (0–1). magent does not look up regimens.
- Caller assigns diastolic BP, IADL (10–29), LDH and LDH ULN, ECOG, Mini-Mental Status, and Mini-Nutritional Assessment. magent does not measure blood pressure, interview, or assay LDH.
- Combined score counts Chemotox once (max 12, not 14). LDH awards 0 or 2 points only (empty 1-point column in Table 4).
Formula
CRASH (Extermann 2012 Table 4) hematologic = diastolic_mm_hg (<=72 0, >72 1) + iadl (26-29 0, 10-25 1) + ldh (ldh_u_l > 0.74 * ldh_uln_u_l 2 else 0; empty 1-point column) + chemotox (0-0.44 0, 0.45-0.57 1, >0.57 2); max 6; nonhematologic = ecog (0 → 0, 1-2 → 1, 3-4 → 2) + mms (30 → 0, <30 → 2) + mna (28-30 → 0, <28 → 2) + chemotox (same); max 8; combined = hematologic + nonhematologic - chemotox (count Chemotox once; max 12 not 14); H 0-1 low 7%, 2-3 medium_low 23%, 4-5 medium_high 54%, 6 high 100%; NH 0-2 low 33%, 3-4 medium_low 46%, 5-6 medium_high 67%, 7-8 high 93%; combined 0-3 low 50%, 4-6 medium_low 58%, 7-9 medium_high 77%, 10-12 high 79%; not trauma CRASH; not CARG-TT; Chemotox is caller-assigned MAX2
Citation
- Authors
- Extermann M, Boler I, Reich RR, et al.
- Source
- Cancer. 2012;118(13):3377-3386
Worked example
Published worked example (combined high)
Given:
chemotox=0.50diastolic_mm_hg=80ecog=1iadl=20ldh_u_l=500ldh_uln_u_l=618mms=28mna=26
- Diastolic 80 >72 → 1; IADL 20 (10–25) → 1; LDH 500 > 0.74×618≈457.32 → 2; Chemotox 0.50 → 1. Hematologic = 5 (medium_high, 54%)
- ECOG 1 → 1; MMS 28 <30 → 2; MNA 26 <28 → 2; Chemotox 0.50 → 1. Nonhematologic = 6 (medium_high, 67%)
- Combined = 5+6−1 = 10 (Chemotox once; high, 79%). Not a chemotherapy order.
All lowest Table 4 poles
Given:
chemotox=0.44diastolic_mm_hg=72ecog=0iadl=29ldh_u_l=100ldh_uln_u_l=200mms=30mna=30
- Diastolic ≤72 → 0; IADL 26–29 → 0; LDH not >0.74×ULN → 0; Chemotox 0–0.44 → 0. Hematologic = 0 (low, 7%)
- ECOG 0 → 0; MMS 30 → 0; MNA 28–30 → 0; Chemotox 0. Nonhematologic = 0 (low, 33%)
- Combined = 0 (low, 50%)
Also searched as
- CRASH score
- CRASH chemotherapy toxicity
- Extermann CRASH
- Chemotherapy Risk Assessment Scale for High-Age Patients
- Chemotox CRASH
- MAX2 Chemotox
- chemotherapy toxicity older patients
- CRASH hematologic score
Try
Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.
Full URL: https://api.magentlab.com/api/calc/crash?diastolic_mm_hg=80&iadl=20&ldh_u_l=500&ldh_uln_u_l=618&chemotox=0.50&ecog=1&mms=28&mna=26
Call
Expect HTTP 402 until you retry with PAYMENT-SIGNATURE. Incomplete query params
return HTTP 400 before any quote or charge.
curl -i -H "Accept: application/json" "https://api.magentlab.com/api/calc/crash?diastolic_mm_hg=80&iadl=20&ldh_u_l=500&ldh_uln_u_l=618&chemotox=0.50&ecog=1&mms=28&mna=26"
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
diastolic_mm_hg |
number | required | Diastolic blood pressure in mm Hg (20-160). Extermann 2012 Table 4: ≤72 → 0, >72 → 1 hematologic point. magent does not measure blood pressure. |
iadl |
integer | required | Instrumental activities of daily living integer 10-29 (Extermann 2012 CRASH IADL). 26-29 → 0, 10-25 → 1 hematologic point. magent does not interview the patient. |
ldh_u_l |
number | required | Lactate dehydrogenase in U/L (1-20000). +2 hematologic points if ldh_u_l > 0.74 × ldh_uln_u_l, else 0 (empty 1-point column). magent does not assay LDH. |
ldh_uln_u_l |
number | required | Laboratory LDH upper limit of normal in U/L (50-2000). Used only as 0.74 × ULN for the LDH rule. No special-case ULN value. magent does not assay LDH. |
chemotox |
number | required | Caller-assigned MAX2 Chemotox from 0 to 1. 0-0.44 → 0, 0.45-0.57 → 1, >0.57 → 2. Counted once in the combined score. magent does not look up regimens. |
ecog |
integer | required | ECOG performance status integer 0-4. Extermann 2012: 0 → 0, 1-2 → 1, 3-4 → 2 nonhematologic points. magent does not assign performance status. |
mms |
integer | required | Mini-Mental Status integer 0-30. Extermann 2012: 30 → 0, <30 → 2 nonhematologic points. magent does not administer the Mini-Mental Status. |
mna |
integer | required | Mini-Nutritional Assessment integer 0-30. Extermann 2012: 28-30 → 0, <28 → 2 nonhematologic points. magent does not administer the Mini-Nutritional Assessment. |
Bulk (POST)
POST the same path with a JSON items array. The first item is the GET unit; each additional item is $0.002. Invalid items return HTTP 400 before settlement.
- 1 to 25 items. Each item uses the same keys as the GET query parameters.
- POST of 1 item costs the same as GET. Lists longer than 25: chunk into multiple POSTs. Extra items still execute; do not pad dummy rows.
- The first invalid item fails the whole request (index in the 400 JSON). You are not charged.
- HTTP 200 is {count, path, items}. Each items[i] is the GET 200 body for that row.
- Catalog misses (empty matches, found=false) stay paid 200s inside that slot.
- x402 resource URL is this path plus n and body_sha256. Browsers that prefer text/html get the same paywall as GET; Pay retries POST with the same items.
Example request (fixture)
{
"items": [
{
"chemotox": "0.50",
"diastolic_mm_hg": "80",
"ecog": "1",
"iadl": "20",
"ldh_u_l": "500",
"ldh_uln_u_l": "618",
"mms": "28",
"mna": "26"
},
{
"chemotox": "0.50",
"diastolic_mm_hg": "80",
"ecog": "1",
"iadl": "20",
"ldh_u_l": "500",
"ldh_uln_u_l": "618",
"mms": "28",
"mna": "26"
}
]
}
Opens a two-item fixture on the API host. Unpaid browsers get the same MetaMask paywall as GET; Pay retries POST with those items.
Example 200 (fixture)
{
"count": 2,
"path": "/api/calc/crash",
"items": [
{
"components": [
{
"value": 80.0,
"factor": "diastolic_mm_hg",
"points": 1,
"present": true
},
{
"value": 20,
"factor": "iadl",
"points": 1,
"present": true
},
{
"value": 500.0,
"factor": "ldh",
"points": 2,
"present": true
},
{
"value": 0.5,
"factor": "chemotox",
"points": 1,
"present": true
},
{
"value": 1,
"factor": "ecog",
"points": 1,
"present": true
},
{
"value": 28,
"factor": "mms",
"points": 2,
"present": true
},
{
"value": 26,
"factor": "mna",
"points": 2,
"present": true
}
],
"disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
"citation": {
"authors": "Extermann M, Boler I, Reich RR, et al.",
"doi": "10.1002/cncr.26646",
"id": "extermann-2012",
"pmid": "22072065",
"source": "Cancer. 2012;118(13):3377-3386",
"title": "Predicting the risk of chemotherapy toxicity in older patients: the Chemotherapy Risk Assessment Scale for High-Age Patients (CRASH) score"
},
"formula": "crash",
"formula_expression": "CRASH (Extermann 2012 Table 4) hematologic = diastolic_mm_hg (<=72 0, >72 1) + iadl (26-29 0, 10-25 1) + ldh (ldh_u_l > 0.74 * ldh_uln_u_l 2 else 0; empty 1-point column) + chemotox (0-0.44 0, 0.45-0.57 1, >0.57 2); max 6; nonhematologic = ecog (0 → 0, 1-2 → 1, 3-4 → 2) + mms (30 → 0, <30 → 2) + mna (28-30 → 0, <28 → 2) + chemotox (same); max 8; combined = hematologic + nonhematologic - chemotox (count Chemotox once; max 12 not 14); H 0-1 low 7%, 2-3 medium_low 23%, 4-5 medium_high 54%, 6 high 100%; NH 0-2 low 33%, 3-4 medium_low 46%, 5-6 medium_high 67%, 7-8 high 93%; combined 0-3 low 50%, 4-6 medium_low 58%, 7-9 medium_high 77%, 10-12 high 79%; not trauma CRASH; not CARG-TT; Chemotox is caller-assigned MAX2",
"diastolic_mm_hg": 80.0,
"ecog": 1,
"chemotox": 0.5,
"combined_incidence_percent": 79,
"combined_risk": "high",
"combined_score": 10,
"hematologic_incidence_percent": 54,
"hematologic_risk": "medium_high",
"hematologic_score": 5,
"iadl": 20,
"ldh_u_l": 500.0,
"ldh_uln_u_l": 618.0,
"max_combined_score": 12,
"max_hematologic_score": 6,
"max_nonhematologic_score": 8,
"mms": 28,
"mna": 26,
"nonhematologic_incidence_percent": 67,
"nonhematologic_risk": "medium_high",
"nonhematologic_score": 6
},
{
"components": [
{
"value": 80.0,
"factor": "diastolic_mm_hg",
"points": 1,
"present": true
},
{
"value": 20,
"factor": "iadl",
"points": 1,
"present": true
},
{
"value": 500.0,
"factor": "ldh",
"points": 2,
"present": true
},
{
"value": 0.5,
"factor": "chemotox",
"points": 1,
"present": true
},
{
"value": 1,
"factor": "ecog",
"points": 1,
"present": true
},
{
"value": 28,
"factor": "mms",
"points": 2,
"present": true
},
{
"value": 26,
"factor": "mna",
"points": 2,
"present": true
}
],
"disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
"citation": {
"authors": "Extermann M, Boler I, Reich RR, et al.",
"doi": "10.1002/cncr.26646",
"id": "extermann-2012",
"pmid": "22072065",
"source": "Cancer. 2012;118(13):3377-3386",
"title": "Predicting the risk of chemotherapy toxicity in older patients: the Chemotherapy Risk Assessment Scale for High-Age Patients (CRASH) score"
},
"formula": "crash",
"formula_expression": "CRASH (Extermann 2012 Table 4) hematologic = diastolic_mm_hg (<=72 0, >72 1) + iadl (26-29 0, 10-25 1) + ldh (ldh_u_l > 0.74 * ldh_uln_u_l 2 else 0; empty 1-point column) + chemotox (0-0.44 0, 0.45-0.57 1, >0.57 2); max 6; nonhematologic = ecog (0 → 0, 1-2 → 1, 3-4 → 2) + mms (30 → 0, <30 → 2) + mna (28-30 → 0, <28 → 2) + chemotox (same); max 8; combined = hematologic + nonhematologic - chemotox (count Chemotox once; max 12 not 14); H 0-1 low 7%, 2-3 medium_low 23%, 4-5 medium_high 54%, 6 high 100%; NH 0-2 low 33%, 3-4 medium_low 46%, 5-6 medium_high 67%, 7-8 high 93%; combined 0-3 low 50%, 4-6 medium_low 58%, 7-9 medium_high 77%, 10-12 high 79%; not trauma CRASH; not CARG-TT; Chemotox is caller-assigned MAX2",
"diastolic_mm_hg": 80.0,
"ecog": 1,
"chemotox": 0.5,
"combined_incidence_percent": 79,
"combined_risk": "high",
"combined_score": 10,
"hematologic_incidence_percent": 54,
"hematologic_risk": "medium_high",
"hematologic_score": 5,
"iadl": 20,
"ldh_u_l": 500.0,
"ldh_uln_u_l": 618.0,
"max_combined_score": 12,
"max_hematologic_score": 6,
"max_nonhematologic_score": 8,
"mms": 28,
"mna": 26,
"nonhematologic_incidence_percent": 67,
"nonhematologic_risk": "medium_high",
"nonhematologic_score": 6
}
]
}
Response
| Field | Type | Description |
|---|---|---|
formula |
string | crash |
formula_expression |
string | Exact expression used |
hematologic_score |
integer | Extermann 2012 hematologic points 0-6 |
nonhematologic_score |
integer | Extermann 2012 nonhematologic points 0-8 |
combined_score |
integer | Hematologic + nonhematologic minus Chemotox once; 0-12 |
max_hematologic_score |
integer | Always 6 |
max_nonhematologic_score |
integer | Always 8 |
max_combined_score |
integer | Always 12 |
hematologic_risk |
string | low, medium_low, medium_high, or high (H-toxicity derivation split) |
nonhematologic_risk |
string | low, medium_low, medium_high, or high (non-H derivation split) |
combined_risk |
string | low, medium_low, medium_high, or high (combined derivation split) |
hematologic_incidence_percent |
integer | Derivation H-toxicity incidence 7, 23, 54, or 100; not a patient probability |
nonhematologic_incidence_percent |
integer | Derivation non-H incidence 33, 46, 67, or 93; not a patient probability |
combined_incidence_percent |
integer | Derivation combined incidence 50, 58, 77, or 79; not a patient probability |
diastolic_mm_hg |
number | Diastolic BP used, mm Hg |
iadl |
integer | IADL integer used |
ldh_u_l |
number | LDH used, U/L |
ldh_uln_u_l |
number | LDH ULN used, U/L |
chemotox |
number | Caller-assigned MAX2 Chemotox used |
ecog |
integer | ECOG used |
mms |
integer | Mini-Mental Status used |
mna |
integer | Mini-Nutritional Assessment used |
components |
array | Per-factor points with Chemotox listed once |
citation |
object | Extermann 2012 citation |
disclaimer |
string | Not-a-device notice |
Example JSON
Machine form of the same example. Frozen fixture. Not a live lookup.
{
"components": [
{
"value": 80.0,
"factor": "diastolic_mm_hg",
"points": 1,
"present": true
},
{
"value": 20,
"factor": "iadl",
"points": 1,
"present": true
},
{
"value": 500.0,
"factor": "ldh",
"points": 2,
"present": true
},
{
"value": 0.5,
"factor": "chemotox",
"points": 1,
"present": true
},
{
"value": 1,
"factor": "ecog",
"points": 1,
"present": true
},
{
"value": 28,
"factor": "mms",
"points": 2,
"present": true
},
{
"value": 26,
"factor": "mna",
"points": 2,
"present": true
}
],
"disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
"citation": {
"authors": "Extermann M, Boler I, Reich RR, et al.",
"doi": "10.1002/cncr.26646",
"id": "extermann-2012",
"pmid": "22072065",
"source": "Cancer. 2012;118(13):3377-3386",
"title": "Predicting the risk of chemotherapy toxicity in older patients: the Chemotherapy Risk Assessment Scale for High-Age Patients (CRASH) score"
},
"formula": "crash",
"formula_expression": "CRASH (Extermann 2012 Table 4) hematologic = diastolic_mm_hg (<=72 0, >72 1) + iadl (26-29 0, 10-25 1) + ldh (ldh_u_l > 0.74 * ldh_uln_u_l 2 else 0; empty 1-point column) + chemotox (0-0.44 0, 0.45-0.57 1, >0.57 2); max 6; nonhematologic = ecog (0 → 0, 1-2 → 1, 3-4 → 2) + mms (30 → 0, <30 → 2) + mna (28-30 → 0, <28 → 2) + chemotox (same); max 8; combined = hematologic + nonhematologic - chemotox (count Chemotox once; max 12 not 14); H 0-1 low 7%, 2-3 medium_low 23%, 4-5 medium_high 54%, 6 high 100%; NH 0-2 low 33%, 3-4 medium_low 46%, 5-6 medium_high 67%, 7-8 high 93%; combined 0-3 low 50%, 4-6 medium_low 58%, 7-9 medium_high 77%, 10-12 high 79%; not trauma CRASH; not CARG-TT; Chemotox is caller-assigned MAX2",
"diastolic_mm_hg": 80.0,
"ecog": 1,
"chemotox": 0.5,
"combined_incidence_percent": 79,
"combined_risk": "high",
"combined_score": 10,
"hematologic_incidence_percent": 54,
"hematologic_risk": "medium_high",
"hematologic_score": 5,
"iadl": 20,
"ldh_u_l": 500.0,
"ldh_uln_u_l": 618.0,
"max_combined_score": 12,
"max_hematologic_score": 6,
"max_nonhematologic_score": 8,
"mms": 28,
"mna": 26,
"nonhematologic_incidence_percent": 67,
"nonhematologic_risk": "medium_high",
"nonhematologic_score": 6
}
Client errors (HTTP 400)
Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_diastolic_bp |
diastolic_mm_hg must be a number from 20 to 160. Returned before settlement; you are not charged. |
| 400 | invalid_crash_iadl |
iadl must be an integer from 10 to 29 (Extermann 2012 CRASH IADL). Returned before settlement; you are not charged. |
| 400 | invalid_ldh |
ldh_u_l must be a number from 1 to 20000 (Extermann 2012 LDH U/L). Returned before settlement; you are not charged. |
| 400 | invalid_ldh_uln |
ldh_uln_u_l must be a number from 50 to 2000. Returned before settlement; you are not charged. |
| 400 | invalid_crash_chemotox |
chemotox must be a number from 0 to 1 (Extermann 2012 MAX2 Chemotox as assigned by the caller). Returned before settlement; you are not charged. |
| 400 | invalid_ecog |
ecog must be an integer from 0 to 4 (Shipp 1993 IPI). Returned before settlement; you are not charged. |
| 400 | invalid_crash_mms |
mms must be an integer from 0 to 30 (Extermann 2012 Mini-Mental Status). Returned before settlement; you are not charged. |
| 400 | invalid_crash_mna |
mna must be an integer from 0 to 30 (Extermann 2012 Mini-Nutritional Assessment). Returned before settlement; you are not charged. |
| 400 | invalid_items |
POST body must be a JSON object with only an items array Returned before settlement; you are not charged. |
| 400 | invalid_item_count |
items must be an array of 1 to 25 objects Returned before settlement; you are not charged. |
| 400 | invalid_item |
each items entry must be a JSON object Returned before settlement; you are not charged. |
Related tools
- G8 — Sum the eight Bellera 2012 G8 items (seven MNA items A, B, C, E, F, H, P plus age) and return whether the published ≤14 impaired-screen cutoff is met.
- CARG-TT — Sum Hurria 2011 Table 5 CARG chemotherapy-toxicity weights and return low (0-5, 30%), intermediate (6-9, 52%), or high (10-19, 83%) grade 3-5 toxicity risk.
Payment
Unpaid requests return HTTP 402 even if query parameters or POST items are missing or invalid, so CDP and agents can index the path. After a PAYMENT-SIGNATURE, invalid params return HTTP 400 JSON before settlement. magent does not charge. Fix the params, then request a new 402 quote for that complete URL. Catalog misses (empty matches, found=false) are valid paid 200s. Unpaid valid requests return HTTP 402 with a base64
PAYMENT-REQUIRED
header. HTTP 503 is not a new quote: retry the same PAYMENT-SIGNATURE. Full handshake
and shared payment errors: Payments.
Stdio MCP: /docs/mcp.
Guarantees
- HTTP 402 is unpaid, including a missing query. After PAYMENT-SIGNATURE, invalid parameters return HTTP 400 before settlement. You are not charged. HTTP 402 never includes the tool JSON.
- exact: settlement finishes before the tool (paymentFlow upfront). batch-settlement: verify/deposit before the tool; chargedCumulativeAmount commits after HTTP 2xx. Uncertain or failed settlement fails closed (HTTP 503). Retry the same PAYMENT-SIGNATURE.
- HTTP 402 is unpaid only. Do not sign a second authorization because of a 503.
- Execution is timeout-bounded and concurrency-capped.
- Calculator inputs are stored encrypted for allowlisted operators (Magent Console). They are not in public logs, SSH lookups, catalog, or rollups. Request logs store path without query.