Skip to main content

Read a Patient’s Signals thresholds

MethodPath
GET/v1/signals/patients/:patientId/thresholds

Shared authentication, project scope, and response conventions.

Lists the thresholds Signals currently holds for one enrolled Patient. This is a live read from Signals; Ovok does not derive these values from Observation data.

Requirement or resultDetails
Access policysignals_config:read and Patient read
Input:patientId is the Ovok/Medplum Patient id. No query or body.
Success200 with patientId and a thresholds array
409signals_patient_not_enrolled if the Patient has no Signals enrollment.
404Patient does not exist, belongs to another project, or is not readable by the caller.

Each threshold row has these fields:

FieldMeaning
codeMeasurement code or key that the band applies to.
low, highNumeric bounds; null means that side is unbounded or cannot be represented as an absolute band.
editablefalse when the stored rule is not a plain absolute band Ovok can safely replace, such as a rule using constants or a certified algorithm score.
version, updatedAtSignals' rule version and last update time; either can be null.
sourceorganization, individual, auto, or unknown, based on the band metadata.

An editable: false row is informational. Do not try to replace it through the threshold PUT route.

curl --request GET \
--url 'https://api.sandbox.ovok.com/v1/signals/patients/3f1c2b7e-8d4a-4c1e-9b2f-6a7d5e4c3b21/thresholds' \
--header "Authorization: Bearer ${OVOK_TOKEN}"