eCQM QICore Content Implementation Guide
2024.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 2024.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-2024/ and changes regularly. See the Directory of published versions
Draft as of 2024-07-09 |
<Measure xmlns="http://hl7.org/fhir">
<id value="ControllingHighBloodPressureFHIR"/>
<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;">Controlling High Blood PressureFHIR</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">ControllingHighBloodPressureFHIR</td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">0.1.000</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="Measure-ControllingHighBloodPressureFHIR.html">Controlling High Blood PressureFHIR</a></td>
</tr>
<tr>
<th scope="row">
<b>
short-name identifier:
</b>
</th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>CMS165FHIR</span>
</p>
</td>
</tr>
<tr>
<th scope="row">
<b>
version-independent identifier:
</b>
</th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>urn:uuid:9017d914-6748-45a9-bff1-8392ed644a7b</span>
</p>
</td>
</tr>
<tr>
<th scope="row">
<b>
version-specific identifier:
</b>
</th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>urn:uuid:f573fb8f-4907-4ed7-bc04-09d9a3f36268</span>
</p>
</td>
</tr>
<tr>
<th scope="row">
<b>
publisher (CMS) identifier:
</b>
</th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>165FHIR</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Effective Period: </b></th>
<td style="padding-left: 4px;">2025-01-01..2025-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>Publisher: </b></th>
<td style="padding-left: 4px;">National Committee for Quality Assurance</td>
</tr>
<tr>
<th scope="row"><b>Author: </b></th>
<td style="padding-left: 4px;">National Committee for Quality Assurance</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;"><div><p>Percentage of patients 18-85 years of age who had a diagnosis of essential hypertension starting before and continuing into, or starting during the first six months of the measurement period, and whose most recent blood pressure was adequately controlled (<140/90 mmHg) during the measurement period</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Purpose: </b></th>
<td style="padding-left: 4px;"><div><p>UNKNOWN</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Copyright: </b></th>
<td style="padding-left: 4px;"><div><p>This Physician Performance Measure (Measure) and related data specifications are owned and were developed by the National Committee for Quality Assurance (NCQA). NCQA is not responsible for any use of the Measure. NCQA makes no representations, warranties, or endorsement about the quality of any organization or physician that uses or reports performance measures and NCQA has no liability to anyone who relies on such measures or specifications. NCQA holds a copyright in the Measure. The Measure can be reproduced and distributed, without modification, for noncommercial purposes (e.g., use by healthcare providers in connection with their practices) without obtaining approval from NCQA. Commercial use is defined as the sale, licensing, or distribution of the Measure for commercial gain, or incorporation of the Measure into a product or service that is sold, licensed or distributed for commercial gain. All commercial uses or requests for modification must be approved by NCQA and are subject to a license at the discretion of NCQA. (C) 2012-2024 National Committee for Quality Assurance. All Rights Reserved.</p>
<p>Limited proprietary coding is contained in the Measure specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets. NCQA disclaims all liability for use or accuracy of any third-party codes contained in the specifications.</p>
<p>CPT(R) codes, descriptions and other data are copyright 2024. American Medical Association. All rights reserved. CPT is a trademark of the American Medical Association. Fee schedules, relative value units, conversion factors and/or related components are not assigned by the AMA, are not part of CPT, and the AMA is not recommending their use. The AMA does not directly or indirectly practice medicine or dispense medical services. The AMA assumes no liability for data contained or not contained herein. Applicable FARS/DFARS restrictions apply to government use.</p>
<p>Some measure specifications contain coding from LOINC(R) (http://loinc.org). The LOINC table, LOINC codes, LOINC panels and form file, LOINC linguistic variants file, LOINC/RSNA Radiology Playbook, and LOINC/IEEE Medical Device Code Mapping Table are copyright 2004-2024 Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee, and are available at no cost under the license at http://loinc.org/terms-of-use.</p>
<p>This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2023 International Health Terminology Standards Development Organisation.</p>
<p>ICD-10 copyright 2024 World Health Organization. All Rights Reserved.</p>
<p>Some measures use RxNorm, a standardized nomenclature and coding for clinical drugs and drug delivery devices, which is made publicly available courtesy of the U.S. National Library of Medicine (NLM), National Institutes of Health, Department of Health and Human Services. NLM is not responsible for the measures and does not endorse or recommend this or any other product.</p>
<p>“HL7” is the registered trademark of Health Level Seven International.</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Disclaimer: </b></th>
<td style="padding-left: 4px;"><div><p>The performance Measure is not a clinical guideline and does not establish a standard of medical care, and has not been tested for all potential applications. THE MEASURE AND SPECIFICATIONS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.</p>
<p>Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Scoring: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>Proportion </span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Rationale: </b></th>
<td style="padding-left: 4px;"><div><p>High blood pressure (HBP), also known as hypertension, is when the pressure in blood vessels is higher than normal (Centers for Disease Control and Prevention [CDC], 2023). The causes of hypertension are multiple and multifaceted and can be based on genetic predisposition, environmental risk factors, being overweight and obese, sodium intake, potassium intake, physical activity, and alcohol use. High blood pressure is common; according to the American Heart Association, between 2013-2016, approximately 121.5 million US adults >= 20 years of age had HBP and the prevalence of hypertension among US adults 65 and older was 77.0 percent (Virani et al., 2021). In an analysis of adults with hypertension in National Health and Nutrition Examination Survey (NHANES), the estimated age-adjusted proportion with controlled blood pressure (BP) increased from 31.8 percent in 1999 to 53.8 percent in 2014. However, that proportion declined to 43.7 percent in 2017 to 2018 (Tsao et al., 2022).</p>
<p>HBP increases risks of heart disease and stroke which are two of the leading causes of death in the US (CDC, 2023). A person who has HBP is four times more likely to die from a stroke and three times more likely to die from heart disease (CDC, 2021). The National Center for Health Statistics reported that in 2020 there were over 670,000 deaths with HBP as a primary or contributing cause (CDC, 2022). Between 2009 and 2019 the number of deaths due to HBP rose by 65.3 percent (Tsao et al., 2022). Managing and treating HBP would reduce cardiovascular disease mortality for males and females by 30.4 percent and 38.0 percent, respectively (Patel et al., 2015). Age-adjusted death rates attributable to HBP in 2019 were more than twice as high in non-Hispanic Black males (56.7 percent) when compared to rates for non-Hispanic White males (25.7 percent) (Tsao et al., 2022).</p>
<p>HBP costs the U.S. approximately 131 billion dollars each year, averaged over 12 years from 2003 to 2014 (Kirkland et al., 2018). A study on cost-effectiveness on treating hypertension found that controlling HBP in patients with cardiovascular disease and systolic blood pressures (SBP) of >= 160 mmHg could be effective and cost-saving (Moran et al., 2015).</p>
<p>Many studies have shown that controlling high blood pressure reduces cardiovascular events and mortality. The Systolic Blood Pressure Intervention Trial (SPRINT) investigated the impact of obtaining a SBP goal of <120 mmHg compared to a SBP goal of <140 mmHg among patients 50 and older with established cardiovascular disease and found that the patients with the former goal had reduced cardiovascular events and mortality (SPRINT Research Group et al., 2015).</p>
<p>Controlling HBP will significantly reduce the risks of cardiovascular disease mortality and lead to better health outcomes like reduction of heart attacks, stroke, and kidney disease (James et al., 2014). Thus, the relationship between the measure (control of hypertension) and the long-term clinical outcomes listed is well established.</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Clinical recommendation statement: </b></th>
<td style="padding-left: 4px;"><div><p>U.S. Preventive Services Task Force (USPSTF) (2021):</p>
<ul>
<li>The USPSTF recommends screening for hypertension in adults 18 years or older with office blood pressure measurement (OBPM). The USPSTF recommends obtaining blood pressure measurements outside of the clinical setting for diagnostic confirmation before starting treatment. This is a grade A recommendation.</li>
</ul>
<p>American College of Cardiology/American Heart Association (2017):</p>
<ul>
<li>
<p>For adults with confirmed hypertension and known cardiovascular disease (CVD) or 10-year atherosclerotic cardiovascular disease (ASCVD) event risk of 10 percent or higher, a blood pressure target of less than 130/80 mmHg is recommended (Level of evidence: B-R (for systolic blood pressures), Level of evidence: C-EO (for diastolic blood pressure))</p>
</li>
<li>
<p>For adults with confirmed hypertension, without additional markers of increased CVD risk, a blood pressure target of less than 130/80 mmHg may be reasonable (Note: clinical trial evidence is strongest for a target blood pressure of 140/90 mmHg in this population. However, observational studies suggest that these individuals often have a high lifetime risk and would benefit from blood pressure control earlier in life) (Level of evidence: B-NR (for systolic blood pressure), Level of evidence: C-EO (for diastolic blood pressure)).</p>
</li>
</ul>
<p>American Academy of Family Physicians (2022):</p>
<ul>
<li>
<p>Treat adults who have hypertension to a standard blood pressure target (less than 140/90 mm Hg) to reduce the risk of all-cause and cardiovascular mortality (strong recommendation; high-quality evidence). Treating to a lower blood pressure target (less than 135/85 mm Hg) does not provide additional benefit at preventing mortality; however, a lower blood pressure target could be considered based on patient preferences and values. (Grade: strong recommendation, Quality of evidence: high)</p>
</li>
<li>
<p>Consider treating adults who have hypertension to a lower blood pressure target (less than 135/85 mm Hg) to reduce risk of myocardial infarction (weak recommendation; moderate-quality evidence). Although treatment to a standard blood pressure target (less than 140/90 mm Hg) reduced the risk of myocardial infarction, there was a small additional benefit observed with a lower blood pressure target. There was no observed additional benefit in preventing stroke with the lower blood pressure target. (Grade: weak recommendation, Quality of evidence: low)</p>
</li>
</ul>
<p>American Diabetes Association (2022):</p>
<ul>
<li>
<p>For individuals with diabetes and hypertension at higher cardiovascular risk (existing atherosclerotic cardiovascular disease or 10-year atherosclerotic cardiovascular disease risk >=15 percent), a blood pressure target of <130/80 mmHg may be appropriate, if it can be safely attained (Level of evidence: B)</p>
</li>
<li>
<p>For individuals with diabetes and hypertension at lower risk for cardiovascular disease (10-year atherosclerotic cardiovascular disease risk <15 percent), treat to a blood pressure target of <140/90 mmHg (Level of evidence: A)</p>
</li>
</ul>
</div></td>
</tr>
<tr>
<th scope="row"><b>Guidance (Usage): </b></th>
<td style="padding-left: 4px;">In reference to the numerator element, only blood pressure readings performed by a clinician or an automated blood pressure monitor or device are acceptable for numerator compliance with this measure. This includes blood pressures taken in person by a clinician and blood pressures measured remotely by electronic monitoring devices capable of transmitting the blood pressure data to the clinician. Blood pressure readings taken by an automated blood pressure monitor or device and conveyed by the patient to the clinician are also acceptable. It is the clinician’s responsibility and discretion to confirm the automated blood pressure monitor or device used to obtain the blood pressure is considered acceptable and reliable and whether the blood pressure reading is considered accurate before documenting it in the patient’s medical record.
Do not include BP readings taken during an acute inpatient stay or an emergency department (ED) visit.
If no blood pressure is recorded during the measurement period, the patient's blood pressure is assumed "not controlled".
If there are multiple blood pressure readings on the same day, use the lowest systolic and the lowest diastolic reading as the most recent blood pressure reading. Ranges and thresholds do not meet criteria for this measure. A distinct numeric result for both the systolic and diastolic BP reading is required for numerator compliance.
This eCQM is a patient-based measure.
This FHIR-based measure has been derived from the QDM-based measure: CMS165v13.
Please refer to the HL7 QI-Core Implementation Guide (http://hl7.org/fhir/us/qicore/STU4.1.1/) for more information on QI-Core and mapping recommendations from QDM to QI-Core 4.1.1 (http://hl7.org/fhir/us/qicore/STU4.1.1/qdm-to-qicore.html).</td>
</tr>
<tr>
<th scope="row"><b>Population Criteria: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>650b4f94da013638e7b3dd9a</b></th>
</tr>
<tr>
<td>Initial Population:</td>
<td>Patients 18-85 years of age by the end of the measurement period who had a visit during the measurement period and diagnosis of essential hypertension starting before and continuing into, or starting during the first six months of the measurement period</td>
</tr>
<tr>
<td>Denominator:</td>
<td>Equals Initial Population</td>
</tr>
<tr>
<td>Denominator Exclusion:</td>
<td>Exclude patients who are in hospice care for any part of the measurement period.
Patients with evidence of end stage renal disease (ESRD), dialysis or renal transplant before or during the measurement period. Also exclude patients with a diagnosis of pregnancy during the measurement period.
Exclude patients 66-80 by the end of the measurement period with an indication of frailty for any part of the measurement period who also meet any of the following advanced illness criteria:
- Advanced illness diagnosis during the measurement period or the year prior
- OR taking dementia medications during the measurement period or the year prior
Exclude patients 81 and older by the end of the measurement period with an indication of frailty for any part of the measurement period.
Exclude patients 66 and older by the end of the measurement period who are living long term in a nursing home any time on or before the end of the measurement period.
Exclude patients receiving palliative care for any part of the measurement period.</td>
</tr>
<tr>
<td>Numerator:</td>
<td>Patients whose most recent blood pressure is adequately controlled (systolic blood pressure < 140 mmHg and diastolic blood pressure < 90 mmHg) during the measurement period</td>
</tr>
<tr><b>Stratifier Criteria: </b></tr>
<tr>
<td>Stratum:</td>
<td>None</td>
</tr>
<tr>
<td>Stratum:</td>
<td>None</td>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b> Supplemental Data Elements: </b></th>
<td style="padding-left: 4px;">
<p>SDE Sex</p>
<p>SDE Race</p>
<p>SDE Payer</p>
<p>SDE Ethnicity</p>
</td>
</tr>
<tr>
<th scope="row">
<b> Supplemental Data Guidance
: </b></th>
<td style="padding-left: 4px;"> For every patient evaluated by this measure also identify payer, race, ethnicity and sex
</td>
</tr>
<tr>
<th scope="row"><b>Libraries: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<td><a href="Library-ControllingHighBloodPressureFHIR.html">ControllingHighBloodPressureFHIR</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Terminology and Other Dependencies: </b></th>
<td style="padding-left: 4px;">
<li><code>Library/SupplementalDataElements|3.5.000</code></li>
<li><code>Library/Status|1.8.000</code></li>
<li><code>Library/FHIRHelpers|4.4.000</code></li>
<li><code>Library/QICoreCommon|2.1.000</code></li>
<li><code>Library/AdultOutpatientEncounters|4.11.000</code></li>
<li><code>Library/Hospice|6.12.000</code></li>
<li><code>Library/AdvancedIllnessandFrailty|1.16.000</code></li>
<li><code>Library/CumulativeMedicationDuration|4.1.000</code></li>
<li><code>Library/PalliativeCare|1.11.000</code></li>
<li><a href="http://hl7.org/fhir/R4/codesystem-administrative-gender.html">AdministrativeGender</a></li>
<li><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">Logical Observation Identifiers, Names and Codes (LOINC)</a></li>
<li><a href="http://hl7.org/fhir/R4/codesystem-snomedct.html">SNOMED CT (all versions)</a></li>
<li><a href="http://terminology.hl7.org/5.5.0/CodeSystem-observation-category.html">Observation Category Codes</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.104.12.1011/expansion">Essential Hypertension</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1001/expansion">Office Visit</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1240/expansion">Annual Wellness Visit</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1025/expansion">Preventive Care Services - Established Office Visit, 18 and Up</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1023/expansion">Preventive Care Services-Initial Office Visit, 18 and Up</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1016/expansion">Home Healthcare Services</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1089/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1080/expansion">Telephone Visits</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.114222.4.11.3591/expansion">Payer</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.666.5.307/expansion">Encounter Inpatient</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.1003/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1584/expansion">Hospice Care Ambulatory</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.1165/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.378/expansion">Pregnancy</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.353/expansion">End Stage Renal Disease</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1029/expansion">Kidney Transplant Recipient</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1002/expansion">Chronic Kidney Disease, Stage 5</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1012/expansion">Kidney Transplant</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1013/expansion">Dialysis Services</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1014/expansion">ESRD Monthly Outpatient Services</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.118.12.1300/expansion">Frailty Device</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.113.12.1074/expansion">Frailty Diagnosis</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1088/expansion">Frailty Encounter</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.113.12.1075/expansion">Frailty Symptom</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.110.12.1082/expansion">Advanced Illness</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.196.12.1510/expansion">Dementia Medications</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.1167/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1090/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.198.12.1135/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135</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>ErrorLevel</td>
<td>In</td>
<td>0</td>
<td>1</td>
<td>string</td>
</tr>
<tr>
<td>SDE Sex</td>
<td>Out</td>
<td>0</td>
<td>1</td>
<td>Coding</td>
</tr>
<tr>
<td>Numerator</td>
<td>Out</td>
<td>0</td>
<td>1</td>
<td>boolean</td>
</tr>
<tr>
<td>Denominator</td>
<td>Out</td>
<td>0</td>
<td>1</td>
<td>boolean</td>
</tr>
<tr>
<td>SDE Payer</td>
<td>Out</td>
<td>0</td>
<td>*</td>
<td>Resource</td>
</tr>
<tr>
<td>Initial Population</td>
<td>Out</td>
<td>0</td>
<td>1</td>
<td>boolean</td>
</tr>
<tr>
<td>SDE Ethnicity</td>
<td>Out</td>
<td>0</td>
<td>1</td>
<td>Resource</td>
</tr>
<tr>
<td>Denominator Exclusions</td>
<td>Out</td>
<td>0</td>
<td>1</td>
<td>boolean</td>
</tr>
<tr>
<td>SDE Race</td>
<td>Out</td>
<td>0</td>
<td>1</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>Resource Type</b></th>
<th><b>Resource Elements</b></th>
<th><b>Valueset Name</b></th>
<th><b>Valueset</b></th>
</tr>
<tr>
<td>Patient(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-patient.html">QICorePatient</a>)</td>
<td>
ethnicity
race
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
id
id.value
status
status.value
period
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Office Visit
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1001/expansion">Office Visit</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Annual Wellness Visit
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1240/expansion">Annual Wellness Visit</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Preventive Care Services Established Office Visit, 18 and Up
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1025/expansion">Preventive Care Services - Established Office Visit, 18 and Up</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Preventive Care Services Initial Office Visit, 18 and Up
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1023/expansion">Preventive Care Services-Initial Office Visit, 18 and Up</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Home Healthcare Services
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1016/expansion">Home Healthcare Services</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Virtual Encounter
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1089/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
status
status.value
period
</td>
<td>
Telephone Visits
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1080/expansion">Telephone Visits</a></td>
</tr>
<tr>
<td>Encounter(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-encounter.html">QICoreEncounter</a>)</td>
<td>
type
hospitalization
hospitalization.dischargeDisposition
period
status
status.value
</td>
<td>
Encounter Inpatient
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.666.5.307/expansion">Encounter Inpatient</a></td>
</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
status
status.value
</td>
<td>
Hospice Encounter
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.1003/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003</a></td>
</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
status
status.value
</td>
<td>
ESRD Monthly Outpatient Services
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1014/expansion">ESRD Monthly Outpatient Services</a></td>
</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
status
status.value
</td>
<td>
Frailty Encounter
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1088/expansion">Frailty Encounter</a></td>
</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
status
status.value
</td>
<td>
Palliative Care Encounter
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.101.12.1090/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090</a></td>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/R4/bp.html">Observation Blood Pressure Profile</a>)</td>
<td>
encounter
encounter.class
encounter.class.code
effective
status
status.value
component
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Condition(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-condition.html">QICoreCondition</a>)</td>
<td>
code
</td>
<td>
Essential Hypertension
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.104.12.1011/expansion">Essential Hypertension</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>
code
</td>
<td>
Hospice Diagnosis
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.1165/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165</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>
code
</td>
<td>
Pregnancy
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.378/expansion">Pregnancy</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>
code
</td>
<td>
End Stage Renal Disease
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.353/expansion">End Stage Renal Disease</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>
code
</td>
<td>
Kidney Transplant Recipient
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1029/expansion">Kidney Transplant Recipient</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>
code
</td>
<td>
Chronic Kidney Disease, Stage 5
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1002/expansion">Chronic Kidney Disease, Stage 5</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>
code
</td>
<td>
Frailty Diagnosis
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.113.12.1074/expansion">Frailty Diagnosis</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>
code
</td>
<td>
Advanced Illness
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.110.12.1082/expansion">Advanced Illness</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>
code
</td>
<td>
Palliative Care Diagnosis
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.1167/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167</a></td>
</tr>
<tr>
<td>Coverage(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-coverage.html">QICoreCoverage</a>)</td>
<td>
type
period
</td>
<td>
Payer Type
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.114222.4.11.3591/expansion">Payer</a></td>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-observation.html">QICoreObservation</a>)</td>
<td>
code
value
effective
status
status.value
category
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-observation.html">QICoreObservation</a>)</td>
<td>
code
value
effective
status
status.value
category
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-observation.html">QICoreObservation</a>)</td>
<td>
code
effective
status
status.value
category
</td>
<td>
Frailty Symptom
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.113.12.1075/expansion">Frailty Symptom</a></td>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-observation.html">QICoreObservation</a>)</td>
<td>
code
effective
status
status.value
category
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-observation.html">QICoreObservation</a>)</td>
<td>
code
effective
value
status
status.value
category
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>Observation(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-observation.html">QICoreObservation</a>)</td>
<td>
code
effective
status
status.value
category
</td>
<td>
</td>
<td/>
</tr>
<tr>
<td>ServiceRequest(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-servicerequest.html">QICoreServiceRequest</a>)</td>
<td>
code
authoredOn
authoredOn.value
status
status.value
intent
intent.value
</td>
<td>
Hospice Care Ambulatory
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1584/expansion">Hospice Care Ambulatory</a></td>
</tr>
<tr>
<td>Procedure(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-procedure.html">QICoreProcedure</a>)</td>
<td>
code
performed
status
status.value
</td>
<td>
Hospice Care Ambulatory
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.526.3.1584/expansion">Hospice Care Ambulatory</a></td>
</tr>
<tr>
<td>Procedure(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-procedure.html">QICoreProcedure</a>)</td>
<td>
code
status
status.value
performed
</td>
<td>
Kidney Transplant
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1012/expansion">Kidney Transplant</a></td>
</tr>
<tr>
<td>Procedure(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-procedure.html">QICoreProcedure</a>)</td>
<td>
code
status
status.value
performed
</td>
<td>
Dialysis Services
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.109.12.1013/expansion">Dialysis Services</a></td>
</tr>
<tr>
<td>Procedure(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-procedure.html">QICoreProcedure</a>)</td>
<td>
code
performed
status
status.value
</td>
<td>
Palliative Care Intervention
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.198.12.1135/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135</a></td>
</tr>
<tr>
<td>DeviceRequest(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-devicerequest.html">QICoreDeviceRequest</a>)</td>
<td>
code
status
status.value
intent
intent.value
url
url.value
value
authoredOn
authoredOn.value
</td>
<td>
Frailty Device
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.118.12.1300/expansion">Frailty Device</a></td>
</tr>
<tr>
<td>MedicationRequest(<a href="http://hl7.org/fhir/us/qicore/STU4.1.1/StructureDefinition-qicore-medicationrequest.html">QICoreMedicationRequest</a>)</td>
<td>
medication
status
status.value
intent
intent.value
dosageInstruction
dispenseRequest
dispenseRequest.expectedSupplyDuration
dispenseRequest.quantity
dispenseRequest.numberOfRepeatsAllowed
dispenseRequest.numberOfRepeatsAllowed.value
authoredOn
authoredOn.value
dispenseRequest.validityPeriod
</td>
<td>
Dementia Medications
</td>
<td><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.196.12.1510/expansion">Dementia Medications</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Direct Reference Codes:</b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>display</b></th>
<th><b>code</b></th>
<th><b>system</b></th>
</tr>
<tr>
<td>Male</td>
<td>M</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-administrative-gender.html">http://hl7.org/fhir/administrative-gender</a></td>
</tr>
<tr>
<td>Female</td>
<td>F</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-administrative-gender.html">http://hl7.org/fhir/administrative-gender</a></td>
</tr>
<tr>
<td>Systolic blood pressure</td>
<td>8480-6</td>
<td><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">http://loinc.org</a></td>
</tr>
<tr>
<td>Diastolic blood pressure</td>
<td>8462-4</td>
<td><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">http://loinc.org</a></td>
</tr>
<tr>
<td>Discharge to home for hospice care (procedure)</td>
<td>428361000124107</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-snomedct.html">http://snomed.info/sct</a></td>
</tr>
<tr>
<td>Discharge to healthcare facility for hospice care (procedure)</td>
<td>428371000124100</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-snomedct.html">http://snomed.info/sct</a></td>
</tr>
<tr>
<td>survey</td>
<td>survey</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-observation-category.html">http://terminology.hl7.org/CodeSystem/observation-category</a></td>
</tr>
<tr>
<td>Yes (qualifier value)</td>
<td>373066001</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-snomedct.html">http://snomed.info/sct</a></td>
</tr>
<tr>
<td>Hospice care [Minimum Data Set]</td>
<td>45755-6</td>
<td><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">http://loinc.org</a></td>
</tr>
<tr>
<td>Medical equipment used</td>
<td>98181-1</td>
<td><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">http://loinc.org</a></td>
</tr>
<tr>
<td>Housing status</td>
<td>71802-3</td>
<td><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">http://loinc.org</a></td>
</tr>
<tr>
<td>Lives in a nursing home (finding)</td>
<td>160734000</td>
<td><a href="http://hl7.org/fhir/R4/codesystem-snomedct.html">http://snomed.info/sct</a></td>
</tr>
<tr>
<td>Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)</td>
<td>71007-9</td>
<td><a href="http://terminology.hl7.org/5.5.0/CodeSystem-v3-loinc.html">http://loinc.org</a></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> 650b4f94da013638e7b3dd9a </td>
<td colspan="3" style="padding-left: 4px;">
<b>Group scoring:</b>
<span> proportion </span>
<b>Measure scoring:</b>
<p style="margin-bottom: 5px;">
<span>Proportion</span>
</p>
<tr>
<th scope="row"><b>Type: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>Outcome </span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Rate Aggregation: </b></th>
<td colspan="3" style="padding-left: 4px;">None</td>
</tr>
<tr>
<th scope="row"><b>Improvement Notation: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>increase </span>
</p>
</td>
</tr>
</td>
<tr>
<td/>
<td/>
<td>Initial Population</td>
<td>
<pre><code class="language-cql">define "Initial Population":
AgeInYearsAt(date from
end of "Measurement Period"
) in Interval[18, 85]
and exists "Essential Hypertension Diagnosis"
and exists AdultOutpatientEncounters."Qualifying Encounters"</code></pre>
</td>
</tr>
<tr>
<td/>
<td/>
<td>Denominator</td>
<td>
<pre><code class="language-cql">define "Denominator":
"Initial Population"</code></pre>
</td>
</tr>
<tr>
<td/>
<td/>
<td>Denominator Exclusion</td>
<td>
<pre><code class="language-cql">define "Denominator Exclusions":
Hospice."Has Hospice Services"
or exists ( "Pregnancy or Renal Diagnosis" )
or exists ( "End Stage Renal Disease Procedures" )
or exists ( "End Stage Renal Disease Encounter" )
or AIFrailLTCF."Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty"
or AIFrailLTCF."Is Age 66 or Older Living Long Term in a Nursing Home"
or PalliativeCare."Has Palliative Care in the Measurement Period"</code></pre>
</td>
</tr>
<tr>
<td/>
<td/>
<td>Numerator</td>
<td>
<pre><code class="language-cql">define "Numerator":
"Has Systolic Blood Pressure Less Than 140"
and "Has Diastolic Blood Pressure Less Than 90"</code></pre>
</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td>
None
</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td>
None
</td>
</tr>
</tr>
</table>
<table class="grid-dict">
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>SupplementalDataElements</td>
<td>SDE Sex</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Sex":
case
when Patient.gender = 'male' then "M"
when Patient.gender = 'female' then "F"
else null
end</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>SDE Sex</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Sex":
SDE."SDE Sex"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Qualifying Systolic Blood Pressure Reading</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Qualifying Systolic Blood Pressure Reading":
( ( ["observation-bp"] ).isObservationBP ( ) ) BloodPressure
where ( not ( ( BloodPressure.encounter.getEncounter ( ) ).class.code in { 'EMER', 'IMP', 'ACUTE', 'NONAC', 'PRENC', 'SS' } ) )
and BloodPressure.effective.latest ( ) during day of "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Qualifying Diastolic Blood Pressure Reading</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Qualifying Diastolic Blood Pressure Reading":
( ( ["observation-bp"] ).isObservationBP ( ) ) BloodPressure
where ( not ( ( BloodPressure.encounter.getEncounter ( ) ).class.code in { 'EMER', 'IMP', 'ACUTE', 'NONAC', 'PRENC', 'SS' } ) )
and BloodPressure.effective.latest ( ) during day of "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Blood Pressure Days</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Blood Pressure Days":
( "Qualifying Diastolic Blood Pressure Reading" DBPExam
return date from DBPExam.effective.latest ( )
)
intersect ( "Qualifying Systolic Blood Pressure Reading" SBPExam
return date from SBPExam.effective.latest ( )
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Most Recent Blood Pressure Day</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Most Recent Blood Pressure Day":
Last("Blood Pressure Days" BPDays
sort asc
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Lowest Systolic Reading on Most Recent Blood Pressure Day</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Lowest Systolic Reading on Most Recent Blood Pressure Day":
First("Qualifying Systolic Blood Pressure Reading" SBPReading
where SBPReading.effective.latest() same day as "Most Recent Blood Pressure Day"
return singleton from(SBPReading.component SBPComponent
where SBPComponent.code ~ "Systolic blood pressure"
return SBPComponent.value as Quantity
)
sort asc
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Has Systolic Blood Pressure Less Than 140</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Systolic Blood Pressure Less Than 140":
"Lowest Systolic Reading on Most Recent Blood Pressure Day" < 140 'mm[Hg]'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Lowest Diastolic Reading on Most Recent Blood Pressure Day</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Lowest Diastolic Reading on Most Recent Blood Pressure Day":
First("Qualifying Diastolic Blood Pressure Reading" DBPReading
where DBPReading.effective.latest() same day as "Most Recent Blood Pressure Day"
return singleton from(DBPReading.component DBPComponent
where DBPComponent.code ~ "Diastolic blood pressure"
return DBPComponent.value as Quantity
)
sort asc
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Has Diastolic Blood Pressure Less Than 90</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Diastolic Blood Pressure Less Than 90":
"Lowest Diastolic Reading on Most Recent Blood Pressure Day" < 90 'mm[Hg]'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Numerator</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Numerator":
"Has Systolic Blood Pressure Less Than 140"
and "Has Diastolic Blood Pressure Less Than 90"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Essential Hypertension Diagnosis</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Essential Hypertension Diagnosis":
( [Condition: "Essential Hypertension"] ) Hypertension
where Hypertension.prevalenceInterval ( ) overlaps Interval[start of "Measurement Period", start of "Measurement Period" + 6 months )</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AdultOutpatientEncounters</td>
<td>Qualifying Encounters</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Qualifying Encounters":
( ( [Encounter: "Office Visit"]
union [Encounter: "Annual Wellness Visit"]
union [Encounter: "Preventive Care Services Established Office Visit, 18 and Up"]
union [Encounter: "Preventive Care Services Initial Office Visit, 18 and Up"]
union [Encounter: "Home Healthcare Services"]
union [Encounter: "Virtual Encounter"]
union [Encounter: "Telephone Visits"] ).isEncounterPerformed() ) ValidEncounter
where ValidEncounter.period.toInterval() during day of "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Initial Population</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Initial Population":
AgeInYearsAt(date from
end of "Measurement Period"
) in Interval[18, 85]
and exists "Essential Hypertension Diagnosis"
and exists AdultOutpatientEncounters."Qualifying Encounters"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Denominator</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Denominator":
"Initial Population"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>SupplementalDataElements</td>
<td>SDE Payer</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Payer":
[Coverage: type in "Payer Type"] Payer
return {
code: Payer.type,
period: Payer.period
}</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>SDE Payer</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Payer":
SDE."SDE Payer"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>SupplementalDataElements</td>
<td>SDE Ethnicity</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Ethnicity":
Patient.ethnicity E
return Tuple {
codes: { E.ombCategory } union E.detailed,
display: E.text
}</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>SDE Ethnicity</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Ethnicity":
SDE."SDE Ethnicity"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Hospice</td>
<td>Has Hospice Services</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Hospice Services":
exists ((([Encounter: "Encounter Inpatient"]).isEncounterPerformed()) InpatientEncounter
where (InpatientEncounter.hospitalization.dischargeDisposition ~ "Discharge to home for hospice care (procedure)"
or InpatientEncounter.hospitalization.dischargeDisposition ~ "Discharge to healthcare facility for hospice care (procedure)"
)
and InpatientEncounter.period.toInterval() ends during day of "Measurement Period"
)
or exists ((([Encounter: "Hospice Encounter"]).isEncounterPerformed()) HospiceEncounter
where HospiceEncounter.period.toInterval() overlaps day of "Measurement Period"
)
or exists ((([Observation: "Hospice care [Minimum Data Set]"]).isAssessmentPerformed()) HospiceAssessment
where HospiceAssessment.value ~ "Yes (qualifier value)"
and HospiceAssessment.effective.toInterval() overlaps day of "Measurement Period"
)
or exists ((([ServiceRequest: "Hospice Care Ambulatory"]).isInterventionOrder()) HospiceOrder
where HospiceOrder.authoredOn.toInterval() during day of "Measurement Period"
// and HospiceOrder.doNotPerform is not true
// https://oncprojectracking.healthit.gov/support/browse/CQLIT-447
)
or exists ((([Procedure: "Hospice Care Ambulatory"]).isInterventionPerformed()) HospicePerformed
where HospicePerformed.performed.toInterval() overlaps day of "Measurement Period"
)
or exists (([Condition: "Hospice Diagnosis"]) HospiceCareDiagnosis
where HospiceCareDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Pregnancy or Renal Diagnosis</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Pregnancy or Renal Diagnosis":
( [Condition: "Pregnancy"]
union [Condition: "End Stage Renal Disease"]
union [Condition: "Kidney Transplant Recipient"]
union [Condition: "Chronic Kidney Disease, Stage 5"] ) PregnancyESRDDiagnosis
where PregnancyESRDDiagnosis.prevalenceInterval ( ) overlaps "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>End Stage Renal Disease Procedures</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "End Stage Renal Disease Procedures":
( ( [Procedure: "Kidney Transplant"]
union [Procedure: "Dialysis Services"]
).isProcedurePerformed ( ) ) ESRDProcedure
where ESRDProcedure.performed.toInterval ( ) ends on or before end of "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>End Stage Renal Disease Encounter</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "End Stage Renal Disease Encounter":
( ( [Encounter: "ESRD Monthly Outpatient Services"] ).isEncounterPerformed ( ) ) ESRDEncounter
where ESRDEncounter.period.toInterval ( ) starts on or before end of "Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AdvancedIllnessandFrailty</td>
<td>Has Criteria Indicating Frailty</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Criteria Indicating Frailty":
exists ( (([DeviceRequest: "Frailty Device"]).isDeviceOrder()) FrailtyDeviceOrder
where FrailtyDeviceOrder.doNotPerform() is not true
and FrailtyDeviceOrder.authoredOn.toInterval() during day of "Measurement Period"
)
or exists ( (([Observation: "Medical equipment used"]).isAssessmentPerformed()) EquipmentUsed
where EquipmentUsed.value as Concept in "Frailty Device"
and EquipmentUsed.effective.toInterval() ends during day of "Measurement Period"
)
or exists ( ([Condition: "Frailty Diagnosis"]) FrailtyDiagnosis
where FrailtyDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
)
or exists ( (([Encounter: "Frailty Encounter"]).isEncounterPerformed()) FrailtyEncounter
where FrailtyEncounter.period.toInterval() overlaps day of "Measurement Period"
)
or exists ( (([Observation: "Frailty Symptom"]).isSymptom()) FrailtySymptom
where FrailtySymptom.effective.toInterval() overlaps day of "Measurement Period"
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AdvancedIllnessandFrailty</td>
<td>Has Advanced Illness in Year Before or During Measurement Period</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Advanced Illness in Year Before or During Measurement Period":
exists ([Condition: "Advanced Illness"] AdvancedIllnessDiagnosis
where AdvancedIllnessDiagnosis.prevalenceInterval() starts during day of Interval[start of "Measurement Period" - 1 year, end of "Measurement Period"])</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AdvancedIllnessandFrailty</td>
<td>Has Dementia Medications in Year Before or During Measurement Period</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Dementia Medications in Year Before or During Measurement Period":
exists (( ([MedicationRequest: medication in "Dementia Medications"]).isMedicationActive()) DementiaMedication
// https://oncprojectracking.healthit.gov/support/browse/CQLIT-449
where DementiaMedication.medicationRequestPeriod() overlaps day of Interval[start of "Measurement Period" - 1 year,
end of "Measurement Period"]
// and DementiaMedication.doNotPerform is not true
// https://oncprojectracking.healthit.gov/support/browse/CQLIT-447
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AdvancedIllnessandFrailty</td>
<td>Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty":
( AgeInYearsAt(date from end of "Measurement Period")in Interval[66, 80]
and "Has Criteria Indicating Frailty"
and ( "Has Advanced Illness in Year Before or During Measurement Period"
or "Has Dementia Medications in Year Before or During Measurement Period"
)
)
or ( AgeInYearsAt(date from end of "Measurement Period")>= 81
and "Has Criteria Indicating Frailty"
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>AdvancedIllnessandFrailty</td>
<td>Is Age 66 or Older Living Long Term in a Nursing Home</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Is Age 66 or Older Living Long Term in a Nursing Home":
AgeInYearsAt(date from
end of "Measurement Period"
)>= 66
and ( ( Last( (([Observation: "Housing status"]).isAssessmentPerformed()) HousingStatus
where HousingStatus.effective.toInterval() ends on or before
day of end of "Measurement Period"
sort by
end of effective.toInterval() asc
)) LastHousingStatus
where LastHousingStatus.value ~ "Lives in a nursing home (finding)"
) is not null</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>PalliativeCare</td>
<td>Has Palliative Care in the Measurement Period</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Has Palliative Care in the Measurement Period":
exists ((([Observation: "Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)"]).isAssessmentPerformed()) PalliativeAssessment
where PalliativeAssessment.effective.toInterval() overlaps day of "Measurement Period"
)
or exists ([Condition: "Palliative Care Diagnosis"] PalliativeDiagnosis
where PalliativeDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
)
or exists ((([Encounter: "Palliative Care Encounter"]).isEncounterPerformed()) PalliativeEncounter
where PalliativeEncounter.period.toInterval() overlaps day of "Measurement Period"
)
or exists ((([Procedure: "Palliative Care Intervention"]).isInterventionPerformed()) PalliativeIntervention
where PalliativeIntervention.performed.toInterval() overlaps day of "Measurement Period"
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>Denominator Exclusions</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "Denominator Exclusions":
Hospice."Has Hospice Services"
or exists ( "Pregnancy or Renal Diagnosis" )
or exists ( "End Stage Renal Disease Procedures" )
or exists ( "End Stage Renal Disease Encounter" )
or AIFrailLTCF."Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty"
or AIFrailLTCF."Is Age 66 or Older Living Long Term in a Nursing Home"
or PalliativeCare."Has Palliative Care in the Measurement Period"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>SupplementalDataElements</td>
<td>SDE Race</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Race":
Patient.race R
return Tuple {
codes: R.ombCategory union R.detailed,
display: R.text
}</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>SDE Race</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define "SDE Race":
SDE."SDE Race"</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isObservationBP</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Observation Vital Signs
define fluent function isObservationBP(Obs List<"QICore.observation-bp">):
Obs O
where O.status in { 'final', 'amended', 'corrected' }</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>ControllingHighBloodPressureFHIR</td>
<td>getEncounter</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define fluent function getEncounter(reference Reference):
singleton from ( [Encounter] E
where E.id = reference.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>QICoreCommon</td>
<td>prevalenceInterval</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
@comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from
onset to abatement as specified in the given Condition. If the condition is active, or has an abatement date the resulting
interval will have a closed ending boundary. Otherwise, the resulting interval will have an open ending boundary.
*/
define fluent function prevalenceInterval(condition Condition):
if condition.clinicalStatus ~ "active"
or condition.clinicalStatus ~ "recurrence"
or condition.clinicalStatus ~ "relapse" then
Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()]
else
(end of condition.abatementInterval()) abatementDate
return if abatementDate is null then
Interval[start of condition.onset.toInterval(), abatementDate)
else
Interval[start of condition.onset.toInterval(), abatementDate]</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isEncounterPerformed</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Encounter, Performed
//General usage unless required otherwise by measure intent (e.g., follow-up encounters)
define fluent function isEncounterPerformed(Enc List<Encounter>):
Enc E
where E.status in {'finished', 'arrived', 'triaged', 'in-progress', 'onleave'}</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>QICoreCommon</td>
<td>toInterval</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
@comment: Normalizes a choice type of DateTime, Quanitty, Interval<DateTime>, or Interval<Quantity> types
to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
representations for timing-valued elements in QICore, allowing this function to be used across any resource.
The input can be provided as a DateTime, Quantity, Interval<DateTime> or Interval<Quantity>.
The intent of this function is to provide a clear and concise mechanism to treat single
elements that have multiple possible representations as intervals so that logic doesn't have to account
for the variability. More complex calculations (such as medication request period or dispense period
calculation) need specific guidance and consideration. That guidance may make use of this function, but
the focus of this function is on single element calculations where the semantics are unambiguous.
If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
If the input is a DateTime Interval, the result is the input.
If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
If the input is a Timing, an error will be thrown indicating that Timing calculations are not implemented. Any other input will reslt in a null DateTime Interval
*/
define fluent function toInterval(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>, Timing>):
case
when choice is DateTime then
Interval[choice as DateTime, choice as DateTime]
when choice is Interval<DateTime> then
choice as Interval<DateTime>
when choice is Quantity then
Interval[Patient.birthDate + (choice as Quantity),
Patient.birthDate + (choice as Quantity) + 1 year)
when choice is Interval<Quantity> then
Interval[Patient.birthDate + (choice.low as Quantity),
Patient.birthDate + (choice.high as Quantity) + 1 year)
when choice is Timing then
Message(null, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported') as Interval<DateTime>
else
null as Interval<DateTime>
end</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>FHIRHelpers</td>
<td>ToString</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define function ToString(value uri): value.value</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>FHIRHelpers</td>
<td>ToCode</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
if coding is null then
null
else
System.Code {
code: coding.code.value,
system: coding.system.value,
version: coding.version.value,
display: coding.display.value
}</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isAssessmentPerformed</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//This library contains functions that are based on QDM 5.6 to QICore 4.1.1 March 2023 (https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Authoring-Patterns---QICore-v4.1.1). The functions may appear similar to some QICoreCommon functions but different in that they have constraints that are relevant for measures authored by NCQA.
//Assessment, Performed
define fluent function isAssessmentPerformed(Obs List<Observation>):
Obs O
where O.status in { 'final', 'amended', 'corrected' }
and exists ( O.category ObservationCategory
where ( ObservationCategory ) ~ "survey"
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>FHIRHelpers</td>
<td>ToConcept</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Converts the given FHIR [CodeableConcept](https://hl7.org/fhir/datatypes.html#CodeableConcept) value to a CQL Concept.
*/
define function ToConcept(concept FHIR.CodeableConcept):
if concept is null then
null
else
System.Concept {
codes: concept.coding C return ToCode(C),
display: concept.text.value
}</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isInterventionOrder</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Intervention, Order: active and completed only
define fluent function isInterventionOrder(ServiceRequest List<ServiceRequest>):
ServiceRequest S
where S.status in { 'active', 'completed' }
and S.intent = 'order'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isInterventionPerformed</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Intervention, Performed
define fluent function isInterventionPerformed(Proc List<Procedure>):
Proc P
where P.status ~ 'completed'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isProcedurePerformed</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Procedure, Performed
define fluent function isProcedurePerformed(Proc List<Procedure>):
Proc P
where P.status ~ 'completed'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isDeviceOrder</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Device, Order - Personal Use Devices: active and completed only
define fluent function isDeviceOrder(DeviceRequest List<DeviceRequest>):
DeviceRequest D
where D.status in { 'active', 'completed' }
and D.intent = 'order'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>QICoreCommon</td>
<td>doNotPerform</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
@description: Returns true if the given DeviceRequest is a negation (i.e. do not perform this order)
*/
define fluent function doNotPerform(deviceRequest DeviceRequest):
singleton from (
deviceRequest.modifierExtension E
where E.url = 'http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-doNotPerform'
return E.value as Boolean
)</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isSymptom</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Symptom
define fluent function isSymptom(Obs List<Observation>):
Obs O
where O.status in { 'preliminary', 'final', 'amended', 'corrected' }</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>Status</td>
<td>isMedicationActive</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">//Medication, Active
define fluent function isMedicationActive(MedicationRequest List<MedicationRequest>):
MedicationRequest M
where M.status = 'active'
and M.intent = 'order'</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>CumulativeMedicationDuration</td>
<td>medicationRequestPeriod</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">define fluent function medicationRequestPeriod(Request "MedicationRequest"):
Request R
let
dosage: singleton from R.dosageInstruction,
doseAndRate: singleton from dosage.doseAndRate,
timing: dosage.timing,
frequency: Coalesce(timing.repeat.frequencyMax, timing.repeat.frequency),
period: Quantity(timing.repeat.period, timing.repeat.periodUnit),
doseRange: doseAndRate.dose,
doseQuantity: doseAndRate.dose,
dose: Coalesce(end of doseRange, doseQuantity),
dosesPerDay: Coalesce(ToDaily(frequency, period), Count(timing.repeat.timeOfDay), 1.0),
boundsPeriod: timing.repeat.bounds as Interval<DateTime>,
daysSupply: (convert R.dispenseRequest.expectedSupplyDuration to days).value,
quantity: R.dispenseRequest.quantity,
refills: Coalesce(R.dispenseRequest.numberOfRepeatsAllowed, 0),
startDate:
Coalesce(
date from start of boundsPeriod,
date from R.authoredOn,
date from start of R.dispenseRequest.validityPeriod
),
totalDaysSupplied: Coalesce(daysSupply, quantity.value / (dose.value * dosesPerDay)) * (1 + refills)
return
if startDate is not null and totalDaysSupplied is not null then
Interval[startDate, startDate + Quantity(totalDaysSupplied - 1, 'day') ]
else if startDate is not null and boundsPeriod."high" is not null then
Interval[startDate, date from end of boundsPeriod]
else
null</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>CumulativeMedicationDuration</td>
<td>Quantity</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/**********************************************************************/
/* Functions in this region are copied from opioid-mme-r4 */
/**********************************************************************/
define function Quantity(value Decimal, unit String):
if value is not null then
System.Quantity { value: value, unit: unit }
else
null</code></pre>
</td>
</tr>
<tr>
<th><b>Library Name</b></th>
<th><b>Name</b></th>
</tr>
<tr>
<td>CumulativeMedicationDuration</td>
<td>ToDaily</td>
</tr>
<tr>
<td/>
<td>
<pre class="highlight language-cql"><code class="language-cql">/*
Goal is to get to number of days
Two broad approaches to the calculation:
1) Based on supply and frequency, calculate the number of expected days the medication will cover/has covered
2) Based on relevant period, determine a covered interval and calculate the length of that interval in days
This topic covers several use cases and illustrates how to calculate Cumulative
Medication Duration for each type of medication resource using the supply and
frequency approach.
*/
/*
For the first approach, we need to get from frequency to a frequency/day
So we define ToDaily
*/
/*
Calculates daily frequency given frequency within a period
*/
define function ToDaily(frequency System.Integer, period System.Quantity):
case period.unit
when 'h' then frequency * (24.0 / period.value)
when 'min' then frequency * (24.0 / period.value) * 60
when 's' then frequency * (24.0 / period.value) * 60 * 60
when 'd' then frequency * (24.0 / period.value) / 24
when 'wk' then frequency * (24.0 / period.value) / (24 * 7)
when 'mo' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
when 'a' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
when 'hour' then frequency * (24.0 / period.value)
when 'minute' then frequency * (24.0 / period.value) * 60
when 'second' then frequency * (24.0 / period.value) * 60 * 60
when 'day' then frequency * (24.0 / period.value) / 24
when 'week' then frequency * (24.0 / period.value) / (24 * 7)
when 'month' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
when 'year' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
when 'hours' then frequency * (24.0 / period.value)
when 'minutes' then frequency * (24.0 / period.value) * 60
when 'seconds' then frequency * (24.0 / period.value) * 60 * 60
when 'days' then frequency * (24.0 / period.value) / 24
when 'weeks' then frequency * (24.0 / period.value) / (24 * 7)
when 'months' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
when 'years' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
else Message(null, true, 'CMDLogic.ToDaily.UnknownUnit', ErrorLevel, 'Unknown unit ' & period.unit)
end</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-directReferenceCode">
<valueCoding>
<system value="http://hl7.org/fhir/administrative-gender"/>
<code value="M"/>
<display value="Male"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://hl7.org/fhir/administrative-gender"/>
<code value="F"/>
<display value="Female"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="8480-6"/>
<display value="Systolic blood pressure"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="8462-4"/>
<display value="Diastolic blood pressure"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://snomed.info/sct"/>
<code value="428361000124107"/>
<display value="Discharge to home for hospice care (procedure)"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://snomed.info/sct"/>
<code value="428371000124100"/>
<display
value="Discharge to healthcare facility for hospice care (procedure)"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system
value="http://terminology.hl7.org/CodeSystem/observation-category"/>
<code value="survey"/>
<display value="survey"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://snomed.info/sct"/>
<code value="373066001"/>
<display value="Yes (qualifier value)"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="45755-6"/>
<display value="Hospice care [Minimum Data Set]"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="98181-1"/>
<display value="Medical equipment used"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="71802-3"/>
<display value="Housing status"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://snomed.info/sct"/>
<code value="160734000"/>
<display value="Lives in a nursing home (finding)"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="71007-9"/>
<display
value="Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="SupplementalDataElements"/>
</extension>
<extension url="name">
<valueString value="SDE Sex"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Sex":
case
when Patient.gender = 'male' then "M"
when Patient.gender = 'female' then "F"
else null
end"/>
</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="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="SDE Sex"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Sex":
SDE."SDE Sex""/>
</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="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Qualifying Systolic Blood Pressure Reading"/>
</extension>
<extension url="statement">
<valueString
value="define "Qualifying Systolic Blood Pressure Reading":
( ( ["observation-bp"] ).isObservationBP ( ) ) BloodPressure
where ( not ( ( BloodPressure.encounter.getEncounter ( ) ).class.code in { 'EMER', 'IMP', 'ACUTE', 'NONAC', 'PRENC', 'SS' } ) )
and BloodPressure.effective.latest ( ) during day of "Measurement Period""/>
</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="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Qualifying Diastolic Blood Pressure Reading"/>
</extension>
<extension url="statement">
<valueString
value="define "Qualifying Diastolic Blood Pressure Reading":
( ( ["observation-bp"] ).isObservationBP ( ) ) BloodPressure
where ( not ( ( BloodPressure.encounter.getEncounter ( ) ).class.code in { 'EMER', 'IMP', 'ACUTE', 'NONAC', 'PRENC', 'SS' } ) )
and BloodPressure.effective.latest ( ) during day of "Measurement Period""/>
</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="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Blood Pressure Days"/>
</extension>
<extension url="statement">
<valueString
value="define "Blood Pressure Days":
( "Qualifying Diastolic Blood Pressure Reading" DBPExam
return date from DBPExam.effective.latest ( )
)
intersect ( "Qualifying Systolic Blood Pressure Reading" SBPExam
return date from SBPExam.effective.latest ( )
)"/>
</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="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Most Recent Blood Pressure Day"/>
</extension>
<extension url="statement">
<valueString
value="define "Most Recent Blood Pressure Day":
Last("Blood Pressure Days" BPDays
sort asc
)"/>
</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="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString
value="Lowest Systolic Reading on Most Recent Blood Pressure Day"/>
</extension>
<extension url="statement">
<valueString
value="define "Lowest Systolic Reading on Most Recent Blood Pressure Day":
First("Qualifying Systolic Blood Pressure Reading" SBPReading
where SBPReading.effective.latest() same day as "Most Recent Blood Pressure Day"
return singleton from(SBPReading.component SBPComponent
where SBPComponent.code ~ "Systolic blood pressure"
return SBPComponent.value as Quantity
)
sort asc
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="6"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Has Systolic Blood Pressure Less Than 140"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Systolic Blood Pressure Less Than 140":
"Lowest Systolic Reading on Most Recent Blood Pressure Day" < 140 'mm[Hg]'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="7"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString
value="Lowest Diastolic Reading on Most Recent Blood Pressure Day"/>
</extension>
<extension url="statement">
<valueString
value="define "Lowest Diastolic Reading on Most Recent Blood Pressure Day":
First("Qualifying Diastolic Blood Pressure Reading" DBPReading
where DBPReading.effective.latest() same day as "Most Recent Blood Pressure Day"
return singleton from(DBPReading.component DBPComponent
where DBPComponent.code ~ "Diastolic blood pressure"
return DBPComponent.value as Quantity
)
sort asc
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="8"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Has Diastolic Blood Pressure Less Than 90"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Diastolic Blood Pressure Less Than 90":
"Lowest Diastolic Reading on Most Recent Blood Pressure Day" < 90 'mm[Hg]'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="9"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Numerator"/>
</extension>
<extension url="statement">
<valueString
value="define "Numerator":
"Has Systolic Blood Pressure Less Than 140"
and "Has Diastolic Blood Pressure Less Than 90""/>
</extension>
<extension url="displaySequence">
<valueInteger value="10"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Essential Hypertension Diagnosis"/>
</extension>
<extension url="statement">
<valueString
value="define "Essential Hypertension Diagnosis":
( [Condition: "Essential Hypertension"] ) Hypertension
where Hypertension.prevalenceInterval ( ) overlaps Interval[start of "Measurement Period", start of "Measurement Period" + 6 months )"/>
</extension>
<extension url="displaySequence">
<valueInteger value="11"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AdultOutpatientEncounters"/>
</extension>
<extension url="name">
<valueString value="Qualifying Encounters"/>
</extension>
<extension url="statement">
<valueString
value="define "Qualifying Encounters":
( ( [Encounter: "Office Visit"]
union [Encounter: "Annual Wellness Visit"]
union [Encounter: "Preventive Care Services Established Office Visit, 18 and Up"]
union [Encounter: "Preventive Care Services Initial Office Visit, 18 and Up"]
union [Encounter: "Home Healthcare Services"]
union [Encounter: "Virtual Encounter"]
union [Encounter: "Telephone Visits"] ).isEncounterPerformed() ) ValidEncounter
where ValidEncounter.period.toInterval() during day of "Measurement Period""/>
</extension>
<extension url="displaySequence">
<valueInteger value="12"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Initial Population"/>
</extension>
<extension url="statement">
<valueString
value="define "Initial Population":
AgeInYearsAt(date from
end of "Measurement Period"
) in Interval[18, 85]
and exists "Essential Hypertension Diagnosis"
and exists AdultOutpatientEncounters."Qualifying Encounters""/>
</extension>
<extension url="displaySequence">
<valueInteger value="13"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Denominator"/>
</extension>
<extension url="statement">
<valueString
value="define "Denominator":
"Initial Population""/>
</extension>
<extension url="displaySequence">
<valueInteger value="14"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="SupplementalDataElements"/>
</extension>
<extension url="name">
<valueString value="SDE Payer"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Payer":
[Coverage: type in "Payer Type"] Payer
return {
code: Payer.type,
period: Payer.period
}"/>
</extension>
<extension url="displaySequence">
<valueInteger value="15"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="SDE Payer"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Payer":
SDE."SDE Payer""/>
</extension>
<extension url="displaySequence">
<valueInteger value="16"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="SupplementalDataElements"/>
</extension>
<extension url="name">
<valueString value="SDE Ethnicity"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Ethnicity":
Patient.ethnicity E
return Tuple {
codes: { E.ombCategory } union E.detailed,
display: E.text
}"/>
</extension>
<extension url="displaySequence">
<valueInteger value="17"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="SDE Ethnicity"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Ethnicity":
SDE."SDE Ethnicity""/>
</extension>
<extension url="displaySequence">
<valueInteger value="18"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Hospice"/>
</extension>
<extension url="name">
<valueString value="Has Hospice Services"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Hospice Services":
exists ((([Encounter: "Encounter Inpatient"]).isEncounterPerformed()) InpatientEncounter
where (InpatientEncounter.hospitalization.dischargeDisposition ~ "Discharge to home for hospice care (procedure)"
or InpatientEncounter.hospitalization.dischargeDisposition ~ "Discharge to healthcare facility for hospice care (procedure)"
)
and InpatientEncounter.period.toInterval() ends during day of "Measurement Period"
)
or exists ((([Encounter: "Hospice Encounter"]).isEncounterPerformed()) HospiceEncounter
where HospiceEncounter.period.toInterval() overlaps day of "Measurement Period"
)
or exists ((([Observation: "Hospice care [Minimum Data Set]"]).isAssessmentPerformed()) HospiceAssessment
where HospiceAssessment.value ~ "Yes (qualifier value)"
and HospiceAssessment.effective.toInterval() overlaps day of "Measurement Period"
)
or exists ((([ServiceRequest: "Hospice Care Ambulatory"]).isInterventionOrder()) HospiceOrder
where HospiceOrder.authoredOn.toInterval() during day of "Measurement Period"
// and HospiceOrder.doNotPerform is not true
// https://oncprojectracking.healthit.gov/support/browse/CQLIT-447
)
or exists ((([Procedure: "Hospice Care Ambulatory"]).isInterventionPerformed()) HospicePerformed
where HospicePerformed.performed.toInterval() overlaps day of "Measurement Period"
)
or exists (([Condition: "Hospice Diagnosis"]) HospiceCareDiagnosis
where HospiceCareDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="19"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Pregnancy or Renal Diagnosis"/>
</extension>
<extension url="statement">
<valueString
value="define "Pregnancy or Renal Diagnosis":
( [Condition: "Pregnancy"]
union [Condition: "End Stage Renal Disease"]
union [Condition: "Kidney Transplant Recipient"]
union [Condition: "Chronic Kidney Disease, Stage 5"] ) PregnancyESRDDiagnosis
where PregnancyESRDDiagnosis.prevalenceInterval ( ) overlaps "Measurement Period""/>
</extension>
<extension url="displaySequence">
<valueInteger value="20"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="End Stage Renal Disease Procedures"/>
</extension>
<extension url="statement">
<valueString
value="define "End Stage Renal Disease Procedures":
( ( [Procedure: "Kidney Transplant"]
union [Procedure: "Dialysis Services"]
).isProcedurePerformed ( ) ) ESRDProcedure
where ESRDProcedure.performed.toInterval ( ) ends on or before end of "Measurement Period""/>
</extension>
<extension url="displaySequence">
<valueInteger value="21"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="End Stage Renal Disease Encounter"/>
</extension>
<extension url="statement">
<valueString
value="define "End Stage Renal Disease Encounter":
( ( [Encounter: "ESRD Monthly Outpatient Services"] ).isEncounterPerformed ( ) ) ESRDEncounter
where ESRDEncounter.period.toInterval ( ) starts on or before end of "Measurement Period""/>
</extension>
<extension url="displaySequence">
<valueInteger value="22"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AdvancedIllnessandFrailty"/>
</extension>
<extension url="name">
<valueString value="Has Criteria Indicating Frailty"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Criteria Indicating Frailty":
exists ( (([DeviceRequest: "Frailty Device"]).isDeviceOrder()) FrailtyDeviceOrder
where FrailtyDeviceOrder.doNotPerform() is not true
and FrailtyDeviceOrder.authoredOn.toInterval() during day of "Measurement Period"
)
or exists ( (([Observation: "Medical equipment used"]).isAssessmentPerformed()) EquipmentUsed
where EquipmentUsed.value as Concept in "Frailty Device"
and EquipmentUsed.effective.toInterval() ends during day of "Measurement Period"
)
or exists ( ([Condition: "Frailty Diagnosis"]) FrailtyDiagnosis
where FrailtyDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
)
or exists ( (([Encounter: "Frailty Encounter"]).isEncounterPerformed()) FrailtyEncounter
where FrailtyEncounter.period.toInterval() overlaps day of "Measurement Period"
)
or exists ( (([Observation: "Frailty Symptom"]).isSymptom()) FrailtySymptom
where FrailtySymptom.effective.toInterval() overlaps day of "Measurement Period"
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="23"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AdvancedIllnessandFrailty"/>
</extension>
<extension url="name">
<valueString
value="Has Advanced Illness in Year Before or During Measurement Period"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Advanced Illness in Year Before or During Measurement Period":
exists ([Condition: "Advanced Illness"] AdvancedIllnessDiagnosis
where AdvancedIllnessDiagnosis.prevalenceInterval() starts during day of Interval[start of "Measurement Period" - 1 year, end of "Measurement Period"])"/>
</extension>
<extension url="displaySequence">
<valueInteger value="24"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AdvancedIllnessandFrailty"/>
</extension>
<extension url="name">
<valueString
value="Has Dementia Medications in Year Before or During Measurement Period"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Dementia Medications in Year Before or During Measurement Period":
exists (( ([MedicationRequest: medication in "Dementia Medications"]).isMedicationActive()) DementiaMedication
// https://oncprojectracking.healthit.gov/support/browse/CQLIT-449
where DementiaMedication.medicationRequestPeriod() overlaps day of Interval[start of "Measurement Period" - 1 year,
end of "Measurement Period"]
// and DementiaMedication.doNotPerform is not true
// https://oncprojectracking.healthit.gov/support/browse/CQLIT-447
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="25"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AdvancedIllnessandFrailty"/>
</extension>
<extension url="name">
<valueString
value="Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty"/>
</extension>
<extension url="statement">
<valueString
value="define "Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty":
( AgeInYearsAt(date from end of "Measurement Period")in Interval[66, 80]
and "Has Criteria Indicating Frailty"
and ( "Has Advanced Illness in Year Before or During Measurement Period"
or "Has Dementia Medications in Year Before or During Measurement Period"
)
)
or ( AgeInYearsAt(date from end of "Measurement Period")>= 81
and "Has Criteria Indicating Frailty"
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="26"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="AdvancedIllnessandFrailty"/>
</extension>
<extension url="name">
<valueString
value="Is Age 66 or Older Living Long Term in a Nursing Home"/>
</extension>
<extension url="statement">
<valueString
value="define "Is Age 66 or Older Living Long Term in a Nursing Home":
AgeInYearsAt(date from
end of "Measurement Period"
)>= 66
and ( ( Last( (([Observation: "Housing status"]).isAssessmentPerformed()) HousingStatus
where HousingStatus.effective.toInterval() ends on or before
day of end of "Measurement Period"
sort by
end of effective.toInterval() asc
)) LastHousingStatus
where LastHousingStatus.value ~ "Lives in a nursing home (finding)"
) is not null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="27"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="PalliativeCare"/>
</extension>
<extension url="name">
<valueString value="Has Palliative Care in the Measurement Period"/>
</extension>
<extension url="statement">
<valueString
value="define "Has Palliative Care in the Measurement Period":
exists ((([Observation: "Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)"]).isAssessmentPerformed()) PalliativeAssessment
where PalliativeAssessment.effective.toInterval() overlaps day of "Measurement Period"
)
or exists ([Condition: "Palliative Care Diagnosis"] PalliativeDiagnosis
where PalliativeDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
)
or exists ((([Encounter: "Palliative Care Encounter"]).isEncounterPerformed()) PalliativeEncounter
where PalliativeEncounter.period.toInterval() overlaps day of "Measurement Period"
)
or exists ((([Procedure: "Palliative Care Intervention"]).isInterventionPerformed()) PalliativeIntervention
where PalliativeIntervention.performed.toInterval() overlaps day of "Measurement Period"
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="28"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="Denominator Exclusions"/>
</extension>
<extension url="statement">
<valueString
value="define "Denominator Exclusions":
Hospice."Has Hospice Services"
or exists ( "Pregnancy or Renal Diagnosis" )
or exists ( "End Stage Renal Disease Procedures" )
or exists ( "End Stage Renal Disease Encounter" )
or AIFrailLTCF."Is Age 66 to 80 with Advanced Illness and Frailty or Is Age 81 or Older with Frailty"
or AIFrailLTCF."Is Age 66 or Older Living Long Term in a Nursing Home"
or PalliativeCare."Has Palliative Care in the Measurement Period""/>
</extension>
<extension url="displaySequence">
<valueInteger value="29"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="SupplementalDataElements"/>
</extension>
<extension url="name">
<valueString value="SDE Race"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Race":
Patient.race R
return Tuple {
codes: R.ombCategory union R.detailed,
display: R.text
}"/>
</extension>
<extension url="displaySequence">
<valueInteger value="30"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="SDE Race"/>
</extension>
<extension url="statement">
<valueString
value="define "SDE Race":
SDE."SDE Race""/>
</extension>
<extension url="displaySequence">
<valueInteger value="31"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isObservationBP"/>
</extension>
<extension url="statement">
<valueString
value="//Observation Vital Signs
define fluent function isObservationBP(Obs List<"QICore.observation-bp">):
Obs O
where O.status in { 'final', 'amended', 'corrected' }"/>
</extension>
<extension url="displaySequence">
<valueInteger value="32"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="ControllingHighBloodPressureFHIR"/>
</extension>
<extension url="name">
<valueString value="getEncounter"/>
</extension>
<extension url="statement">
<valueString
value="define fluent function getEncounter(reference Reference):
singleton from ( [Encounter] E
where E.id = reference.reference.getId ( )
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="33"/>
</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="34"/>
</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="prevalenceInterval"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
@comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from
onset to abatement as specified in the given Condition. If the condition is active, or has an abatement date the resulting
interval will have a closed ending boundary. Otherwise, the resulting interval will have an open ending boundary.
*/
define fluent function prevalenceInterval(condition Condition):
if condition.clinicalStatus ~ "active"
or condition.clinicalStatus ~ "recurrence"
or condition.clinicalStatus ~ "relapse" then
Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()]
else
(end of condition.abatementInterval()) abatementDate
return if abatementDate is null then
Interval[start of condition.onset.toInterval(), abatementDate)
else
Interval[start of condition.onset.toInterval(), abatementDate]"/>
</extension>
<extension url="displaySequence">
<valueInteger value="35"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isEncounterPerformed"/>
</extension>
<extension url="statement">
<valueString
value="//Encounter, Performed
//General usage unless required otherwise by measure intent (e.g., follow-up encounters)
define fluent function isEncounterPerformed(Enc List<Encounter>):
Enc E
where E.status in {'finished', 'arrived', 'triaged', 'in-progress', 'onleave'}"/>
</extension>
<extension url="displaySequence">
<valueInteger value="36"/>
</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="toInterval"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
@comment: Normalizes a choice type of DateTime, Quanitty, Interval<DateTime>, or Interval<Quantity> types
to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
representations for timing-valued elements in QICore, allowing this function to be used across any resource.
The input can be provided as a DateTime, Quantity, Interval<DateTime> or Interval<Quantity>.
The intent of this function is to provide a clear and concise mechanism to treat single
elements that have multiple possible representations as intervals so that logic doesn't have to account
for the variability. More complex calculations (such as medication request period or dispense period
calculation) need specific guidance and consideration. That guidance may make use of this function, but
the focus of this function is on single element calculations where the semantics are unambiguous.
If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
If the input is a DateTime Interval, the result is the input.
If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
If the input is a Timing, an error will be thrown indicating that Timing calculations are not implemented. Any other input will reslt in a null DateTime Interval
*/
define fluent function toInterval(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>, Timing>):
case
when choice is DateTime then
Interval[choice as DateTime, choice as DateTime]
when choice is Interval<DateTime> then
choice as Interval<DateTime>
when choice is Quantity then
Interval[Patient.birthDate + (choice as Quantity),
Patient.birthDate + (choice as Quantity) + 1 year)
when choice is Interval<Quantity> then
Interval[Patient.birthDate + (choice.low as Quantity),
Patient.birthDate + (choice.high as Quantity) + 1 year)
when choice is Timing then
Message(null, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported') as Interval<DateTime>
else
null as Interval<DateTime>
end"/>
</extension>
<extension url="displaySequence">
<valueInteger value="37"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="FHIRHelpers"/>
</extension>
<extension url="name">
<valueString value="ToString"/>
</extension>
<extension url="statement">
<valueString
value="define function ToString(value uri): value.value"/>
</extension>
<extension url="displaySequence">
<valueInteger value="38"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="FHIRHelpers"/>
</extension>
<extension url="name">
<valueString value="ToCode"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
if coding is null then
null
else
System.Code {
code: coding.code.value,
system: coding.system.value,
version: coding.version.value,
display: coding.display.value
}"/>
</extension>
<extension url="displaySequence">
<valueInteger value="39"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isAssessmentPerformed"/>
</extension>
<extension url="statement">
<valueString
value="//This library contains functions that are based on QDM 5.6 to QICore 4.1.1 March 2023 (https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Authoring-Patterns---QICore-v4.1.1). The functions may appear similar to some QICoreCommon functions but different in that they have constraints that are relevant for measures authored by NCQA.
//Assessment, Performed
define fluent function isAssessmentPerformed(Obs List<Observation>):
Obs O
where O.status in { 'final', 'amended', 'corrected' }
and exists ( O.category ObservationCategory
where ( ObservationCategory ) ~ "survey"
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="40"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="FHIRHelpers"/>
</extension>
<extension url="name">
<valueString value="ToConcept"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Converts the given FHIR [CodeableConcept](https://hl7.org/fhir/datatypes.html#CodeableConcept) value to a CQL Concept.
*/
define function ToConcept(concept FHIR.CodeableConcept):
if concept is null then
null
else
System.Concept {
codes: concept.coding C return ToCode(C),
display: concept.text.value
}"/>
</extension>
<extension url="displaySequence">
<valueInteger value="41"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isInterventionOrder"/>
</extension>
<extension url="statement">
<valueString
value="//Intervention, Order: active and completed only
define fluent function isInterventionOrder(ServiceRequest List<ServiceRequest>):
ServiceRequest S
where S.status in { 'active', 'completed' }
and S.intent = 'order'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="42"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isInterventionPerformed"/>
</extension>
<extension url="statement">
<valueString
value="//Intervention, Performed
define fluent function isInterventionPerformed(Proc List<Procedure>):
Proc P
where P.status ~ 'completed'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="43"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isProcedurePerformed"/>
</extension>
<extension url="statement">
<valueString
value="//Procedure, Performed
define fluent function isProcedurePerformed(Proc List<Procedure>):
Proc P
where P.status ~ 'completed'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="44"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isDeviceOrder"/>
</extension>
<extension url="statement">
<valueString
value="//Device, Order - Personal Use Devices: active and completed only
define fluent function isDeviceOrder(DeviceRequest List<DeviceRequest>):
DeviceRequest D
where D.status in { 'active', 'completed' }
and D.intent = 'order'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="45"/>
</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="doNotPerform"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Returns true if the given DeviceRequest is a negation (i.e. do not perform this order)
*/
define fluent function doNotPerform(deviceRequest DeviceRequest):
singleton from (
deviceRequest.modifierExtension E
where E.url = 'http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-doNotPerform'
return E.value as Boolean
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="46"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isSymptom"/>
</extension>
<extension url="statement">
<valueString
value="//Symptom
define fluent function isSymptom(Obs List<Observation>):
Obs O
where O.status in { 'preliminary', 'final', 'amended', 'corrected' }"/>
</extension>
<extension url="displaySequence">
<valueInteger value="47"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="Status"/>
</extension>
<extension url="name">
<valueString value="isMedicationActive"/>
</extension>
<extension url="statement">
<valueString
value="//Medication, Active
define fluent function isMedicationActive(MedicationRequest List<MedicationRequest>):
MedicationRequest M
where M.status = 'active'
and M.intent = 'order'"/>
</extension>
<extension url="displaySequence">
<valueInteger value="48"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="CumulativeMedicationDuration"/>
</extension>
<extension url="name">
<valueString value="medicationRequestPeriod"/>
</extension>
<extension url="statement">
<valueString
value="define fluent function medicationRequestPeriod(Request "MedicationRequest"):
Request R
let
dosage: singleton from R.dosageInstruction,
doseAndRate: singleton from dosage.doseAndRate,
timing: dosage.timing,
frequency: Coalesce(timing.repeat.frequencyMax, timing.repeat.frequency),
period: Quantity(timing.repeat.period, timing.repeat.periodUnit),
doseRange: doseAndRate.dose,
doseQuantity: doseAndRate.dose,
dose: Coalesce(end of doseRange, doseQuantity),
dosesPerDay: Coalesce(ToDaily(frequency, period), Count(timing.repeat.timeOfDay), 1.0),
boundsPeriod: timing.repeat.bounds as Interval<DateTime>,
daysSupply: (convert R.dispenseRequest.expectedSupplyDuration to days).value,
quantity: R.dispenseRequest.quantity,
refills: Coalesce(R.dispenseRequest.numberOfRepeatsAllowed, 0),
startDate:
Coalesce(
date from start of boundsPeriod,
date from R.authoredOn,
date from start of R.dispenseRequest.validityPeriod
),
totalDaysSupplied: Coalesce(daysSupply, quantity.value / (dose.value * dosesPerDay)) * (1 + refills)
return
if startDate is not null and totalDaysSupplied is not null then
Interval[startDate, startDate + Quantity(totalDaysSupplied - 1, 'day') ]
else if startDate is not null and boundsPeriod."high" is not null then
Interval[startDate, date from end of boundsPeriod]
else
null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="49"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="CumulativeMedicationDuration"/>
</extension>
<extension url="name">
<valueString value="Quantity"/>
</extension>
<extension url="statement">
<valueString
value="/**********************************************************************/
/* Functions in this region are copied from opioid-mme-r4 */
/**********************************************************************/
define function Quantity(value Decimal, unit String):
if value is not null then
System.Quantity { value: value, unit: unit }
else
null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="50"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition">
<extension url="libraryName">
<valueString value="CumulativeMedicationDuration"/>
</extension>
<extension url="name">
<valueString value="ToDaily"/>
</extension>
<extension url="statement">
<valueString
value="/*
Goal is to get to number of days
Two broad approaches to the calculation:
1) Based on supply and frequency, calculate the number of expected days the medication will cover/has covered
2) Based on relevant period, determine a covered interval and calculate the length of that interval in days
This topic covers several use cases and illustrates how to calculate Cumulative
Medication Duration for each type of medication resource using the supply and
frequency approach.
*/
/*
For the first approach, we need to get from frequency to a frequency/day
So we define ToDaily
*/
/*
Calculates daily frequency given frequency within a period
*/
define function ToDaily(frequency System.Integer, period System.Quantity):
case period.unit
when 'h' then frequency * (24.0 / period.value)
when 'min' then frequency * (24.0 / period.value) * 60
when 's' then frequency * (24.0 / period.value) * 60 * 60
when 'd' then frequency * (24.0 / period.value) / 24
when 'wk' then frequency * (24.0 / period.value) / (24 * 7)
when 'mo' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
when 'a' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
when 'hour' then frequency * (24.0 / period.value)
when 'minute' then frequency * (24.0 / period.value) * 60
when 'second' then frequency * (24.0 / period.value) * 60 * 60
when 'day' then frequency * (24.0 / period.value) / 24
when 'week' then frequency * (24.0 / period.value) / (24 * 7)
when 'month' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
when 'year' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
when 'hours' then frequency * (24.0 / period.value)
when 'minutes' then frequency * (24.0 / period.value) * 60
when 'seconds' then frequency * (24.0 / period.value) * 60 * 60
when 'days' then frequency * (24.0 / period.value) / 24
when 'weeks' then frequency * (24.0 / period.value) / (24 * 7)
when 'months' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
when 'years' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
else Message(null, true, 'CMDLogic.ToDaily.UnknownUnit', ErrorLevel, 'Unknown unit ' & period.unit)
end"/>
</extension>
<extension url="displaySequence">
<valueInteger value="51"/>
</extension>
</extension>
<name value="EffectiveDataRequirements"/>
<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 SDE"/>
<resource value="Library/SupplementalDataElements|3.5.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Status"/>
<resource value="Library/Status|1.8.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library FHIRHelpers"/>
<resource value="Library/FHIRHelpers|4.4.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library QICoreCommon"/>
<resource value="Library/QICoreCommon|2.1.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library AdultOutpatientEncounters"/>
<resource value="Library/AdultOutpatientEncounters|4.11.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Hospice"/>
<resource value="Library/Hospice|6.12.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library AIFrailLTCF"/>
<resource value="Library/AdvancedIllnessandFrailty|1.16.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library CMD"/>
<resource value="Library/CumulativeMedicationDuration|4.1.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library PalliativeCare"/>
<resource value="Library/PalliativeCare|1.11.000"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system AdministrativeGender"/>
<resource value="http://hl7.org/fhir/administrative-gender"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system LOINC"/>
<resource value="http://loinc.org"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system SNOMEDCT"/>
<resource value="http://snomed.info/sct"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system ObservationCategoryCodes"/>
<resource
value="http://terminology.hl7.org/CodeSystem/observation-category"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Essential Hypertension"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.104.12.1011"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Office Visit"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Annual Wellness Visit"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Preventive Care Services Established Office Visit, 18 and Up"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Preventive Care Services Initial Office Visit, 18 and Up"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Home Healthcare Services"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Virtual Encounter"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Telephone Visits"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Payer Type"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Encounter Inpatient"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Hospice Encounter"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Hospice Care Ambulatory"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Hospice Diagnosis"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Pregnancy"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.378"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set End Stage Renal Disease"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.353"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Kidney Transplant Recipient"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1029"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Chronic Kidney Disease, Stage 5"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1002"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Kidney Transplant"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1012"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Dialysis Services"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1013"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set ESRD Monthly Outpatient Services"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1014"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Frailty Device"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.118.12.1300"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Frailty Diagnosis"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1074"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Frailty Encounter"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1088"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Frailty Symptom"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1075"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Advanced Illness"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1082"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Dementia Medications"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1510"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Palliative Care Diagnosis"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Palliative Care Encounter"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Palliative Care Intervention"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135"/>
</relatedArtifact>
<parameter>
<name value="Measurement Period"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="ErrorLevel"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="SDE Sex"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Coding"/>
</parameter>
<parameter>
<name value="Numerator"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Denominator"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="SDE Payer"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Initial Population"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="SDE Ethnicity"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Denominator Exclusions"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="SDE Race"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<dataRequirement>
<type value="Patient"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient"/>
<mustSupport value="ethnicity"/>
<mustSupport value="race"/>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="id"/>
<mustSupport value="id.value"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="hospitalization"/>
<mustSupport value="hospitalization.dischargeDisposition"/>
<mustSupport value="period"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="period"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="period"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1014"/>
</codeFilter>
<dateFilter>
<path value="period"/>
</dateFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="period"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1088"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"/>
<mustSupport value="type"/>
<mustSupport value="period"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/bp"/>
<mustSupport value="encounter"/>
<mustSupport value="encounter.class"/>
<mustSupport value="encounter.class.code"/>
<mustSupport value="effective"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="component"/>
<dateFilter>
<path value="effective"/>
<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="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.104.12.1011"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.378"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.353"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1029"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1002"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1074"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1082"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Coverage"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage"/>
<mustSupport value="type"/>
<mustSupport value="period"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation"/>
<mustSupport value="code"/>
<mustSupport value="value"/>
<mustSupport value="effective"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="category"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="45755-6"/>
<display value="Hospice care [Minimum Data Set]"/>
</code>
</codeFilter>
<codeFilter>
<path value="value"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation"/>
<mustSupport value="code"/>
<mustSupport value="value"/>
<mustSupport value="effective"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="category"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="98181-1"/>
<display value="Medical equipment used"/>
</code>
</codeFilter>
<codeFilter>
<path value="value"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.118.12.1300"/>
</codeFilter>
<dateFilter>
<path value="effective"/>
<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="Observation"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation"/>
<mustSupport value="code"/>
<mustSupport value="effective"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="category"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1075"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation"/>
<mustSupport value="code"/>
<mustSupport value="effective"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="category"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="71802-3"/>
<display value="Housing status"/>
</code>
</codeFilter>
<dateFilter>
<path value="effective"/>
</dateFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation"/>
<mustSupport value="code"/>
<mustSupport value="effective"/>
<mustSupport value="value"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="category"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="71802-3"/>
<display value="Housing status"/>
</code>
</codeFilter>
<codeFilter>
<path value="value"/>
</codeFilter>
<dateFilter>
<path value="effective"/>
</dateFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation"/>
<mustSupport value="code"/>
<mustSupport value="effective"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="category"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="71007-9"/>
<display
value="Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest"/>
<mustSupport value="code"/>
<mustSupport value="authoredOn"/>
<mustSupport value="authoredOn.value"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="intent"/>
<mustSupport value="intent.value"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Procedure"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure"/>
<mustSupport value="code"/>
<mustSupport value="performed"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Procedure"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="performed"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1012"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Procedure"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="performed"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.109.12.1013"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Procedure"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure"/>
<mustSupport value="code"/>
<mustSupport value="performed"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DeviceRequest"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="intent"/>
<mustSupport value="intent.value"/>
<mustSupport value="url"/>
<mustSupport value="url.value"/>
<mustSupport value="value"/>
<mustSupport value="authoredOn"/>
<mustSupport value="authoredOn.value"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.118.12.1300"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="MedicationRequest"/>
<profile
value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest"/>
<mustSupport value="medication"/>
<mustSupport value="status"/>
<mustSupport value="status.value"/>
<mustSupport value="intent"/>
<mustSupport value="intent.value"/>
<mustSupport value="dosageInstruction"/>
<mustSupport value="dispenseRequest"/>
<mustSupport value="dispenseRequest.expectedSupplyDuration"/>
<mustSupport value="dispenseRequest.quantity"/>
<mustSupport value="dispenseRequest.numberOfRepeatsAllowed"/>
<mustSupport value="dispenseRequest.numberOfRepeatsAllowed.value"/>
<mustSupport value="authoredOn"/>
<mustSupport value="authoredOn.value"/>
<mustSupport value="dispenseRequest.validityPeriod"/>
<codeFilter>
<path value="medication"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1510"/>
</codeFilter>
</dataRequirement>
</Library>
</contained>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-supplementalDataGuidance" id="supplementalDataGuidance">
<extension url="guidance">
<valueString
value="For every patient evaluated by this measure also identify payer, race, ethnicity and sex
"/>
</extension>
<extension url="usage">
<valueCodeableConcept>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-data-usage"/>
<code value="supplemental-data"/>
<display value="Supplemental Data"/>
</coding>
<text value="Supplemental Data Guidance"/>
</valueCodeableConcept>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements" id="effective-data-requirements">
<valueReference>
<reference value="#effective-data-requirements"/>
</valueReference>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<url
value="https://madie.cms.gov/Measure/ControllingHighBloodPressureFHIR"/>
<identifier>
<use value="usual"/>
<type>
<coding>
<system
value="http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type"/>
<code value="short-name"/>
</coding>
</type>
<system value="https://madie.cms.gov/measure/shortName"/>
<value value="CMS165FHIR"/>
</identifier>
<identifier>
<use value="official"/>
<type>
<coding>
<system
value="http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type"/>
<code value="version-independent"/>
</coding>
</type>
<system value="urn:ietf:rfc:3986"/>
<value value="urn:uuid:9017d914-6748-45a9-bff1-8392ed644a7b"/>
</identifier>
<identifier>
<use value="official"/>
<type>
<coding>
<system
value="http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type"/>
<code value="version-specific"/>
</coding>
</type>
<system value="urn:ietf:rfc:3986"/>
<value value="urn:uuid:f573fb8f-4907-4ed7-bc04-09d9a3f36268"/>
</identifier>
<identifier>
<use value="official"/>
<type>
<coding>
<system
value="http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type"/>
<code value="publisher"/>
</coding>
</type>
<system value="https://madie.cms.gov/measure/cmsId"/>
<value value="165FHIR"/>
<assigner>
<display value="CMS"/>
</assigner>
</identifier>
<version value="0.1.000"/>
<name value="ControllingHighBloodPressureFHIR"/>
<title value="Controlling High Blood PressureFHIR"/>
<status value="draft"/>
<experimental value="false"/>
<date value="2024-07-09T14:53:57+00:00"/>
<publisher value="National Committee for Quality Assurance"/>
<contact>
<telecom>
<system value="url"/>
<value value="https://www.ncqa.org/"/>
</telecom>
</contact>
<description
value="Percentage of patients 18-85 years of age who had a diagnosis of essential hypertension starting before and continuing into, or starting during the first six months of the measurement period, and whose most recent blood pressure was adequately controlled (<140/90 mmHg) during the measurement period"/>
<purpose value="UNKNOWN"/>
<usage
value="In reference to the numerator element, only blood pressure readings performed by a clinician or an automated blood pressure monitor or device are acceptable for numerator compliance with this measure. This includes blood pressures taken in person by a clinician and blood pressures measured remotely by electronic monitoring devices capable of transmitting the blood pressure data to the clinician. Blood pressure readings taken by an automated blood pressure monitor or device and conveyed by the patient to the clinician are also acceptable. It is the clinician’s responsibility and discretion to confirm the automated blood pressure monitor or device used to obtain the blood pressure is considered acceptable and reliable and whether the blood pressure reading is considered accurate before documenting it in the patient’s medical record.
Do not include BP readings taken during an acute inpatient stay or an emergency department (ED) visit.
If no blood pressure is recorded during the measurement period, the patient's blood pressure is assumed "not controlled".
If there are multiple blood pressure readings on the same day, use the lowest systolic and the lowest diastolic reading as the most recent blood pressure reading. Ranges and thresholds do not meet criteria for this measure. A distinct numeric result for both the systolic and diastolic BP reading is required for numerator compliance.
This eCQM is a patient-based measure.
This FHIR-based measure has been derived from the QDM-based measure: CMS165v13.
Please refer to the HL7 QI-Core Implementation Guide (http://hl7.org/fhir/us/qicore/STU4.1.1/) for more information on QI-Core and mapping recommendations from QDM to QI-Core 4.1.1 (http://hl7.org/fhir/us/qicore/STU4.1.1/qdm-to-qicore.html)."/>
<copyright
value="This Physician Performance Measure (Measure) and related data specifications are owned and were developed by the National Committee for Quality Assurance (NCQA). NCQA is not responsible for any use of the Measure. NCQA makes no representations, warranties, or endorsement about the quality of any organization or physician that uses or reports performance measures and NCQA has no liability to anyone who relies on such measures or specifications. NCQA holds a copyright in the Measure. The Measure can be reproduced and distributed, without modification, for noncommercial purposes (e.g., use by healthcare providers in connection with their practices) without obtaining approval from NCQA. Commercial use is defined as the sale, licensing, or distribution of the Measure for commercial gain, or incorporation of the Measure into a product or service that is sold, licensed or distributed for commercial gain. All commercial uses or requests for modification must be approved by NCQA and are subject to a license at the discretion of NCQA. (C) 2012-2024 National Committee for Quality Assurance. All Rights Reserved.
Limited proprietary coding is contained in the Measure specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets. NCQA disclaims all liability for use or accuracy of any third-party codes contained in the specifications.
CPT(R) codes, descriptions and other data are copyright 2024. American Medical Association. All rights reserved. CPT is a trademark of the American Medical Association. Fee schedules, relative value units, conversion factors and/or related components are not assigned by the AMA, are not part of CPT, and the AMA is not recommending their use. The AMA does not directly or indirectly practice medicine or dispense medical services. The AMA assumes no liability for data contained or not contained herein. Applicable FARS/DFARS restrictions apply to government use.
Some measure specifications contain coding from LOINC(R) (http://loinc.org). The LOINC table, LOINC codes, LOINC panels and form file, LOINC linguistic variants file, LOINC/RSNA Radiology Playbook, and LOINC/IEEE Medical Device Code Mapping Table are copyright 2004-2024 Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee, and are available at no cost under the license at http://loinc.org/terms-of-use.
This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2023 International Health Terminology Standards Development Organisation.
ICD-10 copyright 2024 World Health Organization. All Rights Reserved.
Some measures use RxNorm, a standardized nomenclature and coding for clinical drugs and drug delivery devices, which is made publicly available courtesy of the U.S. National Library of Medicine (NLM), National Institutes of Health, Department of Health and Human Services. NLM is not responsible for the measures and does not endorse or recommend this or any other product.
“HL7” is the registered trademark of Health Level Seven International."/>
<effectivePeriod>
<start value="2025-01-01"/>
<end value="2025-12-31"/>
</effectivePeriod>
<author>
<name value="National Committee for Quality Assurance"/>
<telecom>
<system value="url"/>
<value value="https://www.ncqa.org/"/>
</telecom>
</author>
<library
value="https://madie.cms.gov/Library/ControllingHighBloodPressureFHIR"/>
<disclaimer
value="The performance Measure is not a clinical guideline and does not establish a standard of medical care, and has not been tested for all potential applications. THE MEASURE AND SPECIFICATIONS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM]."/>
<scoring>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/measure-scoring"/>
<code value="proportion"/>
<display value="Proportion"/>
</coding>
</scoring>
<rationale
value="High blood pressure (HBP), also known as hypertension, is when the pressure in blood vessels is higher than normal (Centers for Disease Control and Prevention [CDC], 2023). The causes of hypertension are multiple and multifaceted and can be based on genetic predisposition, environmental risk factors, being overweight and obese, sodium intake, potassium intake, physical activity, and alcohol use. High blood pressure is common; according to the American Heart Association, between 2013-2016, approximately 121.5 million US adults >= 20 years of age had HBP and the prevalence of hypertension among US adults 65 and older was 77.0 percent (Virani et al., 2021). In an analysis of adults with hypertension in National Health and Nutrition Examination Survey (NHANES), the estimated age-adjusted proportion with controlled blood pressure (BP) increased from 31.8 percent in 1999 to 53.8 percent in 2014. However, that proportion declined to 43.7 percent in 2017 to 2018 (Tsao et al., 2022).
HBP increases risks of heart disease and stroke which are two of the leading causes of death in the US (CDC, 2023). A person who has HBP is four times more likely to die from a stroke and three times more likely to die from heart disease (CDC, 2021). The National Center for Health Statistics reported that in 2020 there were over 670,000 deaths with HBP as a primary or contributing cause (CDC, 2022). Between 2009 and 2019 the number of deaths due to HBP rose by 65.3 percent (Tsao et al., 2022). Managing and treating HBP would reduce cardiovascular disease mortality for males and females by 30.4 percent and 38.0 percent, respectively (Patel et al., 2015). Age-adjusted death rates attributable to HBP in 2019 were more than twice as high in non-Hispanic Black males (56.7 percent) when compared to rates for non-Hispanic White males (25.7 percent) (Tsao et al., 2022).
HBP costs the U.S. approximately 131 billion dollars each year, averaged over 12 years from 2003 to 2014 (Kirkland et al., 2018). A study on cost-effectiveness on treating hypertension found that controlling HBP in patients with cardiovascular disease and systolic blood pressures (SBP) of >= 160 mmHg could be effective and cost-saving (Moran et al., 2015).
Many studies have shown that controlling high blood pressure reduces cardiovascular events and mortality. The Systolic Blood Pressure Intervention Trial (SPRINT) investigated the impact of obtaining a SBP goal of <120 mmHg compared to a SBP goal of <140 mmHg among patients 50 and older with established cardiovascular disease and found that the patients with the former goal had reduced cardiovascular events and mortality (SPRINT Research Group et al., 2015).
Controlling HBP will significantly reduce the risks of cardiovascular disease mortality and lead to better health outcomes like reduction of heart attacks, stroke, and kidney disease (James et al., 2014). Thus, the relationship between the measure (control of hypertension) and the long-term clinical outcomes listed is well established."/>
<clinicalRecommendationStatement
value="U.S. Preventive Services Task Force (USPSTF) (2021):
- The USPSTF recommends screening for hypertension in adults 18 years or older with office blood pressure measurement (OBPM). The USPSTF recommends obtaining blood pressure measurements outside of the clinical setting for diagnostic confirmation before starting treatment. This is a grade A recommendation.
American College of Cardiology/American Heart Association (2017):
- For adults with confirmed hypertension and known cardiovascular disease (CVD) or 10-year atherosclerotic cardiovascular disease (ASCVD) event risk of 10 percent or higher, a blood pressure target of less than 130/80 mmHg is recommended (Level of evidence: B-R (for systolic blood pressures), Level of evidence: C-EO (for diastolic blood pressure))
- For adults with confirmed hypertension, without additional markers of increased CVD risk, a blood pressure target of less than 130/80 mmHg may be reasonable (Note: clinical trial evidence is strongest for a target blood pressure of 140/90 mmHg in this population. However, observational studies suggest that these individuals often have a high lifetime risk and would benefit from blood pressure control earlier in life) (Level of evidence: B-NR (for systolic blood pressure), Level of evidence: C-EO (for diastolic blood pressure)).
American Academy of Family Physicians (2022):
- Treat adults who have hypertension to a standard blood pressure target (less than 140/90 mm Hg) to reduce the risk of all-cause and cardiovascular mortality (strong recommendation; high-quality evidence). Treating to a lower blood pressure target (less than 135/85 mm Hg) does not provide additional benefit at preventing mortality; however, a lower blood pressure target could be considered based on patient preferences and values. (Grade: strong recommendation, Quality of evidence: high)
- Consider treating adults who have hypertension to a lower blood pressure target (less than 135/85 mm Hg) to reduce risk of myocardial infarction (weak recommendation; moderate-quality evidence). Although treatment to a standard blood pressure target (less than 140/90 mm Hg) reduced the risk of myocardial infarction, there was a small additional benefit observed with a lower blood pressure target. There was no observed additional benefit in preventing stroke with the lower blood pressure target. (Grade: weak recommendation, Quality of evidence: low)
American Diabetes Association (2022):
- For individuals with diabetes and hypertension at higher cardiovascular risk (existing atherosclerotic cardiovascular disease or 10-year atherosclerotic cardiovascular disease risk >=15 percent), a blood pressure target of <130/80 mmHg may be appropriate, if it can be safely attained (Level of evidence: B)
- For individuals with diabetes and hypertension at lower risk for cardiovascular disease (10-year atherosclerotic cardiovascular disease risk <15 percent), treat to a blood pressure target of <140/90 mmHg (Level of evidence: A)"/>
<group id="650b4f94da013638e7b3dd9a">
<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="boolean"/>
</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="outcome"/>
<display value="Outcome"/>
</coding>
</valueCodeableConcept>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-rateAggregation">
<valueCode value="None"/>
</extension>
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation">
<valueCodeableConcept>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-improvement-notation"/>
<code value="decrease"/>
<display value="increase"/>
</coding>
</valueCodeableConcept>
</extension>
<population id="DB8494F3-F2F2-4493-A9F6-8793D5F77F41">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="initial-population"/>
<display value="Initial Population"/>
</coding>
</code>
<description
value="Patients 18-85 years of age by the end of the measurement period who had a visit during the measurement period and diagnosis of essential hypertension starting before and continuing into, or starting during the first six months of the measurement period"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Initial Population"/>
</criteria>
</population>
<population id="47151B22-36FA-413F-8F3A-665071CB2E83">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="denominator"/>
<display value="Denominator"/>
</coding>
</code>
<description value="Equals Initial Population"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Denominator"/>
</criteria>
</population>
<population id="cc61a60b-d556-4368-9651-a1577003ae68">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="denominator-exclusion"/>
<display value="Denominator Exclusion"/>
</coding>
</code>
<description
value="Exclude patients who are in hospice care for any part of the measurement period.
Patients with evidence of end stage renal disease (ESRD), dialysis or renal transplant before or during the measurement period. Also exclude patients with a diagnosis of pregnancy during the measurement period.
Exclude patients 66-80 by the end of the measurement period with an indication of frailty for any part of the measurement period who also meet any of the following advanced illness criteria:
- Advanced illness diagnosis during the measurement period or the year prior
- OR taking dementia medications during the measurement period or the year prior
Exclude patients 81 and older by the end of the measurement period with an indication of frailty for any part of the measurement period.
Exclude patients 66 and older by the end of the measurement period who are living long term in a nursing home any time on or before the end of the measurement period.
Exclude patients receiving palliative care for any part of the measurement period."/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Denominator Exclusions"/>
</criteria>
</population>
<population id="D4F113F9-F280-45AC-ACDA-88CD87C42EB6">
<code>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="numerator"/>
<display value="Numerator"/>
</coding>
</code>
<description
value="Patients whose most recent blood pressure is adequately controlled (systolic blood pressure < 140 mmHg and diastolic blood pressure < 90 mmHg) during the measurement period"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="Numerator"/>
</criteria>
</population>
<stratifier id="863b910a-a4b5-4493-8e8e-3c94a4560d7b">
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo">
<valueCodeableConcept>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="initial-population"/>
<display value="Initial Population"/>
</coding>
</valueCodeableConcept>
</extension>
<criteria>
<language value="text/cql-identifier"/>
</criteria>
</stratifier>
<stratifier id="33cce73e-b08d-4304-b3c6-f25eb0da594b">
<extension
url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-appliesTo">
<valueCodeableConcept>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-population"/>
<code value="initial-population"/>
<display value="Initial Population"/>
</coding>
</valueCodeableConcept>
</extension>
<criteria>
<language value="text/cql-identifier"/>
</criteria>
</stratifier>
</group>
<supplementalData id="sde-sex">
<usage>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-data-usage"/>
<code value="supplemental-data"/>
</coding>
</usage>
<description value="SDE Sex"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="SDE Sex"/>
</criteria>
</supplementalData>
<supplementalData id="sde-race">
<usage>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-data-usage"/>
<code value="supplemental-data"/>
</coding>
</usage>
<description value="SDE Race"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="SDE Race"/>
</criteria>
</supplementalData>
<supplementalData id="sde-payer">
<usage>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-data-usage"/>
<code value="supplemental-data"/>
</coding>
</usage>
<description value="SDE Payer"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="SDE Payer"/>
</criteria>
</supplementalData>
<supplementalData id="sde-ethnicity">
<usage>
<coding>
<system
value="http://terminology.hl7.org/CodeSystem/measure-data-usage"/>
<code value="supplemental-data"/>
</coding>
</usage>
<description value="SDE Ethnicity"/>
<criteria>
<language value="text/cql-identifier"/>
<expression value="SDE Ethnicity"/>
</criteria>
</supplementalData>
</Measure>