FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions

Example OperationDefinition/Measure-evaluate (XML)

Responsible Owner: Clinical Quality Information Work GroupStandards Status: Informative

Raw XML (canonical form + also see XML Format Specification)

Operation Definition

<?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. The subject may be a Patient,
                 Practitioner, PractitionerRole, Organization, Location, Device, or Group. 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). If no subject is provided, what subjects
                 are evaluated is up to the server. This parameter cannot be used with the subjectGroup
                 parameter.</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). If no subject is provided,
                 what subjects are evaluated is up to the server. This parameter cannot be used
                 with the subject parameter.</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="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, provided as an 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> IN</td> 
          <td> stratifier</td> 
          <td/>  
          <td> 0..*</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> 

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

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

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> stratifier.component</td> 
          <td/>  
          <td> 1..*</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> 

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

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

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> stratifier.component.criteria</td> 
          <td/>  
          <td> 1..1</td> 
          <td> 
            <a href="metadatatypes.html#Expression">Expression</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> An expression that returns the value of this component of the stratifier for a
                 member of the population. This is typically the name of an expression defined within
                 a referenced library, but it may also be a path to a stratifier element, evaluated
                 from the perspective of the measure subject. If this is a non-subject-based measure,
                 the expression may be a reference to a function that takes an argument of the type
                 of the measure basis, allowing the stratifier value to be determined for each member
                 of the population.</p> 

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

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

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> supplementalData</td> 
          <td/>  
          <td> 0..*</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> 

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

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

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

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

            </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="trial-use"/> 
  </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-ballot3"/> 
  <name value="Evaluate"/> 
  <title value="Evaluate"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <experimental value="false"/> 
  <date value="2025-11-06T07:44:50+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](clinicalreasonin
  g-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. The subject may be a Patient,
     Practitioner, PractitionerRole, Organization, Location, Device, or Group. 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). If no subject is provided, what subjects
     are evaluated is up to the server. This parameter cannot be used with the subjectGroup
     parameter."/> 
    <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). If no subject is provided,
     what subjects are evaluated is up to the server. This parameter cannot be used
     with the subject parameter."/> 
    <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-ballot3"/> 
    </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> 
    <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 an 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="string"/> 
    <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-manifes
    t.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="stratifier"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="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 value="measureUrl"/> 
      <use value="in"/> 
      <min value="0"/> 
      <max value="*"/> 
      <documentation value="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 value="canonical"/> 
    </part> 
    <part> 
      <name value="groupId"/> 
      <use value="in"/> 
      <min value="0"/> 
      <max value="*"/> 
      <documentation value="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 value="string"/> 
    </part> 
    <part> 
      <name value="component"/> 
      <use value="in"/> 
      <min value="1"/> 
      <max value="*"/> 
      <documentation value="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 value="code"/> 
        <use value="in"/> 
        <min value="0"/> 
        <max value="1"/> 
        <documentation value="Meaning of the stratifier component."/> 
        <type value="code"/> 
        <binding> 
          <strength value="example"/> 
          <valueSet value="http://hl7.org/fhir/ValueSet/measure-stratifier-example"/> 
        </binding> 
      </part> 
      <part> 
        <name value="description"/> 
        <use value="in"/> 
        <min value="0"/> 
        <max value="1"/> 
        <documentation value="Human readable description of the stratifier component"/> 
        <type value="markdown"/> 
      </part> 
      <part> 
        <name value="criteria"/> 
        <use value="in"/> 
        <min value="1"/> 
        <max value="1"/> 
        <documentation value="An expression that returns the value of this component of the stratifier for a
         member of the population. This is typically the name of an expression defined within
         a referenced library, but it may also be a path to a stratifier element, evaluated
         from the perspective of the measure subject. If this is a non-subject-based measure,
         the expression may be a reference to a function that takes an argument of the type
         of the measure basis, allowing the stratifier value to be determined for each member
         of the population."/> 
        <type value="Expression"/> 
      </part> 
      <part> 
        <name value="valueSet"/> 
        <use value="in"/> 
        <min value="0"/> 
        <max value="1"/> 
        <documentation value="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 value="canonical"/> 
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ValueSet"/> 
      </part> 
      <part> 
        <name value="unit"/> 
        <use value="in"/> 
        <min value="0"/> 
        <max value="1"/> 
        <documentation value="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 value="string"/> 
      </part> 
    </part> 
  </parameter> 
  <parameter> 
    <name value="supplementalData"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="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 value="code"/> 
      <use value="in"/> 
      <min value="0"/> 
      <max value="1"/> 
      <documentation value="Meaning of the supplemental data."/> 
      <type value="CodeableConcept"/> 
      <binding> 
        <strength value="example"/> 
        <valueSet value="http://hl7.org/fhir/ValueSet/measure-supplemental-data-example"/> 
      </binding> 
    </part> 
    <part> 
      <name value="usage"/> 
      <use value="in"/> 
      <min value="0"/> 
      <max value="*"/> 
      <documentation value="supplemental-data | risk-adjustment | factor"/> 
      <type value="CodeableConcept"/> 
      <binding> 
        <strength value="extensible"/> 
        <valueSet value="http://terminology.hl7.org/ValueSet/measure-data-usage"/> 
      </binding> 
    </part> 
    <part> 
      <name value="description"/> 
      <use value="in"/> 
      <min value="0"/> 
      <max value="1"/> 
      <documentation value="Human readable description of this supplemental data element"/> 
      <type value="markdown"/> 
    </part> 
    <part> 
      <name value="criteria"/> 
      <use value="in"/> 
      <min value="1"/> 
      <max value="1"/> 
      <documentation value="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 value="Expression"/> 
    </part> 
  </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-s
    ubject) 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#respons
    e)."/> 
    <type value="Bundle"/> 
  </parameter> 
</OperationDefinition> 

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.