MAGENT

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.

LIVE $0.005 USDC GET /api/calc/crash

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

Title
Predicting the risk of chemotherapy toxicity in older patients: the Chemotherapy Risk Assessment Scale for High-Age Patients (CRASH) score
Authors
Extermann M, Boler I, Reich RR, et al.
Source
Cancer. 2012;118(13):3377-3386
DOI
10.1002/cncr.26646

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

  1. 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%)
  2. ECOG 1 → 1; MMS 28 <30 → 2; MNA 26 <28 → 2; Chemotox 0.50 → 1. Nonhematologic = 6 (medium_high, 67%)
  3. 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

  1. Diastolic ≤72 → 0; IADL 26–29 → 0; LDH not >0.74×ULN → 0; Chemotox 0–0.44 → 0. Hematologic = 0 (low, 7%)
  2. ECOG 0 → 0; MMS 30 → 0; MNA 28–30 → 0; Chemotox 0. Nonhematologic = 0 (low, 33%)
  3. 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.

/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

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.

POST /api/calc/crash Max 25 unit_amount + extra_item_amount * (n - 1) extra $0.002 PREVIEW

  • 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"
    }
  ]
}

Open bulk paywall →

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.