diff --git a/paths/population_frequentUser_count.yaml b/paths/population_frequentUser_count.yaml new file mode 100644 index 0000000..b99fd5f --- /dev/null +++ b/paths/population_frequentUser_count.yaml @@ -0,0 +1,70 @@ +get: + tags: + - Frequent users + operationId: populationFrequentUserCount + summary: "Patient population projected on the number of visits" + parameters: + - name: periodStart + in: query + description: Start of the period (including) to analyze. + schema: + $ref: ../schemas/date.yaml + - name: periodEnd + in: query + description: End of the period (excluding) to analyze. + schema: + $ref: ../schemas/date.yaml + - name: doctorAgbCodes + in: query + description: Any valid AGB-code. + example: 01015678,01018765,01014321 + schema: + type: array + items: + type: number + - name: doctorCodes + in: query + description: Code of the doctor as known in the HIS. + schema: + type: array + items: + $ref: ../schemas/med_dossier/Practitioner.yaml + - name: featCodes + in: query + description: "The feats which are identified as time consuming or otherwise taking effort of the practice, defaults to: 12011,12411,12001,12401,12010,12410." + schema: + $ref: ../schemas/med_dossier/FeatCode.yaml + - name: patients + in: query + schema: + $ref: ../schemas/pat-patId.yaml + responses: + 200: + description: "An object with at least the frequency property which holds an array with the number of visits and their frequency." + content: + application/json: + schema: + type: object + required: + - frequencies + properties: + frequencies: + type: array + items: + type: object + properties: + visits: + type: number + frequency: + type: number + example: + - {visits: 1, frequency: 355} + - {visits: 2, frequency: 240} + - {visits: 4, frequency: 25} + 401: + $ref: '../zoo-api.yaml#/components/responses/JwtFailure' + 403: + $ref: '../zoo-api.yaml#/components/responses/NotToBeShare' + 404: + $ref: '../zoo-api.yaml#/components/responses/PatNotFound' + \ No newline at end of file diff --git a/paths/population_frequentUser_patient.yaml b/paths/population_frequentUser_patient.yaml new file mode 100644 index 0000000..05f638a --- /dev/null +++ b/paths/population_frequentUser_patient.yaml @@ -0,0 +1,87 @@ +get: + tags: + - Frequent users + operationId: populationFrequentUserPatient + summary: "Get the feats of a specific patient" + parameters: + - name: periodStart + in: query + description: Start of the period (including) to analyze. + schema: + $ref: ../schemas/date.yaml + - name: periodEnd + in: query + description: End of the period (excluding) to analyze. + schema: + $ref: ../schemas/date.yaml + - name: doctorAgbCodes + in: query + description: Any valid AGB-code. + schema: + type: array + items: + type: number + - name: doctorCodes + in: query + description: Code of the doctor as known in the HIS. + example: 01015678,01018765,01014321 + schema: + type: array + items: + $ref: ../schemas/med_dossier/Practitioner.yaml + - name: featCodes + in: query + description: "The feats which are identified as time consuming or otherwise taking effort of the practice, defaults to: 12011,12411,12001,12401,12010,12410." + schema: + $ref: ../schemas/med_dossier/FeatCode.yaml + - name: patId + in: query + schema: + $ref: ../schemas/pat-patId.yaml + responses: + 200: + description: "Lists for exactly one patient all feats per day. All ICPC codes which can be found on a given day are added to the combination of feat and day. This causes duplicate output of the ICPC codes if two or more different feats are registered on the same day. This is due a lack of the registration of the exact time of the contact moment in most HIS's." + content: + application/json: + schema: + type: object + properties: + dict: + $ref: ../schemas/TermsDictionary.yaml + feats: + type: array + items: + type: object + properties: + featCode: + type: number + example: 12001 + date: + type: string + example: 2018-03-29 + employee: + type: string + example: RH + memoCode: + type: string + example: C2 + description: + type: string + example: consult huisarts langer dan 20 minuten + patId: + $ref: ../schemas/pat-patId.yaml + example: 13046 + icpc: + type: array + items: + type: string + example: + - S74.02 + - Y07.00 + - K87.00 + 401: + $ref: '../zoo-api.yaml#/components/responses/JwtFailure' + 403: + $ref: '../zoo-api.yaml#/components/responses/NotToBeShare' + 404: + $ref: '../zoo-api.yaml#/components/responses/PatNotFound' \ No newline at end of file diff --git a/paths/population_frequentUser_patients.yaml b/paths/population_frequentUser_patients.yaml new file mode 100644 index 0000000..c75310f --- /dev/null +++ b/paths/population_frequentUser_patients.yaml @@ -0,0 +1,106 @@ +get: + tags: + - Frequent users + operationId: populationFrequentUserPatients + summary: "Lists the top 20 frequent users (patients)" + parameters: + - name: periodStart + in: query + description: Start of the period (including) to analyze. + schema: + $ref: ../schemas/date.yaml + - name: periodEnd + in: query + description: End of the period (excluding) to analyze. + schema: + $ref: ../schemas/date.yaml + - name: doctorAgbCodes + in: query + description: Any valid AGB-code. + schema: + type: array + items: + type: number + - name: doctorCodes + in: query + description: Code of the doctor as known in the HIS. + example: 01015678,01018765,01014321 + schema: + type: array + items: + $ref: ../schemas/med_dossier/Practitioner.yaml + - name: featCodes + in: query + description: "The feats which are identified as time consuming or otherwise taking effort of the practice, defaults to: 12011,12411,12001,12401,12010,12410." + schema: + $ref: ../schemas/med_dossier/FeatCode.yaml + - name: patients + in: query + schema: + $ref: ../schemas/pat-patId.yaml + - name: ppi + in: query + description: "Allow patient personal identifying information in the response. Defaults to false if omitted." + example: true + schema: + type: boolean + - name: limit + in: query + description: "Some integer between 1 and 50. Limits the output to the top 1 to 50 of the frequent users (patients). Defaults to 20 if omitted or not in the specified range." + schema: + type: number + responses: + 200: + description: "Responses an array with patients. Only the top 20 users is exported. The output is ranked with the most frequent user at position 0 of the array." + content: + application/json: + schema: + type: array + items: + type: object + properties: + patId: + type: string + example: 1349 + lastName: + type: string + example: van Loon - van de Ven + description: Omitted if parameter ppi is omitted or false. + gender: + type: string + example: V + description: Omitted if parameter ppi is omitted or false. + birthdate: + type: string + example: 1929-08-21 + description: Omitted if parameter ppi is omitted or false. + feats: + type: object + properties: + featCode0: + type: object + description: The string featCode0 is replaced by an actual code, e.g. 12001. + properties: + description: + type: string + example: consult huisarts langer dan 20 minuten + description: The feat description is taken from the HIS import. + n: + type: number + description: The count of the feats with the given code for the patient. + example: 59 + featCodeN: + type: object + properties: + description: + type: string + example: Consult regulier korter dan 5 minuten + n: + type: number + example: 54 + 401: + $ref: '../zoo-api.yaml#/components/responses/JwtFailure' + 403: + $ref: '../zoo-api.yaml#/components/responses/NotToBeShare' + 404: + $ref: '../zoo-api.yaml#/components/responses/PatNotFound' \ No newline at end of file diff --git a/schemas/date.yaml b/schemas/date.yaml new file mode 100644 index 0000000..9c01c7f --- /dev/null +++ b/schemas/date.yaml @@ -0,0 +1,3 @@ +description: Date without time part in ISO-8601 format. +type: string +example: "1970-01-13" \ No newline at end of file diff --git a/schemas/med_dossier/FeatCode.yaml b/schemas/med_dossier/FeatCode.yaml new file mode 100644 index 0000000..6212290 --- /dev/null +++ b/schemas/med_dossier/FeatCode.yaml @@ -0,0 +1,2 @@ +description: "Vektis COD367 list 8 feat code expressed as an integer." +type: number \ No newline at end of file diff --git a/zoo-api.yaml b/zoo-api.yaml index 11389c6..e33a50b 100644 --- a/zoo-api.yaml +++ b/zoo-api.yaml @@ -27,6 +27,9 @@ tags: - name: Population statistics description: |- Statistics of a patient population. + - name: Frequent users + description: |- + Gives insight and enumerates the patients who make most use of the practice. Use is defined as time needed from the doctor(s). Certain feat codes need more or less a constant time. These are used to get an approximation. - name: Quality of Care description: |- API related to Quality of Care (QoC) features @@ -51,6 +54,12 @@ paths: $ref: 'paths/population_statistics.yaml' /population/statistics/deprivedNeighborhood: $ref: 'paths/population_statistics_deprived.yaml' + /population/frequentUser/count: + $ref: 'paths/population_frequentUser_count.yaml' + /population/frequentUser/patients: + $ref: 'paths/population_frequentUser_patients.yaml' + /population/frequentUser/patient: + $ref: 'paths/population_frequentUser_patient.yaml' /qoc/careprogram: $ref: 'paths/qoc_careprogram.yaml' /qoc/indicatorset/{setKey}: @@ -195,3 +204,5 @@ components: enum: - practice - patient + NotToBeShare: + description: "Indicated practice is known but has not authorized ZOO to share this information with signer." \ No newline at end of file