<?xml version="1.0" encoding="UTF-8"?>

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="Measure-evaluate"/>
  <text>
    <status value="generated"/>
    <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>
      <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>measureUrl</td>
          <td/>
          <td>1..*</td>
          <td>
            <a href="datatypes.html#canonical">canonical</a>
          </td>
          <td/>
          <td>
            <div>
              <p>The URL of the measure(s) to be evaluated. A measure URL is specified in the url element of the Measure resource. The measure URL remains the same when the measure is stored on different servers.</p>

            </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>

            </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>

            </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(s) for which the measure will be calculated. Subjects provided in this parameter SHALL match the subjectType of the measure being evaluated (e.g. if the Measure.group.subjectType is Patient, the subject SHALL be a reference to a Patient or a Group of Patients). This parameter cannot be used with the subjectGroup parameter. If no subject or subjectGroup is provided, what subjects are evaluated is up to the server.</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>subjectGroup</td>
          <td/>
          <td>0..1</td>
          <td>
            <a href="group.html">Group</a>
          </td>
          <td/>
          <td>
            <div>
              <p>Subjects for which the measure will be evaluated, provided as a Group resource. Subjects provided in this parameter SHALL match the subjectType of the measure being evaluated. (e.g. if the Measure.group.subjectType is Patient, the subject SHALL be a reference to a Patient or a Group of Patients). This parameter cannot be used with the subject parameter. If no subject or subjectGroup is provided, what subjects are evaluated is up to the server.</p>

            </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>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>reporter</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, systems MAY use this information to determine subjects for which the measure will be calculated, but how subjects are determined is implementation-specific. This parameter is reflected in the reporter element of the resulting MeasureReport(s). This parameter cannot be used with the reporterResource parameter.</p>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>reporterResource</td>
          <td/>
          <td>0..1</td>
          <td>
            <a href="practitioner.html">Practitioner</a> | 
            <a href="practitionerrole.html">PractitionerRole</a> | 
            <a href="organization.html">Organization</a>
            <br/>(
            <a href="search.html#reference">reference</a>)
          </td>
          <td/>
          <td>
            <div>
              <p>The provider for which the report will be run, provided as a Practitioner, PractitionerRole, or Organization resource. This is intended to support the use case in which the organization information is not on the server performing the evaluation, for example an 
                <a href="clinicalreasoning-quality-reporting.html#ad-hoc-organizations">ad-hoc group of practitioners</a> that are part of a provider group. This parameter is reflected in the reporter element of the resulting MeasureReport(s). This parameter cannot be used with the reporter parameter.
              </p>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>location</td>
          <td/>
          <td>0..*</td>
          <td>
            <a href="datatypes.html#string">string</a>
            <br/>(
            <a href="search.html#reference">reference</a>)
          </td>
          <td/>
          <td>
            <div>
              <p>The location(s) for which the report will be run. This parameter is reflected in the location element of the resulting MeasureReport(s).</p>

            </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>

            </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>

            </div>
          </td>
        </tr>
        <tr>
          <td>IN</td>
          <td>manifest</td>
          <td/>
          <td>0..1</td>
          <td>
            <a href="datatypes.html#canonical">canonical</a> (
            <a href="library.html" title="http://hl7.org/fhir/StructureDefinition/Library">Library</a>)
          </td>
          <td/>
          <td>
            <div>
              <p>Specifies an asset-collection library that provides dependency version resolution and expansion rules for the operation. See the version manifest discussion in the 
                <a href="http://hl7.org/fhir/uv/crmi/version-manifest.html">Canonical Resource Management Infrastructure IG</a> for a complete description of how manifest values are used to provide defaults for dependency version resolution and expansion parameters. Parameters specified directly in the operation override behaviors specified by the manifest parameter. In general, if this parameter is supplied, it is expected to be used in nested operation calls. For example, in evaluating a measure, if the expansion of a value set is required, this parameter SHALL be supplied to that expansion.
              </p>

            </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 evaluation, returned as a Bundle for each input subject. The first entries in each Bundle are MeasureReport(s) corresponding to the measures that were calculated. Subsequent entries in each Bundle are resources representing the data that was created or referenced during the calculation of the measures, and referenced from the appropriate element of the corresponding MeasureReport resources. See the 
                <a href="clinicalreasoning-quality-reporting.html#bundles-organized-by-subject">guidance</a> on Bundle structure for discussion about the Bundle content and organization.\n\nNote that even though there is a single parameter named return of type Bundle, it is a multi-cardinality parameter, and so will still be returned using a Parameters resource, as described in the general operations framework 
                <a href="operations.html#response">response</a>.
              </p>

            </div>
          </td>
        </tr>
      </table>
      <div>
        <p>The effect of invoking this operation is to calculate the specified measure(s) for the given subject(s), or a server-determined set of subjects if no subject is supplied. For 
          <code>individual</code> and 
          <code>subject-list</code> reports, the result is a set of Bundles, one for each evaluated subject, where the first entries in each bundle are MeasureReport resources, 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 MeasureReport for each calculated measure with a type of 
          <code>summary</code>. 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>

      </div>
    </div>
  </text>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="3"/>
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="normative"/>
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cqi"/>
  </extension>
  <url value="http://hl7.org/fhir/OperationDefinition/Measure-evaluate"/>
  <version value="6.0.0-ballot4"/>
  <name value="Evaluate"/>
  <title value="Evaluate"/>
  <status value="active"/>
  <kind value="operation"/>
  <experimental value="false"/>
  <date value="2026-06-25T05:29:09+00:00"/>
  <publisher value="HL7 International / Clinical Quality Information"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://hl7.org/fhir"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="fhir@lists.hl7.org"/>
    </telecom>
  </contact>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/cqi"/>
    </telecom>
  </contact>
  <description value="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 value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
      <display value="World"/>
    </coding>
  </jurisdiction>
  <affectsState value="false"/>
  <code value="evaluate"/>
  <comment value="The effect of invoking this operation is to calculate the specified measure(s) for the given subject(s), or a server-determined set of 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 entries in each bundle are MeasureReport resources, 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 MeasureReport for each calculated measure with a type of `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 value="Measure"/>
  <system value="false"/>
  <type value="true"/>
  <instance value="false"/>
  <parameter>
    <name value="measureUrl"/>
    <use value="in"/>
    <min value="1"/>
    <max value="*"/>
    <documentation value="The URL of the measure(s) to be evaluated. A measure URL is specified in the url element of the Measure resource. The measure URL remains the same when the measure is stored on different servers."/>
    <type value="canonical"/>
  </parameter>
  <parameter>
    <name value="periodStart"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation value="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 value="date"/>
  </parameter>
  <parameter>
    <name value="periodEnd"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation value="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 value="date"/>
  </parameter>
  <parameter>
    <name value="subject"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="Subject(s) for which the measure will be calculated. Subjects provided in this parameter SHALL match the subjectType of the measure being evaluated (e.g. if the Measure.group.subjectType is Patient, the subject SHALL be a reference to a Patient or a Group of Patients). This parameter cannot be used with the subjectGroup parameter. If no subject or subjectGroup is provided, what subjects are evaluated is up to the server."/>
    <type value="string"/>
    <searchType value="reference"/>
  </parameter>
  <parameter>
    <name value="subjectGroup"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="Subjects for which the measure will be evaluated, provided as a Group resource. Subjects provided in this parameter SHALL match the subjectType of the measure being evaluated. (e.g. if the Measure.group.subjectType is Patient, the subject SHALL be a reference to a Patient or a Group of Patients). This parameter cannot be used with the subject parameter. If no subject or subjectGroup is provided, what subjects are evaluated is up to the server."/>
    <type value="Group"/>
  </parameter>
  <parameter>
    <name value="reportType"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="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 value="code"/>
    <binding>
      <strength value="required"/>
      <valueSet value="http://hl7.org/fhir/ValueSet/measure-report-evaluation-type|6.0.0-ballot4"/>
    </binding>
  </parameter>
  <parameter>
    <name value="reporter"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The provider for which the report will be run. This may be a reference to a Practitioner, PractitionerRole, or Organization. If specified, systems MAY use this information to determine subjects for which the measure will be calculated, but how subjects are determined is implementation-specific. This parameter is reflected in the reporter element of the resulting MeasureReport(s). This parameter cannot be used with the reporterResource parameter."/>
    <type value="string"/>
    <searchType value="reference"/>
  </parameter>
  <parameter>
    <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
      <valueUri value="Practitioner"/>
    </extension>
    <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
      <valueUri value="PractitionerRole"/>
    </extension>
    <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
      <valueUri value="Organization"/>
    </extension>
    <name value="reporterResource"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="The provider for which the report will be run, provided as a Practitioner, PractitionerRole, or Organization resource. This is intended to support the use case in which the organization information is not on the server performing the evaluation, for example an [ad-hoc group of practitioners](clinicalreasoning-quality-reporting.html#ad-hoc-organizations) that are part of a provider group. This parameter is reflected in the reporter element of the resulting MeasureReport(s). This parameter cannot be used with the reporter parameter."/>
    <type value="Element"/>
    <searchType value="reference"/>
  </parameter>
  <parameter>
    <name value="location"/>
    <use value="in"/>
    <min value="0"/>
    <max value="*"/>
    <documentation value="The location(s) for which the report will be run. This parameter is reflected in the location element of the resulting MeasureReport(s)."/>
    <type value="string"/>
    <searchType value="reference"/>
  </parameter>
  <parameter>
    <name value="lastReceivedOn"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="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 value="dateTime"/>
  </parameter>
  <parameter>
    <name value="parameters"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="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 value="Parameters"/>
  </parameter>
  <parameter>
    <name value="manifest"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="Specifies an asset-collection library that provides dependency version resolution and expansion rules for the operation. See the version manifest discussion in the [Canonical Resource Management Infrastructure IG](http://hl7.org/fhir/uv/crmi/version-manifest.html) for a complete description of how manifest values are used to provide defaults for dependency version resolution and expansion parameters. Parameters specified directly in the operation override behaviors specified by the manifest parameter. In general, if this parameter is supplied, it is expected to be used in nested operation calls. For example, in evaluating a measure, if the expansion of a value set is required, this parameter SHALL be supplied to that expansion."/>
    <type value="canonical"/>
    <targetProfile value="http://hl7.org/fhir/StructureDefinition/Library"/>
  </parameter>
  <parameter>
    <name value="return"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <documentation value="The results of the measure evaluation, returned as a Bundle for each input subject. The first entries in each Bundle are MeasureReport(s) corresponding to the measures that were calculated. Subsequent entries in each Bundle are resources representing the data that was created or referenced during the calculation of the measures, and referenced from the appropriate element of the corresponding MeasureReport resources. See the [guidance](clinicalreasoning-quality-reporting.html#bundles-organized-by-subject) on Bundle structure for discussion about the Bundle content and organization.\n\nNote that even though there is a single parameter named return of type Bundle, it is a multi-cardinality parameter, and so will still be returned using a Parameters resource, as described in the general operations framework [response](operations.html#response)."/>
    <type value="Bundle"/>
  </parameter>
</OperationDefinition>