Quality Measure Implementation Guide
2.0.0 - STU 2 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 2.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

Measure: EXM Ratio Measure (Experimental)

Official URL: http://example.org/fhir/measures/measure-ratio-exm Version: 2.0.0
Standards status: Informative Computable Name: EXMRatioMeasure
Other Identifiers: http://example.org/fhir/cqi/ecqm/Measure/Identifier/exm#EXMRatio-FHIR, OID:2.16.840.1.113883.4.642.40.61.29.10

Usage: Clinical Venue: EC

Copyright/Legal: Example Copyright Statement

An example FHIR-based publishable measure

Metadata
Title EXM Ratio Measure
Version 2.0.0
Identifier EXMRatio-FHIR
Identifier urn:oid:2.16.840.1.113883.4.642.40.61.29.10
Approval Date 2019-02-17
Last Review Date 2019-02-17
Experimental true
Use Context Clinical Venue = EC
Jurisdiction http://unstats.un.org/unsd/methods/m49/m49.htm#001
Topic Health Quality Measure Document
Steward (Publisher) HL7 International / Clinical Quality Information
Developer Example Measure Content Developer
Description

An example FHIR-based publishable measure

Purpose

This measure has been developed to support improvement in clinical care.

Copyright

Example Copyright Statement

Disclaimer

Example disclaimer

Measure Basis Encounter
Measure Scoring Ratio
Measure Scoring Unit http://unitsofmeasure.org#/1000.d
Improvement Notation Decreased score indicates improvement
Measure Type http://terminology.hl7.org/CodeSystem/measure-type#process
Rationale

The rationale of this measure is...

Guidance (Usage) Users of this measure should be aware of...
Contents Metadata
Contents
Measure Rates (Groups)
Supplemental Data
Measure Logic
Population Criteria
Logic Definitions
Terminology
Dependencies
Data Requirements
Measure Rates (Groups)
Measure Rate (Group) (ID: primary)
Initial Population ID: primary-exmratio-initial-population
Criteria: Initial Population
Denominator ID: primary-exmratio-denominator
Criteria: Denominator
Numerator ID: primary-exmratio-numerator
Criteria: Numerator
Measure Observation ID: primary-exmratio-denominator-observation
Criteria: Denominator Observation
Input population: denominator Aggregate method: sum
Measure Observation ID: primary-exmratio-numerator-observation
Criteria: Numerator Observation
Input population: numerator Aggregate method: sum
Supplemental Data Elements
Measure Logic
Primary Library EXMRatio - Example Ratio Measure Library
Population Criteria
Measure Rate (Group) (ID: primary)
Initial Population
define "Initial Population":
  "Qualifying Encounters"
Definition
Denominator
define "Denominator":
  "Initial Population"
Definition
Numerator
define "Numerator":
  "Initial Population"
Definition
Measure Observation
define function "Denominator Observation"(Encounter "Encounter"):
  duration in hours of Global.Hospitalization(Encounter) / 24
Definition
Measure Observation
define function "Numerator Observation"(Encounter "Encounter"):
  Count(
    "Falls with Major Injury" Falls
      where Global."Normalize Interval"(Falls.effective) during Encounter.period
  )
Definition
Logic Definitions
Logic Definition Library Name: EXMRatio
define "Qualifying Encounters":
  ["Encounter": "Inpatient"]
Logic Definition Library Name: EXMRatio
define "Initial Population":
  "Qualifying Encounters"
Logic Definition Library Name: EXMRatio
define "Numerator":
  "Initial Population"
Logic Definition Library Name: EXMRatio
define "Denominator":
  "Initial Population"
Logic Definition Library Name: EXMRatio
define "Falls with Major Injury":
  ["Observation": "Fall"]
Logic Definition Library Name: EXMRatio
define function "Denominator Observation"(Encounter "Encounter"):
  duration in hours of Global.Hospitalization(Encounter) / 24
Logic Definition Library Name: EXMRatio
define function "Numerator Observation"(Encounter "Encounter"):
  Count(
    "Falls with Major Injury" Falls
      where Global."Normalize Interval"(Falls.effective) during Encounter.period
  )
Logic Definition Library Name: MATGlobalCommonFunctions
define function "Hospitalization"(TheEncounter FHIR.Encounter):
	( "ED Visit"(TheEncounter) ) X
    return
        if X is null then TheEncounter.period
        else Interval[start of FHIRHelpers.ToInterval(X.period), end of FHIRHelpers.ToInterval(TheEncounter.period)]
Logic Definition Library Name: MATGlobalCommonFunctions
define function "ED Visit"(TheEncounter FHIR.Encounter):
    singleton from (
        [Encounter: "Emergency Department Visit"] EDVisit
            where EDVisit.status = 'finished'
                and EDVisit.period ends 1 hour or less on or before start of FHIRHelpers.ToInterval(TheEncounter.period)
    )
Logic Definition Library Name: MATGlobalCommonFunctions
/*
*
*    CQFMeasures Common Logic
*
*/

define function "Normalize Interval"(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, '1', 'Error', 'Cannot compute a single interval from a Timing type')
    when choice is FHIR.string then
      Message(null as Interval<DateTime>, true, '1', 'Error', 'Cannot compute an interval from a String value')
		else
			null as Interval<DateTime>
	end
Logic Definition Library Name: FHIRHelpers
define function ToString(value EncounterStatus): 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 dateTime): value.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
Terminology
Value Set Description: Value set Inpatient
Resource: http://example.org/fhir/ValueSet/inpatient
Canonical URL: http://example.org/fhir/ValueSet/inpatient
Value Set Description: Value set Emergency Department Visit
Resource: Emergency Department Visit
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292
Value Set Description: Value set Fall
Resource: http://example.org/fhir/ValueSet/fall
Canonical URL: http://example.org/fhir/ValueSet/fall
Dependencies
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 Global
Resource: MAT Global Common Functions FHIR Library
Canonical URL: http://hl7.org/fhir/uv/cqm/Library/MATGlobalCommonFunctions
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
Data Requirements
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Emergency Department Visit
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period
Code Filter(s):
Path: type
ValueSet: http://example.org/fhir/ValueSet/inpatient
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, effective
Code Filter(s):
Path: code
ValueSet: http://example.org/fhir/ValueSet/fall
Data Requirement Type: Patient
Profile(s): Patient
Generated using version 0.5.6 of the sample-content-ig Liquid templates