Measures Metadata
Introduction
The purpose of the measures.json metadata is to make the Web Interface system as dynamic as possible allowing changes in measures from year to year to be made without requiring code changes in the API or the Web Interface UI. It is also informational and contains measure descriptions and measure questions that non-technical CMS personnel can modify to update the measure definitions at runtime.
You can download the measures.json specification can be viewed and/or fetched for your own purposes here
The schema.json used to validate the structure of the metadata can be found here
Measure Data Model
Confirmation
For every measure, e.g. CARE-2
, a patient can be confirmed, or not
confirmed for any of a number of different reasons, represented by different
confirmation values. Certain confirmation values may require a help desk ticket
number to be entered for that measure for the patient.
Attributes
A set of attributes can be defined for each measure. The value is stored as a string but data type and other kinds of validations can be applied before storing the value.
An attribute can have many values but by default is assumed to have one.
Scopes
Attributes can have values in different attribute scopes. The full set of scopes for a scope group is defined using an attribute that corresponds to the name of the group. The distinct values of a scope group attribute define all the possible scopes for the scope group with that name. As with any kind of attribute data, scopes are per patient. One patient will have a different set of scopes than another for the same scope group.
Interaction Model
The first step is to confirm the patient for a measure. Attribute data should not be allowed until the patient is confirmed for the measure.
Once confirmed, attribute data can be entered. Data entry for certain attributes may be prohibited until data for some other related attribute is entered and meets certain conditions, i.e. it equals a certain value, or is valid (or not), or meets its performance (or doesn’t).
Basic Validity Rules
Dependencies
Dependencies between attributes can be defined with the requiredAttribute
property of an attribute definition. Data should not be allowed for the
dependent attribute until the required attribute meets the specified condition.
There are three types of conditions that can be defined:
- Value: The related attribute must equal some value. Ex:
"requiredAttribute": { "name": "foo", "value": "bar" }
- Valid: The related attribute must be valid or not. Ex:
"requiredAttribute": { "name": "foo", "valid": true }
- Performant: The related attribute must be performant or not. Ex:
"requiredAttribute": { "name": "foo", "performant": false }
Inputs
We can define rules against the input control used to enter data for an
attribute with the input
property.
Types
The type
of an attribute defines the type of input control presented to allow
the user to enter data for the attribute.
- text (default)
- radio
- select
Choices
We can define choices
for an input
. Each choice has value
and a label
.
Ex:
"choices": {
"Y": { "label": "Yes" },
"N": { "label": " No" }
}
The choices define the valid values for that attribute. The UI can constrain the interface to only present and allow the specified choices.
Data Types
The data type of the attribute can be defined with the dataType
property of an
input
: “string” (default), “number”, integer, or “date”.
Measure Specifications
The CMS Web Interface Measure Specifications can be downloaded from the QPP Resource Library here.