You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
9.1 KiB
YAML
179 lines
9.1 KiB
YAML
get:
|
|
tags:
|
|
- patient
|
|
summary: Get detailed medical dossier info for the stated patient
|
|
description: |-
|
|
WorkInProgress: The API may require you to provide the person on whose authority this request is being made,
|
|
which will be logged and reviewed for the _Principle of Least Privilege_ policy.
|
|
|
|
Known design parameters:
|
|
- send along the date on which the result is based (HIS 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).
|
|
- 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.
|
|
- required response categories: Journaal, Bepalingen, Medicatie, episodes.
|
|
parameters:
|
|
- name: agb
|
|
in: query
|
|
description: |-
|
|
The AGB code (dutch: _Algemeen Gegevens Beheer_ - unique identifier for medical professionals and GP practices) of the GP practice
|
|
whose patient population should be searched.
|
|
required: true
|
|
- name: bsn
|
|
in: query
|
|
description: |-
|
|
The SSN (dutch: _BSN_) of a patient to look up. May only contain digits, cannot contain more than 9 digits, and cannot be 0.
|
|
Either `bsn` or `pu` must be present.
|
|
schema:
|
|
type: string
|
|
example: 123456789
|
|
- name: pu
|
|
in: query
|
|
description: |-
|
|
The Patient unique ID, as e.g. reported by `/patient/base`'s `pat_unid` response.
|
|
|
|
Either `bsn` or `pu` must be present. We do not recommend including both; if this is done, _both_ filters are applied, and
|
|
patient info is only returned if a patient exists with both
|
|
schema:
|
|
type: string
|
|
example: ""
|
|
- name: q
|
|
in: query
|
|
description: |-
|
|
A comma-separated list of dossier aspects to query. If omitted, everything is returned.
|
|
The keys match the keys in the JSON structure that is returned on a success, such as `medication` or `measurements`.
|
|
|
|
Current list of aspects:
|
|
- personal (basic info such as birth dates and address)
|
|
- careprograms (which actively managed chronic care programs the patient participates in)
|
|
- episodes (chronic conditions and problems)
|
|
- measurements (lab values, process management, answers to basic questions)
|
|
- feats (declared acts such as 'standard consult')
|
|
- correspondence (messages sent and received about this patient to other care professionals)
|
|
- medications
|
|
- contraindications
|
|
- journals
|
|
schema:
|
|
type: string
|
|
example: "medication,measurements"
|
|
- name: purpose
|
|
in: query
|
|
description: |-
|
|
A unique key identifying for what purpose this request is being made. Keys are agreed upon between
|
|
ZorgOpOrde and the API user, and will result in the data returned filtered down to what is relevant / necessary for
|
|
the stated purpose. For example, `"diet-dm2"` would be a key to represent that this patient is being
|
|
enrolled in Diabetes Mellitus chronic care and a report on this patient's DM status is being prepared to send
|
|
to a licensed dietitian. The data returned would be filtered to only include those aspects relevant for this task.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: diet-dm2
|
|
responses:
|
|
'400':
|
|
$ref: '../zoo-api.yaml#/components/responses/ReqFailure'
|
|
'401':
|
|
$ref: '../zoo-api.yaml#/components/responses/JwtFailure'
|
|
'403':
|
|
description: |-
|
|
Practice associated with the JWT is known but has not authorized ZOO to share information with signer for the provided purpose.
|
|
|
|
This error also occurs if the provided purpose isn't a known key.
|
|
'404':
|
|
$ref: '../zoo-api.yaml#/components/responses/PatNotFound'
|
|
'200':
|
|
description: |-
|
|
Detailed medical dossier information for the patient is returned.
|
|
|
|
Filtered to only return what was requested (via optional query parameter `q`), and including only those aspects
|
|
of the medical dossier relevant for the stated purpose.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
personal:
|
|
description: |-
|
|
Contains core identification information about this patient; a duplication of the `/patient/base` API.
|
|
type: object
|
|
properties:
|
|
bsn:
|
|
$ref: '../schemas/PatIdentity.yaml#/bsn'
|
|
name:
|
|
$ref: '../schemas/PatIdentity.yaml#/name'
|
|
gender:
|
|
$ref: '../schemas/PatIdentity.yaml#/gender'
|
|
dob:
|
|
$ref: '../schemas/PatIdentity.yaml#/dob'
|
|
category:
|
|
$ref: '../schemas/PatIdentity.yaml#/category'
|
|
doctor:
|
|
$ref: '../schemas/PatIdentity.yaml#/doctor'
|
|
address:
|
|
$ref: '../schemas/PatIdentity.yaml#/address'
|
|
contact:
|
|
$ref: '../schemas/PatIdentity.yaml#/contact'
|
|
insurance:
|
|
$ref: '../schemas/PatIdentity.yaml#/insurance'
|
|
patid:
|
|
$ref: '../schemas/PatIdentity.yaml#/patid'
|
|
pat_unid:
|
|
$ref: '../schemas/PatIdentity.yaml#/pat_unid'
|
|
start_date:
|
|
$ref: '../schemas/PatIdentity.yaml#/start_date'
|
|
end_date:
|
|
$ref: '../schemas/PatIdentity.yaml#/end_date'
|
|
end_reason:
|
|
$ref: '../schemas/PatIdentity.yaml#/end_reason'
|
|
episodes:
|
|
type: array
|
|
description: |-
|
|
Lists chronic problems or other diagnosed medical issues (dutch: _behandelingen / episodes / problemen_) based on ICPC1-NL.
|
|
items:
|
|
$ref: '../schemas/med_dossier/Episode.yaml'
|
|
measurements:
|
|
type: array
|
|
description: |-
|
|
Lists measurements, including lab-determined values (example: Direct measurement of LDL cholesterol in a blood sample),
|
|
measurements done by the practicioner or by the patient themselves (example: weight), care process information
|
|
(such as 'responsible for chronic diabetes care: Specialist'), and answers to questionnaires such as 'do you have trouble
|
|
walking up stairs').
|
|
items:
|
|
$ref: '../schemas/med_dossier/Measurement.yaml'
|
|
feats:
|
|
type: array
|
|
description: |-
|
|
Lists declarable acts (dutch: _verrichtingen_, also known as _prestaties_), and includes:
|
|
* actual work done (such as spending 10 minutes with a patient)
|
|
* material that is paid separately (such some nitrogen to burn off a wart)
|
|
* 'subscription' fees such as the standard subscription fee as well as extras charged for each patient per quarter (dutch: _inschrijf_ en _module_ tarieven).
|
|
items:
|
|
$ref: '../schemas/med_dossier/Feat.yaml'
|
|
correspondence:
|
|
type: array
|
|
description: |-
|
|
Lists records of correspondence (excluding correspondence within the GP office and correspondence with the patient themselves).
|
|
items:
|
|
$ref: '../schemas/med_dossier/Correspondence.yaml'
|
|
medications:
|
|
type: array
|
|
description: |-
|
|
Lists medication, either prescribed, or delivered to the patient (or both, of course).
|
|
items:
|
|
$ref: '../schemas/med_dossier/Medication.yaml'
|
|
contraindications:
|
|
type: array
|
|
description: |-
|
|
Lists registered contra-indications, also often used for the generalized concept of popping up warnings any time
|
|
this patient's information is shown to a practicioner. Generally simply is an alternate take on a list of problems
|
|
a patient suffers from; specifically issues that may affect unrelated care (such as allergies, mental issues, and so on).
|
|
items:
|
|
$ref: '../schemas/med_dossier/Contraindication.yaml'
|
|
journals:
|
|
type: array
|
|
description: |-
|
|
Lists registered journal entries - text typed by practicioners for a variety of reasons, including representing what the
|
|
patient themselves tells the practicioner (can include verbatim copies of what the patient wrote for text-based telehealth systems),
|
|
as well as explaining in text the conclusions included in a lab report received via mail.
|
|
items:
|
|
$ref: '../schemas/med_dossier/Journal.yaml'
|