<?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="332">
         <a:s>/*
 * Library: IMMZD2DTJEInactivatedVeroCellDerivedVaccineLogic (IMMZ.D2.DT.JE.Inactivated Vero cell-derived vaccine)
 * Rule: Determine if the client is due for a Japanese encephalitis (JE) vaccination according to the national immunization schedule
 * Decision Table: Inactivated Vero cell-derived vaccination schedule (2-dose scheme)
JE vaccination should be integrated into national immunization schedules in all areas where JE is recognized as a public health priority
 * Trigger: IMMZ.D2 Determine required vaccination(s) if any
 */
library IMMZD2DTJEInactivatedVeroCellDerivedVaccineLogic</a:s>
      </a:s>
   </annotation>
   <identifier id="IMMZD2DTJEInactivatedVeroCellDerivedVaccineLogic" 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="10:1-10: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="11:1-11: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="13:1-13:52" localIdentifier="Encounter" path="http://smart.who.int/immunizations/IMMZD2DTJEEncounterElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="210">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZD2DTJEEncounterElements</a:s>
               </a:s>
               <a:s> called Encounter</a:s>
            </a:s>
         </annotation>
      </def>
   </includes>
   <parameters>
      <def localId="212" locator="15:1-15:36" name="Today" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="212">
               <a:s>parameter Today </a:s>
               <a:s r="216">
                  <a:s>Date</a:s>
               </a:s>
               <a:s> default </a:s>
               <a:s r="215">
                  <a:s>Today()</a:s>
               </a:s>
            </a:s>
         </annotation>
         <default localId="215" locator="15:30-15:36" xsi:type="Today"/>
         <parameterTypeSpecifier localId="216" locator="15:17-15:20" name="t:Date" xsi:type="NamedTypeSpecifier"/>
      </def>
   </parameters>
   <contexts>
      <def localId="221" locator="17:1-17:15" name="Patient"/>
   </contexts>
   <statements>
      <def localId="219" locator="17:1-17:15" name="Patient" context="Patient">
         <expression localId="220" xsi:type="SingletonFrom">
            <operand localId="218" locator="17:1-17:15" dataType="fhir:Patient" templateId="http://hl7.org/fhir/StructureDefinition/Patient" xsi:type="Retrieve"/>
         </expression>
      </def>
      <def localId="233" locator="38:1-39:48" name="Client is not due for JE vaccination Case 1" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for JE vaccination Case 1"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="233">
               <a:s>/*
@output: Client is not due for JE vaccination Case 1
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for JE vaccination Case 1&quot;:
  </a:s>
               <a:s r="235">
                  <a:s r="234">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="235">
                     <a:s>&quot;Client's age is less than 6 months&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="235" locator="39:3-39:48" name="Client's age is less than 6 months" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="239" locator="45:1-47:77" name="Client is not due for JE vaccination Case 2" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for JE vaccination Case 2"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="239">
               <a:s>/*
@output: Client is not due for JE vaccination Case 2
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for JE vaccination Case 2&quot;:
  </a:s>
               <a:s r="240">
                  <a:s r="242">
                     <a:s r="241">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="242">
                        <a:s>&quot;One JE primary series dose was administered&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    and </a:s>
                  <a:s r="244">
                     <a:s r="243">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="244">
                        <a:s>&quot;The latest JE dose was administered less than 4 weeks ago&quot;</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="240" locator="46:3-47:77" xsi:type="And">
            <operand localId="242" locator="46:3-46:57" name="One JE primary series dose was administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
            <operand localId="244" locator="47:9-47:77" name="The latest JE dose was administered less than 4 weeks ago" libraryName="Encounter" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="229" locator="53:1-55:52" name="Client is not due for JE vaccination" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for JE vaccination"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="229">
               <a:s>/*
@output: Client is not due for JE vaccination
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for JE vaccination&quot;:
  </a:s>
               <a:s r="230">
                  <a:s r="236">
                     <a:s>&quot;Client is not due for JE vaccination Case 1&quot;</a:s>
                  </a:s>
                  <a:s>
    or </a:s>
                  <a:s r="245">
                     <a:s>&quot;Client is not due for JE vaccination Case 2&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="230" locator="54:3-55:52" xsi:type="Or">
            <operand localId="236" locator="54:3-54:47" name="Client is not due for JE vaccination Case 1" xsi:type="ExpressionRef"/>
            <operand localId="245" locator="55:8-55:52" name="Client is not due for JE vaccination Case 2" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="249" locator="64:1-71:5" name="Client is not due for JE vaccination Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for JE vaccination Guidance"/>
            <a:s r="249">
               <a:s>/*
@output: Client is not due for JE vaccination Guidance
@guidance = Should not vaccinate client with first JE dose as client's age is under 6 months. 
Check for any vaccines due and inform the caregiver of when to come back for the first JE dose.
@guidance = Should not vaccinate client with second JE dose as the latest JE dose was administered less than 4 weeks ago. 
Check for any other vaccines due and inform the caregiver when to come back for the second JE dose.
*/
define &quot;Client is not due for JE vaccination Guidance&quot;:
  </a:s>
               <a:s r="250">
                  <a:s>case
    </a:s>
                  <a:s r="251">
                     <a:s>when </a:s>
                     <a:s r="252">
                        <a:s>&quot;Client is not due for JE vaccination Case 1&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="253">
                        <a:s>'Should not vaccinate client with first JE dose as client\'s age is under 6 months. 
Check for any vaccines due and inform the caregiver of when to come back for the first JE dose.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="255">
                     <a:s>when </a:s>
                     <a:s r="256">
                        <a:s>&quot;Client is not due for JE vaccination Case 2&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="257">
                        <a:s>'Should not vaccinate client with second JE dose as the latest JE dose was administered less than 4 weeks ago. 
Check for any other vaccines due and inform the caregiver when to come back for the second JE dose.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    else </a:s>
                  <a:s r="259">
                     <a:s>''</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="250" locator="65:3-71:5" xsi:type="Case">
            <caseItem localId="251" locator="66:5-66:241">
               <when localId="252" locator="66:10-66:54" name="Client is not due for JE vaccination Case 1" xsi:type="ExpressionRef"/>
               <then localId="253" locator="66:61-66:241" valueType="t:String" value="Should not vaccinate client with first JE dose as client's age is under 6 months. &#xa;Check for any vaccines due and inform the caregiver of when to come back for the first JE dose." xsi:type="Literal"/>
            </caseItem>
            <caseItem localId="255" locator="68:5-68:272">
               <when localId="256" locator="68:10-68:54" name="Client is not due for JE vaccination Case 2" xsi:type="ExpressionRef"/>
               <then localId="257" locator="68:61-68:272" valueType="t:String" value="Should not vaccinate client with second JE dose as the latest JE dose was administered less than 4 weeks ago. &#xa;Check for any other vaccines due and inform the caregiver when to come back for the second JE dose." xsi:type="Literal"/>
            </caseItem>
            <else localId="259" locator="70:10-70:11" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="269" locator="77:1-79:66" name="Client is due for JE vaccination Case 1" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is due for JE vaccination Case 1"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Due&quot;"/>
            <a:s r="269">
               <a:s>/*
@output: Client is due for JE vaccination Case 1
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Due&quot;
*/
define &quot;Client is due for JE vaccination Case 1&quot;:
  </a:s>
               <a:s r="270">
                  <a:s r="272">
                     <a:s r="271">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="272">
                        <a:s>&quot;No JE primary series doses were administered&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    and </a:s>
                  <a:s r="274">
                     <a:s r="273">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="274">
                        <a:s>&quot;Client's age is more than or equal to 6 months&quot;</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="270" locator="78:3-79:66" xsi:type="And">
            <operand localId="272" locator="78:3-78:58" name="No JE primary series doses were administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
            <operand localId="274" locator="79:9-79:66" name="Client's age is more than or equal to 6 months" libraryName="Encounter" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="278" locator="85:1-87:77" name="Client is due for JE vaccination Case 2" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is due for JE vaccination Case 2"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Due&quot;"/>
            <a:s r="278">
               <a:s>/*
@output: Client is due for JE vaccination Case 2
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Due&quot;
*/
define &quot;Client is due for JE vaccination Case 2&quot;:
  </a:s>
               <a:s r="279">
                  <a:s r="281">
                     <a:s r="280">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="281">
                        <a:s>&quot;One JE primary series dose was administered&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    and </a:s>
                  <a:s r="283">
                     <a:s r="282">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="283">
                        <a:s>&quot;The latest JE dose was administered more than 4 weeks ago&quot;</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="279" locator="86:3-87:77" xsi:type="And">
            <operand localId="281" locator="86:3-86:57" name="One JE primary series dose was administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
            <operand localId="283" locator="87:9-87:77" name="The latest JE dose was administered more than 4 weeks ago" libraryName="Encounter" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="265" locator="93:1-95:48" name="Client is due for JE vaccination" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is due for JE vaccination"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Due&quot;"/>
            <a:s r="265">
               <a:s>/*
@output: Client is due for JE vaccination
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Due&quot;
*/
define &quot;Client is due for JE vaccination&quot;:
  </a:s>
               <a:s r="266">
                  <a:s r="275">
                     <a:s>&quot;Client is due for JE vaccination Case 1&quot;</a:s>
                  </a:s>
                  <a:s>
    or </a:s>
                  <a:s r="284">
                     <a:s>&quot;Client is due for JE vaccination Case 2&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="266" locator="94:3-95:48" xsi:type="Or">
            <operand localId="275" locator="94:3-94:43" name="Client is due for JE vaccination Case 1" xsi:type="ExpressionRef"/>
            <operand localId="284" locator="95:8-95:48" name="Client is due for JE vaccination Case 2" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="288" locator="104:1-111:5" name="Client is due for JE vaccination Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is due for JE vaccination Guidance"/>
            <a:s r="288">
               <a:s>/*
@output: Client is due for JE vaccination Guidance
@guidance = Should vaccinate client with first JE dose as no JE doses were administered and client is within the appropriate age range. 
Check for contraindications.
@guidance = Should vaccinate client with second JE dose as the latest JE dose was administered more than 4 weeks ago.
Check for contraindications.
*/
define &quot;Client is due for JE vaccination Guidance&quot;:
  </a:s>
               <a:s r="289">
                  <a:s>case
    </a:s>
                  <a:s r="290">
                     <a:s>when </a:s>
                     <a:s r="291">
                        <a:s>&quot;Client is due for JE vaccination Case 1&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="292">
                        <a:s>'Should vaccinate client with first JE dose as no JE doses were administered and client is within the appropriate age range. 
Check for contraindications.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="294">
                     <a:s>when </a:s>
                     <a:s r="295">
                        <a:s>&quot;Client is due for JE vaccination Case 2&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="296">
                        <a:s>'Should vaccinate client with second JE dose as the latest JE dose was administered more than 4 weeks ago.
Check for contraindications.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    else </a:s>
                  <a:s r="298">
                     <a:s>''</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="289" locator="105:3-111:5" xsi:type="Case">
            <caseItem localId="290" locator="106:5-106:211">
               <when localId="291" locator="106:10-106:50" name="Client is due for JE vaccination Case 1" xsi:type="ExpressionRef"/>
               <then localId="292" locator="106:57-106:211" valueType="t:String" value="Should vaccinate client with first JE dose as no JE doses were administered and client is within the appropriate age range. &#xa;Check for contraindications." xsi:type="Literal"/>
            </caseItem>
            <caseItem localId="294" locator="108:5-108:192">
               <when localId="295" locator="108:10-108:50" name="Client is due for JE vaccination Case 2" xsi:type="ExpressionRef"/>
               <then localId="296" locator="108:57-108:192" valueType="t:String" value="Should vaccinate client with second JE dose as the latest JE dose was administered more than 4 weeks ago.&#xa;Check for contraindications." xsi:type="Literal"/>
            </caseItem>
            <else localId="298" locator="110:10-110:11" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="304" locator="118:1-119:59" name="JE immunization schedule is complete" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="JE immunization schedule is complete"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Complete&quot;"/>
            <a:s r="304">
               <a:s>/*
@output: JE immunization schedule is complete
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Complete&quot;
&quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;JE vaccines&quot;)
*/
define &quot;JE immunization schedule is complete&quot;:
  </a:s>
               <a:s r="306">
                  <a:s r="305">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="306">
                     <a:s>&quot;Two JE primary series doses were administered&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="306" locator="119:3-119:59" name="Two JE primary series doses were administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="310" locator="126:1-127:123" name="JE immunization schedule is complete Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="JE immunization schedule is complete Guidance"/>
            <a:t name="guidance" value="JE immunization schedule is complete. Two JE primary series doses were administered. &#xa;Check for any other vaccines due."/>
            <a:s r="310">
               <a:s>/*
@output: JE immunization schedule is complete Guidance
@guidance: JE immunization schedule is complete. Two JE primary series doses were administered. 
Check for any other vaccines due.
*/
define &quot;JE immunization schedule is complete Guidance&quot;:
  </a:s>
               <a:s r="311">
                  <a:s>'JE immunization schedule is complete. Two JE primary series doses were administered. 
Check for any other vaccines due.'</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="311" locator="127:3-127:123" valueType="t:String" value="JE immunization schedule is complete. Two JE primary series doses were administered. &#xa;Check for any other vaccines due." xsi:type="Literal"/>
      </def>
      <def localId="224" locator="23:1-29:5" name="Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Guidance"/>
            <a:s r="224">
               <a:s>/*
@dynamicValue: Guidance
*/
define &quot;Guidance&quot;:
  </a:s>
               <a:s r="225">
                  <a:s>case 
    </a:s>
                  <a:s r="226">
                     <a:s>when </a:s>
                     <a:s r="246">
                        <a:s>&quot;Client is not due for JE vaccination&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="261">
                        <a:s>&quot;Client is not due for JE vaccination Guidance&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="262">
                     <a:s>when </a:s>
                     <a:s r="285">
                        <a:s>&quot;Client is due for JE vaccination&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="300">
                        <a:s>&quot;Client is due for JE vaccination Guidance&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="301">
                     <a:s>when </a:s>
                     <a:s r="307">
                        <a:s>&quot;JE immunization schedule is complete&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="313">
                        <a:s>&quot;JE immunization schedule is complete Guidance&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s> 
    else </a:s>
                  <a:s r="314">
                     <a:s>''</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="225" locator="24:3-29:5" xsi:type="Case">
            <caseItem localId="226" locator="25:5-25:100">
               <when localId="246" locator="25:10-25:47" name="Client is not due for JE vaccination" xsi:type="ExpressionRef"/>
               <then localId="261" locator="25:54-25:100" name="Client is not due for JE vaccination Guidance" xsi:type="ExpressionRef"/>
            </caseItem>
            <caseItem localId="262" locator="26:5-26:92">
               <when localId="285" locator="26:10-26:43" name="Client is due for JE vaccination" xsi:type="ExpressionRef"/>
               <then localId="300" locator="26:50-26:92" name="Client is due for JE vaccination Guidance" xsi:type="ExpressionRef"/>
            </caseItem>
            <caseItem localId="301" locator="27:5-27:100">
               <when localId="307" locator="27:10-27:47" name="JE immunization schedule is complete" xsi:type="ExpressionRef"/>
               <then localId="313" locator="27:54-27:100" name="JE immunization schedule is complete Guidance" xsi:type="ExpressionRef"/>
            </caseItem>
            <else localId="314" locator="28:10-28:11" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="318" locator="31:1-32:45" name="Has Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="318">
               <a:s>define &quot;Has Guidance&quot;:
  </a:s>
               <a:s r="319">
                  <a:s r="322">
                     <a:s r="320">
                        <a:s>&quot;Guidance&quot;</a:s>
                     </a:s>
                     <a:s> is not null</a:s>
                  </a:s>
                  <a:s> and </a:s>
                  <a:s r="329">
                     <a:s r="324">
                        <a:s>&quot;Guidance&quot;</a:s>
                     </a:s>
                     <a:s> != </a:s>
                     <a:s r="325">
                        <a:s>''</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="319" locator="32:3-32:45" xsi:type="And">
            <operand localId="322" locator="32:3-32:24" xsi:type="Not">
               <operand localId="321" locator="32:3-32:24" xsi:type="IsNull">
                  <operand localId="320" locator="32:3-32:12" name="Guidance" xsi:type="ExpressionRef"/>
               </operand>
            </operand>
            <operand localId="329" locator="32:30-32:45" xsi:type="Not">
               <operand localId="323" locator="32:30-32:45" xsi:type="Equal">
                  <signature localId="327" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="328" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="324" locator="32:30-32:39" name="Guidance" xsi:type="ExpressionRef"/>
                  <operand localId="325" locator="32:44-32:45" valueType="t:String" value="" xsi:type="Literal"/>
               </operand>
            </operand>
         </expression>
      </def>
      <def localId="332" locator="134:1-147:5" name="Test Validation" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="test" value="Test expected results based on example patients"/>
            <a:s r="332">
               <a:s>/*
@test: Test expected results based on example patients
*/
define &quot;Test Validation&quot;:
  </a:s>
               <a:s r="333">
                  <a:s>case
    </a:s>
                  <a:s r="334">
                     <a:s>when </a:s>
                     <a:s r="335">
                        <a:s r="337">
                           <a:s r="336">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="337">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="338">
                           <a:s>'JE08.1'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="344">
                        <a:s r="345">
                           <a:s>&quot;Client is not due for JE vaccination Case 1&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="346">
                           <a:s r="347">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="348">
                              <a:s>'Should not vaccinate client with first JE dose as client\'s age is under 6 months. 
Check for any vaccines due and inform the caregiver of when to come back for the first JE dose.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="352">
                     <a:s>when </a:s>
                     <a:s r="353">
                        <a:s r="355">
                           <a:s r="354">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="355">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="356">
                           <a:s>'JE09.2'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="362">
                        <a:s r="363">
                           <a:s>&quot;Client is due for JE vaccination Case 1&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="364">
                           <a:s r="365">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="366">
                              <a:s>'Should vaccinate client with first JE dose as no JE doses were administered and client is within the appropriate age range. 
Check for contraindications.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="370">
                     <a:s>when </a:s>
                     <a:s r="371">
                        <a:s r="373">
                           <a:s r="372">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="373">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="374">
                           <a:s>'JE10.2'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="380">
                        <a:s r="381">
                           <a:s>&quot;Client is not due for JE vaccination Case 2&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="382">
                           <a:s r="383">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="384">
                              <a:s>'Should not vaccinate client with second JE dose as the latest JE dose was administered less than 4 weeks ago. 
Check for any other vaccines due and inform the caregiver when to come back for the second JE dose.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="388">
                     <a:s>when </a:s>
                     <a:s r="389">
                        <a:s r="391">
                           <a:s r="390">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="391">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="392">
                           <a:s>'JE11.2'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="398">
                        <a:s r="399">
                           <a:s>&quot;Client is due for JE vaccination Case 2&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="400">
                           <a:s r="401">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="402">
                              <a:s>'Should vaccinate client with second JE dose as the latest JE dose was administered more than 4 weeks ago.
Check for contraindications.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="406">
                     <a:s>when </a:s>
                     <a:s r="407">
                        <a:s r="409">
                           <a:s r="408">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="409">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="410">
                           <a:s>'JE12.1'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="416">
                        <a:s r="417">
                           <a:s>&quot;JE immunization schedule is complete&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="418">
                           <a:s r="419">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="420">
                              <a:s>'JE immunization schedule is complete. Two JE primary series doses were administered. 
Check for any other vaccines due.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    else </a:s>
                  <a:s r="424">
                     <a:s>'No test case set'</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="333" locator="135:3-147:5" xsi:type="Case">
            <caseItem localId="334" locator="136:5-136:280">
               <when localId="335" locator="136:10-136:30" xsi:type="Equal">
                  <signature localId="342" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="343" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="340" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="341" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="337" locator="136:10-136:19" path="id" xsi:type="Property">
                        <source localId="336" locator="136:10-136:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="338" locator="136:23-136:30" valueType="t:String" value="JE08.1" xsi:type="Literal"/>
               </when>
               <then localId="426" xsi:type="As">
                  <operand localId="344" locator="136:37-136:280" xsi:type="And">
                     <operand localId="345" locator="136:37-136:81" name="Client is not due for JE vaccination Case 1" xsi:type="ExpressionRef"/>
                     <operand localId="346" locator="136:87-136:280" xsi:type="Equal">
                        <signature localId="350" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="351" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="347" locator="136:87-136:96" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="348" locator="136:100-136:280" valueType="t:String" value="Should not vaccinate client with first JE dose as client's age is under 6 months. &#xa;Check for any vaccines due and inform the caregiver of when to come back for the first JE dose." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="427" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="428" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="429" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="352" locator="138:5-138:250">
               <when localId="353" locator="138:10-138:30" xsi:type="Equal">
                  <signature localId="360" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="361" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="358" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="359" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="355" locator="138:10-138:19" path="id" xsi:type="Property">
                        <source localId="354" locator="138:10-138:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="356" locator="138:23-138:30" valueType="t:String" value="JE09.2" xsi:type="Literal"/>
               </when>
               <then localId="430" xsi:type="As">
                  <operand localId="362" locator="138:37-138:250" xsi:type="And">
                     <operand localId="363" locator="138:37-138:77" name="Client is due for JE vaccination Case 1" xsi:type="ExpressionRef"/>
                     <operand localId="364" locator="138:83-138:250" xsi:type="Equal">
                        <signature localId="368" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="369" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="365" locator="138:83-138:92" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="366" locator="138:96-138:250" valueType="t:String" value="Should vaccinate client with first JE dose as no JE doses were administered and client is within the appropriate age range. &#xa;Check for contraindications." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="431" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="432" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="433" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="370" locator="140:5-140:311">
               <when localId="371" locator="140:10-140:30" xsi:type="Equal">
                  <signature localId="378" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="379" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="376" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="377" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="373" locator="140:10-140:19" path="id" xsi:type="Property">
                        <source localId="372" locator="140:10-140:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="374" locator="140:23-140:30" valueType="t:String" value="JE10.2" xsi:type="Literal"/>
               </when>
               <then localId="434" xsi:type="As">
                  <operand localId="380" locator="140:37-140:311" xsi:type="And">
                     <operand localId="381" locator="140:37-140:81" name="Client is not due for JE vaccination Case 2" xsi:type="ExpressionRef"/>
                     <operand localId="382" locator="140:87-140:311" xsi:type="Equal">
                        <signature localId="386" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="387" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="383" locator="140:87-140:96" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="384" locator="140:100-140:311" valueType="t:String" value="Should not vaccinate client with second JE dose as the latest JE dose was administered less than 4 weeks ago. &#xa;Check for any other vaccines due and inform the caregiver when to come back for the second JE dose." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="435" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="436" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="437" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="388" locator="142:5-142:231">
               <when localId="389" locator="142:10-142:30" xsi:type="Equal">
                  <signature localId="396" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="397" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="394" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="395" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="391" locator="142:10-142:19" path="id" xsi:type="Property">
                        <source localId="390" locator="142:10-142:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="392" locator="142:23-142:30" valueType="t:String" value="JE11.2" xsi:type="Literal"/>
               </when>
               <then localId="438" xsi:type="As">
                  <operand localId="398" locator="142:37-142:231" xsi:type="And">
                     <operand localId="399" locator="142:37-142:77" name="Client is due for JE vaccination Case 2" xsi:type="ExpressionRef"/>
                     <operand localId="400" locator="142:83-142:231" xsi:type="Equal">
                        <signature localId="404" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="405" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="401" locator="142:83-142:92" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="402" locator="142:96-142:231" valueType="t:String" value="Should vaccinate client with second JE dose as the latest JE dose was administered more than 4 weeks ago.&#xa;Check for contraindications." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="439" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="440" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="441" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="406" locator="144:5-144:213">
               <when localId="407" locator="144:10-144:30" xsi:type="Equal">
                  <signature localId="414" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="415" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="412" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="413" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="409" locator="144:10-144:19" path="id" xsi:type="Property">
                        <source localId="408" locator="144:10-144:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="410" locator="144:23-144:30" valueType="t:String" value="JE12.1" xsi:type="Literal"/>
               </when>
               <then localId="442" xsi:type="As">
                  <operand localId="416" locator="144:37-144:213" xsi:type="And">
                     <operand localId="417" locator="144:37-144:74" name="JE immunization schedule is complete" xsi:type="ExpressionRef"/>
                     <operand localId="418" locator="144:80-144:213" xsi:type="Equal">
                        <signature localId="422" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="423" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="419" locator="144:80-144:89" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="420" locator="144:93-144:213" valueType="t:String" value="JE immunization schedule is complete. Two JE primary series doses were administered. &#xa;Check for any other vaccines due." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="443" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="444" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="445" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <else localId="446" xsi:type="As">
               <operand localId="424" locator="146:10-146:27" valueType="t:String" value="No test case set" xsi:type="Literal"/>
               <asTypeSpecifier localId="447" xsi:type="ChoiceTypeSpecifier">
                  <choice localId="448" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                  <choice localId="449" name="t:String" xsi:type="NamedTypeSpecifier"/>
               </asTypeSpecifier>
            </else>
         </expression>
      </def>
   </statements>
</library>
