2017 McDonald typical CIS (Thompson 2018)
2017 McDonald typical CIS (Thompson 2018). mcdonald_ms iff typical_cis and no_better_explanation and: ≥2 attacks with ≥2 lesions; or ≥2 attacks with one lesion plus DIS; or CIS with ≥2 lesions plus MRI DIT or CSF-specific OCB; or CIS with one lesion plus DIS and MRI DIT or CSF-specific OCB. 2017: OCB may substitute for DIT when DIS is met. Symptomatic and cortical lesions count. Not PPMS. Not 2010 McDonald. magent does not read MRI or CSF. Not a diagnosis. Not a medical device.
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/mcdonald_2017
| 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 | 340 ms |
Example input (from the provider)
{
"body": {
"items": [
{
"csf_specific_ocb": false,
"dis": false,
"dit_mri": false,
"no_better_explanation": true,
"two_or_more_attacks": true,
"two_or_more_lesions": true,
"typical_cis": true
},
{
"csf_specific_ocb": false,
"dis": false,
"dit_mri": false,
"no_better_explanation": true,
"two_or_more_attacks": true,
"two_or_more_lesions": true,
"typical_cis": 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": {
"csf_specific_ocb": {
"description": "CSF-specific oligoclonal bands as assigned by the caller (2017 DIT substitute when DIS is fulfilled). true or false. magent does not assay CSF.",
"type": "boolean"
},
"dis": {
"description": "Dissemination in space as assigned by the caller (2017: \u22651 T2-hyperintense lesion characteristic of MS in \u22652 of 4 areas: periventricular, cortical or juxtacortical, infratentorial, spinal cord; symptomatic lesions count; cortical lesions count). true or false. magent does not read MRI.",
"type": "boolean"
},
"dit_mri": {
"description": "MRI dissemination in time as assigned by the caller (simultaneous Gd-enhancing and non-enhancing lesions, or a new T2 or Gd-enhancing lesion on follow-up vs baseline). true or false. magent does not read MRI.",
"type": "boolean"
},
"no_better_explanation": {
"description": "No better explanation for the presentation as assigned by the caller (Thompson 2018). If false, mcdonald_ms is false. Remain vigilant for NMOSD. true or false. magent does not assign a better explanation.",
"type": "boolean"
},
"two_or_more_attacks": {
"description": "\u22652 clinical attacks as assigned by the caller. true means two or more attacks; false means this is the first/CIS attack. true or false. magent does not date attacks.",
"type": "boolean"
},
"two_or_more_lesions": {
"description": "Objective clinical evidence of \u22652 lesions as assigned by the caller. true means \u22652 lesions; false means 1 lesion. true or false. magent does not examine the patient.",
"type": "boolean"
},
"typical_cis": {
"description": "Typical clinically isolated syndrome as assigned by the caller (Thompson 2018 panel 1). If false, mcdonald_ms is false; this tool does not diagnose MS from atypical presentations. true or false. magent does not examine the patient.",
"type": "boolean"
}
},
"required": [
"typical_cis",
"no_better_explanation",
"two_or_more_attacks",
"two_or_more_lesions",
"dis",
"dit_mri",
"csf_specific_ocb"
],
"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"
}