get: operationId: getCustomerCareProgram tags: - Customer management summary: Practices and care programs description: |- Gets all practices of a care group and their participation in any care program. 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. The care group must 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. For these care groups no practices are shown. If the JWT identifies a single practice, then API runs in bare mode. The response in this mode has the same structure, but the list of care programs of the care group is always empty and the list of practices holds exactly one practice. parameters: - name: refDate in: query description: If omitted, today is taken. schema: $ref: ../schemas/date.yaml responses: '200': description: All practices for which the care group takes responsibility. content: application/json: schema: type: object properties: caregroup: type: object properties: name: type: string description: |- Identifying tag name of the care group. In bare mode the first of possible several care groups is written in the response (see above for bare mode). example: demo_fabel careprograms: description: |- All care programs contracted by the care group. Subtract from this set the active care programs from any practice reported in `practices` to know which care programs they may want to activate. Empty array in bare mode (see description above). example: - OuderenZorg - DM - COPD - HVZ - VVR type: array items: $ref: '../schemas/CareProgram-enum.yaml' practices: type: array items: type: object properties: agb: $ref: ../schemas/agb.yaml name: type: string gpis: $ref: ../schemas/GPIS.yaml careprograms: type: array items: type: object properties: careprogram: $ref: '../schemas/CareProgram-enum.yaml' periodStart: $ref: ../schemas/date.yaml periodEnd: $ref: ../schemas/date.yaml active: type: boolean description: True if today is on or after `periodStart` and before `periodEnd`. required: - careprogram - periodStart - active '401': $ref: '../zoo-api.yaml/#/components/responses/NoAuth' '403': $ref: '../zoo-api.yaml/#/components/responses/NoAccess' post: tags: - Customer management operationId: setCustomerCareProgram summary: Add a practice to a care program. description: |- Allows a care group manager to configure which care programs are actively participated in by a GP practice. The caller must authorize itself as a care group (manager). 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 sent 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 sent back to the caller. In all other cases a Json-object containing the same data as in the request with a timestamp added is sent 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 processed as being fully accepted, showing the request data in the response, but the `employee` and `timestamp` aren't updated in the database. The timestamp and employee of the original submit to this API is included in the response instead of the provided values. 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 sent back to the caller, otherwise a non 200 HTTP response. content: 'application/json': schema: type: object properties: employee: type: string timestamp: $ref: ../schemas/dateTime.yaml careprogram: $ref: '../schemas/CareProgram-enum.yaml' agb: $ref: '../schemas/agb.yaml' periodStart: $ref: ../schemas/date.yaml periodEnd: $ref: ../schemas/date.yaml '401': $ref: '../zoo-api.yaml/#/components/responses/NoAuth' '403': $ref: '../zoo-api.yaml/#/components/responses/NoAccess'