<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="urn:hl7-org:elm:r1" xmlns:t="urn:hl7-org:elm-types:r1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fhir="http://hl7.org/fhir" xmlns:qdm43="urn:healthit-gov:qdm:v4_3" xmlns:qdm53="urn:healthit-gov:qdm:v5_3" xmlns:a="urn:hl7-org:cql-annotations:r1" localId="0">
   <annotation translatorOptions="EnableAnnotations,EnableLocators,DisableListDemotion,DisableListPromotion" signatureLevel="Overloads" xsi:type="a:CqlToElmInfo"/>
   <annotation message="An operand identifier reference is hiding another identifier of the same name." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/>
   <annotation message="An operand identifier reference is hiding another identifier of the same name." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/>
   <annotation message="An operand identifier reference is hiding another identifier of the same name." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/>
   <annotation xsi:type="a:Annotation">
      <a:s r="302">
         <a:s>/*
  * Library: IMMZD2DTYellowfeverEncounterElements
  */
library IMMZD2DTYellowfeverEncounterElements</a:s>
      </a:s>
   </annotation>
   <identifier id="IMMZD2DTYellowfeverEncounterElements" system="http://smart.who.int/immunizations"/>
   <schemaIdentifier id="urn:hl7-org:elm" version="r1"/>
   <usings>
      <def localId="1" localIdentifier="System" uri="urn:hl7-org:elm-types:r1" version="1.0.0"/>
      <def localId="206" locator="7:1-7:26" localIdentifier="FHIR" uri="http://hl7.org/fhir" version="4.0.1">
         <annotation xsi:type="a:Annotation">
            <a:s r="206">
               <a:s>using </a:s>
               <a:s>
                  <a:s>FHIR</a:s>
               </a:s>
               <a:s> version '4.0.1'</a:s>
            </a:s>
         </annotation>
      </def>
   </usings>
   <includes>
      <def localId="208" locator="8:1-8:35" localIdentifier="FHIRHelpers" path="http://hl7.org/fhir/FHIRHelpers" version="4.0.1">
         <annotation xsi:type="a:Annotation">
            <a:s r="208">
               <a:s>include </a:s>
               <a:s>
                  <a:s>FHIRHelpers</a:s>
               </a:s>
               <a:s> version '4.0.1'</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="210" locator="10:1-10:19" localIdentifier="WHOConcepts" path="http://smart.who.int/immunizations/WHOConcepts">
         <annotation xsi:type="a:Annotation">
            <a:s r="210">
               <a:s>include </a:s>
               <a:s>
                  <a:s>WHOConcepts</a:s>
               </a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="212" locator="11:1-11:27" localIdentifier="WC" path="http://smart.who.int/immunizations/WHOCommon">
         <annotation xsi:type="a:Annotation">
            <a:s r="212">
               <a:s>include </a:s>
               <a:s>
                  <a:s>WHOCommon</a:s>
               </a:s>
               <a:s> called WC</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="214" locator="12:1-12:29" localIdentifier="WE" path="http://smart.who.int/immunizations/WHOElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="214">
               <a:s>include </a:s>
               <a:s>
                  <a:s>WHOElements</a:s>
               </a:s>
               <a:s> called WE</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="216" locator="14:1-14:32" localIdentifier="Common" path="http://smart.who.int/immunizations/IMMZCommon">
         <annotation xsi:type="a:Annotation">
            <a:s r="216">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZCommon</a:s>
               </a:s>
               <a:s> called Common</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="218" locator="15:1-15:36" localIdentifier="Concepts" path="http://smart.who.int/immunizations/IMMZConcepts">
         <annotation xsi:type="a:Annotation">
            <a:s r="218">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZConcepts</a:s>
               </a:s>
               <a:s> called Concepts</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="220" locator="16:1-16:46" localIdentifier="Encounter" path="http://smart.who.int/immunizations/IMMZEncounterElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="220">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZEncounterElements</a:s>
               </a:s>
               <a:s> called Encounter</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="222" locator="18:1-18:62" localIdentifier="YellowfeverElements" path="http://smart.who.int/immunizations/IMMZD2DTYellowfeverElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="222">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZD2DTYellowfeverElements</a:s>
               </a:s>
               <a:s> called YellowfeverElements</a:s>
            </a:s>
         </annotation>
      </def>
   </includes>
   <parameters>
      <def localId="224" locator="20:1-20:36" name="Today" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="224">
               <a:s>parameter Today </a:s>
               <a:s r="228">
                  <a:s>Date</a:s>
               </a:s>
               <a:s> default </a:s>
               <a:s r="227">
                  <a:s>Today()</a:s>
               </a:s>
            </a:s>
         </annotation>
         <default localId="227" locator="20:30-20:36" xsi:type="Today"/>
         <parameterTypeSpecifier localId="228" locator="20:17-20:20" name="t:Date" xsi:type="NamedTypeSpecifier"/>
      </def>
      <def localId="230" locator="21:1-21:28" name="EncounterId" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="230">
               <a:s>parameter EncounterId </a:s>
               <a:s r="231">
                  <a:s>String</a:s>
               </a:s>
            </a:s>
         </annotation>
         <parameterTypeSpecifier localId="231" locator="21:23-21:28" name="t:String" xsi:type="NamedTypeSpecifier"/>
      </def>
   </parameters>
   <contexts>
      <def localId="236" locator="23:1-23:15" name="Patient"/>
   </contexts>
   <statements>
      <def localId="234" locator="23:1-23:15" name="Patient" context="Patient">
         <expression localId="235" xsi:type="SingletonFrom">
            <operand localId="233" locator="23:1-23:15" dataType="fhir:Patient" templateId="http://hl7.org/fhir/StructureDefinition/Patient" xsi:type="Retrieve"/>
         </expression>
      </def>
      <def localId="239" locator="28:1-31:53" name="Yellow fever Doses Administered to Patient" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="internal" value="Yellow fever containing Doses Administered to Patient"/>
            <a:s r="239">
               <a:s>/*
@internal: Yellow fever containing Doses Administered to Patient
*/
define &quot;Yellow fever Doses Administered to Patient&quot;:
  </a:s>
               <a:s r="251">
                  <a:s>
                     <a:s r="240">
                        <a:s r="242">
                           <a:s>
                              <a:s>Encounter.&quot;Doses Administered to Patient&quot;</a:s>
                           </a:s>
                        </a:s>
                        <a:s> I</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
  </a:s>
                  <a:s r="248">
                     <a:s>where
    </a:s>
                     <a:s r="248">
                        <a:s r="245">
                           <a:s r="244">
                              <a:s>I</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="245">
                              <a:s>vaccineCode</a:s>
                           </a:s>
                        </a:s>
                        <a:s> in </a:s>
                        <a:s r="247">
                           <a:s r="246">
                              <a:s>Concepts</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="247">
                              <a:s>&quot;Yellow fever vaccines&quot;</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="251" locator="29:3-31:53" xsi:type="Query">
            <source localId="240" locator="29:3-29:45" alias="I">
               <expression localId="242" locator="29:3-29:43" name="Doses Administered to Patient" libraryName="Encounter" xsi:type="ExpressionRef"/>
            </source>
            <where localId="248" locator="30:3-31:53" xsi:type="InValueSet">
               <signature localId="250" name="t:Concept" xsi:type="NamedTypeSpecifier"/>
               <code localId="249" name="ToConcept" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                  <operand localId="245" locator="31:5-31:17" path="vaccineCode" scope="I" xsi:type="Property"/>
               </code>
               <valueset localId="247" locator="31:22-31:53" name="Yellow fever vaccines" libraryName="Concepts" preserve="true"/>
            </where>
         </expression>
      </def>
      <def localId="254" locator="36:1-37:62" name="Yellow fever Primary Series Doses Administered to Patient" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="internal" value="Yellow fever containing Doses Administered to Patient that are in the Primary series"/>
            <a:s r="254">
               <a:s>/*
@internal: Yellow fever containing Doses Administered to Patient that are in the Primary series
*/
define &quot;Yellow fever Primary Series Doses Administered to Patient&quot;:
  </a:s>
               <a:s r="256">
                  <a:s r="255">
                     <a:s>&quot;Yellow fever Doses Administered to Patient&quot;</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="256">
                     <a:s>seriesPrimary()</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="256" locator="37:3-37:62" name="seriesPrimary" libraryName="Common" xsi:type="FunctionRef">
            <operand localId="255" locator="37:3-37:46" name="Yellow fever Doses Administered to Patient" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="259" locator="42:1-43:68" name="Number of Yellow fever Primary Series Doses Administered" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="internal" value="Number of Yellow fever Primary Series doses"/>
            <a:s r="259">
               <a:s>/*
@internal: Number of Yellow fever Primary Series doses
*/
define &quot;Number of Yellow fever Primary Series Doses Administered&quot;:
  </a:s>
               <a:s r="263">
                  <a:s>Count(</a:s>
                  <a:s r="260">
                     <a:s>&quot;Yellow fever Primary Series Doses Administered to Patient&quot;</a:s>
                  </a:s>
                  <a:s>)</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="263" locator="43:3-43:68" xsi:type="Count">
            <source localId="260" locator="43:9-43:67" name="Yellow fever Primary Series Doses Administered to Patient" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="266" locator="51:1-52:64" name="No yellow fever primary series doses were administered" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="No yellow fever primary series doses were administered"/>
            <a:t name="pseudocode" value="&quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 0"/>
            <a:t name="code" value="No yellow fever primary series doses were administered-121"/>
            <a:t name="decision" value="IMMZ.D2.DT.Yellow fever"/>
            <a:s r="266">
               <a:s>/*
@input: No yellow fever primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 0
@code: No yellow fever primary series doses were administered-121
@decision: IMMZ.D2.DT.Yellow fever
*/
define &quot;No yellow fever primary series doses were administered&quot;:
  </a:s>
               <a:s r="267">
                  <a:s r="268">
                     <a:s>&quot;Number of Yellow fever Primary Series Doses Administered&quot;</a:s>
                  </a:s>
                  <a:s r="269"> = 0</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="267" locator="52:3-52:64" xsi:type="Equal">
            <signature localId="270" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <signature localId="271" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <operand localId="268" locator="52:3-52:60" name="Number of Yellow fever Primary Series Doses Administered" xsi:type="ExpressionRef"/>
            <operand localId="269" locator="52:64" valueType="t:Integer" value="0" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="274" locator="60:1-61:47" name="Client's age is less than 9 months" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="Client's age is less than 9 months"/>
            <a:t name="pseudocode" value="&quot;Date of birth&quot; &lt; 9 months"/>
            <a:t name="code" value="Client's age is less than 9 months-41"/>
            <a:t name="decision" value="IMMZ.D2.DT.Yellow fever"/>
            <a:s r="274">
               <a:s>/*
@input: Client's age is less than 9 months
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 9 months
@code: Client's age is less than 9 months-41
@decision: IMMZ.D2.DT.Yellow fever
*/
define &quot;Client's age is less than 9 months&quot;:
  </a:s>
               <a:s r="275">
                  <a:s r="277">
                     <a:s r="276">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="277">
                        <a:s>&quot;Current Patient Age In Months&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="278"> &lt; 9</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="275" locator="61:3-61:47" xsi:type="Less">
            <signature localId="279" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <signature localId="280" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <operand localId="277" locator="61:3-61:43" name="Current Patient Age In Months" libraryName="Encounter" xsi:type="ExpressionRef"/>
            <operand localId="278" locator="61:47" valueType="t:Integer" value="9" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="283" locator="69:1-70:48" name="Client's age is more than or equal to 9 months" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="Client's age is more than or equal to 9 months"/>
            <a:t name="pseudocode" value="&quot;Date of birth&quot; ≥ 9 months"/>
            <a:t name="code" value="Client's age is more than or equal to 9 months-41"/>
            <a:t name="decision" value="IMMZ.D2.DT.Yellow fever"/>
            <a:s r="283">
               <a:s>/*
@input: Client's age is more than or equal to 9 months
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 9 months
@code: Client's age is more than or equal to 9 months-41
@decision: IMMZ.D2.DT.Yellow fever
*/
define &quot;Client's age is more than or equal to 9 months&quot;:
  </a:s>
               <a:s r="284">
                  <a:s r="286">
                     <a:s r="285">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="286">
                        <a:s>&quot;Current Patient Age In Months&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="287"> >= 9</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="284" locator="70:3-70:48" xsi:type="GreaterOrEqual">
            <signature localId="288" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <signature localId="289" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <operand localId="286" locator="70:3-70:43" name="Current Patient Age In Months" libraryName="Encounter" xsi:type="ExpressionRef"/>
            <operand localId="287" locator="70:48" valueType="t:Integer" value="9" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="292" locator="78:1-79:63" name="Live vaccine was administered in the past 4 weeks" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="Live vaccine was administered in the past 4 weeks"/>
            <a:t name="pseudocode" value="&quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) &lt; 4 weeks"/>
            <a:t name="code" value="Live vaccine was administered in the past 4 weeks-92"/>
            <a:t name="decision" value="IMMZ.D2.DT.Yellow fever"/>
            <a:s r="292">
               <a:s>/*
@input: Live vaccine was administered in the past 4 weeks
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) &lt; 4 weeks
@code: Live vaccine was administered in the past 4 weeks-92
@decision: IMMZ.D2.DT.Yellow fever
*/
define &quot;Live vaccine was administered in the past 4 weeks&quot;:
  </a:s>
               <a:s r="294">
                  <a:s r="293">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="294">
                     <a:s>&quot;Live vaccine was administered in the last 4 weeks&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="294" locator="79:3-79:63" name="Live vaccine was administered in the last 4 weeks" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="297" locator="87:1-88:66" name="No live vaccine was administered in the past 4 weeks" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="No live vaccine was administered in the past 4 weeks"/>
            <a:t name="pseudocode" value="&quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) ≥ 4 weeks"/>
            <a:t name="code" value="No live vaccine was administered in the past 4 weeks-92"/>
            <a:t name="decision" value="IMMZ.D2.DT.Yellow fever"/>
            <a:s r="297">
               <a:s>/*
@input: No live vaccine was administered in the past 4 weeks
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) ≥ 4 weeks
@code: No live vaccine was administered in the past 4 weeks-92
@decision: IMMZ.D2.DT.Yellow fever
*/
define &quot;No live vaccine was administered in the past 4 weeks&quot;:
  </a:s>
               <a:s r="299">
                  <a:s r="298">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="299">
                     <a:s>&quot;No live vaccine was administered in the last 4 weeks&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="299" locator="88:3-88:66" name="No live vaccine was administered in the last 4 weeks" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="302" locator="96:1-97:64" name="One yellow fever primary series dose was administered" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="One yellow fever primary series dose was administered"/>
            <a:t name="pseudocode" value="&quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1"/>
            <a:t name="code" value="One yellow fever primary series dose was administered-121"/>
            <a:t name="decision" value="IMMZ.D2.DT.Yellow fever"/>
            <a:s r="302">
               <a:s>/*
@input: One yellow fever primary series dose was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
@code: One yellow fever primary series dose was administered-121
@decision: IMMZ.D2.DT.Yellow fever
*/
define &quot;One yellow fever primary series dose was administered&quot;:
  </a:s>
               <a:s r="303">
                  <a:s r="304">
                     <a:s>&quot;Number of Yellow fever Primary Series Doses Administered&quot;</a:s>
                  </a:s>
                  <a:s r="305"> = 1</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="303" locator="97:3-97:64" xsi:type="Equal">
            <signature localId="306" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <signature localId="307" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <operand localId="304" locator="97:3-97:60" name="Number of Yellow fever Primary Series Doses Administered" xsi:type="ExpressionRef"/>
            <operand localId="305" locator="97:64" valueType="t:Integer" value="1" xsi:type="Literal"/>
         </expression>
      </def>
   </statements>
</library>
