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

: CMS129FHIRProstCaBoneScanUse - XML Representation

Draft as of 2026-09-19

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="CMS129FHIRProstCaBoneScanUse"/>
  <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">1.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 CMS129FHIRProstCaBoneScanUse version '1.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
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements

include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include Status version '2.1.000' called Status

codesystem &quot;LOINC&quot;: 'http://loinc.org'
codesystem &quot;SNOMEDCT&quot;: 'http://snomed.info/sct'
codesystem &quot;UCUM&quot;: 'http://unitsofmeasure.org'

valueset &quot;Bone Scan&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.320'
valueset &quot;Pain Warranting Further Investigation for Prostate Cancer&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.451'
valueset &quot;Prostate Cancer&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319'
valueset &quot;Prostate Cancer Treatment&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.398'
valueset &quot;Prostate Specific Antigen Test&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.401'
valueset &quot;Salvage Therapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.399'

code &quot;American Joint Committee on Cancer cT1a (qualifier value)&quot;: '1228892002' from &quot;SNOMEDCT&quot; display 'American Joint Committee on Cancer cT1a (qualifier value)'
code &quot;American Joint Committee on Cancer cT1b (qualifier value)&quot;: '1228895000' from &quot;SNOMEDCT&quot; display 'American Joint Committee on Cancer cT1b (qualifier value)'
code &quot;American Joint Committee on Cancer cT1c (qualifier value)&quot;: '1228899006' from &quot;SNOMEDCT&quot; display 'American Joint Committee on Cancer cT1c (qualifier value)'
code &quot;American Joint Committee on Cancer cT2a (qualifier value)&quot;: '1228931008' from &quot;SNOMEDCT&quot; display 'American Joint Committee on Cancer cT2a (qualifier value)'
code &quot;Gleason score in Specimen Qualitative&quot;: '35266-6' from &quot;LOINC&quot; display 'Gleason score in Specimen Qualitative'
code &quot;Procedure reason record (record artifact)&quot;: '433611000124109' from &quot;SNOMEDCT&quot; display 'Procedure reason record (record artifact)'
code &quot;Tumor staging (tumor staging)&quot;: '254292007' from &quot;SNOMEDCT&quot; display 'Tumor staging (tumor staging)'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;
  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)

context Patient

define &quot;SDE Ethnicity&quot;:
  SDE.&quot;SDE Ethnicity&quot;

define &quot;SDE Payer&quot;:
  SDE.&quot;SDE Payer&quot;

define &quot;SDE Race&quot;:
  SDE.&quot;SDE Race&quot;

define &quot;SDE Sex&quot;:
  SDE.&quot;SDE Sex&quot;

define &quot;Initial Population&quot;:
  exists &quot;Prostate Cancer Diagnosis&quot;

define &quot;Denominator&quot;:
  &quot;Initial Population&quot;
    and &quot;First Prostate Cancer Treatment during day of Measurement Period&quot; is not null
    and &quot;Most Recent Prostate Cancer Staging Tumor Size T1a to T2a&quot; is not null
    and &quot;Most Recent PSA Test Result is Low&quot;
    and &quot;Most Recent Gleason Score is Low&quot;

define &quot;Numerator&quot;:
  not exists &quot;Bone Scan Study Performed&quot;

define &quot;Denominator Exceptions&quot;:
  &quot;Has Diagnosis of Pain related to Prostate Cancer&quot;
    or &quot;Has Salvage Therapy Performed after Prostate Cancer Diagnosis&quot;
    or &quot;Has Bone Scan Study Performed with Documented Reason&quot;

define &quot;Bone Scan Study Performed&quot;:
  [ObservationClinicalResult: &quot;Bone Scan&quot;] BoneScan
    with &quot;Prostate Cancer Diagnosis&quot; ActiveProstateCancer
      such that BoneScan.effective.toInterval ( ) starts after start of ActiveProstateCancer.prevalenceInterval ( )
    where BoneScan.effective.toInterval ( ) ends during day of &quot;Measurement Period&quot;
      and BoneScan.status in { 'final', 'amended', 'corrected' }

define &quot;Has Bone Scan Study Performed with Documented Reason&quot;:
  exists &quot;Bone Scan Study Performed&quot; BoneScanAfterDiagnosis
    where BoneScanAfterDiagnosis.value ~ &quot;Procedure reason record (record artifact)&quot;

define &quot;Has Diagnosis of Pain related to Prostate Cancer&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   exists ( ( [ConditionProblemsHealthConcerns: &quot;Pain Warranting Further Investigation for Prostate Cancer&quot;]
  //       union [ConditionEncounterDiagnosis: &quot;Pain Warranting Further Investigation for Prostate Cancer&quot;] ) ProstateCancerPain
  exists ( ( [FHIR.Condition: &quot;Pain Warranting Further Investigation for Prostate Cancer&quot;] ) ProstateCancerPain
      with &quot;Prostate Cancer Diagnosis&quot; ActiveProstateCancer
        such that ProstateCancerPain.prevalenceInterval ( ) starts after start of ActiveProstateCancer.prevalenceInterval ( )
          and ProstateCancerPain.isVerified ( )
  )

define &quot;First Prostate Cancer Treatment during day of Measurement Period&quot;:
  First([Procedure: &quot;Prostate Cancer Treatment&quot;] ProstateCancerTreatment
      where ProstateCancerTreatment.performed.toInterval ( ) ends during day of &quot;Measurement Period&quot;
        and ProstateCancerTreatment.status = 'completed'
      sort by start of performed.toInterval ( )
  )

define &quot;Most Recent PSA Test Result is Low&quot;:
  ( Last([LaboratoryResultObservation: &quot;Prostate Specific Antigen Test&quot;] PSATest
      with &quot;Most Recent Prostate Cancer Staging Tumor Size T1a to T2a&quot; MostRecentProstateCancerStaging
        such that PSATest.effective.toInterval ( ) starts before MostRecentProstateCancerStaging.effective.toInterval ( )
          and PSATest.status in { 'final', 'amended', 'corrected' }
      sort by start of effective.toInterval ( )
  ) ) LastPSATest
    return LastPSATest.value as Quantity &lt; 10 'ng/mL'

define &quot;Has Salvage Therapy Performed after Prostate Cancer Diagnosis&quot;:
  exists ( [Procedure: &quot;Salvage Therapy&quot;] SalvageTherapy
      with &quot;Prostate Cancer Diagnosis&quot; ActiveProstateCancer
        such that SalvageTherapy.performed.toInterval ( ) starts after start of ActiveProstateCancer.prevalenceInterval ( )
          and SalvageTherapy.status = 'completed'
  )

define &quot;Most Recent Gleason Score is Low&quot;:
  ( Last([ObservationClinicalResult: &quot;Gleason score in Specimen Qualitative&quot;] GleasonScore
      with &quot;First Prostate Cancer Treatment during day of Measurement Period&quot; FirstProstateCancerTreatment
        such that GleasonScore.effective.toInterval ( ) starts before start of FirstProstateCancerTreatment.performed.toInterval ( )
          and GleasonScore.status in { 'final', 'amended', 'corrected' }
      sort by start of effective.toInterval ( )
  ) ) LastGleasonScore
    return LastGleasonScore.value as FHIR.integer &lt;= 6

define &quot;Most Recent Prostate Cancer Staging Tumor Size T1a to T2a&quot;:
  ( Last(([ObservationClinicalResult: &quot;Tumor staging (tumor staging)&quot;] TumorStaging
    // TODO: determine feasibility of ObservationClinicalResult having basedOn reference to Condition
    // where exists(&quot;Prostate Cancer Diagnosis&quot; ActiveProstateCancer where TumorStaging.basedOn.references(ActiveProstateCancer))
    
    ) ProstateCancerStaging
      with &quot;First Prostate Cancer Treatment during day of Measurement Period&quot; FirstProstateCancerTreatment
        such that ProstateCancerStaging.effective.toInterval ( ) starts before start of FirstProstateCancerTreatment.performed.toInterval ( )
          and ProstateCancerStaging.status in { 'final', 'amended', 'corrected' }
      sort by start of effective.toInterval ( )
  ) ) LastProstateCancerStaging
    where ( LastProstateCancerStaging.value ~ &quot;American Joint Committee on Cancer cT1a (qualifier value)&quot;
        or LastProstateCancerStaging.value ~ &quot;American Joint Committee on Cancer cT1b (qualifier value)&quot;
        or LastProstateCancerStaging.value ~ &quot;American Joint Committee on Cancer cT1c (qualifier value)&quot;
        or LastProstateCancerStaging.value ~ &quot;American Joint Committee on Cancer cT2a (qualifier value)&quot;
    )

define &quot;Prostate Cancer Diagnosis&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionProblemsHealthConcerns: &quot;Prostate Cancer&quot;] ProstateCancer
  [FHIR.Condition: &quot;Prostate Cancer&quot;] ProstateCancer
    where ProstateCancer.prevalenceInterval ( ) overlaps day of &quot;Measurement Period&quot;
      and ProstateCancer.isVerified ( )

/*
@note: When possible, this function should be migrated to QICoreCommon.
@description: Returns true if the given Condition has a verification status of &quot;confirmed&quot;, &quot;unconfirmed&quot;, &quot;provisional&quot;, or &quot;differential&quot;
*/


define fluent function isVerified(condition Choice&lt;ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns&gt;):
  condition.verificationStatus is not null implies ( condition.verificationStatus ~ Status.&quot;confirmed&quot;
      or condition.verificationStatus ~ Status.&quot;unconfirmed&quot;
      or condition.verificationStatus ~ Status.&quot;provisional&quot;
      or condition.verificationStatus ~ Status.&quot;differential&quot;
  )</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/CMS129FHIRProstCaBoneScanUse"/>
  <version value="1.1.000"/>
  <name value="CMS129FHIRProstCaBoneScanUse"/>
  <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="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxMjlGSElSUHJvc3RDYUJvbmVTY2FuVXNlIHZlcnNpb24gJzEuMS4wMDAnCgp1c2luZyBVU1F1YWxpdHlDb3JlIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnCnVzaW5nIFVTQ29yZSB2ZXJzaW9uICc2LjEuMC1kZXJpdmVkJwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSQ29tbW9uIHZlcnNpb24gJzIuMC4wJyBjYWxsZWQgRkhJUkNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVDb21tb24gdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUVsZW1lbnRzIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUVsZW1lbnRzCgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCgpjb2Rlc3lzdGVtICJMT0lOQyI6ICdodHRwOi8vbG9pbmMub3JnJwpjb2Rlc3lzdGVtICJTTk9NRURDVCI6ICdodHRwOi8vc25vbWVkLmluZm8vc2N0Jwpjb2Rlc3lzdGVtICJVQ1VNIjogJ2h0dHA6Ly91bml0c29mbWVhc3VyZS5vcmcnCgp2YWx1ZXNldCAiQm9uZSBTY2FuIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjMyMCcKdmFsdWVzZXQgIlBhaW4gV2FycmFudGluZyBGdXJ0aGVyIEludmVzdGlnYXRpb24gZm9yIFByb3N0YXRlIENhbmNlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy40NTEnCnZhbHVlc2V0ICJQcm9zdGF0ZSBDYW5jZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMzE5Jwp2YWx1ZXNldCAiUHJvc3RhdGUgQ2FuY2VyIFRyZWF0bWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4zOTgnCnZhbHVlc2V0ICJQcm9zdGF0ZSBTcGVjaWZpYyBBbnRpZ2VuIFRlc3QiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuNDAxJwp2YWx1ZXNldCAiU2FsdmFnZSBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjM5OScKCmNvZGUgIkFtZXJpY2FuIEpvaW50IENvbW1pdHRlZSBvbiBDYW5jZXIgY1QxYSAocXVhbGlmaWVyIHZhbHVlKSI6ICcxMjI4ODkyMDAyJyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnQW1lcmljYW4gSm9pbnQgQ29tbWl0dGVlIG9uIENhbmNlciBjVDFhIChxdWFsaWZpZXIgdmFsdWUpJwpjb2RlICJBbWVyaWNhbiBKb2ludCBDb21taXR0ZWUgb24gQ2FuY2VyIGNUMWIgKHF1YWxpZmllciB2YWx1ZSkiOiAnMTIyODg5NTAwMCcgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0FtZXJpY2FuIEpvaW50IENvbW1pdHRlZSBvbiBDYW5jZXIgY1QxYiAocXVhbGlmaWVyIHZhbHVlKScKY29kZSAiQW1lcmljYW4gSm9pbnQgQ29tbWl0dGVlIG9uIENhbmNlciBjVDFjIChxdWFsaWZpZXIgdmFsdWUpIjogJzEyMjg4OTkwMDYnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbWVyaWNhbiBKb2ludCBDb21taXR0ZWUgb24gQ2FuY2VyIGNUMWMgKHF1YWxpZmllciB2YWx1ZSknCmNvZGUgIkFtZXJpY2FuIEpvaW50IENvbW1pdHRlZSBvbiBDYW5jZXIgY1QyYSAocXVhbGlmaWVyIHZhbHVlKSI6ICcxMjI4OTMxMDA4JyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnQW1lcmljYW4gSm9pbnQgQ29tbWl0dGVlIG9uIENhbmNlciBjVDJhIChxdWFsaWZpZXIgdmFsdWUpJwpjb2RlICJHbGVhc29uIHNjb3JlIGluIFNwZWNpbWVuIFF1YWxpdGF0aXZlIjogJzM1MjY2LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdHbGVhc29uIHNjb3JlIGluIFNwZWNpbWVuIFF1YWxpdGF0aXZlJwpjb2RlICJQcm9jZWR1cmUgcmVhc29uIHJlY29yZCAocmVjb3JkIGFydGlmYWN0KSI6ICc0MzM2MTEwMDAxMjQxMDknIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdQcm9jZWR1cmUgcmVhc29uIHJlY29yZCAocmVjb3JkIGFydGlmYWN0KScKY29kZSAiVHVtb3Igc3RhZ2luZyAodHVtb3Igc3RhZ2luZykiOiAnMjU0MjkyMDA3JyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnVHVtb3Igc3RhZ2luZyAodHVtb3Igc3RhZ2luZyknCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaLCBAMjAyNy0wMS0wMVQwMDowMDowMC4wMDBaKQoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOgogIFNERS4iU0RFIEV0aG5pY2l0eSIKCmRlZmluZSAiU0RFIFBheWVyIjoKICBTREUuIlNERSBQYXllciIKCmRlZmluZSAiU0RFIFJhY2UiOgogIFNERS4iU0RFIFJhY2UiCgpkZWZpbmUgIlNERSBTZXgiOgogIFNERS4iU0RFIFNleCIKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBleGlzdHMgIlByb3N0YXRlIENhbmNlciBEaWFnbm9zaXMiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgogICAgYW5kICJGaXJzdCBQcm9zdGF0ZSBDYW5jZXIgVHJlYXRtZW50IGR1cmluZyBkYXkgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIiBpcyBub3QgbnVsbAogICAgYW5kICJNb3N0IFJlY2VudCBQcm9zdGF0ZSBDYW5jZXIgU3RhZ2luZyBUdW1vciBTaXplIFQxYSB0byBUMmEiIGlzIG5vdCBudWxsCiAgICBhbmQgIk1vc3QgUmVjZW50IFBTQSBUZXN0IFJlc3VsdCBpcyBMb3ciCiAgICBhbmQgIk1vc3QgUmVjZW50IEdsZWFzb24gU2NvcmUgaXMgTG93IgoKZGVmaW5lICJOdW1lcmF0b3IiOgogIG5vdCBleGlzdHMgIkJvbmUgU2NhbiBTdHVkeSBQZXJmb3JtZWQiCgpkZWZpbmUgIkRlbm9taW5hdG9yIEV4Y2VwdGlvbnMiOgogICJIYXMgRGlhZ25vc2lzIG9mIFBhaW4gcmVsYXRlZCB0byBQcm9zdGF0ZSBDYW5jZXIiCiAgICBvciAiSGFzIFNhbHZhZ2UgVGhlcmFweSBQZXJmb3JtZWQgYWZ0ZXIgUHJvc3RhdGUgQ2FuY2VyIERpYWdub3NpcyIKICAgIG9yICJIYXMgQm9uZSBTY2FuIFN0dWR5IFBlcmZvcm1lZCB3aXRoIERvY3VtZW50ZWQgUmVhc29uIgoKZGVmaW5lICJCb25lIFNjYW4gU3R1ZHkgUGVyZm9ybWVkIjoKICBbT2JzZXJ2YXRpb25DbGluaWNhbFJlc3VsdDogIkJvbmUgU2NhbiJdIEJvbmVTY2FuCiAgICB3aXRoICJQcm9zdGF0ZSBDYW5jZXIgRGlhZ25vc2lzIiBBY3RpdmVQcm9zdGF0ZUNhbmNlcgogICAgICBzdWNoIHRoYXQgQm9uZVNjYW4uZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBhZnRlciBzdGFydCBvZiBBY3RpdmVQcm9zdGF0ZUNhbmNlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApCiAgICB3aGVyZSBCb25lU2Nhbi5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkgZW5kcyBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgIGFuZCBCb25lU2Nhbi5zdGF0dXMgaW4geyAnZmluYWwnLCAnYW1lbmRlZCcsICdjb3JyZWN0ZWQnIH0KCmRlZmluZSAiSGFzIEJvbmUgU2NhbiBTdHVkeSBQZXJmb3JtZWQgd2l0aCBEb2N1bWVudGVkIFJlYXNvbiI6CiAgZXhpc3RzICJCb25lIFNjYW4gU3R1ZHkgUGVyZm9ybWVkIiBCb25lU2NhbkFmdGVyRGlhZ25vc2lzCiAgICB3aGVyZSBCb25lU2NhbkFmdGVyRGlhZ25vc2lzLnZhbHVlIH4gIlByb2NlZHVyZSByZWFzb24gcmVjb3JkIChyZWNvcmQgYXJ0aWZhY3QpIgoKZGVmaW5lICJIYXMgRGlhZ25vc2lzIG9mIFBhaW4gcmVsYXRlZCB0byBQcm9zdGF0ZSBDYW5jZXIiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgZXhpc3RzICggKCBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIlBhaW4gV2FycmFudGluZyBGdXJ0aGVyIEludmVzdGlnYXRpb24gZm9yIFByb3N0YXRlIENhbmNlciJdCiAgLy8gICAgICAgdW5pb24gW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlBhaW4gV2FycmFudGluZyBGdXJ0aGVyIEludmVzdGlnYXRpb24gZm9yIFByb3N0YXRlIENhbmNlciJdICkgUHJvc3RhdGVDYW5jZXJQYWluCiAgZXhpc3RzICggKCBbRkhJUi5Db25kaXRpb246ICJQYWluIFdhcnJhbnRpbmcgRnVydGhlciBJbnZlc3RpZ2F0aW9uIGZvciBQcm9zdGF0ZSBDYW5jZXIiXSApIFByb3N0YXRlQ2FuY2VyUGFpbgogICAgICB3aXRoICJQcm9zdGF0ZSBDYW5jZXIgRGlhZ25vc2lzIiBBY3RpdmVQcm9zdGF0ZUNhbmNlcgogICAgICAgIHN1Y2ggdGhhdCBQcm9zdGF0ZUNhbmNlclBhaW4ucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgYWZ0ZXIgc3RhcnQgb2YgQWN0aXZlUHJvc3RhdGVDYW5jZXIucHJldmFsZW5jZUludGVydmFsICggKQogICAgICAgICAgYW5kIFByb3N0YXRlQ2FuY2VyUGFpbi5pc1ZlcmlmaWVkICggKQogICkKCmRlZmluZSAiRmlyc3QgUHJvc3RhdGUgQ2FuY2VyIFRyZWF0bWVudCBkdXJpbmcgZGF5IG9mIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAgRmlyc3QoW1Byb2NlZHVyZTogIlByb3N0YXRlIENhbmNlciBUcmVhdG1lbnQiXSBQcm9zdGF0ZUNhbmNlclRyZWF0bWVudAogICAgICB3aGVyZSBQcm9zdGF0ZUNhbmNlclRyZWF0bWVudC5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgZW5kcyBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIFByb3N0YXRlQ2FuY2VyVHJlYXRtZW50LnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICAgIHNvcnQgYnkgc3RhcnQgb2YgcGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApCiAgKQoKZGVmaW5lICJNb3N0IFJlY2VudCBQU0EgVGVzdCBSZXN1bHQgaXMgTG93IjoKICAoIExhc3QoW0xhYm9yYXRvcnlSZXN1bHRPYnNlcnZhdGlvbjogIlByb3N0YXRlIFNwZWNpZmljIEFudGlnZW4gVGVzdCJdIFBTQVRlc3QKICAgICAgd2l0aCAiTW9zdCBSZWNlbnQgUHJvc3RhdGUgQ2FuY2VyIFN0YWdpbmcgVHVtb3IgU2l6ZSBUMWEgdG8gVDJhIiBNb3N0UmVjZW50UHJvc3RhdGVDYW5jZXJTdGFnaW5nCiAgICAgICAgc3VjaCB0aGF0IFBTQVRlc3QuZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBiZWZvcmUgTW9zdFJlY2VudFByb3N0YXRlQ2FuY2VyU3RhZ2luZy5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkKICAgICAgICAgIGFuZCBQU0FUZXN0LnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICBzb3J0IGJ5IHN0YXJ0IG9mIGVmZmVjdGl2ZS50b0ludGVydmFsICggKQogICkgKSBMYXN0UFNBVGVzdAogICAgcmV0dXJuIExhc3RQU0FUZXN0LnZhbHVlIGFzIFF1YW50aXR5IDwgMTAgJ25nL21MJwoKZGVmaW5lICJIYXMgU2FsdmFnZSBUaGVyYXB5IFBlcmZvcm1lZCBhZnRlciBQcm9zdGF0ZSBDYW5jZXIgRGlhZ25vc2lzIjoKICBleGlzdHMgKCBbUHJvY2VkdXJlOiAiU2FsdmFnZSBUaGVyYXB5Il0gU2FsdmFnZVRoZXJhcHkKICAgICAgd2l0aCAiUHJvc3RhdGUgQ2FuY2VyIERpYWdub3NpcyIgQWN0aXZlUHJvc3RhdGVDYW5jZXIKICAgICAgICBzdWNoIHRoYXQgU2FsdmFnZVRoZXJhcHkucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBhZnRlciBzdGFydCBvZiBBY3RpdmVQcm9zdGF0ZUNhbmNlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApCiAgICAgICAgICBhbmQgU2FsdmFnZVRoZXJhcHkuc3RhdHVzID0gJ2NvbXBsZXRlZCcKICApCgpkZWZpbmUgIk1vc3QgUmVjZW50IEdsZWFzb24gU2NvcmUgaXMgTG93IjoKICAoIExhc3QoW09ic2VydmF0aW9uQ2xpbmljYWxSZXN1bHQ6ICJHbGVhc29uIHNjb3JlIGluIFNwZWNpbWVuIFF1YWxpdGF0aXZlIl0gR2xlYXNvblNjb3JlCiAgICAgIHdpdGggIkZpcnN0IFByb3N0YXRlIENhbmNlciBUcmVhdG1lbnQgZHVyaW5nIGRheSBvZiBNZWFzdXJlbWVudCBQZXJpb2QiIEZpcnN0UHJvc3RhdGVDYW5jZXJUcmVhdG1lbnQKICAgICAgICBzdWNoIHRoYXQgR2xlYXNvblNjb3JlLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBzdGFydHMgYmVmb3JlIHN0YXJ0IG9mIEZpcnN0UHJvc3RhdGVDYW5jZXJUcmVhdG1lbnQucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApCiAgICAgICAgICBhbmQgR2xlYXNvblNjb3JlLnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICBzb3J0IGJ5IHN0YXJ0IG9mIGVmZmVjdGl2ZS50b0ludGVydmFsICggKQogICkgKSBMYXN0R2xlYXNvblNjb3JlCiAgICByZXR1cm4gTGFzdEdsZWFzb25TY29yZS52YWx1ZSBhcyBGSElSLmludGVnZXIgPD0gNgoKZGVmaW5lICJNb3N0IFJlY2VudCBQcm9zdGF0ZSBDYW5jZXIgU3RhZ2luZyBUdW1vciBTaXplIFQxYSB0byBUMmEiOgogICggTGFzdCgoW09ic2VydmF0aW9uQ2xpbmljYWxSZXN1bHQ6ICJUdW1vciBzdGFnaW5nICh0dW1vciBzdGFnaW5nKSJdIFR1bW9yU3RhZ2luZwogICAgLy8gVE9ETzogZGV0ZXJtaW5lIGZlYXNpYmlsaXR5IG9mIE9ic2VydmF0aW9uQ2xpbmljYWxSZXN1bHQgaGF2aW5nIGJhc2VkT24gcmVmZXJlbmNlIHRvIENvbmRpdGlvbgogICAgLy8gd2hlcmUgZXhpc3RzKCJQcm9zdGF0ZSBDYW5jZXIgRGlhZ25vc2lzIiBBY3RpdmVQcm9zdGF0ZUNhbmNlciB3aGVyZSBUdW1vclN0YWdpbmcuYmFzZWRPbi5yZWZlcmVuY2VzKEFjdGl2ZVByb3N0YXRlQ2FuY2VyKSkKICAgIAogICAgKSBQcm9zdGF0ZUNhbmNlclN0YWdpbmcKICAgICAgd2l0aCAiRmlyc3QgUHJvc3RhdGUgQ2FuY2VyIFRyZWF0bWVudCBkdXJpbmcgZGF5IG9mIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RQcm9zdGF0ZUNhbmNlclRyZWF0bWVudAogICAgICAgIHN1Y2ggdGhhdCBQcm9zdGF0ZUNhbmNlclN0YWdpbmcuZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBiZWZvcmUgc3RhcnQgb2YgRmlyc3RQcm9zdGF0ZUNhbmNlclRyZWF0bWVudC5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkKICAgICAgICAgIGFuZCBQcm9zdGF0ZUNhbmNlclN0YWdpbmcuc3RhdHVzIGluIHsgJ2ZpbmFsJywgJ2FtZW5kZWQnLCAnY29ycmVjdGVkJyB9CiAgICAgIHNvcnQgYnkgc3RhcnQgb2YgZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApCiAgKSApIExhc3RQcm9zdGF0ZUNhbmNlclN0YWdpbmcKICAgIHdoZXJlICggTGFzdFByb3N0YXRlQ2FuY2VyU3RhZ2luZy52YWx1ZSB+ICJBbWVyaWNhbiBKb2ludCBDb21taXR0ZWUgb24gQ2FuY2VyIGNUMWEgKHF1YWxpZmllciB2YWx1ZSkiCiAgICAgICAgb3IgTGFzdFByb3N0YXRlQ2FuY2VyU3RhZ2luZy52YWx1ZSB+ICJBbWVyaWNhbiBKb2ludCBDb21taXR0ZWUgb24gQ2FuY2VyIGNUMWIgKHF1YWxpZmllciB2YWx1ZSkiCiAgICAgICAgb3IgTGFzdFByb3N0YXRlQ2FuY2VyU3RhZ2luZy52YWx1ZSB+ICJBbWVyaWNhbiBKb2ludCBDb21taXR0ZWUgb24gQ2FuY2VyIGNUMWMgKHF1YWxpZmllciB2YWx1ZSkiCiAgICAgICAgb3IgTGFzdFByb3N0YXRlQ2FuY2VyU3RhZ2luZy52YWx1ZSB+ICJBbWVyaWNhbiBKb2ludCBDb21taXR0ZWUgb24gQ2FuY2VyIGNUMmEgKHF1YWxpZmllciB2YWx1ZSkiCiAgICApCgpkZWZpbmUgIlByb3N0YXRlIENhbmNlciBEaWFnbm9zaXMiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJQcm9zdGF0ZSBDYW5jZXIiXSBQcm9zdGF0ZUNhbmNlcgogIFtGSElSLkNvbmRpdGlvbjogIlByb3N0YXRlIENhbmNlciJdIFByb3N0YXRlQ2FuY2VyCiAgICB3aGVyZSBQcm9zdGF0ZUNhbmNlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIG92ZXJsYXBzIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICBhbmQgUHJvc3RhdGVDYW5jZXIuaXNWZXJpZmllZCAoICkKCi8qCkBub3RlOiBXaGVuIHBvc3NpYmxlLCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBtaWdyYXRlZCB0byBRSUNvcmVDb21tb24uCkBkZXNjcmlwdGlvbjogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBDb25kaXRpb24gaGFzIGEgdmVyaWZpY2F0aW9uIHN0YXR1cyBvZiAiY29uZmlybWVkIiwgInVuY29uZmlybWVkIiwgInByb3Zpc2lvbmFsIiwgb3IgImRpZmZlcmVudGlhbCIKKi8KCgpkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uIGlzVmVyaWZpZWQoY29uZGl0aW9uIENob2ljZTxDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXMsIENvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM+KToKICBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJjb25maXJtZWQiCiAgICAgIG9yIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgfiBTdGF0dXMuInVuY29uZmlybWVkIgogICAgICBvciBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJwcm92aXNpb25hbCIKICAgICAgb3IgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4iZGlmZmVyZW50aWFsIgogICk="/>
    <url
         value="https://madie.cms.gov/Library-CMS129FHIRProstCaBoneScanUse.cql"/>
  </content>
</Library>