Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build

Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.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-2025/ 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/CMS122FHIRDiabetesAssessGT9Pct | Version: 1.1.000
Active as of 2026-01-16 | Responsible: National Committee for Quality Assurance | Computable Name: CMS122FHIRDiabetesAssessGT9Pct
Other Identifiers: Short Name: CMS122FHIR (use: usual, ), UUID:f04ee808-8ece-4936-8b26-fafa462e1594 (use: official, ), UUID:2ea22cb2-9bcc-4ca6-b2f2-68fc964365ad (use: official, ), Publisher: 122FHIR (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 endorsements about the quality of any product, test or protocol identified as numerator compliant or otherwise identified as meeting the requirements of the measure or specification. 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 may be used for internal, noncommercial purposes (e.g., use by healthcare providers in connection with their practices) without obtaining approval from NCQA. All other uses, including a commercial use (including but not limited to vendors using or embedding the measures and specifications into any product or service to calculate measure results for customers for any purpose), must be approved by NCQA and are subject to a license at the discretion of NCQA. (C) 2012-2025 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 2025. 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) (https://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-2025 Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee, and are available at no cost under the license at https://loinc.org/kb/license/. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2024 International Health Terminology Standards Development Organisation. ICD-10 copyright 2025 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

Metadata
Title | Diabetes: Glycemic Status Assessment Greater Than 9%FHIR
Version | 1.1.000
Short Name | CMS122FHIR
GUID (Version Independent) | urn:uuid:f04ee808-8ece-4936-8b26-fafa462e1594
GUID (Version Specific) | urn:uuid:2ea22cb2-9bcc-4ca6-b2f2-68fc964365ad
CMS Identifier | 122FHIR
Effective Period | 2026-01-01 through 2026-12-31
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 endorsements about the quality of any product, test or protocol identified as numerator compliant or otherwise identified as meeting the requirements of the measure or specification. 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 may be used for internal, noncommercial purposes (e.g., use by healthcare providers in connection with their practices) without obtaining approval from NCQA. All other uses, including a commercial use (including but not limited to vendors using or embedding the measures and specifications into any product or service to calculate measure results for customers for any purpose), must be approved by NCQA and are subject to a license at the discretion of NCQA. (C) 2012-2025 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 2025. 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) (https://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-2025 Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee, and are available at no cost under the license at https://loinc.org/kb/license/. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2024 International Health Terminology Standards Development Organisation. ICD-10 copyright 2025 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].
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
Citation | American Diabetes Association. (2018). Economic Costs of Diabetes in the U.S. in 2017. Diabetes Care, 41, 917-928. Retrieved from http://care.diabetesjournals.org/content/early/2018/03/20/dci18-0007
Citation | American Diabetes Association. (2022a). Statistics About Diabetes. Retrieved from https://diabetes.org/about-us/statistics/about-diabetes
Citation | Centers for Disease Control and Prevention. (2022a). What is Diabetes? Retrieved from https://www.cdc.gov/diabetes/basics/diabetes.html
Citation | Centers for Disease Control and Prevention. (2022b). Diabetes Report Card 2021. US Dept of Health and Human Services. Retrieved from https://archive.cdc.gov/www_cdc_gov/diabetes/library/reports/reportcard.html
Citation | ElSayed, N.A., Aleppo, G., Ardoda, V.R., Bannuru, R.B., Brown, F.M., Bruemmer, D.,…Staton, R.C., American Diabetes Association (ADA). (2022). 6. Glycemic Targets: Standards of Care in Diabetes—2023. Diabetes Care 2023,46(Supplement_1):S97–S110. https://doi.org/10.2337/dc23-S006
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: CMS122v14. Please refer to the HL7 QI-Core Implementation Guide (https://hl7.org/fhir/us/qicore/STU6/) for more information on QI-Core and mapping recommendations from QDM to QI-Core STU 6. (https://hl7.org/fhir/us/qicore/STU6/qdm-to-qicore.html).
Measure Group (Rate) (ID: Group_1)
Basis | boolean
Scoring | Proportion
Improvement Notation | Increased score indicates improvement
Type | Intermediate Outcome
Rate Aggregation | None
Initial Population | ID: InitialPopulation_1 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: Denominator_1 Description: Equals Initial Population Criteria: Denominator
Denominator Exclusion | ID: DenominatorExclusion_1 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: Numerator_1 Description: Patients whose most recent glycemic status assessment (HbA1c or GMI) (performed during the measurement period) is &gt;9.0% or is missing, or was not performed during the measurement period Criteria: Numerator
Supplemental Data Guidance Guidance | For every patient evaluated by this measure also identify payer, race, ethnicity and sex
Supplemental Data Elements
Supplemental Data Element | ID: sde-ethnicity Usage Code: Supplemental Data Description: SDE Ethnicity Logic Definition: SDE Ethnicity
Supplemental Data Element | ID: sde-payer Usage Code: Supplemental Data Description: SDE Payer Logic Definition: SDE Payer
Supplemental Data Element | ID: sde-race Usage Code: Supplemental Data Description: SDE Race Logic Definition: SDE Race
Supplemental Data Element | ID: sde-sex Usage Code: Supplemental Data Description: SDE Sex Logic Definition: SDE Sex
Measure Logic
Primary Library | CMS122FHIRDiabetesAssessGT9Pct
Contents | Population Criteria Logic Definitions Terminology Dependencies Data Requirements Parameters
Population Criteria
Measure Group (Rate) (ID: Group_1)
Initial Population
    define "Initial Population":
      AgeInYearsAt(date from
        end of "Measurement Period"
      ) in Interval[18, 75]
        and exists "Qualifying Encounters"
        and exists ( ( ( [ConditionEncounterDiagnosis: "Diabetes"] ).verified ( ) ) DiabetesDiagnosis
            where DiabetesDiagnosis.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: Hospice
    define "Has Hospice Services":
      exists ((([USQualityCore.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 ends during day of "Measurement Period"
      )
        or exists ((([USQualityCore.Encounter: "Hospice Encounter"]).isEncounterPerformed()) HospiceEncounter
            where HospiceEncounter.period overlaps day of "Measurement Period"
        )
        // TODO: Shouldn't need to specify a code path here (see https://jira.hl7.org/browse/FHIR-53941)
        or exists ((([USQualityCore.ObservationScreeningAssessment: code ~ "Hospice care [Minimum Data Set]"]).isAssessmentPerformed()) HospiceAssessment
            where HospiceAssessment.value ~ "Yes (qualifier value)"
              and HospiceAssessment.effective.toInterval() overlaps day of "Measurement Period"
        )
        or exists ((([USQualityCore.ServiceRequest: "Hospice Care Ambulatory"]).isInterventionOrder()) HospiceOrder
            where HospiceOrder.authoredOn during day of "Measurement Period"
        )
        or exists ((([USQualityCore.Procedure: "Hospice Care Ambulatory"]).isInterventionPerformed()) HospicePerformed
            where HospicePerformed.performed.toInterval() overlaps day of "Measurement Period"
        )
        // TODO: Consider whether to keep this as the union of Problems and EncounterDiagnosis
        or exists ((([FHIR.Condition: "Hospice Diagnosis"]).verified()) 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( (([ObservationScreeningAssessment: "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 nursing home (finding)"
        ) is not null
Logic Definition | Library Name: AdvancedIllnessandFrailty
    define "Has Criteria Indicating Frailty":
      exists ( (([USQualityCore.DeviceRequest: "Frailty Device"]).isDeviceOrderPersonalUseDevices()) FrailtyDeviceOrder
          where FrailtyDeviceOrder.authoredOn.toInterval() during day of "Measurement Period"
      )
        or exists ( (([ObservationScreeningAssessment: "Medical equipment used"]).isAssessmentPerformed()) EquipmentUsed
            where EquipmentUsed.value as CodeableConcept in "Frailty Device"
            and EquipmentUsed.effective.toInterval() ends during day of "Measurement Period"
        )
        // TODO: Consider whether to keep this as the union of problems and encounter diagnoses
        or exists ( (([FHIR.Condition: "Frailty Diagnosis"]).verified()) FrailtyDiagnosis
            where FrailtyDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
        )
        or exists ( (([USQualityCore.Encounter: "Frailty Encounter"]).isEncounterPerformed()) FrailtyEncounter
            where FrailtyEncounter.period overlaps day of "Measurement Period"
        )
        or exists ( (([USQualityCore.SimpleObservation: "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":
    // TODO: Consider whether to keep this as the union of problems and encounter diagnoses
    exists ((([Condition: "Advanced Illness"]).verified()) 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 (( ([FHIR.MedicationRequest: "Dementia Medications"]).isMedicationActive()) DementiaMedication
          where DementiaMedication.medicationRequestPeriod() overlaps day of Interval[start of "Measurement Period" - 1 year,
            end of "Measurement Period"]
      )
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":
      // TODO: Shouldn't need to specify a code path here (see https://jira.hl7.org/browse/FHIR-53941)
      exists ((([USQualityCore.ObservationScreeningAssessment: code ~ "Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)"]).isAssessmentPerformed()) PalliativeAssessment
          where PalliativeAssessment.effective.toInterval() overlaps day of "Measurement Period"
      )
        // TODO: Consider whether to keep this as the union of the problems and encounter diagnosis list? Anything enforced by the profiles that is expected but isn't stated here?
        or exists ((([FHIR.Condition: "Palliative Care Diagnosis"]).verified()) PalliativeDiagnosis
            where PalliativeDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
        )
        or exists ((([USQualityCore.Encounter: "Palliative Care Encounter"]).isEncounterPerformed()) PalliativeEncounter
            where PalliativeEncounter.period overlaps day of "Measurement Period"
        )
        or exists ((([USQualityCore.Procedure: "Palliative Care Intervention"]).isInterventionPerformed()) PalliativeIntervention
            where PalliativeIntervention.performed.toInterval() overlaps day of "Measurement Period"
        )
Logic Definition | Library Name: SupplementalDataElements
    define "SDE Sex":
      case
        when Patient.sex() = '248153007' then "Male (finding)"
        when Patient.sex() = '248152002' then "Female (finding)"
        else null
      end
Logic Definition | Library Name: SupplementalDataElements
    define "SDE Payer":
      [USQualityCore.Coverage: type in "Payer Type"] Payer
        return {
          code: Payer.type,
          period: Payer.period
        }
Logic Definition | Library Name: SupplementalDataElements
    define "SDE Ethnicity":
      (Patient.ethnicity()) E
        return Tuple {
          codes: { E.ombCategory } union E.detailed,
          display: E.text
        }
Logic Definition | Library Name: SupplementalDataElements
    define "SDE Race":
      (Patient.race()) R
        return Tuple {
          codes: R.ombCategory union R.detailed,
          display: R.text
        }
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "SDE Sex":
      SDE."SDE Sex"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "Glycemic Status Assessment":
      ( ( [LaboratoryResultObservation: "HbA1c Laboratory Test"]
          union [LaboratoryResultObservation: "Glucose management indicator"]
      ).isLaboratoryTestPerformed ( ) ) GlycemicStatus
        where GlycemicStatus.effective.latest ( ) during day of "Measurement Period"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "Most Recent Glycemic Status Date":
      Last(("Glycemic Status Assessment" QualifyingGlycemicStatus
          return date from QualifyingGlycemicStatus.effective.latest()) QualifyingGlycemicStatus
          sort asc
      )
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    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: CMS122FHIRDiabetesAssessGT9Pct
    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: CMS122FHIRDiabetesAssessGT9Pct
    define "Has Most Recent Elevated Glycemic Status Assessment":
      "Lowest Glycemic Status Assessment Reading on Most Recent Day".value > 9 '%'
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "Has No Record Of Glycemic Status Assessment":
      not exists "Glycemic Status Assessment"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    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: CMS122FHIRDiabetesAssessGT9Pct
    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: "Nutrition Services"]
          union ( [Encounter] E
              where exists ( ( E.type ) T
                  where T ~ "Medical nutrition therapy; initial assessment and intervention, individual, face-to-face with the patient, each 15 minutes"
              )
          )
          union ( [Encounter] E
              where exists ( ( E.type ) T
                  where T ~ "Medical nutrition therapy; re-assessment and intervention, individual, face-to-face with the patient, each 15 minutes"
              )
          )
          union ( [Encounter] E
              where exists ( ( E.type ) T
                  where T ~ "Medical nutrition therapy; group (2 or more individual(s)), each 30 minutes"
              )
          )
          union ( [Encounter] E
              where exists ( ( E.type ) T
                  where T ~ "Medical nutrition therapy; reassessment and subsequent intervention(s) following second referral in same year for change in diagnosis, medical condition or treatment regimen (including additional hours needed for renal disease), individual, face to face with the patient, each 15 minutes"
              )
          )
          union ( [Encounter] E
              where exists ( ( E.type ) T
                  where T ~ "Medical nutrition therapy, reassessment and subsequent intervention(s) following second referral in same year for change in diagnosis, medical condition, or treatment regimen (including additional hours needed for renal disease), group (2 or more individuals), each 30 minutes"
              )
          )
          union [Encounter: "Telephone Visits"]
      ).isEncounterPerformed ( ) ) ValidEncounters
        where ValidEncounters.period during day of "Measurement Period"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "Initial Population":
      AgeInYearsAt(date from
        end of "Measurement Period"
      ) in Interval[18, 75]
        and exists "Qualifying Encounters"
        and exists ( ( ( [ConditionEncounterDiagnosis: "Diabetes"] ).verified ( ) ) DiabetesDiagnosis
            where DiabetesDiagnosis.prevalenceInterval ( ) overlaps day of "Measurement Period"
        )
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "Denominator":
      "Initial Population"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "SDE Payer":
      SDE."SDE Payer"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    define "SDE Ethnicity":
      SDE."SDE Ethnicity"
Logic Definition | Library Name: CMS122FHIRDiabetesAssessGT9Pct
    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: CMS122FHIRDiabetesAssessGT9Pct
    define "SDE Race":
      SDE."SDE Race"
Logic Definition | Library Name: FHIRCommon
    /*
    @description: Returns the single extension (if present) on the given resource with the specified url.
    @comment: This function uses singleton from to ensure that a run-time exception is thrown if there
    is more than one extension on the given resource with the specified url.
    */
    define fluent function ext(domainResource DomainResource, url String):
      singleton from domainResource.exts(url)
Logic Definition | Library Name: FHIRCommon
    /*
    @description: Returns any extensions defined on the given resource with the specified url
    */
    define fluent function exts(domainResource DomainResource, url String):
      domainResource.extension E
        where E.url = url
        return E
Logic Definition | Library Name: FHIRCommon
    /*
    @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<FHIR.dateTime, FHIR.Period, FHIR.Age, FHIR.Range>):
      (choice.toInterval()) period
        return
          if (period.hasEnd()) then end of period
          else start of period
Logic Definition | Library Name: FHIRCommon
    /*
    @description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
    @comment: Normalizes a choice type of FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instance, FHIR.string, FHIR.Age, or FHIR.Range 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 FHIR, allowing this function to be used across any resource.

    The input can be provided as a dateTime, Period, Timing, instant, string, Age, or Range.
    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 Period, the result is a DateTime Interval.
    If the input is a Timing, an error is raised indicating a single interval cannot be computed from a Timing.
    If the input is an instant, the result is a DateTime Interval beginning and ending on that instant.
    If the input is a string, an error is raised indicating a single interval cannot be computed from a string.
    If the input is an Age, the result is a DateTime Interval beginning when the patient was the given Age,
    and ending immediately prior to when the patient was the given Age plus one year.
    If the input is a Range, the result is a DateTime Interval beginning when the patient was the Age given
    by the low end of the Range, and ending immediately prior to when the patient was the Age given by the
    high end of the Range plus one year.

    NOTE: Due to the
    complexity of determining a single interval from a Timing or String type, this function will throw a run-time exception if it is used
    with a Timing or String.
    */
    define fluent function toInterval(choice Choice<FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instant, FHIR.string, FHIR.Age, FHIR.Range>):
      case
        when choice is FHIR.dateTime then
          Interval[FHIRHelpers.ToDateTime(choice as FHIR.dateTime), FHIRHelpers.ToDateTime(choice as FHIR.dateTime)]
        when choice is FHIR.Period then
          FHIRHelpers.ToInterval(choice as FHIR.Period)
        when choice is FHIR.instant then
          Interval[FHIRHelpers.ToDateTime(choice as FHIR.instant), FHIRHelpers.ToDateTime(choice as FHIR.instant)]
        when choice is FHIR.Age then
          Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age),
            FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age) + 1 year)
        when choice is FHIR.Range then
          Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).low),
            FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).high) + 1 year)
        when choice is FHIR.Timing then
          Message(null as Interval<DateTime>, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported')
        when choice is FHIR.string then
          Message(null as Interval<DateTime>, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported')
        else
          null as Interval<DateTime>
      end
Logic Definition | Library Name: FHIRCommon
    /*
    @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: FHIRCommon
    /*
    @description: Returns conditions in the given list that either have no verification status or have a verification status of confirmed, unconfirmed, provisional, or differential
    */
    define fluent function verified(conditions List<FHIR.Condition>):
      conditions C
        where C.verificationStatus is not null implies
          (C.verificationStatus ~ "confirmed"
            or C.verificationStatus ~ "unconfirmed"
            or C.verificationStatus ~ "provisional"
            or C.verificationStatus ~ "differential"
          )
Logic Definition | Library Name: FHIRCommon
    /*
    @description: Returns an interval representing the normalized prevalence period of a given Condition resource.
    @comment: Uses the toInterval and toAbatementInterval functions to determine the widest potential interval from
    onset to abatement as specified in the given Condition.
    */
    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: FHIRCommon
    /*
    @description: Returns an interval representing the normalized Abatement of a given Condition resource.
    @comment: @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.

    NOTE: Due to the complexity of determining an interval from a String, this function will throw
    a run-time exception if used with a Condition instance that has a String as the abatement value.
    */
    define fluent function abatementInterval(condition Condition):
      if condition.abatement is FHIR.dateTime then
        Interval[FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime), FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime)]
      else if condition.abatement is FHIR.Period then
        FHIRHelpers.ToInterval(condition.abatement as FHIR.Period)
      else if condition.abatement is FHIR.string then
        Message(null as Interval<DateTime>, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported')
      else if condition.abatement is FHIR.Age then
        Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age),
          FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age) + 1 year)
      else if condition.abatement is FHIR.Range then
        Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).low),
          FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).high) + 1 year)
      else if condition.abatement is FHIR.boolean then
        Interval[end of condition.onset.toInterval(), condition.recordedDate)
      else
        null
Logic Definition | Library Name: FHIRCommon
    /*
    @description: Returns the single extension (if present) on the given element with the specified url.
    @comment: This function uses singleton from to ensure that a run-time exception is thrown if there
    is more than one extension on the given element with the specified url.
    */
    define fluent function ext(element Element, url String):
      singleton from element.exts(url)
Logic Definition | Library Name: FHIRCommon
    /*
    @description: Returns any extensions defined on the given element with the specified url.
    */
    define fluent function exts(element Element, url String):
      element.extension E
        where E.url = url
        return E
Logic Definition | Library Name: Status
    //Laboratory Test, Performed
    define fluent function isLaboratoryTestPerformed(Obs List<LaboratoryResultObservation>):
      Obs O
        where O.status in { 'final', 'amended', 'corrected' }
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<FHIR.Encounter>):
      Enc E
        where E.status = 'finished'
Logic Definition | Library Name: Status
    //Assessment, Performed
    define fluent function isAssessmentPerformed(Obs List<ObservationScreeningAssessment>):
      Obs O
        where O.status in { 'final', 'amended', 'corrected' }
Logic Definition | Library Name: Status
    //Intervention, Order
    define fluent function isInterventionOrder(ServiceRequest List<FHIR.ServiceRequest>):
      ServiceRequest S
        where S.status in { 'active', 'completed' }
          and S.intent in {'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order'}
Logic Definition | Library Name: Status
    //Intervention, Performed
    define fluent function isInterventionPerformed(Proc List<FHIR.Procedure>):
      Proc P
        where P.status ~ 'completed'
Logic Definition | Library Name: Status
    //Device, Order - Personal Use Devices
    define fluent function isDeviceOrderPersonalUseDevices(DeviceRequest List<FHIR.DeviceRequest>):
      DeviceRequest D
        where D.status in { 'active', 'completed' }
          and D.intent in {'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order'}
Logic Definition | Library Name: Status
    //Symptom
    define fluent function isSymptom(Obs List<SimpleObservation>):
      Obs O
        where O.status in { 'preliminary', 'final', 'amended', 'corrected' }
Logic Definition | Library Name: Status
    //Medication, Active
    define fluent function isMedicationActive(MedicationRequest List<FHIR.MedicationRequest>):
      MedicationRequest M
        where M.status = 'active'
          and M.intent in {'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order'}
Logic Definition | Library Name: CumulativeMedicationDuration
    /*
    Calculates the Medication Period for a single MedicationRequest.
    MedicationRequest instances provided to this function are expected
    to conform to the [MMEMedicationRequest](http://build.fhir.org/ig/cqframework/opioid-mme-r4/StructureDefinition-mmemedicationrequest.html)
    profile, which expects:
    * 1 and only 1 dosageInstruction, multiple dosageInstruction elements will result in an error
    * 1 and only 1 doseAndRate, multiple doseAndRate elements will result in an error
    * 1 timing with 1 repeat, missing timing or repeat elements will result in a null
    * frequency, frequencyMax, defaulting to 1
    * period, periodUnit, defaulting to 1 'd'
    * timeOfDay
    * doseQuantity or doseRange, missing doseQuantity and doseRange will result in a null
    Note that MedicationRequest status is not considered by this calculation, as the
    list of MedicationRequest instances provided to this function should already have
    considered appropriate statuses, depending on the use case, typically `completed`.

    NOTE: Updated return to use "date from end of boundsPeriod" to ensure result is Interval<Date>
    */
    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 as FHIR.Range,
          doseQuantity: doseAndRate.dose as FHIR.SimpleQuantity,

          dose: Coalesce(end of doseRange, doseQuantity),
          dosesPerDay: Coalesce(ToDaily(frequency, period), Count(timing.repeat.timeOfDay), 1.0),
          boundsPeriod: timing.repeat.bounds as Period,
          // TODO: this isn't working as expected, convert results in null
          //daysSupply: (convert(R.dispenseRequest.expectedSupplyDuration) to days).value,
          daysSupply: (R.dispenseRequest.expectedSupplyDuration).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."end" 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
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value string): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value uri): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value ObservationStatus): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToDateTime(value dateTime): value.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: FHIRHelpers
    define function ToDateTime(value instant): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToDate(value date): value.value
Logic Definition | Library Name: FHIRHelpers
    /*
    @description: Converts the given FHIR [Quantity](https://hl7.org/fhir/datatypes.html#Quantity)
    value to a CQL Quantity
    @comment: If the given quantity has a comparator specified, a runtime error is raised. If the given quantity
    has a system other than UCUM (i.e. `http://unitsofmeasure.org`) or CQL calendar units (i.e. `http://hl7.org/fhirpath/CodeSystem/calendar-units`)
    an error is raised. For UCUM to calendar units, the `ToCalendarUnit` function is used.
    @seealso: ToCalendarUnit
    */
    define function ToQuantity(quantity FHIR.Quantity):
        case
            when quantity is null then null
            when quantity.value is null then null
            when quantity.comparator is not null then
                Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')
            when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'
                  or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then
                System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }
            else
                Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')')
        end
Logic Definition | Library Name: FHIRHelpers
    /*
    @description: Converts a UCUM definite duration unit to a CQL calendar duration
    unit using conversions specified in the [quantities](https://cql.hl7.org/02-authorsguide.html#quantities)
    topic of the CQL specification.
    @comment: Note that for durations above days (or weeks), the conversion is understood to be approximate
    */
    define function ToCalendarUnit(unit System.String):
        case unit
            when 'ms' then 'millisecond'
            when 's' then 'second'
            when 'min' then 'minute'
            when 'h' then 'hour'
            when 'd' then 'day'
            when 'wk' then 'week'
            when 'mo' then 'month'
            when 'a' then 'year'
            else unit
        end
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value EncounterStatus): value.value
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
    define function ToString(value ServiceRequestStatus): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value ServiceRequestIntent): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value ProcedureStatus): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value DeviceRequestStatus): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value RequestIntent): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value MedicationRequestStatus): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value MedicationRequestIntent): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToDecimal(value decimal): value.value
Logic Definition | Library Name: FHIRHelpers
    define function ToString(value UnitsOfTime): value.value
Logic Definition | Library Name: FHIRHelpers
    /*
    @description: Converts the given FHIR [Range](https://hl7.org/fhir/datatypes.html#Range) value to a CQL Interval of Quantity
    */
    define function ToInterval(range FHIR.Range):
        if range is null then
            null
        else
            Interval[ToQuantity(range.low), ToQuantity(range.high)]
Logic Definition | Library Name: FHIRHelpers
    define function ToInteger(value integer): value.value
Logic Definition | Library Name: USCoreCommon
    /*
    @description: Returns the sex element as defined for the USCore patient profile
    */
    define fluent function sex(patient Patient):
      patient.ext('http://hl7.org/fhir/us/core/StructureDefinition/us-core-sex').value as FHIR.code
Logic Definition | Library Name: USCoreCommon
    define fluent function ethnicity(patient Patient):
      (patient.ext('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity')) E
        return {
          ombCategory: E.ext('ombCategory').value as FHIR.Coding,
          detailed: (E.exts('detailed')) d return d.value as FHIR.Coding,
          text: E.ext('text').value as FHIR.string
        }
Logic Definition | Library Name: USCoreCommon
    define fluent function race(patient Patient):
      (patient.ext('http://hl7.org/fhir/us/core/StructureDefinition/us-core-race')) E
        return {
          ombCategory: (E.exts('ombCategory')) o return o.value as FHIR.Coding,
          detailed: (E.exts('detailed')) d return d.value as FHIR.Coding,
          text: E.ext('text').value as FHIR.string
        }
Terminology
Code System | Description: Code system SNOMEDCT Resource: SNOMED CT (all versions) Canonical URL: `http://snomed.info/sct`
Code System | Description: Code system LOINC Resource: Logical Observation Identifiers, Names and Codes (LOINC) Canonical URL: `http://loinc.org`
Code System | Description: Code system CPT Resource: Current Procedural Terminology (CPT®) Canonical URL: `http://www.ama-assn.org/go/cpt`
Code System | Description: Code system HCPCS Resource: Healthcare Common Procedure Coding System (HCPCS) level II alphanumeric codes Canonical URL: `http://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets`
Code System | Description: Code system ConditionVerificationStatusCodes Resource: ConditionVerificationStatus Canonical URL: `http://terminology.hl7.org/CodeSystem/condition-ver-status`
Code System | Description: Code system ConditionClinicalStatusCodes Resource: Condition Clinical Status Codes Canonical URL: `http://terminology.hl7.org/CodeSystem/condition-clinical`
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 Nutrition Services Resource: Nutrition Services Canonical URL: `http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1006`
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 Payer Type Resource: Payer Type Canonical URL: `http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591`
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: Hospice Encounter 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: Hospice Diagnosis 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: Palliative Care Diagnosis 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: Palliative Care Encounter 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: Palliative Care Intervention Canonical URL: `http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1135`
Direct Reference Code | Display: Male (finding) Code: 248153007 System: `http://snomed.info/sct`
Direct Reference Code | Display: Female (finding) Code: 248152002 System: `http://snomed.info/sct`
Direct Reference Code | Display: Glucose management indicator Code: 97506-0 System: `http://loinc.org`
Direct Reference Code | Display: Medical nutrition therapy; initial assessment and intervention, individual, face-to-face with the patient, each 15 minutes Code: 97802 System: `http://www.ama-assn.org/go/cpt`
Direct Reference Code | Display: Medical nutrition therapy; re-assessment and intervention, individual, face-to-face with the patient, each 15 minutes Code: 97803 System: `http://www.ama-assn.org/go/cpt`
Direct Reference Code | Display: Medical nutrition therapy; group (2 or more individual(s)), each 30 minutes Code: 97804 System: `http://www.ama-assn.org/go/cpt`
Direct Reference Code | Display: Medical nutrition therapy; reassessment and subsequent intervention(s) following second referral in same year for change in diagnosis, medical condition or treatment regimen (including additional hours needed for renal disease), individual, face to face with the patient, each 15 minutes Code: G0270 System: `http://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets`
Direct Reference Code | Display: Medical nutrition therapy, reassessment and subsequent intervention(s) following second referral in same year for change in diagnosis, medical condition, or treatment regimen (including additional hours needed for renal disease), group (2 or more individuals), each 30 minutes Code: G0271 System: `http://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets`
Direct Reference Code | Code: confirmed System: `http://terminology.hl7.org/CodeSystem/condition-ver-status`
Direct Reference Code | Code: unconfirmed System: `http://terminology.hl7.org/CodeSystem/condition-ver-status`
Direct Reference Code | Code: provisional System: `http://terminology.hl7.org/CodeSystem/condition-ver-status`
Direct Reference Code | Code: differential System: `http://terminology.hl7.org/CodeSystem/condition-ver-status`
Direct Reference Code | Code: active System: `http://terminology.hl7.org/CodeSystem/condition-clinical`
Direct Reference Code | Code: recurrence System: `http://terminology.hl7.org/CodeSystem/condition-clinical`
Direct Reference Code | 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: Hospice care [Minimum Data Set] Code: 45755-6 System: `http://loinc.org`
Direct Reference Code | Display: Yes (qualifier value) Code: 373066001 System: `http://snomed.info/sct`
Direct Reference Code | Display: Housing status Code: 71802-3 System: `http://loinc.org`
Direct Reference Code | Display: Lives in 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: USQualityCore model information Resource: `https://madie.cms.gov/Library/USQualityCore-ModelInfo|0.1.0-cibuild` Canonical URL: `https://madie.cms.gov/Library/USQualityCore-ModelInfo|0.1.0-cibuild`
Dependency | Description: USCore model information Resource: http://hl7.org/fhir/us/cql/Library/USCore-ModelInfo|6.1.0-derived Canonical URL: `http://hl7.org/fhir/us/cql/Library/USCore-ModelInfo|6.1.0-derived`
Dependency | Description: FHIR model information Resource: http://hl7.org/fhir/uv/cql/Library/FHIR-ModelInfo|4.0.1 Canonical URL: `http://hl7.org/fhir/uv/cql/Library/FHIR-ModelInfo|4.0.1`
Dependency | Description: Library SDE Resource: SupplementalDataElementsversion: null6.1.000) Canonical URL: `https://madie.cms.gov/Library/SupplementalDataElements|6.1.000`
Dependency | Description: Library FHIRHelpers Resource: http://hl7.org/fhir/uv/cql/Library/FHIRHelpers|4.0.1 Canonical URL: `http://hl7.org/fhir/uv/cql/Library/FHIRHelpers|4.0.1`
Dependency | Description: Library USCommon Resource: http://hl7.org/fhir/us/cql/Library/USCoreCommon|2.0.0-ballot Canonical URL: `http://hl7.org/fhir/us/cql/Library/USCoreCommon|2.0.0-ballot`
Dependency | Description: Library FHIRCommon Resource: http://hl7.org/fhir/uv/cql/Library/FHIRCommon|2.0.0 Canonical URL: `http://hl7.org/fhir/uv/cql/Library/FHIRCommon|2.0.0`
Dependency | Description: Library Status Resource: Statusversion: null2.1.000) Canonical URL: `https://madie.cms.gov/Library/Status|2.1.000`
Dependency | Description: Library Hospice Resource: Hospiceversion: null7.1.000) Canonical URL: `https://madie.cms.gov/Library/Hospice|7.1.000`
Dependency | Description: Library AIFrailLTCF Resource: AdvancedIllnessandFrailtyversion: null2.1.000) Canonical URL: `https://madie.cms.gov/Library/AdvancedIllnessandFrailty|2.1.000`
Dependency | Description: Library CMD Resource: http://hl7.org/fhir/us/cql/Library/CumulativeMedicationDuration|2.0.0-ballot Canonical URL: `http://hl7.org/fhir/us/cql/Library/CumulativeMedicationDuration|2.0.0-ballot`
Dependency | Description: Library PalliativeCare Resource: PalliativeCareversion: null2.1.000) Canonical URL: `https://madie.cms.gov/Library/PalliativeCare|2.1.000`
Data Requirements
Data Requirement | Type: Patient Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-patient` Must Support Elements: ombCategory, detailed, text
Data Requirement | Type: Patient Profile(s): Patient Must Support Elements: birthDate
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-lab` Must Support Elements: code, status, effective, value Code Filter(s): Path: code ValueSet: HbA1c Laboratory Test
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-lab` Must Support Elements: code, status, effective, value Code Filter(s): Path: code Code(s): LOINC: 97506-0 (Glucose management indicator)
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-lab` Must Support Elements: value, status, effective
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Office Visit
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Annual Wellness Visit
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Preventive Care Services Established Office Visit, 18 and Up
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Preventive Care Services Initial Office Visit, 18 and Up
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Home Healthcare Services
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Nutrition Services
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, status, period Code Filter(s): Path: type ValueSet: Telephone Visits
Data Requirement | Type: Condition Profile(s): Condition Must Support Elements: abatement, verificationStatus, onset, recordedDate, clinicalStatus
Data Requirement | Type: Condition Profile(s): Condition Must Support Elements: code, verificationStatus Code Filter(s): Path: code ValueSet: Hospice Diagnosis
Data Requirement | Type: Condition Profile(s): Condition Must Support Elements: code, verificationStatus Code Filter(s): Path: code ValueSet: Frailty Diagnosis
Data Requirement | Type: Condition Profile(s): Condition Must Support Elements: code, verificationStatus Code Filter(s): Path: code ValueSet: Advanced Illness
Data Requirement | Type: Condition Profile(s): Condition Must Support Elements: code, verificationStatus Code Filter(s): Path: code ValueSet: Palliative Care Diagnosis
Data Requirement | Type: Condition Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-condition-encounter-diagnosis` Must Support Elements: code Code Filter(s): Path: code ValueSet: Diabetes
Data Requirement | Type: Coverage Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-coverage` Must Support Elements: type, period Code Filter(s): Path: type ValueSet: Payer Type
Data Requirement | Type: Encounter Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-encounter` Must Support Elements: type, hospitalization, hospitalization.dischargeDisposition, period Code Filter(s): Path: type ValueSet: Encounter Inpatient
Data Requirement | Type: Encounter Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-encounter` Must Support Elements: type, period Code Filter(s): Path: type ValueSet: Hospice Encounter
Data Requirement | Type: Encounter Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-encounter` Must Support Elements: type, period Code Filter(s): Path: type ValueSet: Frailty Encounter
Data Requirement | Type: Encounter Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-encounter` Must Support Elements: type, period Code Filter(s): Path: type ValueSet: Palliative Care Encounter
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-screening-assessment` Must Support Elements: code, value, effective, status Code Filter(s): Path: code Code(s): LOINC: 45755-6 (Hospice care [Minimum Data Set]) Path: value
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-screening-assessment` Must Support Elements: code, effective, status Code Filter(s): Path: code Code(s): LOINC: 71802-3 (Housing status)
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-screening-assessment` Must Support Elements: code, effective, value, status Code Filter(s): Path: code Code(s): LOINC: 71802-3 (Housing status) Path: value
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-screening-assessment` Must Support Elements: code, value, effective, status Code Filter(s): Path: code Code(s): LOINC: 98181-1 (Medical equipment used) Path: value ValueSet: Frailty Device
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-observation-screening-assessment` Must Support Elements: code, effective, status Code Filter(s): Path: code Code(s): LOINC: 71007-9 (Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal))
Data Requirement | Type: ServiceRequest Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-servicerequest` Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Hospice Care Ambulatory
Data Requirement | Type: Procedure Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-procedure` Must Support Elements: code, performed Code Filter(s): Path: code ValueSet: Hospice Care Ambulatory
Data Requirement | Type: Procedure Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-procedure` Must Support Elements: code, performed Code Filter(s): Path: code ValueSet: Palliative Care Intervention
Data Requirement | Type: DeviceRequest Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-devicerequest` Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Frailty Device
Data Requirement | Type: Observation Profile(s): `http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-simple-observation` Must Support Elements: code, effective, status Code Filter(s): Path: code ValueSet: Frailty Symptom
Data Requirement | Type: Medication Profile(s): Medication Must Support Elements: id, code Code Filter(s): Path: code ValueSet: Dementia Medications
Data Requirement | Type: MedicationRequest Profile(s): MedicationRequest Must Support Elements: medication.reference, status, intent, dosageInstruction, dispenseRequest, dispenseRequest.expectedSupplyDuration, dispenseRequest.expectedSupplyDuration.value, dispenseRequest.quantity, dispenseRequest.numberOfRepeatsAllowed, authoredOn, dispenseRequest.validityPeriod
Data Requirement | Type: MedicationRequest Profile(s): MedicationRequest Must Support Elements: medication, status, intent, dosageInstruction, dispenseRequest, dispenseRequest.expectedSupplyDuration, dispenseRequest.expectedSupplyDuration.value, dispenseRequest.quantity, dispenseRequest.numberOfRepeatsAllowed, authoredOn, 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 |
SDE Sex | Out | 0..1 | Coding |
Numerator | Out | 0..1 | boolean |
Denominator | Out | 0..1 | boolean |
SDE Payer | Out | 0..* | Resource |
Initial Population | Out | 0..1 | boolean |
SDE Ethnicity | Out | 0..1 | Resource |
Denominator Exclusions | Out | 0..1 | boolean |
SDE Race | Out | 0..1 | Resource |
Generated using version 0.5.4 of the sample-content-ig Liquid templates