SlimSlim/Project

List current project users

  • Sandbox: available
  • Staging: available
  • Production: unknown
GET
/v1/slim/project/users

Lists the practitioner memberships of your current project, with each member's user, profile, access policy and invite status. Use it to render a project's team list.

Auth: Bearer token for a practitioner, project admin or System Owner session. The caller's access policy must grant Practitioner:read (a project admin who holds no access policy skips this check). The session must carry a project. Scope: The caller's project (from the token).

Behaviour

  • Returns one row per ProjectMembership of profileType (Practitioner) that has both a user and a profile. Memberships whose user or profile cannot be resolved are left out.
  • status is Pending while the user has an unused invite or has never set a password, and Active otherwise.
  • accessPolicyId, profileId and userId narrow the memberships by exact id.
  • search is a fuzzy match over the profile name, the user name and the access policy name.
  • sortBy defaults to profileName and orderBy to ASC. Rows with an empty sort value go last in ASC and first in DESC.
  • Paging is in memory: page (default 0) and count (default 20, 1 to 100). total counts the rows after search, before paging.
  • Answers are cached for up to about a minute, so a member added or removed a moment ago can be missing or still listed.

Example

curl -X GET 'https://api.sandbox.ovok.com/v1/slim/project/users?sortBy=userName&orderBy=ASC&page=0&count=20' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'

Authorization

bearer
headerAuthorizationBearer <JWT>

Query Parameters

profileType?"Practitioner"
Default"Practitioner"
Value in"Practitioner"
sortBy?string
Default"profileName"
Value in"profileName""userName""accessPolicyName"
orderBy?string
Default"ASC"
Value in"ASC""DESC"
search?string
Length1 <= length
accessPolicyId?string
Length1 <= length
profileId?string
Length1 <= length
userId?string
Length1 <= length
page?string
Default"0"
count?string
Default"20"

Response Body

Project users retrieved successfully.

application/json
  1. response
total*number
Range0 <= value
page*number
Range0 <= value
count*number
Range1 <= value
resources*array<>
Example Request
curl -X GET 'https://api.sandbox.ovok.com/v1/slim/project/users'
Example Response
{  "total": 0,  "page": 0,  "count": 1,  "resources": [    {      "user": {        "resourceType": "User",        "id": "string",        "firstName": "string",        "lastName": "string",        "email": "string",        "project": {          "reference": "string",          "display": "string"        },        "meta": {          "project": "string",          "lastUpdated": "string"        }      },      "profile": {        "resourceType": "Practitioner",        "id": "string",        "name": [          {            "use": "string",            "text": "string",            "family": "string",            "given": [              "string"            ],            "prefix": [              "string"            ],            "suffix": [              "string"            ]          }        ],        "meta": {          "project": "string",          "lastUpdated": "string"        }      },      "membership": {        "resourceType": "ProjectMembership",        "id": "string",        "project": {          "reference": "string",          "display": "string"        },        "user": {          "reference": "string",          "display": "string"        },        "profile": {          "reference": "string",          "display": "string"        },        "accessPolicy": {          "reference": "string",          "display": "string"        },        "meta": {          "project": "string",          "lastUpdated": "string"        }      },      "status": "Active",      "accessPolicy": {        "resourceType": "AccessPolicy",        "id": "string",        "name": "string"      }    }  ]}

Update practitioner PUT

Updates a practitioner profile: name, surname, email, phone, address and photo. **Auth:** Bearer token. The caller must be a practitioner, an admin, a super admin, or hold the "System Owner" access policy. The access policy must grant `Practitioner:read`. Updating another practitioner's profile also needs `Practitioner:update`. An admin or super admin who holds no access policy skips the access-policy check. **Scope:** You can always update your own profile. Another practitioner must belong to your project, one of its sub-projects, or its parent project. ## Behaviour - The Practitioner resource is **replaced** with one built from the body. A field you omit is cleared, and FHIR fields that the body cannot carry are not kept. Send the full profile, for example the result of `GET /v1/slim/practitioner/{id}` with your changes applied. - `id` in the body is optional. When present it must equal the `id` in the path. - `meta` in the body is ignored. Ovok sets `meta.author` to the caller. - `email` is stored in lower case. - This route does not change roles or access policies. - Your own profile is written with your token. Another practitioner's profile is written with Ovok's admin client after the project check above passes. - The response is the updated profile. ## Example ```bash curl -X PUT 'https://api.sandbox.ovok.com/v1/slim/practitioner/87ea5dfc-8b8e-384d-8489-79496e706390' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "name": "Max", "surname": "Mustermann", "email": "max.mustermann@example.com", "phone": "+491234567890" }' ```

List child project relationships GET

Returns your current project together with its parent project and its direct child projects. Use it to build a project switcher or hierarchy view. **Auth:** Bearer token for a practitioner, project admin or System Owner session. The caller's access policy must grant `AccessPolicy:read` (a project admin who holds no access policy skips this check). **Scope:** The caller's project (from the token). ## Behaviour - `currentProject` is the caller's project. - `parentProject` is the project your project is a child of, or `null` when it has none. - `childProjects` lists every direct child, with no cap. Grandchildren are not included. - A child whose project no longer exists is left out. - Each project carries `name` (the project id when it has none), `address`, `contact` and `settings`. `settings.timeZone` defaults to `Europe/Berlin`; `settings.trendsPeriod` defaults to `start: "09:00:00"` and `durationSeconds: 86400`. - `GET /v2/slim/project/child` returns the same lists with a device count per project. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/project/child' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```