<Bundle xmlns="http://hl7.org/fhir">
   <type value="transaction"></type>
   <entry>
      <fullUrl value="https://madie.cms.gov/Measure/CMS645FHIRBoneDensityPCADTherapy"></fullUrl>
      <resource>
         <Measure xmlns="http://hl7.org/fhir">
            <id value="CMS645FHIRBoneDensityPCADTherapy"></id>
            <meta>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablemeasure"></profile>
               <profile value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm"></profile>
               <profile value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/publishable-measure-cqfm"></profile>
               <profile value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/executable-measure-cqfm"></profile>
               <profile value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cql-measure-cqfm"></profile>
               <profile value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/elm-measure-cqfm"></profile>
               <profile value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm"></profile>
            </meta>
            <text>
               <status value="extensions"></status>
               <div xmlns="http://www.w3.org/1999/xhtml" class="col-12"> 
                  <table class="narrative-table"> 
                     <tbody> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Metadata</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Title</th> 
                           <td class="content-container">Bone Density Evaluation for Patients with Prostate Cancer and Receiving Androgen Deprivation TherapyFHIR</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Version</th> 
                           <td class="content-container">1.0.000</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Short Name</th> 
                           <td class="content-container">CMS645FHIR</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">GUID (Version Independent)</th> 
                           <td class="content-container">urn:uuid:299de9c4-755d-4f5a-ac9e-fa74fe34f759</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">GUID (Version Specific)</th> 
                           <td class="content-container">urn:uuid:5cd769d8-9a63-4637-b18e-76ee9c68cbf9</td> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">CMS Identifier</th> 
                           <td class="content-container">645FHIR</td> 
                        </tr>   
                        <tr> 
                           <th scope="row" class="row-header">Effective Period</th> 
                           <td class="content-container">2026-01-01 through 2026-12-31</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Steward (Publisher)</th> 
                           <td class="content-container">Oregon Urology</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Developer</th> 
                           <td class="content-container">Oregon Urology</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Description</th> 
                           <td class="content-container">
                              <p>Percentage of patients determined as having prostate cancer who are currently starting or undergoing androgen deprivation therapy (ADT), for an anticipated period of 12 months or greater and who receive an initial bone density evaluation. The bone density evaluation must be prior to the start of ADT or within 3 months of the start of ADT.</p>
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Copyright</th> 
                           <td class="content-container">
                              <p>Limited proprietary coding is contained in the measure specifications for convenience. Users of the proprietary code sets should obtain all necessary licenses from the owners of these code sets. Oregon Urology Institute (OUI) and Large Urology Group Practice Association (LUGPA) disclaim all liability for the use or accuracy of third-party codes contained in the specifications.</p> 
                              <p>CPT(R) contained in the Measure specifications is copyright 2004-2024. American Medical Association. LOINC(R) copyright 2004-2024 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2024. International Health Terminology Standards Development Organisation. ICD-10 copyright 2024 World Health Organization. All Rights Reserved.</p>
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Disclaimer</th> 
                           <td class="content-container">
                              <p>The performance measure is not a clinical guideline and does not establish a standard of medical care, and has not been tested for all potential applications.</p> 
                              <p>THE MEASURES AND SPECIFICATIONS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.</p> 
                              <p>Due to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].</p>
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Rationale</th> 
                           <td class="content-container">
                              <p>Androgen suppression as a treatment for prostate cancer can cause osteoporosis (Qaseem, 2008). Patients with prostate cancer undergoing prolonged androgen deprivation therapy (ADT) incur bone loss at a rate higher than menopausal patients (Guise, 2007). In preserving bone health, the goal is to prevent or treat osteopenia/osteoporosis for the patient on ADT and to prevent or delay skeletal-related events. The National Osteoporosis Foundation recommendations include a baseline assessment of bone density with a dual-energy X-ray absorptiometry (DEXA) scan and daily calcium and Vitamin D supplementation (Watts, 2012). The DEXA scan is the gold standard for bone density screening. Patients at risk for adverse bone consequences from chronic ADT do not always receive care according to evidence-based guidelines. These findings call for improved processes that standardize evidence-based practice, including baseline and follow-up bone density assessment (Watts, 2012).</p>
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Clinical Recommendation Statement</th> 
                           <td class="content-container">
                              <p>Bone density screening should be performed at the start of Androgen Deprivation Therapy (ADT) for prostate cancer. It should also be performed every 2 years for the patient with continued ADT or for patients with known osteoporosis. Current insurance practice is to possibly cover the cost of bone density screening if osteoporosis is known or if there is a high-risk drug. Some patients choose to delay bone density screening until after ADT is started and they therefore have insurance authorization due to the administration of a high-risk drug.</p>
                           </td> 
                        </tr> 
                        <tr>   
                           <th scope="row" class="row-header">Citation</th>  
                           <td class="content-container">  
                              <p>Cosman, F., deBeur, S.J., LeBoff, M.S., Lewiecki, E. M., Tanner, B., Randall, S., &amp; Lindsay, R. (2014). Clinician’s Guide to Prevention and Treatment of Osteoporosis. Osteoporosis International, 25(10), 2359–2381. https://doi.org/10.1007/s00198-014-2794-2</p>   
                           </td> 
                        </tr> 
                        <tr>   
                           <th scope="row" class="row-header">Citation</th>  
                           <td class="content-container">  
                              <p>Finkelstein, J., &amp; Yu, E. (2017). Clinical manifestations, diagnosis, and evaluation of osteoporosis in men. Retrieved from https://www.uptodate.com/contents/clinical-manifestations-diagnosis-and-evaluation-of-osteoporosis-in-men/print?source=see_link</p>   
                           </td> 
                        </tr> 
                        <tr>   
                           <th scope="row" class="row-header">Citation</th>  
                           <td class="content-container">  
                              <p>Guise, T.A., Oefelein, M.G., Eastham, J.A., Cookson, M.S., Higano, C.S., &amp; Smith, M.R. (2007). Estrogenic side effects of androgen deprivation therapy. Reviews in urology, 9(4), 163-180.</p>   
                           </td> 
                        </tr> 
                        <tr>   
                           <th scope="row" class="row-header">Citation</th>  
                           <td class="content-container">  
                              <p>Qaseem, A., Snow, V., Shekelle, P., Hopkins, R., Forciea, M. A., Owens, D. K., &amp; for the Clinical Efficacy Assessment Subcommittee of the American College of Physicians. (2008). Annals of Internal Medicine. Screening for osteoporosis in men: A clinical practice guideline from the American College of Physicians, 2008. Annals of Internal Medicine, 148(9), 680-684. https://doi.org/10.7326/0003-4819-148-9-200805060-00008</p>   
                           </td> 
                        </tr> 
                        <tr>   
                           <th scope="row" class="row-header">Citation</th>  
                           <td class="content-container">  
                              <p>Ward, R. J., Roberts, C. C., Bencardino, J. T., Arnold, E., Baccei, S. J., Cassidy, R. C., … Weissman, B. N. (2017). ACR Appropriateness Criteria (R) Osteoporosis and Bone Mineral Density. Journal of the American College of Radiology, 14(5), S189–S202. https://doi.org/10.1016/j.jacr.2017.02.018</p>   
                           </td> 
                        </tr> 
                        <tr>   
                           <th scope="row" class="row-header">Citation</th>  
                           <td class="content-container">  
                              <p>Watts, N. B., Adler, R. A., Bilezikian, J. P., Drake, M. T., Eastell, R., Orwoll, E. S., &amp; Finkelstein, J. S. (2012). Osteoporosis in Men: An Endocrine Society Clinical Practice Guideline. The Journal of Clinical Endocrinology &amp; Metabolism, 97(6), 1802–1822. https://doi.org/10.1210/jc.2011-3045</p>   
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">Definition</th> 
                           <td class="content-container">Dual Energy X-ray Absorptiometry (DEXA): 
                              <p>A scan that measures the bone of the spine, hip, or total body and measures bone mineral density. It is considered one of the most accurate measurements.</p>
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">Definition</th> 
                           <td class="content-container">First Androgen Deprivation Therapy: 
                              <p>The first Androgen Deprivation Therapy (ADT) is measured as the first order or administration of ADT for an anticipated period of 12 months or greater to a patient with prostate cancer.</p>
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">Definition</th> 
                           <td class="content-container">Peripheral Dual Energy X-ray Absorptiometry (PDXA): 
                              <p>Bone mineral density measurement of the wrist, heel, or finger.</p>
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Guidance (Usage)</th> 
                           <td class="content-container">
                              <p>In order to capture the practitioner's intent of androgen deprivation therapy (ADT) for a period of 12 months or greater, SNOMEDCT 456381000124102 which is Injection of leuprolide acetate for the twelve-month period (regime/therapy) is the correct code.</p> 
                              <p>This eCQM is a patient-based measure.</p> 
                              <p>This FHIR-based measure has been derived from the QDM-based measure CMS645v9. Please refer to the HL7 QI-Core Implementation Guide (https://hl7.org/fhir/us/qicore/STU6/) for more information on QI-Core and mapping recommendations from QDM to QI-Core STU 6 (https://hl7.org/fhir/us/qicore/STU6/qdm-to-qicore.html).</p>
                           </td> 
                        </tr>  
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Measure Group (Rate) (ID: Group_1)</th> 
                        </tr>   
                        <tr> 
                           <th scope="row" class="row-header">Basis</th> 
                           <td class="content-container">boolean</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Scoring</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/measure-scoring#proportion: 'Proportion']</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Type</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/measure-type#process: 'Process']</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Improvement Notation</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/measure-improvement-notation#increase: 'Increased score indicates improvement']</td> 
                        </tr>  
                        <tr>  
                           <th scope="row" class="row-header">Initial Population</th> 
                           <td class="content-container"> 
                              <em>ID</em>: InitialPopulation_1 
                              <br></br>  
                              <em>Description</em>: 
                              <p style="white-space: pre-line" class="tab-one">
                                 <p>Patients with a qualifying encounter in the measurement period AND with a diagnosis of prostate cancer AND with an order for ADT or an active medication of ADT with an intent for treatment greater than or equal to 12 months during the measurement period AND order for ADT in 3 months before to 9 months after the start of the measurement period</p>
                              </p>   
                              <em>Logic Definition</em>: 
                              <a href="#primary-cms645fhirbonedensitypcadtherapy-initial-population">Initial Population</a>  
                           </td> 
                        </tr>  
                        <tr>  
                           <th scope="row" class="row-header">Denominator</th> 
                           <td class="content-container"> 
                              <em>ID</em>: Denominator_1 
                              <br></br>  
                              <em>Description</em>: 
                              <p style="white-space: pre-line" class="tab-one">
                                 <p>Equals Initial Population</p>
                              </p>   
                              <em>Logic Definition</em>: 
                              <a href="#primary-cms645fhirbonedensitypcadtherapy-denominator">Denominator</a>  
                           </td> 
                        </tr>  
                        <tr>  
                           <th scope="row" class="row-header">Numerator</th> 
                           <td class="content-container"> 
                              <em>ID</em>: Numerator_1 
                              <br></br>  
                              <em>Description</em>: 
                              <p style="white-space: pre-line" class="tab-one">
                                 <p>Patients with a bone density evaluation within the two years prior to the start of or less than three months after the start of ADT treatment</p>
                              </p>   
                              <em>Logic Definition</em>: 
                              <a href="#primary-cms645fhirbonedensitypcadtherapy-numerator">Numerator</a>  
                           </td> 
                        </tr>  
                        <tr>  
                           <th scope="row" class="row-header">Denominator Exception</th> 
                           <td class="content-container"> 
                              <em>ID</em>: DenominatorException_1 
                              <br></br>  
                              <em>Description</em>: 
                              <p style="white-space: pre-line" class="tab-one">
                                 <p>Patient refused the bone density evaluation at the time ordered or did not have it performed within 3 months after the start of ADT</p>
                              </p>   
                              <em>Logic Definition</em>: 
                              <a href="#primary-cms645fhirbonedensitypcadtherapy-denominator-exception">Denominator Exception</a>  
                           </td> 
                        </tr>   
                        <tr> 
                           <th scope="row" class="row-header">Supplemental Data Guidance</th> 
                           <td class="content-container">
                              <p>For every patient evaluated by this measure also identify payer, race, ethnicity and sex</p>
                           </td> 
                        </tr> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Supplemental Data Elements</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Supplemental Data Element</th> 
                           <td class="content-container"> 
                              <em>ID</em>: sde-ethnicity  
                              <br></br>   
                              <em>Usage Code</em>: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]  
                              <br></br>  
                              <em>Description</em>: SDE Ethnicity   
                              <br></br> 
                              <em>Logic Definition</em>: 
                              <a href="#cms645fhirbonedensitypcadtherapy-sde-ethnicity">SDE Ethnicity</a>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Supplemental Data Element</th> 
                           <td class="content-container"> 
                              <em>ID</em>: sde-payer  
                              <br></br>   
                              <em>Usage Code</em>: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]  
                              <br></br>  
                              <em>Description</em>: SDE Payer   
                              <br></br> 
                              <em>Logic Definition</em>: 
                              <a href="#cms645fhirbonedensitypcadtherapy-sde-payer">SDE Payer</a>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Supplemental Data Element</th> 
                           <td class="content-container"> 
                              <em>ID</em>: sde-race  
                              <br></br>   
                              <em>Usage Code</em>: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]  
                              <br></br>  
                              <em>Description</em>: SDE Race   
                              <br></br> 
                              <em>Logic Definition</em>: 
                              <a href="#cms645fhirbonedensitypcadtherapy-sde-race">SDE Race</a>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Supplemental Data Element</th> 
                           <td class="content-container"> 
                              <em>ID</em>: sde-sex  
                              <br></br>   
                              <em>Usage Code</em>: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]  
                              <br></br>  
                              <em>Description</em>: SDE Sex   
                              <br></br> 
                              <em>Logic Definition</em>: 
                              <a href="#cms645fhirbonedensitypcadtherapy-sde-sex">SDE Sex</a>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Measure Logic</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Primary Library</th> 
                           <td class="content-container">https://madie.cms.gov/Library/CMS645FHIRBoneDensityPCADTherapy</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Contents</th> 
                           <td class="content-container"> 
                              <em>
                                 <a href="#population-criteria">Population Criteria</a>
                              </em> 
                              <br></br> 
                              <em>
                                 <a href="#definitions">Logic Definitions</a>
                              </em> 
                              <br></br> 
                              <em>
                                 <a href="#terminology">Terminology</a>
                              </em> 
                              <br></br> 
                              <em>
                                 <a href="#dependencies">Dependencies</a>
                              </em> 
                              <br></br> 
                              <em>
                                 <a href="#data-requirements">Data Requirements</a>
                              </em> 
                              <br></br> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">
                              <a name="population-criteria"> </a>Population Criteria
                           </th> 
                        </tr>   
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Measure Group (Rate) (ID: Group_1)</th> 
                        </tr>                   
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="primary-cms645fhirbonedensitypcadtherapy-initial-population"> </a>  Initial Population  
                           </th> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Initial Population":
  "Has Qualifying Encounter"
    and exists "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period"</code></pre> 
                           </td> 
                        </tr>                               
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="primary-cms645fhirbonedensitypcadtherapy-denominator"> </a>  Denominator  
                           </th> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Denominator":
  "Initial Population"</code></pre> 
                           </td> 
                        </tr>                        
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="primary-cms645fhirbonedensitypcadtherapy-numerator"> </a>  Numerator  
                           </th> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Numerator":
  "Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT"</code></pre> 
                           </td> 
                        </tr>                                 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="primary-cms645fhirbonedensitypcadtherapy-denominator-exception"> </a>  Denominator Exception  
                           </th> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Denominator Exception":
  exists ( "No Bone Density Scan Ordered Due to Patient Refusal" )
    or exists ( "No Bone Density Scan Performed Due to Patient Refusal" )</code></pre> 
                           </td> 
                        </tr>                 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">
                              <a name="definitions"> </a>Logic Definitions
                           </th> 
                        </tr>   
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="supplementaldataelements-sde-sex"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> SupplementalDataElements
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Sex":
  case
    when Patient.sex = '248153007' then "Male (finding)"
    when Patient.sex = '248152002' then "Female (finding)"
    else null
  end</code></pre> 
                           </td> 
                        </tr>        
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="supplementaldataelements-sde-payer"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> SupplementalDataElements
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Payer":
  [Coverage: type in "Payer Type"] Payer
    return {
      code: Payer.type,
      period: Payer.period
    }</code></pre> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="supplementaldataelements-sde-ethnicity"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> SupplementalDataElements
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Ethnicity":
  Patient.ethnicity E
    return Tuple {
      codes: { E.ombCategory } union E.detailed,
      display: E.text
    }</code></pre> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="supplementaldataelements-sde-race"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> SupplementalDataElements
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Race":
  Patient.race R
    return Tuple {
      codes: R.ombCategory union R.detailed,
      display: R.text
    }</code></pre> 
                           </td> 
                        </tr>    
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-sde-sex"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Sex":
  SDE."SDE Sex"</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-androgen-deprivation-therapy-for-urology-care-medication-active-start-dates"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Androgen Deprivation Therapy for Urology Care Medication Active Start Dates":
  [MedicationRequest: "Androgen Deprivation Therapy for Urology Care"] ADTActive
    let firstMedicationPeriod: First((collapse(ADTActive.dosageInstruction.timing.repeat.bounds DoseTime
          return DoseTime.toInterval()
      )) DrugPeriods
        sort by start of $this
    ),

    //get the very first event as interval
    
    firstMedicationEvent: First((ADTActive.dosageInstruction.timing dosageTiming
        //returns first event for the specific dosageTiming
        
        return First(dosageTiming.event dosageTimingEvents
            sort ascending
        )) firstEvents
        sort ascending
    ),
    medicationDateTime: Min({ firstMedicationEvent, start of firstMedicationPeriod, 
      end of firstMedicationPeriod }
    )
    where ADTActive.status in { 'active', 'completed' }
      and ADTActive.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
    return medicationDateTime</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-androgen-deprivation-therapy-for-urology-care-medication-order-start-dates"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Androgen Deprivation Therapy for Urology Care Medication Order Start Dates":
  [MedicationRequest: "Androgen Deprivation Therapy for Urology Care"] ADTOrder
    let firstMedicationPeriod: First((collapse(ADTOrder.dosageInstruction.timing.repeat.bounds DoseTime
          return DoseTime.toInterval()
      )) DrugPeriods
        sort by start of $this
    ),
    medicationDateTime: Min({ ADTOrder.authoredOn, start of firstMedicationPeriod, 
      end of firstMedicationPeriod }
    )
    where ADTOrder.status in { 'active', 'completed' }
      and ADTOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
    return medicationDateTime</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-prostate-cancer-diagnosis"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Prostate Cancer Diagnosis":
  ( [ConditionProblemsHealthConcerns: "Prostate Cancer"]
    union [ConditionEncounterDiagnosis: "Prostate Cancer"] ) ProstateCancer
    where ProstateCancer.prevalenceInterval ( ) overlaps day of "Measurement Period"
      and ProstateCancer.isVerified ( )</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-first-adt-in-3-months-before-to-9-months-after-start-of-measurement-period"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "First ADT in 3 Months Before to 9 Months After Start of Measurement Period":
  First(("Androgen Deprivation Therapy for Urology Care Medication Active Start Dates"
      union "Androgen Deprivation Therapy for Urology Care Medication Order Start Dates") ADTDateTime
      with "Prostate Cancer Diagnosis" ProstateCancer
        such that ADTDateTime during day of ProstateCancer.prevalenceInterval()
          and ADTDateTime during day of Interval[start of "Measurement Period" - 3 months, start of "Measurement Period" + 9 months]
      sort ascending
  )</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-order-for-12-months-of-adt-in-3-months-before-to-9-months-after-start-of-measurement-period"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period":
  [ServiceRequest: "Injection of leuprolide acetate for twelve month period (regime/therapy)"] OrderTwelveMonthADT
    with "First ADT in 3 Months Before to 9 Months After Start of Measurement Period" FirstADTMP
      such that OrderTwelveMonthADT.authoredOn on or after day of FirstADTMP
        and OrderTwelveMonthADT.authoredOn during day of Interval[start of "Measurement Period" - 3 months, start of "Measurement Period" + 9 months]
        and OrderTwelveMonthADT.status in { 'active', 'completed' }
        and OrderTwelveMonthADT.intent = 'order'</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-has-baseline-dexa-scan-two-years-prior-to-the-start-of-or-less-than-three-months-after-the-start-of-adt"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT":
  exists ( ( [ServiceRequest: "DEXA Bone Density for Urology Care"] DEXAOrdered
        with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
          such that DEXAOrdered.authoredOn 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
            or DEXAOrdered.authoredOn 2 years or less before day of OrderTwelveMonthsADT.authoredOn
        where DEXAOrdered.status in { 'active', 'completed' }
          and DEXAOrdered.intent = 'order'
    )
      union ( [ObservationClinicalResult: "DEXA Bone Density for Urology Care"] DEXAPerformed
          with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
            such that DEXAPerformed.effective.toInterval ( ) 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
              or DEXAPerformed.effective.toInterval ( ) 2 years or less before day of OrderTwelveMonthsADT.authoredOn
          where DEXAPerformed.status in { 'final', 'amended', 'corrected' }
      )
  )</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-numerator"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Numerator":
  "Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT"</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-no-bone-density-scan-ordered-due-to-patient-refusal"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "No Bone Density Scan Ordered Due to Patient Refusal":
  [ServiceNotRequested: "DEXA Bone Density for Urology Care"] DEXANotOrdered
    with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
      such that DEXANotOrdered.authoredOn 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
        and DEXANotOrdered.reasonRefused in "Patient Declined"</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-no-bone-density-scan-performed-due-to-patient-refusal"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "No Bone Density Scan Performed Due to Patient Refusal":
  [ObservationCancelled: "DEXA Bone Density for Urology Care"] DEXANotPerformed
    with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
      such that DEXANotPerformed.issued 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
        and DEXANotPerformed.notDoneReason in "Patient Declined"</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-denominator-exception"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Denominator Exception":
  exists ( "No Bone Density Scan Ordered Due to Patient Refusal" )
    or exists ( "No Bone Density Scan Performed Due to Patient Refusal" )</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-has-qualifying-encounter"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Has Qualifying Encounter":
  exists ( ["Encounter": "Office Visit"] OfficeVisit
      where OfficeVisit.period during day of "Measurement Period"
        and OfficeVisit.status = 'finished'
  )</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-initial-population"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Initial Population":
  "Has Qualifying Encounter"
    and exists "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period"</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-denominator"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "Denominator":
  "Initial Population"</code></pre> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-sde-payer"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Payer":
  SDE."SDE Payer"</code></pre> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-sde-ethnicity"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Ethnicity":
  SDE."SDE Ethnicity"</code></pre> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="cms645fhirbonedensitypcadtherapy-sde-race"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> CMS645FHIRBoneDensityPCADTherapy
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define "SDE Race":
  SDE."SDE Race"</code></pre> 
                           </td> 
                        </tr>              
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="fhirhelpers-tostring"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> FHIRHelpers
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">define function ToString(value uri): value.value</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="fhirhelpers-tointerval"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> FHIRHelpers
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
@description: Converts the given [Period](https://hl7.org/fhir/datatypes.html#Period)
value to a CQL DateTime Interval
@comment: If the start value of the given period is unspecified, the starting
boundary of the resulting interval will be open (meaning the start of the interval
is unknown, as opposed to interpreted as the beginning of time).
*/
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period."start" is null then
            Interval(period."start".value, period."end".value]
        else
            Interval[period."start".value, period."end".value]</code></pre> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" rowspan="2" class="row-header">  
                              <a name="fhirhelpers-tocode"> </a> Logic Definition 
                           </th> 
                           <td class="content-container">
                              <em>Library Name:</em> FHIRHelpers
                           </td> 
                        </tr> 
                        <tr> 
                           <td> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }</code></pre> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">
                              <a name="terminology"> </a>Terminology
                           </th> 
                        </tr>    
                        <tr>  
                           <th scope="row" class="row-header">Code System</th> 
                           <td class="content-container"> 
                              <em>Description</em>: Code system SNOMEDCT  
                              <br></br>    
                              <em>Resource</em>: http://snomed.info/sct 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://snomed.info/sct</tt> 
                           </td> 
                        </tr> 
                        <tr>  
                           <th scope="row" class="row-header">Value Set</th>  
                           <td class="content-container"> 
                              <em>Description</em>: Value set DEXA Bone Density for Urology Care  
                              <br></br>    
                              <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359</tt> 
                           </td> 
                        </tr> 
                        <tr>  
                           <th scope="row" class="row-header">Value Set</th>  
                           <td class="content-container"> 
                              <em>Description</em>: Value set Androgen Deprivation Therapy for Urology Care  
                              <br></br>    
                              <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352</tt> 
                           </td> 
                        </tr> 
                        <tr>  
                           <th scope="row" class="row-header">Value Set</th>  
                           <td class="content-container"> 
                              <em>Description</em>: Value set Prostate Cancer  
                              <br></br>    
                              <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319</tt> 
                           </td> 
                        </tr> 
                        <tr>  
                           <th scope="row" class="row-header">Value Set</th>  
                           <td class="content-container"> 
                              <em>Description</em>: Value set Patient Declined  
                              <br></br>    
                              <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1582 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1582</tt> 
                           </td> 
                        </tr> 
                        <tr>  
                           <th scope="row" class="row-header">Value Set</th>  
                           <td class="content-container"> 
                              <em>Description</em>: Value set Office Visit  
                              <br></br>    
                              <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001</tt> 
                           </td> 
                        </tr> 
                        <tr>  
                           <th scope="row" class="row-header">Value Set</th>  
                           <td class="content-container"> 
                              <em>Description</em>: Value set Payer Type  
                              <br></br>    
                              <em>Resource</em>: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591</tt> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">Direct Reference Code</th> 
                           <td class="content-container"> 
                              <em>Display</em>: Male (finding) 
                              <br></br> 
                              <em>Code</em>: 248153007 
                              <br></br> 
                              <em>System</em>: 
                              <tt>http://snomed.info/sct</tt> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Direct Reference Code</th> 
                           <td class="content-container"> 
                              <em>Display</em>: Female (finding) 
                              <br></br> 
                              <em>Code</em>: 248152002 
                              <br></br> 
                              <em>System</em>: 
                              <tt>http://snomed.info/sct</tt> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Direct Reference Code</th> 
                           <td class="content-container"> 
                              <em>Display</em>: Injection of leuprolide acetate for twelve month period (regime/therapy) 
                              <br></br> 
                              <em>Code</em>: 456381000124102 
                              <br></br> 
                              <em>System</em>: 
                              <tt>http://snomed.info/sct</tt> 
                           </td> 
                        </tr>  
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">
                              <a name="dependencies"> </a>Dependencies
                           </th> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">Dependency</th> 
                           <td class="content-container"> 
                              <em>Description</em>: QICore model information  
                              <br></br>    
                              <em>Resource</em>: http://hl7.org/fhir/Library/QICore-ModelInfo 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>http://hl7.org/fhir/Library/QICore-ModelInfo</tt> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Dependency</th> 
                           <td class="content-container"> 
                              <em>Description</em>: Library SDE  
                              <br></br>    
                              <em>Resource</em>: https://madie.cms.gov/Library/SupplementalDataElements|5.1.000 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>https://madie.cms.gov/Library/SupplementalDataElements|5.1.000</tt> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Dependency</th> 
                           <td class="content-container"> 
                              <em>Description</em>: Library FHIRHelpers  
                              <br></br>    
                              <em>Resource</em>: https://madie.cms.gov/Library/FHIRHelpers|4.4.000 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>https://madie.cms.gov/Library/FHIRHelpers|4.4.000</tt> 
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Dependency</th> 
                           <td class="content-container"> 
                              <em>Description</em>: Library QICoreCommon  
                              <br></br>    
                              <em>Resource</em>: https://madie.cms.gov/Library/QICoreCommon|4.0.000 
                              <br></br> 
                              <em>Canonical URL</em>: 
                              <tt>https://madie.cms.gov/Library/QICoreCommon|4.0.000</tt> 
                           </td> 
                        </tr>      
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">
                              <a name="data-requirements"> </a>Data Requirements
                           </th> 
                        </tr>  
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Patient 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient 
                              <br></br>   
                              <em>Must Support Elements</em>: extension, url 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: MedicationRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest 
                              <br></br>   
                              <em>Must Support Elements</em>: medication, dosageInstruction, status, status.value, intent, intent.value, authoredOn, authoredOn.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: medication
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: MedicationRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest 
                              <br></br>   
                              <em>Must Support Elements</em>: medication.reference.value, dosageInstruction, status, status.value, intent, intent.value, authoredOn, authoredOn.value 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Medication 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication 
                              <br></br>   
                              <em>Must Support Elements</em>: id.value, code 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Condition 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns 
                              <br></br>   
                              <em>Must Support Elements</em>: code 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Condition 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis 
                              <br></br>   
                              <em>Must Support Elements</em>: code 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: ServiceRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest 
                              <br></br>   
                              <em>Must Support Elements</em>: code, authoredOn, authoredOn.value, status, status.value, intent, intent.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>   
                              <span class="tab-one">
                                 <em>Code(s)</em>:  http://snomed.info/sct#456381000124102: 'Injection of leuprolide acetate for twelve month period (regime/therapy)'  
                              </span> 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: ServiceRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest 
                              <br></br>   
                              <em>Must Support Elements</em>: code, authoredOn, authoredOn.value, status, status.value, intent, intent.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Observation 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-clinical-result 
                              <br></br>   
                              <em>Must Support Elements</em>: code, effective, status, status.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: ServiceRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested 
                              <br></br>   
                              <em>Must Support Elements</em>: code, authoredOn, authoredOn.value, extension 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Observation 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observationcancelled 
                              <br></br>   
                              <em>Must Support Elements</em>: code, issued, issued.value, extension 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Encounter 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter 
                              <br></br>   
                              <em>Must Support Elements</em>: type, period, status, status.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: type
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Coverage 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage 
                              <br></br>   
                              <em>Must Support Elements</em>: type, period 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: type
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591 
                              <br></br>   
                           </td> 
                        </tr>  
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Generated using version 0.4.8 of the sample-content-ig Liquid templates</th> 
                        </tr> 
                     </tbody> 
                  </table> 
               </div>
            </text>
            <contained>
               <Library xmlns="http://hl7.org/fhir">
                  <id value="effective-data-requirements"></id>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
                     <valueCoding>
                        <system value="http://snomed.info/sct"></system>
                        <code value="248153007"></code>
                        <display value="Male (finding)"></display>
                     </valueCoding>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
                     <valueCoding>
                        <system value="http://snomed.info/sct"></system>
                        <code value="248152002"></code>
                        <display value="Female (finding)"></display>
                     </valueCoding>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
                     <valueCoding>
                        <system value="http://snomed.info/sct"></system>
                        <code value="456381000124102"></code>
                        <display value="Injection of leuprolide acetate for twelve month period (regime/therapy)"></display>
                     </valueCoding>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="SupplementalDataElements"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Sex"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Sex&quot;:
  case
    when Patient.sex = '248153007' then &quot;Male (finding)&quot;
    when Patient.sex = '248152002' then &quot;Female (finding)&quot;
    else null
  end"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="0"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Sex"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Sex&quot;:
  SDE.&quot;SDE Sex&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="1"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Androgen Deprivation Therapy for Urology Care Medication Active Start Dates"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Androgen Deprivation Therapy for Urology Care Medication Active Start Dates&quot;:
  [MedicationRequest: &quot;Androgen Deprivation Therapy for Urology Care&quot;] ADTActive
    let firstMedicationPeriod: First((collapse(ADTActive.dosageInstruction.timing.repeat.bounds DoseTime
          return DoseTime.toInterval()
      )) DrugPeriods
        sort by start of $this
    ),

    //get the very first event as interval
    
    firstMedicationEvent: First((ADTActive.dosageInstruction.timing dosageTiming
        //returns first event for the specific dosageTiming
        
        return First(dosageTiming.event dosageTimingEvents
            sort ascending
        )) firstEvents
        sort ascending
    ),
    medicationDateTime: Min({ firstMedicationEvent, start of firstMedicationPeriod, 
      end of firstMedicationPeriod }
    )
    where ADTActive.status in { 'active', 'completed' }
      and ADTActive.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
    return medicationDateTime"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="2"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Androgen Deprivation Therapy for Urology Care Medication Order Start Dates"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Androgen Deprivation Therapy for Urology Care Medication Order Start Dates&quot;:
  [MedicationRequest: &quot;Androgen Deprivation Therapy for Urology Care&quot;] ADTOrder
    let firstMedicationPeriod: First((collapse(ADTOrder.dosageInstruction.timing.repeat.bounds DoseTime
          return DoseTime.toInterval()
      )) DrugPeriods
        sort by start of $this
    ),
    medicationDateTime: Min({ ADTOrder.authoredOn, start of firstMedicationPeriod, 
      end of firstMedicationPeriod }
    )
    where ADTOrder.status in { 'active', 'completed' }
      and ADTOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
    return medicationDateTime"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="3"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Prostate Cancer Diagnosis"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Prostate Cancer Diagnosis&quot;:
  ( [ConditionProblemsHealthConcerns: &quot;Prostate Cancer&quot;]
    union [ConditionEncounterDiagnosis: &quot;Prostate Cancer&quot;] ) ProstateCancer
    where ProstateCancer.prevalenceInterval ( ) overlaps day of &quot;Measurement Period&quot;
      and ProstateCancer.isVerified ( )"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="4"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="First ADT in 3 Months Before to 9 Months After Start of Measurement Period"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;First ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot;:
  First((&quot;Androgen Deprivation Therapy for Urology Care Medication Active Start Dates&quot;
      union &quot;Androgen Deprivation Therapy for Urology Care Medication Order Start Dates&quot;) ADTDateTime
      with &quot;Prostate Cancer Diagnosis&quot; ProstateCancer
        such that ADTDateTime during day of ProstateCancer.prevalenceInterval()
          and ADTDateTime during day of Interval[start of &quot;Measurement Period&quot; - 3 months, start of &quot;Measurement Period&quot; + 9 months]
      sort ascending
  )"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="5"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot;:
  [ServiceRequest: &quot;Injection of leuprolide acetate for twelve month period (regime/therapy)&quot;] OrderTwelveMonthADT
    with &quot;First ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot; FirstADTMP
      such that OrderTwelveMonthADT.authoredOn on or after day of FirstADTMP
        and OrderTwelveMonthADT.authoredOn during day of Interval[start of &quot;Measurement Period&quot; - 3 months, start of &quot;Measurement Period&quot; + 9 months]
        and OrderTwelveMonthADT.status in { 'active', 'completed' }
        and OrderTwelveMonthADT.intent = 'order'"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="6"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT&quot;:
  exists ( ( [ServiceRequest: &quot;DEXA Bone Density for Urology Care&quot;] DEXAOrdered
        with &quot;Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot; OrderTwelveMonthsADT
          such that DEXAOrdered.authoredOn 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
            or DEXAOrdered.authoredOn 2 years or less before day of OrderTwelveMonthsADT.authoredOn
        where DEXAOrdered.status in { 'active', 'completed' }
          and DEXAOrdered.intent = 'order'
    )
      union ( [ObservationClinicalResult: &quot;DEXA Bone Density for Urology Care&quot;] DEXAPerformed
          with &quot;Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot; OrderTwelveMonthsADT
            such that DEXAPerformed.effective.toInterval ( ) 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
              or DEXAPerformed.effective.toInterval ( ) 2 years or less before day of OrderTwelveMonthsADT.authoredOn
          where DEXAPerformed.status in { 'final', 'amended', 'corrected' }
      )
  )"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="7"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Numerator"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Numerator&quot;:
  &quot;Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="8"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="No Bone Density Scan Ordered Due to Patient Refusal"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;No Bone Density Scan Ordered Due to Patient Refusal&quot;:
  [ServiceNotRequested: &quot;DEXA Bone Density for Urology Care&quot;] DEXANotOrdered
    with &quot;Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot; OrderTwelveMonthsADT
      such that DEXANotOrdered.authoredOn 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
        and DEXANotOrdered.reasonRefused in &quot;Patient Declined&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="9"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="No Bone Density Scan Performed Due to Patient Refusal"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;No Bone Density Scan Performed Due to Patient Refusal&quot;:
  [ObservationCancelled: &quot;DEXA Bone Density for Urology Care&quot;] DEXANotPerformed
    with &quot;Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot; OrderTwelveMonthsADT
      such that DEXANotPerformed.issued 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
        and DEXANotPerformed.notDoneReason in &quot;Patient Declined&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="10"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Denominator Exception"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Denominator Exception&quot;:
  exists ( &quot;No Bone Density Scan Ordered Due to Patient Refusal&quot; )
    or exists ( &quot;No Bone Density Scan Performed Due to Patient Refusal&quot; )"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="11"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Has Qualifying Encounter"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Has Qualifying Encounter&quot;:
  exists ( [&quot;Encounter&quot;: &quot;Office Visit&quot;] OfficeVisit
      where OfficeVisit.period during day of &quot;Measurement Period&quot;
        and OfficeVisit.status = 'finished'
  )"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="12"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Initial Population"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Initial Population&quot;:
  &quot;Has Qualifying Encounter&quot;
    and exists &quot;Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="13"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="Denominator"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;Denominator&quot;:
  &quot;Initial Population&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="14"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="SupplementalDataElements"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Payer"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Payer&quot;:
  [Coverage: type in &quot;Payer Type&quot;] Payer
    return {
      code: Payer.type,
      period: Payer.period
    }"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="15"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Payer"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Payer&quot;:
  SDE.&quot;SDE Payer&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="16"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="SupplementalDataElements"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Ethnicity"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Ethnicity&quot;:
  Patient.ethnicity E
    return Tuple {
      codes: { E.ombCategory } union E.detailed,
      display: E.text
    }"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="17"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Ethnicity"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Ethnicity&quot;:
  SDE.&quot;SDE Ethnicity&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="18"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="SupplementalDataElements"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Race"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Race&quot;:
  Patient.race R
    return Tuple {
      codes: R.ombCategory union R.detailed,
      display: R.text
    }"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="19"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="CMS645FHIRBoneDensityPCADTherapy"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="SDE Race"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define &quot;SDE Race&quot;:
  SDE.&quot;SDE Race&quot;"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="20"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="FHIRHelpers"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="ToString"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="define function ToString(value uri): value.value"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="21"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="FHIRHelpers"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="ToInterval"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="/*
@description: Converts the given [Period](https://hl7.org/fhir/datatypes.html#Period)
value to a CQL DateTime Interval
@comment: If the start value of the given period is unspecified, the starting
boundary of the resulting interval will be open (meaning the start of the interval
is unknown, as opposed to interpreted as the beginning of time).
*/
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period.&quot;start&quot; is null then
            Interval(period.&quot;start&quot;.value, period.&quot;end&quot;.value]
        else
            Interval[period.&quot;start&quot;.value, period.&quot;end&quot;.value]"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="22"></valueInteger>
                     </extension>
                  </extension>
                  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
                     <extension url="libraryName">
                        <valueString value="FHIRHelpers"></valueString>
                     </extension>
                     <extension url="name">
                        <valueString value="ToCode"></valueString>
                     </extension>
                     <extension url="statement">
                        <valueString value="/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }"></valueString>
                     </extension>
                     <extension url="displaySequence">
                        <valueInteger value="23"></valueInteger>
                     </extension>
                  </extension>
                  <name value="EffectiveDataRequirements"></name>
                  <status value="active"></status>
                  <type>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/library-type"></system>
                        <code value="module-definition"></code>
                     </coding>
                  </type>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="QICore model information"></display>
                     <resource value="http://hl7.org/fhir/Library/QICore-ModelInfo"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Library SDE"></display>
                     <resource value="https://madie.cms.gov/Library/SupplementalDataElements|5.1.000"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Library FHIRHelpers"></display>
                     <resource value="https://madie.cms.gov/Library/FHIRHelpers|4.4.000"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Library QICoreCommon"></display>
                     <resource value="https://madie.cms.gov/Library/QICoreCommon|4.0.000"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Code system SNOMEDCT"></display>
                     <resource value="http://snomed.info/sct"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Value set DEXA Bone Density for Urology Care"></display>
                     <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Value set Androgen Deprivation Therapy for Urology Care"></display>
                     <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Value set Prostate Cancer"></display>
                     <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Value set Patient Declined"></display>
                     <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1582"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Value set Office Visit"></display>
                     <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001"></resource>
                  </relatedArtifact>
                  <relatedArtifact>
                     <type value="depends-on"></type>
                     <display value="Value set Payer Type"></display>
                     <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"></resource>
                  </relatedArtifact>
                  <parameter>
                     <name value="Measurement Period"></name>
                     <use value="in"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="Period"></type>
                  </parameter>
                  <parameter>
                     <name value="Numerator"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="boolean"></type>
                  </parameter>
                  <parameter>
                     <name value="Denominator Exception"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="boolean"></type>
                  </parameter>
                  <parameter>
                     <name value="Denominator"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="boolean"></type>
                  </parameter>
                  <parameter>
                     <name value="Initial Population"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="boolean"></type>
                  </parameter>
                  <parameter>
                     <name value="SDE Sex"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="Coding"></type>
                  </parameter>
                  <parameter>
                     <name value="SDE Payer"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="*"></max>
                     <type value="Resource"></type>
                  </parameter>
                  <parameter>
                     <name value="SDE Ethnicity"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="Resource"></type>
                  </parameter>
                  <parameter>
                     <name value="SDE Race"></name>
                     <use value="out"></use>
                     <min value="0"></min>
                     <max value="1"></max>
                     <type value="Resource"></type>
                  </parameter>
                  <dataRequirement>
                     <type value="Patient"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient"></profile>
                     <mustSupport value="extension"></mustSupport>
                     <mustSupport value="url"></mustSupport>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="MedicationRequest"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest"></profile>
                     <mustSupport value="medication"></mustSupport>
                     <mustSupport value="dosageInstruction"></mustSupport>
                     <mustSupport value="status"></mustSupport>
                     <mustSupport value="status.value"></mustSupport>
                     <mustSupport value="intent"></mustSupport>
                     <mustSupport value="intent.value"></mustSupport>
                     <mustSupport value="authoredOn"></mustSupport>
                     <mustSupport value="authoredOn.value"></mustSupport>
                     <codeFilter>
                        <path value="medication"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="MedicationRequest"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest"></profile>
                     <mustSupport value="medication.reference.value"></mustSupport>
                     <mustSupport value="dosageInstruction"></mustSupport>
                     <mustSupport value="status"></mustSupport>
                     <mustSupport value="status.value"></mustSupport>
                     <mustSupport value="intent"></mustSupport>
                     <mustSupport value="intent.value"></mustSupport>
                     <mustSupport value="authoredOn"></mustSupport>
                     <mustSupport value="authoredOn.value"></mustSupport>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Medication"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication"></profile>
                     <mustSupport value="id.value"></mustSupport>
                     <mustSupport value="code"></mustSupport>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Condition"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns"></profile>
                     <mustSupport value="code"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Condition"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis"></profile>
                     <mustSupport value="code"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="ServiceRequest"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="authoredOn"></mustSupport>
                     <mustSupport value="authoredOn.value"></mustSupport>
                     <mustSupport value="status"></mustSupport>
                     <mustSupport value="status.value"></mustSupport>
                     <mustSupport value="intent"></mustSupport>
                     <mustSupport value="intent.value"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <code>
                           <system value="http://snomed.info/sct"></system>
                           <code value="456381000124102"></code>
                           <display value="Injection of leuprolide acetate for twelve month period (regime/therapy)"></display>
                        </code>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="ServiceRequest"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="authoredOn"></mustSupport>
                     <mustSupport value="authoredOn.value"></mustSupport>
                     <mustSupport value="status"></mustSupport>
                     <mustSupport value="status.value"></mustSupport>
                     <mustSupport value="intent"></mustSupport>
                     <mustSupport value="intent.value"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Observation"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-clinical-result"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="effective"></mustSupport>
                     <mustSupport value="status"></mustSupport>
                     <mustSupport value="status.value"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="ServiceRequest"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="authoredOn"></mustSupport>
                     <mustSupport value="authoredOn.value"></mustSupport>
                     <mustSupport value="extension"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="ServiceRequest"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="authoredOn"></mustSupport>
                     <mustSupport value="authoredOn.value"></mustSupport>
                     <mustSupport value="extension"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Observation"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observationcancelled"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="issued"></mustSupport>
                     <mustSupport value="issued.value"></mustSupport>
                     <mustSupport value="extension"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Observation"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observationcancelled"></profile>
                     <mustSupport value="code"></mustSupport>
                     <mustSupport value="issued"></mustSupport>
                     <mustSupport value="issued.value"></mustSupport>
                     <mustSupport value="extension"></mustSupport>
                     <codeFilter>
                        <path value="code"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Encounter"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter"></profile>
                     <mustSupport value="type"></mustSupport>
                     <mustSupport value="period"></mustSupport>
                     <mustSupport value="status"></mustSupport>
                     <mustSupport value="status.value"></mustSupport>
                     <codeFilter>
                        <path value="type"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001"></valueSet>
                     </codeFilter>
                  </dataRequirement>
                  <dataRequirement>
                     <type value="Coverage"></type>
                     <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage"></profile>
                     <mustSupport value="type"></mustSupport>
                     <mustSupport value="period"></mustSupport>
                     <codeFilter>
                        <path value="type"></path>
                        <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"></valueSet>
                     </codeFilter>
                  </dataRequirement>
               </Library>
            </contained>
            <extension id="supplementalDataGuidance" url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-supplementalDataGuidance">
               <extension url="guidance">
                  <valueString value="&lt;p&gt;For every patient evaluated by this measure also identify payer, race, ethnicity and sex&lt;/p&gt;"></valueString>
               </extension>
               <extension url="usage">
                  <valueCodeableConcept>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-data-usage"></system>
                        <code value="supplemental-data"></code>
                        <display value="Supplemental Data"></display>
                     </coding>
                     <text value="Supplemental Data Guidance"></text>
                  </valueCodeableConcept>
               </extension>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-definitionTerm">
               <extension url="term">
                  <valueString value="Dual Energy X-ray Absorptiometry (DEXA)"></valueString>
               </extension>
               <extension url="definition">
                  <valueMarkdown value="A scan that measures the bone of the spine, hip, or total body and measures bone mineral density. It is considered one of the most accurate measurements.
"></valueMarkdown>
               </extension>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-definitionTerm">
               <extension url="term">
                  <valueString value="First Androgen Deprivation Therapy"></valueString>
               </extension>
               <extension url="definition">
                  <valueMarkdown value="The first Androgen Deprivation Therapy (ADT) is measured as the first order or administration of ADT for an anticipated period of 12 months or greater to a patient with prostate cancer.
"></valueMarkdown>
               </extension>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-definitionTerm">
               <extension url="term">
                  <valueString value="Peripheral Dual Energy X-ray Absorptiometry (PDXA)"></valueString>
               </extension>
               <extension url="definition">
                  <valueMarkdown value="Bone mineral density measurement of the wrist, heel, or finger.
"></valueMarkdown>
               </extension>
            </extension>
            <extension url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements">
               <valueReference>
                  <reference value="#effective-data-requirements"></reference>
               </valueReference>
            </extension>
            <url value="https://madie.cms.gov/Measure/CMS645FHIRBoneDensityPCADTherapy"></url>
            <identifier>
               <use value="usual"></use>
               <type>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/artifact-identifier-type"></system>
                     <code value="short-name"></code>
                     <display value="Short Name"></display>
                  </coding>
               </type>
               <system value="https://madie.cms.gov/measure/shortName"></system>
               <value value="CMS645FHIR"></value>
            </identifier>
            <identifier>
               <use value="official"></use>
               <type>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/artifact-identifier-type"></system>
                     <code value="version-independent"></code>
                     <display value="Version Independent"></display>
                  </coding>
               </type>
               <system value="urn:ietf:rfc:3986"></system>
               <value value="urn:uuid:299de9c4-755d-4f5a-ac9e-fa74fe34f759"></value>
            </identifier>
            <identifier>
               <use value="official"></use>
               <type>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/artifact-identifier-type"></system>
                     <code value="version-specific"></code>
                     <display value="Version Specific"></display>
                  </coding>
               </type>
               <system value="urn:ietf:rfc:3986"></system>
               <value value="urn:uuid:5cd769d8-9a63-4637-b18e-76ee9c68cbf9"></value>
            </identifier>
            <identifier>
               <use value="official"></use>
               <type>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/artifact-identifier-type"></system>
                     <code value="publisher"></code>
                     <display value="Publisher"></display>
                  </coding>
               </type>
               <system value="https://madie.cms.gov/measure/cmsId"></system>
               <value value="645FHIR"></value>
               <assigner>
                  <display value="CMS"></display>
               </assigner>
            </identifier>
            <version value="1.0.000"></version>
            <name value="CMS645FHIRBoneDensityPCADTherapy"></name>
            <title value="Bone Density Evaluation for Patients with Prostate Cancer and Receiving Androgen Deprivation TherapyFHIR
"></title>
            <status value="active"></status>
            <experimental value="false"></experimental>
            <date value="2025-08-22T18:20:09+00:00"></date>
            <publisher value="Oregon Urology"></publisher>
            <contact>
               <telecom>
                  <system value="url"></system>
                  <value value="www.oregonurology.com"></value>
               </telecom>
            </contact>
            <description value="Percentage of patients determined as having prostate cancer who are currently starting or undergoing androgen deprivation therapy (ADT), for an anticipated period of 12 months or greater and who receive an initial bone density evaluation. The bone density evaluation must be prior to the start of ADT or within 3 months of the start of ADT.
"></description>
            <usage value="In order to capture the practitioner's intent of androgen deprivation therapy (ADT) for a period of 12 months or greater, SNOMEDCT 456381000124102 which is Injection of leuprolide acetate for the twelve-month period (regime/therapy) is the correct code.

This eCQM is a patient-based measure.

This FHIR-based measure has been derived from the QDM-based measure CMS645v9. Please refer to the HL7 QI-Core Implementation Guide (https://hl7.org/fhir/us/qicore/STU6/) for more information on QI-Core and mapping recommendations from QDM to QI-Core STU 6 (https://hl7.org/fhir/us/qicore/STU6/qdm-to-qicore.html).
"></usage>
            <copyright value="Limited proprietary coding is contained in the measure specifications for convenience. Users of the proprietary code sets should obtain all necessary licenses from the owners of these code sets. Oregon Urology Institute (OUI) and Large Urology Group Practice Association (LUGPA) disclaim all liability for the use or accuracy of third-party codes contained in the specifications.

CPT(R) contained in the Measure specifications is copyright 2004-2024. American Medical Association. LOINC(R) copyright 2004-2024 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT\[R\]) copyright 2004-2024. International Health Terminology Standards Development Organisation. ICD-10 copyright 2024 World Health Organization. All Rights Reserved.
"></copyright>
            <effectivePeriod>
               <start value="2026-01-01"></start>
               <end value="2026-12-31"></end>
            </effectivePeriod>
            <author>
               <name value="Oregon Urology"></name>
               <telecom>
                  <system value="url"></system>
                  <value value="www.oregonurology.com"></value>
               </telecom>
            </author>
            <relatedArtifact>
               <type value="citation"></type>
               <citation value="Cosman, F., deBeur, S.J., LeBoff, M.S., Lewiecki, E. M., Tanner, B., Randall, S., \&amp; Lindsay, R. (2014). Clinician's Guide to Prevention and Treatment of Osteoporosis. Osteoporosis International, 25(10), 2359--2381. https://doi.org/10.1007/s00198-014-2794-2
"></citation>
            </relatedArtifact>
            <relatedArtifact>
               <type value="citation"></type>
               <citation value="Finkelstein, J., \&amp; Yu, E. (2017). Clinical manifestations, diagnosis, and evaluation of osteoporosis in men. Retrieved from https://www.uptodate.com/contents/clinical-manifestations-diagnosis-and-evaluation-of-osteoporosis-in-men/print?source=see_link
"></citation>
            </relatedArtifact>
            <relatedArtifact>
               <type value="citation"></type>
               <citation value="Guise, T.A., Oefelein, M.G., Eastham, J.A., Cookson, M.S., Higano, C.S., \&amp; Smith, M.R. (2007). Estrogenic side effects of androgen deprivation therapy. Reviews in urology, 9(4), 163-180.
"></citation>
            </relatedArtifact>
            <relatedArtifact>
               <type value="citation"></type>
               <citation value="Qaseem, A., Snow, V., Shekelle, P., Hopkins, R., Forciea, M. A., Owens, D. K., \&amp; for the Clinical Efficacy Assessment Subcommittee of the American College of Physicians. (2008). Annals of Internal Medicine. Screening for osteoporosis in men: A clinical practice guideline from the American College of Physicians, 2008. Annals of Internal Medicine, 148(9), 680-684. https://doi.org/10.7326/0003-4819-148-9-200805060-00008
"></citation>
            </relatedArtifact>
            <relatedArtifact>
               <type value="citation"></type>
               <citation value="Ward, R. J., Roberts, C. C., Bencardino, J. T., Arnold, E., Baccei, S. J., Cassidy, R. C., ... Weissman, B. N. (2017). ACR Appropriateness Criteria (R) Osteoporosis and Bone Mineral Density. Journal of the American College of Radiology, 14(5), S189--S202. https://doi.org/10.1016/j.jacr.2017.02.018
"></citation>
            </relatedArtifact>
            <relatedArtifact>
               <type value="citation"></type>
               <citation value="Watts, N. B., Adler, R. A., Bilezikian, J. P., Drake, M. T., Eastell, R., Orwoll, E. S., \&amp; Finkelstein, J. S. (2012). Osteoporosis in Men: An Endocrine Society Clinical Practice Guideline. The Journal of Clinical Endocrinology \&amp; Metabolism, 97(6), 1802--1822. https://doi.org/10.1210/jc.2011-3045
"></citation>
            </relatedArtifact>
            <library value="https://madie.cms.gov/Library/CMS645FHIRBoneDensityPCADTherapy"></library>
            <disclaimer value="The performance measure is not a clinical guideline and does not establish a standard of medical care, and has not been tested for all potential applications.

THE MEASURES AND SPECIFICATIONS ARE PROVIDED &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND.

Due to technical limitations, registered trademarks are indicated by (R) or \[R\] and unregistered trademarks are indicated by (TM) or \[TM\].
"></disclaimer>
            <rationale value="Androgen suppression as a treatment for prostate cancer can cause osteoporosis (Qaseem, 2008). Patients with prostate cancer undergoing prolonged androgen deprivation therapy (ADT) incur bone loss at a rate higher than menopausal patients (Guise, 2007). In preserving bone health, the goal is to prevent or treat osteopenia/osteoporosis for the patient on ADT and to prevent or delay skeletal-related events. The National Osteoporosis Foundation recommendations include a baseline assessment of bone density with a dual-energy X-ray absorptiometry (DEXA) scan and daily calcium and Vitamin D supplementation (Watts, 2012). The DEXA scan is the gold standard for bone density screening. Patients at risk for adverse bone consequences from chronic ADT do not always receive care according to evidence-based guidelines. These findings call for improved processes that standardize evidence-based practice, including baseline and follow-up bone density assessment (Watts, 2012).
"></rationale>
            <clinicalRecommendationStatement value="Bone density screening should be performed at the start of Androgen Deprivation Therapy (ADT) for prostate cancer. It should also be performed every 2 years for the patient with continued ADT or for patients with known osteoporosis. Current insurance practice is to possibly cover the cost of bone density screening if osteoporosis is known or if there is a high-risk drug. Some patients choose to delay bone density screening until after ADT is started and they therefore have insurance authorization due to the administration of a high-risk drug.
"></clinicalRecommendationStatement>
            <group id="Group_1">
               <extension url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-scoring">
                  <valueCodeableConcept>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-scoring"></system>
                        <code value="proportion"></code>
                        <display value="Proportion"></display>
                     </coding>
                  </valueCodeableConcept>
               </extension>
               <extension url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-populationBasis">
                  <valueCode value="boolean"></valueCode>
               </extension>
               <extension url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-type">
                  <valueCodeableConcept>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-type"></system>
                        <code value="process"></code>
                        <display value="Process"></display>
                     </coding>
                  </valueCodeableConcept>
               </extension>
               <extension url="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-improvementNotation">
                  <valueCodeableConcept>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-improvement-notation"></system>
                        <code value="increase"></code>
                        <display value="Increased score indicates improvement"></display>
                     </coding>
                  </valueCodeableConcept>
               </extension>
               <population id="InitialPopulation_1">
                  <code>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-population"></system>
                        <code value="initial-population"></code>
                        <display value="Initial Population"></display>
                     </coding>
                  </code>
                  <description value="Patients with a qualifying encounter in the measurement period AND with a diagnosis of prostate cancer AND with an order for ADT or an active medication of ADT with an intent for treatment greater than or equal to 12 months during the measurement period AND order for ADT in 3 months before to 9 months after the start of the measurement period
"></description>
                  <criteria>
                     <language value="text/cql-identifier"></language>
                     <expression value="Initial Population"></expression>
                  </criteria>
               </population>
               <population id="Denominator_1">
                  <code>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-population"></system>
                        <code value="denominator"></code>
                        <display value="Denominator"></display>
                     </coding>
                  </code>
                  <description value="Equals Initial Population
"></description>
                  <criteria>
                     <language value="text/cql-identifier"></language>
                     <expression value="Denominator"></expression>
                  </criteria>
               </population>
               <population id="Numerator_1">
                  <code>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-population"></system>
                        <code value="numerator"></code>
                        <display value="Numerator"></display>
                     </coding>
                  </code>
                  <description value="Patients with a bone density evaluation within the two years prior to the start of or less than three months after the start of ADT treatment
"></description>
                  <criteria>
                     <language value="text/cql-identifier"></language>
                     <expression value="Numerator"></expression>
                  </criteria>
               </population>
               <population id="DenominatorException_1">
                  <code>
                     <coding>
                        <system value="http://terminology.hl7.org/CodeSystem/measure-population"></system>
                        <code value="denominator-exception"></code>
                        <display value="Denominator Exception"></display>
                     </coding>
                  </code>
                  <description value="Patient refused the bone density evaluation at the time ordered or did not have it performed within 3 months after the start of ADT
"></description>
                  <criteria>
                     <language value="text/cql-identifier"></language>
                     <expression value="Denominator Exception"></expression>
                  </criteria>
               </population>
            </group>
            <supplementalData id="sde-ethnicity">
               <usage>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/measure-data-usage"></system>
                     <code value="supplemental-data"></code>
                  </coding>
               </usage>
               <description value="SDE Ethnicity
"></description>
               <criteria>
                  <language value="text/cql-identifier"></language>
                  <expression value="SDE Ethnicity"></expression>
               </criteria>
            </supplementalData>
            <supplementalData id="sde-payer">
               <usage>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/measure-data-usage"></system>
                     <code value="supplemental-data"></code>
                  </coding>
               </usage>
               <description value="SDE Payer
"></description>
               <criteria>
                  <language value="text/cql-identifier"></language>
                  <expression value="SDE Payer"></expression>
               </criteria>
            </supplementalData>
            <supplementalData id="sde-race">
               <usage>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/measure-data-usage"></system>
                     <code value="supplemental-data"></code>
                  </coding>
               </usage>
               <description value="SDE Race
"></description>
               <criteria>
                  <language value="text/cql-identifier"></language>
                  <expression value="SDE Race"></expression>
               </criteria>
            </supplementalData>
            <supplementalData id="sde-sex">
               <usage>
                  <coding>
                     <system value="http://terminology.hl7.org/CodeSystem/measure-data-usage"></system>
                     <code value="supplemental-data"></code>
                  </coding>
               </usage>
               <description value="SDE Sex
"></description>
               <criteria>
                  <language value="text/cql-identifier"></language>
                  <expression value="SDE Sex"></expression>
               </criteria>
            </supplementalData>
         </Measure>
      </resource>
      <request>
         <method value="POST"></method>
         <url value="Measure/CMS645FHIRBoneDensityPCADTherapy"></url>
      </request>
   </entry>
   <entry>
      <fullUrl value="https://madie.cms.gov/Library/CMS645FHIRBoneDensityPCADTherapy"></fullUrl>
      <resource>
         <Library xmlns="http://hl7.org/fhir">
            <id value="CMS645FHIRBoneDensityPCADTherapy"></id>
            <meta>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"></profile>
            </meta>
            <language value="en"></language>
            <text>
               <status value="extensions"></status>
               <div xmlns="http://www.w3.org/1999/xhtml" class="col-12"> 
                  <table class="narrative-table"> 
                     <tbody> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Metadata</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Title</th> 
                           <td class="content-container">CMS645FHIRBoneDensityPCADTherapy</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Version</th> 
                           <td class="content-container">1.0.000</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Identifier</th> 
                           <td class="content-container">CMS645FHIRBoneDensityPCADTherapy</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Steward (Publisher)</th> 
                           <td class="content-container">Oregon Urology</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Description</th> 
                           <td class="content-container">CMS645FHIRBoneDensityPCADTherapy</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Type</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/library-type#logic-library]</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: ServiceRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest 
                              <br></br>   
                              <em>Must Support Elements</em>: code, authoredOn, authoredOn.value, status, status.value, intent, intent.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: MedicationRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest 
                              <br></br>   
                              <em>Must Support Elements</em>: medication 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: medication
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: MedicationRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest 
                              <br></br>   
                              <em>Must Support Elements</em>: medication.reference.value 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Medication 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication 
                              <br></br>   
                              <em>Must Support Elements</em>: id.value, code 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Condition 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns 
                              <br></br>   
                              <em>Must Support Elements</em>: code 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Condition 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis 
                              <br></br>   
                              <em>Must Support Elements</em>: code 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Observation 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-clinical-result 
                              <br></br>   
                              <em>Must Support Elements</em>: code, effective, status, status.value 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: ServiceRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested 
                              <br></br>   
                              <em>Must Support Elements</em>: code 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Observation 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observationcancelled 
                              <br></br>   
                              <em>Must Support Elements</em>: code 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: code
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359 
                              <br></br>   
                           </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> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">library CMS645FHIRBoneDensityPCADTherapy version '1.0.000'

using QICore version '6.0.0'

include FHIRHelpers version '4.4.000' called FHIRHelpers
include SupplementalDataElements version '5.1.000' called SDE
include QICoreCommon version '4.0.000' called QICoreCommon

codesystem "SNOMEDCT": 'http://snomed.info/sct'

valueset "Androgen Deprivation Therapy for Urology Care": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352'
valueset "DEXA Bone Density for Urology Care": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359'
valueset "Office Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset "Patient Declined": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1582'
valueset "Prostate Cancer": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319'

code "Injection of leuprolide acetate for twelve month period (regime/therapy)": '456381000124102' from "SNOMEDCT" display 'Injection of leuprolide acetate for twelve month period (regime/therapy)'

parameter "Measurement Period" Interval&lt;DateTime&gt;

context Patient

define "Initial Population":
  "Has Qualifying Encounter"
    and exists "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period"

define "Denominator":
  "Initial Population"

define "Numerator":
  "Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT"

define "Denominator Exception":
  exists ( "No Bone Density Scan Ordered Due to Patient Refusal" )
    or exists ( "No Bone Density Scan Performed Due to Patient Refusal" )

define "SDE Ethnicity":
  SDE."SDE Ethnicity"

define "SDE Payer":
  SDE."SDE Payer"

define "SDE Race":
  SDE."SDE Race"

define "SDE Sex":
  SDE."SDE Sex"

define "Has Baseline DEXA Scan Two Years Prior to the Start of or Less than Three Months After the Start of ADT":
  exists ( ( [ServiceRequest: "DEXA Bone Density for Urology Care"] DEXAOrdered
        with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
          such that DEXAOrdered.authoredOn 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
            or DEXAOrdered.authoredOn 2 years or less before day of OrderTwelveMonthsADT.authoredOn
        where DEXAOrdered.status in { 'active', 'completed' }
          and DEXAOrdered.intent = 'order'
    )
      union ( [ObservationClinicalResult: "DEXA Bone Density for Urology Care"] DEXAPerformed
          with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
            such that DEXAPerformed.effective.toInterval ( ) 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
              or DEXAPerformed.effective.toInterval ( ) 2 years or less before day of OrderTwelveMonthsADT.authoredOn
          where DEXAPerformed.status in { 'final', 'amended', 'corrected' }
      )
  )

define "No Bone Density Scan Ordered Due to Patient Refusal":
  [ServiceNotRequested: "DEXA Bone Density for Urology Care"] DEXANotOrdered
    with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
      such that DEXANotOrdered.authoredOn 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
        and DEXANotOrdered.reasonRefused in "Patient Declined"

define "No Bone Density Scan Performed Due to Patient Refusal":
  [ObservationCancelled: "DEXA Bone Density for Urology Care"] DEXANotPerformed
    with "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period" OrderTwelveMonthsADT
      such that DEXANotPerformed.issued 3 months or less on or after day of OrderTwelveMonthsADT.authoredOn
        and DEXANotPerformed.notDoneReason in "Patient Declined"

define "First ADT in 3 Months Before to 9 Months After Start of Measurement Period":
  First(("Androgen Deprivation Therapy for Urology Care Medication Active Start Dates"
      union "Androgen Deprivation Therapy for Urology Care Medication Order Start Dates") ADTDateTime
      with "Prostate Cancer Diagnosis" ProstateCancer
        such that ADTDateTime during day of ProstateCancer.prevalenceInterval()
          and ADTDateTime during day of Interval[start of "Measurement Period" - 3 months, start of "Measurement Period" + 9 months]
      sort ascending
  )

define "Order for 12 Months of ADT in 3 Months Before to 9 Months After Start of Measurement Period":
  [ServiceRequest: "Injection of leuprolide acetate for twelve month period (regime/therapy)"] OrderTwelveMonthADT
    with "First ADT in 3 Months Before to 9 Months After Start of Measurement Period" FirstADTMP
      such that OrderTwelveMonthADT.authoredOn on or after day of FirstADTMP
        and OrderTwelveMonthADT.authoredOn during day of Interval[start of "Measurement Period" - 3 months, start of "Measurement Period" + 9 months]
        and OrderTwelveMonthADT.status in { 'active', 'completed' }
        and OrderTwelveMonthADT.intent = 'order'

define "Androgen Deprivation Therapy for Urology Care Medication Active Start Dates":
  [MedicationRequest: "Androgen Deprivation Therapy for Urology Care"] ADTActive
    let firstMedicationPeriod: First((collapse(ADTActive.dosageInstruction.timing.repeat.bounds DoseTime
          return DoseTime.toInterval()
      )) DrugPeriods
        sort by start of $this
    ),

    //get the very first event as interval
    
    firstMedicationEvent: First((ADTActive.dosageInstruction.timing dosageTiming
        //returns first event for the specific dosageTiming
        
        return First(dosageTiming.event dosageTimingEvents
            sort ascending
        )) firstEvents
        sort ascending
    ),
    medicationDateTime: Min({ firstMedicationEvent, start of firstMedicationPeriod, 
      end of firstMedicationPeriod }
    )
    where ADTActive.status in { 'active', 'completed' }
      and ADTActive.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
    return medicationDateTime

define "Androgen Deprivation Therapy for Urology Care Medication Order Start Dates":
  [MedicationRequest: "Androgen Deprivation Therapy for Urology Care"] ADTOrder
    let firstMedicationPeriod: First((collapse(ADTOrder.dosageInstruction.timing.repeat.bounds DoseTime
          return DoseTime.toInterval()
      )) DrugPeriods
        sort by start of $this
    ),
    medicationDateTime: Min({ ADTOrder.authoredOn, start of firstMedicationPeriod, 
      end of firstMedicationPeriod }
    )
    where ADTOrder.status in { 'active', 'completed' }
      and ADTOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
    return medicationDateTime

define "Has Qualifying Encounter":
  exists ( ["Encounter": "Office Visit"] OfficeVisit
      where OfficeVisit.period during day of "Measurement Period"
        and OfficeVisit.status = 'finished'
  )

define "Prostate Cancer Diagnosis":
  ( [ConditionProblemsHealthConcerns: "Prostate Cancer"]
    union [ConditionEncounterDiagnosis: "Prostate Cancer"] ) ProstateCancer
    where ProstateCancer.prevalenceInterval ( ) overlaps day of "Measurement Period"
      and ProstateCancer.isVerified ( )

/*      
@description: Returns true if the given condition either has no verification status or has a verification status of confirmed, unconfirmed, provisional, or differential
*/


define fluent function isVerified(condition Choice&lt;ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns&gt;):
  condition.verificationStatus is not null implies ( condition.verificationStatus ~ QICoreCommon."confirmed"
      or condition.verificationStatus ~ QICoreCommon."unconfirmed"
      or condition.verificationStatus ~ QICoreCommon."provisional"
      or condition.verificationStatus ~ QICoreCommon."differential"
  )</code></pre> 
                           </td> 
                        </tr>   
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Generated using version 0.4.8 of the sample-content-ig Liquid templates</th> 
                        </tr> 
                     </tbody> 
                  </table> 
               </div>
            </text>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://snomed.info/sct"></system>
                  <code value="456381000124102"></code>
                  <display value="Injection of leuprolide acetate for twelve month period (regime/therapy)"></display>
               </valueCoding>
            </extension>
            <url value="https://madie.cms.gov/Library/CMS645FHIRBoneDensityPCADTherapy"></url>
            <identifier>
               <use value="official"></use>
               <system value="https://madie.cms.gov/login"></system>
               <value value="CMS645FHIRBoneDensityPCADTherapy"></value>
            </identifier>
            <version value="1.0.000"></version>
            <name value="CMS645FHIRBoneDensityPCADTherapy"></name>
            <title value="CMS645FHIRBoneDensityPCADTherapy"></title>
            <status value="active"></status>
            <experimental value="false"></experimental>
            <type>
               <coding>
                  <system value="http://terminology.hl7.org/CodeSystem/library-type"></system>
                  <code value="logic-library"></code>
               </coding>
            </type>
            <date value="2025-08-22T18:20:11+00:00"></date>
            <publisher value="Oregon Urology"></publisher>
            <description value="CMS645FHIRBoneDensityPCADTherapy"></description>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="QICore model information"></display>
               <resource value="http://hl7.org/fhir/Library/QICore-ModelInfo"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Library SDE"></display>
               <resource value="https://madie.cms.gov/Library/SupplementalDataElements|5.1.000"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Library FHIRHelpers"></display>
               <resource value="https://madie.cms.gov/Library/FHIRHelpers|4.4.000"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Library QICoreCommon"></display>
               <resource value="https://madie.cms.gov/Library/QICoreCommon|4.0.000"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system SNOMEDCT"></display>
               <resource value="http://snomed.info/sct"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Value set DEXA Bone Density for Urology Care"></display>
               <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Value set Androgen Deprivation Therapy for Urology Care"></display>
               <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Value set Prostate Cancer"></display>
               <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Value set Patient Declined"></display>
               <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1582"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Value set Office Visit"></display>
               <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001"></resource>
            </relatedArtifact>
            <dataRequirement>
               <type value="ServiceRequest"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest"></profile>
               <mustSupport value="code"></mustSupport>
               <mustSupport value="authoredOn"></mustSupport>
               <mustSupport value="authoredOn.value"></mustSupport>
               <mustSupport value="status"></mustSupport>
               <mustSupport value="status.value"></mustSupport>
               <mustSupport value="intent"></mustSupport>
               <mustSupport value="intent.value"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="MedicationRequest"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest"></profile>
               <mustSupport value="medication"></mustSupport>
               <codeFilter>
                  <path value="medication"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.352"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="MedicationRequest"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest"></profile>
               <mustSupport value="medication.reference.value"></mustSupport>
            </dataRequirement>
            <dataRequirement>
               <type value="Medication"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication"></profile>
               <mustSupport value="id.value"></mustSupport>
               <mustSupport value="code"></mustSupport>
            </dataRequirement>
            <dataRequirement>
               <type value="Condition"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns"></profile>
               <mustSupport value="code"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="Condition"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis"></profile>
               <mustSupport value="code"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.319"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="Observation"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-clinical-result"></profile>
               <mustSupport value="code"></mustSupport>
               <mustSupport value="effective"></mustSupport>
               <mustSupport value="status"></mustSupport>
               <mustSupport value="status.value"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="ServiceRequest"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested"></profile>
               <mustSupport value="code"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="ServiceRequest"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicenotrequested"></profile>
               <mustSupport value="code"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="Observation"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observationcancelled"></profile>
               <mustSupport value="code"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
               </codeFilter>
            </dataRequirement>
            <dataRequirement>
               <type value="Observation"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observationcancelled"></profile>
               <mustSupport value="code"></mustSupport>
               <codeFilter>
                  <path value="code"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.359"></valueSet>
               </codeFilter>
            </dataRequirement>
            <content>
               <contentType value="text/cql"></contentType>
               <data value="[encoded data, 10796 characters]"></data>
            </content>
            <content>
               <contentType value="application/elm+json"></contentType>
               <data value="[encoded data, 576476 characters]"></data>
            </content>
         </Library>
      </resource>
      <request>
         <method value="POST"></method>
         <url value="Library/CMS645FHIRBoneDensityPCADTherapy"></url>
      </request>
   </entry>
   <entry>
      <fullUrl value="https://madie.cms.gov/Library/SupplementalDataElements"></fullUrl>
      <resource>
         <Library xmlns="http://hl7.org/fhir">
            <id value="SupplementalDataElements"></id>
            <meta>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"></profile>
            </meta>
            <language value="en"></language>
            <text>
               <status value="extensions"></status>
               <div xmlns="http://www.w3.org/1999/xhtml" class="col-12"> 
                  <table class="narrative-table"> 
                     <tbody> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Metadata</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Title</th> 
                           <td class="content-container">SupplementalDataElements</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Version</th> 
                           <td class="content-container">5.1.000</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Identifier</th> 
                           <td class="content-container">67e5bc4d88f4d211353e632e</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Steward (Publisher)</th> 
                           <td class="content-container">ICF</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Description</th> 
                           <td class="content-container">This is the QI-Core 6.0.0 version of the Supplemental Data Elements library containing the CMS SDE definitions for Payer, Race, Ethnicity and Sex</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Type</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/library-type#logic-library]</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Patient 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient 
                              <br></br>   
                              <em>Must Support Elements</em>: extension, url 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Coverage 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage 
                              <br></br>   
                              <em>Must Support Elements</em>: type, period 
                              <br></br>  
                              <em>Code Filter(s)</em>: 
                              <br></br>  
                              <span class="tab-one">
                                 <em>Path</em>: type
                              </span> 
                              <br></br>  
                              <span class="tab-one">
                                 <em>ValueSet</em>:
                              </span> http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591 
                              <br></br>   
                           </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> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
@update: GCW 2025-03-27 -&gt;
Updated to reflect valueset name change from CMS Sex to Federal Administrative Sex
*/
library SupplementalDataElements version '5.1.000'

using QICore version '6.0.0'

include FHIRHelpers version '4.4.000' called FHIRHelpers

codesystem "SNOMEDCT": 'http://snomed.info/sct'

valueset "Ethnicity": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.837'
valueset "Federal Administrative Sex": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1021.121'
valueset "Payer Type": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591'
valueset "Race": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.836'

code "Male (finding)": '248153007' from "SNOMEDCT" display 'Male (finding)'
code "Female (finding)": '248152002' from "SNOMEDCT" display 'Female (finding)'

context Patient

define "SDE Ethnicity":
  Patient.ethnicity E
    return Tuple {
      codes: { E.ombCategory } union E.detailed,
      display: E.text
    }

define "SDE Payer":
  [Coverage: type in "Payer Type"] Payer
    return {
      code: Payer.type,
      period: Payer.period
    }

define "SDE Race":
  Patient.race R
    return Tuple {
      codes: R.ombCategory union R.detailed,
      display: R.text
    }

define "SDE Sex":
  case
    when Patient.sex = '248153007' then "Male (finding)"
    when Patient.sex = '248152002' then "Female (finding)"
    else null
  end</code></pre> 
                           </td> 
                        </tr>   
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Generated using version 0.4.8 of the sample-content-ig Liquid templates</th> 
                        </tr> 
                     </tbody> 
                  </table> 
               </div>
            </text>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://snomed.info/sct"></system>
                  <code value="248153007"></code>
                  <display value="Male (finding)"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://snomed.info/sct"></system>
                  <code value="248152002"></code>
                  <display value="Female (finding)"></display>
               </valueCoding>
            </extension>
            <url value="https://madie.cms.gov/Library/SupplementalDataElements"></url>
            <identifier>
               <use value="official"></use>
               <system value="https://madie.cms.gov/login"></system>
               <value value="67e5bc4d88f4d211353e632e"></value>
            </identifier>
            <version value="5.1.000"></version>
            <name value="SupplementalDataElements"></name>
            <title value="SupplementalDataElements"></title>
            <status value="active"></status>
            <experimental value="false"></experimental>
            <type>
               <coding>
                  <system value="http://terminology.hl7.org/CodeSystem/library-type"></system>
                  <code value="logic-library"></code>
               </coding>
            </type>
            <date value="2025-08-22T18:20:12+00:00"></date>
            <publisher value="ICF"></publisher>
            <description value="This is the QI-Core 6.0.0 version of the Supplemental Data Elements library containing the CMS SDE definitions for Payer, Race, Ethnicity and Sex"></description>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="QICore model information"></display>
               <resource value="http://hl7.org/fhir/Library/QICore-ModelInfo"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Library FHIRHelpers"></display>
               <resource value="https://madie.cms.gov/Library/FHIRHelpers|4.4.000"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system SNOMEDCT"></display>
               <resource value="http://snomed.info/sct"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Value set Payer Type"></display>
               <resource value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"></resource>
            </relatedArtifact>
            <dataRequirement>
               <type value="Patient"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient"></profile>
               <mustSupport value="extension"></mustSupport>
               <mustSupport value="url"></mustSupport>
            </dataRequirement>
            <dataRequirement>
               <type value="Coverage"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage"></profile>
               <mustSupport value="type"></mustSupport>
               <mustSupport value="period"></mustSupport>
               <codeFilter>
                  <path value="type"></path>
                  <valueSet value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591"></valueSet>
               </codeFilter>
            </dataRequirement>
            <content>
               <contentType value="text/cql"></contentType>
               <data value="LyoNCkB1cGRhdGU6IEdDVyAyMDI1LTAzLTI3IC0+DQpVcGRhdGVkIHRvIHJlZmxlY3QgdmFsdWVzZXQgbmFtZSBjaGFuZ2UgZnJvbSBDTVMgU2V4IHRvIEZlZGVyYWwgQWRtaW5pc3RyYXRpdmUgU2V4DQoqLw0KbGlicmFyeSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNS4xLjAwMCcNCg0KdXNpbmcgUUlDb3JlIHZlcnNpb24gJzYuMC4wJw0KDQppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuNC4wMDAnIGNhbGxlZCBGSElSSGVscGVycw0KDQpjb2Rlc3lzdGVtICJTTk9NRURDVCI6ICdodHRwOi8vc25vbWVkLmluZm8vc2N0Jw0KDQp2YWx1ZXNldCAiRXRobmljaXR5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi40LjExLjgzNycNCnZhbHVlc2V0ICJGZWRlcmFsIEFkbWluaXN0cmF0aXZlIFNleCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwMjEuMTIxJw0KdmFsdWVzZXQgIlBheWVyIFR5cGUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTE0MjIyLjQuMTEuMzU5MScNCnZhbHVlc2V0ICJSYWNlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi40LjExLjgzNicNCg0KY29kZSAiTWFsZSAoZmluZGluZykiOiAnMjQ4MTUzMDA3JyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnTWFsZSAoZmluZGluZyknDQpjb2RlICJGZW1hbGUgKGZpbmRpbmcpIjogJzI0ODE1MjAwMicgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0ZlbWFsZSAoZmluZGluZyknDQoNCmNvbnRleHQgUGF0aWVudA0KDQpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOg0KICBQYXRpZW50LmV0aG5pY2l0eSBFDQogICAgcmV0dXJuIFR1cGxlIHsNCiAgICAgIGNvZGVzOiB7IEUub21iQ2F0ZWdvcnkgfSB1bmlvbiBFLmRldGFpbGVkLA0KICAgICAgZGlzcGxheTogRS50ZXh0DQogICAgfQ0KDQpkZWZpbmUgIlNERSBQYXllciI6DQogIFtDb3ZlcmFnZTogdHlwZSBpbiAiUGF5ZXIgVHlwZSJdIFBheWVyDQogICAgcmV0dXJuIHsNCiAgICAgIGNvZGU6IFBheWVyLnR5cGUsDQogICAgICBwZXJpb2Q6IFBheWVyLnBlcmlvZA0KICAgIH0NCg0KZGVmaW5lICJTREUgUmFjZSI6DQogIFBhdGllbnQucmFjZSBSDQogICAgcmV0dXJuIFR1cGxlIHsNCiAgICAgIGNvZGVzOiBSLm9tYkNhdGVnb3J5IHVuaW9uIFIuZGV0YWlsZWQsDQogICAgICBkaXNwbGF5OiBSLnRleHQNCiAgICB9DQoNCmRlZmluZSAiU0RFIFNleCI6DQogIGNhc2UNCiAgICB3aGVuIFBhdGllbnQuc2V4ID0gJzI0ODE1MzAwNycgdGhlbiAiTWFsZSAoZmluZGluZykiDQogICAgd2hlbiBQYXRpZW50LnNleCA9ICcyNDgxNTIwMDInIHRoZW4gIkZlbWFsZSAoZmluZGluZykiDQogICAgZWxzZSBudWxsDQogIGVuZA=="></data>
            </content>
            <content>
               <contentType value="application/elm+xml"></contentType>
               <data value="[encoded data, 61716 characters]"></data>
            </content>
            <content>
               <contentType value="application/elm+json"></contentType>
               <data value="[encoded data, 121536 characters]"></data>
            </content>
         </Library>
      </resource>
      <request>
         <method value="POST"></method>
         <url value="Library/SupplementalDataElements"></url>
      </request>
   </entry>
   <entry>
      <fullUrl value="https://madie.cms.gov/Library/QICoreCommon"></fullUrl>
      <resource>
         <Library xmlns="http://hl7.org/fhir">
            <id value="QICoreCommon"></id>
            <meta>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"></profile>
            </meta>
            <language value="en"></language>
            <text>
               <status value="extensions"></status>
               <div xmlns="http://www.w3.org/1999/xhtml" class="col-12"> 
                  <table class="narrative-table"> 
                     <tbody> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Metadata</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Title</th> 
                           <td class="content-container">QICoreCommon</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Version</th> 
                           <td class="content-container">4.0.000</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Identifier</th> 
                           <td class="content-container">67cb33c19e9ab93ec36dad45</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Steward (Publisher)</th> 
                           <td class="content-container">ICF</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Description</th> 
                           <td class="content-container">Common terminologies and functions used in QI-Core-based CQL artifacts</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Type</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/library-type#logic-library]</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Resource 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/StructureDefinition/Resource 
                              <br></br>   
                              <em>Must Support Elements</em>: id, id.value 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: Patient 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient 
                              <br></br>   
                              <em>Must Support Elements</em>: birthDate, birthDate.value 
                              <br></br>  
                           </td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Data Requirement</th> 
                           <td class="content-container"> 
                              <em>Type</em>: DeviceRequest 
                              <br></br> 
                              <em>Profile(s)</em>:  http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest 
                              <br></br>   
                              <em>Must Support Elements</em>: modifierExtension 
                              <br></br>  
                           </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> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">library QICoreCommon version '4.0.000'

using QICore version '6.0.0'

include FHIRHelpers version '4.4.000' called FHIRHelpers

codesystem "LOINC": 'http://loinc.org'
codesystem "SNOMEDCT": 'http://snomed.info/sct'
codesystem "ActCode": 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
codesystem "RoleCode": 'http://terminology.hl7.org/CodeSystem/v3-RoleCode'
codesystem "Diagnosis Role": 'http://terminology.hl7.org/CodeSystem/diagnosis-role'
codesystem "RequestIntent": 'http://hl7.org/fhir/request-intent'
codesystem "MedicationRequestCategory": 'http://terminology.hl7.org/CodeSystem/medicationrequest-category'
codesystem "ConditionClinicalStatusCodes": 'http://terminology.hl7.org/CodeSystem/condition-clinical'
codesystem "ConditionVerificationStatusCodes": 'http://terminology.hl7.org/CodeSystem/condition-ver-status'
codesystem "AllergyIntoleranceClinicalStatusCodes": 'http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical'
codesystem "AllergyIntoleranceVerificationStatusCodes": 'http://terminology.hl7.org/CodeSystem/allergyintolerance-verification'
codesystem "ObservationCategoryCodes": 'http://terminology.hl7.org/CodeSystem/observation-category'
codesystem "USCoreObservationCategoryExtensionCodes": 'http://hl7.org/fhir/us/core/CodeSystem/us-core-observation-category'  
codesystem "ConditionCategory": 'http://terminology.hl7.org/CodeSystem/condition-category'
codesystem "USCoreConditionCategoryExtensionCodes": 'http://hl7.org/fhir/us/core/CodeSystem/condition-category'
codesystem "TaskCodeSystem": 'http://hl7.org/fhir/CodeSystem/task-code' 



code "Birthdate": '21112-8' from "LOINC" display 'Birth date'
code "Dead": '419099009' from "SNOMEDCT" display 'Dead'
code "ER": 'ER' from "RoleCode" display 'Emergency room'
code "ICU": 'ICU' from "RoleCode" display 'Intensive care unit'
code "Billing": 'billing' from "Diagnosis Role" display 'Billing'

//Task codes
code "Fulfill": 'fulfill' from "TaskCodeSystem" display 'Fulfill'

// Encounter Class Codes
code "ambulatory": 'AMB' from ActCode display 'ambulatory'
code "emergency": 'EMER' from ActCode display 'emergency'
code "field": 'FLD' from ActCode display 'field'
code "home health": 'HH' from ActCode display 'home health'
code "inpatient encounter": 'IMP' from ActCode display 'inpatient encounter'
code "inpatient acute": 'ACUTE' from ActCode display 'inpatient acute'
code "inpatient non-acute": 'NONAC' from ActCode display 'inpatient non-acute'
code "observation encounter": 'OBSENC' from ActCode display 'observation encounter'
code "pre-admission": 'PRENC' from ActCode display 'pre-admission'
code "short stay": 'SS' from ActCode display 'short stay'
code "virtual": 'VR' from ActCode display 'Virtual'

// Condition Category Codes
code "problem-list-item": 'problem-list-item' from "ConditionCategory" display 'Problem List Item'
code "encounter-diagnosis": 'encounter-diagnosis' from "ConditionCategory" display 'Encounter Diagnosis'
code "health-concern": 'health-concern' from "USCoreConditionCategoryExtensionCodes" display 'Health Concern'

// Condition Clinical Status Codes - Consider value sets for these
code "active": 'active' from "ConditionClinicalStatusCodes" display 'Active'
code "recurrence": 'recurrence' from "ConditionClinicalStatusCodes" display 'Recurrence'
code "relapse": 'relapse' from "ConditionClinicalStatusCodes" display 'Relapse'
code "inactive": 'inactive' from "ConditionClinicalStatusCodes" display 'Inactive'
code "remission": 'remission' from "ConditionClinicalStatusCodes" display 'Remission'
code "resolved": 'resolved' from "ConditionClinicalStatusCodes" display 'Resolved'

// Condition Verification Status Codes - Consider value sets for these
code "unconfirmed": 'unconfirmed' from ConditionVerificationStatusCodes display 'Unconfirmed'
code "provisional": 'provisional' from ConditionVerificationStatusCodes display 'Provisional'
code "differential": 'differential' from ConditionVerificationStatusCodes display 'Differential'
code "confirmed": 'confirmed' from ConditionVerificationStatusCodes display 'Confirmed'
code "refuted": 'refuted' from ConditionVerificationStatusCodes display 'Refuted'
code "entered-in-error": 'entered-in-error' from ConditionVerificationStatusCodes display 'Entered in Error'

code "allergy-active": 'active' from "AllergyIntoleranceClinicalStatusCodes" display 'Active'
code "allergy-inactive": 'inactive' from "AllergyIntoleranceClinicalStatusCodes" display 'Inactive'
code "allergy-resolved": 'resolved' from "AllergyIntoleranceClinicalStatusCodes" display 'Resolved'

// Allergy/Intolerance Verification Status Codes - Consider value sets for these
code "allergy-unconfirmed": 'unconfirmed' from AllergyIntoleranceVerificationStatusCodes display 'Unconfirmed'
code "allergy-confirmed": 'confirmed' from AllergyIntoleranceVerificationStatusCodes display 'Confirmed'
code "allergy-refuted": 'refuted' from AllergyIntoleranceVerificationStatusCodes display 'Refuted'

// MedicationRequest Category Codes
code "Inpatient": 'inpatient' from "MedicationRequestCategory" display 'Inpatient'
code "Outpatient": 'outpatient' from "MedicationRequestCategory" display 'Outpatient'
code "Community": 'community' from "MedicationRequestCategory" display 'Community'
code "Discharge": 'discharge' from "MedicationRequestCategory" display 'Discharge'

// Diagnosis Role Codes
code "AD": 'AD' from "Diagnosis Role" display 'Admission diagnosis'
code "DD": 'DD' from "Diagnosis Role" display 'Discharge diagnosis'
code "CC": 'CC' from "Diagnosis Role" display 'Chief complaint'
code "CM": 'CM' from "Diagnosis Role" display 'Comorbidity diagnosis'
code "pre-op": 'pre-op' from "Diagnosis Role" display 'pre-op diagnosis'
code "post-op": 'post-op' from "Diagnosis Role" display 'post-op diagnosis'
code "billing": 'billing' from "Diagnosis Role" display 'Billing'

// Observation Category Codes
code "social-history": 'social-history' from "ObservationCategoryCodes" display 'Social History'
code "vital-signs": 'vital-signs' from "ObservationCategoryCodes" display 'Vital Signs'
code "imaging": 'imaging' from "ObservationCategoryCodes" display 'Imaging'
code "laboratory": 'laboratory' from "ObservationCategoryCodes" display 'Laboratory'
code "procedure": 'procedure' from "ObservationCategoryCodes" display 'Procedure'
code "survey": 'survey' from "ObservationCategoryCodes" display 'Survey'
code "exam": 'exam' from "ObservationCategoryCodes" display 'Exam'
code "therapy": 'therapy' from "ObservationCategoryCodes" display 'Therapy'
code "activity": 'activity' from "ObservationCategoryCodes" display 'Activity'

context Patient

/* Candidates for FHIRCommon */

/*
@description: Returns true if the given condition has a clinical status of active, recurrence, or relapse
*/
define fluent function isActive(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
  condition.clinicalStatus ~ "active"
    or condition.clinicalStatus ~ "recurrence"
    or condition.clinicalStatus ~ "relapse"

/*
@description: Returns true if the given condition has the given category
*/
define fluent function hasCategory(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;, category Code):
  exists (condition.category C
    where C ~ category
  )

/*
@description: Returns true if the given condition is a problem list item.
*/
define fluent function isProblemListItem(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
  exists (condition.category C
    where C ~ "problem-list-item"
  )

/*
@description: Returns true if the given condition is an encounter diagnosis
*/
define fluent function isEncounterDiagnosis(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
  exists (condition.category C
    where C ~ "encounter-diagnosis"
  )

/*
@description: Returns true if the given condition is a health concern
*/
define fluent function isHealthConcern(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
  exists (condition.category C
    where C ~ "health-concern"
  )

/*
@description: Returns true if the given observation has the given category
*/
define fluent function hasCategory(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;, 
category Code):
  exists (observation.category C
    where C ~ category
  )

/*
@description: Returns true if the given observation is a social history observation
*/
define fluent function isSocialHistory(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "social-history"
  )

/*
@description: Returns true if the given observation is a vital sign
*/
define fluent function isVitalSign(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "vital-signs"
  )

/*
@description: Returns true if the given observation is an imaging observation
*/
define fluent function isImaging(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "imaging"
  )

/*
@description: Returns true if the given observation is a laboratory observation
*/
define fluent function isLaboratory(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "laboratory"
  )

/*
@description: Returns true if the given observation is a procedure observation
*/
define fluent function isProcedure(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "procedure"
  )

/*
@description: Returns true if the given observation is a survey observation
*/
define fluent function isSurvey(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "survey"
  )

/*
@description: Returns true if the given observation is an exam observation
*/
define fluent function isExam(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "exam"
  )

/*
@description: Returns true if the given observation is a therapy observation
*/
define fluent function isTherapy(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "therapy"
  )

/*
@description: Returns true if the given observation is an activity observation
*/
define fluent function isActivity(observation Choice&lt;"SimpleObservation", 
"ObservationCancelled",
"NonPatientObservation",
"LaboratoryResultObservation",
"ObservationClinicalResult",
"ObservationScreeningAssessment"&gt;):
  exists (observation.category C
    where C ~ "activity"
  )

/*
@description: Returns true if the given MedicationRequest has a category of Community
*/
define fluent function isCommunity(medicationRequest Choice&lt;MedicationRequest, MedicationNotRequested&gt;):
  exists (medicationRequest.category C
    where C ~ Community
  )

/*
@description: Returns true if the given MedicationRequest has a category of Discharge
*/
define fluent function isDischarge(medicationRequest Choice&lt;MedicationRequest, MedicationNotRequested&gt;):
  exists (medicationRequest.category C
    where C ~ Discharge
  )

/*
@description: Returns true if the given DeviceRequest is a negation (i.e. do not perform this order)
@deprecated: This function is no longer required in QICore 6.0.0 and above
*/
define fluent function doNotPerform(deviceRequest DeviceRequest):
  // KNOWN ISSUE: The translator reports this as an error but the execution still works, this is under investigation
  deviceRequest.doNotPerform

/*
@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
@comment: Normalizes a choice type of DateTime, Quanitty, Interval&lt;DateTime&gt;, or Interval&lt;Quantity&gt; types
to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
representations for timing-valued elements in QICore, allowing this function to be used across any resource.
The input can be provided as a DateTime, Quantity, Interval&lt;DateTime&gt; or Interval&lt;Quantity&gt;.
The intent of this function is to provide a clear and concise mechanism to treat single
elements that have multiple possible representations as intervals so that logic doesn't have to account
for the variability. More complex calculations (such as medication request period or dispense period
calculation) need specific guidance and consideration. That guidance may make use of this function, but
the focus of this function is on single element calculations where the semantics are unambiguous.
If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
If the input is a DateTime Interval, the result is the input.
If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
If the input is a Timing, an error will be thrown indicating that Timing calculations are not implemented. Any other input will reslt in a null DateTime Interval
@deprecated: This function is deprecated. Use the fluent function `toInterval()` instead
*/
define function ToInterval(choice Choice&lt;DateTime, Quantity, Interval&lt;DateTime&gt;, Interval&lt;Quantity&gt;, Timing&gt;):
  case
	  when choice is DateTime then
    	Interval[choice as DateTime, choice as DateTime]
		when choice is Interval&lt;DateTime&gt; then
  		choice as Interval&lt;DateTime&gt;
		when choice is Quantity then
		  Interval[Patient.birthDate + (choice as Quantity),
			  Patient.birthDate + (choice as Quantity) + 1 year)
		when choice is Interval&lt;Quantity&gt; then
		  Interval[Patient.birthDate + (choice.low as Quantity),
			  Patient.birthDate + (choice.high as Quantity) + 1 year)
		when choice is Timing then
      Message(null, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported') as Interval&lt;DateTime&gt;
		else
			null as Interval&lt;DateTime&gt;
	end

/*
@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
@comment: Normalizes a choice type of DateTime, Quanitty, Interval&lt;DateTime&gt;, or Interval&lt;Quantity&gt; types
to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
representations for timing-valued elements in QICore, allowing this function to be used across any resource.
The input can be provided as a DateTime, Quantity, Interval&lt;DateTime&gt; or Interval&lt;Quantity&gt;.
The intent of this function is to provide a clear and concise mechanism to treat single
elements that have multiple possible representations as intervals so that logic doesn't have to account
for the variability. More complex calculations (such as medication request period or dispense period
calculation) need specific guidance and consideration. That guidance may make use of this function, but
the focus of this function is on single element calculations where the semantics are unambiguous.
If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
If the input is a DateTime Interval, the result is the input.
If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
If the input is a Timing, an error will be thrown indicating that Timing calculations are not implemented. Any other input will reslt in a null DateTime Interval
*/
define fluent function toInterval(choice Choice&lt;DateTime, Quantity, Interval&lt;DateTime&gt;, Interval&lt;Quantity&gt;, Timing&gt;):
  case
	  when choice is DateTime then
    	Interval[choice as DateTime, choice as DateTime]
		when choice is Interval&lt;DateTime&gt; then
  		choice as Interval&lt;DateTime&gt;
		when choice is Quantity then
		  Interval[Patient.birthDate + (choice as Quantity),
			  Patient.birthDate + (choice as Quantity) + 1 year)
		when choice is Interval&lt;Quantity&gt; then
		  Interval[Patient.birthDate + (choice.low as Quantity),
			  Patient.birthDate + (choice.high as Quantity) + 1 year)
		when choice is Timing then
      Message(null, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported') as Interval&lt;DateTime&gt;
		else
			null as Interval&lt;DateTime&gt;
	end

/*
@description: Returns an interval representing the normalized abatement of a given Condition.
@comment: If the abatement element of the Condition is represented as a DateTime, the result
is an interval beginning and ending on that DateTime.
If the abatement is represented as a Quantity, the quantity is expected to be a calendar-duration and is interpreted as the age of the patient. The
result is an interval from the date the patient turned that age to immediately before one year later.
If the abatement is represented as a Quantity Interval, the quantities are expected to be calendar-durations and are interpreted as an age range during
which the abatement occurred. The result is an interval from the date the patient turned the starting age of the quantity interval, and ending immediately
before one year later than the date the patient turned the ending age of the quantity interval.
@deprecated: This function is deprecated. Use the fluent function `abatementInterval()` instead.
*/
define function ToAbatementInterval(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
	if condition.abatement is DateTime then
	  Interval[condition.abatement as DateTime, condition.abatement as DateTime]
	else if condition.abatement is Quantity then
		Interval[Patient.birthDate + (condition.abatement as Quantity),
			Patient.birthDate + (condition.abatement as Quantity) + 1 year)
	else if condition.abatement is Interval&lt;Quantity&gt; then
	  Interval[Patient.birthDate + (condition.abatement.low as Quantity),
		  Patient.birthDate + (condition.abatement.high as Quantity) + 1 year)
	else if condition.abatement is Interval&lt;DateTime&gt; then
	  Interval[condition.abatement.low, condition.abatement.high)
	else null as Interval&lt;DateTime&gt;

/*
@description: Returns an interval representing the normalized abatement of a given Condition.
@comment: If the abatement element of the Condition is represented as a DateTime, the result
is an interval beginning and ending on that DateTime.
If the abatement is represented as a Quantity, the quantity is expected to be a calendar-duration and is interpreted as the age of the patient. The
result is an interval from the date the patient turned that age to immediately before one year later.
If the abatement is represented as a Quantity Interval, the quantities are expected to be calendar-durations and are interpreted as an age range during
which the abatement occurred. The result is an interval from the date the patient turned the starting age of the quantity interval, and ending immediately
before one year later than the date the patient turned the ending age of the quantity interval.
*/
define fluent function abatementInterval(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
	if condition.abatement is DateTime then
	  Interval[condition.abatement as DateTime, condition.abatement as DateTime]
	else if condition.abatement is Quantity then
		Interval[Patient.birthDate + (condition.abatement as Quantity),
			Patient.birthDate + (condition.abatement as Quantity) + 1 year)
	else if condition.abatement is Interval&lt;Quantity&gt; then
	  Interval[Patient.birthDate + (condition.abatement.low as Quantity),
		  Patient.birthDate + (condition.abatement.high as Quantity) + 1 year)
	else if condition.abatement is Interval&lt;DateTime&gt; then
	  Interval[condition.abatement.low, condition.abatement.high)
	else null as Interval&lt;DateTime&gt;

/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
@comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from
onset to abatement as specified in the given Condition. If the condition is active, or has an abatement date the resulting 
interval will have a closed ending boundary. Otherwise, the resulting interval will have an open ending boundary.
@deprecated: This function is deprecated. Use the `prevalenceInterval()` fluent function instead
*/
define function ToPrevalenceInterval(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
if condition.clinicalStatus ~ "active"
  or condition.clinicalStatus ~ "recurrence"
  or condition.clinicalStatus ~ "relapse" then
  Interval[start of ToInterval(condition.onset), end of ToAbatementInterval(condition)]
else
   (end of ToAbatementInterval(condition)) abatementDate
    return if abatementDate is null then
      Interval[start of ToInterval(condition.onset), abatementDate)
    else
      Interval[start of ToInterval(condition.onset), abatementDate]

/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
@comment: Uses the ToInterval and ToAbatementInterval functions to determine the widest potential interval from
onset to abatement as specified in the given Condition. If the condition is active, or has an abatement date the resulting 
interval will have a closed ending boundary. Otherwise, the resulting interval will have an open ending boundary.
*/
define fluent function prevalenceInterval(condition Choice&lt;"ConditionEncounterDiagnosis", "ConditionProblemsHealthConcerns"&gt;):
if condition.clinicalStatus ~ "active"
  or condition.clinicalStatus ~ "recurrence"
  or condition.clinicalStatus ~ "relapse" then
  Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()]
else
    (end of condition.abatementInterval()) abatementDate
    return if abatementDate is null then
      Interval[start of condition.onset.toInterval(), abatementDate)
    else
      Interval[start of condition.onset.toInterval(), abatementDate]

/*
@description: Returns the tail of the given uri (i.e. everything after the last slash in the URI).
@comment: This function can be used to determine the logical id of a given resource. It can be used in
a single-server environment to trace references. However, this function does not attempt to resolve
or distinguish the base of the given url, and so cannot be used safely in multi-server environments.
@deprecated: This function is deprecated. Use the fluent function `getId()` instead
*/
define function GetId(uri String):
  Last(Split(uri, '/'))

/*
@description: Returns the tail of the given uri (i.e. everything after the last slash in the URI).
@comment: This function can be used to determine the logical id of a given resource. It can be used in
a single-server environment to trace references. However, this function does not attempt to resolve
or distinguish the base of the given url, and so cannot be used safely in multi-server environments.
*/
define fluent function getId(uri String):
  Last(Split(uri, '/'))

/*
@description: Returns true if the given reference is to the given resource
@comment: Returns true if the `id` element of the given resource exactly equals the tail of the given reference.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(reference Reference, resource Resource):
  resource.id = Last(Split(reference.reference, '/'))  

/*
@description: Returns true if the given reference is to the given resourceId
@comment: Returns true if the `resourceId` parameter exactly equals the tail of the given reference.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(reference Reference, resourceId String):
  resourceId = Last(Split(reference.reference, '/'))

/*
@description: Returns true if any of the given references are to the given resource
@comment: Returns true if the `id` element of the given resource exactly equals the tail of any of the given references.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(references List&lt;Reference&gt;, resource Resource):
  exists (references R where R.references(resource))
  
/*
@description: Returns true if any of the given references are to the given resourceId
@comment: Returns true if the `resourceId` parameter exactly equals the tail of any of the given references.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(references List&lt;Reference&gt;, resourceId String):
  exists (references R where R.references(resourceId))

/*
@description: Returns true if the given code is in the given codeList
@comment: Returns true if the `code` is equivalent to any of the codes in the given `codeList`, false otherwise.
*/
define fluent function includesCode(codeList List&lt;Concept&gt;, code Code):
  exists (codeList C where C ~ code)

/*
@description: Given an interval, return true if the interval has a starting boundary specified
(i.e. the start of the interval is not null and not the minimum DateTime value)
@deprecated: This function is deprecated. Uee the fluent function `hasStart()` instead
*/
define function "HasStart"(period Interval&lt;DateTime&gt; ):
  not ( start of period is null
      or start of period = minimum DateTime
  )

/*
@description: Given an interval, return true if the interval has a starting boundary specified
(i.e. the start of the interval is not null and not the minimum DateTime value)
*/
define fluent function hasStart(period Interval&lt;DateTime&gt; ):
  not ( start of period is null
      or start of period = minimum DateTime
  )

/*
@description: Given an interval, returns true if the interval has an ending boundary specified
(i.e. the end of the interval is not null and not the maximum DateTime value)
@deprecated: This function is deprecated. Use the fluent function `hasEnd()` instead
*/
define function "HasEnd"(period Interval&lt;DateTime&gt; ):
  not (
    end of period is null
      or end of period = maximum DateTime
  )

/*
@description: Given an interval, returns true if the interval has an ending boundary specified
(i.e. the end of the interval is not null and not the maximum DateTime value)
*/
define fluent function hasEnd(period Interval&lt;DateTime&gt; ):
  not (
    end of period is null
      or end of period = maximum DateTime
  )

/*
@description: Given an interval, returns the ending point if the interval has an ending boundary specified,
otherwise, returns the starting point
@deprecated: This function is deprecated. Use the fluent function `latest()` instead
*/
define function "Latest"(choice Choice&lt;DateTime, Quantity, Interval&lt;DateTime&gt;, Interval&lt;Quantity&gt;&gt; ):
  (choice.toInterval()) period
    return
      if (HasEnd(period)) then end of period
      else start of period

/*
@description: Given an interval, returns the ending point if the interval has an ending boundary specified,
otherwise, returns the starting point
*/
define fluent function latest(choice Choice&lt;DateTime, Quantity, Interval&lt;DateTime&gt;, Interval&lt;Quantity&gt;&gt; ):
  (choice.toInterval()) period
    return
      if (period."hasEnd"()) then end of period
      else start of period

/*
@description: Given an interval, return the starting point if the interval has a starting boundary specified,
otherwise, return the ending point
@deprecated: This function is deprecated. Use the fluent function `earliest()` instead
*/
define function "Earliest"(choice Choice&lt;DateTime, Quantity, Interval&lt;DateTime&gt;, Interval&lt;Quantity&gt;&gt; ):
  (choice.toInterval()) period
    return
      if (HasStart(period)) then start of period
      else end of period

/*
@description: Given an interval, return the starting point if the interval has a starting boundary specified,
otherwise, return the ending point
*/
define fluent function earliest(choice Choice&lt;DateTime, Quantity, Interval&lt;DateTime&gt;, Interval&lt;Quantity&gt;&gt; ):
  (choice.toInterval()) period
    return
      if (period."hasStart"()) then start of period
      else end of period

/*
@description: Creates a list of integers from 1 to how many days are in the interval. Note, this wont create an index for
the final day if it is less than 24 hours. This also includes the first 24 hour period.
@deprecated: This function is deprecated. Use the fluent function `toDayNumbers()` instead
*/
define function "Interval To Day Numbers"(Period Interval&lt;DateTime&gt;):
  ( expand { Interval[1, duration in days between start of Period and end of Period]} ) DayNumber
    return end of DayNumber

/*
@description: Creates a list of integers from 1 to how many days are in the interval. Note, this wont create an index for
the final day if it is less than 24 hours. This also includes the first 24 hour period.
*/
define fluent function toDayNumbers(Period Interval&lt;DateTime&gt;):
  ( expand { Interval[1, duration in days between start of Period and end of Period]} ) DayNumber
    return end of DayNumber

/*
@description: Creates a list of 24 hour long intervals in an interval paired with the index (1 indexed) to which 24 hour interval it is.
Note that the result will include intervals that are closed at the beginning and open at the end
@deprecated: This function is deprecated. Use the fluent function `daysInPeriod()` instead
*/
define function "Days In Period"(Period Interval&lt;DateTime&gt;):
  ( "Interval To Day Numbers"(Period)) DayIndex
    let startPeriod: start of Period + (24 hours * (DayIndex - 1)),
    endPeriod: if (hours between startPeriod and end of Period &lt; 24) then startPeriod
      else start of Period + (24 hours * DayIndex)
    return Tuple {
      dayIndex: DayIndex,
      dayPeriod: Interval[startPeriod, endPeriod)
    }

/*
@description: Creates a list of 24 hour long intervals in an interval paired with the index (1 indexed) to which 24 hour interval it is.
Note that the result will include intervals that are closed at the beginning and open at the end
*/
define fluent function daysInPeriod(Period Interval&lt;DateTime&gt;):
  ( "Interval To Day Numbers"(Period)) DayIndex
    let startPeriod: start of Period + (24 hours * (DayIndex - 1)),
    endPeriod: if (hours between startPeriod and end of Period &lt; 24) then startPeriod
      else start of Period + (24 hours * DayIndex)
    return Tuple {
      dayIndex: DayIndex,
      dayPeriod: Interval[startPeriod, endPeriod)
    }</code></pre> 
                           </td> 
                        </tr>   
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Generated using version 0.4.8 of the sample-content-ig Liquid templates</th> 
                        </tr> 
                     </tbody> 
                  </table> 
               </div>
            </text>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://loinc.org"></system>
                  <code value="21112-8"></code>
                  <display value="Birthdate"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://snomed.info/sct"></system>
                  <code value="419099009"></code>
                  <display value="Dead"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode"></system>
                  <code value="ER"></code>
                  <display value="ER"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-RoleCode"></system>
                  <code value="ICU"></code>
                  <display value="ICU"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="billing"></code>
                  <display value="Billing"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://hl7.org/fhir/CodeSystem/task-code"></system>
                  <code value="fulfill"></code>
                  <display value="Fulfill"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="AMB"></code>
                  <display value="ambulatory"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="EMER"></code>
                  <display value="emergency"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="FLD"></code>
                  <display value="field"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="HH"></code>
                  <display value="home health"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="IMP"></code>
                  <display value="inpatient encounter"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="ACUTE"></code>
                  <display value="inpatient acute"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="NONAC"></code>
                  <display value="inpatient non-acute"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="OBSENC"></code>
                  <display value="observation encounter"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="PRENC"></code>
                  <display value="pre-admission"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="SS"></code>
                  <display value="short stay"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"></system>
                  <code value="VR"></code>
                  <display value="virtual"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-category"></system>
                  <code value="problem-list-item"></code>
                  <display value="problem-list-item"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-category"></system>
                  <code value="encounter-diagnosis"></code>
                  <display value="encounter-diagnosis"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://hl7.org/fhir/us/core/CodeSystem/condition-category"></system>
                  <code value="health-concern"></code>
                  <display value="health-concern"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"></system>
                  <code value="active"></code>
                  <display value="active"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"></system>
                  <code value="recurrence"></code>
                  <display value="recurrence"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"></system>
                  <code value="relapse"></code>
                  <display value="relapse"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"></system>
                  <code value="inactive"></code>
                  <display value="inactive"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"></system>
                  <code value="remission"></code>
                  <display value="remission"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"></system>
                  <code value="resolved"></code>
                  <display value="resolved"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"></system>
                  <code value="unconfirmed"></code>
                  <display value="unconfirmed"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"></system>
                  <code value="provisional"></code>
                  <display value="provisional"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"></system>
                  <code value="differential"></code>
                  <display value="differential"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"></system>
                  <code value="confirmed"></code>
                  <display value="confirmed"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"></system>
                  <code value="refuted"></code>
                  <display value="refuted"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"></system>
                  <code value="entered-in-error"></code>
                  <display value="entered-in-error"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical"></system>
                  <code value="active"></code>
                  <display value="allergy-active"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical"></system>
                  <code value="inactive"></code>
                  <display value="allergy-inactive"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical"></system>
                  <code value="resolved"></code>
                  <display value="allergy-resolved"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification"></system>
                  <code value="unconfirmed"></code>
                  <display value="allergy-unconfirmed"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification"></system>
                  <code value="confirmed"></code>
                  <display value="allergy-confirmed"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/allergyintolerance-verification"></system>
                  <code value="refuted"></code>
                  <display value="allergy-refuted"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category"></system>
                  <code value="inpatient"></code>
                  <display value="Inpatient"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category"></system>
                  <code value="outpatient"></code>
                  <display value="Outpatient"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category"></system>
                  <code value="community"></code>
                  <display value="Community"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/medicationrequest-category"></system>
                  <code value="discharge"></code>
                  <display value="Discharge"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="AD"></code>
                  <display value="AD"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="DD"></code>
                  <display value="DD"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="CC"></code>
                  <display value="CC"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="CM"></code>
                  <display value="CM"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="pre-op"></code>
                  <display value="pre-op"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="post-op"></code>
                  <display value="post-op"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/diagnosis-role"></system>
                  <code value="billing"></code>
                  <display value="billing"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="social-history"></code>
                  <display value="social-history"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="vital-signs"></code>
                  <display value="vital-signs"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="imaging"></code>
                  <display value="imaging"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="laboratory"></code>
                  <display value="laboratory"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="procedure"></code>
                  <display value="procedure"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="survey"></code>
                  <display value="survey"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="exam"></code>
                  <display value="exam"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="therapy"></code>
                  <display value="therapy"></display>
               </valueCoding>
            </extension>
            <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
               <valueCoding>
                  <system value="http://terminology.hl7.org/CodeSystem/observation-category"></system>
                  <code value="activity"></code>
                  <display value="activity"></display>
               </valueCoding>
            </extension>
            <url value="https://madie.cms.gov/Library/QICoreCommon"></url>
            <identifier>
               <use value="official"></use>
               <system value="https://madie.cms.gov/login"></system>
               <value value="67cb33c19e9ab93ec36dad45"></value>
            </identifier>
            <version value="4.0.000"></version>
            <name value="QICoreCommon"></name>
            <title value="QICoreCommon"></title>
            <status value="active"></status>
            <experimental value="false"></experimental>
            <type>
               <coding>
                  <system value="http://terminology.hl7.org/CodeSystem/library-type"></system>
                  <code value="logic-library"></code>
               </coding>
            </type>
            <date value="2025-08-22T18:20:12+00:00"></date>
            <publisher value="ICF"></publisher>
            <description value="Common terminologies and functions used in QI-Core-based CQL artifacts"></description>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="QICore model information"></display>
               <resource value="http://hl7.org/fhir/Library/QICore-ModelInfo"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Library FHIRHelpers"></display>
               <resource value="https://madie.cms.gov/Library/FHIRHelpers|4.4.000"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system USCoreConditionCategoryExtensionCodes"></display>
               <resource value="http://hl7.org/fhir/us/core/CodeSystem/condition-category"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system ObservationCategoryCodes"></display>
               <resource value="http://terminology.hl7.org/CodeSystem/observation-category"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system ConditionClinicalStatusCodes"></display>
               <resource value="http://terminology.hl7.org/CodeSystem/condition-clinical"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system MedicationRequestCategory"></display>
               <resource value="http://terminology.hl7.org/CodeSystem/medicationrequest-category"></resource>
            </relatedArtifact>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="Code system ConditionCategory"></display>
               <resource value="http://terminology.hl7.org/CodeSystem/condition-category"></resource>
            </relatedArtifact>
            <dataRequirement>
               <type value="Resource"></type>
               <profile value="http://hl7.org/fhir/StructureDefinition/Resource"></profile>
               <mustSupport value="id"></mustSupport>
               <mustSupport value="id.value"></mustSupport>
            </dataRequirement>
            <dataRequirement>
               <type value="Patient"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient"></profile>
               <mustSupport value="birthDate"></mustSupport>
               <mustSupport value="birthDate.value"></mustSupport>
            </dataRequirement>
            <dataRequirement>
               <type value="DeviceRequest"></type>
               <profile value="http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest"></profile>
               <mustSupport value="modifierExtension"></mustSupport>
            </dataRequirement>
            <content>
               <contentType value="text/cql"></contentType>
               <data value="[encoded data, 43100 characters]"></data>
            </content>
            <content>
               <contentType value="application/elm+xml"></contentType>
               <data value="[encoded data, 1733416 characters]"></data>
            </content>
            <content>
               <contentType value="application/elm+json"></contentType>
               <data value="[encoded data, 2930368 characters]"></data>
            </content>
         </Library>
      </resource>
      <request>
         <method value="POST"></method>
         <url value="Library/QICoreCommon"></url>
      </request>
   </entry>
   <entry>
      <fullUrl value="https://madie.cms.gov/Library/FHIRHelpers"></fullUrl>
      <resource>
         <Library xmlns="http://hl7.org/fhir">
            <id value="FHIRHelpers"></id>
            <meta>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"></profile>
               <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"></profile>
            </meta>
            <language value="en"></language>
            <text>
               <status value="extensions"></status>
               <div xmlns="http://www.w3.org/1999/xhtml" class="col-12"> 
                  <table class="narrative-table"> 
                     <tbody> 
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Metadata</th> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Title</th> 
                           <td class="content-container">FHIRHelpers</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Version</th> 
                           <td class="content-container">4.4.000</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Identifier</th> 
                           <td class="content-container">660d90bc01598d085de46056</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Steward (Publisher)</th> 
                           <td class="content-container">ICF</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Description</th> 
                           <td class="content-container">This library defines functions to convert between FHIR
 data types and CQL system-defined types, as well as functions to support FHIRPath implementation. For more information, the FHIRHelpers wiki page:
 https://github.com/cqframework/clinical_quality_language/wiki/FHIRHelpers</td> 
                        </tr> 
                        <tr> 
                           <th scope="row" class="row-header">Type</th> 
                           <td class="content-container">[http://terminology.hl7.org/CodeSystem/library-type#logic-library]</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> 
                              <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">library FHIRHelpers version '4.4.000'

using FHIR version '4.0.1'

/*
@description: Converts the given [Period](https://hl7.org/fhir/datatypes.html#Period)
value to a CQL DateTime Interval
@comment: If the start value of the given period is unspecified, the starting
boundary of the resulting interval will be open (meaning the start of the interval
is unknown, as opposed to interpreted as the beginning of time).
*/
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period."start" is null then
            Interval(period."start".value, period."end".value]
        else
            Interval[period."start".value, period."end".value]

/*
@description: Converts a UCUM definite duration unit to a CQL calendar duration
unit using conversions specified in the [quantities](https://cql.hl7.org/02-authorsguide.html#quantities) 
topic of the CQL specification.
@comment: Note that for durations above days (or weeks), the conversion is understood to be approximate
*/
define function ToCalendarUnit(unit System.String):
    case unit
        when 'ms' then 'millisecond'
        when 's' then 'second'
        when 'min' then 'minute'
        when 'h' then 'hour'
        when 'd' then 'day'
        when 'wk' then 'week'
        when 'mo' then 'month'
        when 'a' then 'year'
        else unit
    end

/*
@description: Converts the given FHIR [Quantity](https://hl7.org/fhir/datatypes.html#Quantity) 
value to a CQL Quantity
@comment: If the given quantity has a comparator specified, a runtime error is raised. If the given quantity
has a system other than UCUM (i.e. `http://unitsofmeasure.org`) or CQL calendar units (i.e. `http://hl7.org/fhirpath/CodeSystem/calendar-units`)
an error is raised. For UCUM to calendar units, the `ToCalendarUnit` function is used.
@seealso: ToCalendarUnit
*/
define function ToQuantity(quantity FHIR.Quantity):
    case
        when quantity is null then null
        when quantity.value is null then null
        when quantity.comparator is not null then
            Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')
        when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'
              or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then
            System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }
        else
            Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' &amp; quantity.unit.value &amp; ' (' &amp; quantity.system.value &amp; '|' &amp; quantity.code.value &amp; ')')
    end

/*
@description: Converts the given FHIR [Quantity](https://hl7.org/fhir/datatypes.html#Quantity) value to a CQL Quantity, ignoring
the comparator element. This function should only be used when an application is justified in ignoring the comparator value (i.e. the
context is looking for boundary).
@comment: If the given quantity has a system other than UCUM (i.e. `http://unitsofmeasure.org`) or CQL calendar units 
(i.e. `http://hl7.org/fhirpath/CodeSystem/calendar-units`) an error is raised. For UCUM to calendar units, the `ToCalendarUnit` function 
is used.
@seealso: ToCalendarUnit
*/
define function ToQuantityIgnoringComparator(quantity FHIR.Quantity):
    case
        when quantity is null then null
        when quantity.value is null then null
        when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'
              or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then
            System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }
        else
            Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' &amp; quantity.unit.value &amp; ' (' &amp; quantity.system.value &amp; '|' &amp; quantity.code.value &amp; ')')
    end

/*
@description: Converts the given FHIR [Quantity](https://hl7.org/fhir/datatypes.html#Quantity) value to a CQL Interval of Quantity.
@comment: If the given quantity has a comparator, it is used to construct an interval based on the value of the comparator. If the comparator
is less than, the resulting interval will start with a null closed boundary and end with an open boundary on the quantity. If the comparator
is less than or equal, the resulting interval will start with a null closed boundary and end with a closed boundary on the quantity. If the 
comparator is greater or equal, the resulting interval will start with a closed boundary on the quantity and end with a closed null boundary.
If the comparator is greatter than, the resulting interval will start with an open boundary on the quantity and end with a closed null boundary.
If no comparator is specified, the resulting interval will start and end with a closed boundary on the quantity.
*/
define function ToInterval(quantity FHIR.Quantity):
    if quantity is null then null else
        case quantity.comparator.value
            when '&lt;' then
                Interval[
                    null,
                    ToQuantityIgnoringComparator(quantity)
                )
            when '&lt;=' then
                Interval[
                    null,
                    ToQuantityIgnoringComparator(quantity)
                ]
            when '&gt;=' then
                Interval[
                    ToQuantityIgnoringComparator(quantity),
                    null
                ]
            when '&gt;' then
                Interval(
                    ToQuantityIgnoringComparator(quantity),
                    null
                ]
            else
                Interval[ToQuantity(quantity), ToQuantity(quantity)]
        end

/*
@description: Converts the given FHIR [Ratio](https://hl7.org/fhir/datatypes.html#Ratio) value to a CQL Ratio.
*/
define function ToRatio(ratio FHIR.Ratio):
    if ratio is null then
        null
    else
        System.Ratio { numerator: ToQuantity(ratio.numerator), denominator: ToQuantity(ratio.denominator) }

/*
@description: Converts the given FHIR [Range](https://hl7.org/fhir/datatypes.html#Range) value to a CQL Interval of Quantity
*/
define function ToInterval(range FHIR.Range):
    if range is null then
        null
    else
        Interval[ToQuantity(range.low), ToQuantity(range.high)]

/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }

/*
@description: Converts the given FHIR [CodeableConcept](https://hl7.org/fhir/datatypes.html#CodeableConcept) value to a CQL Concept.
*/
define function ToConcept(concept FHIR.CodeableConcept):
    if concept is null then
        null
    else
        System.Concept {
            codes: concept.coding C return ToCode(C),
            display: concept.text.value
        }

/*
@description: Converts the given value (assumed to be a URI) to a CQL [ValueSet](https://cql.hl7.org/09-b-cqlreference.html#valueset)
*/
define function ToValueSet(uri String):
    if uri is null then
        null
    else
        System.ValueSet {
            id: uri
        }

/*
@description: Constructs a FHIR [Reference](https://hl7.org/fhir/datatypes.html#Reference) from the given reference (assumed to be a FHIR resource URL)
*/
define function reference(reference String):
    if reference is null then
        null
    else
        Reference { reference: string { value: reference } }

/*
@description: Converts the given value to a CQL value using the appropriate accessor or conversion function.
@comment: TODO: document conversion
*/
define function ToValue(value Choice&lt;base64Binary,
        boolean,
        canonical,
        code,
        date,
        dateTime,
        decimal,
        id,
        instant,
        integer,
        markdown,
        oid,
        positiveInt,
        string,
        time,
        unsignedInt,
        uri,
        url,
        uuid,
        Address,
        Age,
        Annotation,
        Attachment,
        CodeableConcept,
        Coding,
        ContactPoint,
        Count,
        Distance,
        Duration,
        HumanName,
        Identifier,
        Money,
        Period,
        Quantity,
        Range,
        Ratio,
        Reference,
        SampledData,
        Signature,
        Timing,
        ContactDetail,
        Contributor,
        DataRequirement,
        Expression,
        ParameterDefinition,
        RelatedArtifact,
        TriggerDefinition,
        UsageContext,
        Dosage,
        Meta&gt;):
    case
      when value is base64Binary then (value as base64Binary).value
      when value is boolean then (value as boolean).value
      when value is canonical then (value as canonical).value
      when value is code then (value as code).value
      when value is date then (value as date).value
      when value is dateTime then (value as dateTime).value
      when value is decimal then (value as decimal).value
      when value is id then (value as id).value
      when value is instant then (value as instant).value
      when value is integer then (value as integer).value
      when value is markdown then (value as markdown).value
      when value is oid then (value as oid).value
      when value is positiveInt then (value as positiveInt).value
      when value is string then (value as string).value
      when value is time then (value as time).value
      when value is unsignedInt then (value as unsignedInt).value
      when value is uri then (value as uri).value
      when value is url then (value as url).value
      when value is uuid then (value as uuid).value
      when value is Age then ToQuantity(value as Age)
      when value is CodeableConcept then ToConcept(value as CodeableConcept)
      when value is Coding then ToCode(value as Coding)
      when value is Count then ToQuantity(value as Count)
      when value is Distance then ToQuantity(value as Distance)
      when value is Duration then ToQuantity(value as Duration)
      when value is Quantity then ToQuantity(value as Quantity)
      when value is Range then ToInterval(value as Range)
      when value is Period then ToInterval(value as Period)
      when value is Ratio then ToRatio(value as Ratio)
      else value as Choice&lt;Address,
        Annotation,
        Attachment,
        ContactPoint,
        HumanName,
        Identifier,
        Money,
        Reference,
        SampledData,
        Signature,
        Timing,
        ContactDetail,
        Contributor,
        DataRequirement,
        Expression,
        ParameterDefinition,
        RelatedArtifact,
        TriggerDefinition,
        UsageContext,
        Dosage,
        Meta&gt;
    end

/*
@description: Resolve the given reference as a url to a resource. If the item resolves, the Resource is returned, otherwise the result is null.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function resolve(reference String) returns Resource: external
/*
@description: Resolve the reference element of the given Reference. If the item resolves, the Resource is returned, otherwise the result is null.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function resolve(reference Reference) returns Resource: external
/*
@description: Constructs a Reference to the given Resource. The resulting reference will typically be relative, but implementations may provide a base URL if one can be unambiguously determined.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function reference(resource Resource) returns Reference: external
/*
@description: Returns any extensions with the given url defined on the given element.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function extension(element Element, url String) returns List&lt;Extension&gt;: external
/*
@description: Returns any extensions with the given url defined on the given resource.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function extension(resource DomainResource, url String) returns List&lt;Extension&gt;: external
/*
@description: Returns any modifier extensions with the given url defined on the given element.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function modifierExtension(element BackboneElement, url String) returns List&lt;Extension&gt;: external
/*
@description: Returns any modifier extensions with the given url defined on the given resource.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function modifierExtension(resource DomainResource, url String) returns List&lt;Extension&gt;: external
/*
@description: Returns true if the element is a FHIR primitive type with a value element (as opposed to having only extensions); false otherwise
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function hasValue(element Element) returns Boolean: external
/*
@description: Returns the value of the FHIR primitive; null otherwise
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function getValue(element Element) returns Any: external
/*
@description: Returns a list containing only those elements in the input that are of the given type, specified as a string.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function ofType(identifier String) returns List&lt;Any&gt;: external
/*
@description: Returns true if the input is of the given type; false otherwise
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function is(identifier String) returns Boolean: external
/*
@description: If the input is of the given type; returns the value as that type; null otherwise.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function as(identifier String) returns Any: external
/*
@description: Returns the FHIR element definition for the given element
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function elementDefinition(element Element) returns ElementDefinition: external
/*
@description: Returns the given slice as defined in the given structure definition. The structure argument is a uri that resolves to the structure definition, and the name must be the name of a slice within that structure definition. If the structure cannot be resolved, or the name of the slice within the resolved structure is not present, an error is thrown.
@comment: For every element in the input collection, if the resolved slice is present on the element, it will be returned. If the slice does not match any element in the input collection, or if the input collection is empty, the result is an empty collection ({ }).
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function slice(element Element, url String, name String) returns List&lt;Element&gt;: external
/*
@description: For each element in the input collection, verifies that there are no modifying extensions defined other than the ones given by the modifier argument. If the check passes, the input collection is returned. Otherwise, an error is thrown.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function checkModifiers(resource Resource) returns Resource: external
/*
@description: For each element in the input collection, verifies that there are no modifying extensions defined other than the ones given by the modifier argument. If the check passes, the input collection is returned. Otherwise, an error is thrown.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function checkModifiers(resource Resource, modifier String) returns Resource: external
/*
@description: For each element in the input collection, verifies that there are no modifying extensions defined other than the ones given by the modifier argument. If the check passes, the input collection is returned. Otherwise, an error is thrown.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function checkModifiers(element Element) returns Element: external
/*
@description: For each element in the input collection, verifies that there are no modifying extensions defined other than the ones given by the modifier argument. If the check passes, the input collection is returned. Otherwise, an error is thrown.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function checkModifiers(element Element, modifier String) returns Element: external
/*
@description: Returns true if the single input element conforms to the profile specified by the structure argument, and false otherwise. If the structure cannot be resolved to a valid profile, an error is thrown. If the input contains more than one element, an error is thrown. If the input is empty, the result is empty.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function conformsTo(resource Resource, structure String) returns Boolean: external
/*
@description: Returns true if the given code is equal to a code in the valueset, so long as the valueset only contains one codesystem. If the valueset contains more than one codesystem, an error is thrown.
@comment: If the valueset cannot be resolved as a uri to a value set, an error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
For example:
```fhirpath
Observation.component.where(code.memberOf('http://hl7.org/fhir/ValueSet/observation-vitalsignresult'))
```
This expression returns components that have a code that is a member of the observation-vitalsignresult valueset.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function memberOf(code code, valueSet String) returns Boolean: external
/*
@description: Returns true if the code is a member of the given valueset.
@comment: If the valueset cannot be resolved as a uri to a value set, an error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
For example:
```fhirpath
Observation.component.where(code.memberOf('http://hl7.org/fhir/ValueSet/observation-vitalsignresult'))
```
This expression returns components that have a code that is a member of the observation-vitalsignresult valueset.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function memberOf(coding Coding, valueSet String) returns Boolean: external
/*
@description: Returns true if any code in the concept is a member of the given valueset.
@comment: If the valueset cannot be resolved as a uri to a value set, an error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
For example:
```fhirpath
Observation.component.where(code.memberOf('http://hl7.org/fhir/ValueSet/observation-vitalsignresult'))
```
This expression returns components that have a code that is a member of the observation-vitalsignresult valueset.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function memberOf(concept CodeableConcept, valueSet String) returns Boolean: external
/*
@description: Returns true if the source code is equivalent to the given code, or if the source code subsumes the given code (i.e. the source code is an ancestor of the given code in a subsumption hierarchy), and false otherwise.
@comment: If the Codings are from different code systems, the relationships between the code systems must be well-defined or a run-time error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function subsumes(coding Coding, subsumedCoding Coding) returns Boolean: external
/*
@description: Returns true if any Coding in the source or given elements is equivalent to or subsumes the given code.
@comment: If the Codings are from different code systems, the relationships between the code systems must be well-defined or a run-time error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function subsumes(concept CodeableConcept, subsumedConcept CodeableConcept) returns Boolean: external
/*
@description: Returns true if the source code is equivalent to the given code, or if the source code is subsumed by the given code (i.e. the source code is a descendant of the given code in a subsumption hierarchy), and false otherwise.
@comment: If the Codings are from different code systems, the relationships between the code systems must be well-defined or a run-time error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function subsumedBy(coding Coding, subsumingCoding Coding) returns Boolean: external
/*
@description: Returns true if any Coding in the source or given elements is equivalent to or subsumed by the given code.
@comment: If the Codings are from different code systems, the relationships between the code systems must be well-defined or a run-time error is thrown.
Note that implementations are encouraged to make use of a terminology service to provide this functionality.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function subsumedBy(concept CodeableConcept, subsumingConcept CodeableConcept) returns Boolean: external
/*
@description: When invoked on an xhtml element, returns true if the rules around HTML usage are met, and false if they are not. The return value is undefined (null) on any other kind of element.
@seealso: https://hl7.org/fhir/fhirpath.html#functions
*/
define function htmlChecks(element Element) returns Boolean: external

define function ToString(value AccountStatus): value.value
define function ToString(value ActionCardinalityBehavior): value.value
define function ToString(value ActionConditionKind): value.value
define function ToString(value ActionGroupingBehavior): value.value
define function ToString(value ActionParticipantType): value.value
define function ToString(value ActionPrecheckBehavior): value.value
define function ToString(value ActionRelationshipType): value.value
define function ToString(value ActionRequiredBehavior): value.value
define function ToString(value ActionSelectionBehavior): value.value
define function ToString(value ActivityDefinitionKind): value.value
define function ToString(value ActivityParticipantType): value.value
define function ToString(value AddressType): value.value
define function ToString(value AddressUse): value.value
define function ToString(value AdministrativeGender): value.value
define function ToString(value AdverseEventActuality): value.value
define function ToString(value AggregationMode): value.value
define function ToString(value AllergyIntoleranceCategory): value.value
define function ToString(value AllergyIntoleranceCriticality): value.value
define function ToString(value AllergyIntoleranceSeverity): value.value
define function ToString(value AllergyIntoleranceType): value.value
define function ToString(value AppointmentStatus): value.value
define function ToString(value AssertionDirectionType): value.value
define function ToString(value AssertionOperatorType): value.value
define function ToString(value AssertionResponseTypes): value.value
define function ToString(value AuditEventAction): value.value
define function ToString(value AuditEventAgentNetworkType): value.value
define function ToString(value AuditEventOutcome): value.value
define function ToString(value BindingStrength): value.value
define function ToString(value BiologicallyDerivedProductCategory): value.value
define function ToString(value BiologicallyDerivedProductStatus): value.value
define function ToString(value BiologicallyDerivedProductStorageScale): value.value
define function ToString(value BundleType): value.value
define function ToString(value CapabilityStatementKind): value.value
define function ToString(value CarePlanActivityKind): value.value
define function ToString(value CarePlanActivityStatus): value.value
define function ToString(value CarePlanIntent): value.value
define function ToString(value CarePlanStatus): value.value
define function ToString(value CareTeamStatus): value.value
define function ToString(value CatalogEntryRelationType): value.value
define function ToString(value ChargeItemDefinitionPriceComponentType): value.value
define function ToString(value ChargeItemStatus): value.value
define function ToString(value ClaimResponseStatus): value.value
define function ToString(value ClaimStatus): value.value
define function ToString(value ClinicalImpressionStatus): value.value
define function ToString(value CodeSearchSupport): value.value
define function ToString(value CodeSystemContentMode): value.value
define function ToString(value CodeSystemHierarchyMeaning): value.value
define function ToString(value CommunicationPriority): value.value
define function ToString(value CommunicationRequestStatus): value.value
define function ToString(value CommunicationStatus): value.value
define function ToString(value CompartmentCode): value.value
define function ToString(value CompartmentType): value.value
define function ToString(value CompositionAttestationMode): value.value
define function ToString(value CompositionStatus): value.value
define function ToString(value ConceptMapEquivalence): value.value
define function ToString(value ConceptMapGroupUnmappedMode): value.value
define function ToString(value ConditionalDeleteStatus): value.value
define function ToString(value ConditionalReadStatus): value.value
define function ToString(value ConsentDataMeaning): value.value
define function ToString(value ConsentProvisionType): value.value
define function ToString(value ConsentState): value.value
define function ToString(value ConstraintSeverity): value.value
define function ToString(value ContactPointSystem): value.value
define function ToString(value ContactPointUse): value.value
define function ToString(value ContractPublicationStatus): value.value
define function ToString(value ContractStatus): value.value
define function ToString(value ContributorType): value.value
define function ToString(value CoverageStatus): value.value
define function ToString(value CurrencyCode): value.value
define function ToString(value DayOfWeek): value.value
define function ToString(value DaysOfWeek): value.value
define function ToString(value DetectedIssueSeverity): value.value
define function ToString(value DetectedIssueStatus): value.value
define function ToString(value DeviceMetricCalibrationState): value.value
define function ToString(value DeviceMetricCalibrationType): value.value
define function ToString(value DeviceMetricCategory): value.value
define function ToString(value DeviceMetricColor): value.value
define function ToString(value DeviceMetricOperationalStatus): value.value
define function ToString(value DeviceNameType): value.value
define function ToString(value DeviceRequestStatus): value.value
define function ToString(value DeviceUseStatementStatus): value.value
define function ToString(value DiagnosticReportStatus): value.value
define function ToString(value DiscriminatorType): value.value
define function ToString(value DocumentConfidentiality): value.value
define function ToString(value DocumentMode): value.value
define function ToString(value DocumentReferenceStatus): value.value
define function ToString(value DocumentRelationshipType): value.value
define function ToString(value EligibilityRequestPurpose): value.value
define function ToString(value EligibilityRequestStatus): value.value
define function ToString(value EligibilityResponsePurpose): value.value
define function ToString(value EligibilityResponseStatus): value.value
define function ToString(value EnableWhenBehavior): value.value
define function ToString(value EncounterLocationStatus): value.value
define function ToString(value EncounterStatus): value.value
define function ToString(value EndpointStatus): value.value
define function ToString(value EnrollmentRequestStatus): value.value
define function ToString(value EnrollmentResponseStatus): value.value
define function ToString(value EpisodeOfCareStatus): value.value
define function ToString(value EventCapabilityMode): value.value
define function ToString(value EventTiming): value.value
define function ToString(value EvidenceVariableType): value.value
define function ToString(value ExampleScenarioActorType): value.value
define function ToString(value ExplanationOfBenefitStatus): value.value
define function ToString(value ExposureState): value.value
define function ToString(value ExtensionContextType): value.value
define function ToString(value FHIRAllTypes): value.value
define function ToString(value FHIRDefinedType): value.value
define function ToString(value FHIRDeviceStatus): value.value
define function ToString(value FHIRResourceType): value.value
define function ToString(value FHIRSubstanceStatus): value.value
define function ToString(value FHIRVersion): value.value
define function ToString(value FamilyHistoryStatus): value.value
define function ToString(value FilterOperator): value.value
define function ToString(value FlagStatus): value.value
define function ToString(value GoalLifecycleStatus): value.value
define function ToString(value GraphCompartmentRule): value.value
define function ToString(value GraphCompartmentUse): value.value
define function ToString(value GroupMeasure): value.value
define function ToString(value GroupType): value.value
define function ToString(value GuidanceResponseStatus): value.value
define function ToString(value GuidePageGeneration): value.value
define function ToString(value GuideParameterCode): value.value
define function ToString(value HTTPVerb): value.value
define function ToString(value IdentifierUse): value.value
define function ToString(value IdentityAssuranceLevel): value.value
define function ToString(value ImagingStudyStatus): value.value
define function ToString(value ImmunizationEvaluationStatus): value.value
define function ToString(value ImmunizationStatus): value.value
define function ToString(value InvoicePriceComponentType): value.value
define function ToString(value InvoiceStatus): value.value
define function ToString(value IssueSeverity): value.value
define function ToString(value IssueType): value.value
define function ToString(value LinkType): value.value
define function ToString(value LinkageType): value.value
define function ToString(value ListMode): value.value
define function ToString(value ListStatus): value.value
define function ToString(value LocationMode): value.value
define function ToString(value LocationStatus): value.value
define function ToString(value MeasureReportStatus): value.value
define function ToString(value MeasureReportType): value.value
define function ToString(value MediaStatus): value.value
define function ToString(value MedicationAdministrationStatus): value.value
define function ToString(value MedicationDispenseStatus): value.value
define function ToString(value MedicationKnowledgeStatus): value.value
define function ToString(value MedicationRequestIntent): value.value
define function ToString(value MedicationRequestPriority): value.value
define function ToString(value MedicationRequestStatus): value.value
define function ToString(value MedicationStatementStatus): value.value
define function ToString(value MedicationStatus): value.value
define function ToString(value MessageSignificanceCategory): value.value
define function ToString(value Messageheader_Response_Request): value.value
define function ToString(value MimeType): value.value
define function ToString(value NameUse): value.value
define function ToString(value NamingSystemIdentifierType): value.value
define function ToString(value NamingSystemType): value.value
define function ToString(value NarrativeStatus): value.value
define function ToString(value NoteType): value.value
define function ToString(value NutritiionOrderIntent): value.value
define function ToString(value NutritionOrderStatus): value.value
define function ToString(value ObservationDataType): value.value
define function ToString(value ObservationRangeCategory): value.value
define function ToString(value ObservationStatus): value.value
define function ToString(value OperationKind): value.value
define function ToString(value OperationParameterUse): value.value
define function ToString(value OrientationType): value.value
define function ToString(value ParameterUse): value.value
define function ToString(value ParticipantRequired): value.value
define function ToString(value ParticipantStatus): value.value
define function ToString(value ParticipationStatus): value.value
define function ToString(value PaymentNoticeStatus): value.value
define function ToString(value PaymentReconciliationStatus): value.value
define function ToString(value ProcedureStatus): value.value
define function ToString(value PropertyRepresentation): value.value
define function ToString(value PropertyType): value.value
define function ToString(value ProvenanceEntityRole): value.value
define function ToString(value PublicationStatus): value.value
define function ToString(value QualityType): value.value
define function ToString(value QuantityComparator): value.value
define function ToString(value QuestionnaireItemOperator): value.value
define function ToString(value QuestionnaireItemType): value.value
define function ToString(value QuestionnaireResponseStatus): value.value
define function ToString(value ReferenceHandlingPolicy): value.value
define function ToString(value ReferenceVersionRules): value.value
define function ToString(value ReferredDocumentStatus): value.value
define function ToString(value RelatedArtifactType): value.value
define function ToString(value RemittanceOutcome): value.value
define function ToString(value RepositoryType): value.value
define function ToString(value RequestIntent): value.value
define function ToString(value RequestPriority): value.value
define function ToString(value RequestStatus): value.value
define function ToString(value ResearchElementType): value.value
define function ToString(value ResearchStudyStatus): value.value
define function ToString(value ResearchSubjectStatus): value.value
define function ToString(value ResourceType): value.value
define function ToString(value ResourceVersionPolicy): value.value
define function ToString(value ResponseType): value.value
define function ToString(value RestfulCapabilityMode): value.value
define function ToString(value RiskAssessmentStatus): value.value
define function ToString(value SPDXLicense): value.value
define function ToString(value SearchComparator): value.value
define function ToString(value SearchEntryMode): value.value
define function ToString(value SearchModifierCode): value.value
define function ToString(value SearchParamType): value.value
define function ToString(value SectionMode): value.value
define function ToString(value SequenceType): value.value
define function ToString(value ServiceRequestIntent): value.value
define function ToString(value ServiceRequestPriority): value.value
define function ToString(value ServiceRequestStatus): value.value
define function ToString(value SlicingRules): value.value
define function ToString(value SlotStatus): value.value
define function ToString(value SortDirection): value.value
define function ToString(value SpecimenContainedPreference): value.value
define function ToString(value SpecimenStatus): value.value
define function ToString(value Status): value.value
define function ToString(value StrandType): value.value
define function ToString(value StructureDefinitionKind): value.value
define function ToString(value StructureMapContextType): value.value
define function ToString(value StructureMapGroupTypeMode): value.value
define function ToString(value StructureMapInputMode): value.value
define function ToString(value StructureMapModelMode): value.value
define function ToString(value StructureMapSourceListMode): value.value
define function ToString(value StructureMapTargetListMode): value.value
define function ToString(value StructureMapTransform): value.value
define function ToString(value SubscriptionChannelType): value.value
define function ToString(value SubscriptionStatus): value.value
define function ToString(value SupplyDeliveryStatus): value.value
define function ToString(value SupplyRequestStatus): value.value
define function ToString(value SystemRestfulInteraction): value.value
define function ToString(value TaskIntent): value.value
define function ToString(value TaskPriority): value.value
define function ToString(value TaskStatus): value.value
define function ToString(value TestReportActionResult): value.value
define function ToString(value TestReportParticipantType): value.value
define function ToString(value TestReportResult): value.value
define function ToString(value TestReportStatus): value.value
define function ToString(value TestScriptRequestMethodCode): value.value
define function ToString(value TriggerType): value.value
define function ToString(value TypeDerivationRule): value.value
define function ToString(value TypeRestfulInteraction): value.value
define function ToString(value UDIEntryType): value.value
define function ToString(value UnitsOfTime): value.value
define function ToString(value Use): value.value
define function ToString(value VariableType): value.value
define function ToString(value VisionBase): value.value
define function ToString(value VisionEyes): value.value
define function ToString(value VisionStatus): value.value
define function ToString(value XPathUsageType): value.value
define function ToString(value base64Binary): value.value
define function ToBoolean(value boolean): value.value
define function ToDate(value date): value.value
define function ToDateTime(value dateTime): value.value
define function ToDecimal(value decimal): value.value
define function ToDateTime(value instant): value.value
define function ToInteger(value integer): value.value
define function ToString(value string): value.value
define function ToTime(value time): value.value
define function ToString(value uri): value.value
define function ToString(value xhtml): value.value</code></pre> 
                           </td> 
                        </tr>   
                        <tr> 
                           <th colspan="2" scope="row" class="row-header">Generated using version 0.4.8 of the sample-content-ig Liquid templates</th> 
                        </tr> 
                     </tbody> 
                  </table> 
               </div>
            </text>
            <url value="https://madie.cms.gov/Library/FHIRHelpers"></url>
            <identifier>
               <use value="official"></use>
               <system value="https://madie.cms.gov/login"></system>
               <value value="660d90bc01598d085de46056"></value>
            </identifier>
            <version value="4.4.000"></version>
            <name value="FHIRHelpers"></name>
            <title value="FHIRHelpers"></title>
            <status value="active"></status>
            <experimental value="false"></experimental>
            <type>
               <coding>
                  <system value="http://terminology.hl7.org/CodeSystem/library-type"></system>
                  <code value="logic-library"></code>
               </coding>
            </type>
            <date value="2025-08-22T18:20:12+00:00"></date>
            <publisher value="ICF"></publisher>
            <description value="This library defines functions to convert between FHIR
 data types and CQL system-defined types, as well as functions to support
 FHIRPath implementation. For more information, the FHIRHelpers wiki page:
 https://github.com/cqframework/clinical_quality_language/wiki/FHIRHelpers"></description>
            <relatedArtifact>
               <type value="depends-on"></type>
               <display value="FHIR model information"></display>
               <resource value="http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"></resource>
            </relatedArtifact>
            <content>
               <contentType value="text/cql"></contentType>
               <data value="[encoded data, 52440 characters]"></data>
            </content>
            <content>
               <contentType value="application/elm+xml"></contentType>
               <data value="[encoded data, 1342916 characters]"></data>
            </content>
            <content>
               <contentType value="application/elm+json"></contentType>
               <data value="[encoded data, 2177516 characters]"></data>
            </content>
         </Library>
      </resource>
      <request>
         <method value="POST"></method>
         <url value="Library/FHIRHelpers"></url>
      </request>
   </entry>
</Bundle>