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.
238 lines
11 KiB
YAML
238 lines
11 KiB
YAML
type: object
|
|
required:
|
|
- key
|
|
- title
|
|
- type
|
|
- style
|
|
- bars
|
|
properties:
|
|
key:
|
|
description: Unique identifier, not to be shown to the user, for referring to this indicator in other API calls
|
|
type: string
|
|
example: ZEL-dm2-bp-result
|
|
basedOn:
|
|
description: |-
|
|
*OPTIONAL* Refers to the key of another indicator in this set; the data this indicator represents is a calculation
|
|
based on the population of the referred-to indicator. Not necessarily something that needs to be shown in the user interface.
|
|
type: string
|
|
example: ZEL-dm2-bp
|
|
title:
|
|
description: Short, in dutch, plain text.
|
|
type: string
|
|
example: Prevalentie Diabetes
|
|
focus:
|
|
description: |-
|
|
Caregroups can choose key performance indicators; such indicators are considered 'focus' indicators.
|
|
Focus indicators tend to be temporary; most caregroups adjust them yearly or every other year.
|
|
type: boolean
|
|
example: false
|
|
htmlDescription:
|
|
description: In dutch, HTML formatted; if present, contains details on how this value is measured (in more readable, less technical terms than `htmlDetail`.
|
|
type: string
|
|
example: Patiënten met ≥ 1 voorschrift(en) long acting beta-2 agonists (LABA) of long acting muscarine antagonists (LAMA) in de afgelopen 12 maanden
|
|
htmlDetail:
|
|
description: In dutch, HTML formatted; if present, contains specific details on how this value is measured (for example, contains information about which NHG bepaling codes are used).
|
|
type: string
|
|
example: LAMA (<code>R03BB</code> (04, 05, 06 of 07)) of LABA (<code>R03AC</code> (12, 13, 18 of 19))
|
|
type:
|
|
description: |-
|
|
What kind of indicator this is.
|
|
|
|
`basic` and `goal` are roughly the same: They represent the measurement/registration status of a certain medical aspect, such as blood pressure, and always
|
|
break down in 3 groups: "Patients for whom this measurement/registration has been performed", "same, but in a way that cannot be parsed or isn't the preferred registration/measurement method", "not measured/registered". A `goal` type also has a goal of some sort (a minimum % of patients for which this property needs to be measured/registered, for example to meet care group aims or a goal stipulated by
|
|
a national standard or insurance negotiation). A `basic` type doesn't have such a goal.
|
|
|
|
`prevalence` is somewhat special: It measures how many patients are relevant for the care this indicatorset is about.
|
|
|
|
`result` represents the patients for whom a certain medical aspect is registered/measured, divided into categories. For example, for bloodpressure, all those patients with a valid, standardized
|
|
blood pressure measurement are sorted into "their blood pressure is allright", "their blood pressure is a bit high", and "they suffer from high blood pressure". result type indicators have
|
|
legends.
|
|
type: string
|
|
example: basic
|
|
enum:
|
|
- basic
|
|
- goal
|
|
- prevalence
|
|
- result
|
|
index:
|
|
description: |-
|
|
*OPTIONAL* Indicators usually are based on documentation that tends to take the form of an
|
|
ordered list (like html `<ol>`), and it is convenient for indicators to copy this numbering scheme.
|
|
For most UI applications, simply prefix this to the title, e.g. render as `1. Title Here`.
|
|
If missing, do not show an index in the title.
|
|
type: integer
|
|
format: int32
|
|
minimum: 1
|
|
example: 1
|
|
xMin:
|
|
description: |-
|
|
Numeric value of the far left of the bar; represents a ratio (0.0-1.0).
|
|
Most indicators range from 0% to 100%, but for some, where the values to be shown represent only a small percentage,
|
|
the bar is 'zoomed in'; it represents only a slice of the total range.
|
|
type: number
|
|
example: .05
|
|
default: 0.0
|
|
xMax:
|
|
description: |-
|
|
Numeric value of the far right of the bar; represents a ratio (0.0-1.0).
|
|
Most indicators range from 0% to 100%, but for some, where the values to be shown represent only a small percentage,
|
|
the bar is 'zoomed in'; it represents only a slice of the total range. Generally, `prevalence` type indicators have an `xMax` that isn't 1.0.
|
|
type: number
|
|
example: .105
|
|
default: 1.0
|
|
markers:
|
|
description: |-
|
|
A marker is rendered on the percentage bar and represents a noteworthy boundary, for example, for a prevalence indicator,
|
|
one standard deviation up, respectively down, from the average, to provide context. Or, a goal as set forth by a zorggroep
|
|
or national standards body e.g. for how many diabetes patients should have a recent HbA1c measurement. If the indicator itself
|
|
is shown as a horizontal bar, this would be a small vertical line rendered on top of it. Generally, `prevalence` and `goal` type indicators have markers.
|
|
type: array
|
|
items:
|
|
type: number
|
|
example: [.25, .80]
|
|
unitDesc:
|
|
description: |-
|
|
*OPTIONAL* describes the unit that the stated legend values are in, in dutch, and *HTML*. For example, if showing blood pressure, `mmHg`. If missing, treat as the empty string (do not show unit at all).
|
|
type: string
|
|
example: mmHg
|
|
default: ''
|
|
style:
|
|
description: |-
|
|
A key that describes the render style for this entire indicator.
|
|
For example, 'failed' indicates that the indicator should be rendered
|
|
with a red hue to focus the user's attention on the fact that this
|
|
indicator represents a goal or requirement that they do not currently
|
|
meet.
|
|
type: string
|
|
example: failed
|
|
default: normal
|
|
enum:
|
|
- normal
|
|
- pass
|
|
- fail
|
|
counts:
|
|
description: >-
|
|
*OPTIONAL* If present, the actual values (i.e. number of patients) for each segment of the main bar; if the bar is not complete
|
|
(the values do not add up to 100), an extra value is included representing this remainder.
|
|
type: array
|
|
items:
|
|
type: number
|
|
example: [11, 157, 0, 2]
|
|
legend:
|
|
description: >-
|
|
*OPTIONAL* If present, render a legend box with the card explaining what each kind of segment (see `bars > segments`) represents.
|
|
Each item in this array maps maps a style (as used in `bars > segments > style`) onto a very short, dutch, *HTML* description.
|
|
Generally only `result` type indicators have a `legend`.
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
title:
|
|
description: The short, human readable description (dutch, *HTML*).
|
|
type: string
|
|
category:
|
|
description: A key indicating which style to apply this segment / legend.
|
|
type: string
|
|
enum:
|
|
- preferred
|
|
- alternative
|
|
- negative
|
|
- regProblem
|
|
- red
|
|
- orange
|
|
- high
|
|
- good
|
|
- low
|
|
- yes
|
|
- await
|
|
- no
|
|
- late
|
|
- concern
|
|
- mild
|
|
- serious
|
|
value:
|
|
description: The amount of patients in this segment for the main bar.
|
|
type: number
|
|
example: |-
|
|
[
|
|
{
|
|
"title": "≥140",
|
|
"category": "serious",
|
|
"value": 11
|
|
},
|
|
{
|
|
"title": "120-140",
|
|
"category": "concern",
|
|
"value" 50
|
|
},
|
|
{
|
|
"title": "≤120",
|
|
"category": "good",
|
|
"value": 60
|
|
}
|
|
]
|
|
bars:
|
|
type: array
|
|
items:
|
|
description: >-
|
|
Each bar describes the calculated result for one entity at one measurement date. For example, an indicator box could contain 3 such entries:
|
|
|
|
* The practice, this quarter.
|
|
* The practice, previous quarter (to put this quarter into context).
|
|
* GP group (<em>zorg groep</em>)'s results this quarter.
|
|
|
|
There is always at least one. The first one is the main bar, that is, what this report is reporting on; all further bars exist solely
|
|
to provide context.
|
|
type: object
|
|
required:
|
|
- segments
|
|
properties:
|
|
calculated:
|
|
description: The timestamp on which the bar was calculated. This can be different from the reference date. Mainly for debugging purposes.
|
|
$ref: ../schemas/dateTime.yaml
|
|
legend:
|
|
description: |-
|
|
*OPTIONAL* A short *HTML* (dutch) description of the entity+measurement date represented by this bar.
|
|
If only one bar is provided, can be missing (no legend is needed).
|
|
type: string
|
|
example: Praktijk 2023Q3
|
|
default: ''
|
|
pop:
|
|
description: |-
|
|
A number representing the total population that this indicator has calculated against; can have decimal values if this
|
|
indicatorset represents a group average.
|
|
type: number
|
|
example: 854.0
|
|
segments:
|
|
type: array
|
|
items:
|
|
description: >-
|
|
Each segment represents a slice of the measured population. For example, those patients in the diabetes care program with
|
|
a recent blood pressure measurement registration, or, for an indicator showing the distribution of blood pressure
|
|
values amongst those with a recent registration, the number of patients whose BP measurement is of serious health concern.
|
|
|
|
Place each segment in sequence in the bar. They are guaranteed to fit. The values for each part are relative to `xMin`/`xMax`, e.g.
|
|
a percentage. They may not add up to 100 - in that case, leave the remainder blank.
|
|
|
|
For example:
|
|
|
|
* 3 segments for 'blood pressure results': 40-Good, 35-Concern, 25-Problematic.
|
|
* 1 segment for 'blood pressure has been measured': 85-Measured
|
|
type: object
|
|
required:
|
|
- style
|
|
- value
|
|
properties:
|
|
style:
|
|
description: |-
|
|
Describes what kind of ratio this segment describes.
|
|
Each segment represents some kind of ratio and this describes the nature of it. Render the segment according to its style. For example, `serious` (indicating a group of patients whose lab result for this indicator is of serious concern, i.e. medically speaking quite bad news) could be rendered dark red. Same categories as `legend` - `category`
|
|
type: string
|
|
example: concern
|
|
value:
|
|
description: |-
|
|
The value (in percent). For example, if `xMin` is .10, `xMax` is .40, and this is .20, render this segment at 33% of
|
|
the total length (because .20 is a third of the way in, in the range .10-.40).
|
|
type: number
|
|
example: 0.2972
|