For the complete documentation index, see llms.txt. This page is also available as Markdown.
Results
Fetching test results as FHIR documents: the download flow, how to read the Bundle structure, out-of-range and critical values, and failure scenarios.
Fetching results
When an order item reaches results.results_ready (via webhook), fetch the result:
GET /api/v1/results/{order_item_id}?test_taker_id={test_taker_id}
Both identifiers are required. test_taker_id arrives on every result webhook (and is recoverable from GET /api/v1/orders/{orderID} under items[].test_taker_ids).
The presigned download_url is valid for 15 minutes. Re-call the endpoint to mint a fresh URL rather than caching it. Each order item holds at most one panel, so a result is uniquely identified by its order_item_id.
To find results across your account (e.g. ready but unacknowledged), use the GET /api/v1/results index - see Managing orders.
Reading the FHIR document
The download is a FHIRBundle (JSON) containing three resource types:
DiagnosticReport - the panel: which observations it contains (result references), when it was collected (effectiveDateTime) and issued, and the subject patient.
Patient - the test taker's demographics as registered at activation.
Observation - one per biomarker: the code (test identifier and display name), valueQuantity (numeric value + unit), referenceRange (normal bounds), and interpretation (HL7 coding).
You mostly iterate the Bundle's entry array, pick out the Observation resources, and read value, unit, range, and interpretation from each.
Out-of-range results
Compare valueQuantity.value against referenceRange. In the example below, HDL Cholesterol is below normal, which you can observe from:
low: 40.0, high: 100.0
value: 35.2
interpretation code L ("Below low normal")
Interpretation codes follow HL7 table 0078: N normal, L below low normal, H above high normal, with LL / HH marking critical values.
Critical results - must be handled properly
Depending on the test supplier you may receive a results.escalation_raised webhook indicating the overall severity of the result set, with an escalation_level of not_escalated, very_low, low, medium, high, or very_high, and an acknowledgment_due_by deadline. In critical cases the interpretation field will typically carry HH or LL codes.