Compare commits

...

3 Commits

@ -2,10 +2,11 @@ get:
tags:
- Population statistics
operationId: populationStatistics
summary: Population group-by
summary: Common statistics
description: |-
Groups the patient population by any combination of age, preferred doctor, etc. and calculates the count of each category.
parameters:
- $ref: '../zoo-api.yaml#/components/parameters/AgbSubject'
- $ref: '../zoo-api.yaml#/components/parameters/RefDateDefaultToday'
- name: groupByItems
in: query
@ -14,12 +15,7 @@ get:
type: array
minItems: 1
items:
type: string
enum:
- age
- preferredDoctor
- insurer
- gender
$ref: '../schemas/StatisticsGroupBy-enum.yaml'
description: |-
Several items can be added to the group by using a comma separated list, e.g. `groupByItems=gender,age`.
If an item is twice or more repeated the first occurrence is used.

@ -0,0 +1,53 @@
get:
tags:
- Population statistics
operationId: getStatisticsAuthorisation
summary: Authorisation
description: Reports the authorisations for group-by items for the specified practice(s). Care groups are allowed to query the authorisations of the underlying practices. Practices are always allowed to access their own population statistics, therefore authorisation applies only to care groups wanting to access a practice statistics object (group-by item).
parameters:
- name: agbs
in: query
schema:
type: array
items:
$ref: ../schemas/agb.yaml
required: true
description: The agb of the practice(s) for which the authorisations should be reported.
responses:
200:
description: An array with for each practice an object describing the authorisation settings for the care group.
content:
application/json:
schema:
type: array
items:
type: object
properties:
practice:
$ref: '../schemas/agb.yaml'
caregroups:
type: array
items:
type: object
properties:
tag:
$ref: ../schemas/tag.yaml
agb:
$ref: '../schemas/agb.yaml'
groupBy:
type: array
items:
type: object
properties:
item:
$ref: ../schemas/StatisticsGroupBy-enum.yaml
description: All possible enum values are always in the output.
active:
type: boolean
description: True if authorised, otherwise false.
400:
$ref: '../zoo-api.yaml#/components/responses/ReqFailure'
401:
$ref: '../zoo-api.yaml#/components/responses/JwtFailure'
404:
$ref: '../zoo-api.yaml#/components/responses/PatNotFound'

@ -0,0 +1,56 @@
post:
tags:
- Population statistics
operationId: setGroupByItemCareGroup
summary: Authorisation
description: |-
Set the authorisation for statistic group-by items for care groups. This enables or disables the statistic for use by the care group. Only when the API-user is authorized as the practice the settings may be changed.
parameters:
- name: item
in: path
schema:
$ref: '../schemas/StatisticsGroupBy-enum.yaml'
required: true
- name: tag
in: path
schema:
$ref: '../schemas/tag.yaml'
- $ref: '../zoo-api.yaml#/components/parameters/AgbSubject'
required: true
description: AGB of the practice for which the authorisation should be set. This should match the JWT-authorisation.
- name: active
in: query
schema:
type: boolean
required: true
description: True to set the authorisation, false to remove.
- name: employee
in: query
schema:
type: string
description: The employee that is adding the authorisation. Any string is accepted, but it is recommended to use a employee code derived from this API.
required: true
responses:
'200':
description: The response parrots the request, except for the `employee` and `timestamp` properties. If the authorisation is changed the `employee` and `timestamp` from the request are responded, but if the request didn't change the authorisation, then the `employee` and `timestamp` from the last change are in the payload.
content:
application/json:
schema:
type: object
properties:
employee:
type: string
timestamp:
$ref: ../schemas/dateTime.yaml
agb:
$ref: ../schemas/agb.yaml
authorizedFor:
$ref: '../schemas/StatisticsGroupBy-enum.yaml'
tag:
$ref: '../schemas/tag.yaml'
enddate:
$ref: '../schemas/date.yaml'
'401':
$ref: '../zoo-api.yaml/#/components/responses/NoAuth'
'403':
$ref: '../zoo-api.yaml/#/components/responses/NoAccess'

@ -5,6 +5,7 @@ get:
summary: Deprived neighborhood, patients
description: The list of patients belonging to one of the categories, see `neighborhood` below.
parameters:
- $ref: '../zoo-api.yaml#/components/parameters/AgbSubject'
- $ref: '../zoo-api.yaml#/components/parameters/RefDateDefaultToday'
- name: neighborhood
in: path

@ -3,22 +3,19 @@ get:
- Population statistics
operationId: groupByItems
summary: Group-by items
parameters:
- $ref: '../zoo-api.yaml#/components/parameters/AgbSubject'
required: true
responses:
200:
description: |-
Returns a list of all available group-by items for the _population group-by end point_, but only if the items are available for the selected customer. A customer is selected by a JWT-claim or the AGB header. The output of this end point should be the same as the documentation for the groupByItems-parameter of the mentioned end point.
Returns a list of all available group-by items for the _common statistics_ end point, but only if the items are available for the customer with `agb`. The output of this end point should be the same as the documentation below.
content:
application/json:
schema:
type: array
items:
type: string
example:
- age
- preferredDoctor
- insurer
- gender
- deprivedNeighborhood
$ref: ../schemas/StatisticsGroupBy-enum.yaml
400:
$ref: '../zoo-api.yaml#/components/responses/ReqFailure'
401:

@ -0,0 +1,9 @@
description: Represents an object on which population statistics can be generated.
type: string
enum:
- age
- preferredDoctor
- insurer
- gender
- deprivedNeighborhood
example: age

@ -0,0 +1,3 @@
type: string
example: HZK
description: A tags represents some entity in which the practice can be classified, e.g. care group or district. The empty tag represents the practice itself.

@ -55,8 +55,6 @@ paths:
$ref: 'paths/patient_fundusByPractice.yaml'
/population/statistics:
$ref: 'paths/population_statistics.yaml'
/population/statistics/groupByItems:
$ref: 'paths/population_statistics_groupByItems.yaml'
/population/statistics/deprivedNeighborhood:
$ref: 'paths/population_statistics_deprived.yaml'
/population/statistics/deprivedNeighborhood/{neighborhood}:
@ -69,6 +67,14 @@ paths:
$ref: 'paths/population_frequentUser_patients.yaml'
/population/frequentUser/patient:
$ref: 'paths/population_frequentUser_patient.yaml'
/population/statistics/authorisation:
$ref: 'paths/population_statistics_authorisation.yaml'
/population/statistics/authorisation/{item}/practice:
$ref: 'paths/population_statistics_authorisation_{item}_practice.yaml'
/population/statistics/authorisation/{item}/caregroup/{tag}:
$ref: 'paths/population_statistics_authorisation_{item}_caregroup_{tag}.yaml'
/population/statistics/groupByItems:
$ref: 'paths/population_statistics_groupByItems.yaml'
/qoc/careprogram:
$ref: 'paths/qoc_careprogram.yaml'
/qoc/checkupList/{setKey}:
@ -127,6 +133,13 @@ components:
required: false
schema:
$ref: schemas/agb.yaml
AgbSubject:
name: agb
in: query
schema:
$ref: schemas/agb.yaml
description: |-
The AGB of the practice for which the operation is executed. In other words: the subject of the operation. It is expected that the AGB is the same as the AGB of the logged in practice or one of the AGB's of the care group its practices.
Pretty:
name: pretty
in: query
@ -245,5 +258,3 @@ components:
<tr><td>exp</td><td>Expires at</td><td><i>OPTIONAL</i> If included, the request must not be received after this time. May be up to 10 minutes in the future. The difference between the exp claim and the iat must be 20 minutes or less and iat &lt; exp. </td></tr>
<tr><td>nbf</td><td>Not before</td><td><i>OPTIONAL</i> If included, the request must not be received before this time. Should not be set in the future.</td></tr>
</table>

Loading…
Cancel
Save