Quality Measure Implementation Guide
1.0.0 - STU 1

Quality Measure Implementation Guide - Downloaded Version null 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