type: object
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, *HTML* (but rarely includes formatting; at most, sup/superscript).
type: string
example: Prevalentie Diabetes
index:
description: |-
*OPTIONAL* Indicators usually are based on documentation that tends to take the form of an
ordered list (like html `
`), 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: number
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.
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.
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.
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 (zorg groep)'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
properties:
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: ''
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
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