SlimSlim/Project

Update a project

  • Sandbox: available
  • Staging: available
  • Production: unknown
PUT
/v1/slim/project/{id}

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

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 } }  }'

Authorization

bearer
headerAuthorizationBearer <JWT>

Path Parameters

id*string
Formatuuid

Request Body

application/json
  1. body
id?string
Formatuuid
name*string
Length1 <= length
contact?array<>
address?array<>
extension?unknown
settings?

Response Body

The project was updated successfully.

application/json
  1. response
resourceType*"Project"
Value in"Project"
id*string
name*string
address?array<>
contact?array<>
settings?
Example Request
curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/project/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Example Response
{  "resourceType": "Project",  "id": "string",  "name": "string",  "address": [    {      "use": "work",      "type": "postal",      "text": "string",      "line": [        "string"      ],      "city": "string",      "district": "string",      "state": "string",      "postalCode": "string",      "country": "string"    }  ],  "contact": [    {      "telecom": [        {          "system": "email",          "use": "work",          "value": "string"        }      ],      "name": {        "use": "temp",        "prefix": [          "string"        ],        "given": [          "string"        ],        "family": "string",        "suffix": [          "string"        ]      },      "address": {        "use": "work",        "type": "postal",        "text": "string",        "line": [          "string"        ],        "city": "string",        "district": "string",        "state": "string",        "postalCode": "string",        "country": "string"      }    }  ],  "settings": {    "timeZone": "string",    "trendsPeriod": {      "start": "string",      "durationSeconds": 0    }  }}

Get a project GET

Returns a project's name, address, contact and settings. Use it to show or edit your project or one of its child projects. **Auth:** Bearer token. The caller's access policy must grant `AccessPolicy:read` and `AccessPolicy:update` (a project admin who holds no access policy skips this check). **Scope:** The project in the path. It must be the caller's project (from the token) or a direct child of it. ## Behaviour - `address` and `contact` come from the organization stored inside the project. - `name` falls back to the project id when the project has no name. - `settings.timeZone` defaults to `Europe/Berlin` when none is stored. - `settings.trendsPeriod` defaults to `start: "09:00:00"` and `durationSeconds: 86400` when none is stored. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/project/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```

List devices with telemetry (compatibility) GET

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 ```bash 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' ```