<?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="293">
         <a:s>/*
  * Library: IMMZD5DTYellowfeverElements
  */
library IMMZD5DTYellowfeverElements</a:s>
      </a:s>
   </annotation>
   <identifier id="IMMZD5DTYellowfeverElements" 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:36" localIdentifier="Elements" path="http://smart.who.int/immunizations/IMMZElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="220">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZElements</a:s>
               </a:s>
               <a:s> called Elements</a:s>
            </a:s>
         </annotation>
      </def>
   </includes>
   <contexts>
      <def localId="225" locator="19:1-19:15" name="Patient"/>
   </contexts>
   <statements>
      <def localId="223" locator="19:1-19:15" name="Patient" context="Patient">
         <expression localId="224" xsi:type="SingletonFrom">
            <operand localId="222" locator="19:1-19:15" dataType="fhir:Patient" templateId="http://hl7.org/fhir/StructureDefinition/Patient" xsi:type="Retrieve"/>
         </expression>
      </def>
      <def localId="228" locator="24:1-26:59" name="Draft Medication Request for Yellow fever dose" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="internal" value="Draft Medication Request for Yellow fever dose"/>
            <a:s r="228">
               <a:s>/*
@internal: Draft Medication Request for Yellow fever dose
*/
define &quot;Draft Medication Request for Yellow fever dose&quot;:
  </a:s>
               <a:s r="241">
                  <a:s>
                     <a:s r="229">
                        <a:s r="231">
                           <a:s>
                              <a:s>Elements.&quot;Draft Medication Request for Patient&quot;</a:s>
                           </a:s>
                        </a:s>
                        <a:s> MR</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="237">
                     <a:s>where </a:s>
                     <a:s r="237">
                        <a:s r="234">
                           <a:s r="233">
                              <a:s>MR</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="234">
                              <a:s>medication</a:s>
                           </a:s>
                        </a:s>
                        <a:s> in </a:s>
                        <a:s r="236">
                           <a:s r="235">
                              <a:s>Concepts</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="236">
                              <a:s>&quot;Yellow fever vaccines&quot;</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="241" locator="25:3-26:59" xsi:type="Query">
            <source localId="229" locator="25:3-25:52" alias="MR">
               <expression localId="231" locator="25:3-25:49" name="Draft Medication Request for Patient" libraryName="Elements" xsi:type="ExpressionRef"/>
            </source>
            <where localId="237" locator="26:5-26:59" xsi:type="InValueSet">
               <signature localId="240" name="t:Concept" xsi:type="NamedTypeSpecifier"/>
               <code localId="239" name="ToConcept" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                  <operand localId="238" asType="fhir:CodeableConcept" xsi:type="As">
                     <operand localId="234" locator="26:11-26:23" path="medication" scope="MR" xsi:type="Property"/>
                  </operand>
               </code>
               <valueset localId="236" locator="26:28-26:59" name="Yellow fever vaccines" libraryName="Concepts" preserve="true"/>
            </where>
         </expression>
      </def>
      <def localId="244" locator="34:1-35:46" name="Client's age is less than 6 months" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="Client's age is less than 6 months"/>
            <a:t name="pseudocode" value="&quot;Date of birth&quot; &lt; 6 months"/>
            <a:t name="code" value="Client's age is less than 6 months-41"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="244">
               <a:s>/*
@input: Client's age is less than 6 months
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 6 months
@code: Client's age is less than 6 months-41
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;Client's age is less than 6 months&quot;:
  </a:s>
               <a:s r="245">
                  <a:s r="247">
                     <a:s r="246">
                        <a:s>Elements</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="247">
                        <a:s>&quot;Current Patient Age In Months&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="248"> &lt; 6</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="245" locator="35:3-35:46" xsi:type="Less">
            <signature localId="249" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <signature localId="250" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <operand localId="247" locator="35:3-35:42" name="Current Patient Age In Months" libraryName="Elements" xsi:type="ExpressionRef"/>
            <operand localId="248" locator="35:46" valueType="t:Integer" value="6" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="253" locator="43:1-45:50" name="Client's age is 6–9 months" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="Client's age is 6–9 months"/>
            <a:t name="pseudocode" value="&quot;Date of birth&quot; &lt; 9 months"/>
            <a:t name="code" value="Client's age is 6–9 months-52"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="253">
               <a:s>/*
@input: Client's age is 6–9 months
@pseudocode: 6 months ≤ Today's date − &quot;Date of birth&quot; &lt; 9 months
@code: Client's age is 6–9 months-52
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;Client's age is 6–9 months&quot;:
  </a:s>
               <a:s r="254">
                  <a:s r="255">
                     <a:s r="256">6 &lt;= </a:s>
                     <a:s r="258">
                        <a:s r="257">
                           <a:s>Elements</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="258">
                           <a:s>&quot;Current Patient Age In Months&quot;</a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
  and </a:s>
                  <a:s r="261">
                     <a:s r="263">
                        <a:s r="262">
                           <a:s>Elements</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="263">
                           <a:s>&quot;Current Patient Age In Months&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s r="264"> &lt; 9</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="254" locator="44:3-45:50" xsi:type="And">
            <operand localId="255" locator="44:3-44:47" xsi:type="LessOrEqual">
               <signature localId="259" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
               <signature localId="260" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
               <operand localId="256" locator="44:3" valueType="t:Integer" value="6" xsi:type="Literal"/>
               <operand localId="258" locator="44:8-44:47" name="Current Patient Age In Months" libraryName="Elements" xsi:type="ExpressionRef"/>
            </operand>
            <operand localId="261" locator="45:7-45:50" xsi:type="Less">
               <signature localId="265" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
               <signature localId="266" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
               <operand localId="263" locator="45:7-45:46" name="Current Patient Age In Months" libraryName="Elements" xsi:type="ExpressionRef"/>
               <operand localId="264" locator="45:50" valueType="t:Integer" value="9" xsi:type="Literal"/>
            </operand>
         </expression>
      </def>
      <def localId="269" locator="53:1-54:47" name="Client's age is more than or equal to 60 years" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="Client's age is more than or equal to 60 years"/>
            <a:t name="pseudocode" value="&quot;Date of birth&quot; ≥ 60 years"/>
            <a:t name="code" value="Client's age is more than or equal to 60 years-41"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="269">
               <a:s>/*
@input: Client's age is more than or equal to 60 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 60 years
@code: Client's age is more than or equal to 60 years-41
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;Client's age is more than or equal to 60 years&quot;:
  </a:s>
               <a:s r="270">
                  <a:s r="272">
                     <a:s r="271">
                        <a:s>Elements</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="272">
                        <a:s>&quot;Current Patient Age In Years&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="273"> >= 60</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="270" locator="54:3-54:47" xsi:type="GreaterOrEqual">
            <signature localId="274" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <signature localId="275" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
            <operand localId="272" locator="54:3-54:41" name="Current Patient Age In Years" libraryName="Elements" xsi:type="ExpressionRef"/>
            <operand localId="273" locator="54:46-54:47" valueType="t:Integer" value="60" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="278" locator="62:1-63:64" name="The client has a history of severe allergic reactions" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="The client has a history of severe allergic reactions"/>
            <a:t name="pseudocode" value="&quot;Potential contraindications&quot; = &quot;Severe allergic reactions&quot;"/>
            <a:t name="code" value="The client has a history of severe allergic reactions-59"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="278">
               <a:s>/*
@input: The client has a history of severe allergic reactions
@pseudocode: &quot;Potential contraindications&quot; = &quot;Severe allergic reactions&quot;
@code: The client has a history of severe allergic reactions-59
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;The client has a history of severe allergic reactions&quot;:
  </a:s>
               <a:s r="280">
                  <a:s r="279">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="280">
                     <a:s>&quot;The client has history of severe allergic reactions&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="280" locator="63:3-63:64" name="The client has history of severe allergic reactions" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
      <def localId="283" locator="71:1-72:53" name="The client is severely immunocompromised" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="The client is severely immunocompromised"/>
            <a:t name="pseudocode" value="&quot;Potential contraindications&quot; = &quot;Severely immunocompromised&quot;"/>
            <a:t name="code" value="The client is severely immunocompromised-60"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="283">
               <a:s>/*
@input: The client is severely immunocompromised
@pseudocode: &quot;Potential contraindications&quot; = &quot;Severely immunocompromised&quot;
@code: The client is severely immunocompromised-60
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;The client is severely immunocompromised&quot;:
  </a:s>
               <a:s r="285">
                  <a:s r="284">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="285">
                     <a:s>&quot;The client is severely immunocompromised&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="285" locator="72:3-72:53" name="The client is severely immunocompromised" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
      <def localId="288" locator="80:1-81:35" name="The client is currently pregnant" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="The client is currently pregnant"/>
            <a:t name="pseudocode" value="&quot;Potential contraindications&quot; = &quot;Currently pregnant&quot;"/>
            <a:t name="code" value="The client is currently pregnant-52"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="288">
               <a:s>/*
@input: The client is currently pregnant
@pseudocode: &quot;Potential contraindications&quot; = &quot;Currently pregnant&quot;
@code: The client is currently pregnant-52
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;The client is currently pregnant&quot;:
  </a:s>
               <a:s r="290">
                  <a:s r="289">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="290">
                     <a:s>&quot;The client is pregnant&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="290" locator="81:3-81:35" name="The client is pregnant" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
      <def localId="293" locator="89:1-90:36" name="The client is lactating" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="input" value="The client is lactating"/>
            <a:t name="pseudocode" value="&quot;Potential contraindications&quot; = &quot;Breastfeeding&quot;"/>
            <a:t name="code" value="The client is lactating-47"/>
            <a:t name="decision" value="IMMZ.D5.DT.Yellow fever contraindications"/>
            <a:s r="293">
               <a:s>/*
@input: The client is lactating
@pseudocode: &quot;Potential contraindications&quot; = &quot;Breastfeeding&quot;
@code: The client is lactating-47
@decision: IMMZ.D5.DT.Yellow fever contraindications
*/
define &quot;The client is lactating&quot;:
  </a:s>
               <a:s r="295">
                  <a:s r="294">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="295">
                     <a:s>&quot;The client is lactating&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="295" locator="90:3-90:36" name="The client is lactating" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
   </statements>
</library>
