eCQM QICore Content Implementation Guide
2025.0.0 - CI Build
eCQM QICore Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/ecqm-content-qicore-2025/ and changes regularly. See the Directory of published versions
Active as of 2025-04-15 |
<Library xmlns="http://hl7.org/fhir">
<id value="CMS146FHIRAppropriateTestingforPharyngitis"/>
<meta>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"/>
</meta>
<language value="en"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="grid dict">
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">CMS146FHIRAppropriateTestingforPharyngitis</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">CMS146FHIRAppropriateTestingforPharyngitis</td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">0.3.000</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;">https://madie.cms.gov/Library/CMS146FHIRAppropriateTestingforPharyngitis</td>
</tr>
<tr>
<th scope="row">
<b>
official
</b>
</th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>CMS146FHIRAppropriateTestingforPharyngitis</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Type: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<b>system: </b> <span>http://terminology.hl7.org/CodeSystem/library-type</span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>logic-library</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 4px;">2025-04-15T20:44:03+00:00</td>
</tr>
<tr>
<th scope="row"><b>Publisher: </b></th>
<td style="padding-left: 4px;">National Committee for Quality Assurance</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;">CMS146FHIRAppropriateTestingforPharyngitis</td>
</tr>
<tr>
<th scope="row"><b>Related Artifacts: </b></th>
<td style="padding-left: 4px;">
<p><b>Dependencies</b></p>
<ul>
<li>https://madie.cms.gov/Library/SupplementalDataElements|5.1.000</li>
<li>https://madie.cms.gov/Library/Status|1.13.000</li>
<li>https://madie.cms.gov/Library/FHIRHelpers|4.4.000</li>
<li>https://madie.cms.gov/Library/QICoreCommon|4.0.000</li>
<li>https://madie.cms.gov/Library/Hospice|6.15.000</li>
<li>https://madie.cms.gov/Library/Antibiotic|1.9.000</li>
<li>http://www.ama-assn.org/go/cpt</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1012</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1073</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1027</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1026</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1001</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1025</li>
<li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1017</li>
</ul>
</td>
</tr>
<tr>
<th scope="row"><b>Data Requirements:</b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>MS</b></th><th><b>Code Filter</b></th></tr>
<tr>
<th>Patient</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient</th>
<th>;;</th>
<th>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1073</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1027</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1026</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307</span>
</span>
</th>
</tr>
<tr>
<th>Encounter</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1003</span>
</span>
</th>
</tr>
<tr>
<th>MedicationRequest</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>medication</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1001</span>
</span>
</th>
</tr>
<tr>
<th>MedicationRequest</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest</th>
<th>;</th>
<th>
</th>
</tr>
<tr>
<th>Medication</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication</th>
<th>;;</th>
<th>
</th>
</tr>
<tr>
<th>Condition</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011</span>
</span>
</th>
</tr>
<tr>
<th>Condition</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012</span>
</span>
</th>
</tr>
<tr>
<th>Condition</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165</span>
</span>
</th>
</tr>
<tr>
<th>Condition</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1025</span>
</span>
</th>
</tr>
<tr>
<th>Condition</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1017</span>
</span>
</th>
</tr>
<tr>
<th>Observation</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-lab</th>
<th>;;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1012</span>
</span>
</th>
</tr>
<tr>
<th>Coverage</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591</span>
</span>
</th>
</tr>
<tr>
<th>Observation</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-screening-assessment</th>
<th>;;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<p style="margin-bottom: 5px;">
<b>system: </b> <span>http://loinc.org</span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>45755-6</span>
</p>
<p style="margin-bottom: 5px;">
<b>display: </b> <span>Hospice care [Minimum Data Set]</span>
</p>
</th>
</tr>
<tr>
<th>ServiceRequest</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest</th>
<th>;;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584</span>
</span>
</th>
</tr>
<tr>
<th>Procedure</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure</th>
<th>;;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1584</span>
</span>
</th>
</tr>
<tr>
<th>Condition</th>
<th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns</th>
<th>;</th>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>code</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1165</span>
</span>
</th>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
<tr><td><pre><code class="language-cql">library CMS146FHIRAppropriateTestingforPharyngitis version '0.3.000'
using QICore version '6.0.0'
include FHIRHelpers version '4.4.000' called FHIRHelpers
include SupplementalDataElements version '5.1.000' called SDE
include Hospice version '6.15.000' called Hospice
include Antibiotic version '1.9.000' called Antibiotic
include Status version '1.13.000' called Status
include QICoreCommon version '4.0.000' called QICoreCommon
codesystem "CPT": 'http://www.ama-assn.org/go/cpt'
valueset "Acute Pharyngitis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011'
valueset "Acute Tonsillitis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012'
valueset "Antibiotic Medications for Pharyngitis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1001'
valueset "Comorbid Conditions for Respiratory Conditions": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1025'
valueset "Competing Conditions for Respiratory Conditions": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1017'
valueset "Emergency Department Evaluation and Management Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010'
valueset "Group A Streptococcus Test": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1012'
valueset "Home Healthcare Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016'
valueset "Medical Disability Exam": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1073'
valueset "Office Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset "Outpatient Consultation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008'
valueset "Preventive Care Services Established Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025'
valueset "Preventive Care Services Group Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1027'
valueset "Preventive Care Services Individual Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1026'
valueset "Preventive Care Services Initial Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023'
valueset "Preventive Care Services, Initial Office Visit, 0 to 17": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022'
valueset "Preventive Care, Established Office Visit, 0 to 17": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024'
valueset "Telephone Visits": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080'
valueset "Virtual Encounter": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089'
code "Unlisted preventive medicine service": '99429' from "CPT" display 'Unlisted preventive medicine service'
parameter "Measurement Period" Interval<DateTime>
context Patient
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 "Initial Population":
"Encounter With Pharyngitis or Tonsillitis With Antibiotic" EncounterWithPharyngitis
where AgeInYearsAt(date from start of "Measurement Period") >= 3
return EncounterWithPharyngitis
define "Encounter With Pharyngitis or Tonsillitis With Antibiotic":
from
"Encounter With Antibiotic Ordered Within Three Days" VisitWithAntibiotic,
"Pharyngitis or Tonsillitis" AcutePharyngitisTonsillitis
where AcutePharyngitisTonsillitis.prevalenceInterval ( ) starts during day of VisitWithAntibiotic.period.toInterval ( )
return VisitWithAntibiotic
define "Pharyngitis or Tonsillitis":
( [ConditionEncounterDiagnosis: "Acute Pharyngitis"]
union [ConditionEncounterDiagnosis: "Acute Tonsillitis"]
)
define "Denominator":
"Initial Population"
define "Denominator Exclusions":
"Encounters and Assessments with Hospice Patient"
union Antibiotic."Has Comorbid Condition History" ( "Encounter With Pharyngitis or Tonsillitis With Antibiotic", ( [ConditionEncounterDiagnosis: "Comorbid Conditions for Respiratory Conditions"] ) )
union Antibiotic."Has Antibiotic Medication History" ( "Encounter With Pharyngitis or Tonsillitis With Antibiotic", ( [MedicationRequest: "Antibiotic Medications for Pharyngitis"] ).isMedicationActive ( ) )
union Antibiotic."Has Competing Diagnosis History" ( "Encounter With Pharyngitis or Tonsillitis With Antibiotic", ( [ConditionEncounterDiagnosis: "Competing Conditions for Respiratory Conditions"] ) )
define "Encounter With Antibiotic Ordered Within Three Days":
"Qualifying Encounters" EDOrAmbulatoryVisit
with ( ( [MedicationRequest: "Antibiotic Medications for Pharyngitis"] ).isMedicationOrder ( ) ) AntibioticOrdered
such that EDOrAmbulatoryVisit.period.toInterval ( ) starts 3 days or less on or before day of AntibioticOrdered.authoredOn
define "Encounters and Assessments with Hospice Patient":
"Initial Population" EligibleEncounters
where Hospice."Has Hospice Services"
define "Qualifying Encounters":
( ( [Encounter: "Emergency Department Evaluation and Management Visit"]
union [Encounter: "Home Healthcare Services"]
union [Encounter: "Medical Disability Exam"]
union [Encounter: "Office Visit"]
union [Encounter: "Telephone Visits"]
union [Encounter: "Virtual Encounter"]
union [Encounter: "Outpatient Consultation"]
union [Encounter: "Preventive Care Services Established Office Visit, 18 and Up"]
union [Encounter: "Preventive Care Services Group Counseling"]
union ( [Encounter] E
where exists ( ( E.type ) T
where T ~ "Unlisted preventive medicine service"
)
)
union [Encounter: "Preventive Care Services, Initial Office Visit, 0 to 17"]
union [Encounter: "Preventive Care Services Individual Counseling"]
union [Encounter: "Preventive Care Services Initial Office Visit, 18 and Up"]
union [Encounter: "Preventive Care, Established Office Visit, 0 to 17"]
).isEncounterPerformed ( ) ) ValidEncounter
where ValidEncounter.period.toInterval ( ) ends during day of Interval[( start of "Measurement Period" ), ( end of "Measurement Period" ) - 3 days]
define "Numerator":
from
"Group A Streptococcus Lab Test With Result" GroupAStreptococcusTest,
"Encounter With Pharyngitis or Tonsillitis With Antibiotic" EncounterWithPharyngitis
where GroupAStreptococcusTest.effective.toInterval ( ) starts during day of Interval[( end of EncounterWithPharyngitis.period ) - 3 days, ( end of EncounterWithPharyngitis.period ) + 3 days]
return EncounterWithPharyngitis
define "Group A Streptococcus Lab Test With Result":
( ( [LaboratoryResultObservation: "Group A Streptococcus Test"] ).isLaboratoryTestPerformed ( ) ) GroupAStreptococcusTest
where GroupAStreptococcusTest.value is not null
define "Stratification 1":
"Encounter With Pharyngitis or Tonsillitis With Antibiotic" EncounterWithPharyngitis
where AgeInYearsAt(date from start of "Measurement Period") in Interval[3, 17]
return EncounterWithPharyngitis
define "Stratification 2":
"Encounter With Pharyngitis or Tonsillitis With Antibiotic" EncounterWithPharyngitis
where AgeInYearsAt(date from start of "Measurement Period") in Interval[18, 64]
return EncounterWithPharyngitis
define "Stratification 3":
"Encounter With Pharyngitis or Tonsillitis With Antibiotic" EncounterWithPharyngitis
where AgeInYearsAt(date from start of "Measurement Period") >= 65
return EncounterWithPharyngitis</code></pre></td></tr>
</table>
</td>
</tr>
</table>
</div>
</text>
<contained>
<Parameters>
<id value="options"/>
<parameter>
<name value="translatorVersion"/>
<valueString value="3.25.0"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="EnableAnnotations"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="EnableLocators"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="DisableListDemotion"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="DisableListPromotion"/>
</parameter>
<parameter>
<name value="format"/>
<valueString value="JSON"/>
</parameter>
<parameter>
<name value="format"/>
<valueString value="XML"/>
</parameter>
<parameter>
<name value="analyzeDataRequirements"/>
<valueBoolean value="false"/>
</parameter>
<parameter>
<name value="collapseDataRequirements"/>
<valueBoolean value="false"/>
</parameter>
<parameter>
<name value="compatibilityLevel"/>
<valueString value="1.5"/>
</parameter>
<parameter>
<name value="enableCqlOnly"/>
<valueBoolean value="false"/>
</parameter>
<parameter>
<name value="errorLevel"/>
<valueString value="Info"/>
</parameter>
<parameter>
<name value="signatureLevel"/>
<valueString value="Overloads"/>
</parameter>
<parameter>
<name value="validateUnits"/>
<valueBoolean value="true"/>
</parameter>
<parameter>
<name value="verifyOnly"/>
<valueBoolean value="false"/>
</parameter>
</Parameters>
</contained>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system value="http://www.ama-assn.org/go/cpt"/>
<code value="99429"/>
<display value="Unlisted preventive medicine service"/>
</valueCoding>
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions">
<valueReference>
<reference value="#options"/>
</valueReference>
</extension>
<url
value="https://madie.cms.gov/Library/CMS146FHIRAppropriateTestingforPharyngitis"/>
<identifier>
<use value="official"/>
<system value="https://madie.cms.gov/login"/>
<value value="CMS146FHIRAppropriateTestingforPharyngitis"/>
</identifier>
<version value="0.3.000"/>
<name value="CMS146FHIRAppropriateTestingforPharyngitis"/>
<title value="CMS146FHIRAppropriateTestingforPharyngitis"/>
<status value="active"/>
<experimental value="false"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2025-04-15T20:44:03+00:00"/>
<publisher value="National Committee for Quality Assurance"/>
<description value="CMS146FHIRAppropriateTestingforPharyngitis"/>
<content>
<contentType value="text/cql"/>
<data
value="bGlicmFyeSBDTVMxNDZGSElSQXBwcm9wcmlhdGVUZXN0aW5nZm9yUGhhcnluZ2l0aXMgdmVyc2lvbiAnMC4zLjAwMCcNCg0KdXNpbmcgUUlDb3JlIHZlcnNpb24gJzYuMC4wJw0KDQppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuNC4wMDAnIGNhbGxlZCBGSElSSGVscGVycw0KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIFNERQ0KaW5jbHVkZSBIb3NwaWNlIHZlcnNpb24gJzYuMTUuMDAwJyBjYWxsZWQgSG9zcGljZQ0KaW5jbHVkZSBBbnRpYmlvdGljIHZlcnNpb24gJzEuOS4wMDAnIGNhbGxlZCBBbnRpYmlvdGljDQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcxLjEzLjAwMCcgY2FsbGVkIFN0YXR1cw0KaW5jbHVkZSBRSUNvcmVDb21tb24gdmVyc2lvbiAnNC4wLjAwMCcgY2FsbGVkIFFJQ29yZUNvbW1vbg0KDQpjb2Rlc3lzdGVtICJDUFQiOiAnaHR0cDovL3d3dy5hbWEtYXNzbi5vcmcvZ28vY3B0Jw0KDQp2YWx1ZXNldCAiQWN1dGUgUGhhcnluZ2l0aXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAyLjEyLjEwMTEnDQp2YWx1ZXNldCAiQWN1dGUgVG9uc2lsbGl0aXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAyLjEyLjEwMTInDQp2YWx1ZXNldCAiQW50aWJpb3RpYyBNZWRpY2F0aW9ucyBmb3IgUGhhcnluZ2l0aXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk2LjEyLjEwMDEnDQp2YWx1ZXNldCAiQ29tb3JiaWQgQ29uZGl0aW9ucyBmb3IgUmVzcGlyYXRvcnkgQ29uZGl0aW9ucyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDIuMTIuMTAyNScNCnZhbHVlc2V0ICJDb21wZXRpbmcgQ29uZGl0aW9ucyBmb3IgUmVzcGlyYXRvcnkgQ29uZGl0aW9ucyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDIuMTIuMTAxNycNCnZhbHVlc2V0ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBFdmFsdWF0aW9uIGFuZCBNYW5hZ2VtZW50IFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDEwJw0KdmFsdWVzZXQgIkdyb3VwIEEgU3RyZXB0b2NvY2N1cyBUZXN0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5OC4xMi4xMDEyJw0KdmFsdWVzZXQgIkhvbWUgSGVhbHRoY2FyZSBTZXJ2aWNlcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAxNicNCnZhbHVlc2V0ICJNZWRpY2FsIERpc2FiaWxpdHkgRXhhbSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTA3MycNCnZhbHVlc2V0ICJPZmZpY2UgVmlzaXQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMDEnDQp2YWx1ZXNldCAiT3V0cGF0aWVudCBDb25zdWx0YXRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMDgnDQp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMTggYW5kIFVwIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDI1Jw0KdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBHcm91cCBDb3Vuc2VsaW5nIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDI3Jw0KdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBJbmRpdmlkdWFsIENvdW5zZWxpbmciOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjYnDQp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEluaXRpYWwgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjMnDQp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzLCBJbml0aWFsIE9mZmljZSBWaXNpdCwgMCB0byAxNyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyMicNCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUsIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMCB0byAxNyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyNCcNCnZhbHVlc2V0ICJUZWxlcGhvbmUgVmlzaXRzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDgwJw0KdmFsdWVzZXQgIlZpcnR1YWwgRW5jb3VudGVyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDg5Jw0KDQpjb2RlICJVbmxpc3RlZCBwcmV2ZW50aXZlIG1lZGljaW5lIHNlcnZpY2UiOiAnOTk0MjknIGZyb20gIkNQVCIgZGlzcGxheSAnVW5saXN0ZWQgcHJldmVudGl2ZSBtZWRpY2luZSBzZXJ2aWNlJw0KDQpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+DQoNCmNvbnRleHQgUGF0aWVudA0KDQpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOg0KICBTREUuIlNERSBFdGhuaWNpdHkiDQoNCmRlZmluZSAiU0RFIFBheWVyIjoNCiAgU0RFLiJTREUgUGF5ZXIiDQoNCmRlZmluZSAiU0RFIFJhY2UiOg0KICBTREUuIlNERSBSYWNlIg0KDQpkZWZpbmUgIlNERSBTZXgiOg0KICBTREUuIlNERSBTZXgiDQoNCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoNCiAgIkVuY291bnRlciBXaXRoIFBoYXJ5bmdpdGlzIG9yIFRvbnNpbGxpdGlzIFdpdGggQW50aWJpb3RpYyIgRW5jb3VudGVyV2l0aFBoYXJ5bmdpdGlzDQogICAgd2hlcmUgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSBzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikgPj0gMw0KICAgIHJldHVybiBFbmNvdW50ZXJXaXRoUGhhcnluZ2l0aXMNCg0KZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBQaGFyeW5naXRpcyBvciBUb25zaWxsaXRpcyBXaXRoIEFudGliaW90aWMiOg0KICBmcm9tDQogICAgIkVuY291bnRlciBXaXRoIEFudGliaW90aWMgT3JkZXJlZCBXaXRoaW4gVGhyZWUgRGF5cyIgVmlzaXRXaXRoQW50aWJpb3RpYywNCiAgICAiUGhhcnluZ2l0aXMgb3IgVG9uc2lsbGl0aXMiIEFjdXRlUGhhcnluZ2l0aXNUb25zaWxsaXRpcw0KICAgIHdoZXJlIEFjdXRlUGhhcnluZ2l0aXNUb25zaWxsaXRpcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyBkdXJpbmcgZGF5IG9mIFZpc2l0V2l0aEFudGliaW90aWMucGVyaW9kLnRvSW50ZXJ2YWwgKCApDQogICAgcmV0dXJuIFZpc2l0V2l0aEFudGliaW90aWMNCg0KZGVmaW5lICJQaGFyeW5naXRpcyBvciBUb25zaWxsaXRpcyI6DQogICggW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkFjdXRlIFBoYXJ5bmdpdGlzIl0NCiAgICAgIHVuaW9uIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBY3V0ZSBUb25zaWxsaXRpcyJdDQogICkNCg0KZGVmaW5lICJEZW5vbWluYXRvciI6DQogICJJbml0aWFsIFBvcHVsYXRpb24iDQoNCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9ucyI6DQogICJFbmNvdW50ZXJzIGFuZCBBc3Nlc3NtZW50cyB3aXRoIEhvc3BpY2UgUGF0aWVudCINCiAgICB1bmlvbiBBbnRpYmlvdGljLiJIYXMgQ29tb3JiaWQgQ29uZGl0aW9uIEhpc3RvcnkiICggIkVuY291bnRlciBXaXRoIFBoYXJ5bmdpdGlzIG9yIFRvbnNpbGxpdGlzIFdpdGggQW50aWJpb3RpYyIsICggW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkNvbW9yYmlkIENvbmRpdGlvbnMgZm9yIFJlc3BpcmF0b3J5IENvbmRpdGlvbnMiXSApICkNCiAgICB1bmlvbiBBbnRpYmlvdGljLiJIYXMgQW50aWJpb3RpYyBNZWRpY2F0aW9uIEhpc3RvcnkiICggIkVuY291bnRlciBXaXRoIFBoYXJ5bmdpdGlzIG9yIFRvbnNpbGxpdGlzIFdpdGggQW50aWJpb3RpYyIsICggW01lZGljYXRpb25SZXF1ZXN0OiAiQW50aWJpb3RpYyBNZWRpY2F0aW9ucyBmb3IgUGhhcnluZ2l0aXMiXSApLmlzTWVkaWNhdGlvbkFjdGl2ZSAoICkgKQ0KICAgIHVuaW9uIEFudGliaW90aWMuIkhhcyBDb21wZXRpbmcgRGlhZ25vc2lzIEhpc3RvcnkiICggIkVuY291bnRlciBXaXRoIFBoYXJ5bmdpdGlzIG9yIFRvbnNpbGxpdGlzIFdpdGggQW50aWJpb3RpYyIsICggW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkNvbXBldGluZyBDb25kaXRpb25zIGZvciBSZXNwaXJhdG9yeSBDb25kaXRpb25zIl0gKSApDQoNCmRlZmluZSAiRW5jb3VudGVyIFdpdGggQW50aWJpb3RpYyBPcmRlcmVkIFdpdGhpbiBUaHJlZSBEYXlzIjoNCiAgIlF1YWxpZnlpbmcgRW5jb3VudGVycyIgRURPckFtYnVsYXRvcnlWaXNpdA0KICAgIHdpdGggKCAoIFtNZWRpY2F0aW9uUmVxdWVzdDogIkFudGliaW90aWMgTWVkaWNhdGlvbnMgZm9yIFBoYXJ5bmdpdGlzIl0gKS5pc01lZGljYXRpb25PcmRlciAoICkgKSBBbnRpYmlvdGljT3JkZXJlZA0KICAgICAgc3VjaCB0aGF0IEVET3JBbWJ1bGF0b3J5VmlzaXQucGVyaW9kLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyAzIGRheXMgb3IgbGVzcyBvbiBvciBiZWZvcmUgZGF5IG9mIEFudGliaW90aWNPcmRlcmVkLmF1dGhvcmVkT24NCg0KZGVmaW5lICJFbmNvdW50ZXJzIGFuZCBBc3Nlc3NtZW50cyB3aXRoIEhvc3BpY2UgUGF0aWVudCI6DQogICJJbml0aWFsIFBvcHVsYXRpb24iIEVsaWdpYmxlRW5jb3VudGVycw0KICAgIHdoZXJlIEhvc3BpY2UuIkhhcyBIb3NwaWNlIFNlcnZpY2VzIg0KDQpkZWZpbmUgIlF1YWxpZnlpbmcgRW5jb3VudGVycyI6DQogICggKCBbRW5jb3VudGVyOiAiRW1lcmdlbmN5IERlcGFydG1lbnQgRXZhbHVhdGlvbiBhbmQgTWFuYWdlbWVudCBWaXNpdCJdDQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiSG9tZSBIZWFsdGhjYXJlIFNlcnZpY2VzIl0NCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJNZWRpY2FsIERpc2FiaWxpdHkgRXhhbSJdDQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiT2ZmaWNlIFZpc2l0Il0NCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJUZWxlcGhvbmUgVmlzaXRzIl0NCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJWaXJ0dWFsIEVuY291bnRlciJdDQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiT3V0cGF0aWVudCBDb25zdWx0YXRpb24iXQ0KICAgICAgdW5pb24gW0VuY291bnRlcjogIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBFc3RhYmxpc2hlZCBPZmZpY2UgVmlzaXQsIDE4IGFuZCBVcCJdDQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEdyb3VwIENvdW5zZWxpbmciXQ0KICAgICAgdW5pb24gKCBbRW5jb3VudGVyXSBFDQogICAgICAgICAgd2hlcmUgZXhpc3RzICggKCBFLnR5cGUgKSBUDQogICAgICAgICAgICAgIHdoZXJlIFQgfiAiVW5saXN0ZWQgcHJldmVudGl2ZSBtZWRpY2luZSBzZXJ2aWNlIg0KICAgICAgICAgICkNCiAgICAgICkNCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMsIEluaXRpYWwgT2ZmaWNlIFZpc2l0LCAwIHRvIDE3Il0NCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgSW5kaXZpZHVhbCBDb3Vuc2VsaW5nIl0NCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgSW5pdGlhbCBPZmZpY2UgVmlzaXQsIDE4IGFuZCBVcCJdDQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlLCBFc3RhYmxpc2hlZCBPZmZpY2UgVmlzaXQsIDAgdG8gMTciXQ0KICApLmlzRW5jb3VudGVyUGVyZm9ybWVkICggKSApIFZhbGlkRW5jb3VudGVyDQogICAgd2hlcmUgVmFsaWRFbmNvdW50ZXIucGVyaW9kLnRvSW50ZXJ2YWwgKCApIGVuZHMgZHVyaW5nIGRheSBvZiBJbnRlcnZhbFsoIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiICksICggZW5kIG9mICJNZWFzdXJlbWVudCBQZXJpb2QiICkgLSAzIGRheXNdDQoNCmRlZmluZSAiTnVtZXJhdG9yIjoNCiAgZnJvbQ0KICAgICJHcm91cCBBIFN0cmVwdG9jb2NjdXMgTGFiIFRlc3QgV2l0aCBSZXN1bHQiIEdyb3VwQVN0cmVwdG9jb2NjdXNUZXN0LA0KICAgICJFbmNvdW50ZXIgV2l0aCBQaGFyeW5naXRpcyBvciBUb25zaWxsaXRpcyBXaXRoIEFudGliaW90aWMiIEVuY291bnRlcldpdGhQaGFyeW5naXRpcw0KICAgIHdoZXJlIEdyb3VwQVN0cmVwdG9jb2NjdXNUZXN0LmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBzdGFydHMgZHVyaW5nIGRheSBvZiBJbnRlcnZhbFsoIGVuZCBvZiBFbmNvdW50ZXJXaXRoUGhhcnluZ2l0aXMucGVyaW9kICkgLSAzIGRheXMsICggZW5kIG9mIEVuY291bnRlcldpdGhQaGFyeW5naXRpcy5wZXJpb2QgKSArIDMgZGF5c10NCiAgICByZXR1cm4gRW5jb3VudGVyV2l0aFBoYXJ5bmdpdGlzDQoNCmRlZmluZSAiR3JvdXAgQSBTdHJlcHRvY29jY3VzIExhYiBUZXN0IFdpdGggUmVzdWx0IjoNCiAgKCAoIFtMYWJvcmF0b3J5UmVzdWx0T2JzZXJ2YXRpb246ICJHcm91cCBBIFN0cmVwdG9jb2NjdXMgVGVzdCJdICkuaXNMYWJvcmF0b3J5VGVzdFBlcmZvcm1lZCAoICkgKSBHcm91cEFTdHJlcHRvY29jY3VzVGVzdA0KICAgIHdoZXJlIEdyb3VwQVN0cmVwdG9jb2NjdXNUZXN0LnZhbHVlIGlzIG5vdCBudWxsDQoNCmRlZmluZSAiU3RyYXRpZmljYXRpb24gMSI6DQogICJFbmNvdW50ZXIgV2l0aCBQaGFyeW5naXRpcyBvciBUb25zaWxsaXRpcyBXaXRoIEFudGliaW90aWMiIEVuY291bnRlcldpdGhQaGFyeW5naXRpcw0KICAgIHdoZXJlIEFnZUluWWVhcnNBdChkYXRlIGZyb20gc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIpIGluIEludGVydmFsWzMsIDE3XQ0KICAgIHJldHVybiBFbmNvdW50ZXJXaXRoUGhhcnluZ2l0aXMNCg0KZGVmaW5lICJTdHJhdGlmaWNhdGlvbiAyIjoNCiAgIkVuY291bnRlciBXaXRoIFBoYXJ5bmdpdGlzIG9yIFRvbnNpbGxpdGlzIFdpdGggQW50aWJpb3RpYyIgRW5jb3VudGVyV2l0aFBoYXJ5bmdpdGlzDQogICAgd2hlcmUgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSBzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikgaW4gSW50ZXJ2YWxbMTgsIDY0XQ0KICAgIHJldHVybiBFbmNvdW50ZXJXaXRoUGhhcnluZ2l0aXMNCg0KZGVmaW5lICJTdHJhdGlmaWNhdGlvbiAzIjoNCiAgIkVuY291bnRlciBXaXRoIFBoYXJ5bmdpdGlzIG9yIFRvbnNpbGxpdGlzIFdpdGggQW50aWJpb3RpYyIgRW5jb3VudGVyV2l0aFBoYXJ5bmdpdGlzDQogICAgd2hlcmUgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSBzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikgPj0gNjUNCiAgICByZXR1cm4gRW5jb3VudGVyV2l0aFBoYXJ5bmdpdGlz"/>
</content>
</Library>