Quality Measure STU1 for FHIR STU3 Implementation Guide

This page is part of the Quality Measure STU2 for FHIR R4 Implementation Guide (v1.0.0: STU 1) based on FHIR R3. The current version which supercedes this version is 3.0.0. For a full list of available versions, see the Directory of published versions

Terminology_FHIR


<Measure xmlns="http://hl7.org/fhir">
  <id value="measure-terminology-FHIR"/>
  <meta>
    <versionId value="9"/>
    <lastUpdated value="2019-11-06T19:36:37.453-05:00"/>
    <profile
             value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cohort-measure-cqfm"/>
  </meta>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><table style="width: 60%; border-bottom: none;" class="header_table">      <!-- <tr th:if="${resource.hasId()}" style="vertical-align: top;"><th style="background-color:#656565; width:20%" scope="row"><span class="td_label">Id: </span></th><td style="width:80%" colspan="3"  th:narrative="${resource.id}"></td></tr> --><tr style="vertical-align: top;"><td scope="row" style="background-color:#656565; width:20%"><span class="td_label">Measure Title</span></td><td colspan="1" style="width:60%"><h1 style="font-size:10px">Terminology FHIR</h1></td><td scope="row" style="background-color:#656565; width:10%"><span class="td_label">Measure ID</span></td><td colspan="1" style="width:10%"><h1 style="font-size:10px">Terminology_FHIR</h1></td></tr>      <!-- <th:block th:each="ident, iter : ${resource.identifier}"><tr th:if="${ident.type.coding[0].code == 'CMS'}" style="vertical-align: top;"><td style="background-color:#656565; width:20%" scope="row"><span class="td_label">eCQM Identifier (Measure Authoring Tool)</span></td><td style="width:30%" th:narrative="${ident.value}"></td><td style="background-color:#656565; width:20%" scope="row"><span class="td_label">eCQM Version number</span></td><td style="width:30%" th:narrative="${resource.version}"></td></tr></th:block><th:block th:each="ident, iter : ${resource.identifier}"><tr th:if="${ident.type.coding[0].code == 'NQF'}" style="vertical-align: top;"><td style="background-color:#656565; width:20%" scope="row"><span class="td_label">NQF Number</span></td><td style="width:30%" th:narrative="${ident.value}"></td><td style="background-color:#656565; width:20%" scope="row"><span class="td_label">GUID</span></td><td style="width:30%" th:narrative="${resource.url}"></td></tr></th:block> --><tr style="vertical-align: top;"><td scope="row" style="background-color:#656565; width:20%"><span class="td_label">Description</span></td><td colspan="3" style="width:80%"><div style="width:660px;overflow-x:hidden;overflow-y:auto"><pre><p>This example illustrates the use of risk adjustment variables within a measure represented as a FHIR eCQM</p>
</pre>
                </div>
            </td>
        </tr>
        <tr>
            <td scope="row" style="background-color:#656565; width:20%"><span class="td_label">Measurement Period</span></td>
            <td colspan="3" style="width:80%">January 1 - December 31</td>
        </tr>
              <!-- <tr>
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Measure Steward</span></td>
            <td style="width:80%" colspan="3" th:narrative="${resource.publisher}"></td>
        </tr>
        <tr>
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Measure Developer</span></td>
            <td style="width:80%" colspan="3" th:narrative="${resource.publisher}"></td>
        </tr> -->
              <!-- <tr th:if="${resource.hasDisclaimer()}">
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Disclaimer</span></td>
            <td style="width:80%" colspan="3">
                <div style="width:660px;overflow-x:hidden;overflow-y:auto">
                    <pre th:text="${resource.disclaimer}"></pre>
                </div>
            </td>
        </tr> -->
        
        
        
        <tr>
            <td colspan="4" scope="row" style="background-color:#656565; width:100%"><span class="td_label">Characteristics</span></td>
        </tr>
        <tr>
            <td scope="row" style="width:20%"><span>Scoring</span></td>
            <td colspan="3" style="width:80%">Cohort</td>
        </tr>
              <!-- <tr th:if="${resource.hasCompositeScoring()}">
            <td style="width:20%" scope="row"><span class="td_label">Composite Scoring</span></td>
            <td style="width:80%" colspan="3" th:narrative="${resource.compositeScoring.getText().substring(0, 1).toUpperCase() + resource.compositeScoring.getText().substring(1)}"></td>
        </tr> -->
        
            <tr style="vertical-align: top;">
                <td rowspan="1" scope="row" style="width:20%"><span>Type</span></td>
                <td colspan="3" style="width:80%">Process</td>
            </tr>
        
              <!-- <tr th:if="${resource.hasStatus()}" style="vertical-align: top;">
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Status</span></td>
            <td style="width:80%" colspan="3" th:narrative="${resource.status.toString().substring(0, 1).toUpperCase() + resource.status.toString().substring(1).toLowerCase()}"></td>
        </tr>
        <tr th:if="${resource.hasPurpose()}" style="vertical-align: top;">
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Purpose</span></td>
            <td style="width:80%" colspan="3" th:narrative="${resource.purpose}"></td>
        </tr>
        <tr th:if="${resource.hasUsage()}" style="vertical-align: top;" >
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Usage</span></td>
            <td style="width:80%" colspan="3" th:narrative="${resource.usage}"></td>
        </tr>
        <th:block th:each="context, iter : ${resource.useContext}" >
            <tr style="vertical-align: top;">
                <td th:if="${iter.index == 0}" th:rowspan="${iter.size}" style="background-color:#656565; width:20%" scope="row"><span class="td_label">Use Context</span></td>
                <td style="width:80%" colspan="3" th:narrative="${context}"></td>
            </tr>
        </th:block>
        <th:block th:each="topics, iter : ${resource.topic}" >
            <tr style="vertical-align: top;">
                <td th:if="${iter.index == 0}" th:rowspan="${iter.size}" style="background-color:#656565; width:20%" scope="row"><span class="td_label">Topic</span></td>
                <td style="width:80%" colspan="3" th:narrative="${topics}"></td>
            </tr>
        </th:block>
        <th:block th:each="cont, iter : ${resource.contributor}" >
            <tr style="vertical-align: top;">
                <td th:if="${iter.index == 0}" th:rowspan="${iter.size}" style="background-color:#656565; width:20%" scope="row"><span class="td_label">Contributor</span></td>
                <td style="width:80%" colspan="3">
                    <b><span th:narrative="${cont.type.toCode()}"></span>: </b><span th:narrative="${cont.name}"></span>
                </td>
            </tr>
        </th:block> -->
              <!-- <th:block th:each="lib, iter : ${resource.library}" >
            <tr style="vertical-align: top;">
                <td th:if="${iter.index == 0}" th:rowspan="${iter.size}" style="background-color:#656565; width:20%" scope="row"><span class="td_label">Library</span></td>
                <td style="width:80%" colspan="3">
                    <p th:if="${lib.hasIdentifier()}"><b>identifier: </b><span th:narrative="${lib.identifier}"></span></p>
                    <p th:if="${lib.hasReference()}"><b>reference: </b><span th:narrative="${lib.reference}"></span></p>
                    <p th:if="${lib.hasDisplay()}"><b>display: </b><span th:narrative="${lib.display}"></span></p>
                </td>
            </tr>
        </th:block> -->
        
              <!-- <tr th:if="${resource.hasRateAggregation()}" >
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Rate Aggregation</span></td>
            <td style="width:80%" colspan="3">
                <div style="width:660px;overflow-x:hidden;overflow-y:auto">
                    <pre th:text="${resource.rateAggregation}"></pre>
                </div>
            </td>
        </tr>
        <tr th:if="${resource.hasRationale()}">
            <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Rationale</span></td>
            <td style="width:80%" colspan="3">
                <div style="width:660px;overflow-x:hidden;overflow-y:auto">
                    <pre th:text="${resource.rationale}"></pre>
                </div>
            </td>
        </tr> -->
        <tr>
            <td scope="row" style="width:20%"><span>Improvement Notation</span></td>
            
            <td colspan="3" style="width:80%">A lower rate indicates better performance.</td>
        </tr>
        
        <tr>
            <td colspan="4" scope="row" style="background-color:#656565; width:100%"><span class="td_label">Definitions</span></td>
        </tr>
        
        
              <!-- <th:block th:each="groups, iter : ${resource.uniquePopulationGroup}" >
            <tr style="vertical-align: top;">
                <td style="background-color:#656565; width:20%" scope="row"><span class="td_label" th:text="${groups.identifier.value}"></span></td>
                <td style="width:80%" colspan="3">
                    <div style="width:660px;overflow-x:hidden;overflow-y:auto">
                        <pre th:text="${pops.description}"></pre>
                    </div>
                </td>
            </tr>
        </th:block> -->
    </table>
    <table style="width: 60%; border-top: none; border-bottom: none" class="header_table">
        
    </table>
    <table style="width: 60%; border-top: none;" class="header_table">
              <!-- <th:block th:each="supples, iter : ${resource.supplementalData}">
            <tr>
                <th th:if="${iter.index == 0}" th:rowspan="${iter.size}" scope="row"><b>Supplemental Data:</b></th>
                <td style="width:80%" colspan="3" >
                    <p style="margin-bottom: 5px;" th:narrative="${supples.identifier}"></p>
                    <p style="margin-bottom: 5px;" th:each="uses : ${supples.usage}">
                        <b>usage: </b>
                        <span th:narrative="${uses}"></span>
                    </p>
                    <p style="margin-bottom: 5px;" th:if="${supples.hasCriteria()}">
                        <b>criteria: </b>
                        <span th:narrative="${supples.criteria}"></span>
                    </p>
                    <p style="margin-bottom: 5px;" th:if="${supples.hasPath()}">
                        <b>path: </b>
                        <span th:narrative="${supples.path}"></span>
                    </p>
                </td>
            </tr>
        </th:block> -->
              <!-- <th:block th:each="param, iter : ${resource.parameter}">
            <tr style="vertical-align: top;">
                <th th:if="${iter.index == 0}" th:rowspan="${iter.size}" scope="row"><b>Parameter: </b></th>
                <td style="width:80%" colspan="3" >
                    <span th:if="${param.hasName()}">
                        <b>name: </b>
                        <span th:narrative="${param.name}"></span>
                        <br/>
                    </span>
                    <b>use: </b>
                    <span th:narrative="${param.use.toCode()}"></span>
                    <br/>
                    <span th:if="${param.hasMin()}">
                        <b>minimum cardinality: </b>
                        <span th:narrative="${param.min}"></span>
                        <br/>
                    </span>
                    <span th:if="${param.hasMax()}">
                        <b>maximum cardinality: </b>
                        <span th:narrative="${param.max}"></span>
                        <br/>
                    </span>
                    <b>type: </b>
                    <span th:narrative="${param.type}"></span>
                    <br/>
                    <span th:if="${param.hasDocumentation()}">
                        <b>documentation: </b>
                        <span th:narrative="${param.documentation}"></span>
                        <br/>
                    </span>
                    <span th:if="${param.hasProfile()}">
                        <b>profile: </b>
                        <span th:narrative="${param.profile}"></span>
                        <br/>
                    </span>
                    <p style="margin-bottom: 5px;"></p>
                </td>
            </tr>
        </th:block> -->
              <!-- <th:block th:each="dataReq, iter : ${resource.dataRequirement}">
            <tr style="vertical-align: top;">
                    <th th:if="${iter.index == 0}" th:rowspan="${iter.size}" scope="row" ><b>Data Requirements: </b></th>
                    <td style="width:80%" colspan="3" th:narrative="${dataReq}"></td>
            </tr>
        </th:block> -->
    </table>
  <h2><a name="toc">Table of Contents</a></h2>
  <ul style="padding-left: 50px;">
   <li><a href="#d1e405">Population Criteria</a></li>
   <li><a href="#d1e649">Definitions</a></li>
   <li><a href="#d1e650">Functions</a></li>
   <li><a href="#d1e555">Terminology</a></li>
   <li><a href="#d1e647">Data Criteria (QDM Data Elements)</a></li>
   <li><a href="#d1e767">Supplemental Data Elements</a></li>
   <li><a href="#d1e879">Risk Adjustment Variables</a></li>
  </ul>
  <div style="float:left; background:teal; height:3px; width:80%"/>
  
    <pre><br/></pre>
    <h3><a name="d1e405" href="#toc">Population Criteria</a></h3>
    <div>
    <ul style="list-style:none;padding-left:10px;">
        <li style="list-style:none;padding-left:0px;" class="list-unstyled">
        
        <div class="treeview hover p-l-10">
        
        </div>
        
        
    </li>
    </ul>
    </div>

  <h3><a name="d1e649" href="#toc">Definitions</a></h3>
  <div>
   <ul style="list-style:none;padding-left: 10px;">
    <li style="list-style:none;" class="list-unstyled">
     <div>
      <ul style="list-style:none;padding-left:0;" class="list-unstyled">
       <li class="list-unstyled">
        <div class="treeview hover p-l-10">
         <input id="Inpatient Encounter" type="checkbox"/>
         <label for="Inpatient Encounter" class="list-header"><strong>Inpatient Encounter</strong></label>
         <ul style="margin-right: 20%; opacity: 1;" class="code">
          <li class="list-unstyled">
           <div>
            <ul style="padding-left: 0px;">
             <li style="padding-left: 0px;" class="list-unstyled">
              <div>
               <pre class="cql-definition-body">  [&quot;Encounter&quot;: type in &quot;Encounter Inpatient SNOMEDCT Value Set&quot;] E
    where E.status = 'finished'</pre>
              </div></li>
            </ul> 
           </div></li>
         </ul>
        </div></li>
      </ul>
     </div></li>
   </ul>
  </div>
  <div>
   <ul style="list-style:none;padding-left: 10px;">
    <li style="list-style:none;" class="list-unstyled">
     <div>
      <ul style="list-style:none;padding-left:0;" class="list-unstyled">
       <li class="list-unstyled">
        <div class="treeview hover p-l-10">
         <input id="Venous Foot Pumps Applied" type="checkbox"/>
         <label for="Venous Foot Pumps Applied" class="list-header"><strong>Venous Foot Pumps Applied</strong></label>
         <ul style="margin-right: 20%; opacity: 1;" class="code">
          <li class="list-unstyled">
           <div>
            <ul style="padding-left: 0px;">
             <li style="padding-left: 0px;" class="list-unstyled">
              <div>
               <pre class="cql-definition-body">  [&quot;DeviceUseStatement&quot;: code in &quot;Venous foot pump, device (physical object)&quot;] D
    where D.status = 'completed'
      and D.bodySite ~ ToConcept(&quot;Right foot&quot;)</pre>
              </div></li>
            </ul> 
           </div></li>
         </ul>
        </div></li>
      </ul>
     </div></li>
   </ul>
  </div>
  <h3><a name="d1e650" href="#toc">Functions</a></h3>
  
  <h3><a name="d1e555" href="#toc">Terminology</a></h3>
  <div>
   <ul style="padding-left: 50px;">
    <li style="width:80%">codesystem &quot;SNOMED CT:2017-09&quot; : 'http://snomed.info/sct' version &quot;http://snomed.info/sct/731000124108/version/201709&quot;</li>
    <li style="width:80%">code &quot;Right foot&quot; : '7769000' from &quot;SNOMED CT:2017-09&quot;</li>
    <li style="width:80%">code &quot;Venous foot pump, device (physical object)&quot; : '442023007' from &quot;SNOMED CT:2017-09&quot;</li>
    <li style="width:80%">valueset &quot;Encounter Inpatient SNOMEDCT Value Set&quot; : 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.7.307|20160929'</li>
   </ul>
  </div>
  <h3><a name="d1e647" href="#toc">Data Criteria (QDM Data Elements)</a></h3>
  <div>
    <ul style="padding-left: 50px;">
      <li style="width:80%">&quot;Encounter: Encounter Inpatient SNOMEDCT Value Set&quot; using &quot;Encounter Inpatient SNOMEDCT Value Set (http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.7.307|20160929)</li>
    </ul>
  </div>
  <h3><a name="d1e767" href="#toc">Supplemental Data Elements</a></h3>
  
  <div>
    <ul style="list-style:none;padding-left: 25px;">
        <li>None</li>
    </ul>
 </div>
  <h3><a name="d1e879" href="#toc">Risk Adjustment Variables</a></h3>
  <div>
   <ul style="list-style:none;padding-left: 25px;">
    <li>None</li>
   </ul>
  </div>
  <div style="float:left; background:teal; height:3px; width:80%"/>
  <table>
        
              <!-- <th:block th:each="con, iter : ${resource.content}">
            <tr th:if="${con.contentType == 'text/cql'}" style="vertical-align: top;">
                <td style="background-color:#656565; width:20%" scope="row"><span class="td_label">Content</span></td>
                <td style="width:80%" ><b>type: </b><span th:text="${con.contentType}"></span></td>
            </tr>
            <tr th:if="${con.contentType == 'text/cql'}">
                <td style="width:100%" colspan="2" >
                    <th:block th:if="${con.getData() != null }" >
                        <pre><code th:class="${con.contentType == 'text/cql' ? 'language-cql' : 'language-xml'}" th:text="${new java.lang.String(con.getData())}"></code></pre>
                    </th:block>
                    <th:block th:if="${con.getData() == null }" >
                        <span><i>&lt;content is empty&gt;</i></span>
                    </th:block>
                </td>
            </tr>
        </th:block > -->
    </table>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis">
    <valueCode value="Encounter"/>
  </extension>
  <url
       value="http://hl7.org/fhir/us/cqfmeasures/Measure/measure-terminology-FHIR"/>
  <identifier>
    <use value="official"/>
    <system value="http://example.org/fhir/cqi/ecqm/Measure/Identifier/exm"/>
    <value value="Terminology_FHIR"/>
  </identifier>
  <version value="1.0.0"/>
  <name value="Terminology_FHIR"/>
  <title value="Terminology FHIR"/>
  <status value="active"/>
  <experimental value="true"/>
  <date value="2019-02-21T00:00:00-05:00"/>
  <publisher
             value="Health Level 7 International - Clinical Quality Information Work Group"/>
  <description
               value="This example illustrates the use of risk adjustment variables within a measure represented as a FHIR eCQM"/>
  <approvalDate value="2019-03-08"/>
  <lastReviewDate value="2019-03-08"/>
  <effectivePeriod>
    <start value="2018-01-01T00:00:00-05:00"/>
    <end value="2018-12-31T00:00:00-05:00"/>
  </effectivePeriod>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/cqi/index.cfm"/>
    </telecom>
  </contact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource>
      <reference value="Library/fhirhelpers"/>
    </resource>
  </relatedArtifact>
  <library>
    <reference value="Library/terminology-fhir"/>
  </library>
  <scoring>
    <coding>
      <system value="http://hl7.org/fhir/measure-scoring"/>
      <code value="cohort"/>
    </coding>
  </scoring>
  <type>
    <coding>
      <system value="http://hl7.org/fhir/measure-type"/>
      <code value="process"/>
    </coding>
  </type>
  <improvementNotation value="decrease"/>
  <group>
    <identifier>
      <value value="group-1"/>
    </identifier>
    <population>
      <code>
        <coding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/measure-population"/>
          <code value="initial-population"/>
          <display value="Initial Population"/>
        </coding>
      </code>
      <criteria value="Initial Population"/>
    </population>
  </group>
</Measure>