| TSC Component Library |
| 0.0.001 |
| urn:oid:2.16.840.1.113883.4.642.40.61.28.34 |
| true |
| Global (Whole world) |
| HL7 International / Clinical Quality Information |
Preventive Care and Screening: Tobacco Use: Screening and Cessation Intervention
|
| Logic Library |
Name: Measurement Period
Use: In
Min Cardinality: 0
Max Cardinality: 1
Type: Period
|
Name: Patient
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Patient
|
Name: SDE Ethnicity
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Coding
|
Name: SDE Payer
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Resource
|
Name: SDE Race
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Coding
|
Name: SDE Sex
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Coding
|
Name: Preventive Visit During Measurement Period
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
|
Name: Office Based Visit During Measurement Period
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
|
Name: Initial Population
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Denominator 1
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Denominator 3
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Medical Reason for Not Screening for Tobacco Use
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Observation
|
Name: Medical Reason for Not Ordering Tobacco Cessation Pharmacotherapy
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: MedicationRequest
|
Name: Medical Reason for Not Counseling Tobacco User
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Procedure
|
Name: Tobacco Cessation Pharmacotherapy Ordered
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: MedicationRequest
|
Name: Tobacco Cessation Counseling Given
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: Encounter
|
Name: Numerator 2
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Has Limited Life Expectancy
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Denominator Exceptions 1
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Denominator Exceptions 2
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Denominator Exceptions 3
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Most Recent Tobacco Use Screening Indicates Tobacco Non User
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Observation
|
Name: Most Recent Tobacco Use Screening Indicates Tobacco User
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Observation
|
Name: Denominator 2
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Numerator 1
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Name: Numerator 3
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
|
Type: Patient
Profile(s):
Patient
Must Support Elements: birthDate
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Annual Wellness Visit
|
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
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Preventive Care Services Group Counseling
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Preventive Care Services Other
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Preventive Care Services Individual Counseling
|
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
|
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
|
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)
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Home Healthcare Services
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Occupational Therapy Evaluation
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Office Visit
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Ophthalmological Services
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Physical Therapy Evaluation
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Psych Visit Diagnostic Evaluation
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Psych Visit Psychotherapy
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Psychoanalysis
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Speech and Hearing Evaluation
|
Type: Encounter
Profile(s):
Encounter
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Tobacco Use Cessation Counseling
|
Type: Observation
Profile(s):
Observation
Must Support Elements: code, issued, status, effective, value
Code Filter(s):
Path: code
ValueSet: Tobacco Use Screening
|
Type: MedicationRequest
Profile(s):
MedicationRequest
Must Support Elements: medication, authoredOn, status, doNotPerform, statusReason
Code Filter(s):
Path: medication
ValueSet: Tobacco Use Cessation Pharmacotherapy
|
Type: MedicationRequest
Profile(s):
MedicationRequest
Must Support Elements: medication.reference, authoredOn, status, doNotPerform, statusReason
|
Type: Medication
Profile(s):
Medication
Must Support Elements: id, code
|
Type: Procedure
Profile(s):
Procedure
Must Support Elements: code, performed, status, statusReason
Code Filter(s):
Path: code
ValueSet: Tobacco Use Cessation Counseling
|
Type: Condition
Profile(s):
Condition
Must Support Elements: clinicalStatus
|
/*
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)
|
Encoded data (251988 characters)
|
Encoded data (461596 characters)
|