Emergency · LIVE
C-DIVA (Bell)
C-DIVA
Sum four caller-assigned Bell 2023 C-DIVA integers (0-2) and return the published total (max 8) and Figure 1 low/medium/high risk band.
Markdown: /docs/c-diva.md · Canonical: https://magentlab.com/docs/c-diva
Not a medical device. Not a diagnosis, dose, or listing recommendation.
What it computes
Sum four caller-assigned Bell 2023 C-DIVA integers (0-2) and return the published total (max 8) and Figure 1 low/medium/high risk band.
When to use
When an agent has already assigned Bell 2023 Figure 1 domain integers (visual appearance, palpable sites, history of difficult access, clinical factors) and needs the published C-DIVA total and risk band, not an IV insertion or escalation order.
When not to use
- Not a medical device and not a vascular-access, ultrasound, CVC, IO, or treatment order.
- Each of the four domains is a caller-assigned integer 0, 1, or 2 from Bell 2023 Figure 1. magent does not examine the patient, inspect veins, or take a history.
- Returned bands are Bell 2023 Figure 1 risk groups (low 0-3, medium 4-5, high 6-8), not orders to obtain IV access, consult a vascular access specialist, or place a CVC or IO.
Formula
C-DIVA = visual_appearance + palpable_sites + history_of_difficult_access + clinical_factors; each caller-assigned 0-2 (Bell 2023 Figure 1); max 8
Citation
- Authors
- Bell JA, Campos C, Moureau N
- Source
- Int J Nurs Health Care Res. 2023;6:1414
Worked example
All domains 0
Given:
clinical_factors=0history_of_difficult_access=0palpable_sites=0visual_appearance=0
- visual_appearance 0 + palpable_sites 0 + history_of_difficult_access 0 + clinical_factors 0
- Score = 0 (max 8); c_diva_band low
Two domains at 2 (medium band)
Given:
clinical_factors=0history_of_difficult_access=0palpable_sites=2visual_appearance=2
- visual_appearance 2 + palpable_sites 2; remaining domains 0
- Score = 4 (max 8); c_diva_band medium (Bell 2023 Figure 1 4-5)
All domains 2
Given:
clinical_factors=2history_of_difficult_access=2palpable_sites=2visual_appearance=2
- visual_appearance 2 + palpable_sites 2 + history_of_difficult_access 2 + clinical_factors 2
- Score = 8 (max 8); c_diva_band high (Bell 2023 Figure 1 6-8)
Also searched as
- C-DIVA
- Comprehensive Difficult IV Access
- C-DIVA score
- difficult IV access
- difficult intravenous access score
- Bell C-DIVA
- DIVA scoring tool
- C DIVA
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/c_diva?visual_appearance=0&palpable_sites=0&history_of_difficult_access=0&clinical_factors=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/c_diva?visual_appearance=0&palpable_sites=0&history_of_difficult_access=0&clinical_factors=0"
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
visual_appearance |
integer | required | Caller-assigned Bell 2023 Figure 1 visual appearance (integer 0-2): 0 many visible veins; 1 few visible veins; 2 no visible veins. magent does not examine the patient. |
palpable_sites |
integer | required | Caller-assigned Bell 2023 Figure 1 palpable sites (integer 0-2): 0 many palpable veins; 1 few palpable veins; 2 no palpable veins. magent does not examine the patient. |
history_of_difficult_access |
integer | required | Caller-assigned Bell 2023 Figure 1 history of difficult access (integer 0-2): 0 no difficulty; 1 reported difficulty or recent missed attempts; 2 history of major difficulty as evidenced by previous central lines or PICCs. magent does not take a history. |
clinical_factors |
integer | required | Caller-assigned Bell 2023 Figure 1 clinical factors (integer 0-2): 0 not applicable; 1 pediatric patients or urgent conditions (ESI 3-4); 2 comorbidities or emergency conditions (ESI 1-2). magent does not assign ESI or examine the patient. |
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": [
{
"clinical_factors": "0",
"history_of_difficult_access": "0",
"palpable_sites": "0",
"visual_appearance": "0"
},
{
"clinical_factors": "0",
"history_of_difficult_access": "0",
"palpable_sites": "0",
"visual_appearance": "0"
}
]
}
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/c_diva",
"items": [
{
"components": [
{
"value": 0,
"factor": "visual_appearance",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "palpable_sites",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "history_of_difficult_access",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "clinical_factors",
"points": 0,
"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": "Bell JA, Campos C, Moureau N",
"doi": "10.29011/2688-9501.101414",
"id": "bell-2023",
"source": "Int J Nurs Health Care Res. 2023;6:1414",
"title": "Validation and Reliability of the Comprehensive Difficult IV Access Scoring Tool"
},
"formula": "c_diva",
"formula_expression": "C-DIVA = visual_appearance + palpable_sites + history_of_difficult_access + clinical_factors; each caller-assigned 0-2 (Bell 2023 Figure 1); max 8",
"max_score": 8,
"score": 0,
"c_diva_band": "low"
},
{
"components": [
{
"value": 0,
"factor": "visual_appearance",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "palpable_sites",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "history_of_difficult_access",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "clinical_factors",
"points": 0,
"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": "Bell JA, Campos C, Moureau N",
"doi": "10.29011/2688-9501.101414",
"id": "bell-2023",
"source": "Int J Nurs Health Care Res. 2023;6:1414",
"title": "Validation and Reliability of the Comprehensive Difficult IV Access Scoring Tool"
},
"formula": "c_diva",
"formula_expression": "C-DIVA = visual_appearance + palpable_sites + history_of_difficult_access + clinical_factors; each caller-assigned 0-2 (Bell 2023 Figure 1); max 8",
"max_score": 8,
"score": 0,
"c_diva_band": "low"
}
]
}
Response
| Field | Type | Description |
|---|---|---|
formula |
string | c_diva |
formula_expression |
string | Exact expression used |
score |
integer | C-DIVA points 0-8 |
max_score |
integer | Always 8 |
c_diva_band |
string | Bell 2023 Figure 1 risk group: low (0-3), medium (4-5), or high (6-8). A score band, not a vascular-access or treatment order. |
components |
array | Per-domain caller-assigned points |
citation |
object | Bell et al. Int J Nurs Health Care Res 2023 citation |
disclaimer |
string | Not-a-device notice |
Example JSON
Machine form of the same example. Frozen fixture. Not a live lookup.
{
"components": [
{
"value": 0,
"factor": "visual_appearance",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "palpable_sites",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "history_of_difficult_access",
"points": 0,
"present": true
},
{
"value": 0,
"factor": "clinical_factors",
"points": 0,
"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": "Bell JA, Campos C, Moureau N",
"doi": "10.29011/2688-9501.101414",
"id": "bell-2023",
"source": "Int J Nurs Health Care Res. 2023;6:1414",
"title": "Validation and Reliability of the Comprehensive Difficult IV Access Scoring Tool"
},
"formula": "c_diva",
"formula_expression": "C-DIVA = visual_appearance + palpable_sites + history_of_difficult_access + clinical_factors; each caller-assigned 0-2 (Bell 2023 Figure 1); max 8",
"max_score": 8,
"score": 0,
"c_diva_band": "low"
}
Client errors (HTTP 400)
Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_c_diva |
C-DIVA needs the published vein-visibility, palpability, access-history, and clinical-factor scores. 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
- HEAVEN — Apply the Davis 2017 HEAVEN criteria from six caller-assigned flags and return high_risk iff any is true, plus the count of criteria met (0-6).
- Mallampati — Return the Samsoon 1987 modified Mallampati class 1-4 from a caller-assigned integer, with a stable label.
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.