[api] Added first draft of the population statistics API.
parent
9d2b6bc948
commit
a916f9ba3c
@ -1,4 +1,4 @@
|
||||
API docs written in OpenAPI (swagger/redocly) format.
|
||||
# API docs written in OpenAPI (swagger/redocly) format
|
||||
|
||||
* API docs can be rendered into stand-alone HTML with: `npm start`.
|
||||
* API text can be linted with `npm test`
|
||||
|
||||
@ -0,0 +1,78 @@
|
||||
get:
|
||||
tags:
|
||||
- population
|
||||
operationId: "populationStatistics"
|
||||
summary: "Get a population count divided by items like age, preferred doctor, etc."
|
||||
description: |-
|
||||
A table with at least two columns. The first column is a category of age, preferred doctor, etc. The second, the number of patients in the category. The category can be extended by several more group by items.
|
||||
|
||||
Patients who are no longer registrered are excluded, so only patients with an active registration are included. Patients without birthdate are excluded (rare).
|
||||
parameters:
|
||||
- name: referenceDate
|
||||
in: query
|
||||
required: true
|
||||
schema:
|
||||
type: "string"
|
||||
pattern: "\\d\\d\\d\\d-\\d\\d-\\d\\d"
|
||||
format: "date"
|
||||
description: ISO formatted date
|
||||
example: 2015-12-15
|
||||
- name: groupByItems
|
||||
in: query
|
||||
required: true
|
||||
style: form
|
||||
explode: false
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- age
|
||||
- preferredDoctor
|
||||
- insurer
|
||||
- gender
|
||||
- deprivedNeighborhood
|
||||
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 occurance is used. Only known ages are outputted. The insurer is outputted as an Uzovi (with name and concern). The most recent Uzovi table is used to convert codes to names and concerns. The sequence of the items in the URL is the same as the sequence in the grouping of the output."
|
||||
- name: insurer
|
||||
in: query
|
||||
style: form
|
||||
explode: false
|
||||
schema:
|
||||
$ref: ../schemas/insurer-Uzovi.yaml
|
||||
description: "Supply zero, one or more Uzovi's to limit the responses to certain insurer. Use 0 to select all patients without insurer registred. Supply the Uzovi code as an integer in a comma separated list, e.g. `insurer=101,211,3344`."
|
||||
- name: passerBy
|
||||
in: query
|
||||
schema:
|
||||
type: boolean
|
||||
description: "True to include passer-by patients. This also includes Medicom's noni patients. (Noni = niet op naam ingeschreven.) By default passer-by patients are excluded from the response."
|
||||
- $ref: '../zoo-api.yaml#/components/parameters/Authorization'
|
||||
responses:
|
||||
200:
|
||||
description: "The response body is a JSON-array with for each group, defined by a sequence of `groupByItem` query parameters, an object with a count `n`."
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
age:
|
||||
type: number
|
||||
example: 42
|
||||
preferredDoctor:
|
||||
$ref: '../schemas/PatIdentity.yaml#/doctor'
|
||||
insurer:
|
||||
$ref: '../schemas/PatIdentity.yaml#/insurer'
|
||||
gender:
|
||||
$ref: '../schemas/PatIdentity.yaml#/gender'
|
||||
n:
|
||||
type: number
|
||||
description: "The number of unique patients in the group."
|
||||
example: 7
|
||||
400:
|
||||
description: "Common HTTP semantics, see the response body."
|
||||
401:
|
||||
$ref: '../zoo-api.yaml#/components/responses/JwtFailure'
|
||||
403:
|
||||
description: "Indicated practice is known but has not authorized ZOO to share this information with signer."
|
||||
404:
|
||||
$ref: '../zoo-api.yaml#/components/responses/PatNotFound'
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
description: |-
|
||||
Insurer's identity number in the dutch insurance system (dutch: _UZOVI nummer_).
|
||||
|
||||
A value between 0 (no insurance) and 9999; these numbers are customary rendered as 4 digits. When rendering, we suggest callers to left-pad with zeroes.
|
||||
type: number
|
||||
example: 0211
|
||||
Loading…
Reference in New Issue