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: TSC Component Library (Experimental)

Official URL: http://hl7.org/fhir/uv/cqm/Library/TSCComponent Version: 0.0.001
Standards status: Informative Computable Name: TSCComponent
Other Identifiers: OID:2.16.840.1.113883.4.642.40.61.28.34

Preventive Care and Screening: Tobacco Use: Screening and Cessation Intervention

Metadata
Title TSC Component Library
Version 0.0.001
Identifier urn:oid:2.16.840.1.113883.4.642.40.61.28.34
Experimental true
Jurisdiction Global (Whole world)
Steward (Publisher) HL7 International / Clinical Quality Information
Description

Preventive Care and Screening: Tobacco Use: Screening and Cessation Intervention

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: SDE Ethnicity
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Coding
Parameter Name: SDE Payer
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Resource
Parameter Name: SDE Race
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Coding
Parameter Name: SDE Sex
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Coding
Parameter Name: Preventive Visit During Measurement Period
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
Parameter Name: Office Based Visit During Measurement Period
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
Parameter Name: Initial Population
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Denominator 1
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Denominator 3
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Medical Reason for Not Screening for Tobacco Use
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Observation
Parameter Name: Medical Reason for Not Ordering Tobacco Cessation Pharmacotherapy
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: MedicationRequest
Parameter Name: Medical Reason for Not Counseling Tobacco User
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Procedure
Parameter Name: Tobacco Cessation Pharmacotherapy Ordered
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: MedicationRequest
Parameter Name: Tobacco Cessation Counseling Given
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
Parameter Name: Numerator 2
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Has Limited Life Expectancy
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Denominator Exceptions 1
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Denominator Exceptions 2
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Denominator Exceptions 3
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Most Recent Tobacco Use Screening Indicates Tobacco Non User
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Observation
Parameter Name: Most Recent Tobacco Use Screening Indicates Tobacco User
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Observation
Parameter Name: Denominator 2
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Numerator 1
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Numerator 3
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Data Requirement Type: Patient
Profile(s): Patient
Must Support Elements: birthDate
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Annual Wellness Visit
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
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, period, status
Code Filter(s):
Path: type
ValueSet: Preventive Care Services Group Counseling
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Preventive Care Services Other
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Preventive Care Services Individual Counseling
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
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, period, status
Code Filter(s):
Path: type
Code(s): Current Procedural Terminology (CPT®) 96158: Health behavior intervention, individual, face-to-face; initial 30 minutes
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
Code(s): Current Procedural Terminology (CPT®) 96156: Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Home Healthcare Services
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Occupational Therapy Evaluation
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Office Visit
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Ophthalmological Services
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Physical Therapy Evaluation
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Psych Visit Diagnostic Evaluation
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Psych Visit Psychotherapy
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Psychoanalysis
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Speech and Hearing Evaluation
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Tobacco Use Cessation Counseling
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, issued, status, effective, value
Code Filter(s):
Path: code
ValueSet: Tobacco Use Screening
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest
Must Support Elements: medication, authoredOn, status, doNotPerform, statusReason
Code Filter(s):
Path: medication
ValueSet: Tobacco Use Cessation Pharmacotherapy
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest
Must Support Elements: medication.reference, authoredOn, status, doNotPerform, statusReason
Data Requirement Type: Medication
Profile(s): Medication
Must Support Elements: id, code
Data Requirement Type: Procedure
Profile(s): Procedure
Must Support Elements: code, performed, status, statusReason
Code Filter(s):
Path: code
ValueSet: Tobacco Use Cessation Counseling
Data Requirement Type: Condition
Profile(s): Condition
Must Support Elements: clinicalStatus
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 TSCComponent version '0.0.001'

using FHIR version '4.0.1'

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

include SupplementalDataElements version '2.0.000' called SDE
include MATGlobalCommonFunctions version '5.0.000' called Global

codesystem "LOINC": 'http://loinc.org'
codesystem "CPT": 'http://www.ama-assn.org/go/cpt'

valueset "Annual Wellness Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240'
valueset "Face-to-Face Interaction": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1048'
valueset "Home Healthcare Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016'
valueset "Limited Life Expectancy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1259'
valueset "Medical Reason": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1007'
valueset "Occupational Therapy Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1011'
valueset "Office Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset "Ophthalmological Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1285'
valueset "Physical Therapy Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1022'
valueset "Preventive Care Services - Established Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025'
valueset "Preventive Care Services - Group Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1027'
valueset "Preventive Care Services - Other": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1030'
valueset "Preventive Care Services-Individual Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1026'
valueset "Preventive Care Services-Initial Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023'
valueset "Psych Visit - Diagnostic Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1492'
valueset "Psych Visit - Psychotherapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1496'
valueset "Psychoanalysis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1141'
valueset "Speech and Hearing Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1530'
valueset "Tobacco Non-User": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1189'
valueset "Tobacco Use Cessation Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.509'
valueset "Tobacco Use Cessation Pharmacotherapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1190'
valueset "Tobacco Use Screening": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1278'
valueset "Tobacco User": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1170'

code "Birth date": '21112-8' from "LOINC" display 'Birth date'
code "Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)": '96156' from "CPT" display 'Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)'
code "Health behavior intervention, individual, face-to-face; initial 30 minutes": '96158' from "CPT" display 'Health behavior intervention, individual, face-to-face; initial 30 minutes'

parameter "Measurement Period" Interval<DateTime>

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 "Preventive Visit During Measurement Period":
  ( ["Encounter": "Annual Wellness Visit"]
      union ["Encounter": "Preventive Care Services - Established Office Visit, 18 and Up"]
      union ["Encounter": "Preventive Care Services - Group Counseling"]
      union ["Encounter": "Preventive Care Services - Other"]
      union ["Encounter": "Preventive Care Services-Individual Counseling"]
      union ["Encounter": "Preventive Care Services-Initial Office Visit, 18 and Up"] ) PreventiveEncounter
      where PreventiveEncounter.period during "Measurement Period"
        and PreventiveEncounter.status = 'finished'

define "Denominator 1":
  "Initial Population"

define "Denominator 3":
  "Initial Population"

define "Initial Population":
  exists ( ["Patient"] BirthDate
        where Global."CalendarAgeInYearsAt" ( FHIRHelpers.ToDate ( BirthDate.birthDate ), start of "Measurement Period" ) >= 18
    )
      and ( Count("Office Based Visit During Measurement Period")>= 2
          or exists "Preventive Visit During Measurement Period"
      )

define "Medical Reason for Not Screening for Tobacco Use":
  ["Observation": "Tobacco Use Screening"] NoTobaccoUseScreening
      where NoTobaccoUseScreening.issued during "Measurement Period"
        and "Not Done"(NoTobaccoUseScreening)
        and "Not Done Reason in Medical Reason"(NoTobaccoUseScreening)
        and NoTobaccoUseScreening.status = 'final'

define "Medical Reason for Not Ordering Tobacco Cessation Pharmacotherapy":
  ["MedicationRequest": "Tobacco Use Cessation Pharmacotherapy"] NoCessationPharmacotherapyOrdered
      where NoCessationPharmacotherapyOrdered.authoredOn during "Measurement Period"
        and NoCessationPharmacotherapyOrdered.status = 'completed'
        and ( ( "Not Done"(NoCessationPharmacotherapyOrdered)
              and "Not Done Reason in Medical Reason"(NoCessationPharmacotherapyOrdered)
          )
            or ( NoCessationPharmacotherapyOrdered.doNotPerform = true
                and NoCessationPharmacotherapyOrdered.statusReason in "Medical Reason"
            )
        )

define "Medical Reason for Not Counseling Tobacco User":
  ["Procedure": "Tobacco Use Cessation Counseling"] NoTobaccoCessationCounseling
      where Global."Normalize Interval" ( NoTobaccoCessationCounseling.performed ) starts during "Measurement Period"
        and ( ( NoTobaccoCessationCounseling.status = 'not-done'
              and NoTobaccoCessationCounseling.statusReason in "Medical Reason"
          )
            or ( "Not Done"(NoTobaccoCessationCounseling)
                and "Not Done Reason in Medical Reason"(NoTobaccoCessationCounseling)
            )
        )

define "Tobacco Cessation Pharmacotherapy Ordered":
  ["MedicationRequest": "Tobacco Use Cessation Pharmacotherapy"] CessationPharmacotherapyOrdered
      where CessationPharmacotherapyOrdered.authoredOn during "Measurement Period"
        and CessationPharmacotherapyOrdered.status = 'active'

// MedicationStatement is not available in R5, known publication issue
//define "Active Pharmacotherapy for Tobacco Cessation":
//  ["MedicationStatement": "Tobacco Use Cessation Pharmacotherapy"] TakingCessationPharmacotherapy
//      where Global."Normalize Interval" ( TakingCessationPharmacotherapy.effective ) overlaps after "Measurement Period"
//        and TakingCessationPharmacotherapy.status in { 'active', 'completed' }

define "Tobacco Cessation Counseling Given":
  ["Encounter": "Tobacco Use Cessation Counseling"] TobaccoCessationCounseling
      where TobaccoCessationCounseling.period during "Measurement Period"
        and TobaccoCessationCounseling.status = 'finished'

define "Numerator 2":
  exists "Tobacco Cessation Counseling Given"
      or exists "Tobacco Cessation Pharmacotherapy Ordered"
      //or exists "Active Pharmacotherapy for Tobacco Cessation"

define "Has Limited Life Expectancy":
  exists ( ["Condition"] LimitedLifeExpectancy
        where Global."Prevalence Period" ( LimitedLifeExpectancy ) overlaps after "Measurement Period"
          and LimitedLifeExpectancy.clinicalStatus ~ ToConcept(Global."active")
    )

define "Denominator Exceptions 1":
  exists "Medical Reason for Not Screening for Tobacco Use"
      or "Has Limited Life Expectancy"

define "Denominator Exceptions 2":
  exists "Medical Reason for Not Counseling Tobacco User"
      or exists "Medical Reason for Not Ordering Tobacco Cessation Pharmacotherapy"
      or "Has Limited Life Expectancy"

define "Denominator Exceptions 3":
  exists "Medical Reason for Not Screening for Tobacco Use"
      or exists "Medical Reason for Not Counseling Tobacco User"
      or exists "Medical Reason for Not Ordering Tobacco Cessation Pharmacotherapy"
      or "Has Limited Life Expectancy"

define "Office Based Visit During Measurement Period":
  ( ["Encounter": "Health behavior intervention, individual, face-to-face; initial 30 minutes"]
      union ["Encounter": "Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)"]
      union ["Encounter": "Home Healthcare Services"]
      union ["Encounter": "Occupational Therapy Evaluation"]
      union ["Encounter": "Office Visit"]
      union ["Encounter": "Ophthalmological Services"]
      union ["Encounter": "Physical Therapy Evaluation"]
      union ["Encounter": "Psych Visit - Diagnostic Evaluation"]
      union ["Encounter": "Psych Visit - Psychotherapy"]
      union ["Encounter": "Psychoanalysis"]
      union ["Encounter": "Speech and Hearing Evaluation"] ) OfficeBasedEncounter
      where OfficeBasedEncounter.period during "Measurement Period"
        and OfficeBasedEncounter.status = 'finished'

define "Most Recent Tobacco Use Screening Indicates Tobacco Non User":
  ( Last(["Observation": "Tobacco Use Screening"] TobaccoUseScreening
        where Global."Normalize Interval"(TobaccoUseScreening.effective)overlaps "Measurement Period"
        sort by start of Global."Normalize Interval"(effective)
    )) MostRecentTobaccoUseScreening
      where MostRecentTobaccoUseScreening.value in "Tobacco Non-User"

define "Most Recent Tobacco Use Screening Indicates Tobacco User":
  ( Last(["Observation": "Tobacco Use Screening"] TobaccoUseScreening
        where Global."Normalize Interval"(TobaccoUseScreening.effective)overlaps "Measurement Period"
        sort by start of Global."Normalize Interval"(effective)
    )) MostRecentTobaccoUseScreening
      where MostRecentTobaccoUseScreening.value in "Tobacco User"

define "Denominator 2":
  "Initial Population"
      and "Most Recent Tobacco Use Screening Indicates Tobacco User" is not null

define "Numerator 1":
  "Most Recent Tobacco Use Screening Indicates Tobacco Non User" is not null
      or "Most Recent Tobacco Use Screening Indicates Tobacco User" is not null

define "Numerator 3":
  "Most Recent Tobacco Use Screening Indicates Tobacco Non User" is not null
      or ( "Most Recent Tobacco Use Screening Indicates Tobacco User" is not null
          and ( exists "Tobacco Cessation Counseling Given"
              or exists "Tobacco Cessation Pharmacotherapy Ordered"
              //or exists "Active Pharmacotherapy for Tobacco Cessation"
          )
      )

define function "Not Done"(res DomainResource ):
  if ( res R
      where ( "GetModiferExtension"(R, 'http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-notDone').value = true )
  ) is not null then true
    else false

define function "Not Done Reason in Medical Reason"(res DomainResource ):
  if ( res R
      where "GetModiferExtension"(R, 'http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-notDoneReason').value in "Medical Reason"
  ) is not null then true
    else false

define function "GetModifierExtensions"(res DomainResource, url String ):
  res.modifierExtension E
    where E.url = ( url )
    return E

define function "GetModiferExtension"(res DomainResource, url String ):
  singleton from "GetModifierExtensions"(res, url)
ELM XML Content
Encoded data (251988 characters)
ELM JSON Content
Encoded data (461596 characters)
Generated using version 0.4.9 of the sample-content-ig Liquid templates