{ "status": "success", "message": "…", "errors": null, "data": { } }| Field | Type | Description |
|---|---|---|
status | string | "success" or "error" |
message | string | Human-readable summary of the outcome |
errors | object · null | Per-field validation errors (field name → array of messages) |
data | object · null | The payload — shape depends on the endpoint |
{
"success": true,
"draftTestId": "1e7adfef-4ffa-4e9b-bde5-49c1f1ab06ae",
"itemsMapped": 30, "itemsRejected": 1, "itemsMissing": 1,
"rejectedItems": [ { "entryUrl": "urn:uuid:…", "rejectionReason": "…", "conceptName": "…", "resourceType": "Observation" } ],
"missingItems": [ { "conceptId": 3004249, "name": "Systolic blood pressure" } ]
}| Field | Type | Description |
|---|---|---|
success | boolean | Whether the draft was created |
draftTestId | string (GUID) | ID of the created test — use for run / result / report calls |
itemsMapped | integer | Parameters recognized and stored (max 32) |
itemsRejected | integer | Entries refused — unknown code, invalid status, or out-of-range value |
itemsMissing | integer | Expected parameters absent from the bundle |
rejectedItems | array | One entry per rejection: entryUrl (the bundle entry's fullUrl), rejectionReason, plus conceptId, conceptName, code, vocabularyId, resourceType, valueNumber, valueText, unit |
missingItems | array | Missing parameters, each with conceptId and name |
{
"testId": "901804f2-566f-4dc4-af33-7beb6432073c",
"patientId": "2307",
"riskScore": 0.4990, "riskLevel": "High",
"recommendation": "Coronary CT angiography (CCTA) … is recommended",
"completedAt": "2026-07-20T19:08:40Z",
"warnings": [], "expectedPrevalence": 0.14
}| Field | Type | Description |
|---|---|---|
testId | string (GUID) | The CCS test identifier |
patientId | string | Patient identifier from your FHIR bundle |
riskScore | number (0–1) | Model output — probability-like coronary risk score |
riskLevel | string | "Low" · "Intermediate" · "High" — localized via language |
recommendation | string | ESC-guideline-based clinical recommendation, localized |
completedAt | string (ISO 8601) | When the model run completed |
warnings | array of string | Validation warnings (empty on a clean run) |
expectedPrevalence | number | Population baseline for comparison (e.g. 0.14) |
data.organization.{
"organizationId": "550e8400-…", "organizationName": "Organization Name",
"contactEmail": "admin@organization.com", "accessLevel": 2,
"isActive": true, "rateLimitPerHour": 1000,
"allowedIpAddresses": "10.0.0.0/8", "totalApiCalls": 2847
}| Field | Type | Description |
|---|---|---|
organizationId | string (GUID) | Unique organization identifier |
organizationName | string | Display name |
contactEmail | string | Administrative contact |
accessLevel | integer | Feature tier granted to the organization |
isActive | boolean | Whether the account can authenticate |
rateLimitPerHour | integer | Hourly API call allowance |
allowedIpAddresses | string (CIDR) | IP allowlist, if configured |
totalApiCalls | integer | Lifetime call counter |
createdAt / updatedAt / lastAccessedAt | string (ISO 8601) | Account timestamps |
{
"status": "success", "message": "PDF report generated successfully",
"pdfContent": "JVBERi0xLjQK…",
"ccsTestId": "b4f1a1d4-…",
"filename": "CardioExplorer_Report_b4f1a1d4_20260720.pdf"
}| Field | Type | Description |
|---|---|---|
status / message | string | Standard envelope fields |
pdfContent | string (base64) | The PDF file, base64-encoded (~33% larger than the binary) |
ccsTestId | string (GUID) | Test the report belongs to |
filename | string | Suggested filename |
{ "status": "error", "message": "Invalid client credentials", "errors": null, "data": null }{ "warnings": [ "SystolicBloodPressure is required" ] }| Shape | Used by | Fields |
|---|---|---|
| Envelope error | Authentication endpoints | status: "error", message, errors (per-field), data: null |
| Simple error | CCS endpoints | message — or warnings[] on validation failures |