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 - XML Representation

Draft as of 2026-09-19

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="AlaraCommonFunctions"/>
  <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">2.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 AlaraCommonFunctions version '2.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

codesystem &quot;LOINC&quot;: 'http://loinc.org'

code &quot;Abdomen and Pelvis High Dose&quot;: 'LA31754-7' from &quot;LOINC&quot; display 'Abdomen and Pelvis High Dose'
code &quot;Abdomen and Pelvis Low Dose&quot;: 'LA31752-1' from &quot;LOINC&quot; display 'Abdomen and Pelvis Low Dose'
code &quot;Abdomen and Pelvis Routine Dose&quot;: 'LA31753-9' from &quot;LOINC&quot; display 'Abdomen and Pelvis Routine Dose'
code &quot;Calculated CT global noise&quot;: '96912-1' from &quot;LOINC&quot; display 'Calculated CT global noise'
code &quot;Calculated CT size-adjusted dose&quot;: '96913-9' from &quot;LOINC&quot; display 'Calculated CT size-adjusted dose'
code &quot;Cardiac High Dose or Chest High Dose&quot;: 'LA31761-2' from &quot;LOINC&quot; display 'Cardiac High Dose or Chest High Dose'
code &quot;Cardiac Low Dose&quot;: 'LA31755-4' from &quot;LOINC&quot; display 'Cardiac Low Dose'
code &quot;Cardiac Routine Dose&quot;: 'LA31756-2' from &quot;LOINC&quot; display 'Cardiac Routine Dose'
code &quot;Chest Low Dose&quot;: 'LA31758-8' from &quot;LOINC&quot; display 'Chest Low Dose'
code &quot;Chest Routine Dose&quot;: 'LA31759-6' from &quot;LOINC&quot; display 'Chest Routine Dose'
code &quot;Extremity&quot;: 'LA31765-3' from &quot;LOINC&quot; display 'Extremity'
code &quot;Head High Dose&quot;: 'LA31764-6' from &quot;LOINC&quot; display 'Head High Dose'
code &quot;Head Low Dose&quot;: 'LA31762-0' from &quot;LOINC&quot; display 'Head Low Dose'
code &quot;Head Routine Dose&quot;: 'LA31763-8' from &quot;LOINC&quot; display 'Head Routine Dose'
code &quot;Neck or Cervical Spine&quot;: 'LA31766-1' from &quot;LOINC&quot; display 'Neck or Cervical Spine'
code &quot;Simultaneous Chest and Abdomen and Pelvis&quot;: 'LA31768-7' from &quot;LOINC&quot; display 'Simultaneous Chest and Abdomen and Pelvis'
code &quot;Simultaneous Head and Neck High Dose&quot;: 'LA31770-3' from &quot;LOINC&quot; display 'Simultaneous Head and Neck High Dose'
code &quot;Simultaneous Head and Neck Routine Dose&quot;: 'LA31769-5' from &quot;LOINC&quot; display 'Simultaneous Head and Neck Routine Dose'
code &quot;Simultaneous Thoracic and Lumbar Spine&quot;: 'LA31851-1' from &quot;LOINC&quot; display 'Simultaneous Thoracic and Lumbar Spine'
code &quot;Thoracic or Lumbar Spine&quot;: 'LA31767-9' from &quot;LOINC&quot; display 'Thoracic or Lumbar Spine'

context Patient

define function &quot;CT Scan Qualifies&quot;(Result ObservationClinicalResult ):
  Result.qualifies(&quot;Abdomen and Pelvis Low Dose&quot;, 64, 598)
    or Result.qualifies(&quot;Abdomen and Pelvis Routine Dose&quot;, 29, 644)
    or Result.qualifies(&quot;Abdomen and Pelvis High Dose&quot;, 29, 1260)
    or Result.qualifies(&quot;Cardiac Low Dose&quot;, 55, 93)
    or Result.qualifies(&quot;Cardiac Routine Dose&quot;, 32, 576)
    or Result.qualifies(&quot;Chest Low Dose&quot;, 55, 377)
    or Result.qualifies(&quot;Chest Routine Dose&quot;, 49, 377)
    or Result.qualifies(&quot;Cardiac High Dose or Chest High Dose&quot;, 49, 1282)
    or Result.qualifies(&quot;Head Low Dose&quot;, 115, 582)
    or Result.qualifies(&quot;Head Routine Dose&quot;, 115, 1025)
    or Result.qualifies(&quot;Head High Dose&quot;, 115, 1832)
    or Result.qualifies(&quot;Extremity&quot;, 73, 320)
    or Result.qualifies(&quot;Neck or Cervical Spine&quot;, 25, 1260)
    or Result.qualifies(&quot;Thoracic or Lumbar Spine&quot;, 25, 1260)
    or Result.qualifies(&quot;Simultaneous Chest and Abdomen and Pelvis&quot;, 29, 1637)
    or Result.qualifies(&quot;Simultaneous Thoracic and Lumbar Spine&quot;, 25, 2520)
    or Result.qualifies(&quot;Simultaneous Head and Neck Routine Dose&quot;, 25, 2285)
    or Result.qualifies(&quot;Simultaneous Head and Neck High Dose&quot;, 25, 3092)

define fluent function &quot;ctScanQualifies&quot;(Result ObservationClinicalResult ):
  Result.qualifies(&quot;Abdomen and Pelvis Low Dose&quot;, 64, 598)
    or Result.qualifies(&quot;Abdomen and Pelvis Routine Dose&quot;, 29, 644)
    or Result.qualifies(&quot;Abdomen and Pelvis High Dose&quot;, 29, 1260)
    or Result.qualifies(&quot;Cardiac Low Dose&quot;, 55, 93)
    or Result.qualifies(&quot;Cardiac Routine Dose&quot;, 32, 576)
    or Result.qualifies(&quot;Chest Low Dose&quot;, 55, 377)
    or Result.qualifies(&quot;Chest Routine Dose&quot;, 49, 377)
    or Result.qualifies(&quot;Cardiac High Dose or Chest High Dose&quot;, 49, 1282)
    or Result.qualifies(&quot;Head Low Dose&quot;, 115, 582)
    or Result.qualifies(&quot;Head Routine Dose&quot;, 115, 1025)
    or Result.qualifies(&quot;Head High Dose&quot;, 115, 1832)
    or Result.qualifies(&quot;Extremity&quot;, 73, 320)
    or Result.qualifies(&quot;Neck or Cervical Spine&quot;, 25, 1260)
    or Result.qualifies(&quot;Thoracic or Lumbar Spine&quot;, 25, 1260)
    or Result.qualifies(&quot;Simultaneous Chest and Abdomen and Pelvis&quot;, 29, 1637)
    or Result.qualifies(&quot;Simultaneous Thoracic and Lumbar Spine&quot;, 25, 2520)
    or Result.qualifies(&quot;Simultaneous Head and Neck Routine Dose&quot;, 25, 2285)
    or Result.qualifies(&quot;Simultaneous Head and Neck High Dose&quot;, 25, 3092)
    
define function &quot;Qualifies&quot;(Result ObservationClinicalResult, code System.Code, noiseThreshold Decimal, sizeDoseThreshold Decimal ):
  (Result.value as FHIR.CodeableConcept) ~ code
    and ( &quot;Global Noise Value&quot;(Result) &gt;= noiseThreshold
        or &quot;Size Adjusted Value&quot;(Result) &gt;= sizeDoseThreshold
    )
    
define fluent function &quot;qualifies&quot;(Result ObservationClinicalResult, code System.Code, noiseThreshold Decimal, sizeDoseThreshold Decimal ):
  (Result.value as FHIR.CodeableConcept) ~ code
    and ( Result.globalNoiseValue() &gt;= noiseThreshold
        or Result.sizeAdjustedValue() &gt;= sizeDoseThreshold
    )

/* Note since the units has a special character in it this must be escaped in the CQL */
define function &quot;Global Noise Value&quot;(Result ObservationClinicalResult ):
  singleton from ( Result.component C
      where Result.status in { 'final', 'amended', 'corrected' }
        and C.code ~ &quot;Calculated CT global noise&quot;
        and ( C.value as Quantity ).unit = '[hnsf\'U]'
      return (C.value as Quantity).value
  )
  
/* Note since the units has a special character in it this must be escaped in the CQL */
define fluent function &quot;globalNoiseValue&quot;(Result ObservationClinicalResult ):
  singleton from ( Result.component C
      where Result.status in { 'final', 'amended', 'corrected' }
        and C.code ~ &quot;Calculated CT global noise&quot;
        and ( C.value as Quantity ).unit = '[hnsf\'U]'
      return (C.value as Quantity).value
  )

define function &quot;Size Adjusted Value&quot;(Result ObservationClinicalResult ):
  singleton from ( Result.component C
      where Result.status in { 'final', 'amended', 'corrected' }
        and C.code ~ &quot;Calculated CT size-adjusted dose&quot;
        and ( C.value as Quantity ).unit = 'mGy.cm'
      return (C.value as Quantity).value
  )
  
define fluent function &quot;sizeAdjustedValue&quot;(Result ObservationClinicalResult ):
  singleton from ( Result.component C
      where Result.status in { 'final', 'amended', 'corrected' }
        and C.code ~ &quot;Calculated CT size-adjusted dose&quot;
        and ( C.value as Quantity ).unit = 'mGy.cm'
      return (C.value as Quantity).value
  )</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/AlaraCommonFunctions"/>
  <version value="2.1.000"/>
  <name value="AlaraCommonFunctions"/>
  <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="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBBbGFyYUNvbW1vbkZ1bmN0aW9ucyB2ZXJzaW9uICcyLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCgpjb2RlICJBYmRvbWVuIGFuZCBQZWx2aXMgSGlnaCBEb3NlIjogJ0xBMzE3NTQtNycgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0FiZG9tZW4gYW5kIFBlbHZpcyBIaWdoIERvc2UnCmNvZGUgIkFiZG9tZW4gYW5kIFBlbHZpcyBMb3cgRG9zZSI6ICdMQTMxNzUyLTEnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdBYmRvbWVuIGFuZCBQZWx2aXMgTG93IERvc2UnCmNvZGUgIkFiZG9tZW4gYW5kIFBlbHZpcyBSb3V0aW5lIERvc2UiOiAnTEEzMTc1My05JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQWJkb21lbiBhbmQgUGVsdmlzIFJvdXRpbmUgRG9zZScKY29kZSAiQ2FsY3VsYXRlZCBDVCBnbG9iYWwgbm9pc2UiOiAnOTY5MTItMScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0NhbGN1bGF0ZWQgQ1QgZ2xvYmFsIG5vaXNlJwpjb2RlICJDYWxjdWxhdGVkIENUIHNpemUtYWRqdXN0ZWQgZG9zZSI6ICc5NjkxMy05JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FsY3VsYXRlZCBDVCBzaXplLWFkanVzdGVkIGRvc2UnCmNvZGUgIkNhcmRpYWMgSGlnaCBEb3NlIG9yIENoZXN0IEhpZ2ggRG9zZSI6ICdMQTMxNzYxLTInIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdDYXJkaWFjIEhpZ2ggRG9zZSBvciBDaGVzdCBIaWdoIERvc2UnCmNvZGUgIkNhcmRpYWMgTG93IERvc2UiOiAnTEEzMTc1NS00JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FyZGlhYyBMb3cgRG9zZScKY29kZSAiQ2FyZGlhYyBSb3V0aW5lIERvc2UiOiAnTEEzMTc1Ni0yJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FyZGlhYyBSb3V0aW5lIERvc2UnCmNvZGUgIkNoZXN0IExvdyBEb3NlIjogJ0xBMzE3NTgtOCcgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0NoZXN0IExvdyBEb3NlJwpjb2RlICJDaGVzdCBSb3V0aW5lIERvc2UiOiAnTEEzMTc1OS02JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2hlc3QgUm91dGluZSBEb3NlJwpjb2RlICJFeHRyZW1pdHkiOiAnTEEzMTc2NS0zJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnRXh0cmVtaXR5Jwpjb2RlICJIZWFkIEhpZ2ggRG9zZSI6ICdMQTMxNzY0LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIZWFkIEhpZ2ggRG9zZScKY29kZSAiSGVhZCBMb3cgRG9zZSI6ICdMQTMxNzYyLTAnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIZWFkIExvdyBEb3NlJwpjb2RlICJIZWFkIFJvdXRpbmUgRG9zZSI6ICdMQTMxNzYzLTgnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdIZWFkIFJvdXRpbmUgRG9zZScKY29kZSAiTmVjayBvciBDZXJ2aWNhbCBTcGluZSI6ICdMQTMxNzY2LTEnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdOZWNrIG9yIENlcnZpY2FsIFNwaW5lJwpjb2RlICJTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcyI6ICdMQTMxNzY4LTcnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcycKY29kZSAiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgSGlnaCBEb3NlIjogJ0xBMzE3NzAtMycgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1NpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIEhpZ2ggRG9zZScKY29kZSAiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgUm91dGluZSBEb3NlIjogJ0xBMzE3NjktNScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1NpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIFJvdXRpbmUgRG9zZScKY29kZSAiU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUiOiAnTEEzMTg1MS0xJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUnCmNvZGUgIlRob3JhY2ljIG9yIEx1bWJhciBTcGluZSI6ICdMQTMxNzY3LTknIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdUaG9yYWNpYyBvciBMdW1iYXIgU3BpbmUnCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSBmdW5jdGlvbiAiQ1QgU2NhbiBRdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIExvdyBEb3NlIiwgNjQsIDU5OCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkFiZG9tZW4gYW5kIFBlbHZpcyBSb3V0aW5lIERvc2UiLCAyOSwgNjQ0KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIEhpZ2ggRG9zZSIsIDI5LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQ2FyZGlhYyBMb3cgRG9zZSIsIDU1LCA5MykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNhcmRpYWMgUm91dGluZSBEb3NlIiwgMzIsIDU3NikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IExvdyBEb3NlIiwgNTUsIDM3NykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IFJvdXRpbmUgRG9zZSIsIDQ5LCAzNzcpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJDYXJkaWFjIEhpZ2ggRG9zZSBvciBDaGVzdCBIaWdoIERvc2UiLCA0OSwgMTI4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgTG93IERvc2UiLCAxMTUsIDU4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgUm91dGluZSBEb3NlIiwgMTE1LCAxMDI1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiSGVhZCBIaWdoIERvc2UiLCAxMTUsIDE4MzIpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJFeHRyZW1pdHkiLCA3MywgMzIwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiTmVjayBvciBDZXJ2aWNhbCBTcGluZSIsIDI1LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiVGhvcmFjaWMgb3IgTHVtYmFyIFNwaW5lIiwgMjUsIDEyNjApCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcyIsIDI5LCAxNjM3KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUiLCAyNSwgMjUyMCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIlNpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIFJvdXRpbmUgRG9zZSIsIDI1LCAyMjg1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgSGlnaCBEb3NlIiwgMjUsIDMwOTIpCgpkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uICJjdFNjYW5RdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIExvdyBEb3NlIiwgNjQsIDU5OCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkFiZG9tZW4gYW5kIFBlbHZpcyBSb3V0aW5lIERvc2UiLCAyOSwgNjQ0KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQWJkb21lbiBhbmQgUGVsdmlzIEhpZ2ggRG9zZSIsIDI5LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiQ2FyZGlhYyBMb3cgRG9zZSIsIDU1LCA5MykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNhcmRpYWMgUm91dGluZSBEb3NlIiwgMzIsIDU3NikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IExvdyBEb3NlIiwgNTUsIDM3NykKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkNoZXN0IFJvdXRpbmUgRG9zZSIsIDQ5LCAzNzcpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJDYXJkaWFjIEhpZ2ggRG9zZSBvciBDaGVzdCBIaWdoIERvc2UiLCA0OSwgMTI4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgTG93IERvc2UiLCAxMTUsIDU4MikKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIkhlYWQgUm91dGluZSBEb3NlIiwgMTE1LCAxMDI1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiSGVhZCBIaWdoIERvc2UiLCAxMTUsIDE4MzIpCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJFeHRyZW1pdHkiLCA3MywgMzIwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiTmVjayBvciBDZXJ2aWNhbCBTcGluZSIsIDI1LCAxMjYwKQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiVGhvcmFjaWMgb3IgTHVtYmFyIFNwaW5lIiwgMjUsIDEyNjApCiAgICBvciBSZXN1bHQucXVhbGlmaWVzKCJTaW11bHRhbmVvdXMgQ2hlc3QgYW5kIEFiZG9tZW4gYW5kIFBlbHZpcyIsIDI5LCAxNjM3KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIFRob3JhY2ljIGFuZCBMdW1iYXIgU3BpbmUiLCAyNSwgMjUyMCkKICAgIG9yIFJlc3VsdC5xdWFsaWZpZXMoIlNpbXVsdGFuZW91cyBIZWFkIGFuZCBOZWNrIFJvdXRpbmUgRG9zZSIsIDI1LCAyMjg1KQogICAgb3IgUmVzdWx0LnF1YWxpZmllcygiU2ltdWx0YW5lb3VzIEhlYWQgYW5kIE5lY2sgSGlnaCBEb3NlIiwgMjUsIDMwOTIpCiAgICAKZGVmaW5lIGZ1bmN0aW9uICJRdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0LCBjb2RlIFN5c3RlbS5Db2RlLCBub2lzZVRocmVzaG9sZCBEZWNpbWFsLCBzaXplRG9zZVRocmVzaG9sZCBEZWNpbWFsICk6CiAgKFJlc3VsdC52YWx1ZSBhcyBGSElSLkNvZGVhYmxlQ29uY2VwdCkgfiBjb2RlCiAgICBhbmQgKCAiR2xvYmFsIE5vaXNlIFZhbHVlIihSZXN1bHQpID49IG5vaXNlVGhyZXNob2xkCiAgICAgICAgb3IgIlNpemUgQWRqdXN0ZWQgVmFsdWUiKFJlc3VsdCkgPj0gc2l6ZURvc2VUaHJlc2hvbGQKICAgICkKICAgIApkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uICJxdWFsaWZpZXMiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0LCBjb2RlIFN5c3RlbS5Db2RlLCBub2lzZVRocmVzaG9sZCBEZWNpbWFsLCBzaXplRG9zZVRocmVzaG9sZCBEZWNpbWFsICk6CiAgKFJlc3VsdC52YWx1ZSBhcyBGSElSLkNvZGVhYmxlQ29uY2VwdCkgfiBjb2RlCiAgICBhbmQgKCBSZXN1bHQuZ2xvYmFsTm9pc2VWYWx1ZSgpID49IG5vaXNlVGhyZXNob2xkCiAgICAgICAgb3IgUmVzdWx0LnNpemVBZGp1c3RlZFZhbHVlKCkgPj0gc2l6ZURvc2VUaHJlc2hvbGQKICAgICkKCi8qIE5vdGUgc2luY2UgdGhlIHVuaXRzIGhhcyBhIHNwZWNpYWwgY2hhcmFjdGVyIGluIGl0IHRoaXMgbXVzdCBiZSBlc2NhcGVkIGluIHRoZSBDUUwgKi8KZGVmaW5lIGZ1bmN0aW9uICJHbG9iYWwgTm9pc2UgVmFsdWUiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgc2luZ2xldG9uIGZyb20gKCBSZXN1bHQuY29tcG9uZW50IEMKICAgICAgd2hlcmUgUmVzdWx0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBDLmNvZGUgfiAiQ2FsY3VsYXRlZCBDVCBnbG9iYWwgbm9pc2UiCiAgICAgICAgYW5kICggQy52YWx1ZSBhcyBRdWFudGl0eSApLnVuaXQgPSAnW2huc2ZcJ1VdJwogICAgICByZXR1cm4gKEMudmFsdWUgYXMgUXVhbnRpdHkpLnZhbHVlCiAgKQogIAovKiBOb3RlIHNpbmNlIHRoZSB1bml0cyBoYXMgYSBzcGVjaWFsIGNoYXJhY3RlciBpbiBpdCB0aGlzIG11c3QgYmUgZXNjYXBlZCBpbiB0aGUgQ1FMICovCmRlZmluZSBmbHVlbnQgZnVuY3Rpb24gImdsb2JhbE5vaXNlVmFsdWUiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgc2luZ2xldG9uIGZyb20gKCBSZXN1bHQuY29tcG9uZW50IEMKICAgICAgd2hlcmUgUmVzdWx0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBDLmNvZGUgfiAiQ2FsY3VsYXRlZCBDVCBnbG9iYWwgbm9pc2UiCiAgICAgICAgYW5kICggQy52YWx1ZSBhcyBRdWFudGl0eSApLnVuaXQgPSAnW2huc2ZcJ1VdJwogICAgICByZXR1cm4gKEMudmFsdWUgYXMgUXVhbnRpdHkpLnZhbHVlCiAgKQoKZGVmaW5lIGZ1bmN0aW9uICJTaXplIEFkanVzdGVkIFZhbHVlIihSZXN1bHQgT2JzZXJ2YXRpb25DbGluaWNhbFJlc3VsdCApOgogIHNpbmdsZXRvbiBmcm9tICggUmVzdWx0LmNvbXBvbmVudCBDCiAgICAgIHdoZXJlIFJlc3VsdC5zdGF0dXMgaW4geyAnZmluYWwnLCAnYW1lbmRlZCcsICdjb3JyZWN0ZWQnIH0KICAgICAgICBhbmQgQy5jb2RlIH4gIkNhbGN1bGF0ZWQgQ1Qgc2l6ZS1hZGp1c3RlZCBkb3NlIgogICAgICAgIGFuZCAoIEMudmFsdWUgYXMgUXVhbnRpdHkgKS51bml0ID0gJ21HeS5jbScKICAgICAgcmV0dXJuIChDLnZhbHVlIGFzIFF1YW50aXR5KS52YWx1ZQogICkKICAKZGVmaW5lIGZsdWVudCBmdW5jdGlvbiAic2l6ZUFkanVzdGVkVmFsdWUiKFJlc3VsdCBPYnNlcnZhdGlvbkNsaW5pY2FsUmVzdWx0ICk6CiAgc2luZ2xldG9uIGZyb20gKCBSZXN1bHQuY29tcG9uZW50IEMKICAgICAgd2hlcmUgUmVzdWx0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBDLmNvZGUgfiAiQ2FsY3VsYXRlZCBDVCBzaXplLWFkanVzdGVkIGRvc2UiCiAgICAgICAgYW5kICggQy52YWx1ZSBhcyBRdWFudGl0eSApLnVuaXQgPSAnbUd5LmNtJwogICAgICByZXR1cm4gKEMudmFsdWUgYXMgUXVhbnRpdHkpLnZhbHVlCiAgKQ=="/>
    <url value="https://madie.cms.gov/Library-AlaraCommonFunctions.cql"/>
  </content>
</Library>