Hematology · LIVE
PLASMIC score
Sum the seven Bendapudi 2017 PLASMIC items and return the published 0-4 / 5 / 6-7 pretest band for severe ADAMTS13 deficiency.
Markdown: /docs/plasmic.md · Canonical: https://magentlab.com/docs/plasmic
Not a medical device. Not a diagnosis, dose, or listing recommendation.
What it computes
Sum the seven Bendapudi 2017 PLASMIC items and return the published 0-4 / 5 / 6-7 pretest band for severe ADAMTS13 deficiency.
When to use
When an agent needs the published PLASMIC point total and pretest band and must not invent a plasma-exchange order or an ADAMTS13 activity result.
When not to use
- Not a medical device.
- Not a plasma-exchange order and not a diagnosis of TTP.
- magent does not assay hemolysis. hemolysis is a caller-assigned flag (reticulocyte count >2.5% or undetectable haptoglobin or indirect bilirubin >2.0 mg/dL per Bendapudi 2017).
- Does not return percents or ADAMTS13 activity. Bands 0-4 / 5 / 6-7 are pretest groups for severe ADAMTS13 deficiency.
- Platelets 30×10^9/L, MCV 90 fL, INR 1.5, and creatinine 2.0 mg/dL do not score (strict <).
- A point is given for no active cancer and for no solid-organ or stem-cell transplant (those flags true score 0).
Formula
PLASMIC = (platelets_10e9_l<30) + hemolysis + (not active_cancer) + (not solid_organ_or_stem_cell_transplant) + (mcv_fl<90) + (inr<1.5) + (creatinine_mg_dl<2.0); each 1; max 7; bands 0-4 / 5 / 6-7
Citation
- Authors
- Bendapudi PK, Hurwitz S, Fry A, et al.
- Source
- Lancet Haematol. 2017;4(4):e157-e164
Worked example
All seven items present
Given:
active_cancer=falsecreatinine_mg_dl=1.0hemolysis=trueinr=1.1mcv_fl=85platelets_10e9_l=15solid_organ_or_stem_cell_transplant=false
- Platelets 15 < 30 → 1; hemolysis true → 1; no active cancer → 1; no transplant → 1; MCV 85 < 90 → 1; INR 1.1 < 1.5 → 1; creatinine 1.0 < 2.0 → 1
- Score = 7 (max 7); band 6-7
Also searched as
- PLASMIC score
- Bendapudi PLASMIC
- TMA PLASMIC
- ADAMTS13 pretest
- thrombotic microangiopathy score
- PLASMIC TTP
- severe ADAMTS13 deficiency score
- hemolytic TMA 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/plasmic?platelets_10e9_l=15&hemolysis=true&active_cancer=false&solid_organ_or_stem_cell_transplant=false&mcv_fl=85&inr=1.1&creatinine_mg_dl=1.0
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/plasmic?platelets_10e9_l=15&hemolysis=true&active_cancer=false&solid_organ_or_stem_cell_transplant=false&mcv_fl=85&inr=1.1&creatinine_mg_dl=1.0"
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
platelets_10e9_l |
number | required | Platelet count ×10^9/L (1-2000). Scores 1 when <30; 30 does not score (Bendapudi 2017). |
hemolysis |
boolean | required | Caller-assigned hemolysis (Bendapudi 2017: reticulocyte count >2.5% or undetectable haptoglobin or indirect bilirubin >2.0 mg/dL). true or false. magent does not assay. 1 point if true. |
active_cancer |
boolean | required | Active cancer as assigned by the caller. true or false. 1 point when false (no active cancer). |
solid_organ_or_stem_cell_transplant |
boolean | required | History of solid-organ or stem-cell transplant as assigned by the caller. true or false. 1 point when false (no transplant history). |
mcv_fl |
number | required | Mean corpuscular volume in fL (50-120). Scores 1 when <90; 90.0 does not score. |
inr |
number | required | INR (0.8-10). Scores 1 when <1.5; 1.5 does not score. |
creatinine_mg_dl |
number | optional | Serum creatinine in mg/dL (0.1-20). Provide this or creatinine_umol_l. Scores 1 when <2.0; 2.0 does not score. |
creatinine_umol_l |
number | optional | Serum creatinine in µmol/L (9-1768). Converted as mg/dL = µmol/L / 88.42. Provide this or creatinine_mg_dl. |
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": [
{
"active_cancer": "false",
"creatinine_mg_dl": "1.0",
"hemolysis": "true",
"inr": "1.1",
"mcv_fl": "85",
"platelets_10e9_l": "15",
"solid_organ_or_stem_cell_transplant": "false"
},
{
"active_cancer": "false",
"creatinine_mg_dl": "1.0",
"hemolysis": "true",
"inr": "1.1",
"mcv_fl": "85",
"platelets_10e9_l": "15",
"solid_organ_or_stem_cell_transplant": "false"
}
]
}
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/plasmic",
"items": [
{
"components": [
{
"value": 15.0,
"factor": "platelets_lt_30",
"points": 1,
"present": true
},
{
"factor": "hemolysis",
"points": 1,
"present": true
},
{
"factor": "no_active_cancer",
"points": 1,
"present": true
},
{
"factor": "no_solid_organ_or_stem_cell_transplant",
"points": 1,
"present": true
},
{
"value": 85.0,
"factor": "mcv_lt_90",
"points": 1,
"present": true
},
{
"value": 1.1,
"factor": "inr_lt_1_5",
"points": 1,
"present": true
},
{
"value": 1.0,
"factor": "creatinine_lt_2",
"points": 1,
"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": "Bendapudi PK, Hurwitz S, Fry A, et al.",
"doi": "10.1016/S2352-3026(17)30026-1",
"id": "bendapudi-2017",
"pmid": "28259520",
"source": "Lancet Haematol. 2017;4(4):e157-e164",
"title": "Derivation and external validation of the PLASMIC score for rapid assessment of adults with thrombotic microangiopathies: a cohort study"
},
"formula": "plasmic",
"formula_expression": "PLASMIC = (platelets_10e9_l<30) + hemolysis + (not active_cancer) + (not solid_organ_or_stem_cell_transplant) + (mcv_fl<90) + (inr<1.5) + (creatinine_mg_dl<2.0); each 1; max 7; bands 0-4 / 5 / 6-7",
"max_score": 7,
"score": 7,
"inr": 1.1,
"platelets_10e9_l": 15.0,
"creatinine_mg_dl": 1.0,
"mcv_fl": 85.0,
"active_cancer": false,
"hemolysis": true,
"plasmic_band": "6-7",
"solid_organ_or_stem_cell_transplant": false
},
{
"components": [
{
"value": 15.0,
"factor": "platelets_lt_30",
"points": 1,
"present": true
},
{
"factor": "hemolysis",
"points": 1,
"present": true
},
{
"factor": "no_active_cancer",
"points": 1,
"present": true
},
{
"factor": "no_solid_organ_or_stem_cell_transplant",
"points": 1,
"present": true
},
{
"value": 85.0,
"factor": "mcv_lt_90",
"points": 1,
"present": true
},
{
"value": 1.1,
"factor": "inr_lt_1_5",
"points": 1,
"present": true
},
{
"value": 1.0,
"factor": "creatinine_lt_2",
"points": 1,
"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": "Bendapudi PK, Hurwitz S, Fry A, et al.",
"doi": "10.1016/S2352-3026(17)30026-1",
"id": "bendapudi-2017",
"pmid": "28259520",
"source": "Lancet Haematol. 2017;4(4):e157-e164",
"title": "Derivation and external validation of the PLASMIC score for rapid assessment of adults with thrombotic microangiopathies: a cohort study"
},
"formula": "plasmic",
"formula_expression": "PLASMIC = (platelets_10e9_l<30) + hemolysis + (not active_cancer) + (not solid_organ_or_stem_cell_transplant) + (mcv_fl<90) + (inr<1.5) + (creatinine_mg_dl<2.0); each 1; max 7; bands 0-4 / 5 / 6-7",
"max_score": 7,
"score": 7,
"inr": 1.1,
"platelets_10e9_l": 15.0,
"creatinine_mg_dl": 1.0,
"mcv_fl": 85.0,
"active_cancer": false,
"hemolysis": true,
"plasmic_band": "6-7",
"solid_organ_or_stem_cell_transplant": false
}
]
}
Response
| Field | Type | Description |
|---|---|---|
formula |
string | plasmic |
formula_expression |
string | Exact expression used |
score |
integer | Total points 0-7 |
max_score |
integer | Always 7 |
plasmic_band |
string | 0-4, 5, or 6-7 (Bendapudi 2017 pretest groups for severe ADAMTS13 deficiency). Not a percent and not a plasma-exchange order. |
platelets_10e9_l |
number | Platelet count used (×10^9/L) |
hemolysis |
boolean | Caller-assigned hemolysis flag used |
active_cancer |
boolean | Caller-assigned active-cancer flag used |
solid_organ_or_stem_cell_transplant |
boolean | Caller-assigned transplant-history flag used |
mcv_fl |
number | MCV used, fL |
inr |
number | INR used |
creatinine_mg_dl |
number | Creatinine used in mg/dL (after µmol/L conversion when that unit is supplied) |
components |
array | Per-item points |
citation |
object | Bendapudi 2017 citation |
disclaimer |
string | Not-a-device notice |
Example JSON
Machine form of the same example. Frozen fixture. Not a live lookup.
{
"components": [
{
"value": 15.0,
"factor": "platelets_lt_30",
"points": 1,
"present": true
},
{
"factor": "hemolysis",
"points": 1,
"present": true
},
{
"factor": "no_active_cancer",
"points": 1,
"present": true
},
{
"factor": "no_solid_organ_or_stem_cell_transplant",
"points": 1,
"present": true
},
{
"value": 85.0,
"factor": "mcv_lt_90",
"points": 1,
"present": true
},
{
"value": 1.1,
"factor": "inr_lt_1_5",
"points": 1,
"present": true
},
{
"value": 1.0,
"factor": "creatinine_lt_2",
"points": 1,
"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": "Bendapudi PK, Hurwitz S, Fry A, et al.",
"doi": "10.1016/S2352-3026(17)30026-1",
"id": "bendapudi-2017",
"pmid": "28259520",
"source": "Lancet Haematol. 2017;4(4):e157-e164",
"title": "Derivation and external validation of the PLASMIC score for rapid assessment of adults with thrombotic microangiopathies: a cohort study"
},
"formula": "plasmic",
"formula_expression": "PLASMIC = (platelets_10e9_l<30) + hemolysis + (not active_cancer) + (not solid_organ_or_stem_cell_transplant) + (mcv_fl<90) + (inr<1.5) + (creatinine_mg_dl<2.0); each 1; max 7; bands 0-4 / 5 / 6-7",
"max_score": 7,
"score": 7,
"inr": 1.1,
"platelets_10e9_l": 15.0,
"creatinine_mg_dl": 1.0,
"mcv_fl": 85.0,
"active_cancer": false,
"hemolysis": true,
"plasmic_band": "6-7",
"solid_organ_or_stem_cell_transplant": false
}
Client errors (HTTP 400)
Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_platelets |
platelets_10e9_l must be a number from 1 to 2000 Returned before settlement; you are not charged. |
| 400 | invalid_flag |
boolean clinical flags must be true or false Returned before settlement; you are not charged. |
| 400 | invalid_mcv |
mcv_fl must be a number from 50 to 120. Returned before settlement; you are not charged. |
| 400 | invalid_inr |
inr must be a number from 0.8 to 10 Returned before settlement; you are not charged. |
| 400 | invalid_creatinine |
creatinine_mg_dl (0.1-20) or creatinine_umol_l (9-1768) is required 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
- 4Ts score — Compute the Lo 2006 4Ts score as the sum of four caller-assigned integers 0-2 (thrombocytopenia, timing, thrombosis, other causes).
- NLR — Compute the Zahorec 2001 neutrophil-to-lymphocyte ratio from relative neutrophil and lymphocyte percents.
- ANC — Compute absolute neutrophil count from WBC and neutrophil plus band percents, plus a Bodey 1966 granulocyte band.
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.
- 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.