eCQM QICore Content Implementation Guide
2023.0.0 - CI Build
eCQM QICore Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2023.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/ecqm-content-qicore-2023/ and changes regularly. See the Directory of published versions
| Draft as of 2023-10-27 |
<Measure xmlns="http://hl7.org/fhir">
<id value="MPPEncounterLevel"/>
<meta>
<profile
value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm"/>
<profile
value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/publishable-measure-cqfm"/>
<profile
value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/executable-measure-cqfm"/>
</meta>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="grid dict">
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">Multi-provider Patient Encounter Level Example</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">MPPEncounterLevel</td>
</tr>
<tr>
<th scope="row"><b>Download cql: </b></th>
<td style="padding-left: 4px;"><a href="Library-MPPEncounterLevel.cql">MPPEncounterLevel.cql</a></td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">0.8.000</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="Measure-MPPEncounterLevel.html">Multi-provider Patient Encounter Level Example</a></td>
</tr>
<tr>
<th scope="row"><b>Effective Period: </b></th>
<td style="padding-left: 4px;">2024-01-01
..2024-12-31</td>
</tr>
<tr>
<th scope="row"><b>Status: </b></th>
<td style="padding-left: 4px;">draft</td>
</tr>
<tr>
<th scope="row"><b>Experimental: </b></th>
<td style="padding-left: 4px;">true</td>
</tr>
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 4px;">2023-10-27 08:12:32+0000</td>
</tr>
<tr>
<th scope="row"><b>Name: </b></th>
<td style="padding-left: 4px;">MPPEncounterLevel</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;"><div><p>Example measure supporting testing of the multi-provider patient scenario for encounter-based measures</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Use Context: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>code</b></th>
<th><b>value</b></th>
</tr>
<tr>
<td>program</td>
<td/>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Purpose: </b></th>
<td style="padding-left: 4px;"><div><p>To support testing of approaches to multi-provider patient scenarios with an encounter-based measure</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Libraries: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<td><a href="Library-MPPEncounterLevel.html">MPPEncounterLevel</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Related Artifact Dependencies: </b></th>
<td style="padding-left: 4px;">
<li><a href="Library-FHIRHelpers.html">FHIRHelpers</a> version: 4.3.000</li>
<li><a href="Library-CQMCommon.html">CQMCommon</a> version: 1.4.000</li>
<li><a href="Library-QICoreCommon.html">QICoreCommon</a> version: 1.5.000</li>
<li><a href="Library-AttributionModel.html">AttributionModel</a> version: 0.1.0</li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.424/expansion">Non-Elective Inpatient Encounter</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.212/expansion">Hemorrhagic Stroke</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.247/expansion">Ischemic Stroke</a></li>
</td>
</tr>
<tr>
<th scope="row"><b>Parameters:</b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>name</b></th>
<th><b>use</b></th>
<th><b>min</b></th>
<th><b>max</b></th>
<th><b>type</b></th>
</tr>
<tr>
<td>Measurement Period</td>
<td>In</td>
<td>0</td>
<td>1</td>
<td>Period</td>
</tr>
<tr>
<td>Provider</td>
<td>In</td>
<td>0</td>
<td>1</td>
<td>string</td>
</tr>
<tr>
<td>Initial Population</td>
<td>Out</td>
<td>0</td>
<td>*</td>
<td>Resource</td>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>DataRequirements:</b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>Type</b></th>
<th><b>Elements</b></th>
<th><b>Valueset Name</b></th>
<th><b>Valueset</b></th>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
period
rank
rank.value
condition
condition.reference
condition.reference.value
</td>
<td>
Nonelective Inpatient Encounter
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.424/expansion">Non-Elective Inpatient Encounter</a></td>
</tr>
<tr>
<td>Condition(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-condition.html">QICoreCondition</a>)</td>
<td>
id
id.value
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Patient(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-patient.html">QICorePatient</a>)</td>
<td>
</td>
<td>
</td>
<td/>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Logic Definitions:</b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>Group</b></th>
<th><b>Scoring</b></th>
<th><b>Population Criteria</b></th>
<th><b>Expression</b></th>
</tr>
<tr>
<td> 64403d17d4d7050edabb0562 </td>
<td>
<b>Group scoring:</b>
<span> proportion </span>
</td>
<tr>
<td/>
<td/>
<td>Initial Population</td>
<td>
<pre><code class="language-cql">define "Initial Population":
"Encounter with Principal Diagnosis and Age" Encounter
where Encounter.isAttributable()</code></pre>
</td>
</tr>
<tr>
<td/>
<td/>
<td>Denominator</td>
<td>
<pre><code class="language-cql"/></pre>
</td>
</tr>
<tr>
<td/>
<td/>
<td>Numerator</td>
<td>
<pre><code class="language-cql"/></pre>
</td>
</tr>
</tr>
</table>
<table class="grid-dict">
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>MPPEncounterLevel</td>
<td>Non Elective Inpatient Encounter</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Non Elective Inpatient Encounter":
["Encounter": "Nonelective Inpatient Encounter"] NonElectiveEncounter
where NonElectiveEncounter.period ends during day of "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>MPPEncounterLevel</td>
<td>All Stroke Encounter</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "All Stroke Encounter":
"Non Elective Inpatient Encounter" NonElectiveEncounter
let ConditionCode: NonElectiveEncounter.principalDiagnosis().code
where ( ConditionCode in "Hemorrhagic Stroke"
or ConditionCode in "Ischemic Stroke" )</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>MPPEncounterLevel</td>
<td>Encounter with Principal Diagnosis and Age</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Encounter with Principal Diagnosis and Age":
"All Stroke Encounter" AllStrokeEncounter
where AgeInYearsAt(date from start of AllStrokeEncounter.period ) >= 18</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>MPPEncounterLevel</td>
<td>Initial Population</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Initial Population":
"Encounter with Principal Diagnosis and Age" Encounter
where Encounter.isAttributable()</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>CQMCommon</td>
<td>principalDiagnosis</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Returns the condition that is specified as the principal diagnosis for the encounter
*/
define fluent function principalDiagnosis(Encounter Encounter ):
singleton from ((Encounter.diagnosis D where D.rank = 1) PD
return singleton from ([Condition] C where C.id = PD.condition.reference.getId())
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>QICoreCommon</td>
<td>getId</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Returns the tail of the given uri (i.e. everything after the last slash in the URI).
@comment: This function can be used to determine the logical id of a given resource. It can be used in
a single-server environment to trace references. However, this function does not attempt to resolve
or distinguish the base of the given url, and so cannot be used safely in multi-server environments.
*/
define fluent function getId(uri String):
Last(Split(uri, '/'))</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AttributionModel</td>
<td>isAttributable</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define fluent function isAttributable(encounter Encounter):
encounter.period during "Measurement Period"
and "Provider" is not null implies encounter.serviceProvider.reference.endsWith("Provider")</code></pre>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</text>
<contained>
<Library>
<id value="effective-data-requirements"/>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="MPPEncounterLevel"/>
</extension>
<extension url="name">
<valueString value="Non Elective Inpatient Encounter"/>
</extension>
<extension url="statement">
<valueString
value="define "Non Elective Inpatient Encounter":
["Encounter": "Nonelective Inpatient Encounter"] NonElectiveEncounter
where NonElectiveEncounter.period ends during day of "Measurement Period""/>
</extension>
<extension url="displaySequence">
<valueInteger value="0"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="MPPEncounterLevel"/>
</extension>
<extension url="name">
<valueString value="All Stroke Encounter"/>
</extension>
<extension url="statement">
<valueString
value="define "All Stroke Encounter":
"Non Elective Inpatient Encounter" NonElectiveEncounter
let ConditionCode: NonElectiveEncounter.principalDiagnosis().code
where ( ConditionCode in "Hemorrhagic Stroke"
or ConditionCode in "Ischemic Stroke" )"/>
</extension>
<extension url="displaySequence">
<valueInteger value="1"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="MPPEncounterLevel"/>
</extension>
<extension url="name">
<valueString value="Encounter with Principal Diagnosis and Age"/>
</extension>
<extension url="statement">
<valueString
value="define "Encounter with Principal Diagnosis and Age":
"All Stroke Encounter" AllStrokeEncounter
where AgeInYearsAt(date from start of AllStrokeEncounter.period ) >= 18"/>
</extension>
<extension url="displaySequence">
<valueInteger value="2"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="MPPEncounterLevel"/>
</extension>
<extension url="name">
<valueString value="Initial Population"/>
</extension>
<extension url="statement">
<valueString
value="define "Initial Population":
"Encounter with Principal Diagnosis and Age" Encounter
where Encounter.isAttributable()"/>
</extension>
<extension url="displaySequence">
<valueInteger value="3"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="CQMCommon"/>
</extension>
<extension url="name">
<valueString value="principalDiagnosis"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Returns the condition that is specified as the principal diagnosis for the encounter
*/
define fluent function principalDiagnosis(Encounter Encounter ):
singleton from ((Encounter.diagnosis D where D.rank = 1) PD
return singleton from ([Condition] C where C.id = PD.condition.reference.getId())
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="4"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="QICoreCommon"/>
</extension>
<extension url="name">
<valueString value="getId"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Returns the tail of the given uri (i.e. everything after the last slash in the URI).
@comment: This function can be used to determine the logical id of a given resource. It can be used in
a single-server environment to trace references. However, this function does not attempt to resolve
or distinguish the base of the given url, and so cannot be used safely in multi-server environments.
*/
define fluent function getId(uri String):
Last(Split(uri, '/'))"/>
</extension>
<extension url="displaySequence">
<valueInteger value="5"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AttributionModel"/>
</extension>
<extension url="name">
<valueString value="isAttributable"/>
</extension>
<extension url="statement">
<valueString
value="define fluent function isAttributable(encounter Encounter):
encounter.period during "Measurement Period"
and "Provider" is not null implies encounter.serviceProvider.reference.endsWith("Provider")"/>
</extension>
<extension url="displaySequence">
<valueInteger value="6"/>
</extension>
</extension>
<status value="active"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="module-definition"/>
</coding>
</type>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library FHIRHelpers"/>
<resource
value="http://ecqi.healthit.gov/ecqms/Library/FHIRHelpers|4.3.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library CQMCommon"/>
<resource
value="http://ecqi.healthit.gov/ecqms/Library/CQMCommon|1.4.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library QICoreCommon"/>
<resource
value="http://ecqi.healthit.gov/ecqms/Library/QICoreCommon|1.5.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library AM"/>
<resource
value="http://ecqi.healthit.gov/ecqms/Library/AttributionModel|0.1.0"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Nonelective Inpatient Encounter"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.424"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Hemorrhagic Stroke"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.212"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Ischemic Stroke"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247"/>
</relatedArtifact>
<parameter>
<name value="Measurement Period"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="Provider"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="Initial Population"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Resource"/>
</parameter>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="period"/>
<mustSupport value="rank"/>
<mustSupport value="rank.value"/>
<mustSupport value="condition"/>
<mustSupport value="condition.reference"/>
<mustSupport value="condition.reference.value"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.424"/>
</codeFilter>
<dateFilter>
<path value="period"/>
<valuePeriod>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-expression">
<valueExpression>
<language value="text/cql-identifier"/>
<expression value="Measurement Period"/>
</valueExpression>
</extension>
</valuePeriod>
</dateFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="id"/>
<mustSupport value="id.value"/>
</dataRequirement>
<dataRequirement>
<type value="Patient"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient"/>
</dataRequirement>
</Library>
</contained>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements" id="effective-data-requirements">
<valueReference>
<reference value="#effective-data-requirements"/>
</valueReference>
</extension>
<url value="http://ecqi.healthit.gov/ecqms/Measure/MPPEncounterLevel"/>
<version value="0.8.000"/>
<name value="MPPEncounterLevel"/>
<title value="Multi-provider Patient Encounter Level Example"/>
<status value="draft"/>
<experimental value="true"/>
<date value="2023-10-27T08:12:32+00:00"/>
<description
value="Example measure supporting testing of the multi-provider patient scenario for encounter-based measures"/>
<useContext>
<code>
<system
value="http://terminology.hl7.org/CodeSystem/usage-context-type"/>
<code value="program"/>
</code>
<valueCodeableConcept>
<coding>
<system
value="http://hl7.org/fhir/us/cqfmeasures/CodeSystem/quality-programs"/>
<code value="eh-cah"/>
<display value="EH/CAH"/>
</coding>
</valueCodeableConcept>
</useContext>
<purpose
value="To support testing of approaches to multi-provider patient scenarios with an encounter-based measure"/>
<effectivePeriod>
<start value="2024-01-01"/>
<end value="2024-12-31"/>
</effectivePeriod>
<library value="http://ecqi.healthit.gov/ecqms/Library/MPPEncounterLevel"/>
<group id="64403d17d4d7050edabb0562">
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring">
<valueCodeableConcept>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-scoring"/>
<code value="proportion"/>
<display value="Proportion"/>
</coding>
</valueCodeableConcept>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis">
<valueCode value="Encounter"/>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type">
<valueCodeableConcept>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/measure-type"/>
<code value="process"/>
<display value="Process"/>
</coding>
</valueCodeableConcept>
</extension>
<population id="937BAF2A-D36A-4EE5-B2B2-762A0FE04502">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="initial-population"/>
<display value="Initial Population"/>
</coding>
</code>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Initial Population"/>
</criteria>
</population>
<population id="302C1DCC-7FE6-41EF-A94E-FDAE24B7BB1B">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="denominator"/>
<display value="Denominator"/>
</coding>
</code>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Denominator"/>
</criteria>
</population>
<population id="99961E3A-EFC4-4858-A3EE-F7F1D5B222FB">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="numerator"/>
<display value="Numerator"/>
</coding>
</code>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Numerator"/>
</criteria>
</population>
</group>
</Measure>