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

: AlaraCommonFunctions - JSON Representation

Draft as of 2026-09-19

Raw json | Download

{
  "resourceType" : "Library",
  "id" : "AlaraCommonFunctions",
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n  <table class=\"narrative-table\">\n    <tbody>\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"metadata\"> </a>Metadata</th>\n\n\n</tr>\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Version</th>\n\n\n\n<td class=\"content-container\">2.1.000</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Status</th>\n\n\n\n<td class=\"content-container\">Draft</td>\n\n\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Type</th>\n\n\n\n<td class=\"content-container\">\n    <a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library\n\n\n</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"parameters\"> </a>Parameters</th>\n\n\n</tr>\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Parameter</th>\n\n\n\n<td class=\"content-container\">None</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n  <tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Content</th>\n\n\n</tr>\n  \n    \n    <tr>\n      <th scope=\"row\" class=\"row-header\">CQL Content</th>\n      <td>\n        <a name=\"cql-content\"> </a>\n        <pre style=\"border: none;\" class=\"content-container highlight language-cql\"><code class=\"language-cql\">/*\nNOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.\n*/\nlibrary AlaraCommonFunctions version '2.1.000'\n\nusing USQualityCore version '0.1.0-cibuild'\nusing USCore version '6.1.0-derived'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon\n\ncodesystem &quot;LOINC&quot;: 'http://loinc.org'\n\ncode &quot;Abdomen and Pelvis High Dose&quot;: 'LA31754-7' from &quot;LOINC&quot; display 'Abdomen and Pelvis High Dose'\ncode &quot;Abdomen and Pelvis Low Dose&quot;: 'LA31752-1' from &quot;LOINC&quot; display 'Abdomen and Pelvis Low Dose'\ncode &quot;Abdomen and Pelvis Routine Dose&quot;: 'LA31753-9' from &quot;LOINC&quot; display 'Abdomen and Pelvis Routine Dose'\ncode &quot;Calculated CT global noise&quot;: '96912-1' from &quot;LOINC&quot; display 'Calculated CT global noise'\ncode &quot;Calculated CT size-adjusted dose&quot;: '96913-9' from &quot;LOINC&quot; display 'Calculated CT size-adjusted dose'\ncode &quot;Cardiac High Dose or Chest High Dose&quot;: 'LA31761-2' from &quot;LOINC&quot; display 'Cardiac High Dose or Chest High Dose'\ncode &quot;Cardiac Low Dose&quot;: 'LA31755-4' from &quot;LOINC&quot; display 'Cardiac Low Dose'\ncode &quot;Cardiac Routine Dose&quot;: 'LA31756-2' from &quot;LOINC&quot; display 'Cardiac Routine Dose'\ncode &quot;Chest Low Dose&quot;: 'LA31758-8' from &quot;LOINC&quot; display 'Chest Low Dose'\ncode &quot;Chest Routine Dose&quot;: 'LA31759-6' from &quot;LOINC&quot; display 'Chest Routine Dose'\ncode &quot;Extremity&quot;: 'LA31765-3' from &quot;LOINC&quot; display 'Extremity'\ncode &quot;Head High Dose&quot;: 'LA31764-6' from &quot;LOINC&quot; display 'Head High Dose'\ncode &quot;Head Low Dose&quot;: 'LA31762-0' from &quot;LOINC&quot; display 'Head Low Dose'\ncode &quot;Head Routine Dose&quot;: 'LA31763-8' from &quot;LOINC&quot; display 'Head Routine Dose'\ncode &quot;Neck or Cervical Spine&quot;: 'LA31766-1' from &quot;LOINC&quot; display 'Neck or Cervical Spine'\ncode &quot;Simultaneous Chest and Abdomen and Pelvis&quot;: 'LA31768-7' from &quot;LOINC&quot; display 'Simultaneous Chest and Abdomen and Pelvis'\ncode &quot;Simultaneous Head and Neck High Dose&quot;: 'LA31770-3' from &quot;LOINC&quot; display 'Simultaneous Head and Neck High Dose'\ncode &quot;Simultaneous Head and Neck Routine Dose&quot;: 'LA31769-5' from &quot;LOINC&quot; display 'Simultaneous Head and Neck Routine Dose'\ncode &quot;Simultaneous Thoracic and Lumbar Spine&quot;: 'LA31851-1' from &quot;LOINC&quot; display 'Simultaneous Thoracic and Lumbar Spine'\ncode &quot;Thoracic or Lumbar Spine&quot;: 'LA31767-9' from &quot;LOINC&quot; display 'Thoracic or Lumbar Spine'\n\ncontext Patient\n\ndefine function &quot;CT Scan Qualifies&quot;(Result ObservationClinicalResult ):\n  Result.qualifies(&quot;Abdomen and Pelvis Low Dose&quot;, 64, 598)\n    or Result.qualifies(&quot;Abdomen and Pelvis Routine Dose&quot;, 29, 644)\n    or Result.qualifies(&quot;Abdomen and Pelvis High Dose&quot;, 29, 1260)\n    or Result.qualifies(&quot;Cardiac Low Dose&quot;, 55, 93)\n    or Result.qualifies(&quot;Cardiac Routine Dose&quot;, 32, 576)\n    or Result.qualifies(&quot;Chest Low Dose&quot;, 55, 377)\n    or Result.qualifies(&quot;Chest Routine Dose&quot;, 49, 377)\n    or Result.qualifies(&quot;Cardiac High Dose or Chest High Dose&quot;, 49, 1282)\n    or Result.qualifies(&quot;Head Low Dose&quot;, 115, 582)\n    or Result.qualifies(&quot;Head Routine Dose&quot;, 115, 1025)\n    or Result.qualifies(&quot;Head High Dose&quot;, 115, 1832)\n    or Result.qualifies(&quot;Extremity&quot;, 73, 320)\n    or Result.qualifies(&quot;Neck or Cervical Spine&quot;, 25, 1260)\n    or Result.qualifies(&quot;Thoracic or Lumbar Spine&quot;, 25, 1260)\n    or Result.qualifies(&quot;Simultaneous Chest and Abdomen and Pelvis&quot;, 29, 1637)\n    or Result.qualifies(&quot;Simultaneous Thoracic and Lumbar Spine&quot;, 25, 2520)\n    or Result.qualifies(&quot;Simultaneous Head and Neck Routine Dose&quot;, 25, 2285)\n    or Result.qualifies(&quot;Simultaneous Head and Neck High Dose&quot;, 25, 3092)\n\ndefine fluent function &quot;ctScanQualifies&quot;(Result ObservationClinicalResult ):\n  Result.qualifies(&quot;Abdomen and Pelvis Low Dose&quot;, 64, 598)\n    or Result.qualifies(&quot;Abdomen and Pelvis Routine Dose&quot;, 29, 644)\n    or Result.qualifies(&quot;Abdomen and Pelvis High Dose&quot;, 29, 1260)\n    or Result.qualifies(&quot;Cardiac Low Dose&quot;, 55, 93)\n    or Result.qualifies(&quot;Cardiac Routine Dose&quot;, 32, 576)\n    or Result.qualifies(&quot;Chest Low Dose&quot;, 55, 377)\n    or Result.qualifies(&quot;Chest Routine Dose&quot;, 49, 377)\n    or Result.qualifies(&quot;Cardiac High Dose or Chest High Dose&quot;, 49, 1282)\n    or Result.qualifies(&quot;Head Low Dose&quot;, 115, 582)\n    or Result.qualifies(&quot;Head Routine Dose&quot;, 115, 1025)\n    or Result.qualifies(&quot;Head High Dose&quot;, 115, 1832)\n    or Result.qualifies(&quot;Extremity&quot;, 73, 320)\n    or Result.qualifies(&quot;Neck or Cervical Spine&quot;, 25, 1260)\n    or Result.qualifies(&quot;Thoracic or Lumbar Spine&quot;, 25, 1260)\n    or Result.qualifies(&quot;Simultaneous Chest and Abdomen and Pelvis&quot;, 29, 1637)\n    or Result.qualifies(&quot;Simultaneous Thoracic and Lumbar Spine&quot;, 25, 2520)\n    or Result.qualifies(&quot;Simultaneous Head and Neck Routine Dose&quot;, 25, 2285)\n    or Result.qualifies(&quot;Simultaneous Head and Neck High Dose&quot;, 25, 3092)\n    \ndefine function &quot;Qualifies&quot;(Result ObservationClinicalResult, code System.Code, noiseThreshold Decimal, sizeDoseThreshold Decimal ):\n  (Result.value as FHIR.CodeableConcept) ~ code\n    and ( &quot;Global Noise Value&quot;(Result) &gt;= noiseThreshold\n        or &quot;Size Adjusted Value&quot;(Result) &gt;= sizeDoseThreshold\n    )\n    \ndefine fluent function &quot;qualifies&quot;(Result ObservationClinicalResult, code System.Code, noiseThreshold Decimal, sizeDoseThreshold Decimal ):\n  (Result.value as FHIR.CodeableConcept) ~ code\n    and ( Result.globalNoiseValue() &gt;= noiseThreshold\n        or Result.sizeAdjustedValue() &gt;= sizeDoseThreshold\n    )\n\n/* Note since the units has a special character in it this must be escaped in the CQL */\ndefine function &quot;Global Noise Value&quot;(Result ObservationClinicalResult ):\n  singleton from ( Result.component C\n      where Result.status in { 'final', 'amended', 'corrected' }\n        and C.code ~ &quot;Calculated CT global noise&quot;\n        and ( C.value as Quantity ).unit = '[hnsf\\'U]'\n      return (C.value as Quantity).value\n  )\n  \n/* Note since the units has a special character in it this must be escaped in the CQL */\ndefine fluent function &quot;globalNoiseValue&quot;(Result ObservationClinicalResult ):\n  singleton from ( Result.component C\n      where Result.status in { 'final', 'amended', 'corrected' }\n        and C.code ~ &quot;Calculated CT global noise&quot;\n        and ( C.value as Quantity ).unit = '[hnsf\\'U]'\n      return (C.value as Quantity).value\n  )\n\ndefine function &quot;Size Adjusted Value&quot;(Result ObservationClinicalResult ):\n  singleton from ( Result.component C\n      where Result.status in { 'final', 'amended', 'corrected' }\n        and C.code ~ &quot;Calculated CT size-adjusted dose&quot;\n        and ( C.value as Quantity ).unit = 'mGy.cm'\n      return (C.value as Quantity).value\n  )\n  \ndefine fluent function &quot;sizeAdjustedValue&quot;(Result ObservationClinicalResult ):\n  singleton from ( Result.component C\n      where Result.status in { 'final', 'amended', 'corrected' }\n        and C.code ~ &quot;Calculated CT size-adjusted dose&quot;\n        and ( C.value as Quantity ).unit = 'mGy.cm'\n      return (C.value as Quantity).value\n  )</code></pre>\n      </td>\n    </tr>\n    \n  \n\n\n\n<tr>\n  <th colspan=\"2\" scope=\"row\" class=\"row-header\">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>\n</tr>\n\n    </tbody>\n  </table>\n</div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem",
      "valueReference" : {
        "reference" : "Device/cqf-tooling"
      }
    }
  ],
  "url" : "https://madie.cms.gov/Library/AlaraCommonFunctions",
  "version" : "2.1.000",
  "name" : "AlaraCommonFunctions",
  "status" : "draft",
  "type" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2026-09-19T16:31:14+00:00",
  "content" : [
    {
      "contentType" : "text/cql",
      "data" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBBbGFyYUNvbW1vbkZ1bmN0aW9ucyB2ZXJzaW9uICcyLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCgpjb2RlICJBYmRvbWVuIGFuZCBQZWx2aXMgSGlnaCBEb3NlIjogJ0xBMzE3NTQtNycgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0FiZG9tZW4gYW5kIFBlbHZpcyBIaWdoIERvc2UnCmNvZGUgIkFiZG9tZW4gYW5kIFBlbHZpcyBMb3cgRG9zZSI6ICdMQTMxNzUyLTEnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdBYmRvbWVuIGFuZCBQZWx2aXMgTG93IERvc2UnCmNvZGUgIkFiZG9tZW4gYW5kIFBlbHZpcyBSb3V0aW5lIERvc2UiOiAnTEEzMTc1My05JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQWJkb21lbiBhbmQgUGVsdmlzIFJvdXRpbmUgRG9zZScKY29kZSAiQ2FsY3VsYXRlZCBDVCBnbG9iYWwgbm9pc2UiOiAnOTY5MTItMScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0NhbGN1bGF0ZWQgQ1QgZ2xvYmFsIG5vaXNlJwpjb2RlICJDYWxjdWxhdGVkIENUIHNpemUtYWRqdXN0ZWQgZG9zZSI6ICc5NjkxMy05JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FsY3VsYXRlZCBDVCBzaXplLWFkanVzdGVkIGRvc2UnCmNvZGUgIkNhcmRpYWMgSGlnaCBEb3NlIG9yIENoZXN0IEhpZ2ggRG9zZSI6ICdMQTMxNzYxLTInIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdDYXJkaWFjIEhpZ2ggRG9zZSBvciBDaGVzdCBIaWdoIERvc2UnCmNvZGUgIkNhcmRpYWMgTG93IERvc2UiOiAnTEEzMTc1NS00JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FyZGlhYyBMb3cgRG9zZScKY29kZSAiQ2FyZGlhYyBSb3V0aW5lIERvc2UiOiAnTEEzMTc1Ni0yJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FyZGlhYyBSb3V0aW5lIERvc2UnCmNvZGUgIkNoZXN0IExvdyBEb3NlIjogJ0xBMzE3NTgtOCcgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0NoZXN0IExvdyBEb3NlJwpjb2RlICJDaGVzdCBSb3V0aW5lIERvc2UiOiAnTEEzMTc1OS02JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2hlc3QgUm91dGluZSBEb3NlJwpjb2RlICJFeHRyZW1pdHkiOiAnTEEzMTc2NS0zJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnRXh0cmVtaXR5Jwpjb2RlICJIZWFkIEhpZ2ggRG9zZSI6ICdMQTMxNzY0LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIZWFkIEhpZ2ggRG9zZScKY29kZSAiSGVhZCBMb3cgRG9zZSI6ICdMQTMxNzYyLTAnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIZWFkIExvdyBEb3NlJwpjb2RlICJIZWFkIFJvdXRpbmUgRG9zZSI6ICdMQTMxNzYzLTgnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIZWFkIFJvdXRpbmUgRG9zZScKY29kZSAiTmVjayBvciBDZXJ2aWNhbCBTcGluZSI6ICdMQTMxNzY2LTEnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdOZWNrIG9yIENlcnZpY2FsIFNwaW5lJwpjb2RlICJTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcyI6ICdMQTMxNzY4LTcnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcycKY29kZSAiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgSGlnaCBEb3NlIjogJ0xBMzE3NzAtMycgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1NpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIEhpZ2ggRG9zZScKY29kZSAiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgUm91dGluZSBEb3NlIjogJ0xBMzE3NjktNScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1NpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIFJvdXRpbmUgRG9zZScKY29kZSAiU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUiOiAnTEEzMTg1MS0xJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUnCmNvZGUgIlRob3JhY2ljIG9yIEx1bWJhciBTcGluZSI6ICdMQTMxNzY3LTknIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdUaG9yYWNpYyBvciBMdW1iYXIgU3BpbmUnCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSBmdW5jdGlvbiAiQ1QgU2NhbiBRdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIExvdyBEb3NlIiwgNjQsIDU5OCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkFiZG9tZW4gYW5kIFBlbHZpcyBSb3V0aW5lIERvc2UiLCAyOSwgNjQ0KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIEhpZ2ggRG9zZSIsIDI5LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQ2FyZGlhYyBMb3cgRG9zZSIsIDU1LCA5MykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNhcmRpYWMgUm91dGluZSBEb3NlIiwgMzIsIDU3NikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IExvdyBEb3NlIiwgNTUsIDM3NykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IFJvdXRpbmUgRG9zZSIsIDQ5LCAzNzcpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJDYXJkaWFjIEhpZ2ggRG9zZSBvciBDaGVzdCBIaWdoIERvc2UiLCA0OSwgMTI4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgTG93IERvc2UiLCAxMTUsIDU4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgUm91dGluZSBEb3NlIiwgMTE1LCAxMDI1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiSGVhZCBIaWdoIERvc2UiLCAxMTUsIDE4MzIpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJFeHRyZW1pdHkiLCA3MywgMzIwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiTmVjayBvciBDZXJ2aWNhbCBTcGluZSIsIDI1LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiVGhvcmFjaWMgb3IgTHVtYmFyIFNwaW5lIiwgMjUsIDEyNjApCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcyIsIDI5LCAxNjM3KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUiLCAyNSwgMjUyMCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIlNpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIFJvdXRpbmUgRG9zZSIsIDI1LCAyMjg1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgSGlnaCBEb3NlIiwgMjUsIDMwOTIpCgpkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uICJjdFNjYW5RdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIExvdyBEb3NlIiwgNjQsIDU5OCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkFiZG9tZW4gYW5kIFBlbHZpcyBSb3V0aW5lIERvc2UiLCAyOSwgNjQ0KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIEhpZ2ggRG9zZSIsIDI5LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQ2FyZGlhYyBMb3cgRG9zZSIsIDU1LCA5MykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNhcmRpYWMgUm91dGluZSBEb3NlIiwgMzIsIDU3NikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IExvdyBEb3NlIiwgNTUsIDM3NykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IFJvdXRpbmUgRG9zZSIsIDQ5LCAzNzcpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJDYXJkaWFjIEhpZ2ggRG9zZSBvciBDaGVzdCBIaWdoIERvc2UiLCA0OSwgMTI4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgTG93IERvc2UiLCAxMTUsIDU4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgUm91dGluZSBEb3NlIiwgMTE1LCAxMDI1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiSGVhZCBIaWdoIERvc2UiLCAxMTUsIDE4MzIpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJFeHRyZW1pdHkiLCA3MywgMzIwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiTmVjayBvciBDZXJ2aWNhbCBTcGluZSIsIDI1LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiVGhvcmFjaWMgb3IgTHVtYmFyIFNwaW5lIiwgMjUsIDEyNjApCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcyIsIDI5LCAxNjM3KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUiLCAyNSwgMjUyMCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIlNpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIFJvdXRpbmUgRG9zZSIsIDI1LCAyMjg1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgSGlnaCBEb3NlIiwgMjUsIDMwOTIpCiAgICAKZGVmaW5lIGZ1bmN0aW9uICJRdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0LCBjb2RlIFN5c3RlbS5Db2RlLCBub2lzZVRocmVzaG9sZCBEZWNpbWFsLCBzaXplRG9zZVRocmVzaG9sZCBEZWNpbWFsICk6CiAgKFJlc3VsdC52YWx1ZSBhcyBGSElSLkNvZGVhYmxlQ29uY2VwdCkgfiBjb2RlCiAgICBhbmQgKCAiR2xvYmFsIE5vaXNlIFZhbHVlIihSZXN1bHQpID49IG5vaXNlVGhyZXNob2xkCiAgICAgICAgb3IgIlNpemUgQWRqdXN0ZWQgVmFsdWUiKFJlc3VsdCkgPj0gc2l6ZURvc2VUaHJlc2hvbGQKICAgICkKICAgIApkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uICJxdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0LCBjb2RlIFN5c3RlbS5Db2RlLCBub2lzZVRocmVzaG9sZCBEZWNpbWFsLCBzaXplRG9zZVRocmVzaG9sZCBEZWNpbWFsICk6CiAgKFJlc3VsdC52YWx1ZSBhcyBGSElSLkNvZGVhYmxlQ29uY2VwdCkgfiBjb2RlCiAgICBhbmQgKCBSZXN1bHQuZ2xvYmFsTm9pc2VWYWx1ZSgpID49IG5vaXNlVGhyZXNob2xkCiAgICAgICAgb3IgUmVzdWx0LnNpemVBZGp1c3RlZFZhbHVlKCkgPj0gc2l6ZURvc2VUaHJlc2hvbGQKICAgICkKCi8qIE5vdGUgc2luY2UgdGhlIHVuaXRzIGhhcyBhIHNwZWNpYWwgY2hhcmFjdGVyIGluIGl0IHRoaXMgbXVzdCBiZSBlc2NhcGVkIGluIHRoZSBDUUwgKi8KZGVmaW5lIGZ1bmN0aW9uICJHbG9iYWwgTm9pc2UgVmFsdWUiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgc2luZ2xldG9uIGZyb20gKCBSZXN1bHQuY29tcG9uZW50IEMKICAgICAgd2hlcmUgUmVzdWx0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBDLmNvZGUgfiAiQ2FsY3VsYXRlZCBDVCBnbG9iYWwgbm9pc2UiCiAgICAgICAgYW5kICggQy52YWx1ZSBhcyBRdWFudGl0eSApLnVuaXQgPSAnW2huc2ZcJ1VdJwogICAgICByZXR1cm4gKEMudmFsdWUgYXMgUXVhbnRpdHkpLnZhbHVlCiAgKQogIAovKiBOb3RlIHNpbmNlIHRoZSB1bml0cyBoYXMgYSBzcGVjaWFsIGNoYXJhY3RlciBpbiBpdCB0aGlzIG11c3QgYmUgZXNjYXBlZCBpbiB0aGUgQ1FMICovCmRlZmluZSBmbHVlbnQgZnVuY3Rpb24gImdsb2JhbE5vaXNlVmFsdWUiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgc2luZ2xldG9uIGZyb20gKCBSZXN1bHQuY29tcG9uZW50IEMKICAgICAgd2hlcmUgUmVzdWx0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBDLmNvZGUgfiAiQ2FsY3VsYXRlZCBDVCBnbG9iYWwgbm9pc2UiCiAgICAgICAgYW5kICggQy52YWx1ZSBhcyBRdWFudGl0eSApLnVuaXQgPSAnW2huc2ZcJ1VdJwogICAgICByZXR1cm4gKEMudmFsdWUgYXMgUXVhbnRpdHkpLnZhbHVlCiAgKQoKZGVmaW5lIGZ1bmN0aW9uICJTaXplIEFkanVzdGVkIFZhbHVlIihSZXN1bHQgT2JzZXJ2YXRpb25DbGluaWNhbFJlc3VsdCApOgogIHNpbmdsZXRvbiBmcm9tICggUmVzdWx0LmNvbXBvbmVudCBDCiAgICAgIHdoZXJlIFJlc3VsdC5zdGF0dXMgaW4geyAnZmluYWwnLCAnYW1lbmRlZCcsICdjb3JyZWN0ZWQnIH0KICAgICAgICBhbmQgQy5jb2RlIH4gIkNhbGN1bGF0ZWQgQ1Qgc2l6ZS1hZGp1c3RlZCBkb3NlIgogICAgICAgIGFuZCAoIEMudmFsdWUgYXMgUXVhbnRpdHkgKS51bml0ID0gJ21HeS5jbScKICAgICAgcmV0dXJuIChDLnZhbHVlIGFzIFF1YW50aXR5KS52YWx1ZQogICkKICAKZGVmaW5lIGZsdWVudCBmdW5jdGlvbiAic2l6ZUFkanVzdGVkVmFsdWUiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgc2luZ2xldG9uIGZyb20gKCBSZXN1bHQuY29tcG9uZW50IEMKICAgICAgd2hlcmUgUmVzdWx0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBDLmNvZGUgfiAiQ2FsY3VsYXRlZCBDVCBzaXplLWFkanVzdGVkIGRvc2UiCiAgICAgICAgYW5kICggQy52YWx1ZSBhcyBRdWFudGl0eSApLnVuaXQgPSAnbUd5LmNtJwogICAgICByZXR1cm4gKEMudmFsdWUgYXMgUXVhbnRpdHkpLnZhbHVlCiAgKQ==",
      "url" : "https://madie.cms.gov/Library-AlaraCommonFunctions.cql"
    }
  ]
}