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 |
{
"resourceType" : "Library",
"id" : "ExamplePatientAndCoverageInitialExpressions",
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n <table class=\"grid dict\">\n \n \n <tr>\n <th scope=\"row\"><b>Title: </b></th>\n <td style=\"padding-left: 4px;\">Expression Library for the Example Patient And Coverage Questionnaire</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">ExamplePatientAndCoverageInitialExpressions</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">1.0.0-ballot</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Url: </b></th>\n <td style=\"padding-left: 4px;\"><a href=\"Library-ExamplePatientAndCoverageInitialExpressions.html\">Expression Library for the Example Patient And Coverage Questionnaire</a></td>\n </tr>\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Status: </b></th>\n <td style=\"padding-left: 4px;\">draft</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Experimental: </b></th>\n <td style=\"padding-left: 4px;\">true</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Type: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p style=\"margin-bottom: 5px;\">\n <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>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>logic-library</span>\n </p>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Date: </b></th>\n <td style=\"padding-left: 4px;\">2025-09-10 20:00:05+0000</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">HL7 International / Clinical Decision Support</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\"><div><p>This library defines initial expressions for use in populating answers to questions in the Example Patient And Coverage questionnaire.</p>\n</div></td>\n </tr>\n \n\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Jurisdiction: </b></th>\n <td style=\"padding-left: 4px;\">US</td>\n </tr>\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n <tr><td><pre><code class=\"language-cql\">library ExamplePatientAndCoverageInitialExpressions\n\nusing USCore version '7.0.0'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1'\ninclude USCoreCommon called UC\ninclude USCoreElements called UCE\n\ncodesystem "Identifier Type": 'http://terminology.hl7.org/CodeSystem/v2-0203'\n\ncode "Member Number": 'MB' from "Identifier Type"\ncode "Subscriber Number": 'SN' from "Identifier Type"\n\nparameter "Coverage" FHIR.Coverage\nparameter "ServiceRequest" FHIR.ServiceRequest\n\ncontext Patient\n\ndefine "Retrieve Service Request test parameter":\n // The VSCode extension doesn't support parameters\n // When executing CQL with the VSCode extension retrieve the resource specific for the test case\n // the list of resource ids match the resources from the test case folders\n singleton from ([FHIR.ServiceRequest] SR where SR.id in { \n 'minimal-service-request-example'\n })\n\ndefine "Service Request":\n Coalesce(\n ServiceRequest,\n "Retrieve Service Request test parameter"\n )\n\ndefine "Retrieve Coverage test parameter":\n // The VSCode extension doesn't support parameters\n // When executing CQL with the VSCode extension retrieve the resource specific for the test case\n // the list of resource ids match the resources from the test case folders\n singleton from ([FHIR.Coverage] CV where CV.id in { \n 'minimal-coverage-example'\n })\n\ndefine "Member Coverage":\n Coalesce(\n Coverage,\n "Retrieve Coverage test parameter"\n )\n\ndefine "Patient Name":\n UCE."Name - First Middle(s) Last"\n\ndefine "Date of Birth":\n Patient.birthDate\n\ndefine "Birth Sex":\n Patient.birthsex\n\ndefine "Medical Record Number":\n UCE."Medical Record Number"\n\ndefine "Phone Number":\n UC.Mobile(Patient.telecom).value\n\ndefine "Email Address":\n UC.Email(Patient.telecom).value\n\ndefine "Address":\n (singleton from Patient.address).line\n\ndefine "City":\n Patient.address.city\n\ndefine "State":\n Patient.address.state\n\ndefine "Postal Code":\n Patient.address.postalCode\n\n// Coverage\n// define "Coverage":\n// First(clinical C where C is FHIR.Coverage)\n\n// TODO: is there a need to check for coverage period and order? \n// also, do we need to check that the payor organization is the same as the source of the prior auth form?\ndefine "Member ID":\n UCE.MemberID("Member Coverage").value\n\n// TODO: is there a need to check for coverage period and order?\n// also do we need to check that the payor organization is the same as the source of the prior auth form?\ndefine "Policy Number":\n UCE.PolicyNumber("Member Coverage").value\n\ndefine "Requesting Provider":\n UCE.RequestingProvider("Service Request")\n\ndefine "Requesting Provider Name":\n "Requesting Provider".name.family\n\ndefine "Requesting Provider Phone":\n UC.Work("Requesting Provider".telecom).value\n\ndefine "Requesting Provider Address":\n (singleton from "Requesting Provider".address).line\n\ndefine "Requesting Provider NPI":\n "Requesting Provider".identifier I \n where I.system = 'http://hl7.org/fhir/sid/us-npi'\n return I.value\n\ndefine "Requesting Provider Fax":\n "Requesting Provider".telecom T\n where T.system = 'fax'\n return T.value\n\ndefine "Servicing Provider":\n UCE.ServicingProvider("Service Request")\n\ndefine "Servicing Provider Name":\n "Servicing Provider".name\n\ndefine "Servicing Provider Phone":\n UC.Work("Servicing Provider".telecom).value\n\ndefine "Servicing Provider Address":\n (singleton from "Servicing Provider".address).text\n\ndefine "Servicing Provider NPI":\n "Servicing Provider".identifier I \n where I.system = 'http://hl7.org/fhir/sid/us-npi'\n return I.value\n\ndefine "Servicing Provider Fax":\n "Servicing Provider".telecom T\n where T.system = 'fax'\n return T.value</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><b>Content: </b> application/elm+xml</th></tr>\n <tr><td><pre><code/></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n </table>\n</div>\n</div>"
},
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger" : 3
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode" : "cds"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode" : "informative"
}
],
"url" : "http://hl7.org/fhir/us/cql/Library/ExamplePatientAndCoverageInitialExpressions",
"version" : "1.0.0-ballot",
"name" : "ExamplePatientAndCoverageInitialExpressions",
"title" : "Expression Library for the Example Patient And Coverage Questionnaire",
"status" : "draft",
"experimental" : true,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2025-09-10T20:00:05+00:00",
"publisher" : "HL7 International / Clinical Decision Support",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/dss"
}
]
}
],
"description" : "This library defines initial expressions for use in populating answers to questions in the Example Patient And Coverage questionnaire.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "bGlicmFyeSBFeGFtcGxlUGF0aWVudEFuZENvdmVyYWdlSW5pdGlhbEV4cHJlc3Npb25zCgp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNy4wLjAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBVU0NvcmVDb21tb24gY2FsbGVkIFVDCmluY2x1ZGUgVVNDb3JlRWxlbWVudHMgY2FsbGVkIFVDRQoKY29kZXN5c3RlbSAiSWRlbnRpZmllciBUeXBlIjogJ2h0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vdjItMDIwMycKCmNvZGUgIk1lbWJlciBOdW1iZXIiOiAnTUInIGZyb20gIklkZW50aWZpZXIgVHlwZSIKY29kZSAiU3Vic2NyaWJlciBOdW1iZXIiOiAnU04nIGZyb20gIklkZW50aWZpZXIgVHlwZSIKCnBhcmFtZXRlciAiQ292ZXJhZ2UiIEZISVIuQ292ZXJhZ2UKcGFyYW1ldGVyICJTZXJ2aWNlUmVxdWVzdCIgRkhJUi5TZXJ2aWNlUmVxdWVzdAoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIlJldHJpZXZlIFNlcnZpY2UgUmVxdWVzdCB0ZXN0IHBhcmFtZXRlciI6CiAgLy8gVGhlIFZTQ29kZSBleHRlbnNpb24gZG9lc24ndCBzdXBwb3J0IHBhcmFtZXRlcnMKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLlNlcnZpY2VSZXF1ZXN0XSBTUiB3aGVyZSBTUi5pZCBpbiB7IAogICAgJ21pbmltYWwtc2VydmljZS1yZXF1ZXN0LWV4YW1wbGUnCiAgfSkKCmRlZmluZSAiU2VydmljZSBSZXF1ZXN0IjoKICBDb2FsZXNjZSgKICAgIFNlcnZpY2VSZXF1ZXN0LAogICAgIlJldHJpZXZlIFNlcnZpY2UgUmVxdWVzdCB0ZXN0IHBhcmFtZXRlciIKICApCgpkZWZpbmUgIlJldHJpZXZlIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIjoKICAvLyBUaGUgVlNDb2RlIGV4dGVuc2lvbiBkb2Vzbid0IHN1cHBvcnQgcGFyYW1ldGVycwogIC8vIFdoZW4gZXhlY3V0aW5nIENRTCB3aXRoIHRoZSBWU0NvZGUgZXh0ZW5zaW9uIHJldHJpZXZlIHRoZSByZXNvdXJjZSBzcGVjaWZpYyBmb3IgdGhlIHRlc3QgY2FzZQogIC8vICAgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaWRzIG1hdGNoIHRoZSByZXNvdXJjZXMgZnJvbSB0aGUgdGVzdCBjYXNlIGZvbGRlcnMKICBzaW5nbGV0b24gZnJvbSAoW0ZISVIuQ292ZXJhZ2VdIENWIHdoZXJlIENWLmlkIGluIHsgCiAgICAnbWluaW1hbC1jb3ZlcmFnZS1leGFtcGxlJwogIH0pCgpkZWZpbmUgIk1lbWJlciBDb3ZlcmFnZSI6CiAgQ29hbGVzY2UoCiAgICBDb3ZlcmFnZSwKICAgICJSZXRyaWV2ZSBDb3ZlcmFnZSB0ZXN0IHBhcmFtZXRlciIKICApCgpkZWZpbmUgIlBhdGllbnQgTmFtZSI6CiAgVUNFLiJOYW1lIC0gRmlyc3QgTWlkZGxlKHMpIExhc3QiCgpkZWZpbmUgIkRhdGUgb2YgQmlydGgiOgogIFBhdGllbnQuYmlydGhEYXRlCgpkZWZpbmUgIkJpcnRoIFNleCI6CiAgUGF0aWVudC5iaXJ0aHNleAoKZGVmaW5lICJNZWRpY2FsIFJlY29yZCBOdW1iZXIiOgogIFVDRS4iTWVkaWNhbCBSZWNvcmQgTnVtYmVyIgoKZGVmaW5lICJQaG9uZSBOdW1iZXIiOgogIFVDLk1vYmlsZShQYXRpZW50LnRlbGVjb20pLnZhbHVlCgpkZWZpbmUgIkVtYWlsIEFkZHJlc3MiOgogIFVDLkVtYWlsKFBhdGllbnQudGVsZWNvbSkudmFsdWUKCmRlZmluZSAiQWRkcmVzcyI6CiAgKHNpbmdsZXRvbiBmcm9tIFBhdGllbnQuYWRkcmVzcykubGluZQoKZGVmaW5lICJDaXR5IjoKICBQYXRpZW50LmFkZHJlc3MuY2l0eQoKZGVmaW5lICJTdGF0ZSI6CiAgUGF0aWVudC5hZGRyZXNzLnN0YXRlCgpkZWZpbmUgIlBvc3RhbCBDb2RlIjoKICBQYXRpZW50LmFkZHJlc3MucG9zdGFsQ29kZQoKLy8gQ292ZXJhZ2UKLy8gZGVmaW5lICJDb3ZlcmFnZSI6Ci8vICAgRmlyc3QoY2xpbmljYWwgQyB3aGVyZSBDIGlzIEZISVIuQ292ZXJhZ2UpCgovLyBUT0RPOiBpcyB0aGVyZSBhIG5lZWQgdG8gY2hlY2sgZm9yIGNvdmVyYWdlIHBlcmlvZCBhbmQgb3JkZXI/IAovLyAgICAgICBhbHNvLCBkbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIHBheW9yIG9yZ2FuaXphdGlvbiBpcyB0aGUgc2FtZSBhcyB0aGUgc291cmNlIG9mIHRoZSBwcmlvciBhdXRoIGZvcm0/CmRlZmluZSAiTWVtYmVyIElEIjoKICBVQ0UuTWVtYmVySUQoIk1lbWJlciBDb3ZlcmFnZSIpLnZhbHVlCgovLyBUT0RPOiBpcyB0aGVyZSBhIG5lZWQgdG8gY2hlY2sgZm9yIGNvdmVyYWdlIHBlcmlvZCBhbmQgb3JkZXI/Ci8vICAgICAgIGFsc28gZG8gd2UgbmVlZCB0byBjaGVjayB0aGF0IHRoZSBwYXlvciBvcmdhbml6YXRpb24gaXMgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBvZiB0aGUgcHJpb3IgYXV0aCBmb3JtPwpkZWZpbmUgIlBvbGljeSBOdW1iZXIiOgogIFVDRS5Qb2xpY3lOdW1iZXIoIk1lbWJlciBDb3ZlcmFnZSIpLnZhbHVlCgpkZWZpbmUgIlJlcXVlc3RpbmcgUHJvdmlkZXIiOgogIFVDRS5SZXF1ZXN0aW5nUHJvdmlkZXIoIlNlcnZpY2UgUmVxdWVzdCIpCgpkZWZpbmUgIlJlcXVlc3RpbmcgUHJvdmlkZXIgTmFtZSI6CiAgIlJlcXVlc3RpbmcgUHJvdmlkZXIiLm5hbWUuZmFtaWx5CgpkZWZpbmUgIlJlcXVlc3RpbmcgUHJvdmlkZXIgUGhvbmUiOgogIFVDLldvcmsoIlJlcXVlc3RpbmcgUHJvdmlkZXIiLnRlbGVjb20pLnZhbHVlCgpkZWZpbmUgIlJlcXVlc3RpbmcgUHJvdmlkZXIgQWRkcmVzcyI6CiAgKHNpbmdsZXRvbiBmcm9tICJSZXF1ZXN0aW5nIFByb3ZpZGVyIi5hZGRyZXNzKS5saW5lCgpkZWZpbmUgIlJlcXVlc3RpbmcgUHJvdmlkZXIgTlBJIjoKICAiUmVxdWVzdGluZyBQcm92aWRlciIuaWRlbnRpZmllciBJIAogIHdoZXJlIEkuc3lzdGVtID0gJ2h0dHA6Ly9obDcub3JnL2ZoaXIvc2lkL3VzLW5waScKICByZXR1cm4gSS52YWx1ZQoKZGVmaW5lICJSZXF1ZXN0aW5nIFByb3ZpZGVyIEZheCI6CiAgIlJlcXVlc3RpbmcgUHJvdmlkZXIiLnRlbGVjb20gVAogIHdoZXJlIFQuc3lzdGVtID0gJ2ZheCcKICByZXR1cm4gVC52YWx1ZQoKZGVmaW5lICJTZXJ2aWNpbmcgUHJvdmlkZXIiOgogIFVDRS5TZXJ2aWNpbmdQcm92aWRlcigiU2VydmljZSBSZXF1ZXN0IikKCmRlZmluZSAiU2VydmljaW5nIFByb3ZpZGVyIE5hbWUiOgogICJTZXJ2aWNpbmcgUHJvdmlkZXIiLm5hbWUKCmRlZmluZSAiU2VydmljaW5nIFByb3ZpZGVyIFBob25lIjoKICBVQy5Xb3JrKCJTZXJ2aWNpbmcgUHJvdmlkZXIiLnRlbGVjb20pLnZhbHVlCgpkZWZpbmUgIlNlcnZpY2luZyBQcm92aWRlciBBZGRyZXNzIjoKICAoc2luZ2xldG9uIGZyb20gIlNlcnZpY2luZyBQcm92aWRlciIuYWRkcmVzcykudGV4dAoKZGVmaW5lICJTZXJ2aWNpbmcgUHJvdmlkZXIgTlBJIjoKICAiU2VydmljaW5nIFByb3ZpZGVyIi5pZGVudGlmaWVyIEkgCiAgd2hlcmUgSS5zeXN0ZW0gPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvdXMtbnBpJwogIHJldHVybiBJLnZhbHVlCgpkZWZpbmUgIlNlcnZpY2luZyBQcm92aWRlciBGYXgiOgogICJTZXJ2aWNpbmcgUHJvdmlkZXIiLnRlbGVjb20gVAogIHdoZXJlIFQuc3lzdGVtID0gJ2ZheCcKICByZXR1cm4gVC52YWx1ZQ=="
},
{
"contentType" : "application/elm+xml"
}
]
}