HIVViralSuppressionFHIRExample
type: Measure
node role: treeRoot
id:
  v: HIVViralSuppressionFHIRExample
meta:
  profile:
    v: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm
    l: computable-measure-cqfm
text:
  status:
    v: extensions
  div:
    v: Metadata Title HIV Viral Suppression FHIR Example Version 0.5.3 Short Name CMS314FHIR GUID (Version Independent) urn:uuid:b8aa1302-d225-4dc7-9a3b-ffec45976a3e GUID (Version Specific) urn:uuid:2c92808287dd6f640188b022a80a1e8d CMS Identifier 314FHIR Effective Period 2024-01-01 through 2024-12-31 Approval Date 2023-08-14 Last Review Date 2023-08-14 Status Draft Use Context venue from http://terminology.hl7.org/CodeSystem/usage-context-type = EC Jurisdiction 001 from http://unstats.un.org/unsd/methods/m49/m49.htm Steward (Publisher) HL7 International - [Some] Work Group Developer Health Resources & Services Administration Description Percentage of patients, regardless of age, diagnosed with HIV prior to or during the first 90 days of the measurement period, with an eligible encounter in the first 240 days of the measurement period, whose last HIV viral load test result was less than 200 copies/mL during the measurement period 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 techn…
contained: Library
  id:
    v: effective-data-requirements
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
      l: cqf-directReferenceCode
    value: Coding
      type: http://snomed.info/id/260988000
      system:
        v: http://snomed.info/sct
        l: sct
      code:
        v: 260988000
      display:
        v: Below threshold level (qualifier value)
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
      l: cqf-directReferenceCode
    value: Coding
      type: http://snomed.info/id/260415000
      system:
        v: http://snomed.info/sct
        l: sct
      code:
        v: 260415000
      display:
        v: Not detected (qualifier value)
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
      l: cqf-directReferenceCode
    value: Coding
      system:
        v: http://terminology.hl7.org/CodeSystem/condition-clinical
        l: condition-clinical
      code:
        v: active
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
      l: cqf-directReferenceCode
    value: Coding
      system:
        v: http://terminology.hl7.org/CodeSystem/condition-clinical
        l: condition-clinical
      code:
        v: recurrence
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode
      l: cqf-directReferenceCode
    value: Coding
      system:
        v: http://terminology.hl7.org/CodeSystem/condition-clinical
        l: condition-clinical
      code:
        v: relapse
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: HIVViralSuppressionFHIRExample
    extension:
      url:
        v: name
        l: name
      value: String
        v: Most Recent Viral Load Test During Measurement Period
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: define "Most Recent Viral Load Test During Measurement Period": Last(["Observation": "HIV Viral Load"] ViralLoad where QICoreCommon."Latest"(ViralLoad.effective) during day of "Measurement Period" sort by start of QICoreCommon."ToInterval"(effective) )
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 0
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: HIVViralSuppressionFHIRExample
    extension:
      url:
        v: name
        l: name
      value: String
        v: Numerator
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: define "Numerator": "Most Recent Viral Load Test During Measurement Period".value < 200 '{copies}/mL' or "Most Recent Viral Load Test During Measurement Period".value ~ "Below threshold level (qualifier value)" or "Most Recent Viral Load Test During Measurement Period".value ~ "Not detected (qualifier value)"
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 1
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: HIVViralSuppressionFHIRExample
    extension:
      url:
        v: name
        l: name
      value: String
        v: Has Active HIV Diagnosis Before or in First 90 Days of Measurement Period
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: define "Has Active HIV Diagnosis Before or in First 90 Days of Measurement Period": exists ["Condition": "HIV"] HIVDx where QICoreCommon."ToPrevalenceInterval" ( HIVDx ) starts before day of ( start of "Measurement Period" + 90 days )
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 2
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: HIVViralSuppressionFHIRExample
    extension:
      url:
        v: name
        l: name
      value: String
        v: Has Qualifying Encounter During First 240 Days of Measurement Period
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: define "Has Qualifying Encounter During First 240 Days of 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 Interval[start of "Measurement Period", start of "Measurement Period" + 240 days]
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 3
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: HIVViralSuppressionFHIRExample
    extension:
      url:
        v: name
        l: name
      value: String
        v: Initial Population
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: define "Initial Population": "Has Active HIV Diagnosis Before or in First 90 Days of Measurement Period" and "Has Qualifying Encounter During First 240 Days of Measurement Period"

url:
  v: displaySequence
  l: displaySequence
value: Integer
  v: 4

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: HIVViralSuppressionFHIRExample
extension:
  url:
    v: name
    l: name
  value: String
    v: Denominator
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define "Denominator": "Initial Population"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 5
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: Latest
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 6
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: toInterval
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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 DateTim…
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 7
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: HasEnd
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @description: Given an interval, returns true if the interval has an ending boundary specified (i.e. the end of the interval is not null and not the maximum DateTime value) @deprecated: This function is deprecated. Use the fluent function `hasEnd()` instead */ define function "HasEnd"(period Interval<DateTime> ): not ( end of period is null or end of period = maximum DateTime )
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 8
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: ToInterval
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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 @deprecated: This function is deprecated. Use the fluent function `toInterval()` instead */ define function ToInterval(choice Choice<DateTim…
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 9
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: ToPrevalenceInterval
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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))
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 10
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: ToInterval
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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 @deprecated: This function is deprecated. Use the fluent function `toInterval()` instead */ define function ToInterval(choice Choice<DateTim…
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 11
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: QICoreCommonExample
extension:
  url:
    v: name
    l: name
  value: String
    v: ToAbatementInterval
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @description: Returns an interval representing the normalized abatement of a given Condition. @comment: If the abatement element of the Condition is represented as a DateTime, the result is an interval beginning and ending on that DateTime. If the abatement is represented as a Quantity, the quantity is expected to be a calendar-duration and is interpreted as the age of the patient. The result is an interval from the date the patient turned that age to immediately before one year later. If the abatement is represented as a Quantity Interval, the quantities are expected to be calendar-durations and are interpreted as an age range during which the abatement occurred. The result is an interval from the date the patient turned the starting age of the quantity interval, and ending immediately before one year later than the date the patient turned the ending age of the quantity interval. @deprecated: This function is deprecated. Use the fluent function `abatementInterval()` instead. */ define function ToAbatementInterval(condition Condition): if condition.abatement is DateTime then Interval[condition.abatement as DateTime, condition.abatement as DateTime] else if condition.abatement is Quantity then Interval[Patient.birthDate + (condition.abatement as Quantity), Patient.birthDate + (condition.abatement as Quantity) + 1 year) else if condition.abatement is Interval<Quantity> then Interval[Patient.birthDate + (condition.abatement.low as Quantity), Patient.birthDate + (condition.abatement.high as Quantity) + 1 year) else if condition.abatement is Interval<DateTime> then Interval[condition.abatement.low, condition.abatement.high) else null as Interval<DateTime>
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 12
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: FHIRHelpers
extension:
  url:
    v: name
    l: name
  value: String
    v: ToInterval
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define function ToInterval(period FHIR.Period): if period is null then null else if period."start" is null then Interval(period."start".value, period."end".value] else Interval[period."start".value, period."end".value]
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 13
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

v: EffectiveDataRequirements

v: active

coding:
  system:
    v: http://terminology.hl7.org/CodeSystem/library-type
    l: library-type
  code:
    v: module-definition

type:
  v: depends-on
display:
  v: Library FHIRHelpers
resource:
  v: http://somewhere.org/fhir/uv/mycontentig/Library/FHIRHelpers|4.0.1
  l: http://somewhere.org/fhir/uv/mycontentig/Library/FHIRHelpers

type:
  v: depends-on
display:
  v: Library QICoreCommon
resource:
  v: http://somewhere.org/fhir/uv/mycontentig/Library/QICoreCommonExample
  l: QICoreCommonExample

type:
  v: depends-on
display:
  v: Code system SNOMEDCT
resource:
  v: http://snomed.info/sct
  l: sct

type:
  v: depends-on
display:
  v: Code system ConditionClinicalStatusCodes
resource:
  v: http://terminology.hl7.org/CodeSystem/condition-clinical
  l: condition-clinical

type:
  v: depends-on
display:
  v: Value set HIV Viral Load
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1002
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1002

type:
  v: depends-on
display:
  v: Value set HIV
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003

type:
  v: depends-on
display:
  v: Value set Office Visit
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001

type:
  v: depends-on
display:
  v: Value set Outpatient Consultation
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008

type:
  v: depends-on
display:
  v: Value set Annual Wellness Visit
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240

type:
  v: depends-on
display:
  v: Value set Face-to-Face Interaction
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1048
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1048

type:
  v: depends-on
display:
  v: Value set Home Healthcare Services
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016

type:
  v: depends-on
display:
  v: Value set Preventive Care Services Established Office Visit, 18 and Up
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025

type:
  v: depends-on
display:
  v: Value set Preventive Care Services Initial Office Visit, 18 and Up
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023

type:
  v: depends-on
display:
  v: Value set Preventive Care Services, Initial Office Visit, 0 to 17
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022

type:
  v: depends-on
display:
  v: Value set Preventive Care, Established Office Visit, 0 to 17
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024

type:
  v: depends-on
display:
  v: Value set Telephone Visits
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080

type:
  v: depends-on
display:
  v: Value set Preventive Care Services Other
resource:
  v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1030
  l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1030

name:
  v: Measurement Period
use:
  v: in
min:
  v: 0
max:
  v: 1
type:
  v: Period

name:
  v: Numerator
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: boolean

name:
  v: Denominator
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: boolean

name:
  v: Initial Population
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: boolean

type:
  v: Patient
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient
  l: qicore-patient

type:
  v: Observation
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation
  l: qicore-observation
must support:
  v: code
must support:
  v: effective
code filter:
  path:
    v: code
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1002
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1002

type:
  v: Condition
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition
  l: qicore-condition
must support:
  v: code
code filter:
  path:
    v: code
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1048
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1048

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080

type:
  v: Encounter
profile:
  v: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
  l: qicore-encounter
must support:
  v: type
must support:
  v: period
code filter:
  path:
    v: type
  value set:
    v: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1030
    l: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1030

url:
  v: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem
  l: cqfm-softwaresystem
value: Reference
  l: cqf-tooling
  reference:
    v: Device/cqf-tooling

url:
  v: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements
  l: crmi-effectiveDataRequirements
value: Canonical
  v: #effective-data-requirements
  l: effective-data-requirements

use:
  v: usual
type:
  coding:
    system:
      v: http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type
      l: identifier-type
    code:
      v: short-name
    display:
      v: Short Name
system:
  v: https://madie.cms.gov/measure/shortName
  l: shortName
value:
  v: CMS314FHIR

use:
  v: official
type:
  coding:
    system:
      v: http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type
      l: identifier-type
    code:
      v: version-independent
    display:
      v: Version Independent
system:
  v: urn:ietf:rfc:3986
  l: 3986

use:
  v: official
type:
  coding:
    system:
      v: http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type
      l: identifier-type
    code:
      v: version-specific
    display:
      v: Version Specific
system:
  v: urn:ietf:rfc:3986
  l: 3986

use:
  v: official
type:
  coding:
    system:
      v: http://hl7.org/fhir/us/cqfmeasures/CodeSystem/identifier-type
      l: identifier-type
    code:
      v: publisher
    display:
      v: Publisher
system:
  v: https://madie.cms.gov/measure/cmsId
  l: cmsId
value:
  v: 314FHIR
assigner:
  display:
    v: CMS

v: 0.5.3

v: HIVViralSuppressionFHIRExample

v: HIV Viral Suppression FHIR Example

v: draft

v: false

v: 2025-09-30T04:16:55+00:00

v: HL7 International - [Some] Work Group

telecom:
  system:
    v: url
  value:
    v: http://hl7.org/Special/committees/[something]

v: Percentage of patients, regardless of age, diagnosed with HIV prior to or during the first 90 days of the measurement period, with an eligible encounter in the first 240 days of the measurement period, whose last HIV viral load test result was less than 200 copies/mL during the measurement period

code:
  system:
    v: http://terminology.hl7.org/CodeSystem/usage-context-type
    l: usage-context-type
  code:
    v: venue
value: CodeableConcept
  coding:
    system:
      v: http://hl7.org/fhir/uv/cqm/ValueSet/intended-venue
      l: intended-venue
    code:
      v: ec
    display:
      v: EC

coding:
  system:
    v: http://unstats.un.org/unsd/methods/m49/m49.htm
    l: m49.htm
  code:
    v: 001

v: UNKNOWN

v: HIV viral load data should be captured either as a numeric value or as a character/text value, depending on whether a given viral load result falls above or below the lab's lower limit of detection. For viral loads at or above the lower limit of detection, the viral load should be captured as a numeric value (expressed as the number of copies/mL). For viral loads below the lower limit of detection, the viral load should be populated with a character/text value equivalent to "Below lower limit of detection." The EHR need not record this character value using this exact wording (for example, the character value could be recorded as "<20 copies/mL" or "not detected"), but values below the lower limit of detection should be documented to allow the submitter to accurately map them to a value of "Below lower limit of detection" for reporting purposes. This eCQM is a patient-based measure. This FHIR-based measure has been derived from the QDM-based measure: CMS314v1. 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).

v: 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].

v: 2023-08-14

v: 2023-08-14

start:
  v: 2024-01-01
end:
  v: 2024-12-31

name:
  v: Health Resources & Services Administration
telecom:
  system:
    v: url
  value:
    v: https://www.hrsa.gov/

v: 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].

v: HIV is a communicable infection that leads to a progressive disease with a long asymptomatic period. Approximately 40,000 persons in the United States are newly infected with HIV each year (Centers for Disease Control and Prevention, 2021, p. 51). Without treatment, most persons develop acquired immunodeficiency syndrome (AIDS) within 10 years of HIV infection. HIV viral suppression is a long-standing priority outcome among the HIV community in the United States and around the world. The National HIV/AIDS Strategy for the United States from 2022-2025, developed by the White House Office of National AIDS Policy with input from the HIV community across the United States, prioritizes increasing HIV viral suppression rates to 95% (The White House, 2020). The DHHS Panel on Antiretroviral Guidelines for Adults and Adolescents defines viral suppression as a viral load below the lower limits of detection in its guidelines on virologic failure, and it defines viral suppression as a viral load of less than 200 copies/mL as part of its guidelines for the use of antiretroviral therapy to prevent HIV transmission (Panel on Antiretroviral Guidelines for Adults and Adolescents, 2022). Antiretroviral therapy (ART) delays the progression to AIDS and increases the length of survival. ART reduces HIV-associated morbidity and mortality by maximally inhibiting HIV replication to achieve viral suppression (Hogg et al., 2001; Lundgern et al., 2015). ART has also been shown to reduce transmission of HIV (Rodger et al., 2019). Studies show disparities in rates of viral suppression by race and ethnicity among MSM and among women, with Black and Hispanic or Latino/a study participants having lower rates of viral suppression than White participants (Buchacz et al., 2020; Buchacz et al., 2018; Geter et al., 2018). This measure will help providers direct their attention and quality improvement efforts towards improving HIV viral suppression rates.

v: Adult guidelines: "The primary goal of antiretroviral therapy (ART) is to prevent HIV-associated morbidity and mortality. This goal is accomplished by using effective ART to achieve and maintain a plasma HIV-1 RNA (viral load) below the quantification limits of commercially available assays. Durable viral suppression improves immune function and overall quality of life, lowers the risk of both AIDS-defining and non-AIDS–defining complications, and allows persons with HIV to live a lifespan approaching that of persons without HIV" (Panel on Antiretroviral Guidelines for Adults and Adolescents, 2022, p. E-1). "ART is recommended for all individuals with HIV to reduce the morbidity and mortality associated with HIV infection and to prevent HIV transmission to sexual partners and infants (AI). ART should be initiated as soon as possible after HIV diagnosis (AI)" (Panel on Antiretroviral Guidelines for Adults and Adolescents, 2022, p. E-2). "The guidelines and the AIDS Clinical Trials Group (ACTG) now define virologic failure as a confirmed viral load >200 copies/mL- a threshold that eliminates most cases of apparent viremia caused by viral load blips or assay variability" (Panel on Antiretroviral Guidelines for Adults and Adolescents, 2022, p. C-6). "Individuals who are adherent to their ARV regimen and do not harbor resistance mutations to the component drugs can generally achieve suppression 8 to 24 weeks after ART initiation; rarely, in some patients it may take longer" (Panel on Antiretroviral Guidelines for Adults and Adolescents, 2022, p. C-6). Pediatric guidelines: "Based on accumulated experience with currently available assays, the current definition of virologic suppression is a plasma viral load below the detection limit of the assay used (generally <20 to 75 copies/mL)" (Panel on Antiretroviral Therapy and Medical Management of Children Living with HIV, 2022, p. D-5). "Temporary viral load elevations ("blips") that are between the level of detection and 200 …

id:
  v: 64873a03be23a058642d5816
extension:
  url:
    v: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring
    l: cqfm-scoring
  value: CodeableConcept
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-scoring
        l: measure-scoring
      code:
        v: proportion
      display:
        v: Proportion
extension:
  url:
    v: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis
    l: cqfm-populationBasis
  value: Code
    v: boolean
extension:
  url:
    v: http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type
    l: cqfm-type
  value: CodeableConcept
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-type
        l: measure-type
      code:
        v: outcome
      display:
        v: Outcome
population:
  code:
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-population
        l: measure-population
      code:
        v: initial-population
      display:
        v: Initial Population
  description:
    v: All patients, regardless of age, diagnosed with HIV prior to or during the first 90 days of the measurement period with at least one eligible encounter in the first 240 days of the measurement period
  criteria:
    language:
      v: text/cql-identifier
    expression:
      v: Initial Population
population:
  code:
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-population
        l: measure-population
      code:
        v: denominator
      display:
        v: Denominator
  description:
    v: Equals Initial Population
  criteria:
    language:
      v: text/cql-identifier
    expression:
      v: Denominator
population:
  code:
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-population
        l: measure-population
      code:
        v: denominator-exclusion
      display:
        v: Denominator Exclusion
  criteria:
    language:
      v: text/cql-identifier
population:
  code:
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-population
        l: measure-population
      code:
        v: numerator
      display:
        v: Numerator
  description:
    v: Patients with a last HIV viral load test result of less than 200 copies/mL during the measurement period
  criteria:
    language:
      v: text/cql-identifier
    expression:
      v: Numerator
population:
  code:
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-population
        l: measure-population
      code:
        v: numerator-exclusion
      display:
        v: Numerator Exclusion
  criteria:
    language:
      v: text/cql-identifier
population:
  code:
    coding:
      system:
        v: http://terminology.hl7.org/CodeSystem/measure-population
        l: measure-population
      code:
        v: denominator-exception
      display:
        v: Denominator Exception
  criteria:
    language:
      v: text/cql-identifier