Quality Measure Implementation Guide
1.0.0 - STU 1 International flag

Quality Measure Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-cqm/ and changes regularly. See the Directory of published versions

Library: Advanced Illness and Frailty Exclusion Library

Official URL: http://hl7.org/fhir/uv/cqm/Library/AdvancedIllnessandFrailtyExclusion Version: 5.12.000
Standards status: Trial-use Maturity Level: 4 Computable Name: AdvancedIllnessandFrailtyExclusion
Other Identifiers: OID:2.16.840.1.113883.4.642.40.61.28.2

Advanced Illness and Frailty Exclusion Example Library

Metadata
Title Advanced Illness and Frailty Exclusion Library
Version 5.12.000
Identifier urn:oid:2.16.840.1.113883.4.642.40.61.28.2
Status Draft
Jurisdiction Global (Whole world)
Steward (Publisher) HL7 International / Clinical Quality Information
Description

Advanced Illness and Frailty Exclusion Example Library

Type Logic Library
Parameter Name: Measurement Period
Use: In
Min Cardinality: 0
Max Cardinality: 1
Type: Period
Parameter Name: Patient
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Patient
Parameter Name: Has Criteria Indicating Frailty
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Outpatient Encounters with Advanced Illness
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
Parameter Name: Inpatient Encounter with Advanced Illness
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
Parameter Name: Dementia Medications In Year Before or During Measurement Period
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: MedicationDispense
Parameter Name: Advanced Illness and Frailty Exclusion Including Over Age 80
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Advanced Illness and Frailty Exclusion Not Including Over Age 80
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Long Term Care Periods During Measurement Period
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Period
Parameter Name: Long Term Care Periods Longer Than 90 Consecutive Days
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Data Requirement Type: Patient
Profile(s): Patient
Data Requirement Type: DeviceRequest
Profile(s): DeviceRequest
Must Support Elements: code, authoredOn
Code Filter(s):
Path: code
ValueSet: Frailty Device
Data Requirement Type: Condition
Profile(s): Condition
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Frailty Diagnosis
Data Requirement Type: Condition
Profile(s): Condition
Must Support Elements: code, id
Code Filter(s):
Path: code
ValueSet: Advanced Illness
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, diagnosis
Code Filter(s):
Path: type
ValueSet: Frailty Encounter
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: Outpatient
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: Observation
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: ED
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: Nonacute Inpatient
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: Acute Inpatient
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: Care Services in Long Term Residential Facility
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, diagnosis, period
Code Filter(s):
Path: type
ValueSet: Nursing Facility Visit
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, effective
Code Filter(s):
Path: code
ValueSet: Frailty Symptom
Data Requirement Type: MedicationDispense
Profile(s): MedicationDispense
Must Support Elements: medication, whenHandedOver
Code Filter(s):
Path: medication
ValueSet: Dementia Medications
Data Requirement Type: MedicationDispense
Profile(s): MedicationDispense
Must Support Elements: medication.reference, whenHandedOver
Data Requirement Type: Medication
Profile(s): Medication
Must Support Elements: id, code
Library Content
CQL Content
/*
This example is a work in progress and should not be considered a final specification
or recommendation for guidance. This example will help guide and direct the process
of finding conventions and usage patterns that meet the needs of the various stakeholders
in the measure development community.
*/
library AdvancedIllnessandFrailtyExclusion version '5.12.000'

using FHIR version '4.0.1'

include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers

include MATGlobalCommonFunctions version '5.0.000' called Global

codesystem "LOINC": 'http://loinc.org'

valueset "Acute Inpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1083'
valueset "Advanced Illness": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1082'
valueset "Care Services in Long-Term Residential Facility": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1014'
valueset "Dementia Medications": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1510'
valueset "ED": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1085'
valueset "Frailty Device": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.118.12.1300'
valueset "Frailty Diagnosis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1074'
valueset "Frailty Encounter": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1088'
valueset "Frailty Symptom": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.113.12.1075'
valueset "Nonacute Inpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1084'
valueset "Nursing Facility Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1012'
valueset "Observation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1086'
valueset "Outpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1087'

code "Birth date": '21112-8' from "LOINC" display 'Birth date'

parameter "Measurement Period" Interval<DateTime>
  default Interval[@2019-01-01T00:00:00.0, @2020-01-01T00:00:00.0)

context Patient

define "Advanced Illness and Frailty Exclusion Including Over Age 80":
  //If the measure includes populations age 80 and older, then use this logic:
      	(
              Global."CalendarAgeInYearsAt"(FHIRHelpers.ToDate(Patient.birthDate), start of "Measurement Period")in Interval[66, 80]
                  and "Has Criteria Indicating Frailty"
                  and ( Count("Outpatient Encounters with Advanced Illness")>= 2
                      or exists ( "Inpatient Encounter with Advanced Illness" )
                      or exists "Dementia Medications In Year Before or During Measurement Period"
                  )
      	)
      		or (
                  Global."CalendarAgeInYearsAt"(FHIRHelpers.ToDate(Patient.birthDate), start of "Measurement Period")>= 81
      			    and "Has Criteria Indicating Frailty"
      		)

define "Advanced Illness and Frailty Exclusion Not Including Over Age 80":
  //If the measure does NOT include populations age 80 and older, then use this logic:
      	Global."CalendarAgeInYearsAt"(FHIRHelpers.ToDate(Patient.birthDate), start of "Measurement Period")>= 65
              and "Has Criteria Indicating Frailty"
              and ( Count("Outpatient Encounters with Advanced Illness")>= 2
                  or exists ( "Inpatient Encounter with Advanced Illness" )
                  or exists "Dementia Medications In Year Before or During Measurement Period"
              )

define "Dementia Medications In Year Before or During Measurement Period":
  ["MedicationDispense": "Dementia Medications"] DementiaMed
      		where DementiaMed.whenHandedOver during Interval[
                  ( start of "Measurement Period" - 1 year ), end of "Measurement Period"
              ]

define "Has Criteria Indicating Frailty":
  //Ask Bryn about devices
      	exists ( [DeviceRequest: "Frailty Device"] FrailtyDeviceOrder
      			where FrailtyDeviceOrder.authoredOn during "Measurement Period"
      	)
          // DeviceUseStatement has a known issue with the publication tooling
          // so it is removed to allow this IG to publish until that is fixed
      		//or exists ( [DeviceUseStatement: "Frailty Device"] FrailtyDeviceUse
      		//		where Global."Normalize Interval"(FrailtyDeviceUse.timing) overlaps "Measurement Period"
      		//)
      		or exists ( [Condition: "Frailty Diagnosis"] FrailtyDiagnosis
      				where Global."Prevalence Period"(FrailtyDiagnosis) overlaps "Measurement Period"
      		)
      		or exists ( [Encounter: "Frailty Encounter"] FrailtyEncounter
      				where FrailtyEncounter.period overlaps "Measurement Period"
      		)
      		or exists ( [Observation: "Frailty Symptom"] FrailtySymptomObservation
      				where Global."Normalize Interval"(FrailtySymptomObservation.effective) overlaps "Measurement Period"
      		)

define "Inpatient Encounter with Advanced Illness":
  [Encounter: "Acute Inpatient"] InpatientEncounter
      		with [Condition: "Advanced Illness"] AdvancedIllnessDiagnosis
                  such that exists (
                      InpatientEncounter.diagnosis.condition EncounterDiagnosis
                          where EndsWith(EncounterDiagnosis.reference, AdvancedIllnessDiagnosis.id)
                  )
      			and InpatientEncounter.period starts 2 years or less on or before
      			end of "Measurement Period"
      // start here

define "Long Term Care Periods During Measurement Period":
  ( [Encounter: "Care Services in Long-Term Residential Facility"]
              		union [Encounter: "Nursing Facility Visit"] ) LongTermFacilityEncounter
              		where LongTermFacilityEncounter.period overlaps "Measurement Period"
              		return LongTermFacilityEncounter.period
              			intersect "Measurement Period"

define "Long Term Care Periods Longer Than 90 Consecutive Days":
  exists ( "Long Term Care Periods During Measurement Period" LongTermCareDuringMP
        where duration in days of LongTermCareDuringMP > 90
    )

define "Outpatient Encounters with Advanced Illness":
  ( [Encounter: "Outpatient"]
      		union [Encounter: "Observation"]
      		union [Encounter: "ED"]
      		union [Encounter: "Nonacute Inpatient"] ) OutpatientEncounter
      		 with [Condition: "Advanced Illness"] AdvancedIllnessDiagnosis
                  such that exists (
                      OutpatientEncounter.diagnosis.condition EncounterDiagnosis
                          where EndsWith(EncounterDiagnosis.reference, AdvancedIllnessDiagnosis.id)
                  )
                  and OutpatientEncounter.period starts 2 years or less on or before
      			end of "Measurement Period"

define function "CumulativeDays"(Intervals List<Interval<DateTime>> ):
  Sum((collapse Intervals)CollapsedInterval
  			return all duration in days of CollapsedInterval
  	)
ELM XML Content
Encoded data (134924 characters)
ELM JSON Content
Encoded data (249964 characters)
Generated using version 0.4.9 of the sample-content-ig Liquid templates