ConformanceThis is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
| Clinical Quality Information Work Group | Maturity Level: N/A | Standards Status: Informative |
Raw JSON (canonical form + also see JSON Format Specification)
Operation Definition
{
"resourceType" : "OperationDefinition",
"id" : "Measure-evaluate",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: OperationDefinition Measure-evaluate</b></p><a name=\"Measure-evaluate\"> </a><a name=\"hcMeasure-evaluate\"> </a><p>URL: [base]/Measure/$evaluate</p><p>URL: [base]/Measure/[id]/$evaluate</p><h3>Parameters</h3><table class=\"grid\"><tr><td><b>Use</b></td><td><b>Name</b></td><td><b>Scope</b></td><td><b>Cardinality</b></td><td><b>Type</b></td><td><b>Binding</b></td><td><b>Documentation</b></td></tr><tr><td>IN</td><td>measure</td><td>type</td><td>0..1</td><td><a href=\"measure.html\">Measure</a></td><td/><td><div><p>The measure to evaluate. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter is required, or a url (and optionally version) must be supplied.</p>\n</div></td></tr><tr><td>IN</td><td>url</td><td>type</td><td>0..1</td><td><a href=\"datatypes.html#canonical\">canonical</a> (<a href=\"measure.html\" title=\"http://hl7.org/fhir/StructureDefinition/Measure\">Measure</a>)</td><td/><td><div><p>The url of the measure to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter (and optionally the version), or the measure parameter must be supplied</p>\n</div></td></tr><tr><td>IN</td><td>version</td><td>type</td><td>0..1</td><td><a href=\"datatypes.html#string\">string</a></td><td/><td><div><p>The version of the measure to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter may only be used if the url parameter is supplied, and the version is not supplied with it.</p>\n</div></td></tr><tr><td>IN</td><td>subject</td><td/><td>0..1</td><td><a href=\"datatypes.html#string\">string</a><br/>(<a href=\"search.html#reference\">reference</a>)</td><td/><td><div><p>Subject for which the measure will be calculated. The subject may be a Patient, Practitioner, PractitionerRole, Organization, Location, Device, or Group. Subjects provided in this parameter will be resolved as the subject of the measure based on the type of the subject. If multiple subjects of the same type are provided, the behavior is implementation-defined</p>\n</div></td></tr><tr><td>IN</td><td>periodStart</td><td/><td>1..1</td><td><a href=\"datatypes.html#date\">date</a></td><td/><td><div><p>The start of the measurement period. In keeping with the semantics of the date parameter used in the FHIR search operation, the period will start at the beginning of the period implied by the supplied timestamp. E.g. a value of 2014 would set the period start to be 2014-01-01T00:00:00 inclusive</p>\n</div></td></tr><tr><td>IN</td><td>periodEnd</td><td/><td>1..1</td><td><a href=\"datatypes.html#date\">date</a></td><td/><td><div><p>The end of the measurement period. The period will end at the end of the period implied by the supplied timestamp. E.g. a value of 2014 would set the period end to be 2014-12-31T23:59:59 inclusive</p>\n</div></td></tr><tr><td>IN</td><td>reportType</td><td/><td>0..1</td><td><a href=\"datatypes.html#code\">code</a></td><td><a href=\"valueset-measure-report-evaluation-type.html\">Measure Report Evaluation Type</a> (Required)</td><td><div><p>The type of measure report: <code>individual</code>, <code>subject-list</code>, or <code>summary</code>. If not specified, a default value of <code>summary</code> will be used if the subject parameter is supplied and is a <code>Group</code> resource; a default value of <code>individual</code> will be used if the subject parameter is supplied and is not a <code>Group</code> resource; otherwise, a default value of <code>summary</code> will be used. NOTE: Implementations should support the use of <code>subject</code> for <code>individual</code> and <code>population</code> for <code>summary</code> for backwards compatibility with existing implementations.</p>\n</div></td></tr><tr><td>IN</td><td>provider</td><td/><td>0..1</td><td><a href=\"datatypes.html#string\">string</a><br/>(<a href=\"search.html#reference\">reference</a>)</td><td/><td><div><p>The provider for which the report will be run. This may be a reference to a Practitioner, PractitionerRole, or Organization. If specified, the measure will be calculated for subjects that have a primary relationship to the identified provider. How this relationship is determined is implementation-specific.</p>\n</div></td></tr><tr><td>IN</td><td>location</td><td/><td>0..1</td><td><a href=\"datatypes.html#string\">string</a><br/>(<a href=\"search.html#reference\">reference</a>)</td><td/><td><div><p>The location for which the report will be run.</p>\n</div></td></tr><tr><td>IN</td><td>lastReceivedOn</td><td/><td>0..1</td><td><a href=\"datatypes.html#dateTime\">dateTime</a></td><td/><td><div><p>The date the results of this measure were last received. This parameter is only valid for patient-level reports and is used to indicate when the last time a result for this patient was received. This information can be used to limit the set of resources returned for a patient-level report</p>\n</div></td></tr><tr><td>IN</td><td>parameters</td><td/><td>0..1</td><td><a href=\"parameters.html\">Parameters</a></td><td/><td><div><p>Any input parameters for the evaluation. Parameters defined in this input will be made available by name to the CQL expression. Parameter types are mapped to CQL as specified in the <a href=\"https://hl7.org/fhir/uv/cql/\">Using CQL with FHIR</a> implementation guide. If a parameter appears more than once in the input Parameters resource, it is represented with a List in the input CQL. If a parameter has parts, it is represented as a Tuple in the input CQL.</p>\n</div></td></tr><tr><td>IN</td><td>stratifier</td><td/><td>0..*</td><td></td><td/><td><div><p>Additional stratifier criteria for the measure. The resulting MeasureReport will contain this additional stratifier information as well as any stratifiers defined in the Measure being reported.</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.measureUrl</td><td/><td>0..*</td><td><a href=\"datatypes.html#canonical\">canonical</a></td><td/><td><div><p>If the evaluate operation is for multiple measures, this parameter may be used to specify which measures the additional stratifier should be reported on. If not specified, the stratifier will be reported on all the measures. Note that if this results in a stratifier definition that cannot be interpreted correctly for the measure being reported, the behavior is at server discretion; it may throw an error, or simply ignore the additional stratifier definition.</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.groupId</td><td/><td>0..*</td><td><a href=\"datatypes.html#string\">string</a></td><td/><td><div><p>If the measure being evaluated has multiple groups, this parameter may be used to specify which groups the additional stratifier should be reported on. If not specified, the stratifier will be reported on all groups in the measure being reported. Note that if this results in a stratifier definition that cannot be interpreted correctly for the measure group being reported, the behavior is at server discretion; it may throw an error, or simply ignore the additional stratifier definition.</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.component</td><td/><td>1..*</td><td></td><td/><td><div><p>One or more components of the stratifier definition. Additional stratifiers are reported in the MeasureReport in the same way as stratifiers defined in the Measure.</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.component.code</td><td/><td>0..1</td><td><a href=\"datatypes.html#code\">code</a></td><td><a href=\"valueset-measure-stratifier-example.html\">Measure Stratifier Example</a> (Example)</td><td><div><p>Meaning of the stratifier component.</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.component.description</td><td/><td>0..1</td><td><a href=\"datatypes.html#markdown\">markdown</a></td><td/><td><div><p>Human readable description of the stratifier component</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.component.valueSet</td><td/><td>0..1</td><td><a href=\"datatypes.html#canonical\">canonical</a> (<a href=\"valueset.html\" title=\"http://hl7.org/fhir/StructureDefinition/ValueSet\">ValueSet</a>)</td><td/><td><div><p>A value set defining possible stratifier values. If both expression and valueset are specified, they SHALL be consistent (i.e. the expression SHALL evaluate to a code that is a member of the specified valueset).</p>\n</div></td></tr><tr><td>IN</td><td>stratifier.component.unit</td><td/><td>0..1</td><td><a href=\"datatypes.html#string\">string</a></td><td/><td><div><p>Indicates what units, if any, stratifier values are expected to be expressed in. This element SHOULD be specified in UCUM units or calendar units. This information SHOULD be provided if it cannot be inferred from the stsratifier expression directly.</p>\n</div></td></tr><tr><td>IN</td><td>supplementalData</td><td/><td>0..*</td><td></td><td/><td><div><p>What additional supplemental data should be reported with the measure. This additional data is specified in the same was as supplemental data in the Measure resource, and is reported in the same way in the MeasureReport.</p>\n</div></td></tr><tr><td>IN</td><td>supplementalData.code</td><td/><td>0..1</td><td><a href=\"datatypes.html#CodeableConcept\">CodeableConcept</a></td><td><a href=\"valueset-measure-supplemental-data-example.html\">Measure Supplemental Data Example</a> (Example)</td><td><div><p>Meaning of the supplemental data.</p>\n</div></td></tr><tr><td>IN</td><td>supplementalData.usage</td><td/><td>0..*</td><td><a href=\"datatypes.html#CodeableConcept\">CodeableConcept</a></td><td><a href=\"http://terminology.hl7.org/6.5.0/ValueSet-measure-data-usage.html\">MeasureDataUsage</a> (Extensible)</td><td><div><p>supplemental-data | risk-adjustment | factor</p>\n</div></td></tr><tr><td>IN</td><td>supplementalData.description</td><td/><td>0..1</td><td><a href=\"datatypes.html#markdown\">markdown</a></td><td/><td><div><p>Human readable description of this supplemental data element</p>\n</div></td></tr><tr><td>IN</td><td>supplementalData.criteria</td><td/><td>1..1</td><td><a href=\"metadatatypes.html#Expression\">Expression</a></td><td/><td><div><p>Expression describing the additional data to be reported. This may be the name of an expression in a library, or it may be a path to a specific data element, reachable from the subject being evaluated.</p>\n</div></td></tr><tr><td>OUT</td><td>return</td><td/><td>0..*</td><td><a href=\"bundle.html\">Bundle</a></td><td/><td><div><p>The results of the measure calculation. The result of this operation will be a Bundle for each input subject, where the first entry of the Bundle is a MeasureReport representing the results of the calculation, and subsequent entries in the Bundle are resources created and/or evaluated as part of the calculation. See the MeasureReport resource for a complete description of the output of this operation. Note that implementations may choose to return a MeasureReport with a status of pending to indicate that the report is still being generated. In this case, the client can use a polling method to continually request the MeasureReport until the status is updated to complete</p>\n</div></td></tr></table><div><p>The effect of invoking this operation is to calculate the measure for the given subject(s), or all subjects if no subject is supplied. For individual and subject-list reports, the result is a set of Bundles, one for each evaluated subject, where the first entry in each bundle is a MeasureReport resource, and subsequent entries in the Bundle are resources evaluated or created as part of the measure evaluation. For the summary report, the result of this operation is a single bundle with a single MeasureReport of type summary. Note that whether or not this operation affects the state of the server depends on whether the server persists the generated MeasureReport. If the MeasureReport is not persisted, this operation can be invoked with GET</p>\n</div></div>"
},
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger" : 3
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode" : "trial-use"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode" : "cqi"
}],
"url" : "http://hl7.org/fhir/OperationDefinition/Measure-evaluate",
"version" : "6.0.0-ballot3",
"name" : "Evaluate",
"title" : "Evaluate",
"status" : "draft",
"kind" : "operation",
"experimental" : false,
"date" : "2025-10-25T07:37:51+00:00",
"publisher" : "HL7 International / Clinical Quality Information",
"contact" : [{
"telecom" : [{
"system" : "url",
"value" : "http://hl7.org/fhir"
},
{
"system" : "email",
"value" : "fhir@lists.hl7.org"
}]
},
{
"telecom" : [{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/cqi"
}]
}],
"description" : "The evaluate operation processes the given Measure(s) to produce the corresponding MeasureReport(s). This operation expects that Measure resources used have a computable representation. The value of title elements in the resulting [MeasureReport](clinicalreasoning-quality-reporting.html#measure-report) should be copied from the corresponding elements on the Measure.",
"jurisdiction" : [{
"coding" : [{
"system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
"code" : "001",
"display" : "World"
}]
}],
"affectsState" : false,
"code" : "evaluate",
"comment" : "The effect of invoking this operation is to calculate the measure for the given subject(s), or all subjects if no subject is supplied. For individual and subject-list reports, the result is a set of Bundles, one for each evaluated subject, where the first entry in each bundle is a MeasureReport resource, and subsequent entries in the Bundle are resources evaluated or created as part of the measure evaluation. For the summary report, the result of this operation is a single bundle with a single MeasureReport of type summary. Note that whether or not this operation affects the state of the server depends on whether the server persists the generated MeasureReport. If the MeasureReport is not persisted, this operation can be invoked with GET",
"resource" : ["Measure"],
"system" : false,
"type" : true,
"instance" : true,
"parameter" : [{
"name" : "measure",
"use" : "in",
"scope" : ["type"],
"min" : 0,
"max" : "1",
"documentation" : "The measure to evaluate. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter is required, or a url (and optionally version) must be supplied.",
"type" : "Measure"
},
{
"name" : "url",
"use" : "in",
"scope" : ["type"],
"min" : 0,
"max" : "1",
"documentation" : "The url of the measure to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter (and optionally the version), or the measure parameter must be supplied",
"type" : "canonical",
"targetProfile" : ["http://hl7.org/fhir/StructureDefinition/Measure"]
},
{
"name" : "version",
"use" : "in",
"scope" : ["type"],
"min" : 0,
"max" : "1",
"documentation" : "The version of the measure to be applied. If the operation is invoked at the instance level, this parameter is not allowed; if the operation is invoked at the type level, this parameter may only be used if the url parameter is supplied, and the version is not supplied with it.",
"type" : "string"
},
{
"name" : "subject",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Subject for which the measure will be calculated. The subject may be a Patient, Practitioner, PractitionerRole, Organization, Location, Device, or Group. Subjects provided in this parameter will be resolved as the subject of the measure based on the type of the subject. If multiple subjects of the same type are provided, the behavior is implementation-defined",
"type" : "string",
"searchType" : "reference"
},
{
"name" : "periodStart",
"use" : "in",
"min" : 1,
"max" : "1",
"documentation" : "The start of the measurement period. In keeping with the semantics of the date parameter used in the FHIR search operation, the period will start at the beginning of the period implied by the supplied timestamp. E.g. a value of 2014 would set the period start to be 2014-01-01T00:00:00 inclusive",
"type" : "date"
},
{
"name" : "periodEnd",
"use" : "in",
"min" : 1,
"max" : "1",
"documentation" : "The end of the measurement period. The period will end at the end of the period implied by the supplied timestamp. E.g. a value of 2014 would set the period end to be 2014-12-31T23:59:59 inclusive",
"type" : "date"
},
{
"name" : "reportType",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "The type of measure report: `individual`, `subject-list`, or `summary`. If not specified, a default value of `summary` will be used if the subject parameter is supplied and is a `Group` resource; a default value of `individual` will be used if the subject parameter is supplied and is not a `Group` resource; otherwise, a default value of `summary` will be used. NOTE: Implementations should support the use of `subject` for `individual` and `population` for `summary` for backwards compatibility with existing implementations.",
"type" : "code",
"binding" : {
"strength" : "required",
"valueSet" : "http://hl7.org/fhir/ValueSet/measure-report-evaluation-type|6.0.0-ballot3"
}
},
{
"name" : "provider",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "The provider for which the report will be run. This may be a reference to a Practitioner, PractitionerRole, or Organization. If specified, the measure will be calculated for subjects that have a primary relationship to the identified provider. How this relationship is determined is implementation-specific.",
"type" : "string",
"searchType" : "reference"
},
{
"name" : "location",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "The location for which the report will be run.",
"type" : "string",
"searchType" : "reference"
},
{
"name" : "lastReceivedOn",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "The date the results of this measure were last received. This parameter is only valid for patient-level reports and is used to indicate when the last time a result for this patient was received. This information can be used to limit the set of resources returned for a patient-level report",
"type" : "dateTime"
},
{
"name" : "parameters",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Any input parameters for the evaluation. Parameters defined in this input will be made available by name to the CQL expression. Parameter types are mapped to CQL as specified in the [Using CQL with FHIR](https://hl7.org/fhir/uv/cql/) implementation guide. If a parameter appears more than once in the input Parameters resource, it is represented with a List in the input CQL. If a parameter has parts, it is represented as a Tuple in the input CQL.",
"type" : "Parameters"
},
{
"name" : "stratifier",
"use" : "in",
"min" : 0,
"max" : "*",
"documentation" : "Additional stratifier criteria for the measure. The resulting MeasureReport will contain this additional stratifier information as well as any stratifiers defined in the Measure being reported.",
"part" : [{
"name" : "measureUrl",
"use" : "in",
"min" : 0,
"max" : "*",
"documentation" : "If the evaluate operation is for multiple measures, this parameter may be used to specify which measures the additional stratifier should be reported on. If not specified, the stratifier will be reported on all the measures. Note that if this results in a stratifier definition that cannot be interpreted correctly for the measure being reported, the behavior is at server discretion; it may throw an error, or simply ignore the additional stratifier definition.",
"type" : "canonical"
},
{
"name" : "groupId",
"use" : "in",
"min" : 0,
"max" : "*",
"documentation" : "If the measure being evaluated has multiple groups, this parameter may be used to specify which groups the additional stratifier should be reported on. If not specified, the stratifier will be reported on all groups in the measure being reported. Note that if this results in a stratifier definition that cannot be interpreted correctly for the measure group being reported, the behavior is at server discretion; it may throw an error, or simply ignore the additional stratifier definition.",
"type" : "string"
},
{
"name" : "component",
"use" : "in",
"min" : 1,
"max" : "*",
"documentation" : "One or more components of the stratifier definition. Additional stratifiers are reported in the MeasureReport in the same way as stratifiers defined in the Measure.",
"part" : [{
"name" : "code",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Meaning of the stratifier component.",
"type" : "code",
"binding" : {
"strength" : "example",
"valueSet" : "http://hl7.org/fhir/ValueSet/measure-stratifier-example"
}
},
{
"name" : "description",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Human readable description of the stratifier component",
"type" : "markdown"
},
{
"name" : "valueSet",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "A value set defining possible stratifier values. If both expression and valueset are specified, they SHALL be consistent (i.e. the expression SHALL evaluate to a code that is a member of the specified valueset).",
"type" : "canonical",
"targetProfile" : ["http://hl7.org/fhir/StructureDefinition/ValueSet"]
},
{
"name" : "unit",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Indicates what units, if any, stratifier values are expected to be expressed in. This element SHOULD be specified in UCUM units or calendar units. This information SHOULD be provided if it cannot be inferred from the stsratifier expression directly.",
"type" : "string"
}]
}]
},
{
"name" : "supplementalData",
"use" : "in",
"min" : 0,
"max" : "*",
"documentation" : "What additional supplemental data should be reported with the measure. This additional data is specified in the same was as supplemental data in the Measure resource, and is reported in the same way in the MeasureReport.",
"part" : [{
"name" : "code",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Meaning of the supplemental data.",
"type" : "CodeableConcept",
"binding" : {
"strength" : "example",
"valueSet" : "http://hl7.org/fhir/ValueSet/measure-supplemental-data-example"
}
},
{
"name" : "usage",
"use" : "in",
"min" : 0,
"max" : "*",
"documentation" : "supplemental-data | risk-adjustment | factor",
"type" : "CodeableConcept",
"binding" : {
"strength" : "extensible",
"valueSet" : "http://terminology.hl7.org/ValueSet/measure-data-usage"
}
},
{
"name" : "description",
"use" : "in",
"min" : 0,
"max" : "1",
"documentation" : "Human readable description of this supplemental data element",
"type" : "markdown"
},
{
"name" : "criteria",
"use" : "in",
"min" : 1,
"max" : "1",
"documentation" : "Expression describing the additional data to be reported. This may be the name of an expression in a library, or it may be a path to a specific data element, reachable from the subject being evaluated.",
"type" : "Expression"
}]
},
{
"name" : "return",
"use" : "out",
"min" : 0,
"max" : "*",
"documentation" : "The results of the measure calculation. The result of this operation will be a Bundle for each input subject, where the first entry of the Bundle is a MeasureReport representing the results of the calculation, and subsequent entries in the Bundle are resources created and/or evaluated as part of the calculation. See the MeasureReport resource for a complete description of the output of this operation. Note that implementations may choose to return a MeasureReport with a status of pending to indicate that the report is still being generated. In this case, the client can use a polling method to continually request the MeasureReport until the status is updated to complete",
"type" : "Bundle"
}]
}
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.
FHIR ®© HL7.org 2011+. FHIR R6 hl7.fhir.core#6.0.0-ballot3 generated on Sat, Oct 25, 2025 07:43+0000.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R5 |
|
Propose a change