eCQM QICore Content Implementation Guide
2023.0.0 - CI Build

eCQM QICore Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2023.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/ecqm-content-qicore-2023/ and changes regularly. See the Directory of published versions

Measure: Sexually Transmitted Infection (STI) Testing for People with HIVFHIR

Percentage of patients 13 years of age and older with a diagnosis of HIV who had tests for syphilis, gonorrhea, and chlamydia performed within the measurement period

UNKNOWN

Official URL: http://ecqi.healthit.gov/ecqms/Measure/HIVSTITestingFHIR Version: 0.1.000
Draft as of 2023-10-27 Responsible: Health Resources & Services Administration/a> Computable Name: HIVSTITestingFHIR
Other Identifiers: Short Name (use: usual, ), UUID:6f66ca77-1a2c-489c-b0d8-730da6e5a763 (use: official, ), UUID:2c92808287dd6f640188b07c4a8a1f35 (use: official, ), Publisher (use: official, )

Usage:Program: EP/EC

Copyright/Legal: This measure was developed by the Health Resources & Services Administration (HRSA) of the U.S. Department of Health & Human Services (HHS). It is in the public domain.

Citation of HRSA as the source of the original measure is appreciated. Any modified versions may not be represented as approved, endorsed, or authorized by HRSA or HHS. 42 U.S.C. Section 1320b-10. Users of modified versions should clearly explain how they deviate from HRSA’s original measure.

Limited proprietary coding is contained in the Measure specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets.

CPT(R) contained in the Measure specifications is copyright 2004-2022 American Medical Association. LOINC(R) is copyright 2004-2022 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2022 International Health Terminology Standards Development Organisation. ICD-10 is copyright 2022 World Health Organization. All Rights Reserved.

Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].

Title: Sexually Transmitted Infection (STI) Testing for People with HIVFHIR
Id: HIVSTITestingFHIR
Download cql: HIVSTITestingFHIR.cql
Version: 0.1.000
Url: Sexually Transmitted Infection (STI) Testing for People with HIVFHIR
short-name identifier:

CMS1188FHIR

version-independent identifier:

urn:uuid:6f66ca77-1a2c-489c-b0d8-730da6e5a763

version-specific identifier:

urn:uuid:2c92808287dd6f640188b07c4a8a1f35

publisher (CMS) identifier:

1188FHIR

Effective Period: 2024-01-01 ..2024-12-31
Status: draft
Date: 2023-10-27 08:12:32+0000
Approval Date: 2023-08-11
Last Review Date: 2023-08-11
Name: HIVSTITestingFHIR
Publisher: Health Resources & Services Administration
Author: Health Resources & Services Administration: https://www.hrsa.gov/
Description:

Percentage of patients 13 years of age and older with a diagnosis of HIV who had tests for syphilis, gonorrhea, and chlamydia performed within the measurement period

Use Context:
code value
program
Purpose:

UNKNOWN

Copyright:

This measure was developed by the Health Resources & Services Administration (HRSA) of the U.S. Department of Health & Human Services (HHS). It is in the public domain.

Citation of HRSA as the source of the original measure is appreciated. Any modified versions may not be represented as approved, endorsed, or authorized by HRSA or HHS. 42 U.S.C. Section 1320b-10. Users of modified versions should clearly explain how they deviate from HRSA's original measure.

Limited proprietary coding is contained in the Measure specifications for user convenience. Users of proprietary code sets should obtain all necessary licenses from the owners of the code sets.

CPT(R) contained in the Measure specifications is copyright 2004-2022 American Medical Association. LOINC(R) is copyright 2004-2022 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2022 International Health Terminology Standards Development Organisation. ICD-10 is copyright 2022 World Health Organization. All Rights Reserved.

Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].

Disclaimer:

These performance measures are not clinical guidelines and do not establish a standard of medical care, and have not been tested for all potential applications.

THE MEASURES AND SPECIFICATIONS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.

Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].

Rationale:

The rates of syphilis, gonorrhea, and chlamydia cases per 100,000 in the United States have steadily risen over the last decade and increased 11.2%, 5.9%, and 2.8%, respectively, from 2018 to 2019 (DHHS, 2021). People with HIV are at an increased risk of bacterial sexually transmitted infections (STIs), including chlamydia, gonorrhea, and syphilis (CDC, 2004). However, early detection and treatment of bacterial STIs in people with HIV can lead to a reduction in HIV transmission (CDC, 2004). Despite guidelines for at least annual screening among sexually active persons with HIV, only an estimated 55% received a syphilis test in the past year, 23% received a gonorrhea test in the past year, and 24% received a chlamydia test in the past year based on a nationally-representative survey of adults with HIV receiving medical care in the United States (Flagg et al., 2015). This measure will help providers focus their attention and quality improvement efforts towards testing and treating sexually transmitted infections in patients with HIV, thus reducing the complications to long-term syphilis infection and reducing STI incidence (Patel et al., 2012).

Clinical recommendation statement:

"Routine serologic screening for syphilis is recommended at least annually for all persons with HIV infection who are sexually active, with more frequent screening (i.e., every 3-6 months) for those who have multiple or anonymous partners" (Panel on Opportunistic Infections in Adults and Adolescents with HIV, 2022, p. Y-3).

"Patients undergoing screening or treatment for syphilis also should be evaluated for other sexually transmitted diseases such as chlamydia and gonorrhea at anatomic sites of exposure in men and for chlamydia, gonorrhea, and trichomonas in women" (Panel on Opportunistic Infections in Adults and Adolescents with HIV, 2022, p. Y-3).

"The USPSTF recommends screening for syphilis in persons who are at increased risk for infection. When deciding which persons to screen for syphilis, clinicians should consider the prevalence of infection in the communities they serve, as well as other sociodemographic and behavioral factors that may be associated with increased risk of syphilis infection. For example, prevalence of syphilis is higher in men, men who have sex with men, persons with HIV infection, young adults, and persons with a history of incarceration, sex work, or military service…. Optimal screening frequency for persons who are at increased risk for syphilis infection is not well established. Men who have sex with men or persons with HIV infection may benefit from screening at least annually or more frequently (e.g., every 3 to 6 months) if they continue to be at high risk" (USPSTF, 2022, p. 1244-1246).

"At the initial HIV care visit, providers should screen all sexually active persons for syphilis, gonorrhea, and chlamydia, and perform screening for these infections at least annually during the course of HIV care. Specific testing includes syphilis serology and [a nucleic acid amplification test] NAAT for N. gonorrhoeae and C. trachomatis at the anatomic site of exposure" (Workowski et al., 2021, p. 26).

Guidance (Usage): This eCQM is a patient-based measure. This FHIR-based measure has been derived from the QDM-based measure: CMS1188v1. Please refer to the HL7 QI-Core Implementation Guide (http://hl7.org/fhir/us/qicore/index.html) for more information on QI-Core and mapping recommendations from QDM to QI-Core 4.1.1 (http://hl7.org/fhir/us/qicore/qdm-to-qicore.html).
Population Criteria:
64998bd84c79454c026f7483
Initial Population: All patients 13 years of age and older at the start of the measurement period with a diagnosis of HIV before the end of the measurement period with an eligible encounter during the measurement period
Denominator: Equals Initial Population
Denominator Exclusion: None
Numerator: Patients who were tested for each of the following at least once during the measurement period: syphilis, gonorrhea, and chlamydia
Numerator Exclusion: None
Denominator Exception: None
Libraries:
HIVSTITestingFHIR
Related Artifact Dependencies:
  • FHIRHelpers version: 4.3.000
  • QICoreCommon version: 1.5.000
  • Chlamydia Screening
  • Gonorrhea Screening
  • Syphilis Tests
  • Office Visit
  • Outpatient Consultation
  • Annual Wellness Visit
  • Face-to-Face Interaction
  • Home Healthcare Services
  • Preventive Care Services - Established Office Visit, 18 and Up
  • Preventive Care Services-Initial Office Visit, 18 and Up
  • Preventive Care Services, Initial Office Visit, 0 to 17
  • Preventive Care, Established Office Visit, 0 to 17
  • Telephone Visits
  • Preventive Care Services - Other
  • HIV
  • Parameters:
    name use min max type
    Measurement Period In 0 1 Period
    Numerator Out 0 1 boolean
    Denominator Out 0 1 boolean
    Initial Population Out 0 1 boolean
    DataRequirements:
    Type Elements Valueset Name Valueset
    Patient(QICorePatient)
    Observation(QICoreObservation) code value effective Chlamydia Screening Chlamydia Screening
    Observation(QICoreObservation) code value effective Gonorrhea Screening Gonorrhea Screening
    Observation(QICoreObservation) code value effective Syphilis Tests Syphilis Tests
    Encounter(QICoreEncounter) type period Office Visit Office Visit
    Encounter(QICoreEncounter) type period Outpatient Consultation Outpatient Consultation
    Encounter(QICoreEncounter) type period Annual Wellness Visit Annual Wellness Visit
    Encounter(QICoreEncounter) type period Face-to-Face Interaction Face-to-Face Interaction
    Encounter(QICoreEncounter) type period Home Healthcare Services Home Healthcare Services
    Encounter(QICoreEncounter) type period Preventive Care Services Established Office Visit, 18 and Up Preventive Care Services - Established Office Visit, 18 and Up
    Encounter(QICoreEncounter) type period Preventive Care Services Initial Office Visit, 18 and Up Preventive Care Services-Initial Office Visit, 18 and Up
    Encounter(QICoreEncounter) type period Preventive Care Services, Initial Office Visit, 0 to 17 Preventive Care Services, Initial Office Visit, 0 to 17
    Encounter(QICoreEncounter) type period Preventive Care, Established Office Visit, 0 to 17 Preventive Care, Established Office Visit, 0 to 17
    Encounter(QICoreEncounter) type period Telephone Visits Telephone Visits
    Encounter(QICoreEncounter) type period Preventive Care Services - Other Preventive Care Services - Other
    Condition(QICoreCondition) code HIV HIV
    Logic Definitions:
    Group Scoring Population Criteria Expression
    64998bd84c79454c026f7483 Group scoring: proportion
    Initial Population
    define "Initial Population":
      AgeInYearsAt(date from start of "Measurement Period") >= 13
        and "Has Qualifying Encounter During Measurement Period"
        and "Has HIV Diagnosis Before End of Measurement Period"
    Denominator
    define "Denominator":
      "Initial Population"
    Denominator Exclusion None
    Numerator
    define "Numerator":
      "Has Chlamydia Testing"
        and "Has Gonorrhea Testing"
        and "Has Syphilis Testing"
    Numerator Exclusion None
    Denominator Exception None
    Library Name Name
    HIVSTITestingFHIR Has Chlamydia Testing
    define "Has Chlamydia Testing":
      exists ["Observation": "Chlamydia Screening"] ChlamydiaTest
        where ChlamydiaTest.value is not null
          and QICoreCommon."Latest" ( ChlamydiaTest.effective ) during day of "Measurement Period"
    Library Name Name
    HIVSTITestingFHIR Has Gonorrhea Testing
    define "Has Gonorrhea Testing":
      exists ["Observation": "Gonorrhea Screening"] GonorrheaTest
        where GonorrheaTest.value is not null
          and QICoreCommon."Latest" ( GonorrheaTest.effective ) during day of "Measurement Period"
    Library Name Name
    HIVSTITestingFHIR Has Syphilis Testing
    define "Has Syphilis Testing":
      exists ["Observation": "Syphilis Tests"] SyphilisTest
        where SyphilisTest.value is not null
          and QICoreCommon."Latest" ( SyphilisTest.effective ) during day of "Measurement Period"
    Library Name Name
    HIVSTITestingFHIR Numerator
    define "Numerator":
      "Has Chlamydia Testing"
        and "Has Gonorrhea Testing"
        and "Has Syphilis Testing"
    Library Name Name
    HIVSTITestingFHIR Has Qualifying Encounter During Measurement Period
    define "Has Qualifying Encounter During Measurement Period":
      exists ( ( ["Encounter": "Office Visit"]
          union ["Encounter": "Outpatient Consultation"]
          union ["Encounter": "Annual Wellness Visit"]
          union ["Encounter": "Face-to-Face Interaction"]
          union ["Encounter": "Home Healthcare Services"]
          union ["Encounter": "Preventive Care Services Established Office Visit, 18 and Up"]
          union ["Encounter": "Preventive Care Services Initial Office Visit, 18 and Up"]
          union ["Encounter": "Preventive Care Services, Initial Office Visit, 0 to 17"]
          union ["Encounter": "Preventive Care, Established Office Visit, 0 to 17"]
          union ["Encounter": "Telephone Visits"]
          union ["Encounter": "Preventive Care Services - Other"] ) QualifyingEncounter
          where QualifyingEncounter.period during day of "Measurement Period"
      )
    Library Name Name
    HIVSTITestingFHIR Has HIV Diagnosis Before End of Measurement Period
    define "Has HIV Diagnosis Before End of Measurement Period":
      exists ["Condition": "HIV"] HIVDx
        where QICoreCommon."ToPrevalenceInterval" ( HIVDx ) starts on or before day of end of "Measurement Period"
    Library Name Name
    HIVSTITestingFHIR Initial Population
    define "Initial Population":
      AgeInYearsAt(date from start of "Measurement Period") >= 13
        and "Has Qualifying Encounter During Measurement Period"
        and "Has HIV Diagnosis Before End of Measurement Period"
    Library Name Name
    HIVSTITestingFHIR Denominator
    define "Denominator":
      "Initial Population"
    Library Name Name
    QICoreCommon Latest
    /*
    @description: Given an interval, returns the ending point if the interval has an ending boundary specified,
    otherwise, returns the starting point
    @deprecated: This function is deprecated. Use the fluent function `latest()` instead
    */
    define function "Latest"(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>> ):
      (choice.toInterval()) period
        return
          if (HasEnd(period)) then end of period
          else start of period
    Library Name Name
    QICoreCommon toInterval
    /*
    @description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
    @comment: Normalizes a choice type of DateTime, Quanitty, Interval<DateTime>, or Interval<Quantity> types
    to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
    representations for timing-valued elements in QICore, allowing this function to be used across any resource.
    The input can be provided as a DateTime, Quantity, Interval<DateTime> or Interval<Quantity>.
    The intent of this function is to provide a clear and concise mechanism to treat single
    elements that have multiple possible representations as intervals so that logic doesn't have to account
    for the variability. More complex calculations (such as medication request period or dispense period
    calculation) need specific guidance and consideration. That guidance may make use of this function, but
    the focus of this function is on single element calculations where the semantics are unambiguous.
    If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
    If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
    and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
    If the input is a DateTime Interval, the result is the input.
    If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
    is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
    immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
    Any other input will reslt in a null DateTime Interval
    */
    define fluent function toInterval(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>>):
      case
    	  when choice is DateTime then
        	Interval[choice as DateTime, choice as DateTime]
    		when choice is Interval<DateTime> then
      		choice as Interval<DateTime>
    		when choice is Quantity then
    		  Interval[Patient.birthDate + (choice as Quantity),
    			  Patient.birthDate + (choice as Quantity) + 1 year)
    		when choice is Interval<Quantity> then
    		  Interval[Patient.birthDate + (choice.low as Quantity),
    			  Patient.birthDate + (choice.high as Quantity) + 1 year)
    		else
    			null as Interval<DateTime>
    	end
    Library Name Name
    QICoreCommon ToPrevalenceInterval
    /*
    @description: Returns an interval representing the normalized prevalence period of a given Condition.
    @comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from
    onset to abatement as specified in the given Condition. If the condition is active, the resulting interval will have
    a closed ending boundary. If the condition is not active, the resulting interval will have an open ending boundary.
    @deprecated: This function is deprecated. Use the `prevalenceInterval()` fluent function instead
    */
    define function ToPrevalenceInterval(condition Condition):
    if condition.clinicalStatus ~ "active"
      or condition.clinicalStatus ~ "recurrence"
      or condition.clinicalStatus ~ "relapse" then
      Interval[start of ToInterval(condition.onset), end of ToAbatementInterval(condition)]
    else
      Interval[start of ToInterval(condition.onset), end of ToAbatementInterval(condition))