Severity assessment manual
POST /severity-assessment/manual computes a severity score from clinician- or patient-supplied questionnaire responses only no image is required. Use it for scoring systems that are intrinsically questionnaire-based or when an image is unavailable. Manual-capable scoring systems are flagged in the response of GET /questionnaires.
Request
- Python
- JavaScript
- cURL
import requests
base_url = "<base_url>"
url = f"{base_url}/severity-assessment/manual"
# bodySite, scoringSystem code, and questionnaireResponse.item are discovered from
# helper endpoints at integration time see "Shared schema".
json_payload = {
"bodySite": "<body_site_code>",
"knownCondition": {
"conclusion": { "text": "<plain-text condition>" }
},
"scoringSystem": {
"<scoring_system_code>": {
"questionnaireResponse": {
"item": { "<item_code>": "<answer_value>" }
}
}
}
}
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <access_token>"
}
response = requests.post(url, json=json_payload, headers=headers)
result = response.json()
const baseUrl = "<base_url>";
// bodySite, scoringSystem code, and questionnaireResponse.item are discovered from
// helper endpoints at integration time see "Shared schema".
const json_payload = {
bodySite: "<body_site_code>",
knownCondition: { conclusion: { text: "<plain-text condition>" } },
scoringSystem: {
"<scoring_system_code>": {
questionnaireResponse: {
item: { "<item_code>": "<answer_value>" },
},
},
},
};
const response = await fetch(`${baseUrl}/severity-assessment/manual`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <access_token>",
},
body: JSON.stringify(json_payload),
});
const result = await response.json();
# Replace placeholders with values discovered from the helper endpoints
# (see "Shared schema" for body-site, scoring-system, and item).
curl -X POST "<base_url>/severity-assessment/manual" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '{
"bodySite": "<body_site_code>",
"knownCondition": { "conclusion": { "text": "<plain-text condition>" } },
"scoringSystem": {
"<scoring_system_code>": {
"questionnaireResponse": {
"item": { "<item_code>": "<answer_value>" }
}
}
}
}'
Request fields
bodySite(required for some scoring systems) see Body site.knownCondition.conclusion.text(required) see Known condition.scoringSystem.<code>.questionnaireResponse.itemsee Scoring system (scoringSystemandquestionnaireResponse). Note thatGET /questionnairesflags which scoring systems support manual submission.
The Authorization header is the standard bearer token; see Authentication header.
Response
The response follows the shared FHIR response envelope; the manual-specific payload lives under patientEvolution:
{
"patientEvolution": {
"<scoring_system_code>": {
"score": {
"value": 2,
"severity": {
"value": 1,
"interpretations": [
// Bucket boundaries and labels are defined per scoring system;
// see GET /questionnaires?code=<scoring_system_code> for the full table.
{ "min": 0.0, "max": 2.0, "text": "<bucket_label>", "coding": [{ "code": 1, "display": "low" }] },
{ "min": 2.0, "max": 4.0, "text": "<bucket_label>", "coding": [{ "code": 2, "display": "moderate" }] }
]
}
}
}
}
}
Field-by-field
patientEvolution.<scoring_system_code>.score.valuetotal score computed from the questionnaire answers.patientEvolution.<scoring_system_code>.score.severity.valueseverity intensity bucket:1(low),2(moderate),3(high).patientEvolution.<scoring_system_code>.score.severity.interpretations[]the lookup table the API used to deriveseverity.value. Each entry defines a[min, max)range, the human-readabletext(the bucket's label as defined by the scoring system), and acodingarray linking the bucket back to the intensity code.