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 schema: type: number example: 1012345 - 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'