Compare commits

..

No commits in common. '39a950ac4b1e7b62217a0053a51d7bdf883db717' and 'c7b85c568b1cc651857597fddca97220c48d3a27' have entirely different histories.

@ -49,41 +49,11 @@ get:
schema:
type: string
enum: ['gp', 'specialist', 'unknown', '']
- name: ifNewerThan
in: query
required: false
description: |-
Useful to check if new data is available relative to an earlier request: Provide the same date as provided in a previous response's `refDate` value.
If no new data is available since then, a `206 - No Content` HTTP response is returned. Date without time part in ISO8601 format.
schema:
type: string
format: date
example: "1970-01-13"
- $ref: '../zoo-api.yaml#/components/parameters/Pretty'
- $ref: '../zoo-api.yaml#/components/parameters/RefDateDefaultToday'
- $ref: '../zoo-api.yaml#/components/parameters/CareGroup'
- $ref: '../zoo-api.yaml#/components/parameters/Authorization'
responses:
'206':
description: |-
No new data is available: No new group report has been constructed with a `refDate` newer than `ifNewerThan`.
'503':
description: The data cannot be provided, because EPD data has not been provided to Zorg op Orde, or ZOO has not had a chance to run the fundus calculations on this data.
content:
application/json:
schema:
type: object
required:
- agb
- regionName
properties:
agb:
description: |-
The same AGB as supplied via authentication or the `agb` parameter: The AGB of the care group being queried.
$ref: ../schemas/agb.yaml
regionName:
description: |-
A human readable name describing the care group being queried (The entity whose AGB code is sent as `agb`).
type: string
'200':
description: All patients where funduscopy status is relevant are returned.
content:
@ -101,7 +71,10 @@ get:
agb:
description: |-
The same AGB as supplied via authentication or the `agb` parameter: The AGB of the care group being queried.
$ref: ../schemas/agb.yaml
type: integer
format: int32
minimum: 1
maximum: 99999999
regionName:
description: |-
A human readable name describing the care group being queried (The entity whose AGB code is sent as `agb`).
@ -110,7 +83,6 @@ get:
$ref: ../schemas/date.yaml
example: '2024-04-01'
description: |-
The date when this report for the
The date used for all calculations: Any time spans are relative to this date, any measurement requirements
as stated in the care group's policies such as 'must be registered every year or cannot be considered' are applied
to this date, anything that occured after this date is ignored.

@ -42,51 +42,10 @@ get:
schema:
type: string
enum: ['gp', 'specialist', 'unknown', '']
- name: ifNewerThan
in: query
required: false
description: |-
Useful to check if new data is available relative to an earlier request: Provide the same date as provided in a previous response's `refDate` value.
If no new data is available since then, a `206 - No Content` HTTP response is returned. Date without time part in ISO8601 format.
schema:
type: string
format: date
example: "1970-01-13"
- $ref: '../zoo-api.yaml#/components/parameters/Pretty'
- $ref: '../zoo-api.yaml#/components/parameters/RefDateDefaultToday'
- $ref: '../zoo-api.yaml#/components/parameters/Authorization'
responses:
'206':
description: |-
No new data is available: The EPD has not provided new information since `ifNewerThan`, or Zorg op Orde has not had a chance to rerun the fundus calculations on newly provided EPD data.
'503':
description: The data cannot be provided, because EPD data has not been provided to Zorg op Orde, or ZOO has not had a chance to run the fundus calculations on this data.
content:
application/json:
schema:
type: object
required:
- practice
properties:
practice:
type: object
required:
- agb
- name
- gpis
- refDate
properties:
agb:
description: |-
The AGB code of the GP practice whose patients are provided in this object.
$ref: ../schemas/agb.yaml
name:
description: |-
A human readable name describing the GP practice (The entity whose AGB code is sent as `agb`).
type: string
gpis:
$ref: ../schemas/GPIS.yaml
refDate:
$ref: "../schemas/fundus-status.yaml#/properties/refDate"
'200':
description: All patients where funduscopy status is relevant is returned.
content:
@ -94,11 +53,18 @@ get:
schema:
type: object
required:
- practice
- refDate
- practice
properties:
dict:
$ref: '../schemas/TermsDictionary.yaml'
refDate:
$ref: ../schemas/date.yaml
description: |-
The date used for all calculations: Any time spans are relative to this date, any measurement requirements
as stated in the care group's policies such as 'must be registered every year or cannot be considered' are applied
to this date, anything that occured after this date is ignored.
example: '2024-04-01'
practice:
$ref: "../schemas/fundus-status.yaml"
'400':

@ -1,7 +1,7 @@
post:
tags:
- Quality of Care
operationId: setPatientCallupStatus
operationId: setPatientCallUpStatus
summary: Call-up status
description: Set call-up status for patients in a care program.
parameters:
@ -24,23 +24,13 @@ post:
properties:
careprogram:
description: |-
The kind of chronic care you want to set the call up status for.
The kind of chronic care that this care program caters to. Can be omitted in cases where this care program doesn't cover a generally accepted protocollized chronic care condition (Often, new research).
$ref: '../schemas/CareProgram-enum.yaml'
callUpStatus:
type: string
enum:
- byPolicy
- callUp
- dontCallUp
- scheduled
example: callUp
$ref: '../schemas/callUpStatus-enum.yaml'
employee:
$ref: ../schemas/employee-alias.yaml
quarter:
$ref: ../schemas/date.yaml
description: |-
Callup plans are specific to a single quarter and are returned only when asking for callup lists with this quarter
as the `refDate`. Defaults to 'next quarter' (i.e. on April 5th, would default to July 1st).
type: string
description: The employee that is setting the call-up status. Any string is accepted, but it is recommended to use a employee code derived from this API.
bsns:
type: array
items:

@ -1,35 +1,10 @@
get:
operationId: callupList
operationId: checkUpListSet
tags:
- Quality of Care
summary: Call-up status
description: |-
Load call-up status for patients in a care program.
Returns each patient in a care program along with the progress on required or suggested measurements indicated for this care program.
Also includes any custom callup policies as part of the response, and the callup plan for this quarter.
Every quarter, each patient is assigned a callup plan for just that quarter (it resets for every quarter). A callup plan
is either 'call them up' or 'do not call them up'. Most patients start off in an 'open' state where no decision on whether
to call them up has been made yet.
Callup policies are different: They aren't per quarter; instead they represent medical decisions that impact their chronic
care. For example, 'this patient is not available for checkups until next year', or 'this patient is an amputee; do not
consider a missing analysis of the feet as relevant'. They can have an explicitly chosen end date.
Call up plans have a default. Usually it is 'open' (no decision yet made on whether to call them up this quarter or not),
but explicitly set policies as well as implicit policies chosen by the care group can affect this. For example, if a
policy is set that the patient is not available for a few quarters, the plan defaults to 'do not call up' instead.
To enable making clear to the user via the UI exactly what choices have been made, the API services differentiates between
what the default behaviour of a plan is; this is called the `byPolicy` plan - versus what the user explicitly chose.
In other words, a patient that defaults to 'do not call up' can be differentiated from a patient where an explicit choice
was made to set their callup plan for the quarter to 'do not call up'. A patient that has defaulted to 'do not call up' can
have that value change when the policies change; a patient that was explicitly set to 'do not call up' will not change the
plan even if underlying policies change.
Policies are set vie the `/qoc/callupPolicy` endpoint.
Load call-up status for patients in a care program. Returns each patient in a care program along with the progress on required or suggested measurements indicated for this care program.
parameters:
- name: setKey
in: path
@ -114,7 +89,6 @@ get:
format: int32
minimum: 1
maximum: 99999999
example: 1099999
required:
- name
indicators:
@ -154,64 +128,24 @@ get:
format: int32
description: |-
An index (0-based) into the `doctors` entry: This is the GP responsible for this patient.
chosenStatus:
type: string
description: |-
The callup plan explicitly chosen via an earlier call to the `/qoc/callupList/setStatus` endpoint.
The chosen status always defaults to `byPolicy` which indicates that the actual status will be derived
by analysing explicit and implicit policies. This 'by policy' status is provided via `byPolicyStatus`.
enum:
- byPolicy
- callUp
- dontCallUp
- scheduled
example: byPolicy
byPolicyStatus:
type: string
description: |-
The callup plan that applies if no explicit choice is made (i.e. the default choice - `byPolicy`).
This status is derived by analysing the care group's policies as well as any explicit policies set
via the `/qoc/callupPolicy` endpoint.
`open` means: Whether to call this patient up this quarter hasn't been decided yet, and the policies
do not suggest either choice as a default.
enum:
- open
- callUp
- dontCallUp
status:
type: string
description: |-
Provided by convenience: It's the value of `chosenStatus`, unless that is `byPolicy`, in which case
it is the value of `byPolicyStatus`. In other words, the status that applies to this patient.
enum:
- open
- callUp
- dontCallUp
- scheduled
example: open
$ref: '../schemas/callUpStatus-enum.yaml'
address1:
type: string
description: |-
The first line of this patient's postal address (Street name and number, generally).
example: Dorpsstraat 1
city:
type: string
description: Patient lives in this city or township.
example: Nowhereville
postcode:
type: string
description: Postcode of the patient.
example: 1234AA
bsn:
type: integer
minimum: 1
maximum: 999999999
format: int32
description: The BSN (dutch social security number) of the patient.
example: 123456789
dob:
$ref: ../schemas/date.yaml
description: Date of birth of the patient.
@ -219,7 +153,6 @@ get:
type: string
format: email
description: Email address of the patient.
example: foo@bar.fake
state:
type: string
description: |-
@ -234,69 +167,9 @@ get:
* `2`-`8` `2` is like `1`, except the measurement lasts for 2 quarters up to 8 quarters.
* `+` The measurement lasts for 9 or more quarters (for example, the measurement only needs to be done once ever and it has been done).
* `x` unknown situation (should not occur).
example: 0017-R-0
policies:
type: array
description: |-
Lists all explicitly chosen policies (set via `qoc/callupPolicy`) that apply to this
patient.
items:
type: object
properties:
'type':
type: string
enum:
- PatientIndicator
- PatientSnoozed
description: |-
The kind of policy this is.
`PatientSnoozed` indicates the patient is not available for a limited period of time and thus isn't a candidate for calling up.
`PatientIndicator` indicates an alternate frequency has been chosen for a specific indicator for this specific patient.
example: PatientIndicator
indicatorKey:
type: string
description: |-
Only set for `PatientIndicator`. Which indicator has a custom frequency.
example: ZEL-dm2-bp-result
expires:
type: string
$ref: ../schemas/date.yaml
description: Date in ISO8601 format; if omitted does not expire. It is considered expired _on_ the stated date.
frequency:
type: string
description: |-
For type `PatientIndicator` only (otherwise, not sent). Indicates that this indicator should be measured
with a different frequency than what this care program by default suggests. The letter for this indicator in the `state` string
takes this alternate frequency into account (or, is rendered as a `-`, indicating 'not relevant', if `never` is the custom frequency).
enum:
- quarter
- sixMonths
- year
- twoYear
- threeYear
- fiveYear
- never
example: sixMonths
reason:
type: string
description: |-
A reason for a policy can be provided when it is set, and is returned here. Omitted if not provided.
example: Jannie zit tot eind december op een boorplatform.
employee:
$ref: ../schemas/employee-string.yaml
timestamp:
type: string
description: The policy was created (set) at this time.
$ref: ../schemas/dateTimeZ.yaml
required:
- type
required:
- patUnid
- doctor
- byPolicyStatus
- chosenStatus
- status
- dob
- state

@ -1,153 +0,0 @@
get:
tags:
- Quality of Care
operationId: getCallupPolicy
summary: Call-up policy
description: Gets all call-up policies of a patient for all indicators in which the patient participates, or for a specific indicator. Parameters are optional and simply filter the response; in other words, without parameters all policies are returned.
parameters:
- name: policyType
in: query
schema:
$ref: ../schemas/CallupPolicyType-enum-short.yaml
- name: patUnid
in: query
schema:
$ref: ../schemas/pat-patUnid.yaml
description: Show only policies for patients that match this unid. Not allowed if asking for `UserIndicator`.
- name: bsn
in: query
schema:
$ref: ../schemas/pat-BSN.yaml
description: Show only policies for patients that match this bsn. Not allowed if asking for `UserIndicator`.
- name: indicatorKey
in: query
description: The version suffix of the indicator is ignored. Only for type `UserIndicator` and `PatientIndicator`.
schema:
type: string
example: ZOO-dm2-hb-1
- name: refDate
in: query
description: Return only policies that haven't expired at this date. Defaults to 'next quarter').
schema:
type: string
$ref: ../schemas/date.yaml
responses:
'200':
description: All policies that match the supplied filter conditions.
content:
'application/json':
schema:
type: array
items:
type: object
properties:
policyType:
$ref: ../schemas/CallupPolicyType-enum-short.yaml
patUnid:
$ref: ../schemas/pat-patUnid.yaml
indicatorKey:
type: string
example: ZOO-dm2-hb
userId:
type: integer
example: 123456
expires:
$ref: ../schemas/date.yaml
example: "2026-04-01"
frequency:
$ref: ../schemas/CallupPolicyFrequency.yaml
example: never
reason:
type: string
example: Zit op een boorplatform.
employee:
$ref: ../schemas/employee-string.yaml
timestamp:
$ref: ../schemas/dateTime.yaml
'401':
$ref: '../zoo-api.yaml#/components/responses/NoAuth'
'403':
$ref: '../zoo-api.yaml#/components/responses/NoAccess'
post:
tags:
- Quality of Care
operationId: postCallupPolicy
summary: Call-up policy
description: |-
Set a call-up policy. Policies last until a specific expiry (or forever). See the descriptions of policy types to get an idea of what policies do and what they represent.
requestBody:
content:
'application/json':
schema:
type: object
properties:
policyType:
$ref: ../schemas/CallupPolicyType-enum-full.yaml
patUnid:
$ref: ../schemas/pat-patUnid.yaml
example: 123456
bsn:
$ref: ../schemas/pat-BSN.yaml
indicatorKey:
description: |-
The key of the indicator as listed in the indicator set. The version of the indicator is ignored (if the string ends in a dash and a number, those are stripped). Only relevant for `IndicatorUser` and `UserIndicator`.
example: ZOO-dm2-hb-3
type: string
reason:
type: string
description: An optional human written reason for why the policy is being applied.
example: Zit op een boorplatform.
expires:
description: |-
If provided, this policy does not apply on and after this date. Mandatory for certain types of policy.
$ref: ../schemas/date.yaml
frequency:
$ref: ../schemas/CallupPolicyFrequency.yaml
employee:
$ref: ../schemas/employee-string.yaml
required:
- policyType
- employee
responses:
'204':
description: If the policy has been processed without any errors.
'401':
$ref: '../zoo-api.yaml/#/components/responses/NoAuth'
'403':
$ref: '../zoo-api.yaml#/components/responses/NoAccess'
delete:
tags:
- Quality of Care
operationId: deleteCallupPolicy
summary: Call-up policy
description: Unset a call-up policy.
parameters:
- name: policyType
in: query
schema:
$ref: ../schemas/CallupPolicyType-enum-short.yaml
- name: patUnid
in: query
schema:
$ref: ../schemas/pat-patUnid.yaml
example: 123456
- name: bsn
in: query
schema:
$ref: ../schemas/pat-BSN.yaml
- name: indicatorKey
in: query
description: The version suffix of the indicator is ignored (if any). Only relevant for `IndicatorUser` and `UserIndicator`.
schema:
type: string
example: ZOO-dm2-hb-1
- name: reason
in: query
description: Some random string describing the reason. May be omitted.
schema:
type: string
- name: employee
description: Employee who withdraws the policy for the patient and indicator combination.
in: query
schema:
$ref: ../schemas/employee-string.yaml

@ -42,7 +42,7 @@ get:
properties:
key:
type: string
description: Key of the indicator set or casefinder.
description: Key of the indicator set.
name:
type: string
description: |-
@ -50,7 +50,7 @@ get:
subName:
type: string
description: |-
Something like `Oproepen` or `Rapportage 75+` describes the purpose of this indicatorset; a number of sets all with the same name but with different subNames can exist, representing different views and protocol approaches to the same care program. Omitted if not relevant (in that case `name` describes this set/casefinder fully).
Something like `Oproepen` or `Rapportage 75+` describes the purpose of this indicatorset; a number of sets all with the same name but with different subNames can exist, representing different views and protocol approaches to the same care program.
description:
type: string
description: A longer description in dutch describing e.g. the chronic care condition covered by this set.
@ -65,8 +65,8 @@ get:
example: X
'type':
type: string
description: Either "indicatorset" or "casefinding".
example: indicatorset
description: Always "indicatorset".
example: indicatorSet
careprogram:
$ref: '../schemas/CareProgram-enum.yaml'
description: The kind of chronic care that this care program caters to. Can be omitted in cases where this care program doesn't cover a generally accepted protocolized chronic care condition. That is often the case with new research projects.
@ -74,10 +74,6 @@ get:
type: boolean
description: |-
If this 'flavour' (as per `subName`) is intended to be used to call up patients and look to the future (this will be `true`) or if this set's intent is reporting and introspection, looking to the past (this will be `false`).
url:
type: string
description: |-
Only provided for type "casefinder". Casefinders are not available via the API; redirect the user to this URL.
'401':
$ref: '../zoo-api.yaml/#/components/responses/NoAuth'
'403':

@ -0,0 +1,6 @@
type: string
enum:
- open
- callUp
- dontCallUp
- scheduled

@ -1,12 +0,0 @@
description: |-
The stated patient should have the stated indicator checked with this frequency instead of the standard frequency as per the care protocol for this care program. The callup state is modified accordingly, except for the special value of `never` which means te callup state is reported as `-` ('not relevant for this patient').
type: string
enum:
- quarter
- sixMonths
- year
- twoYear
- threeYear
- fiveYear
- never
example: never

@ -1,26 +0,0 @@
description: |-
Call-up policies type. Various types are supported:
<dl>
<dt><code>PatientIndicator</code></dt>
<dd>A policy that applies to a specific patient for a specific indicator. For example, a policy might capture the notion "This patient is an amputee and therefore, the frequency of doing foot inspections for chronic diabetes care should be 'never', forever". Or "This patient is going to receive an eye operation next year, therefore funduscopy is not useful, and the specialist team managing their eye care is responsible for it until after the operation and its recovery. Frequency set to 'never', until 2026-08-01". Such policies always refer to a specific patient and a specific indicator, may or may not have an expiry date, and always have a custom frequency.
The effect of this policy is to modify the 'callup state' for that patient/indicator combination. For example, the amputee would receive a `-` state for 'foot inspection' (indicating: Foot inspection is not relevant for this patient) instead of a `0` (indicating: Foot inspection must be done this quarter). Naturally, any policy that expires _before_ the `refDate` of a callup list you're asking for doesn't apply.</dd>
<dt><code>PatientSnoozed</code></dt>
<dd>A policy that applies to a specific patient for a certain care program type (e.g. `COPD`), and indicates that providing chronic care at the GP level is not possible for a limited time. For longer 'snoozing' the advice is generally to set the GPIS based registration of chronic care participation (i.e. the value 'COKZ' (COPD chronic care participation) to 'No'), but when the situation is temporary and a medical operator knows when the situation ends, this policy can be used instead, which has the advantage of restoring the patient to chronic care reporting automatically when the policy is expires. `expiry` is mandatory for this type of policy.
The effect of this policy is to default the patient's call up plan (the `chosenStatus` is `byPolicy`) to `doNotCallup` until the policy expires.</dd>
<dt><code>UserIndicator</code><dt>
<dd>WARNING: Not current available (not implemented yet).
This policy applies to a specific indicator, for all patients. Can be used to represent "our ECG machine is broken until 2025-10-01" for example, or "providing flu injections is done by a different team than DM chronic care therefore this indicator does not apply to me".
The effect of this policy is to mark it as 'not relevant' for all patients. It is not possible to configure an alternate frequency; that would be a modification of the protocol itself which can be implemented by contacting Zorg op Orde to discuss a customised protocol.
type: string
enum:
- PatientIndicator
- PatientOnly
- IndicatorUser
example: PatientIndicator

@ -1,6 +0,0 @@
type: string
enum:
- PatientIndicator
- PatientOnly
- IndicatorUser
example: PatientIndicator

@ -1,7 +0,0 @@
description: |-
Call-up policy to deviate from the default call-up schema used for patients and/or indicators. A `PatientIndicator` policy allows the practice to set a call-up policy on an indicator limited to a certain patient. `PatientOnly` is a policy for all indicators the patient is involved in. `IndicatorUser` is a policy for a specific indicator, but this policy applies only for a specific practice user (assistant, doctor, etc.).
type: string
enum:
- PatientIndicator
- PatientOnly
- IndicatorUser

@ -17,7 +17,6 @@ description: |-
<dt>Dermatoscopie</dt><dd>Dermatoscopy / (risk of) skin cancer</dd>
<dt>FractuurPreventie</dt><dd>Fracture prevention - often part of elderly care.</dd>
<dt>GecMonitoring</dt><dd>An assortment of indicators useful for monitoring a GEC (Geïntegreerd Eerstelijns Centrum / integrated primary care).</dd>
<dt>Nierschade</dt><dd>(risk of) kidney failure</dd>
</dl>
type: string
example: COPD

@ -32,6 +32,7 @@ properties:
maximum: 1.0
bars:
description: Describes the bars in the indicators used in the indicatorGroups.
schema:
type: array
items:
type: object

@ -1,4 +0,0 @@
description: Timestamp in complete basic representation of date and time according ISO 8601.
type: string
format: datetime
example: "19700131T235901Z"

@ -1,3 +0,0 @@
type: string
description: A string that identifies the employee who is setting this policy.
example: Mien Dobbelsteen

@ -3,7 +3,6 @@ required:
- agb
- name
- gpis
- refDate
- patients
properties:
agb:
@ -16,14 +15,6 @@ properties:
type: string
gpis:
$ref: 'GPIS.yaml'
refDate:
$ref: ../schemas/date.yaml
description: |-
The date used for all calculations: Any time spans are relative to this date, any measurement requirements
as stated in the care group's policies such as 'must be registered every year or cannot be considered' are applied
to this date, anything that occured after this date is ignored. The date depends on the last time the EPD system provided
data; generally it will be quite recent.
example: '2024-04-01'
patients:
type: array
items:

@ -2,7 +2,6 @@ description: |-
Patient's date of birth.
Note that by convention, patients whose birthdate is unknown (rare, but can happen in certain asylum seeker cases)
pick a date and tend to pick either `xxxx-01-01` or `xxxx-07-01`.
Can, in rare cases, be unavailable - if birth date is not known; in that case, `null` is sent.
pick a date and tend to pick either `xxxx-01-01` or `xxxx-07-01`. Can, in rare cases, be unavailable - if birth date is not known.
$ref: ./date.yaml

@ -79,12 +79,10 @@ paths:
$ref: 'paths/qoc_indicator_{setKey}_{indicatorKey}_patients.yaml'
/qoc/indicator/{setKey}/{indicatorKey}/participants:
$ref: 'paths/qoc_indicator_{setKey}_{indicatorKey}_participants.yaml'
/qoc/callupList/{setKey}:
/qoc/checkupList/{setKey}:
$ref: 'paths/qoc_checkupList_{setKey}.yaml'
/qoc/callupList/setStatus:
/qoc/checkupList/setStatus:
$ref: 'paths/qoc_checkupList_set_status.yaml'
/qoc/callupPolicy:
$ref: 'paths/qoc_checkupPolicy.yaml'
/qoc/list-groups:
$ref: 'paths/qoc_list-groups.yaml'
/qoc/participating-practices:
@ -249,3 +247,5 @@ 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