diff --git a/examples/qoc_careprogram.1.json b/examples/qoc_careprogram.1.json new file mode 100644 index 0000000..d80662d --- /dev/null +++ b/examples/qoc_careprogram.1.json @@ -0,0 +1,227 @@ +{ + "programsets": [ + { + "title": "Ketenzorg programma's (algemeen)", + "description": "Als jouw zorggroep nog niet aangesloten is, kun je altijd gebruik maken van onze algemene indicatoren. Wil je protocollen aanpassen of uitbreiden, laat het ons dan weten! Hier zijn geen kosten aan verbonden. Als je (of jouw zorggroep) andere manieren van registreren gebruikt of bijvoorbeeld een focus wil leggen op een bepaald aspect van een zorgprogramma passen wij de indicatoren daar voor aan.", + "programs": [ + { + "key": "ZOO-dm", + "name": "Diabetes Mellitus type 2", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZOO-dm-poc" + }, + { + "type": "indicatorset", + "name": "Accrediteren", + "key": "ZOO-dm-acc" + }, + { + "type": "link", + "name": "InEen '22 benchmark", + "link": "/indicators/accreditatie?sets=IE22-dm" + } + ] + }, + { + "key": "ZOO-copd", + "name": "COPD", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZOO-copd-poc" + }, + { + "type": "indicatorset", + "name": "Accrediteren", + "key": "ZOO-copd-acc" + }, + { + "type": "link", + "name": "InEen '22 benchmark", + "link": "/indicators/accreditatie?sets=IE22-copd" + } + ] + }, + { + "key": "ZOO-oz", + "name": "Ouderenzorg", + "defaultShow": false, + "favState": "T", + "reports": [ + { + "type": "indicatorset", + "description": "Voor inzichten in uw patiënten reeds aangemeld bij de Ouderenzorg keten.", + "name": "Oproepen", + "key": "ZOO-oz-poc" + }, + { + "type": "link", + "description": "Loop door die patiënten heen die nog niet geregistreerd staan voor de ketenzorg, maar waar wel tekenen in het dossier zijn om ze te includeren.", + "name": "Casefinder", + "link": "/indicators/cf/oz/intro" + }, + { + "type": "link", + "name": "InEen '22 innovatieset", + "link": "/indicators/accreditatie?sets=IE22-oz" + } + ] + } + ] + }, + { + "title": "Ketenzorg programma's (ZEL)", + "description": "Alle programma's ondersteund door zorggroep ZEL (regio NWN/DWO), opgezet in overleg met de kaderartsen.", + "programs": [ + { + "key": "ZEL-dm", + "name": "Diabetes Mellitus type 2", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZEL-dm-poc" + }, + { + "type": "link", + "name": "InEen '22 benchmark", + "link": "/indicators/accreditatie?sets=IE22-dm" + } + ] + }, + { + "key": "ZEL-copd", + "name": "COPD", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZEL-copd-poc" + }, + { + "type": "link", + "name": "InEen '22 benchmark", + "link": "/indicators/accreditatie?sets=IE22-copd" + } + ] + }, + { + "key": "ZEL-astma", + "name": "Astma", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZEL-astma-poc" + }, + { + "type": "link", + "name": "InEen '22 benchmark", + "link": "/indicators/accreditatie?sets=IE22-astma" + } + ] + }, + { + "key": "ZEL-hvz", + "name": "HVZ Ketenzorg (HVZ+AF+HF)", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "HVZ Ketenzorg overzicht", + "key": "ZEL-hvzt" + }, + { + "type": "indicatorset", + "name": "HVZ Zorgprogramma", + "key": "ZEL-hvz-poc" + }, + { + "type": "indicatorset", + "name": "Atriumfibrilleren (AF)", + "key": "ZEL-af-poc" + }, + { + "type": "indicatorset", + "name": "Hartfalen (HF)", + "key": "ZEL-hf-poc" + }, + { + "type": "link", + "name": "InEen '22 benchmark HVZ", + "link": "/indicators/accreditatie?sets=IE22-hvz" + } + ] + }, + { + "key": "ZEL-vvr", + "name": "VVR", + "defaultShow": true, + "favState": "X", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZEL-vvr-poc" + }, + { + "type": "link", + "name": "InEen '22 benchmark", + "link": "/indicators/accreditatie?sets=IE22-vvr" + } + ] + } + ] + }, + { + "title": "Overige bepalingen", + "programs": [ + { + "key": "ZOO-dexa", + "name": "DEXA scans obv Osteoporose", + "description": "Beoordeel of je patiënten moet opgeroepen voor een DEXA scan obv Osteoporose/penie (en 65+).", + "defaultShow": false, + "favState": "X", + "badge": "In ontwikkeling", + "reports": [ + { + "type": "indicatorset", + "name": "Oproepen", + "key": "ZOO-dexa" + } + ] + }, + { + "key": "ZOO-nierfalen", + "name": "Nierfalen", + "description": "Controle op basis van het NHG-registratie advies bij Standard Chronische Nierschade (2019). Je beoordeelt per patiënt of er een (risico op een) nierfunctiestoornis is. Patiënten met een actieve episode U98.03, U99.00, of U99.01 worden door deze casefinder gezien als 'reeds beoordeeld'.", + "defaultShow": false, + "favState": "T", + "badge": "In ontwikkeling", + "reports": [ + { + "type": "link", + "name": "Casefinding", + "url": "/indicators/cf/nierfalen/intro" + } + ] + } + ] + } + ] +} diff --git a/examples/qoc_careprogram.ui_example.png b/examples/qoc_careprogram.ui_example.png new file mode 100644 index 0000000..8682562 Binary files /dev/null and b/examples/qoc_careprogram.ui_example.png differ diff --git a/paths/qoc_careprogram.yaml b/paths/qoc_careprogram.yaml index 62b5406..fa30fdf 100644 --- a/paths/qoc_careprogram.yaml +++ b/paths/qoc_careprogram.yaml @@ -9,9 +9,12 @@ get: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/CareProgram' + type: object + properties: + programs: + type: array + items: + $ref: '#/components/schemas/CareProgramSet' '401': $ref: '#/components/responses/NoAuth' '403': diff --git a/paths/qoc_careprogram_{careprogramKey}_fave.yaml b/paths/qoc_careprogram_{careprogramKey}_fave.yaml index 7ba3a2b..cdb1241 100644 --- a/paths/qoc_careprogram_{careprogramKey}_fave.yaml +++ b/paths/qoc_careprogram_{careprogramKey}_fave.yaml @@ -14,6 +14,8 @@ put: application/x-www-form-urlencoded: schema: type: string + description: |- + The value `T`/`F`/`X`, respectively: "favourited", "unfavourited", "no favourite status" example: T enum: - T @@ -28,7 +30,8 @@ put: type: object properties: key: - description: The care program key as provided + description: |- + The care program key as provided in `/qoc/careprogram`'s `key` property of a careprogram. type: string example: ZEL-dm2 value: diff --git a/schemas/CareProgram.yaml b/schemas/CareProgram.yaml index 4089e4c..0c0b2b1 100644 --- a/schemas/CareProgram.yaml +++ b/schemas/CareProgram.yaml @@ -1,16 +1,24 @@ type: object properties: + key: + description: >- + A unique string (always ASCII, no spaces) identifying this care program. + Can be used to fave/unfave. + type: string + example: ZOO-dm name: description: Human readable text in dutch, guaranteed to be quite short. type: string example: Diabetes Mellitus type 2 (ZEL) description: - description: in dutch and in *HTML*, can consist of multiple paragraphs, but won't be more than ~5 lines or so. + description: |- + *OPTIONAL* in dutch and in *HTML*, can consist of multiple paragraphs, but won't be more than ~5 lines or so. type: string example: Ketenzorg DM2 volgens de standaard werkwijze van zorgggroep ZEL. defaultShow: description: If `true`, show this unless explicitly unfavourited. If `false`, do not show unless explicitly favourited. type: boolean + example: true favState: description: If `T`, always show this. If `F`, never show it. If `X`, show if `defaultShow` is `true`. type: string @@ -19,6 +27,11 @@ properties: - T - F - X + badge: + description: |- + *OPTIONAL* A very short string to be shown in a badge; dutch text in *HTML*. If omitted, do not show any badge. + type: string + example: In ontwikkeling reports: description: |- A care program offers 1 or more reports; any given report is generally very different from another. @@ -28,25 +41,29 @@ properties: type: object properties: type: - oneOf: - - description: An indicator set report. use the `/qol/indicatorset` API endpoint. - type: string - example: indicatorset - - description: Resolve by loading the URL in the `url` property (`window.location = ` style). - type: string - example: link + description: |- + The type of the report available for this care program.
+
indicatorset
Use the /qol/indicatorset API endpoint.
+
link
Load the url property as main page (window.location = ..). +
+ enum: + - indicatorset + - link + type: string + example: indicatorset name: description: Short description in dutch text; show this in the button. type: string example: Indicatoren url: - description: >- + description: |- Only for `type: "link"`. type: string example: '/indicators/casefinder?t=dm' key: - description: >- - A unique string (always ASCII, no spaces) identifying this care program. - Pass to `/qoc/indicatorset` API, or can be used for fave/unfave. + description: |- + Only for `type: "indicatorset"`. + A unique string (always ASCII, no spaces) identifying this indicatorset. + Pass to `/qoc/indicatorset` API. type: string example: ZEL-dm2 diff --git a/schemas/CareProgramSet.yaml b/schemas/CareProgramSet.yaml new file mode 100644 index 0000000..f45aee8 --- /dev/null +++ b/schemas/CareProgramSet.yaml @@ -0,0 +1,16 @@ +type: object +properties: + title: + description: Human readable text in dutch, guaranteed to be quite short. + type: string + example: Ketenzorg programma's (algemeen) + description: + description: |- + *OPTIONAL* in dutch and in *HTML*, can consist of multiple paragraphs. + type: string + example: |- + Als jouw zorggroep nog niet aangesloten is, kun je altijd gebruik maken van onze algemene indicatoren. Wil je protocollen aanpassen of uitbreiden, laat het ons dan weten! Hier zijn geen kosten aan verbonden. Als je (of jouw zorggroep) andere manieren van registreren gebruikt of bijvoorbeeld een focus wil leggen op een bepaald aspect van een zorgprogramma passen wij de indicatoren daar voor aan. + programs: + type: array + items: + $ref: '#/components/schemas/CareProgram' \ No newline at end of file diff --git a/schemas/IndicatorSet.yaml b/schemas/IndicatorSet.yaml index bec138b..285c60e 100644 --- a/schemas/IndicatorSet.yaml +++ b/schemas/IndicatorSet.yaml @@ -2,6 +2,10 @@ description: |- A report about a care program based on showing a number of ratios, such as 'how many people in your practice have diabetes', or 'for all diabetes patients in your care with a recent blood pressure measurement, how do these blood pressure measurements split into "problematic" / "concern" / "okay" categories type: object properties: + key: + description: Unique identifier, not to be shown to the user, for referring to this indicator set in other API calls + type: string + example: ZOO-dm name: description: Human readable dutch text; should fit in one line. type: string diff --git a/zoo-api.yaml b/zoo-api.yaml index 129ec7f..d999f5f 100644 --- a/zoo-api.yaml +++ b/zoo-api.yaml @@ -56,6 +56,8 @@ components: $ref: 'schemas/Indicator.yaml' CareProgram: $ref: 'schemas/CareProgram.yaml' + CareProgramSet: + $ref: 'schemas/CareProgramSet.yaml' parameters: Authorization: