<?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="385">
         <a:s>/*
 * Library: IMMZD18STyphoidTy21aLogic (IMMZ.D18.S.Typhoid.Ty21a schedule)
 * Schedule Table: Live attenuated Ty21a vaccine, 3-dose schedule
 */
library IMMZD18STyphoidTy21aLogic</a:s>
      </a:s>
   </annotation>
   <identifier id="IMMZD18STyphoidTy21aLogic" 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:27" localIdentifier="WC" path="http://smart.who.int/immunizations/WHOCommon">
         <annotation xsi:type="a:Annotation">
            <a:s r="210">
               <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="212" locator="12:1-12:32" localIdentifier="Common" path="http://smart.who.int/immunizations/IMMZCommon">
         <annotation xsi:type="a:Annotation">
            <a:s r="212">
               <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="214" locator="13:1-13:36" localIdentifier="Concepts" path="http://smart.who.int/immunizations/IMMZConcepts">
         <annotation xsi:type="a:Annotation">
            <a:s r="214">
               <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="216" locator="15:1-15:39" localIdentifier="IE" path="http://smart.who.int/immunizations/IMMZEncounterElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="216">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZEncounterElements</a:s>
               </a:s>
               <a:s> called IE</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="218" locator="16:1-16:57" localIdentifier="Encounter" path="http://smart.who.int/immunizations/IMMZD2DTTyphoidEncounterElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="218">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZD2DTTyphoidEncounterElements</a:s>
               </a:s>
               <a:s> called Encounter</a:s>
            </a:s>
         </annotation>
      </def>
   </includes>
   <parameters>
      <def localId="220" locator="18:1-18:36" name="Today" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="220">
               <a:s>parameter Today </a:s>
               <a:s r="224">
                  <a:s>Date</a:s>
               </a:s>
               <a:s> default </a:s>
               <a:s r="223">
                  <a:s>Today()</a:s>
               </a:s>
            </a:s>
         </annotation>
         <default localId="223" locator="18:30-18:36" xsi:type="Today"/>
         <parameterTypeSpecifier localId="224" locator="18:17-18:20" name="t:Date" xsi:type="NamedTypeSpecifier"/>
      </def>
   </parameters>
   <contexts>
      <def localId="229" locator="21:1-21:15" name="Patient"/>
   </contexts>
   <statements>
      <def localId="227" locator="21:1-21:15" name="Patient" context="Patient">
         <expression localId="228" xsi:type="SingletonFrom">
            <operand localId="226" locator="21:1-21:15" dataType="fhir:Patient" templateId="http://hl7.org/fhir/StructureDefinition/Patient" xsi:type="Retrieve"/>
         </expression>
      </def>
      <def localId="239" locator="76:1-77:40" name="The primary series has been completed" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="complete" value="The primary series has been completed"/>
            <a:t name="pseudocode" value="&quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)"/>
            <a:s r="239">
               <a:s>/*
@complete: The primary series has been completed
@pseudocode: &quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)
*/
define &quot;The primary series has been completed&quot;:
  </a:s>
               <a:s r="241">
                  <a:s r="240">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="241">
                     <a:s>&quot;Primary series is complete&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="241" locator="77:3-77:40" name="Primary series is complete" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="232" locator="31:1-33:49" name="Typhoid Ty21a primary series" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Typhoid Ty21a primary series"/>
            <a:t name="description" value="Provision of the typhoid Ty21a, 3-dose oral primary series immunization"/>
            <a:t name="trigger" value="Child's birth"/>
            <a:t name="pseudo"/>
            <a:t name="triggerDate" value="&quot;Date of birth&quot;"/>
            <a:s r="232">
               <a:s>/*
@output: Typhoid Ty21a primary series
@description: Provision of the typhoid Ty21a, 3-dose oral primary series immunization
@trigger: Child's birth
@pseudo: 
@triggerDate: &quot;Date of birth&quot;
*/
define &quot;Typhoid Ty21a primary series&quot;:
  </a:s>
               <a:s r="233">
                  <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;No typhoid primary series doses were administered&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
  and </a:s>
                  <a:s r="236">
                     <a:s>not </a:s>
                     <a:s r="242">
                        <a:s>&quot;The primary series has been completed&quot;</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="233" locator="32:3-33:49" xsi:type="And">
            <operand localId="235" locator="32:3-32:63" name="No typhoid primary series doses were administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
            <operand localId="236" locator="33:7-33:49" xsi:type="Not">
               <operand localId="242" locator="33:11-33:49" name="The primary series has been completed" xsi:type="ExpressionRef"/>
            </operand>
         </expression>
      </def>
      <def localId="259" locator="51:1-53:11" name="Typhoid Ty21a primary series Due Date" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Typhoid Ty21a primary series Due Date"/>
            <a:t name="pseudocode" value="&quot;Date of birth&quot; + 6 years"/>
            <a:s r="259">
               <a:s>/*
@dynamicValue: Typhoid Ty21a primary series Due Date
@pseudocode: &quot;Date of birth&quot; + 6 years
*/
define &quot;Typhoid Ty21a primary series Due Date&quot;:
  </a:s>
               <a:s r="260">
                  <a:s>if </a:s>
                  <a:s r="261">
                     <a:s>&quot;Typhoid Ty21a primary series&quot;</a:s>
                  </a:s>
                  <a:s> then </a:s>
                  <a:s r="262">
                     <a:s r="264">
                        <a:s r="263">
                           <a:s>Patient</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="264">
                           <a:s>birthDate</a:s>
                        </a:s>
                     </a:s>
                     <a:s> + </a:s>
                     <a:s r="265">
                        <a:s>6 years</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="269">
  else null</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="260" locator="52:3-53:11" xsi:type="If">
            <condition localId="261" locator="52:6-52:35" name="Typhoid Ty21a primary series" xsi:type="ExpressionRef"/>
            <then localId="262" locator="52:42-52:68" xsi:type="Add">
               <signature localId="267" name="t:Date" xsi:type="NamedTypeSpecifier"/>
               <signature localId="268" name="t:Quantity" xsi:type="NamedTypeSpecifier"/>
               <operand localId="266" name="ToDate" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                  <operand localId="264" locator="52:42-52:58" path="birthDate" xsi:type="Property">
                     <source localId="263" locator="52:42-52:48" name="Patient" xsi:type="ExpressionRef"/>
                  </operand>
               </operand>
               <operand localId="265" locator="52:62-52:68" value="6" unit="years" xsi:type="Quantity"/>
            </then>
            <else localId="270" asType="t:Date" xsi:type="As">
               <operand localId="269" locator="53:8-53:11" xsi:type="Null"/>
            </else>
         </expression>
      </def>
      <def localId="245" locator="40:1-44:9" name="Typhoid Ty21a primary series Create" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Typhoid Ty21a primary series Create"/>
            <a:t name="create" value="Ty21a – 3-doses to be administered orally every second day from 6 years of age."/>
            <a:s r="245">
               <a:s>/*
@output: Typhoid Ty21a primary series Create
@create: Ty21a – 3-doses to be administered orally every second day from 6 years of age.
*/
define &quot;Typhoid Ty21a primary series Create&quot;:
  </a:s>
               <a:s r="246">
                  <a:s>if </a:s>
                  <a:s r="247">
                     <a:s>&quot;Typhoid Ty21a primary series&quot;</a:s>
                  </a:s>
                  <a:s>
  then </a:s>
                  <a:s r="279">
                     <a:s r="256">
                        <a:s r="250">
                           <a:s>'Ty21a – 3-doses to be administered orally every second day from 6 years of age.'</a:s>
                        </a:s>
                        <a:s> + </a:s>
                        <a:s r="252">
                           <a:s>'
Due Date: '</a:s>
                        </a:s>
                     </a:s>
                     <a:s> + </a:s>
                     <a:s r="275">
                        <a:s>ToString(</a:s>
                        <a:s r="271">
                           <a:s>&quot;Typhoid Ty21a primary series Due Date&quot;</a:s>
                        </a:s>
                        <a:s>)</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
  else </a:s>
                  <a:s r="280">
                     <a:s>''</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="246" locator="41:3-44:9" xsi:type="If">
            <condition localId="247" locator="41:6-41:35" name="Typhoid Ty21a primary series" xsi:type="ExpressionRef"/>
            <then localId="279" locator="42:8-43:63" xsi:type="Concatenate">
               <operand localId="256" locator="42:8-42:104" xsi:type="Concatenate">
                  <operand localId="250" locator="42:8-42:88" valueType="t:String" value="Ty21a – 3-doses to be administered orally every second day from 6 years of age." xsi:type="Literal"/>
                  <operand localId="252" locator="42:92-42:104" valueType="t:String" value="&#xa;Due Date: " xsi:type="Literal"/>
               </operand>
               <operand localId="275" locator="43:15-43:63" xsi:type="ToString">
                  <signature localId="276" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="271" locator="43:24-43:62" name="Typhoid Ty21a primary series Due Date" xsi:type="ExpressionRef"/>
               </operand>
            </then>
            <else localId="280" locator="44:8-44:9" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="284" locator="60:1-61:6" name="Typhoid Ty21a primary series Overdue" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Typhoid Ty21a primary series Overdue"/>
            <a:t name="pseudocode" value="To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated."/>
            <a:s r="284">
               <a:s r="285">/*
@dynamicValue: Typhoid Ty21a primary series Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;Typhoid Ty21a primary series Overdue&quot;:
  null</a:s>
            </a:s>
         </annotation>
         <expression localId="285" locator="61:3-61:6" xsi:type="Null"/>
      </def>
      <def localId="288" locator="68:1-69:6" name="Typhoid Ty21a primary series Expiration" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Typhoid Ty21a primary series Expiration"/>
            <a:t name="pseudocode" value="To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated."/>
            <a:s r="288">
               <a:s r="289">/*
@dynamicValue: Typhoid Ty21a primary series Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define &quot;Typhoid Ty21a primary series Expiration&quot;:
  null</a:s>
            </a:s>
         </annotation>
         <expression localId="289" locator="69:3-69:6" xsi:type="Null"/>
      </def>
      <def localId="292" locator="88:1-89:41" name="Typhoid booster dose(s) repeat 3-doses series" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Typhoid booster dose(s) repeat 3-doses series"/>
            <a:t name="description" value="Provision of the typhoid booster dose(s): revaccination"/>
            <a:t name="trigger" value="The primary series has been completed"/>
            <a:t name="pseudo" value="&quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)"/>
            <a:t name="triggerDate" value="&quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)"/>
            <a:s r="292">
               <a:s>/*
@output: Typhoid booster dose(s) repeat 3-doses series
@description: Provision of the typhoid booster dose(s): revaccination
@trigger: The primary series has been completed
@pseudo: &quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)
*/
define &quot;Typhoid booster dose(s) repeat 3-doses series&quot;:
  </a:s>
               <a:s r="293">
                  <a:s>&quot;The primary series has been completed&quot;</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="293" locator="89:3-89:41" name="The primary series has been completed" xsi:type="ExpressionRef"/>
      </def>
      <def localId="312" locator="108:1-110:11" name="Typhoid booster dose(s) repeat 3-doses series Due Date" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Typhoid booster dose(s) repeat 3-doses series Due Date"/>
            <a:t name="pseudocode" value="&quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) + 3 years"/>
            <a:s r="312">
               <a:s>/*
@dynamicValue: Typhoid booster dose(s) repeat 3-doses series Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) + 3 years
*/
define &quot;Typhoid booster dose(s) repeat 3-doses series Due Date&quot;:
  </a:s>
               <a:s r="313">
                  <a:s>if </a:s>
                  <a:s r="314">
                     <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series&quot;</a:s>
                  </a:s>
                  <a:s> then </a:s>
                  <a:s r="315">
                     <a:s r="317">
                        <a:s r="316">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="317">
                           <a:s>&quot;Date of Latest Typhoid Dose&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s> + </a:s>
                     <a:s r="318">
                        <a:s>3 years</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="321">
  else null</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="313" locator="109:3-110:11" xsi:type="If">
            <condition localId="314" locator="109:6-109:52" name="Typhoid booster dose(s) repeat 3-doses series" xsi:type="ExpressionRef"/>
            <then localId="315" locator="109:59-109:107" xsi:type="Add">
               <signature localId="319" name="t:Date" xsi:type="NamedTypeSpecifier"/>
               <signature localId="320" name="t:Quantity" xsi:type="NamedTypeSpecifier"/>
               <operand localId="317" locator="109:59-109:97" name="Date of Latest Typhoid Dose" libraryName="Encounter" xsi:type="ExpressionRef"/>
               <operand localId="318" locator="109:101-109:107" value="3" unit="years" xsi:type="Quantity"/>
            </then>
            <else localId="322" asType="t:Date" xsi:type="As">
               <operand localId="321" locator="110:8-110:11" xsi:type="Null"/>
            </else>
         </expression>
      </def>
      <def localId="339" locator="117:1-119:11" name="Typhoid booster dose(s) repeat 3-doses series Overdue" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Typhoid booster dose(s) repeat 3-doses series Overdue"/>
            <a:t name="pseudocode" value="&quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) + 7 years"/>
            <a:s r="339">
               <a:s>/*
@dynamicValue: Typhoid booster dose(s) repeat 3-doses series Overdue
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) + 7 years
*/
define &quot;Typhoid booster dose(s) repeat 3-doses series Overdue&quot;:
  </a:s>
               <a:s r="340">
                  <a:s>if </a:s>
                  <a:s r="341">
                     <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series&quot;</a:s>
                  </a:s>
                  <a:s> then </a:s>
                  <a:s r="342">
                     <a:s r="344">
                        <a:s r="343">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="344">
                           <a:s>&quot;Date of Latest Typhoid Dose&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s> + </a:s>
                     <a:s r="345">
                        <a:s>7 years</a:s>
                     </a:s>
                  </a:s>
                  <a:s r="348">
  else null</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="340" locator="118:3-119:11" xsi:type="If">
            <condition localId="341" locator="118:6-118:52" name="Typhoid booster dose(s) repeat 3-doses series" xsi:type="ExpressionRef"/>
            <then localId="342" locator="118:59-118:107" xsi:type="Add">
               <signature localId="346" name="t:Date" xsi:type="NamedTypeSpecifier"/>
               <signature localId="347" name="t:Quantity" xsi:type="NamedTypeSpecifier"/>
               <operand localId="344" locator="118:59-118:97" name="Date of Latest Typhoid Dose" libraryName="Encounter" xsi:type="ExpressionRef"/>
               <operand localId="345" locator="118:101-118:107" value="7" unit="years" xsi:type="Quantity"/>
            </then>
            <else localId="349" asType="t:Date" xsi:type="As">
               <operand localId="348" locator="119:8-119:11" xsi:type="Null"/>
            </else>
         </expression>
      </def>
      <def localId="296" locator="96:1-101:9" name="Typhoid booster dose(s) repeat 3-doses series Create" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Typhoid booster dose(s) repeat 3-doses series Create"/>
            <a:t name="create" value="Revaccination (3-doses) is recommended every 3–7 years for Ty21a."/>
            <a:s r="296">
               <a:s>/*
@output: Typhoid booster dose(s) repeat 3-doses series Create
@create: Revaccination (3-doses) is recommended every 3–7 years for Ty21a.
*/
define &quot;Typhoid booster dose(s) repeat 3-doses series Create&quot;:
  </a:s>
               <a:s r="297">
                  <a:s>if </a:s>
                  <a:s r="298">
                     <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series&quot;</a:s>
                  </a:s>
                  <a:s>
  then </a:s>
                  <a:s r="358">
                     <a:s r="336">
                        <a:s r="331">
                           <a:s r="309">
                              <a:s r="303">
                                 <a:s>'Revaccination (3-doses) is recommended every 3–7 years for Ty21a.'</a:s>
                              </a:s>
                              <a:s> + </a:s>
                              <a:s r="305">
                                 <a:s>'
Due Date: '</a:s>
                              </a:s>
                           </a:s>
                           <a:s> + </a:s>
                           <a:s r="327">
                              <a:s>ToString(</a:s>
                              <a:s r="323">
                                 <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series Due Date&quot;</a:s>
                              </a:s>
                              <a:s>)</a:s>
                           </a:s>
                        </a:s>
                        <a:s> + </a:s>
                        <a:s r="332">
                           <a:s>'
Overdue: '</a:s>
                        </a:s>
                     </a:s>
                     <a:s> + </a:s>
                     <a:s r="354">
                        <a:s>ToString(</a:s>
                        <a:s r="350">
                           <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series Overdue&quot;</a:s>
                        </a:s>
                        <a:s>)</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
  else </a:s>
                  <a:s r="359">
                     <a:s>''</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="297" locator="97:3-101:9" xsi:type="If">
            <condition localId="298" locator="97:6-97:52" name="Typhoid booster dose(s) repeat 3-doses series" xsi:type="ExpressionRef"/>
            <then localId="358" locator="98:8-100:78" xsi:type="Concatenate">
               <operand localId="336" locator="98:8-99:95" xsi:type="Concatenate">
                  <operand localId="331" locator="98:8-99:80" xsi:type="Concatenate">
                     <operand localId="309" locator="98:8-98:90" xsi:type="Concatenate">
                        <operand localId="303" locator="98:8-98:74" valueType="t:String" value="Revaccination (3-doses) is recommended every 3–7 years for Ty21a." xsi:type="Literal"/>
                        <operand localId="305" locator="98:78-98:90" valueType="t:String" value="&#xa;Due Date: " xsi:type="Literal"/>
                     </operand>
                     <operand localId="327" locator="99:15-99:80" xsi:type="ToString">
                        <signature localId="328" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="323" locator="99:24-99:79" name="Typhoid booster dose(s) repeat 3-doses series Due Date" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="332" locator="99:84-99:95" valueType="t:String" value="&#xa;Overdue: " xsi:type="Literal"/>
               </operand>
               <operand localId="354" locator="100:14-100:78" xsi:type="ToString">
                  <signature localId="355" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="350" locator="100:23-100:77" name="Typhoid booster dose(s) repeat 3-doses series Overdue" xsi:type="ExpressionRef"/>
               </operand>
            </then>
            <else localId="359" locator="101:8-101:9" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="363" locator="126:1-127:6" name="Typhoid booster dose(s) repeat 3-doses series Expiration" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="dynamicValue" value="Typhoid booster dose(s) repeat 3-doses series Expiration"/>
            <a:t name="pseudocode" value="To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated."/>
            <a:s r="363">
               <a:s r="364">/*
@dynamicValue: Typhoid booster dose(s) repeat 3-doses series Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define &quot;Typhoid booster dose(s) repeat 3-doses series Expiration&quot;:
  null</a:s>
            </a:s>
         </annotation>
         <expression localId="364" locator="127:3-127:6" xsi:type="Null"/>
      </def>
      <def localId="367" locator="134:1-136:85" name="The booster series has been completed" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="complete" value="The booster series has been completed"/>
            <a:t name="pseudocode" value="&quot;Completed the booster series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)"/>
            <a:s r="367">
               <a:s>/*
@complete: The booster series has been completed
@pseudocode: &quot;Completed the booster series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;)
*/
define &quot;The booster series has been completed&quot;:
  </a:s>
               <a:s r="368">
                  <a:s r="372">
                     <a:s r="370">
                        <a:s r="369">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="370">
                           <a:s>&quot;Date of Latest Typhoid Dose&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s> is not null</a:s>
                  </a:s>
                  <a:s>
  and </a:s>
                  <a:s r="373">
                     <a:s r="374">
                        <a:s>duration in years between </a:s>
                        <a:s r="376">
                           <a:s r="375">
                              <a:s>Encounter</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="376">
                              <a:s>&quot;Date of Latest Typhoid Dose&quot;</a:s>
                           </a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="377">
                           <a:s>Today</a:s>
                        </a:s>
                     </a:s>
                     <a:s r="380"> &lt; 3</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="368" locator="135:3-136:85" xsi:type="And">
            <operand localId="372" locator="135:3-135:53" xsi:type="Not">
               <operand localId="371" locator="135:3-135:53" xsi:type="IsNull">
                  <operand localId="370" locator="135:3-135:41" name="Date of Latest Typhoid Dose" libraryName="Encounter" xsi:type="ExpressionRef"/>
               </operand>
            </operand>
            <operand localId="373" locator="136:7-136:85" xsi:type="Less">
               <signature localId="381" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
               <signature localId="382" name="t:Integer" xsi:type="NamedTypeSpecifier"/>
               <operand localId="374" locator="136:7-136:81" precision="Year" xsi:type="DurationBetween">
                  <signature localId="378" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="379" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="376" locator="136:33-136:71" name="Date of Latest Typhoid Dose" libraryName="Encounter" xsi:type="ExpressionRef"/>
                  <operand localId="377" locator="136:77-136:81" name="Today" xsi:type="ParameterRef"/>
               </operand>
               <operand localId="380" locator="136:85" valueType="t:Integer" value="3" xsi:type="Literal"/>
            </operand>
         </expression>
      </def>
      <def localId="385" locator="143:1-152: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="385">
               <a:s>/*
@test: Test expected results based on example patients
*/
define &quot;Test Validation&quot;:
  </a:s>
               <a:s r="386">
                  <a:s>case
    </a:s>
                  <a:s r="387">
                     <a:s>when </a:s>
                     <a:s r="388">
                        <a:s r="390">
                           <a:s r="389">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="390">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="391">
                           <a:s>'Typhoid30.1'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="397">
                        <a:s>&quot;Typhoid Ty21a primary series&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="398">
                     <a:s>when </a:s>
                     <a:s r="399">
                        <a:s r="401">
                           <a:s r="400">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="401">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="402">
                           <a:s>'Typhoid31.3'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="408">
                        <a:s>&quot;Typhoid Ty21a primary series&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="409">
                     <a:s>when </a:s>
                     <a:s r="410">
                        <a:s r="412">
                           <a:s r="411">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="412">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="413">
                           <a:s>'Typhoid32.3'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="419">
                        <a:s>&quot;Typhoid Ty21a primary series&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="420">
                     <a:s>when </a:s>
                     <a:s r="421">
                        <a:s r="423">
                           <a:s r="422">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="423">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="424">
                           <a:s>'Typhoid33.3'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="430">
                        <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="431">
                     <a:s>when </a:s>
                     <a:s r="432">
                        <a:s r="434">
                           <a:s r="433">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="434">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="435">
                           <a:s>'Typhoid34.4'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="441">
                        <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="442">
                     <a:s>when </a:s>
                     <a:s r="443">
                        <a:s r="445">
                           <a:s r="444">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="445">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="446">
                           <a:s>'Typhoid35.4'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="452">
                        <a:s>&quot;Typhoid booster dose(s) repeat 3-doses series&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    else </a:s>
                  <a:s r="453">
                     <a:s>'No test case set'</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="386" locator="144:3-152:5" xsi:type="Case">
            <caseItem localId="387" locator="145:5-145:71">
               <when localId="388" locator="145:10-145:35" xsi:type="Equal">
                  <signature localId="395" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="396" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="393" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="394" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="390" locator="145:10-145:19" path="id" xsi:type="Property">
                        <source localId="389" locator="145:10-145:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="391" locator="145:23-145:35" valueType="t:String" value="Typhoid30.1" xsi:type="Literal"/>
               </when>
               <then localId="455" xsi:type="As">
                  <operand localId="397" locator="145:42-145:71" name="Typhoid Ty21a primary series" xsi:type="ExpressionRef"/>
                  <asTypeSpecifier localId="456" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="457" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="458" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="398" locator="146:5-146:71">
               <when localId="399" locator="146:10-146:35" xsi:type="Equal">
                  <signature localId="406" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="407" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="404" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="405" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="401" locator="146:10-146:19" path="id" xsi:type="Property">
                        <source localId="400" locator="146:10-146:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="402" locator="146:23-146:35" valueType="t:String" value="Typhoid31.3" xsi:type="Literal"/>
               </when>
               <then localId="459" xsi:type="As">
                  <operand localId="408" locator="146:42-146:71" name="Typhoid Ty21a primary series" xsi:type="ExpressionRef"/>
                  <asTypeSpecifier localId="460" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="461" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="462" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="409" locator="147:5-147:71">
               <when localId="410" locator="147:10-147:35" xsi:type="Equal">
                  <signature localId="417" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="418" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="415" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="416" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="412" locator="147:10-147:19" path="id" xsi:type="Property">
                        <source localId="411" locator="147:10-147:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="413" locator="147:23-147:35" valueType="t:String" value="Typhoid32.3" xsi:type="Literal"/>
               </when>
               <then localId="463" xsi:type="As">
                  <operand localId="419" locator="147:42-147:71" name="Typhoid Ty21a primary series" xsi:type="ExpressionRef"/>
                  <asTypeSpecifier localId="464" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="465" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="466" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="420" locator="148:5-148:88">
               <when localId="421" locator="148:10-148:35" xsi:type="Equal">
                  <signature localId="428" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="429" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="426" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="427" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="423" locator="148:10-148:19" path="id" xsi:type="Property">
                        <source localId="422" locator="148:10-148:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="424" locator="148:23-148:35" valueType="t:String" value="Typhoid33.3" xsi:type="Literal"/>
               </when>
               <then localId="467" xsi:type="As">
                  <operand localId="430" locator="148:42-148:88" name="Typhoid booster dose(s) repeat 3-doses series" xsi:type="ExpressionRef"/>
                  <asTypeSpecifier localId="468" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="469" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="470" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="431" locator="149:5-149:88">
               <when localId="432" locator="149:10-149:35" xsi:type="Equal">
                  <signature localId="439" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="440" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="437" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="438" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="434" locator="149:10-149:19" path="id" xsi:type="Property">
                        <source localId="433" locator="149:10-149:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="435" locator="149:23-149:35" valueType="t:String" value="Typhoid34.4" xsi:type="Literal"/>
               </when>
               <then localId="471" xsi:type="As">
                  <operand localId="441" locator="149:42-149:88" name="Typhoid booster dose(s) repeat 3-doses series" xsi:type="ExpressionRef"/>
                  <asTypeSpecifier localId="472" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="473" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="474" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="442" locator="150:5-150:88">
               <when localId="443" locator="150:10-150:35" xsi:type="Equal">
                  <signature localId="450" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="451" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="448" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="449" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="445" locator="150:10-150:19" path="id" xsi:type="Property">
                        <source localId="444" locator="150:10-150:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="446" locator="150:23-150:35" valueType="t:String" value="Typhoid35.4" xsi:type="Literal"/>
               </when>
               <then localId="475" xsi:type="As">
                  <operand localId="452" locator="150:42-150:88" name="Typhoid booster dose(s) repeat 3-doses series" xsi:type="ExpressionRef"/>
                  <asTypeSpecifier localId="476" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="477" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="478" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <else localId="479" xsi:type="As">
               <operand localId="453" locator="151:10-151:27" valueType="t:String" value="No test case set" xsi:type="Literal"/>
               <asTypeSpecifier localId="480" xsi:type="ChoiceTypeSpecifier">
                  <choice localId="481" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                  <choice localId="482" name="t:String" xsi:type="NamedTypeSpecifier"/>
               </asTypeSpecifier>
            </else>
         </expression>
      </def>
   </statements>
</library>
