You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zoo-api/paths/customer_careprogram.yaml

106 lines
5.1 KiB
YAML

get:
operationId: getCustomerCareProgram
tags:
- Customer management
summary: All practices and their participation in care programs.
description: |-
Enumerates all practices for which the current customer (user) is responsible in the care group. The customer identified with the JWT must be the group manager, otherwise the API will respond with a HTTP not authorized response. The care group must also be responsible for the underlying practices. Some care groups are organized in a way that they are not allowed to process data of the member practices. These groups are ignored by this API and produce empty output.
parameters:
- name: refDate
in: query
$ref: ../schemas/date.yaml
description: If omitted, today is taken.
responses:
'200':
description: All practices for which the care group takes responsibility.
content:
application/json:
schema:
type: array
items:
type: object
properties:
practice:
description: The name of the practice.
type: string
careprograms:
type: array
items:
$ref: '../schemas/CareProgram-enum.yaml'
example:
- DM
- COPD
gpis:
$ref: '../schemas/GPIS.yaml'
'401':
$ref: '../zoo-api.yaml/#/components/responses/NoAuth'
'403':
$ref: '../zoo-api.yaml/#/components/responses/NoAccess'
post:
tags:
- Customer management
operationId: setCustomerCareProgram
summary: Adds a practice to a care program.
description: |-
Allows a care group manager to classify practices into care groups (ziektebeelden, ketens).
The caller must authorize itself as a care group (manager). If this requirement is not met, a 403 response is send back.
The care group must be allowed to take responsibility for the practices it holds. If not, the request is ignored and an empty Json-object is send back to the caller. Indicating that processing was not successful. The practice must be one of the care group practices. If not, the request is ignored and an empty Json-object is send back to the caller. In all other cases a Json-object containing the same data as in the request with a timestamp added is send back in the response.
The operation is idempotent for the combination of: `careprogram`, `agb`, `periodStart` and `periodEnd`. If these are the same in any _subsequent call_ the request is processes as being fully accepted, showing the request data in the response, but the `employee` and `timestamp` aren't updated in the database. The timestamp of the original submit to this API is added to the response.
requestBody:
content:
'application/x-www-form-urlencoded':
schema:
type: object
properties:
careprogram:
description: The kind of care program that the practice participates in.
$ref: '../schemas/CareProgram-enum.yaml'
agb:
description: The AGB of the practice (not the doctor).
$ref: '../schemas/agb.yaml'
periodStart:
description: |-
If `periodEnd` is supplied, then the `periodStart` must meet the condition that `periodStart` < `periodEnd`. The period starts on `periodStart` and ends on the day before `periodEnd`, so the start date is inclusive and end date exclusive.
$ref: ../schemas/date.yaml
periodEnd:
description: See `periodStart`.
$ref: ../schemas/date.yaml
employee:
type: string
description: The employee that is adding the practice. Any string is accepted, but it is recommended to use a employee code derived from this API.
required:
- careprogram
- agb
- periodStart
- employee
responses:
'200':
description: |-
If and only if, the request was successful processed down to the database, a Json-object with the following properties is send back to the caller, otherwise an empty Json-object.
The API is idempotent for the combination of `careprogram`, `agb`, `periodStart`, `periodEnd`. If an attempt is made to store such a combination again, then the response is like a successful response, but the employee and timestamp are of the previous request.
content:
'application/json':
schema:
type: object
properties:
careprogram:
$ref: '../schemas/CareProgram-enum.yaml'
agb:
$ref: '../schemas/agb.yaml'
periodStart:
$ref: ../schemas/date.yaml
periodEnd:
$ref: ../schemas/date.yaml
employee:
type: string
timestamp:
$ref: ../schemas/dateTime.yaml
'401':
$ref: '../zoo-api.yaml/#/components/responses/NoAuth'
'403':
$ref: '../zoo-api.yaml/#/components/responses/NoAccess'