StandaloneAPI referencePatients

Update a patient

Update a patient, through Ovok's Signals gateway.

Update a patient

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

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.

Request

Path parameters

NameTypeRequiredDescription
idstringYesThe Signals patient id.

Body

Required. Schema UpdatePatientDto.

FieldTypeRequiredDescription
refIdstringNov1 let an update move the patient to a new refId; one another patient holds is a 409.
namestringNo—
submittersarray of stringNo—
subscribersarray of stringNo—
alertIfEmptybooleanNo—
alertIfNotebooleanNo—
alertInactiveDaysnumberNo—
alertsPausedbooleanNo—
metadataobjectNoMerged into the existing metadata, not replaced — a write that omits project does not clear the stamp.
emailstringNo—
bsnstringNo—
umoIdstringNo—
dateOfBirthstringNo—
tagsobjectNo—

Responses

StatusMeaning
200The patient as it now stands.
400A path value holds a character ovok does not send to Signals, such as a raw : or +. Percent-encode it. The query carries a raw #, or more than 200 parameters.
401Your ovok access token, or your client id and secret, are missing or invalid.
403ovok refused the call: you lack a capability this route needs, or your session has no project, or a patient is stamped with another project, or you can read a patient the call names but not update it. From Signals: Authenticated, but the client's role does not permit this, or it is not attached to the patient.
404A patient the call names is not one you can read. From Signals: No such patient in this tenant.
409Your project has no Signals tenant of its own (SIGNALS_TENANT_NOT_OWN), or it is moving to another one. From Signals: Another patient in this tenant already has that refId.
415The body is not JSON.
422A number in the body is out of range. A patient id is not 1 to 64 letters, digits, ., _, ~ or -. From Signals: The payload failed validation.
429Too many requests. Retry after the seconds in Retry-After.
500ovok hit an unexpected fault, such as your project having no Signals submitter.
502Signals answered with something ovok couldn't use, or refused ovok's own credential.
503Signals is unavailable. Retry after the seconds in Retry-After.
504Signals did not answer in time.

Example

curl --request POST 'https://api.sandbox.ovok.com/v1/signals/api/patient/:id' \
  --user "${OVOK_CLIENT_ID}:${OVOK_CLIENT_SECRET}" \
  --header 'Content-Type: application/json' \
  --data @body.json

Last updated on

On this page