Quality Measure Implementation Guide
1.0.0 - STU 1

Quality Measure Implementation Guide - Downloaded Version null See the Directory of published versions

## Library: HBP Component Library (Experimental)

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

Preventive Care and Screening: Screening for High Blood Pressure and Follow-Up Documented

Metadata
Title | HBP Component Library
Version | 0.0.001
Identifier | urn:oid:2.16.840.1.113883.4.642.40.61.28.23
Experimental | true
Jurisdiction | Global (Whole world)
Steward (Publisher) | HL7 International / Clinical Quality Information
Description | Preventive Care and Screening: Screening for High Blood Pressure and Follow-Up Documented
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: Qualifying Encounter During Measurement Period Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with High Blood Pressure Reading Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with High Blood Pressure Reading Within Year Prior Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Second Hypertensive Reading Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Normal Blood Pressure Reading Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Prehypertensive Blood Pressure Reading Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Intervention for Hypertension Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Follow Up Within One Year Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Referral to Alternate Provider for High Blood Pressure Reading Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with First Hypertensive Reading Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Follow Up Within 4 Weeks Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Laboratory Test for Hypertension Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Electrocardiogram for Hypertension Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Hypertension Medication Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Numerator Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Initial Population Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Order for Hypertension Follow Up Declined by Patient Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Encounter with Medical Reason for Not Obtaining or Patient Declined Blood Pressure Measurement Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Denominator Exceptions Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Denominator Exclusions Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Parameter | Name: Denominator Use: Out Min Cardinality: 0 Max Cardinality: * Type: Encounter
Data Requirement | Type: Patient Profile(s): Patient Must Support Elements: birthDate
Data Requirement | Type: Encounter Profile(s): Encounter Must Support Elements: type, period Code Filter(s): Path: type ValueSet: Encounter to Screen for Blood Pressure
Data Requirement | Type: Observation Profile(s): Observation Must Support Elements: code, effective, status, value Code Filter(s): Path: code Code(s): LOINC 8480-6: Systolic blood pressure
Data Requirement | Type: Observation Profile(s): Observation Must Support Elements: code, effective, status, value Code Filter(s): Path: code Code(s): LOINC 8462-4: Diastolic blood pressure
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code Code(s): LOINC 34534-8: 12 lead EKG panel
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code Code(s): LOINC 11524-6: EKG study
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Follow Up Within One Year
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Follow Up Within 4 Weeks
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn, reasonCode Code Filter(s): Path: code ValueSet: Referral to Primary Care or Alternate Provider
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Lifestyle Recommendation
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Weight Reduction Recommended
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Dietary Recommendations
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Recommendation to Increase Physical Activity
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Referral or Counseling for Alcohol Consumption
Data Requirement | Type: ServiceRequest Profile(s): ServiceRequest Must Support Elements: code, authoredOn Code Filter(s): Path: code ValueSet: Laboratory Tests for Hypertension
Data Requirement | Type: MedicationRequest Profile(s): MedicationRequest Must Support Elements: medication, authoredOn Code Filter(s): Path: medication ValueSet: Pharmacologic Therapy for Hypertension
Data Requirement | Type: MedicationRequest Profile(s): MedicationRequest Must Support Elements: medication.reference, authoredOn
Data Requirement | Type: Medication Profile(s): Medication Must Support Elements: id, code
Data Requirement | Type: Condition Profile(s): Condition Must Support Elements: code Code Filter(s): Path: code ValueSet: Diagnosis of Hypertension
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 HBPComponent 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'

    valueset "Diagnosis of Hypertension": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.263'
    valueset "Dietary Recommendations": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.1515'
    valueset "Encounter to Screen for Blood Pressure": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.1920'
    valueset "Ethnicity": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837'
    valueset "Finding of Elevated Blood Pressure or Hypertension": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.514'
    valueset "Follow Up Within 4 Weeks": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1578'
    valueset "Follow Up Within One Year": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1579'
    valueset "Laboratory Tests for Hypertension": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.1482'
    valueset "Lifestyle Recommendation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1581'
    valueset "Medical Reason": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1007'
    valueset "ONC Administrative Sex": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1'
    valueset "Patient Declined": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1582'
    valueset "Pharmacologic Therapy for Hypertension": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.1577'
    valueset "Recommendation to Increase Physical Activity": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.1518'
    valueset "Referral or Counseling for Alcohol Consumption": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1583'
    valueset "Referral to Primary Care or Alternate Provider": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1580'
    valueset "Weight Reduction Recommended": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.1510'

    code "Birth date": '21112-8' from "LOINC" display 'Birth date'
    code "Diastolic blood pressure": '8462-4' from "LOINC" display 'Diastolic blood pressure'
    code "12 lead EKG panel": '34534-8' from "LOINC" display '12 lead EKG panel'
    code "EKG study": '11524-6' from "LOINC" display 'EKG study'
    code "Systolic blood pressure": '8480-6' from "LOINC" display 'Systolic blood pressure'

    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 "Encounter with Second Hypertensive Reading":
      "Encounter with High Blood Pressure Reading"
          intersect "Encounter with High Blood Pressure Reading Within Year Prior"

    define "Numerator":
      "Encounter with Normal Blood Pressure Reading"
          union ( "Encounter with Prehypertensive Blood Pressure Reading"
              intersect ( ( "Encounter with Order for Intervention for Hypertension"
                    intersect "Encounter with Order for Follow Up Within One Year"
                )
                  union "Encounter with Referral to Alternate Provider for High Blood Pressure Reading"
              )
          )
          union ( "Encounter with First Hypertensive Reading"
              intersect ( ( "Encounter with Order for Intervention for Hypertension"
                    intersect "Encounter with Order for Follow Up Within 4 Weeks"
                )
                  union "Encounter with Referral to Alternate Provider for High Blood Pressure Reading"
              )
          )
          union ( "Encounter with Second Hypertensive Reading"
              intersect ( ( "Encounter with Order for Intervention for Hypertension"
                    intersect ( "Encounter with Order for Laboratory Test for Hypertension"
                        union "Encounter with Order for Electrocardiogram for Hypertension"
                        union "Encounter with Order for Hypertension Medication"
                    )
                )
                  union "Encounter with Referral to Alternate Provider for High Blood Pressure Reading"
              )
          )

    define "Encounter with First Hypertensive Reading":
      "Encounter with High Blood Pressure Reading"
          except "Encounter with High Blood Pressure Reading Within Year Prior"

    define "Initial Population":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [Patient] BirthDate
            such that Global."CalendarAgeInYearsAt" ( FHIRHelpers.ToDate ( BirthDate.birthDate ), start of "Measurement Period" ) >= 18

    define "Encounter with Order for Follow Up Within One Year":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [ServiceRequest: "Follow Up Within One Year"] FollowupOneYear
            such that FollowupOneYear.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with Order for Follow Up Within 4 Weeks":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [ServiceRequest: "Follow Up Within 4 Weeks"] Followup4Weeks
            such that Followup4Weeks.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with Order for Hypertension Medication":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [MedicationRequest: "Pharmacologic Therapy for Hypertension"] AntihypertensiveMedication
            such that AntihypertensiveMedication.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with Order for Laboratory Test for Hypertension":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [ServiceRequest: "Laboratory Tests for Hypertension"] HypertensionLabs
            such that HypertensionLabs.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with Referral to Alternate Provider for High Blood Pressure Reading":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [ServiceRequest: "Referral to Primary Care or Alternate Provider"] Referral
            such that Referral.authoredOn same day as start of QualifyingEncounter.period
              and Referral.reasonCode in "Finding of Elevated Blood Pressure or Hypertension"

    define "Encounter with Order for Hypertension Follow Up Declined by Patient":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with ( [ServiceRequest: "12 lead EKG panel"]
            union [ServiceRequest: "EKG study"]
            union [ServiceRequest: "Follow Up Within One Year"]
            union [ServiceRequest: "Follow Up Within 4 Weeks"]
            union [ServiceRequest: "Referral to Primary Care or Alternate Provider"]
            union [ServiceRequest: "Lifestyle Recommendation"]
            union [ServiceRequest: "Weight Reduction Recommended"]
            union [ServiceRequest: "Dietary Recommendations"]
            union [ServiceRequest: "Recommendation to Increase Physical Activity"]
            union [ServiceRequest: "Referral or Counseling for Alcohol Consumption"]
            union [ServiceRequest: "Laboratory Tests for Hypertension"]
            union [MedicationRequest: "Pharmacologic Therapy for Hypertension"] ) NoFollowUpOrdered
            such that NoFollowUpOrdered.doNotPerform is true
              and NoFollowUpOrdered.code in "Patient Declined"
              and NoFollowUpOrdered.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with Medical Reason for Not Obtaining or Patient Declined Blood Pressure Measurement":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with ( [Observation: "Systolic blood pressure"]
            union [Observation: "Diastolic blood pressure"] ) NoBPScreen
            such that ( NoBPScreen.code in "Medical Reason"
                or NoBPScreen.code in "Patient Declined"
            )
              and NoBPScreen.effective same day as start of QualifyingEncounter.period
              and "Not Done"(NoBPScreen)
              and NoBPScreen.status = 'final'

    define "Denominator Exceptions":
      "Encounter with Medical Reason for Not Obtaining or Patient Declined Blood Pressure Measurement"
          union "Encounter with Order for Hypertension Follow Up Declined by Patient"

    define "Denominator Exclusions":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with [Condition: "Diagnosis of Hypertension"] Hypertension
            such that Global."Prevalence Period" ( Hypertension ) overlaps before QualifyingEncounter.period

    define "Denominator":
      "Initial Population"

    define "Encounter with Order for Electrocardiogram for Hypertension":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with ( [ServiceRequest: "12 lead EKG panel"]
            union [ServiceRequest: "EKG study"] ) ECG
            such that ECG.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with Order for Intervention for Hypertension":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          with ( [ServiceRequest: "Lifestyle Recommendation"]
            union [ServiceRequest: "Weight Reduction Recommended"]
            union [ServiceRequest: "Dietary Recommendations"]
            union [ServiceRequest: "Recommendation to Increase Physical Activity"]
            union [ServiceRequest: "Referral or Counseling for Alcohol Consumption"] ) HighBloodPressureIntervention
            such that HighBloodPressureIntervention.authoredOn same day as start of QualifyingEncounter.period

    define "Encounter with High Blood Pressure Reading":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          let EncounterLastSystolicBP: Last([Observation: "Systolic blood pressure"] SystolicBP
              where SystolicBP.effective during QualifyingEncounter.period
              sort by effective
          ),
          EncounterLastDiastolicBP: Last([Observation: "Diastolic blood pressure"] DiastolicBP
              where DiastolicBP.effective during QualifyingEncounter.period
              sort by effective
          )
          where EncounterLastSystolicBP.value > 0 'mm[Hg]'
            and EncounterLastDiastolicBP.value > 0 'mm[Hg]'
            and ( EncounterLastSystolicBP.value >= 140 'mm[Hg]'
                or EncounterLastDiastolicBP.value >= 90 'mm[Hg]'
            )

    define "Encounter with High Blood Pressure Reading Within Year Prior":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          let EncounterLastSystolicBP: Last([Observation: "Systolic blood pressure"] SystolicBP
              where SystolicBP.effective 1 year or less before start of QualifyingEncounter.period
              sort by effective
          ),
          EncounterLastDiastolicBP: Last([Observation: "Diastolic blood pressure"] DiastolicBP
              where DiastolicBP.effective 1 year or less before start of QualifyingEncounter.period
              sort by effective
          )
          where EncounterLastSystolicBP.value > 0 'mm[Hg]'
            and EncounterLastDiastolicBP.value > 0 'mm[Hg]'
            and ( EncounterLastSystolicBP.value >= 140 'mm[Hg]'
                or EncounterLastDiastolicBP.value >= 90 'mm[Hg]'
            )

    define "Encounter with Normal Blood Pressure Reading":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          let EncounterLastSystolicBP: Last([Observation: "Systolic blood pressure"] SystolicBP
              where SystolicBP.effective during QualifyingEncounter.period
              sort by effective
          ),
          EncounterLastDiastolicBP: Last([Observation: "Diastolic blood pressure"] DiastolicBP
              where DiastolicBP.effective during QualifyingEncounter.period
              sort by effective
          )
          where EncounterLastSystolicBP.value included in Interval[1 'mm[Hg]', 120 'mm[Hg]' )
            and EncounterLastDiastolicBP.value included in Interval[1 'mm[Hg]', 80 'mm[Hg]' )

    define "Encounter with Prehypertensive Blood Pressure Reading":
      "Qualifying Encounter During Measurement Period" QualifyingEncounter
          let EncounterLastSystolicBP: Last([Observation: "Systolic blood pressure"] SystolicBP
              where SystolicBP.effective during QualifyingEncounter.period
              sort by effective
          ),
          EncounterLastDiastolicBP: Last([Observation: "Diastolic blood pressure"] DiastolicBP
              where DiastolicBP.effective during QualifyingEncounter.period
              sort by effective
          )
          where EncounterLastSystolicBP.value included in Interval[1 'mm[Hg]', 140 'mm[Hg]' )
            and EncounterLastDiastolicBP.value included in Interval[1 'mm[Hg]', 90 'mm[Hg]' )
            and ( EncounterLastSystolicBP.value >= 120 'mm[Hg]'
                or EncounterLastDiastolicBP.value >= 80 'mm[Hg]'
            )

    define "Qualifying Encounter During Measurement Period":
      [Encounter: "Encounter to Screen for Blood Pressure"] ValidEncounter
          where ValidEncounter.period during "Measurement Period"

    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 "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 (364196 characters)
ELM JSON Content |
    Encoded data (654256 characters)
Generated using version 0.4.9 of the sample-content-ig Liquid templates