Compare commits

...

2 Commits

Author SHA1 Message Date
Reinier Zwitserloot 8ef34d95b1
[lint] Fixing warnings and errors. 2 months ago
Reinier Zwitserloot 1c4aff7e5c
[rename] GPIS -> EPD 2 months ago

@ -33,7 +33,7 @@ get:
description: The AGB of the institution, if the customer is a care group or other institute, otherwise omitted. One of practiceAgb or institutionAgb is always present. description: The AGB of the institution, if the customer is a care group or other institute, otherwise omitted. One of practiceAgb or institutionAgb is always present.
$ref: ../schemas/agb.yaml $ref: ../schemas/agb.yaml
gpisMethod: gpisMethod:
description: The current GPIS type and how medical dossiers are transferred to Zorg op Orde. description: The current EPD type and how medical dossiers are transferred to Zorg op Orde.
example: HealthConnected (automatische koppeling) example: HealthConnected (automatische koppeling)
lastImport: lastImport:
$ref: ../schemas/GPIS.yaml $ref: ../schemas/GPIS.yaml

@ -1,13 +1,13 @@
get: get:
operationId: exportsAvailable operationId: exportsAvailable
tags: tags:
- GPIS exports - EPD exports
summary: List available exports summary: List available exports
responses: responses:
'200': '200':
description: |- description: |-
Lists all available GPIS export snapshots. Lists all available EPD export snapshots.
A GPIS export snapshot contains parts of medical dossier info for a subset of all patients in a GP practice. Exactly which filters are applied, An EPD export snapshot contains parts of medical dossier info for a subset of all patients in a GP practice. Exactly which filters are applied,
which data is provided, and how it is formatted is arranged between Zorg op Orde and a party using the ZOO API. which data is provided, and how it is formatted is arranged between Zorg op Orde and a party using the ZOO API.
content: content:
application/json: application/json:

@ -1,7 +1,7 @@
get: get:
operationId: exportsDownload operationId: exportsDownload
tags: tags:
- GPIS exports - EPD exports
summary: Download an available export summary: Download an available export
parameters: parameters:
- name: agb - name: agb
@ -20,7 +20,7 @@ get:
responses: responses:
'200': '200':
description: |- description: |-
Fetches the requested GPIS export as ZIP file. Fetches the requested EPD export as ZIP file.
Note that the response will have content type `application/zip` even if the requester's `Accept` header does not indicate this mime type is supported. Note that the response will have content type `application/zip` even if the requester's `Accept` header does not indicate this mime type is supported.
'401': '401':

@ -1,7 +1,7 @@
get: get:
operationId: exportsDownloadPerTable operationId: exportsDownloadPerTable
tags: tags:
- GPIS exports - EPD exports
summary: Download one CSV table from an available export summary: Download one CSV table from an available export
parameters: parameters:
- name: agb - name: agb
@ -27,7 +27,7 @@ get:
responses: responses:
'200': '200':
description: |- description: |-
Fetches the requested table from the GPIS export. Fetches the requested table from the EPD export.
Note that the response will have the content type of the request resource (usually `text/csv`) even if the requester's `Accept` header does not indicate this mime type is supported. Note that the response will have the content type of the request resource (usually `text/csv`) even if the requester's `Accept` header does not indicate this mime type is supported.
'401': '401':

@ -7,7 +7,7 @@ get:
parameters: parameters:
- name: patUnids - name: patUnids
in: query in: query
mandatory: true required: true
description: |- description: |-
A comma separated list of patUnid values, as provided by other API endpoints. A comma separated list of patUnid values, as provided by other API endpoints.
For each patUnid the contact details are in the response. If sending lots of patUnids, we suggest you call this API in a POST (which is also allowed, though the semantic intent of this method is GET: It only queries and makes no changes) to avoid HTTP limits on query length. For each patUnid the contact details are in the response. If sending lots of patUnids, we suggest you call this API in a POST (which is also allowed, though the semantic intent of this method is GET: It only queries and makes no changes) to avoid HTTP limits on query length.
@ -18,9 +18,27 @@ get:
example: "1234,5678" example: "1234,5678"
- name: fields - name: fields
in: query in: query
mandatory: true required: true
schema:
type: array
items:
type: string
enum:
- bsn
- patPubId
- patUnid
- gender
- displayName
- fullName
- addressLine
- postcode
- city
- tel
- email
- dob
explode: false
description: |- description: |-
Comma separated list of data fields that shold be returned in the response. Available options are: Comma separated list of data fields that should be returned in the response. Available options are:
bsn - adds CSV column/JSON key 'bsn'. bsn - adds CSV column/JSON key 'bsn'.
patPubId - adds CSV column/JSON key 'patPubId'. patPubId - adds CSV column/JSON key 'patPubId'.
patUnid - adds CSV column/JSON key 'patUnid'. patUnid - adds CSV column/JSON key 'patUnid'.

@ -10,7 +10,7 @@ get:
which will be logged and reviewed for the _Principle of Least Privilege_ policy. which will be logged and reviewed for the _Principle of Least Privilege_ policy.
Known design parameters: Known design parameters:
- send along the date on which the result is based (GPIS snapshot date) - send along the date on which the result is based (EPD snapshot date)
- Sender must send a key (or list of keys) representing the context, such as 'DM', 'Obesitas', 'Dietetiek', etc. We combine the targeted data (the GP or zorggroep) with these keys to know precisely what we filter (we do not just return all medical dossier data). - Sender must send a key (or list of keys) representing the context, such as 'DM', 'Obesitas', 'Dietetiek', etc. We combine the targeted data (the GP or zorggroep) with these keys to know precisely what we filter (we do not just return all medical dossier data).
- uptime is important; these API calls are done live as patients show. - uptime is important; these API calls are done live as patients show.
- q - edit it a bit, can be for example 'dm' or even 'dm/dietetiek'. Send all relevant parts in one response. - q - edit it a bit, can be for example 'dm' or even 'dm/dietetiek'. Send all relevant parts in one response.

@ -109,7 +109,7 @@ get:
description: description:
type: string type: string
example: consult huisarts langer dan 20 minuten example: consult huisarts langer dan 20 minuten
description: The feat description is taken from the GPIS import. description: The feat description is taken from the EPD import.
n: n:
type: number type: number
description: The count of the feats with the given code for the patient. description: The count of the feats with the given code for the patient.

@ -3,7 +3,7 @@ get:
- Population statistics - Population statistics
operationId: populationStatisticsEmployeeFeat operationId: populationStatisticsEmployeeFeat
summary: Employee turnover summary: Employee turnover
description: Summaries the performance of employees expressed in feat count and turnover amounts. Only contract and national tariffs are used. Tariffs imported from any GPIS are ignored. Contract tariffs as registered by Zorg op Orde or, if not present, national tariffs as published by the government are used. Only to most recent years of national tariffs are available. description: Summaries the performance of employees expressed in feat count and turnover amounts. Only contract and national tariffs are used. Tariffs imported from any EPD are ignored. Contract tariffs as registered by Zorg op Orde or, if not present, national tariffs as published by the government are used. Only to most recent years of national tariffs are available.
parameters: parameters:
- $ref: '../zoo-api.yaml#/components/parameters/Authorization' - $ref: '../zoo-api.yaml#/components/parameters/Authorization'
- name: periodStart - name: periodStart
@ -18,7 +18,7 @@ get:
$ref: ../schemas/date.yaml $ref: ../schemas/date.yaml
- $ref: '../zoo-api.yaml#/components/parameters/GpCodes' - $ref: '../zoo-api.yaml#/components/parameters/GpCodes'
description: |- description: |-
Restricts to the GP's which were medical responsible for the feat. Uses the GP at the time of the feat, or if not available, the GP responsible for the patient at the time of the GPIS-import. The GP at the time of the feat is the most accurate. Restricts to the GP's which were medical responsible for the feat. Uses the GP at the time of the feat, or if not available, the GP responsible for the patient at the time of the EPD import. The GP at the time of the feat is the most accurate.
The responsible GP is not written in the response, due the structure of the agreggation. The responsible GP is not written in the response, due the structure of the agreggation.
- name: employees - name: employees

@ -56,7 +56,7 @@ post:
maxItems: 1000 maxItems: 1000
example: 10012,32122,1212 example: 10012,32122,1212
description: |- description: |-
patient GPIS ids. One of `bsns` or `patIds` must be provided (but not both). patient EPD ids. One of `bsns` or `patIds` must be provided (but not both).
required: required:
- careprogram - careprogram
- callUpStatus - callUpStatus
@ -65,7 +65,7 @@ post:
responses: responses:
'200': '200':
description: |- description: |-
BSNs or patIds whose status has actually updated. BSNs or patIds which were not known in the GPIS are ignored and not returned here. BSNs or patIds whose status has actually updated. BSNs or patIds which were not known in the EPD are ignored and not returned here.
The caller should determine the difference between the two sets to get the ignored patients. If a BSN matched more than one patient, all these patients were updated. The caller should determine the difference between the two sets to get the ignored patients. If a BSN matched more than one patient, all these patients were updated.
content: content:
'application/json': 'application/json':

@ -79,11 +79,11 @@ get:
calculationBasedOn: calculationBasedOn:
description: |- description: |-
If present, this GP practice is calculated for this refDate for this care program, and the calculation If present, this GP practice is calculated for this refDate for this care program, and the calculation
is based on a snapshot of GPIS data at this instant. is based on a snapshot of EPD data at this instant.
$ref: ../schemas/dateTime.yaml $ref: ../schemas/dateTime.yaml
mostRecentDataAvailable: mostRecentDataAvailable:
description: |- description: |-
If present, this GP practice's most recent available data is a GPIS snapshot with GPIS data at this instant. If present, this GP practice's most recent available data is an EPD snapshot with EPD data at this instant.
Usually equal to `calculationBasedOn`, but can be newer. If not present, this GP practice has no data available. Usually equal to `calculationBasedOn`, but can be newer. If not present, this GP practice has no data available.
$ref: ../schemas/dateTime.yaml $ref: ../schemas/dateTime.yaml
required: required:

@ -8,7 +8,7 @@ description: |-
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> 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> <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. <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 EPD 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> 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>

@ -1,5 +1,5 @@
description: |- description: |-
The source of the medical data used to produce this report: which general practitioner information system was used, and when the data was provided. Omitted if no GPIS database was imported (yet). The source of the medical data used to produce this report: which general practitioner information system was used, and when the data was provided. Omitted if no EPD database was imported (yet).
type: object type: object
properties: properties:
gpisType: gpisType:

@ -96,7 +96,7 @@ properties:
cache: cache:
type: boolean type: boolean
description: |- description: |-
If true, the indicator was retrieved from the API cache. The indicator is only retrieved from the cache if there is no recent calculation available in the database and if the indicator won't change anymore. This is the case when it was calculated with a reference date in the past and for which a certain period no new GPIS-data is provided. The cached indicator reflects the indicator definition on the reference date. A cached indicator is not updated when the definition changes. If true, the indicator was retrieved from the API cache. The indicator is only retrieved from the cache if there is no recent calculation available in the database and if the indicator won't change anymore. This is the case when it was calculated with a reference date in the past and for which a certain period no new EPD data is provided. The cached indicator reflects the indicator definition on the reference date. A cached indicator is not updated when the definition changes.
example: true example: true
required: required:
- group - group

@ -94,5 +94,5 @@ properties:
items: items:
$ref: 'Indicator.yaml' $ref: 'Indicator.yaml'
cache: cache:
description: If true, the indicator set was retrieved from the API cache. The set is only retrieved from the cache if there is no recent calculation available in the database and if the set won't change anymore. This is the case for all indicator sets which were calculated with a reference date in the past and for which a certain period no new GPIS-data is provided. The cached indicator set reflects the indicator definitions of the reference date. Cached indicators are not updated with new definitions. description: If true, the indicator set was retrieved from the API cache. The set is only retrieved from the cache if there is no recent calculation available in the database and if the set won't change anymore. This is the case for all indicator sets which were calculated with a reference date in the past and for which a certain period no new EPD data is provided. The cached indicator set reflects the indicator definitions of the reference date. Cached indicators are not updated with new definitions.
type: boolean type: boolean

@ -31,7 +31,7 @@ doctor:
description: |- description: |-
If known, the AGB code of the primary care GP (dutch: _Inschrijf arts_). If known, the AGB code of the primary care GP (dutch: _Inschrijf arts_).
Value 0 indicates this GPIS or practice doesn't assign patients to individual GPs, Value 0 indicates this EPD or practice doesn't assign patients to individual GPs,
or this information isn't known. or this information isn't known.
type: number type: number
example: 1051234 example: 1051234

@ -1,3 +1,3 @@
description: Alias for the doctor, sometimes called _memocode_. Should be an unique identifier for a doctor in a GPIS. description: Alias for the doctor, sometimes called _memocode_. Should be an unique identifier for a doctor in an EPD.
type: string type: string
example: MH,RZ,AXW example: MH,RZ,AXW

@ -8,7 +8,7 @@ properties:
description: |- description: |-
The ICPC1.1 (NL variant) code describing this problem / chronic condition. The ICPC1.1 (NL variant) code describing this problem / chronic condition.
Guaranteed to be formatted as `X01.00`, _or_ blank (for GPIS that allow registering problems / conditions without an ICPC). Guaranteed to be formatted as `X01.00`, _or_ blank (for EPDs that allow registering problems / conditions without an ICPC).
Note that certain ICPC1.1 codes are generally stated without the subcode, for example, `B73` (Leukemia). Nevertheless these are Note that certain ICPC1.1 codes are generally stated without the subcode, for example, `B73` (Leukemia). Nevertheless these are
returned by this API as `B73.00`. returned by this API as `B73.00`.
@ -33,7 +33,7 @@ properties:
$ref: ../date.yaml $ref: ../date.yaml
description: description:
description: |- description: |-
Most GPIS default the 'description' of an episode to the standard description for the provided ICPC, but allow the Most EPDs default the 'description' of an episode to the standard description for the provided ICPC, but allow the
practitioner to change this description. practitioner to change this description.
type: string type: string
example: "Geboorte dochter" example: "Geboorte dochter"

@ -30,7 +30,7 @@ properties:
description: |- description: |-
If the source system uses a different code to represent this measurement in its own system, it is listed here. If the source system uses a different code to represent this measurement in its own system, it is listed here.
If present, guaranteed to be different from `nhg_code`. For example, a GPIS might use `ROKENHG` instead of NHG-standard `ROOKAQ` to If present, guaranteed to be different from `nhg_code`. For example, an EPD might use `ROKENHG` instead of NHG-standard `ROOKAQ` to
represent registration of patient's smoking behaviour. represent registration of patient's smoking behaviour.
type: string type: string
example: ROKENNHG example: ROKENNHG

@ -51,12 +51,12 @@ properties:
example: AN example: AN
usageCode: usageCode:
description: |- description: |-
A coded description of how to use this medication. Depends on source GPIS; sometimes even on the individual configuration of A coded description of how to use this medication. Depends on source EPD; sometimes even on the individual configuration of
a practice's GPIS or that practice's regional server; these values aren't normalized, and sometimes not available at all. a practice's EPD or that practice's regional server; these values aren't normalized, and sometimes not available at all.
type: string type: string
example: 1D1T example: 1D1T
usageText: usageText:
description: |- description: |-
Human-readable (dutch) description of how to use this medication. Depends on source GPIS and often not available at all. Human-readable (dutch) description of how to use this medication. Depends on source EPD and often not available at all.
type: string type: string
example: Gebruik bekend example: Gebruik bekend

@ -9,6 +9,6 @@ description: |-
OPEN QUESTION: Would it be useful if this field is more structured and e.g. explains what it is, or that this field contains an ID that can be OPEN QUESTION: Would it be useful if this field is more structured and e.g. explains what it is, or that this field contains an ID that can be
separately looked up using another API endpoint; we are very dependent on the source for the nature of this information, but some e.g. provide separately looked up using another API endpoint; we are very dependent on the source for the nature of this information, but some e.g. provide
the doctor under whose authority a practitioner is operating, which could be useful information. We can't guarantee that we can provide this data the doctor under whose authority a practitioner is operating, which could be useful information. We can't guarantee that we can provide this data
in a specific structure due to fundamental differences between GPIS vendors, hence why right now this field is free-form. in a specific structure due to fundamental differences between EPD vendors, hence why right now this field is free-form.
type: string type: string
example: AA example: AA

@ -1,10 +1,10 @@
description: |- description: |-
_DEPRECATED_ this value will be removed in some future version and you should no longer _DEPRECATED_ this value will be removed in some future version and you should no longer
rely on it. Some GPIS use non-numeric public IDs. Use value `patPubId` instead which is like rely on it. Some EPDs use non-numeric public IDs. Use value `patPubId` instead which is like
this one, except a string instead of a number. this one, except a string instead of a number.
Patient's "public" ID, as used and shown on the GPIS patient page. Not necessarily unique, Patient's "public" ID, as used and shown on the EPD patient page. Not necessarily unique,
and not necessarily present; 0 indicates no patid is known or this GPIS does not use (numeric) and not necessarily present; 0 indicates no patid is known or this EPD does not use (numeric)
public IDs. public IDs.
The primary purpose of this field is to show it to medical professionals working at this practice The primary purpose of this field is to show it to medical professionals working at this practice

@ -1,6 +1,6 @@
description: |- description: |-
Patient's "public" ID, as used and shown on the GPIS patient page. Not necessarily unique, Patient's "public" ID, as used and shown on the EPD patient page. Not necessarily unique,
and not necessarily present; 0 indicates no patid is known or this GPIS does not use public IDs. and not necessarily present; 0 indicates no patid is known or this EPD does not use public IDs.
The primary purpose of this field is to show it to medical professionals working at this practice The primary purpose of this field is to show it to medical professionals working at this practice
who can use it to search for this dossier and is a way to communicate without sharing privacy-sensitive who can use it to search for this dossier and is a way to communicate without sharing privacy-sensitive

@ -1,6 +1,6 @@
description: |- description: |-
Patient's unique and persistent ID in GPIS. Usually identical to `patPubId` but certain GPISes may Patient's unique and persistent ID in the EPD. Usually identical to `patPubId` but certain EPDs may
use UUID, or has globally unique keys (e.g. very large numbers). Can be blank, but only use UUID, or has globally unique keys (e.g. very large numbers). Can be blank, but only
if supplying GPIS does not send them. if supplying EPD does not send them.
type: string type: string
example: "1234" example: "1234"

@ -41,9 +41,11 @@ tags:
As well as a 'config' view where they see _all_ care programs that could possibly be relevant for that customer, where the customer can preview the report (essentially, run the report as normal), favourite something they don't get by default, or unfavourite something they get by default. As well as a 'config' view where they see _all_ care programs that could possibly be relevant for that customer, where the customer can preview the report (essentially, run the report as normal), favourite something they don't get by default, or unfavourite something they get by default.
- name: Customer management - name: Customer management
- name: GPIS exports
description: |- description: |-
List and download exported parts of GPIS dossiers. Update and query properties of ZOO customers (such as who is the contact person and which care programs they participate in).
- name: EPD exports
description: |-
List and download exported parts of EPD (General Practioner Information Systems) dossiers.
paths: paths:
/patient/dossier: /patient/dossier:
$ref: 'paths/patient_dossier.yaml' $ref: 'paths/patient_dossier.yaml'
@ -162,7 +164,7 @@ components:
GpCodes: GpCodes:
name: gpCodes name: gpCodes
in: query in: query
description: Code of the GP as known in the GPIS. description: Code of the GP as known in the EPD.
example: AA,BZP,RZ,ECH example: AA,BZP,RZ,ECH
schema: schema:
type: array type: array
@ -238,7 +240,6 @@ components:
description: Indicated practice is known but has not authorized ZOO to share this information with signer. description: Indicated practice is known but has not authorized ZOO to share this information with signer.
securitySchemes: securitySchemes:
BearerAuth: BearerAuth:
in: header
type: http type: http
scheme: bearer scheme: bearer
bearerFormat: JWT bearerFormat: JWT

Loading…
Cancel
Save