Quality Measure Implementation Guide
1.0.0 - STU 1

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