This page is part of the Da Vinci Data Exchange for Quality Measures (DEQM) FHIR IG (v3.0.0: STU 3) based on FHIR R4. The current version which supercedes this version is 3.1.0. For a full list of available versions, see the Directory of published versions
Data Requirements
Contents
application/elm+xml
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="urn:hl7-org:elm:r1" xmlns:t="urn:hl7-org:elm-types:r1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fhir="http://hl7.org/fhir" xmlns:qdm43="urn:healthit-gov:qdm:v4_3" xmlns:qdm53="urn:healthit-gov:qdm:v5_3" xmlns:a="urn:hl7-org:cql-annotations:r1">
<identifier id="EXM130_FHIR4" version="7.2.000"/>
<schemaIdentifier id="urn:hl7-org:elm" version="r1"/>
<usings>
<def localIdentifier="System" uri="urn:hl7-org:elm-types:r1"/>
<def localIdentifier="FHIR" uri="http://hl7.org/fhir" version="4.0.0"/>
</usings>
<includes>
<def localIdentifier="FHIRHelpers" path="FHIRHelpers" version="4.0.0"/>
<def localIdentifier="Hospice" path="Hospice_FHIR4" version="1.0.000"/>
<def localIdentifier="AdultOutpatientEncounters" path="AdultOutpatientEncounters_FHIR4" version="1.1.000"/>
<def localIdentifier="Global" path="MATGlobalCommonFunctions_FHIR4" version="4.0.000"/>
<def localIdentifier="SDE" path="SupplementalDataElements_FHIR4" version="1.0.0"/>
</includes>
<parameters>
<def name="Measurement Period" accessLevel="Public">
<default lowClosed="true" highClosed="false" xsi:type="Interval">
<low xsi:type="DateTime">
<year valueType="t:Integer" value="2019" xsi:type="Literal"/>
<month valueType="t:Integer" value="1" xsi:type="Literal"/>
<day valueType="t:Integer" value="1" xsi:type="Literal"/>
<hour valueType="t:Integer" value="0" xsi:type="Literal"/>
<minute valueType="t:Integer" value="0" xsi:type="Literal"/>
<second valueType="t:Integer" value="0" xsi:type="Literal"/>
<millisecond valueType="t:Integer" value="0" xsi:type="Literal"/>
</low>
<high xsi:type="DateTime">
<year valueType="t:Integer" value="2020" xsi:type="Literal"/>
<month valueType="t:Integer" value="1" xsi:type="Literal"/>
<day valueType="t:Integer" value="1" xsi:type="Literal"/>
<hour valueType="t:Integer" value="0" xsi:type="Literal"/>
<minute valueType="t:Integer" value="0" xsi:type="Literal"/>
<second valueType="t:Integer" value="0" xsi:type="Literal"/>
<millisecond valueType="t:Integer" value="0" xsi:type="Literal"/>
</high>
</default>
<parameterTypeSpecifier xsi:type="IntervalTypeSpecifier">
<pointType name="t:DateTime" xsi:type="NamedTypeSpecifier"/>
</parameterTypeSpecifier>
</def>
</parameters>
<valueSets>
<def name="ONC Administrative Sex" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1" accessLevel="Public"/>
<def name="Race" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.836" accessLevel="Public"/>
<def name="Ethnicity" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837" accessLevel="Public"/>
<def name="Payer" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591" accessLevel="Public"/>
<def name="Colonoscopy" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1020" accessLevel="Public"/>
<def name="Fecal Occult Blood Test (FOBT)" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1011" accessLevel="Public"/>
<def name="Flexible Sigmoidoscopy" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1010" accessLevel="Public"/>
<def name="Malignant Neoplasm of Colon" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1001" accessLevel="Public"/>
<def name="Total Colectomy" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1019" accessLevel="Public"/>
<def name="FIT DNA" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1039" accessLevel="Public"/>
<def name="CT Colonography" id="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1038" accessLevel="Public"/>
</valueSets>
<statements>
<def name="Patient" context="Patient">
<expression xsi:type="SingletonFrom">
<operand dataType="fhir:Patient" xsi:type="Retrieve"/>
</expression>
</def>
<def name="SDE Ethnicity" context="Patient" accessLevel="Public">
<expression name="SDE Ethnicity" libraryName="SDE" xsi:type="ExpressionRef"/>
</def>
<def name="SDE Payer" context="Patient" accessLevel="Public">
<expression name="SDE Payer" libraryName="SDE" xsi:type="ExpressionRef"/>
</def>
<def name="SDE Race" context="Patient" accessLevel="Public">
<expression name="SDE Race" libraryName="SDE" xsi:type="ExpressionRef"/>
</def>
<def name="SDE Sex" context="Patient" accessLevel="Public">
<expression name="SDE Sex" libraryName="SDE" xsi:type="ExpressionRef"/>
</def>
<def name="Denominator" context="Patient" accessLevel="Public">
<expression valueType="t:Boolean" value="true" xsi:type="Literal"/>
</def>
<def name="Flexible Sigmoidoscopy Performed" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="FlexibleSigmoidoscopy">
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
<codes name="Flexible Sigmoidoscopy" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="And">
<operand xsi:type="Equal">
<operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="status" scope="FlexibleSigmoidoscopy" xsi:type="Property"/>
</operand>
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
</operand>
<operand xsi:type="In">
<operand xsi:type="End">
<operand name="Normalize Interval" libraryName="Global" xsi:type="FunctionRef">
<operand path="performed" scope="FlexibleSigmoidoscopy" xsi:type="Property"/>
</operand>
</operand>
<operand lowClosed="true" highClosed="true" xsi:type="Interval">
<low xsi:type="Subtract">
<operand xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
<operand value="5" unit="years" xsi:type="Quantity"/>
</low>
<high xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</high>
</operand>
</operand>
</where>
</expression>
</def>
<def name="CT Colonography Performed" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="Colonography">
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
<codes name="CT Colonography" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="And">
<operand xsi:type="Equal">
<operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="status" scope="Colonography" xsi:type="Property"/>
</operand>
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
</operand>
<operand xsi:type="In">
<operand xsi:type="End">
<operand name="Normalize Interval" libraryName="Global" xsi:type="FunctionRef">
<operand path="performed" scope="Colonography" xsi:type="Property"/>
</operand>
</operand>
<operand lowClosed="true" highClosed="true" xsi:type="Interval">
<low xsi:type="Subtract">
<operand xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
<operand value="5" unit="years" xsi:type="Quantity"/>
</low>
<high xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</high>
</operand>
</operand>
</where>
</expression>
</def>
<def name="Total Colectomy Performed" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="Colectomy">
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
<codes name="Total Colectomy" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="And">
<operand xsi:type="Equal">
<operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="status" scope="Colectomy" xsi:type="Property"/>
</operand>
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
</operand>
<operand xsi:type="SameOrBefore">
<operand xsi:type="Start">
<operand name="Normalize Interval" libraryName="Global" xsi:type="FunctionRef">
<operand path="performed" scope="Colectomy" xsi:type="Property"/>
</operand>
</operand>
<operand xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
</operand>
</where>
</expression>
</def>
<def name="Malignant Neoplasm Ever" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="ColorectalCancer">
<expression dataType="fhir:Condition" codeProperty="code" xsi:type="Retrieve">
<codes name="Malignant Neoplasm of Colon" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="SameOrBefore">
<operand xsi:type="Start">
<operand name="Normalize Onset" libraryName="Global" xsi:type="FunctionRef">
<operand path="onset" scope="ColorectalCancer" xsi:type="Property"/>
</operand>
</operand>
<operand xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
</where>
</expression>
</def>
<def name="Fecal Occult Blood Test Performed" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="FecalOccultResult">
<expression dataType="fhir:Observation" codeProperty="code" xsi:type="Retrieve">
<codes name="Fecal Occult Blood Test (FOBT)" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="And">
<operand xsi:type="And">
<operand xsi:type="In">
<operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="status" scope="FecalOccultResult" xsi:type="Property"/>
</operand>
<operand xsi:type="List">
<element valueType="t:String" value="final" xsi:type="Literal"/>
<element valueType="t:String" value="amended" xsi:type="Literal"/>
<element valueType="t:String" value="corrected" xsi:type="Literal"/>
<element valueType="t:String" value="preliminary" xsi:type="Literal"/>
</operand>
</operand>
<operand xsi:type="Not">
<operand xsi:type="IsNull">
<operand path="value" scope="FecalOccultResult" xsi:type="Property"/>
</operand>
</operand>
</operand>
<operand precision="Day" xsi:type="IncludedIn">
<operand name="Normalize Interval" libraryName="Global" xsi:type="FunctionRef">
<operand path="effective" scope="FecalOccultResult" xsi:type="Property"/>
</operand>
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
</where>
</expression>
</def>
<def name="Fecal Immunochemical Test DNA" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="FitDNA">
<expression dataType="fhir:Observation" codeProperty="code" xsi:type="Retrieve">
<codes name="FIT DNA" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="And">
<operand xsi:type="And">
<operand xsi:type="In">
<operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="status" scope="FitDNA" xsi:type="Property"/>
</operand>
<operand xsi:type="List">
<element valueType="t:String" value="final" xsi:type="Literal"/>
<element valueType="t:String" value="amended" xsi:type="Literal"/>
<element valueType="t:String" value="corrected" xsi:type="Literal"/>
<element valueType="t:String" value="preliminary" xsi:type="Literal"/>
</operand>
</operand>
<operand xsi:type="Not">
<operand xsi:type="IsNull">
<operand path="value" scope="FitDNA" xsi:type="Property"/>
</operand>
</operand>
</operand>
<operand precision="Day" xsi:type="In">
<operand xsi:type="End">
<operand name="Normalize Interval" libraryName="Global" xsi:type="FunctionRef">
<operand path="effective" scope="FitDNA" xsi:type="Property"/>
</operand>
</operand>
<operand lowClosed="true" highClosed="true" xsi:type="Interval">
<low xsi:type="Subtract">
<operand xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
<operand value="3" unit="years" xsi:type="Quantity"/>
</low>
<high xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</high>
</operand>
</operand>
</where>
</expression>
</def>
<def name="Colonoscopy Performed" context="Patient" accessLevel="Public">
<expression xsi:type="Query">
<source alias="Colonoscopy">
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
<codes name="Colonoscopy" xsi:type="ValueSetRef"/>
</expression>
</source>
<where xsi:type="And">
<operand xsi:type="Equal">
<operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="status" scope="Colonoscopy" xsi:type="Property"/>
</operand>
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
</operand>
<operand xsi:type="In">
<operand xsi:type="End">
<operand name="Normalize Onset" libraryName="Global" xsi:type="FunctionRef">
<operand path="performed" scope="Colonoscopy" xsi:type="Property"/>
</operand>
</operand>
<operand lowClosed="true" highClosed="true" xsi:type="Interval">
<low xsi:type="Subtract">
<operand xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
<operand value="10" unit="years" xsi:type="Quantity"/>
</low>
<high xsi:type="End">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</high>
</operand>
</operand>
</where>
</expression>
</def>
<def name="Numerator" context="Patient" accessLevel="Public">
<expression xsi:type="Or">
<operand xsi:type="Or">
<operand xsi:type="Or">
<operand xsi:type="Or">
<operand xsi:type="Exists">
<operand name="Colonoscopy Performed" xsi:type="ExpressionRef"/>
</operand>
<operand xsi:type="Exists">
<operand name="Fecal Occult Blood Test Performed" xsi:type="ExpressionRef"/>
</operand>
</operand>
<operand xsi:type="Exists">
<operand name="Flexible Sigmoidoscopy Performed" xsi:type="ExpressionRef"/>
</operand>
</operand>
<operand xsi:type="Exists">
<operand name="Fecal Immunochemical Test DNA" xsi:type="ExpressionRef"/>
</operand>
</operand>
<operand xsi:type="Exists">
<operand name="CT Colonography Performed" xsi:type="ExpressionRef"/>
</operand>
</expression>
</def>
<def name="Denominator Exclusion" context="Patient" accessLevel="Public">
<expression xsi:type="Or">
<operand xsi:type="Or">
<operand name="Has Hospice" libraryName="Hospice" xsi:type="FunctionRef">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
<operand xsi:type="Exists">
<operand name="Malignant Neoplasm Ever" xsi:type="ExpressionRef"/>
</operand>
</operand>
<operand xsi:type="Exists">
<operand name="Total Colectomy Performed" xsi:type="ExpressionRef"/>
</operand>
</expression>
</def>
<def name="Initial Population" context="Patient" accessLevel="Public">
<expression xsi:type="And">
<operand xsi:type="In">
<operand name="CalendarAgeInYearsAt" libraryName="Global" xsi:type="FunctionRef">
<operand xsi:type="ToDateTime">
<operand name="ToDate" libraryName="FHIRHelpers" xsi:type="FunctionRef">
<operand path="birthDate" xsi:type="Property">
<source name="Patient" xsi:type="ExpressionRef"/>
</operand>
</operand>
</operand>
<operand xsi:type="Start">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
</operand>
<operand lowClosed="true" highClosed="true" xsi:type="Interval">
<low valueType="t:Integer" value="50" xsi:type="Literal"/>
<high valueType="t:Integer" value="75" xsi:type="Literal"/>
</operand>
</operand>
<operand xsi:type="Exists">
<operand name="Qualifying Encounters" libraryName="AdultOutpatientEncounters" xsi:type="FunctionRef">
<operand name="Measurement Period" xsi:type="ParameterRef"/>
</operand>
</operand>
</expression>
</def>
</statements>
</library>
text/cql
library EXM130_FHIR4 version '7.2.000'
/*
Based on CMS130v7 - Colorectal Cancer Screening
*/
/*
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.
*/
using FHIR version '4.0.0'
include FHIRHelpers version '4.0.0' called FHIRHelpers
include Hospice_FHIR4 version '1.0.000' called Hospice
include AdultOutpatientEncounters_FHIR4 version '1.1.000' called AdultOutpatientEncounters
include MATGlobalCommonFunctions_FHIR4 version '4.0.000' called Global
include SupplementalDataElements_FHIR4 version '1.0.0' called SDE
valueset "ONC Administrative Sex": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1'
valueset "Race": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.836'
valueset "Ethnicity": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837'
valueset "Payer": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591'
valueset "Colonoscopy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1020'
valueset "Fecal Occult Blood Test (FOBT)": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1011'
valueset "Flexible Sigmoidoscopy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1010'
valueset "Malignant Neoplasm of Colon": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1001'
valueset "Total Colectomy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1019'
valueset "FIT DNA": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1039'
valueset "CT Colonography": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1038'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2019-01-01T00:00:00.0, @2020-01-01T00:00:00.0)
context Patient
define "SDE Ethnicity":
SDE."SDE Ethnicity"
define "SDE Payer":
SDE."SDE Payer"
define "SDE Race":
SDE."SDE Race"
define "SDE Sex":
SDE."SDE Sex"
define "Denominator":
true
define "Flexible Sigmoidoscopy Performed":
[Procedure: "Flexible Sigmoidoscopy"] FlexibleSigmoidoscopy
where FlexibleSigmoidoscopy.status = 'completed'
and Global."Normalize Interval"(FlexibleSigmoidoscopy.performed) ends 5 years or less on or before end of "Measurement Period"
define "CT Colonography Performed":
[Procedure: "CT Colonography"] Colonography
where Colonography.status = 'completed'
and Global."Normalize Interval"(Colonography.performed) ends 5 years or less on or before end of "Measurement Period"
define "Total Colectomy Performed":
[Procedure: "Total Colectomy"] Colectomy
where Colectomy.status = 'completed'
and Global."Normalize Interval"(Colectomy.performed) starts on or before end of "Measurement Period"
define "Malignant Neoplasm Ever":
[Condition: "Malignant Neoplasm of Colon"] ColorectalCancer
where Global."Normalize Onset"(ColorectalCancer.onset) starts on or before end of "Measurement Period"
define "Fecal Occult Blood Test Performed":
[Observation: "Fecal Occult Blood Test (FOBT)"] FecalOccultResult
where FecalOccultResult.status in {'final', 'amended', 'corrected', 'preliminary'}
and FecalOccultResult.value is not null
and Global."Normalize Interval"(FecalOccultResult.effective) during day of "Measurement Period"
define "Fecal Immunochemical Test DNA":
[Observation: "FIT DNA"] FitDNA
where FitDNA.status in {'final', 'amended', 'corrected', 'preliminary'}
and FitDNA.value is not null
and Global."Normalize Interval"(FitDNA.effective) occurs 3 years or less on or before day of end of "Measurement Period"
define "Colonoscopy Performed":
[Procedure: "Colonoscopy"] Colonoscopy
where Colonoscopy.status = 'completed'
and Global."Normalize Onset"(Colonoscopy.performed) ends 10 years or less on or before end of "Measurement Period"
define "Numerator":
exists "Colonoscopy Performed"
or exists "Fecal Occult Blood Test Performed"
or exists "Flexible Sigmoidoscopy Performed"
or exists "Fecal Immunochemical Test DNA"
or exists "CT Colonography Performed"
define "Denominator Exclusion":
Hospice."Has Hospice"("Measurement Period")
or exists "Malignant Neoplasm Ever"
or exists "Total Colectomy Performed"
define "Initial Population":
Global."CalendarAgeInYearsAt"(FHIRHelpers.ToDate(Patient.birthDate), start of "Measurement Period") in Interval[50, 75]
and exists AdultOutpatientEncounters."Qualifying Encounters"("Measurement Period")