Skip to main content

Signals integration

The SDK provides typed methods and hooks for patient enrollment, thresholds, alert episodes, raw alerts, alert notes, and Signals settings. Ovok and Signals own the server-side evaluation workflow; the SDK presents the supported application API.

const enabled = await client.enableSignalsForPatient(patientId);
const thresholds = await client.getSignalsThresholds(patientId);
const alerts = await client.listSignalsAlerts({ status: 'OPEN', limit: 25 });

if (alerts.items[0]) {
await client.acknowledgeSignalsAlert(alerts.items[0].id);
}

Use editable and source on threshold results to decide which controls to show. The server remains responsible for permission checks. When changing or removing a threshold, follow the documented reason requirements and let the backend return authoritative validation errors.

Observations and forwarding​

Continue writing clinical measurements through the SDK's Observation or measurement APIs. For patients enrolled in Signals, Ovok forwards eligible readings according to the documented forwarding behavior. Do not infer which measurement codes are forwarded or create a second, direct submission path. Check the current Signals integration guide and data ingestion guide for the current behavior.

The SDK's Signals methods are for the connected Signals workflows; they do not turn the SDK into a medical device or determine an integrator's regulatory position. For intended purpose and product context, follow Working with Signals.

Errors​

Signals operations may reject with SignalsError. Use isSignalsError(error) and inspect its structured fields (status, code, and field errors) to choose a retry or user message. Do not retry every failure: permission and validation errors need a different response from temporary service failures.