CMS Draft FHIR Measures
2024.1.0 - CI Build

CMS Draft FHIR Measures, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2024.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2024/ and changes regularly. See the Directory of published versions

Measure: Diabetes: Glycemic Status Assessment Greater Than 9%FHIR

Official URL: https://madie.cms.gov/Measure/DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR Version: 0.1.002
Draft as of 2026-03-13 Responsible: National Committee for Quality Assurance Computable Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
Other Identifiers: Short Name (use: usual, ), UUID:f04ee808-8ece-4936-8b26-fafa462e1594 (use: official, ), UUID:7cd99bbb-c3bd-4089-ac26-c1744377b637 (use: official, ), Publisher (use: official, )

Copyright/Legal: 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.

Percentage of patients 18-75 years of age with diabetes who had a glycemic status assessment (hemoglobin A1c [HbA1c] or glucose management indicator [GMI]) > 9.0% during the measurement period

UNKNOWN

Metadata
Title Diabetes: Glycemic Status Assessment Greater Than 9%FHIR
Version 0.1.002
Short Name CMS122FHIR
GUID (Version Independent) urn:uuid:f04ee808-8ece-4936-8b26-fafa462e1594
GUID (Version Specific) urn:uuid:7cd99bbb-c3bd-4089-ac26-c1744377b637
CMS Identifier 122FHIR
Effective Period 2025-01-01 through 2025-12-31
Status Draft
Steward (Publisher) National Committee for Quality Assurance
Developer National Committee for Quality Assurance
Description

Percentage of patients 18-75 years of age with diabetes who had a glycemic status assessment (hemoglobin A1c [HbA1c] or glucose management indicator [GMI]) > 9.0% during the measurement period

Copyright

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.

Disclaimer

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].

Measure Scoring Proportion
Rationale

Diabetes is the seventh leading cause of death in the United States (Centers for Disease Control and Prevention [CDC], 2022a). In 2019, diabetes affected more than 37 million Americans (11.3% of the U.S. population) and killed more than 87,000 people (American Diabetes Association [ADA], 2022a). Diabetes is a long-lasting disease marked by high blood glucose levels, resulting from the body's inability to produce or use insulin properly (CDC, 2022a). People with diabetes are at increased risk of serious health complications including vision loss, heart disease, stroke, kidney damage, amputation of feet or legs, and premature death (CDC, 2022b). In 2017, diabetes cost the U.S. an estimated $327 billion: $237 billion in direct medical costs and $90 billion in reduced productivity. This is a 34% increase from the estimated $245 billion spent on diabetes in 2012 (ADA, 2018). Controlling A1c blood levels helps reduce the risk of microvascular complications (eye, kidney and nerve diseases) (ADA, 2022b).

Clinical Recommendation Statement

American Diabetes Association (2023): - Assess glycemic status (A1C or other glycemic measurement such as time in range or glucose management indicator) at least two times a year in patients who are meeting treatment goals (and who have stable glycemic control). (Level of evidence: E) - An A1C goal for many nonpregnant adults of <7% (53 mmol/mol) without significant hypoglycemia is appropriate. (Level of evidence: A) - On the basis of health care professional judgement and patient preference, achievement of lower A1C levels than the goal of 7% may be acceptable and even beneficial if it can be achieved safely without significant hypoglycemia or other adverse effects of treatment. (Level of evidence: B) - Less stringent A1C goals (such as <8% [64 mmol/mol]) may be appropriate for patients with limited life expectancy or where the harms of treatment are greater than the benefits. Health care professionals should consider deintensification of therapy if appropriate to reduce the risk of hypoglycemia in patients with inappropriate stringent A1C targets. (Level of evidence: B) - Standardized, single-page glucose reports from continuous glucose monitoring (CGM) devices with visual cues, such as the ambulatory glucose profile, should be considered as a standard summary for all CGM devices. Level of evidence: E

Guidance (Usage) If the glycemic status assessment (HbA1c or GMI) is in the medical record, the test can be used to determine numerator compliance. Glycemic status assessment (HbA1c or GMI) must be reported as a percentage (%). If multiple glycemic status assessments were recorded for a single date, use the lowest result. This eCQM is a patient-based measure. This FHIR-based measure has been derived from the QDM-based measure: CMS122v13. 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).
Measure Group (Rate) (ID: 661d86730f0a9077c1d5a59d)
Basis boolean
Scoring Proportion
Improvement Notation increase
Type Outcome
Rate Aggregation None
Initial Population ID: B3E3A61B-80C7-4EF5-B7E1-0B3A6E6E9FAF
Description:

Patients 18-75 years of age by the end of the measurement period, with diabetes with a visit during the measurement period

Criteria: Initial Population
Denominator ID: F00737C8-94BA-4DF4-B850-3D8048375802
Description:

Equals Initial Population

Criteria: Denominator
Denominator Exclusion ID: 49A83DE6-E86F-46CF-895C-8CB0E03BF2F6
Description:

Exclude patients who are in hospice care 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 66 and older 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 receiving palliative care for any part of the measurement period.

Criteria: Denominator Exclusions
Numerator ID: 487B73B8-089E-4BB1-B690-88CDE12440F1
Description:

Patients whose most recent glycemic status assessment (HbA1c or GMI) (performed during the measurement period) is >9.0% or is missing, or was not performed during the measurement period

Criteria: Numerator
Measure Logic
Primary Library DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
Contents Population Criteria
Logic Definitions
Terminology
Dependencies
Data Requirements
Parameters
Population Criteria
Measure Group (Rate) (ID: 661d86730f0a9077c1d5a59d)
Initial Population
define "Initial Population":
  AgeInYearsAt(date from 
    end of "Measurement Period"
  ) in Interval[18, 75]
    and exists AdultOutpatientEncounters."Qualifying Encounters"
    and exists ( [Condition: "Diabetes"] Diabetes
        where Diabetes.prevalenceInterval ( ) overlaps day of "Measurement Period"
    )
Definition
Denominator
define "Denominator":
  "Initial Population"
Definition
Denominator Exclusion
define "Denominator Exclusions":
  Hospice."Has Hospice Services"
    or AIFrailLTCF."Is Age 66 or Older Living Long Term in a Nursing Home"
    or AIFrailLTCF."Is Age 66 or Older with Advanced Illness and Frailty"
    or PalliativeCare."Has Palliative Care in the Measurement Period"
Definition
Numerator
define "Numerator":
  "Has Most Recent Glycemic Status Assessment Without Result"
    or "Has Most Recent Elevated Glycemic Status Assessment"
    or "Has No Record Of Glycemic Status Assessment"
Definition
Logic Definitions
Logic Definition Library Name: AdultOutpatientEncounters
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"
Logic Definition Library Name: Hospice
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"
    )
Logic Definition Library Name: AdvancedIllnessandFrailty
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
Logic Definition Library Name: AdvancedIllnessandFrailty
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"
    )
Logic Definition Library Name: AdvancedIllnessandFrailty
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"])
Logic Definition Library Name: AdvancedIllnessandFrailty
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
  )
Logic Definition Library Name: AdvancedIllnessandFrailty
define "Is Age 66 or Older with Advanced Illness and Frailty":
   AgeInYearsAt(date from end of "Measurement Period")>= 66
    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"
    )
Logic Definition Library Name: PalliativeCare
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"
    )
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Glycemic Status Assessment":
  ( ( [Observation: "HbA1c Laboratory Test"]
      union [Observation: "Glucose management indicator"]
  ).isLaboratoryTestPerformed ( ) ) GlycemicStatus
    where GlycemicStatus.effective.latest ( ) during day of "Measurement Period"
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Most Recent Glycemic Status Date":
  Last(("Glycemic Status Assessment" QualifyingGlycemicStatus
      return date from QualifyingGlycemicStatus.effective.latest()) QualifyingGlycemicStatus
      sort asc
  )
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Lowest Glycemic Status Assessment Reading on Most Recent Day":
  First("Glycemic Status Assessment" QualifyingGlycemicStatus
      where QualifyingGlycemicStatus.effective.latest() same day as "Most Recent Glycemic Status Date"
      return {
        QualifyingGlycemicStatusValue: QualifyingGlycemicStatus.value as Quantity,
        QualifyingGlycemicStatus: QualifyingGlycemicStatus
      }
      sort by QualifyingGlycemicStatusValue
  ).QualifyingGlycemicStatus
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Has Most Recent Glycemic Status Assessment Without Result":
  "Lowest Glycemic Status Assessment Reading on Most Recent Day" is not null
    and "Lowest Glycemic Status Assessment Reading on Most Recent Day".value is null
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Has Most Recent Elevated Glycemic Status Assessment":
  "Lowest Glycemic Status Assessment Reading on Most Recent Day".value > 9 '%'
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Has No Record Of Glycemic Status Assessment":
  not exists "Glycemic Status Assessment"
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Numerator":
  "Has Most Recent Glycemic Status Assessment Without Result"
    or "Has Most Recent Elevated Glycemic Status Assessment"
    or "Has No Record Of Glycemic Status Assessment"
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Initial Population":
  AgeInYearsAt(date from 
    end of "Measurement Period"
  ) in Interval[18, 75]
    and exists AdultOutpatientEncounters."Qualifying Encounters"
    and exists ( [Condition: "Diabetes"] Diabetes
        where Diabetes.prevalenceInterval ( ) overlaps day of "Measurement Period"
    )
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Denominator":
  "Initial Population"
Logic Definition Library Name: DiabetesGlycemicStatusAssessmentGreaterThan9PercentFHIR
define "Denominator Exclusions":
  Hospice."Has Hospice Services"
    or AIFrailLTCF."Is Age 66 or Older Living Long Term in a Nursing Home"
    or AIFrailLTCF."Is Age 66 or Older with Advanced Illness and Frailty"
    or PalliativeCare."Has Palliative Care in the Measurement Period"
Logic Definition Library Name: FHIRHelpers
/*
@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
        }
Logic Definition Library Name: FHIRHelpers
/*
@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
        }
Logic Definition Library Name: FHIRHelpers
/*
@description: Converts the given [Period](https://hl7.org/fhir/datatypes.html#Period)
value to a CQL DateTime Interval
@comment: If the start value of the given period is unspecified, the starting
boundary of the resulting interval will be open (meaning the start of the interval
is unknown, as opposed to interpreted as the beginning of time).
*/
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period."start" is null then
            Interval(period."start".value, period."end".value]
        else
            Interval[period."start".value, period."end".value]
Logic Definition Library Name: QICoreCommon
/*
@description: Given an interval, returns the ending point if the interval has an ending boundary specified,
otherwise, returns the starting point
*/
define fluent function latest(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>> ):
  (choice.toInterval()) period
    return
      if (period."hasEnd"()) then end of period
      else start of period
Logic Definition Library Name: QICoreCommon
/*
@description: Given an interval, returns true if the interval has an ending boundary specified
(i.e. the end of the interval is not null and not the maximum DateTime value)
*/
define fluent function hasEnd(period Interval<DateTime> ):
  not (
    end of period is null
      or end of period = maximum DateTime
  )
Logic Definition Library Name: QICoreCommon
/*
@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
Logic Definition Library Name: QICoreCommon
/*
@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]
Logic Definition Library Name: QICoreCommon
/*
@description: Returns an interval representing the normalized abatement of a given Condition.
@comment: If the abatement element of the Condition is represented as a DateTime, the result
is an interval beginning and ending on that DateTime.
If the abatement is represented as a Quantity, the quantity is expected to be a calendar-duration and is interpreted as the age of the patient. The
result is an interval from the date the patient turned that age to immediately before one year later.
If the abatement is represented as a Quantity Interval, the quantities are expected to be calendar-durations and are interpreted as an age range during
which the abatement occurred. The result is an interval from the date the patient turned the starting age of the quantity interval, and ending immediately
before one year later than the date the patient turned the ending age of the quantity interval.
*/
define fluent function abatementInterval(condition Condition):
	if condition.abatement is DateTime then
	  Interval[condition.abatement as DateTime, condition.abatement as DateTime]
	else if condition.abatement is Quantity then
		Interval[Patient.birthDate + (condition.abatement as Quantity),
			Patient.birthDate + (condition.abatement as Quantity) + 1 year)
	else if condition.abatement is Interval<Quantity> then
	  Interval[Patient.birthDate + (condition.abatement.low as Quantity),
		  Patient.birthDate + (condition.abatement.high as Quantity) + 1 year)
	else if condition.abatement is Interval<DateTime> then
	  Interval[condition.abatement.low, condition.abatement.high)
	else null as Interval<DateTime>
Logic Definition Library Name: QICoreCommon
/*
@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
  )
Logic Definition Library Name: Status
//Laboratory Test, Performed
define fluent function isLaboratoryTestPerformed(Obs List<Observation>):
  Obs O
    where O.status in { 'final', 'amended', 'corrected' }
      and exists ( O.category ObservationCategory
          where ( ObservationCategory ) ~ "laboratory"
      )
Logic Definition Library Name: Status
//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'}
Logic Definition Library Name: Status
//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"
      )
Logic Definition Library Name: Status
//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'
Logic Definition Library Name: Status
//Intervention, Performed
define fluent function isInterventionPerformed(Proc List<Procedure>):
  Proc P
    where P.status ~ 'completed'
Logic Definition Library Name: Status
//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'
Logic Definition Library Name: Status
//Symptom
define fluent function isSymptom(Obs List<Observation>):
  Obs O
    where O.status in { 'preliminary', 'final', 'amended', 'corrected' }
Logic Definition Library Name: Status
//Medication, Active
define fluent function isMedicationActive(MedicationRequest List<MedicationRequest>):
  MedicationRequest M
    where M.status = 'active'
      and M.intent = 'order'
Logic Definition Library Name: CumulativeMedicationDuration
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
Logic Definition Library Name: CumulativeMedicationDuration
/**********************************************************************/
/* 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
Logic Definition Library Name: CumulativeMedicationDuration
/*
 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
Terminology
Code System Description: Code system ObservationCategoryCodes
Resource: Observation Category Codes
Canonical URL: http://terminology.hl7.org/CodeSystem/observation-category
Code System Description: Code system LOINC
Resource: Logical Observation Identifiers, Names and Codes (LOINC)
Canonical URL: http://loinc.org
Code System Description: Code system ConditionClinicalStatusCodes
Resource: Condition Clinical Status Codes
Canonical URL: http://terminology.hl7.org/CodeSystem/condition-clinical
Code System Description: Code system SNOMEDCT
Resource: SNOMED CT (all versions)
Canonical URL: http://snomed.info/sct
Value Set Description: Value set HbA1c Laboratory Test
Resource: HbA1c Laboratory Test
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1013
Value Set Description: Value set Office Visit
Resource: Office Visit
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001
Value Set Description: Value set Annual Wellness Visit
Resource: Annual Wellness Visit
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240
Value Set Description: Value set Preventive Care Services Established Office Visit, 18 and Up
Resource: Preventive Care Services - Established Office Visit, 18 and Up
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025
Value Set Description: Value set Preventive Care Services Initial Office Visit, 18 and Up
Resource: Preventive Care Services-Initial Office Visit, 18 and Up
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023
Value Set Description: Value set Home Healthcare Services
Resource: Home Healthcare Services
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016
Value Set Description: Value set Virtual Encounter
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089
Value Set Description: Value set Telephone Visits
Resource: Telephone Visits
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080
Value Set Description: Value set Diabetes
Resource: Diabetes
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.103.12.1001
Value Set Description: Value set Encounter Inpatient
Resource: Encounter Inpatient
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307
Value Set Description: Value set Hospice Encounter
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003
Value Set Description: Value set Hospice Care Ambulatory
Resource: Hospice Care Ambulatory
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584
Value Set Description: Value set Hospice Diagnosis
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165
Value Set Description: Value set Frailty Device
Resource: Frailty Device
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.118.12.1300
Value Set Description: Value set Frailty Diagnosis
Resource: Frailty Diagnosis
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1074
Value Set Description: Value set Frailty Encounter
Resource: Frailty Encounter
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1088
Value Set Description: Value set Frailty Symptom
Resource: Frailty Symptom
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1075
Value Set Description: Value set Advanced Illness
Resource: Advanced Illness
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1082
Value Set Description: Value set Dementia Medications
Resource: Dementia Medications
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1510
Value Set Description: Value set Palliative Care Diagnosis
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167
Value Set Description: Value set Palliative Care Encounter
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090
Value Set Description: Value set Palliative Care Intervention
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135
Direct Reference Code Display: laboratory
Code: laboratory
System: http://terminology.hl7.org/CodeSystem/observation-category
Direct Reference Code Display: Glucose management indicator
Code: 97506-0
System: http://loinc.org
Direct Reference Code Display: Active
Code: active
System: http://terminology.hl7.org/CodeSystem/condition-clinical
Direct Reference Code Display: Recurrence
Code: recurrence
System: http://terminology.hl7.org/CodeSystem/condition-clinical
Direct Reference Code Display: Relapse
Code: relapse
System: http://terminology.hl7.org/CodeSystem/condition-clinical
Direct Reference Code Display: Discharge to home for hospice care (procedure)
Code: 428361000124107
System: http://snomed.info/sct
Direct Reference Code Display: Discharge to healthcare facility for hospice care (procedure)
Code: 428371000124100
System: http://snomed.info/sct
Direct Reference Code Display: survey
Code: survey
System: http://terminology.hl7.org/CodeSystem/observation-category
Direct Reference Code Display: Yes (qualifier value)
Code: 373066001
System: http://snomed.info/sct
Direct Reference Code Display: Hospice care [Minimum Data Set]
Code: 45755-6
System: http://loinc.org
Direct Reference Code Display: Housing status
Code: 71802-3
System: http://loinc.org
Direct Reference Code Display: Lives in a nursing home (finding)
Code: 160734000
System: http://snomed.info/sct
Direct Reference Code Display: Medical equipment used
Code: 98181-1
System: http://loinc.org
Direct Reference Code Display: Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)
Code: 71007-9
System: http://loinc.org
Dependencies
Dependency Description: QICore model information
Resource: http://hl7.org/fhir/us/qicore/Library/QICore-ModelInfo|4.1.1
Canonical URL: http://hl7.org/fhir/us/qicore/Library/QICore-ModelInfo|4.1.1
Dependency Description: Library Status
Resource: Statusversion: null1.8.000)
Canonical URL: https://madie.cms.gov/Library/Status|1.8.000
Dependency Description: Library FHIRHelpers
Resource: FHIRHelpersversion: null4.4.000)
Canonical URL: https://madie.cms.gov/Library/FHIRHelpers|4.4.000
Dependency Description: Library QICoreCommon
Resource: QICoreCommonversion: null2.1.000)
Canonical URL: https://madie.cms.gov/Library/QICoreCommon|2.1.000
Dependency Description: Library AdultOutpatientEncounters
Resource: AdultOutpatientEncountersversion: null4.11.000)
Canonical URL: https://madie.cms.gov/Library/AdultOutpatientEncounters|4.11.000
Dependency Description: Library Hospice
Resource: Hospiceversion: null6.12.000)
Canonical URL: https://madie.cms.gov/Library/Hospice|6.12.000
Dependency Description: Library AIFrailLTCF
Resource: AdvancedIllnessandFrailtyversion: null1.16.000)
Canonical URL: https://madie.cms.gov/Library/AdvancedIllnessandFrailty|1.16.000
Dependency Description: Library CMD
Resource: CumulativeMedicationDurationversion: null4.1.000)
Canonical URL: https://madie.cms.gov/Library/CumulativeMedicationDuration|4.1.000
Dependency Description: Library PalliativeCare
Resource: PalliativeCareversion: null1.11.000)
Canonical URL: https://madie.cms.gov/Library/PalliativeCare|1.11.000
Data Requirements
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, status, status.value, category, effective, value
Code Filter(s):
Path: code
ValueSet: HbA1c Laboratory Test
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, status, status.value, category, effective, value
Code Filter(s):
Path: code
Code(s): LOINC: 97506-0 (Glucose management indicator)
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, value, effective, status, status.value, category
Code Filter(s):
Path: code
Code(s): LOINC: 45755-6 (Hospice care [Minimum Data Set])
Path: value
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, effective, status, status.value, category, value
Code Filter(s):
Path: code
Code(s): LOINC: 71802-3 (Housing status)
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, effective, value, status, status.value, category
Code Filter(s):
Path: code
Code(s): LOINC: 71802-3 (Housing status)
Path: value
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, value, effective, status, status.value, category
Code Filter(s):
Path: code
Code(s): LOINC: 98181-1 (Medical equipment used)
Path: value
ValueSet: Frailty Device
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, effective, status, status.value, category, value
Code Filter(s):
Path: code
ValueSet: Frailty Symptom
Data Requirement Type: Observation
Profile(s): QICoreObservation
Must Support Elements: code, effective, status, status.value, category, value
Code Filter(s):
Path: code
Code(s): LOINC: 71007-9 (Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal))
Data Requirement Type: Patient
Profile(s): QICorePatient
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: Office Visit
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: Annual Wellness Visit
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: Preventive Care Services - Established Office Visit, 18 and Up
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: Preventive Care Services-Initial Office Visit, 18 and Up
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: Home Healthcare Services
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, status, status.value, period
Code Filter(s):
Path: type
ValueSet: Telephone Visits
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, hospitalization, hospitalization.dischargeDisposition, period, status, status.value
Code Filter(s):
Path: type
ValueSet: Encounter Inpatient
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, period, status, status.value
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, period, status, status.value
Code Filter(s):
Path: type
ValueSet: Frailty Encounter
Data Requirement Type: Encounter
Profile(s): QICoreEncounter
Must Support Elements: type, period, status, status.value
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1090
Data Requirement Type: Condition
Profile(s): QICoreCondition
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Diabetes
Data Requirement Type: Condition
Profile(s): QICoreCondition
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165
Data Requirement Type: Condition
Profile(s): QICoreCondition
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Frailty Diagnosis
Data Requirement Type: Condition
Profile(s): QICoreCondition
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Advanced Illness
Data Requirement Type: Condition
Profile(s): QICoreCondition
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1167
Data Requirement Type: ServiceRequest
Profile(s): QICoreServiceRequest
Must Support Elements: code, authoredOn, authoredOn.value, status, status.value, intent, intent.value
Code Filter(s):
Path: code
ValueSet: Hospice Care Ambulatory
Data Requirement Type: Procedure
Profile(s): QICoreProcedure
Must Support Elements: code, performed, status, status.value
Code Filter(s):
Path: code
ValueSet: Hospice Care Ambulatory
Data Requirement Type: Procedure
Profile(s): QICoreProcedure
Must Support Elements: code, performed, status, status.value
Code Filter(s):
Path: code
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135
Data Requirement Type: DeviceRequest
Profile(s): QICoreDeviceRequest
Must Support Elements: code, status, status.value, intent, intent.value, url, url.value, value, authoredOn, authoredOn.value
Code Filter(s):
Path: code
ValueSet: Frailty Device
Data Requirement Type: MedicationRequest
Profile(s): QICoreMedicationRequest
Must Support Elements: medication, status, status.value, intent, intent.value, dosageInstruction, dispenseRequest, dispenseRequest.expectedSupplyDuration, dispenseRequest.quantity, dispenseRequest.numberOfRepeatsAllowed, dispenseRequest.numberOfRepeatsAllowed.value, authoredOn, authoredOn.value, dispenseRequest.validityPeriod
Code Filter(s):
Path: medication
ValueSet: Dementia Medications
Parameters
Name Use Card. Type Documentation
Measurement Period In 0..1 Period
ErrorLevel In 0..1 string
Numerator Out 0..1 boolean
Denominator Out 0..1 boolean
Initial Population Out 0..1 boolean
Denominator Exclusions Out 0..1 boolean
Generated using version 0.5.4-cibuild of the sample-content-ig Liquid templates