van der Helm-van Mil 2007 Leiden prediction rule for recent-onset undifferentiat
van der Helm-van Mil 2007 Leiden prediction rule for recent-onset undifferentiated arthritis (Figure 1 / Table 2). Age × 0.02, female 1, small joints 0.5, symmetric 0.5, upper 1 or upper-and-lower 1.5, 100-mm morning-stiffness VAS 0/1/2, tender and swollen counts 0/0.5/1, CRP mg/L 0/0.5/1.5, RF 1, anti-CCP 2. Round to nearest 0.0 or 0.5. Bands ≤6 low, >6 and <8 indeterminate, ≥8 high. Not a diagnosis of RA. magent does not examine joints or assay serologies.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://api.magentlab.com/api/calc/leiden_arthritis
| Category | Everything else |
|---|---|
| Provider host | api.magentlab.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 0 from 0 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-28 | valid payment request | 402 | $0.007 | 359 ms |
Example input (from the provider)
{
"body": {
"items": [
{
"age": 48,
"anti_ccp_positive": false,
"crp_mg_l": 60,
"morning_stiffness_vas_mm": 50,
"rheumatoid_factor_positive": false,
"sex": "female",
"small_joints_hands_feet": true,
"swollen_joint_count": 8,
"symmetric": true,
"tender_joint_count": 8,
"upper_and_lower_extremities": false,
"upper_extremities": true
},
{
"age": 48,
"anti_ccp_positive": false,
"crp_mg_l": 60,
"morning_stiffness_vas_mm": 50,
"rheumatoid_factor_positive": false,
"sex": "female",
"small_joints_hands_feet": true,
"swollen_joint_count": 8,
"symmetric": true,
"tender_joint_count": 8,
"upper_and_lower_extremities": false,
"upper_extremities": true
}
]
},
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"properties": {
"age": {
"description": "Age in years as an integer from 18 to 120 (van der Helm-van Mil 2007). Scores age_years \u00d7 0.02. magent does not assign age.",
"type": "integer"
},
"anti_ccp_positive": {
"description": "Caller-assigned anti-CCP (ACPA) positivity (van der Helm-van Mil 2007). true scores 2. magent does not assay serologies.",
"type": "boolean"
},
"crp_mg_l": {
"description": "Caller-assigned C-reactive protein in mg/L (van der Helm-van Mil 2007). Number 0\u2013500. 0\u20134 scores 0; 5\u201350 scores 0.5; \u226551 scores 1.5. magent does not assay CRP.",
"type": "number"
},
"morning_stiffness_vas_mm": {
"description": "Morning-stiffness severity on a 100-mm VAS (van der Helm-van Mil 2007), not duration in minutes. Number 0\u2013100. 0\u201325 scores 0; 26\u201390 scores 1; >90 scores 2. magent does not take a history.",
"type": "number"
},
"rheumatoid_factor_positive": {
"description": "Caller-assigned rheumatoid factor positivity (van der Helm-van Mil 2007). true scores 1. magent does not assay serologies.",
"type": "boolean"
},
"sex": {
"description": "Caller-assigned sex (van der Helm-van Mil 2007). female scores 1; male scores 0. magent does not assign sex.",
"enum": [
"female",
"male"
],
"type": "string"
},
"small_joints_hands_feet": {
"description": "Involvement of small joints of the hands or feet (van der Helm-van Mil 2007). true scores 0.5 and may stack with symmetric and the extremity row. magent does not examine joints.",
"type": "boolean"
},
"swollen_joint_count": {
"description": "Caller-assigned swollen joint count (van der Helm-van Mil 2007). Integer 0\u201366. <4 scores 0; 4\u201310 scores 0.5; \u226511 scores 1. magent does not examine joints.",
"type": "integer"
},
"symmetric": {
"description": "Symmetric joint involvement (van der Helm-van Mil 2007). true scores 0.5 and may stack with small-joint and extremity rows. magent does not examine joints.",
"type": "boolean"
},
"tender_joint_count": {
"description": "Caller-assigned tender joint count (van der Helm-van Mil 2007). Integer 0\u201368. <4 scores 0; 4\u201310 scores 0.5; \u226511 scores 1. magent does not examine joints.",
"type": "integer"
},
"upper_and_lower_extremities": {
"description": "Involvement of upper and lower extremities (van der Helm-van Mil 2007). true scores 1.5 and ignores upper_extremities. magent does not examine joints.",
"type": "boolean"
},
"upper_extremities": {
"description": "Involvement of upper extremities only (van der Helm-van Mil 2007). true scores 1 unless upper_and_lower_extremities is true, in which case this row is ignored. Mutually exclusive with the 1.5 upper-and-lower row. magent does not examine joints.",
"type": "boolean"
}
},
"required": [
"age",
"sex",
"small_joints_hands_feet",
"symmetric",
"upper_extremities",
"upper_and_lower_extremities",
"morning_stiffness_vas_mm",
"tender_joint_count",
"swollen_joint_count",
"crp_mg_l",
"rheumatoid_factor_positive",
"anti_ccp_positive"
],
"type": "object"
},
"maxItems": 25,
"minItems": 1,
"type": "array"
}
},
"required": [
"items"
],
"type": "object"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"const": "POST",
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}