SlimSlim/Query

List devices with telemetry (compatibility)

  • Sandbox: available
  • Staging: available
  • Production: unknown
GET
/v1/slim/query

Compatibility route for older query clients. Returns device rows joined with their resident, location, zone and telemetry. For new integrations, use GET /v1/slim/device/live or the /v1/slim/patient routes.

Auth: bearer token. The caller must be a practitioner, an admin or a System Owner, and needs search and read on Patient, Device, Location, Observation and Organization. Scope: the caller's project (from the token). The project parameter is ignored.

Behaviour

  • mustInclude lists the resources a row must have to be returned. shouldInclude lists the resources added to each row when present. Both are comma-separated lists of organization, device, location, patient and telemetry.
  • Every entry in mustInclude must also be in shouldInclude. telemetry in either list needs device in the same list.
  • When mustInclude contains patient, the query runs on the older resident-oriented path, which reads telemetry from the device database and Redis. Otherwise it runs on the same path as GET /v1/slim/device/live.
  • Without includeUnassigned=true, rows without a resident are left out when patient is required.
  • organization takes Organization/<id>, assigned or unassigned.
  • page is zero-based. count defaults to 20, maximum 100.
  • The route returns 503 when the server is at capacity for live reads or the device list cannot be built. Retry shortly.

Example

curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query?mustInclude=device,telemetry&shouldInclude=organization,device,location,patient,telemetry&page=0&count=20' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'

Authorization

bearer
headerAuthorizationBearer <JWT>

Query Parameters

sortBy?string
Default"locationName"
Value in"effectiveHeartRate""effectiveRespiratoryRate""effectiveSleepStatus""name""deviceName""locationName""patientName""patientNickname""organizationName""admissionDate""dischargeDate""search"
orderBy?string
Default"ASC"
Value in"ASC""DESC"
search?string
deviceId?string

Restrict results to a single device (matched against the device identifier).

Length1 <= length
project?string

project is ignored for scoping; server uses auth token project only.

MatchProject\/\S+
effectiveSleepStatus?string
Value in"disconnected""connected""awake""away""asleep"
organization?|
residentState?string
Value in"active""discharged-recent""discharged""archived"
includeUnassigned?string
page?string
Default"0"
count?string
Default"20"
mustInclude*string
shouldInclude*string

Response Body

Query results retrieved successfully.

application/json
  1. response
total*number
resources*array<unknown>
Example Request
curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query?mustInclude=string&shouldInclude=string'
Example Response
{  "total": 0,  "resources": [    null  ]}

Update a project PUT

Updates a project's name, address, contact and settings, and returns the updated project. Use it to edit your project or one of its child projects. **Auth:** Bearer token of a project admin (`ProjectMembership.admin`). **Scope:** The project in the path. It must be the caller's project (from the token) or a direct child of it. ## Behaviour - Sets the project `name` and replaces the organization stored inside the project with one built from `name`, `address`, `contact` and `settings`. This is a full replace, not a merge: - an omitted `address` or `contact` clears it; - an omitted `settings.timeZone` resets the time zone to `Europe/Berlin`; - an omitted `settings.trendsPeriod` removes the stored trends period, so reads fall back to the default. - `id` and `extension` in the body are ignored. The project comes from the path. - `settings.trendsPeriod.start` must be `HH:MM:SS`. - The response has the shape of `GET /v1/slim/project/{id}`. ## Example ```bash curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/project/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "name": "My Medical Project", "address": [{ "line": ["Hauptstrasse 1"], "city": "Berlin", "postalCode": "10115", "country": "DE" }], "settings": { "timeZone": "Europe/Berlin", "trendsPeriod": { "start": "09:00:00", "durationSeconds": 86400 } } }' ```

List telemetry and alerts (compatibility) GET

Compatibility route for older live polling clients. Returns telemetry and alerts maps keyed by device identifier. For new integrations, use `GET /v1/slim/device/live/telemetry`. **Auth:** bearer token. The caller must be a practitioner, an admin or a System Owner, and needs `search` and `read` on `Patient`, `Device`, `Location`, `Observation` and `Organization`. **Scope:** the caller's project (from the token). The `project` parameter is ignored. ## Behaviour - Takes the same query parameters as `GET /v1/slim/query`, with the same validation rules. - Returns `total`, plus `telemetry` and `alerts` for the requested page only. - `alerts` has an entry for every device on the page. `telemetry` has an entry only for devices with telemetry. - The route returns 503 when the server is at capacity for live reads or the device list cannot be built. Retry shortly. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query/telemetry?mustInclude=device,telemetry&shouldInclude=device,telemetry' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```