get: tags: - Patient summary: Get per-patient funduscopy status for one care group description: |- Returns patients that have an indication for requiring funduscopy across all practices of a care group, taking into account the medical dossier of each patient as well as the care group's policies. For each patient, information about their funduscopy status as well as basic personal information is provided. This endpoint may take quite a while to respond (may take more than 5 minutes) which can cause issues with timeouts; configure your endpoint call function appropriately and ensure intermediate proxies don't time out either. Due to the potentially large amount of data, this endpoint rejects requests that don't support compression. A header of at least `Accept-Encoding: gzip` is therefore required. parameters: - $ref: '../zoo-api.yaml#/components/parameters/AgbCareGroup' - name: purpose in: query required: true description: |- A key describing the purpose of requesting funduscopy status of many patients. Affects what data is supplied (for example, whether personally identifying information is provided), and whether certain filters are applied. * `fundus-broker` – An entity that takes care of arranging appointments between patients and funduscopy professionals. * `gp` – Medical personnel reviewing their funduscopy-relevant patient population. * `reporting` – Reporting on the status of the funduscopy-relevant patient population as a whole. The `reporting` purpose limits PII, the `fundus-broker` purpose applies filtering as per the preferences of the care group's policies. schema: type: string enum: ['fundus-broker', 'gp', 'reporting'] - name: director in: query required: false description: |- If present, filter the returned population on the registered director for funduscopy. * `gp` – Returns only those patients whose most recent registration of responsible-for-funduscopy is 'The GP'. * `specialist` – Returns only those patients whose most recent registration of responsible-for-funduscopy is 'The specialist'. * `unknown` – Returns only those patients whose most recent registration of responsible-for-funduscopy is not present, registered as 'Unknown', or has an invalid registration. If not present, no filtering is applied. schema: type: string enum: ['gp', 'specialist', 'unknown', ''] - $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: '200': description: All patients where funduscopy status is relevant is returned. content: application/json: schema: type: object required: - agb - regionName - refDate - practices properties: dict: $ref: '../schemas/TermsDictionary.yaml' agb: description: |- The same AGB as supplied via authentication or the `agb` parameter: The AGB of the care group being queried. 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`). type: string refDate: 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. type: string format: date example: '2024-04-01' practices: description: |- One entry for each practice that is part of this care group and participates in at least one funduscopy-related care program. type: array items: type: object required: - agb - name - gpis - patients properties: agb: description: |- The AGB code of the GP practice whose patients are provided in this object. type: integer format: int32 minimum: 1 maximum: 99999999 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' patients: type: array items: type: object description: |- Which patients are returned, and which Personal Identifying Information properties are sent depends on the chosen `purpose` when making this API call. required: - patid - patUnid - doctor - category - fundus 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' patUnid: $ref: '../schemas/PatIdentity.yaml#/patUnid' startDate: $ref: '../schemas/PatIdentity.yaml#/startDate' endDate: $ref: '../schemas/PatIdentity.yaml#/endDate' endReason: $ref: '../schemas/PatIdentity.yaml#/endReason' fundus: type: object required: - careprogram - director - lastEval - retinoVal - left - right properties: careprogram: description: |- The care program that is the primary reason Funduscopy status is applicable to this patient. type: string example: Ouderenzorg director: type: object description: |- Contains info about the funduscopy director: Who is responsible for this patient's funduscopy care and followup? required: - source - nhgResult properties: source: description: |- The aspect of the medical dossier used to determine who is director. Usually one of: * `DMRFTZ` – indicates that NHG-standard lab/measurement registration 'Regie funduscopie' is used. * `implied` – Nothing explicit is available in the medical dossier, and the default as per the policies of this care group is provided. type: string example: DMRFTZ timestamp: type: string format: date description: |- If present, the medical dossier entry used to conclude the funduscopy director was measured/entered on this date. For example, if `DMRFTZ` registration is used, the date of that measurement as per the dossier. nhgResult: description: |- The director, in NHG answercode for `DMRFTZ` form, regardless of what `source` actually provided this result: * `48` - The GP is responsible for managing funduscopy * `49` - The specialist is responsible * `212` - Unknown type: integer format: int32 enum: [48, 49, 212] lastEval: description: |- The date of the last time the patient has received Funduscopy; will be `null` if no funduscopy is registered. The most recent measurement date is provided, even if only one eye was measured on that date. type: string format: date retinoVal: description: |- The normalized retinopathy category for the worst eye, in terms of the 2017 Retinopathy level standard (richtlijn Diabetische Retinopathie 2017). * `-1` – retinopathy level is unknown or cannot be determined. * `0` – Retinopathy level R0: No visible retinopathy. * `1` - Retinopathy level R1: Mild background retinopathy. * `2` - Retinopathy level R2: Pre-proliferative retinopathy. * `3` - Retinopathy level R3: Proliferative retinopathy. type: integer format: int32 minimum: -1 maximum: 3 left: description: |- Details about specifically the left eye. type: object required: - lastEval - retinoVal properties: lastEval: description: Same as previous level, specifically for left eye. type: string format: date retinoVal: description: Same as previous level, specifically for left eye. type: integer format: int32 minimum: -1 maximum: 3 note: description: |- If present, describes why this measurement is missing, unclear, or suboptimal. For example, might mention that the result from the lab is likely available, but has not been properly registered in the medical dossier, or that a result is available but only after the provided `refDate`. In dutch, and human readable. type: string nhgCode: description: |- If present, the NHG memocode used to register the retinopathy level. Will be in the terms dictionary. type: string example: DMR7FALI nhgResult: description: |- If present, the NHG result value describing the retinopathy level. Will be in the terms dictionary. type: integer format: int32 example: 562 right: type: object description: |- Like the left eye. required: - lastEval - retinoVal properties: lastEval: type: string format: date retinoVal: type: integer format: int32 minimum: -1 maximum: 3 note: type: string nhgCode: type: string nhgResult: type: integer format: int32 '400': description: The request is invalid; for example, it doesn't contain the required `agb` parameter. '401': $ref: '../zoo-api.yaml#/components/responses/JwtFailure' '403': description: Indicated group is known but has not authorized ZOO to share this information with signer.