Signals with Ovok gotchas
What to know before relying on Signals in an Ovok app: which readings are sent, retries and gaps, episodes, annotation limits and access.
Which readings reach Signals
- Your project needs its own Signals tenant. On the shared tenant, both settings stay off and turning one on answers
409SETTING_NOT_AVAILABLE. - Only created Observations.
SIGNALS_SEND_AUTOsends an Observation when it is created through the FHIR API. Updating one sends nothing. To correct a reading, create a new Observation. - Some are skipped. An Observation whose
subjectis not aPatient, one withstatusentered-in-errororcancelled, and one carrying anovok-event-idor Signals identifier are not sent. - Ingest is separate. Readings from Data Ingestion are sent by the ingest path, whatever
SIGNALS_SEND_AUTOsays. Turning the setting off does not stop them. - The first reading enrols the patient. You need
$enable-signalsonly to enrol a patient before any reading, for example to set their thresholds first. - The same reading twice is judged once. Signals ignores a reading it already has within an hour.
Retries and gaps
- About 34 minutes of retries. If Ovok or Signals is down, the notification for a new Observation is retried for about 34 minutes. A longer outage loses that reading for Signals. The Observation stays in FHIR; it is not sent again later, and nothing replays it.
- Deleting the Subscription stops sending. The Subscription tagged
signals-send-autois Ovok's. If it is deleted through the FHIR API, sending stops for the project; saveSIGNALS_SEND_AUTOagain to re-create it. - No backfill.
SIGNALS_ANNOTATE_OBSERVATIONSwrites alerts raised after it is turned on, not earlier ones.
Alerts, episodes and annotations
- Episodes need
episodicAlerts. With it off for your tenant, Signals records no episodes: you getDetectedIssues but noFlags, and episode feeds stay empty. Turning it off empties them. - Coarse grading.
severityis alwaysmoderate, andinterpretationis onlyH,LorA. Signals' bands have no critical limits, so there is noHHorLL. - Not every alert has a reading. A reading Ovok did not keep in FHIR, such as a realtime tick from a device, gives a
DetectedIssuewith noimplicated. Note, empty-reading and inactivity alerts never annotate an Observation. - Events can arrive out of order. Ovok merges them by Signals' alert version, so the stored
DetectedIssueis always the newest.implicatedandmitigationonly grow, and a closedFlagnever reopens. - Old Flags. Projects that used Ovok before 2026-10-15 can hold Flags from an older Ovok marker. Search episodes with
identifier=https://signals.actimi.com/episode|. - Patients created through the standalone API. Annotations cover every alert of your tenant and name the patient as
Patient/<refId>. For a patient you create through the standalone API, use its FHIR Patient id asrefId, or itsDetectedIssuepoints at no Patient. A project that uses only the standalone API should switch both settings off.
Writing and access
- Don't write
DetectedIssueorFlagyourself. Ovok owns them, and a raw write never reaches Signals. Acknowledge an alert through the Slim notification routes or the standalone acknowledge route; theDetectedIssuethen gains anAcknowledgedmitigation. - Thresholds live in Signals. Change them through the Slim threshold routes. Editing a
GoalorCarePlandirectly never reaches Signals. - Grant read on
DetectedIssueandFlag. Roles that should see alerts need both in their access policy. Integration applications have them; Manager and Submitter applications hold Signals capabilities only. $enable-signalsneeds two grants. The caller needssignals_config:updateand Patientupdate. Project admins have both; a new Manager or integration application has only one.
Related
Last updated on