Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build
Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2025/ and changes regularly. See the Directory of published versions
| Draft as of 2026-09-19 |
<Library xmlns="http://hl7.org/fhir">
<id value="CMS349FHIRHIVScreening"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="narrative-table">
<tbody>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>
</tr>
<tr>
<th scope="row" class="row-header">Version</th>
<td class="content-container">1.1.000</td>
</tr>
<tr>
<th scope="row" class="row-header">Status</th>
<td class="content-container">Draft</td>
</tr>
<tr>
<th scope="row" class="row-header">Type</th>
<td class="content-container">
<a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>
</tr>
<tr>
<th scope="row" class="row-header">Parameter</th>
<td class="content-container">None</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Library Content</th>
</tr>
<tr>
<th scope="row" class="row-header">CQL Content</th>
<td>
<a name="cql-content"> </a>
<pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
NOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.
*/
library CMS349FHIRHIVScreening version '1.1.000'
using USQualityCore version '0.1.0-cibuild'
using USCore version '6.1.0-derived'
using FHIR version '4.0.1'
include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements
include CQMCommon version '5.1.000' called CQMCommon
include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include Status version '2.1.000' called Status
codesystem "LOINC": 'http://loinc.org'
valueset "HIV": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003'
valueset "Human Immunodeficiency Virus (HIV) Laboratory Test Codes (Ab and Ag)": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1056.50'
valueset "Office Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
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, Initial Office Visit, 0 to 17": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022'
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 "Preventive Care, Established Office Visit, 0 to 17": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024'
code "HIV 1 and 2 tests - Meaningful Use set": '75622-1' from "LOINC" display 'HIV 1 and 2 tests - Meaningful Use set'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)
context Patient
define "Initial Population":
AgeInYearsAt(date from start of "Measurement Period") in Interval[15, 65]
and exists "Qualifying Encounters"
define "Denominator":
"Initial Population"
define "Numerator":
( "Has HIV Test Performed" )
define "Denominator Exclusions":
// [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
// Original:
// exists ( ( [ConditionProblemsHealthConcerns: "HIV"]
// union [ConditionEncounterDiagnosis: "HIV"] ) HIVDiagnosis
exists ( ( [FHIR.Condition: "HIV"] ) HIVDiagnosis
where HIVDiagnosis.prevalenceInterval ( ) starts before day of start of "Measurement Period"
and HIVDiagnosis.isVerified ( )
)
define "Denominator Exceptions":
"Patient Expired"
define "Qualifying Encounters":
( ["Encounter": "Preventive Care Services, Initial Office Visit, 0 to 17"]
union ["Encounter": "Preventive Care Services-Initial Office Visit, 18 and Up"]
union ["Encounter": "Preventive Care, Established Office Visit, 0 to 17"]
union ["Encounter": "Preventive Care Services - Established Office Visit, 18 and Up"]
union ["Encounter": "Office Visit"] ) Encounter
where Encounter.period during day of "Measurement Period"
and Encounter.status = 'finished'
define "Patient Expired":
Patient.deceased on or before day of end of "Measurement Period"
define "Has HIV Test Performed":
exists ( ["LaboratoryResultObservation": "Human Immunodeficiency Virus (HIV) Laboratory Test Codes (Ab and Ag)"]
union ["LaboratoryResultObservation": "HIV 1 and 2 tests - Meaningful Use set"] ) HIVTest
where HIVTest.value is not null
and AgeInYearsAt(date from start of HIVTest.effective.toInterval()) in Interval[15, 65]
and HIVTest.effective.toInterval ( ) starts before day of end of "Measurement Period"
and ( HIVTest.status = 'final'
or HIVTest.status = 'amended'
or HIVTest.status = 'corrected'
)
define "SDE Ethnicity":
SDE."SDE Ethnicity"
define "SDE Payer":
SDE."SDE Payer"
define "SDE Race":
SDE."SDE Race"
define "SDE Sex":
SDE."SDE Sex"
/*
@description: Returns true if the given condition either has no verification status or has a verification status of confirmed, unconfirmed, provisional, or differential
*/
define fluent function isVerified(condition Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>):
condition.verificationStatus is not null implies ( condition.verificationStatus ~ Status."confirmed"
or condition.verificationStatus ~ Status."unconfirmed"
or condition.verificationStatus ~ Status."provisional"
or condition.verificationStatus ~ Status."differential"
)</code></pre>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>
</tr>
</tbody>
</table>
</div>
</text>
<extension
url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<url value="https://madie.cms.gov/Library/CMS349FHIRHIVScreening"/>
<version value="1.1.000"/>
<name value="CMS349FHIRHIVScreening"/>
<status value="draft"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-09-19T16:31:14+00:00"/>
<content>
<contentType value="text/cql"/>
<data
value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMzNDlGSElSSElWU2NyZWVuaW5nIHZlcnNpb24gJzEuMS4wMDAnCgp1c2luZyBVU1F1YWxpdHlDb3JlIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnCnVzaW5nIFVTQ29yZSB2ZXJzaW9uICc2LjEuMC1kZXJpdmVkJwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSQ29tbW9uIHZlcnNpb24gJzIuMC4wJyBjYWxsZWQgRkhJUkNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVDb21tb24gdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUVsZW1lbnRzIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUVsZW1lbnRzCgppbmNsdWRlIENRTUNvbW1vbiB2ZXJzaW9uICc1LjEuMDAwJyBjYWxsZWQgQ1FNQ29tbW9uCmluY2x1ZGUgVVNRdWFsaXR5Q29yZUNvbW1vbiB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJyBjYWxsZWQgVVNRdWFsaXR5Q29yZUNvbW1vbgppbmNsdWRlIFN1cHBsZW1lbnRhbERhdGFFbGVtZW50cyB2ZXJzaW9uICc2LjEuMDAwJyBjYWxsZWQgU0RFCmluY2x1ZGUgU3RhdHVzIHZlcnNpb24gJzIuMS4wMDAnIGNhbGxlZCBTdGF0dXMKCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCgp2YWx1ZXNldCAiSElWIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEyMC4xMi4xMDAzJwp2YWx1ZXNldCAiSHVtYW4gSW1tdW5vZGVmaWNpZW5jeSBWaXJ1cyAoSElWKSBMYWJvcmF0b3J5IFRlc3QgQ29kZXMgKEFiIGFuZCBBZykiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDU2LjUwJwp2YWx1ZXNldCAiT2ZmaWNlIFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDAxJwp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIC0gRXN0YWJsaXNoZWQgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjUnCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMsIEluaXRpYWwgT2ZmaWNlIFZpc2l0LCAwIHRvIDE3IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDIyJwp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzLUluaXRpYWwgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjMnCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUsIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMCB0byAxNyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyNCcKCmNvZGUgIkhJViAxIGFuZCAyIHRlc3RzIC0gTWVhbmluZ2Z1bCBVc2Ugc2V0IjogJzc1NjIyLTEnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdISVYgMSBhbmQgMiB0ZXN0cyAtIE1lYW5pbmdmdWwgVXNlIHNldCcKCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlVGltZT4KICBkZWZhdWx0IEludGVydmFsW0AyMDI2LTAxLTAxVDAwOjAwOjAwLjAwMFosIEAyMDI3LTAxLTAxVDAwOjAwOjAwLjAwMFopCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSBpbiBJbnRlcnZhbFsxNSwgNjVdCiAgICBhbmQgZXhpc3RzICJRdWFsaWZ5aW5nIEVuY291bnRlcnMiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJOdW1lcmF0b3IiOgogICggIkhhcyBISVYgVGVzdCBQZXJmb3JtZWQiICkKCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBleGlzdHMgKCAoIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSElWIl0KICAvLyAgICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiSElWIl0gKSBISVZEaWFnbm9zaXMKICBleGlzdHMgKCAoIFtGSElSLkNvbmRpdGlvbjogIkhJViJdICkgSElWRGlhZ25vc2lzCiAgICAgIHdoZXJlIEhJVkRpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyBiZWZvcmUgZGF5IG9mIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIEhJVkRpYWdub3Npcy5pc1ZlcmlmaWVkICggKQogICkKCmRlZmluZSAiRGVub21pbmF0b3IgRXhjZXB0aW9ucyI6CiAgIlBhdGllbnQgRXhwaXJlZCIKCmRlZmluZSAiUXVhbGlmeWluZyBFbmNvdW50ZXJzIjoKICAoIFsiRW5jb3VudGVyIjogIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcywgSW5pdGlhbCBPZmZpY2UgVmlzaXQsIDAgdG8gMTciXQogICAgdW5pb24gWyJFbmNvdW50ZXIiOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzLUluaXRpYWwgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiXQogICAgdW5pb24gWyJFbmNvdW50ZXIiOiAiUHJldmVudGl2ZSBDYXJlLCBFc3RhYmxpc2hlZCBPZmZpY2UgVmlzaXQsIDAgdG8gMTciXQogICAgdW5pb24gWyJFbmNvdW50ZXIiOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIC0gRXN0YWJsaXNoZWQgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiXQogICAgdW5pb24gWyJFbmNvdW50ZXIiOiAiT2ZmaWNlIFZpc2l0Il0gKSBFbmNvdW50ZXIKICAgIHdoZXJlIEVuY291bnRlci5wZXJpb2QgZHVyaW5nIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICBhbmQgRW5jb3VudGVyLnN0YXR1cyA9ICdmaW5pc2hlZCcKCmRlZmluZSAiUGF0aWVudCBFeHBpcmVkIjoKICBQYXRpZW50LmRlY2Vhc2VkIG9uIG9yIGJlZm9yZSBkYXkgb2YgZW5kIG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIkhhcyBISVYgVGVzdCBQZXJmb3JtZWQiOgogIGV4aXN0cyAoIFsiTGFib3JhdG9yeVJlc3VsdE9ic2VydmF0aW9uIjogIkh1bWFuIEltbXVub2RlZmljaWVuY3kgVmlydXMgKEhJVikgTGFib3JhdG9yeSBUZXN0IENvZGVzIChBYiBhbmQgQWcpIl0KICAgIHVuaW9uIFsiTGFib3JhdG9yeVJlc3VsdE9ic2VydmF0aW9uIjogIkhJViAxIGFuZCAyIHRlc3RzIC0gTWVhbmluZ2Z1bCBVc2Ugc2V0Il0gKSBISVZUZXN0CiAgICB3aGVyZSBISVZUZXN0LnZhbHVlIGlzIG5vdCBudWxsCiAgICAgIGFuZCBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mIEhJVlRlc3QuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSkgaW4gSW50ZXJ2YWxbMTUsIDY1XQogICAgICBhbmQgSElWVGVzdC5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkgc3RhcnRzIGJlZm9yZSBkYXkgb2YgZW5kIG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgIGFuZCAoIEhJVlRlc3Quc3RhdHVzID0gJ2ZpbmFsJwogICAgICAgICAgb3IgSElWVGVzdC5zdGF0dXMgPSAnYW1lbmRlZCcKICAgICAgICAgIG9yIEhJVlRlc3Quc3RhdHVzID0gJ2NvcnJlY3RlZCcKICAgICAgKQoKZGVmaW5lICJTREUgRXRobmljaXR5IjoKICBTREUuIlNERSBFdGhuaWNpdHkiCgpkZWZpbmUgIlNERSBQYXllciI6CiAgU0RFLiJTREUgUGF5ZXIiCgpkZWZpbmUgIlNERSBSYWNlIjoKICBTREUuIlNERSBSYWNlIgoKZGVmaW5lICJTREUgU2V4IjoKICBTREUuIlNERSBTZXgiCgovKgpAZGVzY3JpcHRpb246IFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gY29uZGl0aW9uIGVpdGhlciBoYXMgbm8gdmVyaWZpY2F0aW9uIHN0YXR1cyBvciBoYXMgYSB2ZXJpZmljYXRpb24gc3RhdHVzIG9mIGNvbmZpcm1lZCwgdW5jb25maXJtZWQsIHByb3Zpc2lvbmFsLCBvciBkaWZmZXJlbnRpYWwKKi8KCgpkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uIGlzVmVyaWZpZWQoY29uZGl0aW9uIENob2ljZTxDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXMsIENvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM+KToKICBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJjb25maXJtZWQiCiAgICAgIG9yIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgfiBTdGF0dXMuInVuY29uZmlybWVkIgogICAgICBvciBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJwcm92aXNpb25hbCIKICAgICAgb3IgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4iZGlmZmVyZW50aWFsIgogICk="/>
<url value="https://madie.cms.gov/Library-CMS349FHIRHIVScreening.cql"/>
</content>
</Library>