Signals API - Patients

Get one patient

  • Sandbox: available
  • Staging: available
  • Production: unknown
GET
/v1/signals/api/patient/{id}

The patient with its config, triggers keyed by code. A SUBMITTER or SUBSCRIBER reads only patients it is attached to.

Through ovok

  • Who can call it: Manager apps and Submitter apps, and users whose access policy grants the capabilities.
  • Capabilities, all required: signals_patients:read. Project admins have every capability; client applications get no admin bypass.
  • If your access covers only some patients (anyone but project admins, manager or submitter apps, and anyone whose Patient access has no criteria), the patient must be one you can read. A patient is named by its Signals id, or by its Medplum Patient id where Signals takes a refId; ovok asks Signals which patient a Signals id is.

Authorization

headerAuthorizationBearer <JWT>

Path Parameters

id*string

The Signals patient id.

Response Body

The patient.

application/json
  1. response
id*string
tenantId*string
refId*string

The caller's own identifier for this patient.

name*string
submitters*array<string>

Client ids permitted to post readings.

subscribers*array<string>

Client ids permitted to read the record.

alertIfEmpty*boolean

Raise an alert when a reading carries no value.

alertIfNote*boolean

Raise an alert when a reading carries a note.

alertInactiveDays*number
alertsPaused*boolean

Whole-patient mute. True silences every decision the evaluator would raise for this resident until the flag is cleared; existing open alerts stay open.

metadata*

Free-form. project scopes the patient to a facility.

configUpdatedAt*string
Formatdate-time
lastSeenAt*string
Formatdate-time
createdAt*string
Formatdate-time
updatedAt*string
Formatdate-time
email?string

Absent when unset, as in v1.

bsn?string

Dutch citizen service number. Absent when unset.

umoId?string

Absent when unset.

dateOfBirth?string

The day at UTC midnight, v1's serialisation. Accepted as yyyy-MM-dd, dd-MM-yyyy or dd/MM/yyyy. Absent when unset.

tags?

Labels with alphanumeric keys, filterable on the patient and alert lists with tags[key]=a,b. Absent when unset.

manager?string

The id of the client that created the patient.

_id*string

The same value as id, under v1's name.

tenant*string

The tenant id, under v1's name.

config*
Example Request
curl -X GET 'https://api.sandbox.ovok.com/v1/signals/api/patient/string'
Example Response
{  "id": "string",  "tenantId": "string",  "refId": "string",  "name": "string",  "submitters": [    "string"  ],  "subscribers": [    "string"  ],  "alertIfEmpty": true,  "alertIfNote": true,  "alertInactiveDays": 0,  "alertsPaused": true,  "metadata": {},  "configUpdatedAt": "2019-08-24T14:15:22Z",  "lastSeenAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z",  "email": "string",  "bsn": "string",  "umoId": "string",  "dateOfBirth": "string",  "tags": {},  "manager": "string",  "_id": "string",  "tenant": "string",  "config": {    "alertIfEmpty": true,    "alertIfNote": true,    "alertInactiveDays": 0,    "updatedAt": "2019-08-24T14:15:22Z",    "triggers": {      "property1": {        "code": "string",        "system": "string",        "display": "string",        "valueKey": "string",        "constants": {},        "logic": {},        "metadata": {},        "version": 0,        "updatedAt": "2019-08-24T14:15:22Z"      },      "property2": {        "code": "string",        "system": "string",        "display": "string",        "valueKey": "string",        "constants": {},        "logic": {},        "metadata": {},        "version": 0,        "updatedAt": "2019-08-24T14:15:22Z"      }    }  }}

Resolve refIds to Signals ids GET

An object from each `patientRefId` this tenant holds to its Signals id. A refId the tenant does not hold is left out rather than failing the request. ### Through ovok - **Who can call it:** Manager apps, and users whose access policy grants the capabilities. - **Capabilities, all required:** `signals_patients:read`. Project admins have every capability; client applications get no admin bypass. - If your access covers only some patients (anyone but project admins, manager or submitter apps, and anyone whose Patient access has no criteria), name them with `patientRefId`, each one you can read, at most 100. Signals then pages over just those patients, so pages and totals stay true. A patient is named by its Signals id, or by its Medplum Patient id where Signals takes a `refId`; ovok asks Signals which patient a Signals id is.

Update a patient POST

Only the fields present are changed; `metadata` is merged, not replaced. Answered with the v1 document. ### Through ovok - **Who can call it:** Manager apps, and users whose access policy grants the capabilities. - **Capabilities, all required:** `signals_patients:update`. Project admins have every capability; client applications get no admin bypass. - When you send `submitters` or `metadata`, ovok keeps your project's submitter and stamp in them. Sending `alertsPaused`, `alertIfEmpty`, `alertIfNote` or `alertInactiveDays` also needs `signals_config:update` and `signals_silence:update`. - If your access covers only some patients (anyone but project admins, manager or submitter apps, and anyone whose Patient access has no criteria), the patient, and one a `refId` in the body names, must be ones you can update. A patient is named by its Signals id, or by its Medplum Patient id where Signals takes a `refId`; ovok asks Signals which patient a Signals id is.