Common CQL Artifacts for FHIR (US-Based)
1.0.0-ballot - STU 1 Ballot United States of America flag

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

: Expression Library for the Genetic/Molecular testing preauthorization Example - TTL Representation

Page standards status: Informative Maturity Level: 3

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "GMTPInitialExpressions"] ; # 
  fhir:text [
fhir:status [ fhir:v "extensions" ] ;
fhir: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 Genetic/Molecular testing preauthorization Example</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">GMTPInitialExpressions</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-GMTPInitialExpressions.html\">Expression Library for the Genetic/Molecular testing preauthorization Example</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>Initial expressions for use in populating answers to questions in the Genetic/Molecular testing preauthorization example 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 GMTPInitialExpressions\n\nusing USCore version '7.0.0'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude USCoreCommon called UC\ninclude USCoreElements called UCE\n\ncodesystem \"LOINC\": 'http://loinc.org'\ncodesystem \"Identifier Type\": 'http://terminology.hl7.org/CodeSystem/v2-0203'\ncode \"Member Number\": 'MB' from \"Identifier Type\"\n\nparameter \"Coverage\" FHIR.Coverage\nparameter \"ServiceRequest\" FHIR.ServiceRequest\n\ncontext Patient\n\ndefine \"All Problem List Items\":\n  UCE.\"All Problem List Items\"\n\n/*\n@question: Patient history (including age at diagnosis):\nTODO: Determine whether we should be considering encounter diagnoses and/or health concerns\nTODO: Determine whether age at onset is actually relevant, or if we would, in an automated context, just return the Condition resource\nTODO: Does \"age at diagnosis\" mean \"age at onset\" or is it really asking for when the diagnosis was recorded?\nTODO: Is there a version of patient history that is reusable here?\n*/\ndefine \"Patient history\":\n  UCE.\"All Problem List Items\" C\n    let prevalence: C.prevalenceInterval()\n    where C.isConfirmed()\n    return {\n      diagnosis: C.code.display,\n      ageAtOnset: ToString(AgeInYearsAt(start of prevalence)),\n      onset: ToString(start of prevalence),\n      abatement: ToString(if prevalence.hasEnd() then end of prevalence else null)\n    }\n\n/*\n@linkId: history|patient-history\n*/\ndefine \"Patient history including age at diagnosis\":\n  \"Patient history\" H\n    return H.diagnosis &amp; (', ' + H.ageAtOnset + ' yrs') &amp; (', abated ' + H.abatement)\n\ndefine \"Billing Provider Name\":\n  \"Billing Provider\".name\n\ndefine \"Billing Provider Phone\":\n  UC.Mobile(\"Billing Provider\".telecom).value\n\ndefine \"Billing Provider Address\":\n  { 'TODO: remove hard-coded address' }\n\ndefine \"Retrieve Member Coverage test parameter\":\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    'Coverage-example-GMTP', // testcase: GMTP-example-patient-2\n    'coverage-GMTP-1'        // testcase: USCorePatient-GMTP-1\n  })\n\ndefine \"Member Coverage\":\n  Coalesce(\n    Coverage,\n    \"Retrieve Member Coverage test parameter\"\n  )\n\ndefine \"Retrieve Service Request test parameter\":\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    'ServiceRequest-example-1-GMTP',       // testcase: GMTP-example-patient-2\n    'service-request-USCorePatient-GMTP-1' // testcase: USCorePatient-GMTP-1\n  })\n\ndefine \"Most Recent ServiceRequest\":\n  Coalesce(\n    ServiceRequest,\n    \"Retrieve Service Request test parameter\"\n  )\n\ndefine \"Billing Provider\":\n  UCE.BillingProvider(\"Member Coverage\")\n\ndefine \"Billing Provider NPI\":\n  \"Billing Provider\".identifier I \n  where I.system = 'http://hl7.org/fhir/sid/us-npi'\n  return I.value\n\ndefine \"Billing Provider Fax\":\n  \"Billing Provider\".telecom T\n  where T.system = 'fax'\n  return T.value\n\ndefine \"Date of Service\":\n  \"Most Recent ServiceRequest\".occurrence.value\n\ndefine \"Requested Test\":\n  \"Most Recent ServiceRequest\".code\n\ndefine \"Test ID\":\n  Combine(\"Requested Test\".coding.code.value, ', ') \n\ndefine \"Test name\":\n   Combine(\"Requested Test\".coding.display.value, ', ')\n\ndefine \"ALL ICD and CPT Test Codes\":\n   \"Test ICD Codes\" union \"Test CPT Codes\"\n\ndefine \"Test ICD Codes\":\n \"Requested Test\".coding C\n  where C.system.value = 'http://hl7.org/fhir/sid/icd-10-cm'\n  return C.code.value\n  \ndefine \"Test CPT Codes\":\n  \"Requested Test\".coding C\n  where C.system.value =  'http://www.ama-assn.org/go/cpt'\n  return C.code.value\n\ndefine \"Test Related Condition\":\n  UCE.RelatedCondition(\"Most Recent ServiceRequest\")\n  //.reasonReference changed to .reason in FHIR R5\n\ndefine \"Diagnosis Descriptions\":\n  \"Test Related Condition\".code.coding.display.value\n\ndefine \"Billing Provider different from Servicing Provider\":\n  if \"Billing Provider\".id != First(UCE.ServicingProvider(\"Most Recent ServiceRequest\").id) then\n  'Yes'\n  else \n  'No'\n\ndefine \"Clinical Trial Organization\":\n  First(UCE.\"Clinical Trial Organization\" O \n    with \"Clinical Trial\"  T such that EndsWith(T.sponsor.reference, O.id))  \n //in FHIR R5 T.associatedParty instead of T.sponsor \n\ndefine \"BillingProvider is Clinical Trial Organization\":\n  \"Billing Provider\" = \"Clinical Trial Organization\"\n\n//TODO does not get populated properly\ndefine \"Part of clinical trial\":\n if \"Is Research Subject\" and \"BillingProvider is Clinical Trial Organization\" then\n 'Yes'\n else\n 'No'\n\ndefine \"Is Research Subject\":\n  exists(\"Research Subject\")\n\ndefine \"Research Subject\":\n  UCE.\"Research Subject\"\n     //ResearchSubject.individual is from FHIR version v4.0.1 and has been replaced by R.subject in FHIR R5\n\ndefine \"Clinical Trial\":\n  UCE.\"All Clinical Trials\" R \n    with \"Research Subject\" S such that EndsWith(S.study.reference, R.id)\n    with  \"Test Related Condition\" C such that C.code in R.condition\n\ndefine \"Clinical Trial ID\":\n  \"Clinical Trial\".identifier C\n  where C.system = 'https://clinicaltrials.gov'\n  return C.value.value\n\ndefine \"Previous genetic testing for condition\":\n  from \n    UCE.\"All ServiceRequests\" S,\n    ServiceRequest SR\n  where S.occurrence before SR.occurrence\n    and S.id != SR.id\n    and S.reasonReference = SR.reasonReference\n  return S.id.value\n\n//define \"Family history of genetic testing\"\n//too general to prefill?</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>"^^rdf:XMLLiteral
  ] ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm"^^xsd:anyURI ] ;
fhir:value [
a fhir:integer ;
fhir:v 3     ]
  ] [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"^^xsd:anyURI ] ;
fhir:value [
a fhir:code ;
fhir:v "cds"     ]
  ] [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status"^^xsd:anyURI ] ;
fhir:value [
a fhir:code ;
fhir:v "informative"     ]
  ] ) ; # 
  fhir:url [ fhir:v "http://hl7.org/fhir/us/cql/Library/GMTPInitialExpressions"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "1.0.0-ballot"] ; # 
  fhir:name [ fhir:v "GMTPInitialExpressions"] ; # 
  fhir:title [ fhir:v "Expression Library for the Genetic/Molecular testing preauthorization Example"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v true] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2025-09-10T20:00:05+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "HL7 International / Clinical Decision Support"] ; # 
  fhir:contact ( [
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://www.hl7.org/Special/committees/dss" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "Initial expressions for use in populating answers to questions in the Genetic/Molecular testing preauthorization example questionnaire."] ; # 
  fhir:jurisdiction ( [
    ( fhir:coding [
fhir:system [ fhir:v "urn:iso:std:iso:3166"^^xsd:anyURI ] ;
fhir:code [ fhir:v "US" ] ;
fhir:display [ fhir:v "United States of America" ]     ] )
  ] ) ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "bGlicmFyeSBHTVRQSW5pdGlhbEV4cHJlc3Npb25zCgp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNy4wLjAnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgVVNDb3JlQ29tbW9uIGNhbGxlZCBVQwppbmNsdWRlIFVTQ29yZUVsZW1lbnRzIGNhbGxlZCBVQ0UKCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCmNvZGVzeXN0ZW0gIklkZW50aWZpZXIgVHlwZSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YyLTAyMDMnCmNvZGUgIk1lbWJlciBOdW1iZXIiOiAnTUInIGZyb20gIklkZW50aWZpZXIgVHlwZSIKCnBhcmFtZXRlciAiQ292ZXJhZ2UiIEZISVIuQ292ZXJhZ2UKcGFyYW1ldGVyICJTZXJ2aWNlUmVxdWVzdCIgRkhJUi5TZXJ2aWNlUmVxdWVzdAoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkFsbCBQcm9ibGVtIExpc3QgSXRlbXMiOgogIFVDRS4iQWxsIFByb2JsZW0gTGlzdCBJdGVtcyIKCi8qCkBxdWVzdGlvbjogUGF0aWVudCBoaXN0b3J5IChpbmNsdWRpbmcgYWdlIGF0IGRpYWdub3Npcyk6ClRPRE86IERldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBiZSBjb25zaWRlcmluZyBlbmNvdW50ZXIgZGlhZ25vc2VzIGFuZC9vciBoZWFsdGggY29uY2VybnMKVE9ETzogRGV0ZXJtaW5lIHdoZXRoZXIgYWdlIGF0IG9uc2V0IGlzIGFjdHVhbGx5IHJlbGV2YW50LCBvciBpZiB3ZSB3b3VsZCwgaW4gYW4gYXV0b21hdGVkIGNvbnRleHQsIGp1c3QgcmV0dXJuIHRoZSBDb25kaXRpb24gcmVzb3VyY2UKVE9ETzogRG9lcyAiYWdlIGF0IGRpYWdub3NpcyIgbWVhbiAiYWdlIGF0IG9uc2V0IiBvciBpcyBpdCByZWFsbHkgYXNraW5nIGZvciB3aGVuIHRoZSBkaWFnbm9zaXMgd2FzIHJlY29yZGVkPwpUT0RPOiBJcyB0aGVyZSBhIHZlcnNpb24gb2YgcGF0aWVudCBoaXN0b3J5IHRoYXQgaXMgcmV1c2FibGUgaGVyZT8KKi8KZGVmaW5lICJQYXRpZW50IGhpc3RvcnkiOgogIFVDRS4iQWxsIFByb2JsZW0gTGlzdCBJdGVtcyIgQwogICAgbGV0IHByZXZhbGVuY2U6IEMucHJldmFsZW5jZUludGVydmFsKCkKICAgIHdoZXJlIEMuaXNDb25maXJtZWQoKQogICAgcmV0dXJuIHsKICAgICAgZGlhZ25vc2lzOiBDLmNvZGUuZGlzcGxheSwKICAgICAgYWdlQXRPbnNldDogVG9TdHJpbmcoQWdlSW5ZZWFyc0F0KHN0YXJ0IG9mIHByZXZhbGVuY2UpKSwKICAgICAgb25zZXQ6IFRvU3RyaW5nKHN0YXJ0IG9mIHByZXZhbGVuY2UpLAogICAgICBhYmF0ZW1lbnQ6IFRvU3RyaW5nKGlmIHByZXZhbGVuY2UuaGFzRW5kKCkgdGhlbiBlbmQgb2YgcHJldmFsZW5jZSBlbHNlIG51bGwpCiAgICB9CgovKgpAbGlua0lkOiBoaXN0b3J5fHBhdGllbnQtaGlzdG9yeQoqLwpkZWZpbmUgIlBhdGllbnQgaGlzdG9yeSBpbmNsdWRpbmcgYWdlIGF0IGRpYWdub3NpcyI6CiAgIlBhdGllbnQgaGlzdG9yeSIgSAogICAgcmV0dXJuIEguZGlhZ25vc2lzICYgKCcsICcgKyBILmFnZUF0T25zZXQgKyAnIHlycycpICYgKCcsIGFiYXRlZCAnICsgSC5hYmF0ZW1lbnQpCgpkZWZpbmUgIkJpbGxpbmcgUHJvdmlkZXIgTmFtZSI6CiAgIkJpbGxpbmcgUHJvdmlkZXIiLm5hbWUKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciBQaG9uZSI6CiAgVUMuTW9iaWxlKCJCaWxsaW5nIFByb3ZpZGVyIi50ZWxlY29tKS52YWx1ZQoKZGVmaW5lICJCaWxsaW5nIFByb3ZpZGVyIEFkZHJlc3MiOgogIHsgJ1RPRE86IHJlbW92ZSBoYXJkLWNvZGVkIGFkZHJlc3MnIH0KCmRlZmluZSAiUmV0cmlldmUgTWVtYmVyIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIjoKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLkNvdmVyYWdlXSBDViB3aGVyZSBDVi5pZCBpbiB7CiAgICAnQ292ZXJhZ2UtZXhhbXBsZS1HTVRQJywgLy8gdGVzdGNhc2U6IEdNVFAtZXhhbXBsZS1wYXRpZW50LTIKICAgICdjb3ZlcmFnZS1HTVRQLTEnICAgICAgICAvLyB0ZXN0Y2FzZTogVVNDb3JlUGF0aWVudC1HTVRQLTEKICB9KQoKZGVmaW5lICJNZW1iZXIgQ292ZXJhZ2UiOgogIENvYWxlc2NlKAogICAgQ292ZXJhZ2UsCiAgICAiUmV0cmlldmUgTWVtYmVyIENvdmVyYWdlIHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIjoKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtGSElSLlNlcnZpY2VSZXF1ZXN0XSBTUiB3aGVyZSBTUi5pZCBpbiB7CiAgICAnU2VydmljZVJlcXVlc3QtZXhhbXBsZS0xLUdNVFAnLCAgICAgICAvLyB0ZXN0Y2FzZTogR01UUC1leGFtcGxlLXBhdGllbnQtMgogICAgJ3NlcnZpY2UtcmVxdWVzdC1VU0NvcmVQYXRpZW50LUdNVFAtMScgLy8gdGVzdGNhc2U6IFVTQ29yZVBhdGllbnQtR01UUC0xCiAgfSkKCmRlZmluZSAiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiOgogIENvYWxlc2NlKAogICAgU2VydmljZVJlcXVlc3QsCiAgICAiUmV0cmlldmUgU2VydmljZSBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciI6CiAgVUNFLkJpbGxpbmdQcm92aWRlcigiTWVtYmVyIENvdmVyYWdlIikKCmRlZmluZSAiQmlsbGluZyBQcm92aWRlciBOUEkiOgogICJCaWxsaW5nIFByb3ZpZGVyIi5pZGVudGlmaWVyIEkgCiAgd2hlcmUgSS5zeXN0ZW0gPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvdXMtbnBpJwogIHJldHVybiBJLnZhbHVlCgpkZWZpbmUgIkJpbGxpbmcgUHJvdmlkZXIgRmF4IjoKICAiQmlsbGluZyBQcm92aWRlciIudGVsZWNvbSBUCiAgd2hlcmUgVC5zeXN0ZW0gPSAnZmF4JwogIHJldHVybiBULnZhbHVlCgpkZWZpbmUgIkRhdGUgb2YgU2VydmljZSI6CiAgIk1vc3QgUmVjZW50IFNlcnZpY2VSZXF1ZXN0Ii5vY2N1cnJlbmNlLnZhbHVlCgpkZWZpbmUgIlJlcXVlc3RlZCBUZXN0IjoKICAiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiLmNvZGUKCmRlZmluZSAiVGVzdCBJRCI6CiAgQ29tYmluZSgiUmVxdWVzdGVkIFRlc3QiLmNvZGluZy5jb2RlLnZhbHVlLCAnLCAnKSAKCmRlZmluZSAiVGVzdCBuYW1lIjoKICAgQ29tYmluZSgiUmVxdWVzdGVkIFRlc3QiLmNvZGluZy5kaXNwbGF5LnZhbHVlLCAnLCAnKQoKZGVmaW5lICJBTEwgSUNEIGFuZCBDUFQgVGVzdCBDb2RlcyI6CiAgICJUZXN0IElDRCBDb2RlcyIgdW5pb24gIlRlc3QgQ1BUIENvZGVzIgoKZGVmaW5lICJUZXN0IElDRCBDb2RlcyI6CiAiUmVxdWVzdGVkIFRlc3QiLmNvZGluZyBDCiAgd2hlcmUgQy5zeXN0ZW0udmFsdWUgPSAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwogIHJldHVybiBDLmNvZGUudmFsdWUKICAKZGVmaW5lICJUZXN0IENQVCBDb2RlcyI6CiAgIlJlcXVlc3RlZCBUZXN0Ii5jb2RpbmcgQwogIHdoZXJlIEMuc3lzdGVtLnZhbHVlID0gICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnCiAgcmV0dXJuIEMuY29kZS52YWx1ZQoKZGVmaW5lICJUZXN0IFJlbGF0ZWQgQ29uZGl0aW9uIjoKICBVQ0UuUmVsYXRlZENvbmRpdGlvbigiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiKQogIC8vLnJlYXNvblJlZmVyZW5jZSBjaGFuZ2VkIHRvIC5yZWFzb24gaW4gRkhJUiBSNQoKZGVmaW5lICJEaWFnbm9zaXMgRGVzY3JpcHRpb25zIjoKICAiVGVzdCBSZWxhdGVkIENvbmRpdGlvbiIuY29kZS5jb2RpbmcuZGlzcGxheS52YWx1ZQoKZGVmaW5lICJCaWxsaW5nIFByb3ZpZGVyIGRpZmZlcmVudCBmcm9tIFNlcnZpY2luZyBQcm92aWRlciI6CiAgaWYgIkJpbGxpbmcgUHJvdmlkZXIiLmlkICE9IEZpcnN0KFVDRS5TZXJ2aWNpbmdQcm92aWRlcigiTW9zdCBSZWNlbnQgU2VydmljZVJlcXVlc3QiKS5pZCkgdGhlbgogICdZZXMnCiAgZWxzZSAKICAnTm8nCgpkZWZpbmUgIkNsaW5pY2FsIFRyaWFsIE9yZ2FuaXphdGlvbiI6CiAgRmlyc3QoVUNFLiJDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iIE8gCiAgICB3aXRoICJDbGluaWNhbCBUcmlhbCIgIFQgc3VjaCB0aGF0IEVuZHNXaXRoKFQuc3BvbnNvci5yZWZlcmVuY2UsIE8uaWQpKSAgCiAvL2luIEZISVIgUjUgVC5hc3NvY2lhdGVkUGFydHkgaW5zdGVhZCBvZiBULnNwb25zb3IgCgpkZWZpbmUgIkJpbGxpbmdQcm92aWRlciBpcyBDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iOgogICJCaWxsaW5nIFByb3ZpZGVyIiA9ICJDbGluaWNhbCBUcmlhbCBPcmdhbml6YXRpb24iCgovL1RPRE8gZG9lcyBub3QgZ2V0IHBvcHVsYXRlZCBwcm9wZXJseQpkZWZpbmUgIlBhcnQgb2YgY2xpbmljYWwgdHJpYWwiOgogaWYgIklzIFJlc2VhcmNoIFN1YmplY3QiIGFuZCAiQmlsbGluZ1Byb3ZpZGVyIGlzIENsaW5pY2FsIFRyaWFsIE9yZ2FuaXphdGlvbiIgdGhlbgogJ1llcycKIGVsc2UKICdObycKCmRlZmluZSAiSXMgUmVzZWFyY2ggU3ViamVjdCI6CiAgZXhpc3RzKCJSZXNlYXJjaCBTdWJqZWN0IikKCmRlZmluZSAiUmVzZWFyY2ggU3ViamVjdCI6CiAgVUNFLiJSZXNlYXJjaCBTdWJqZWN0IgogICAgIC8vUmVzZWFyY2hTdWJqZWN0LmluZGl2aWR1YWwgaXMgZnJvbSBGSElSIHZlcnNpb24gdjQuMC4xIGFuZCBoYXMgYmVlbiByZXBsYWNlZCBieSBSLnN1YmplY3QgaW4gRkhJUiBSNQoKZGVmaW5lICJDbGluaWNhbCBUcmlhbCI6CiAgVUNFLiJBbGwgQ2xpbmljYWwgVHJpYWxzIiBSIAogICAgd2l0aCAiUmVzZWFyY2ggU3ViamVjdCIgUyBzdWNoIHRoYXQgRW5kc1dpdGgoUy5zdHVkeS5yZWZlcmVuY2UsIFIuaWQpCiAgICB3aXRoICAiVGVzdCBSZWxhdGVkIENvbmRpdGlvbiIgQyBzdWNoIHRoYXQgQy5jb2RlIGluIFIuY29uZGl0aW9uCgpkZWZpbmUgIkNsaW5pY2FsIFRyaWFsIElEIjoKICAiQ2xpbmljYWwgVHJpYWwiLmlkZW50aWZpZXIgQwogIHdoZXJlIEMuc3lzdGVtID0gJ2h0dHBzOi8vY2xpbmljYWx0cmlhbHMuZ292JwogIHJldHVybiBDLnZhbHVlLnZhbHVlCgpkZWZpbmUgIlByZXZpb3VzIGdlbmV0aWMgdGVzdGluZyBmb3IgY29uZGl0aW9uIjoKICBmcm9tIAogICAgVUNFLiJBbGwgU2VydmljZVJlcXVlc3RzIiBTLAogICAgU2VydmljZVJlcXVlc3QgU1IKICB3aGVyZSBTLm9jY3VycmVuY2UgYmVmb3JlIFNSLm9jY3VycmVuY2UKICAgIGFuZCBTLmlkICE9IFNSLmlkCiAgICBhbmQgUy5yZWFzb25SZWZlcmVuY2UgPSBTUi5yZWFzb25SZWZlcmVuY2UKICByZXR1cm4gUy5pZC52YWx1ZQoKLy9kZWZpbmUgIkZhbWlseSBoaXN0b3J5IG9mIGdlbmV0aWMgdGVzdGluZyIKLy90b28gZ2VuZXJhbCB0byBwcmVmaWxsPw=="^^xsd:base64Binary ]
  ] [
fhir:contentType [ fhir:v "application/elm+xml" ]
  ] ) . #