description: |-
A single ratio or flat number; should be shown as one box with a chart (generally, a single fixed-size bar with each ratio element rendered on this bar). The numbers in this object are on some axis, generally, percentage.
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 percentage (i.e. 0-100).
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: 10.0
default: 0
xMax:
description: |-
Numeric value of the far right of the bar; represents a percentage (i.e. 0-100).
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: 20.0
default: 100.0
xLow:
description: |-
*OPTIONAL* If present, draw a marker at this position indicating a lower bound. Values can be below it, but that is noteworthy, for example
because that deviates far from national averages, or this bound represents a goal set by the practice/insurer/care group and falling below it
means the goal is not met.
type: object
properties:
pos:
description: The percentage at which the marker is to be drawn.
type: number
example: 14.0
legend:
description: A very short (dutch, *HTML*) description of what this marker represents.
type: string
example: "14%"
kind:
description: |-
What kind of bound is represented.
deviation
- This marker represents X standard deviations above/below expected outcomes. Common for e.g. prevalence of a chronic illness.
goal
- This marker represents a goal, for example, You should measure blood pressure for at least this % of your managed diabetes patients.
type: string
example: deviation
enum:
- deviation
- goal
xHigh:
description: |-
Like `xLow`, but representing a higher limit instead (expectation is that nominal values would be _below_ this limit).
type: object
properties:
pos:
type: number
example: 18.0
legend:
type: string
example: "18%"
kind:
type: string
example: deviation
enum:
- deviation
- goal
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:
- failed
- normal
- met
- focus
legend:
description: >-
*OPTIONAL* If present, render a legend box with the cart explaining what each kind of part (see `bars > parts`) represents.
Each key/value pair in this object maps a style (as used `bars > parts > style`) onto a very short, dutch, *HTML* description.
type: object
example: |-
{
"serious": "≥140",
"concern": "120-140",
"good": "≤120"
}
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: |-
A short *HTML* (dutch) description of the entity+measurement date represented by this bar.
If only one bar is provided, can be blank.
type: string
example: Praktijk 2023Q3
value:
description: >-
*OPTIONAL* A number indicating the absolute value of what the entire bar represents. For example, if the bar represents
the number of patients included in the diabetes care program that have a recent blood pressure value, this value would
contain the total number of patients included in the care program, which serves as the divisor for this indicator.
type: number
example: 262
parts:
type: array
items:
description: >-
Each part represents a slice of the total 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.
For example, there could be 3 parts: 40-Good, 35-Concern, 25-Problematic.
Place each part in sequence in the bar. They are guaranteed to fit. The values for each part are relative to `xMin`/`xMax`, e.g.
a percentage.
type: object
properties:
style:
description: |-
Describes what kind of ratio this part describes.
Each part represents some kind of ratio and this describes the nature of it. Each key should result in some style, generally, the color of the bar. 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) should be rendered dark red.
type: string
example: concern
enum:
- good
- concern
- problem
- serious
- measured
- nonPrefMeasured
- 'TBD: There are many more.'
width:
description: The size of this part, in percentages (i.e. relative to `xMin`-`xMax`).
type: number
example: 11.068702
value:
description: The absolute value (representing a number of patients), relative to the bar's `value` property.
type: number
example: 29