Common CQL Artifacts for FHIR (US-Based)
1.0.0-ballot - STU 1 Ballot
Common CQL Artifacts for FHIR (US-Based), published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/us-cql-ig/ and changes regularly. See the Directory of published versions
Page standards status: Informative | Maturity Level: 3 |
<Library xmlns="http://hl7.org/fhir">
<id value="MNACInitialExpressions"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<div>
<table class="grid dict">
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">Expression Library for the Medical Necessity For Authorization Of Catheters Example</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">MNACInitialExpressions</td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">1.0.0-ballot</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="Library-MNACInitialExpressions.html">Expression Library for the Medical Necessity For Authorization Of Catheters Example</a></td>
</tr>
<tr>
<th scope="row"><b>Status: </b></th>
<td style="padding-left: 4px;">draft</td>
</tr>
<tr>
<th scope="row"><b>Experimental: </b></th>
<td style="padding-left: 4px;">true</td>
</tr>
<tr>
<th scope="row"><b>Type: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<b>system: </b> <span><a href="http://terminology.hl7.org/6.5.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>logic-library</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 4px;">2025-09-10 20:00:05+0000</td>
</tr>
<tr>
<th scope="row"><b>Publisher: </b></th>
<td style="padding-left: 4px;">HL7 International / Clinical Decision Support</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;"><div><p>This library defines initial expressions for use in populating answers to questions in the Medical Necessity For Authorization Of Catheters example questionnaire.</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Jurisdiction: </b></th>
<td style="padding-left: 4px;">US</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
<tr><td><pre><code class="language-cql">library MNACInitialExpressions
using USCore version '7.0.0'
using FHIR version '4.0.1'
include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1'
include USCoreCommon called UC
include USCoreElements called UCE
codesystem "Identifier Type": 'http://terminology.hl7.org/CodeSystem/v2-0203'
codesystem "ICD10": 'http://hl7.org/fhir/sid/icd-10-cm'
codesystem "SNOMED CT": 'http://snomed.info/sct'
code "Member Number": 'MB' from "Identifier Type"
code "UTI": 'T83.5' from "ICD10"
code "Abnormal Urine Finding": '102866000' from "SNOMED CT"
parameter "ServiceRequest" FHIR.ServiceRequest
context Patient
define "Retrieve Service Request test parameter":
// The VSCode extension doesn't support parameters
// When executing CQL with the VSCode extension retrieve the resource specific for the test case
// the list of resource ids match the resources from the test case folders
singleton from ([FHIR.ServiceRequest] SR where SR.id in {
'service-request-example'})
define "Service Request":
Coalesce(
ServiceRequest,
"Retrieve Service Request test parameter"
)
define "Date of Request":
"Service Request".authoredOn.value
//https://www.hca.wa.gov/assets/billers-and-providers/13-760.pdf
define "Diagnosis":
First("SR Related Condition".code).text.value
define "Item Requested":
"Service Request".code.coding.display.value
define "UTI in Last Year":
Exists("UTI Diagnostic Reports Last Year")
define "Lab Reports UTIs":
"UTI Diagnostic Reports Last Year".presentedForm
define "Dates of UTIs":
"UTI Diagnostic Reports Last Year".effective.value
//TODO: create example MedicationStatement
define "Antibiotics Used":
[FHIR.MedicationStatement] MS
where First(MS.reasonReference.reference) in "UTI Diagnostic Reports Last Year".id
define "Check Symptoms":
'TBD'
define "Fever Temperature":
'TBD'
define "Catheterization Frequency":
'TBD'
define "Additional Comment":
'TBD'
define "Physician Name":
"Requesting Physician".name.family
define "Physician Telephone":
UC.Mobile("Requesting Physician".telecom).value
define "Physician Fax":
Fax("Requesting Physician".telecom).value
define "Referring Physician Telephone":
'TBD'
define "Date":
Today()
//helper definitions
// define "All ServiceRequests":
// [FHIR.ServiceRequest]
// define "Most Recent ServiceRequest":
// UC.MostRecent("All ServiceRequests")
define "SR Related Condition":
[FHIR.Condition] C
where EndsWith(First("Service Request".reasonReference.reference.value), C.id)
define "UTI Diagnostic Reports Last Year":
[FHIR.DiagnosticReport] C
where "Abnormal Urine Finding".code in C.conclusionCode.coding.code
and C.effective > (Today() - 1 year)
define "Requesting Physician":
singleton from (
[USCore.PractitionerProfile] P
where EndsWith("Service Request".requester.reference, P.id))
define function Fax(contactPoints List<USCore.ContactPoint>):
singleton from (contactPoints P where P.system = 'fax')
</code></pre></td></tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr><th><b>Content: </b> application/elm+xml</th></tr>
<tr><td><pre><code/></pre></td></tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
<valueInteger value="3"/>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
<valueCode value="cds"/>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
<valueCode value="informative"/>
</extension>
<url value="http://hl7.org/fhir/us/cql/Library/MNACInitialExpressions"/>
<version value="1.0.0-ballot"/>
<name value="MNACInitialExpressions"/>
<title
value="Expression Library for the Medical Necessity For Authorization Of Catheters Example"/>
<status value="draft"/>
<experimental value="true"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2025-09-10T20:00:05+00:00"/>
<publisher value="HL7 International / Clinical Decision Support"/>
<contact>
<telecom>
<system value="url"/>
<value value="http://www.hl7.org/Special/committees/dss"/>
</telecom>
</contact>
<description
value="This library defines initial expressions for use in populating answers to questions in the Medical Necessity For Authorization Of Catheters example questionnaire."/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="US"/>
<display value="United States of America"/>
</coding>
</jurisdiction>
<content>
<contentType value="text/cql"/>
<data
value="bGlicmFyeSBNTkFDSW5pdGlhbEV4cHJlc3Npb25zCgp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNy4wLjAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBVU0NvcmVDb21tb24gY2FsbGVkIFVDCmluY2x1ZGUgVVNDb3JlRWxlbWVudHMgY2FsbGVkIFVDRQoKY29kZXN5c3RlbSAiSWRlbnRpZmllciBUeXBlIjogJ2h0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vdjItMDIwMycKY29kZXN5c3RlbSAiSUNEMTAiOiAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwpjb2Rlc3lzdGVtICJTTk9NRUQgQ1QiOiAnaHR0cDovL3Nub21lZC5pbmZvL3NjdCcKCmNvZGUgIk1lbWJlciBOdW1iZXIiOiAnTUInIGZyb20gIklkZW50aWZpZXIgVHlwZSIKY29kZSAiVVRJIjogJ1Q4My41JyBmcm9tICJJQ0QxMCIKY29kZSAiQWJub3JtYWwgVXJpbmUgRmluZGluZyI6ICcxMDI4NjYwMDAnIGZyb20gIlNOT01FRCBDVCIKCnBhcmFtZXRlciAiU2VydmljZVJlcXVlc3QiIEZISVIuU2VydmljZVJlcXVlc3QKCmNvbnRleHQgUGF0aWVudAoKZGVmaW5lICJSZXRyaWV2ZSBTZXJ2aWNlIFJlcXVlc3QgdGVzdCBwYXJhbWV0ZXIiOgogIC8vIFRoZSBWU0NvZGUgZXh0ZW5zaW9uIGRvZXNuJ3Qgc3VwcG9ydCBwYXJhbWV0ZXJzCiAgLy8gV2hlbiBleGVjdXRpbmcgQ1FMIHdpdGggdGhlIFZTQ29kZSBleHRlbnNpb24gcmV0cmlldmUgdGhlIHJlc291cmNlIHNwZWNpZmljIGZvciB0aGUgdGVzdCBjYXNlCiAgLy8gICB0aGUgbGlzdCBvZiByZXNvdXJjZSBpZHMgbWF0Y2ggdGhlIHJlc291cmNlcyBmcm9tIHRoZSB0ZXN0IGNhc2UgZm9sZGVycwogIHNpbmdsZXRvbiBmcm9tIChbRkhJUi5TZXJ2aWNlUmVxdWVzdF0gU1Igd2hlcmUgU1IuaWQgaW4geyAKICAgICdzZXJ2aWNlLXJlcXVlc3QtZXhhbXBsZSd9KQoKZGVmaW5lICJTZXJ2aWNlIFJlcXVlc3QiOgogIENvYWxlc2NlKAogICAgU2VydmljZVJlcXVlc3QsCiAgICAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiRGF0ZSBvZiBSZXF1ZXN0IjoKICAiU2VydmljZSBSZXF1ZXN0Ii5hdXRob3JlZE9uLnZhbHVlCgovL2h0dHBzOi8vd3d3LmhjYS53YS5nb3YvYXNzZXRzL2JpbGxlcnMtYW5kLXByb3ZpZGVycy8xMy03NjAucGRmCgpkZWZpbmUgIkRpYWdub3NpcyI6CiAgRmlyc3QoIlNSIFJlbGF0ZWQgQ29uZGl0aW9uIi5jb2RlKS50ZXh0LnZhbHVlCgpkZWZpbmUgIkl0ZW0gUmVxdWVzdGVkIjoKICAiU2VydmljZSBSZXF1ZXN0Ii5jb2RlLmNvZGluZy5kaXNwbGF5LnZhbHVlCgpkZWZpbmUgIlVUSSBpbiBMYXN0IFllYXIiOgogIEV4aXN0cygiVVRJIERpYWdub3N0aWMgUmVwb3J0cyBMYXN0IFllYXIiKQoKZGVmaW5lICJMYWIgUmVwb3J0cyBVVElzIjoKICAiVVRJIERpYWdub3N0aWMgUmVwb3J0cyBMYXN0IFllYXIiLnByZXNlbnRlZEZvcm0KCmRlZmluZSAiRGF0ZXMgb2YgVVRJcyI6CiAgIlVUSSBEaWFnbm9zdGljIFJlcG9ydHMgTGFzdCBZZWFyIi5lZmZlY3RpdmUudmFsdWUKCi8vVE9ETzogY3JlYXRlIGV4YW1wbGUgTWVkaWNhdGlvblN0YXRlbWVudApkZWZpbmUgIkFudGliaW90aWNzIFVzZWQiOgogIFtGSElSLk1lZGljYXRpb25TdGF0ZW1lbnRdIE1TCiAgICB3aGVyZSBGaXJzdChNUy5yZWFzb25SZWZlcmVuY2UucmVmZXJlbmNlKSBpbiAiVVRJIERpYWdub3N0aWMgUmVwb3J0cyBMYXN0IFllYXIiLmlkCgpkZWZpbmUgIkNoZWNrIFN5bXB0b21zIjoKICAnVEJEJwoKZGVmaW5lICJGZXZlciBUZW1wZXJhdHVyZSI6CiAgJ1RCRCcKCmRlZmluZSAiQ2F0aGV0ZXJpemF0aW9uIEZyZXF1ZW5jeSI6CiAgJ1RCRCcKCmRlZmluZSAiQWRkaXRpb25hbCBDb21tZW50IjoKICAnVEJEJwoKZGVmaW5lICJQaHlzaWNpYW4gTmFtZSI6CiAgIlJlcXVlc3RpbmcgUGh5c2ljaWFuIi5uYW1lLmZhbWlseSAKCmRlZmluZSAiUGh5c2ljaWFuIFRlbGVwaG9uZSI6CiAgVUMuTW9iaWxlKCJSZXF1ZXN0aW5nIFBoeXNpY2lhbiIudGVsZWNvbSkudmFsdWUKCmRlZmluZSAiUGh5c2ljaWFuIEZheCI6CiAgRmF4KCJSZXF1ZXN0aW5nIFBoeXNpY2lhbiIudGVsZWNvbSkudmFsdWUKCmRlZmluZSAiUmVmZXJyaW5nIFBoeXNpY2lhbiBUZWxlcGhvbmUiOgogICdUQkQnCgpkZWZpbmUgIkRhdGUiOgogIFRvZGF5KCkKCi8vaGVscGVyIGRlZmluaXRpb25zCi8vIGRlZmluZSAiQWxsIFNlcnZpY2VSZXF1ZXN0cyI6Ci8vICAgW0ZISVIuU2VydmljZVJlcXVlc3RdCgovLyBkZWZpbmUgIk1vc3QgUmVjZW50IFNlcnZpY2VSZXF1ZXN0IjoKLy8gICBVQy5Nb3N0UmVjZW50KCJBbGwgU2VydmljZVJlcXVlc3RzIikKCmRlZmluZSAiU1IgUmVsYXRlZCBDb25kaXRpb24iOgogIFtGSElSLkNvbmRpdGlvbl0gQwogIHdoZXJlIEVuZHNXaXRoKEZpcnN0KCJTZXJ2aWNlIFJlcXVlc3QiLnJlYXNvblJlZmVyZW5jZS5yZWZlcmVuY2UudmFsdWUpLCBDLmlkKQoKZGVmaW5lICJVVEkgRGlhZ25vc3RpYyBSZXBvcnRzIExhc3QgWWVhciI6CiAgW0ZISVIuRGlhZ25vc3RpY1JlcG9ydF0gQwogIHdoZXJlICJBYm5vcm1hbCBVcmluZSBGaW5kaW5nIi5jb2RlIGluIEMuY29uY2x1c2lvbkNvZGUuY29kaW5nLmNvZGUKICBhbmQgQy5lZmZlY3RpdmUJPiAoVG9kYXkoKSAtIDEgeWVhcikKCmRlZmluZSAiUmVxdWVzdGluZyBQaHlzaWNpYW4iOgogIHNpbmdsZXRvbiBmcm9tICgKICAgIFtVU0NvcmUuUHJhY3RpdGlvbmVyUHJvZmlsZV0gUAogIHdoZXJlIEVuZHNXaXRoKCJTZXJ2aWNlIFJlcXVlc3QiLnJlcXVlc3Rlci5yZWZlcmVuY2UsIFAuaWQpKQoKZGVmaW5lIGZ1bmN0aW9uIEZheChjb250YWN0UG9pbnRzIExpc3Q8VVNDb3JlLkNvbnRhY3RQb2ludD4pOgogIHNpbmdsZXRvbiBmcm9tIChjb250YWN0UG9pbnRzIFAgd2hlcmUgUC5zeXN0ZW0gPSAnZmF4JykK"/>
</content>
<content>
<contentType value="application/elm+xml"/>
</content>
</Library>