<?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="324">
         <a:s>/*
 * Library: IMMZD2DTMeaslesMCVDose0Logic (IMMZ.D2.DT.Measles.MCV dose 0)
 * Rule: Determine if the client is due for a measles vaccination according to the national immunization schedule
 * Decision Table: Measles-containing vaccine dose 0 (MCV0) administration
 * Trigger: IMMZ.D2 Determine required vaccination(s) if any
 */
library IMMZD2DTMeaslesMCVDose0Logic</a:s>
      </a:s>
   </annotation>
   <identifier id="IMMZD2DTMeaslesMCVDose0Logic" 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="9:1-9: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="10:1-10: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="12:1-12:57" localIdentifier="Encounter" path="http://smart.who.int/immunizations/IMMZD2DTMeaslesEncounterElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="210">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZD2DTMeaslesEncounterElements</a:s>
               </a:s>
               <a:s> called Encounter</a:s>
            </a:s>
         </annotation>
      </def>
   </includes>
   <parameters>
      <def localId="212" locator="14:1-14: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="14:30-14:36" xsi:type="Today"/>
         <parameterTypeSpecifier localId="216" locator="14:17-14:20" name="t:Date" xsi:type="NamedTypeSpecifier"/>
      </def>
   </parameters>
   <contexts>
      <def localId="221" locator="16:1-16:15" name="Patient"/>
   </contexts>
   <statements>
      <def localId="219" locator="16:1-16:15" name="Patient" context="Patient">
         <expression localId="220" xsi:type="SingletonFrom">
            <operand localId="218" locator="16:1-16:15" dataType="fhir:Patient" templateId="http://hl7.org/fhir/StructureDefinition/Patient" xsi:type="Retrieve"/>
         </expression>
      </def>
      <def localId="235" locator="36:1-37:48" name="Client is not due for MCV0 Case 1" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for MCV0 Case 1"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="235">
               <a:s>/*
@output: Client is not due for MCV0 Case 1
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for MCV0 Case 1&quot;:
  </a:s>
               <a:s r="237">
                  <a:s r="236">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="237">
                     <a:s>&quot;Client's age is less than 6 months&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="237" locator="37:3-37:48" name="Client's age is less than 6 months" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="241" locator="43:1-46:69" name="Client is not due for MCV0 Case 2" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for MCV0 Case 2"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="241">
               <a:s>/*
@output: Client is not due for MCV0 Case 2
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for MCV0 Case 2&quot;:
  </a:s>
               <a:s r="242">
                  <a:s r="243">
                     <a:s r="245">
                        <a:s r="244">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="245">
                           <a:s>&quot;MCV0 was not administered&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s>
    and </a:s>
                     <a:s r="247">
                        <a:s r="246">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="247">
                           <a:s>&quot;Client's age is between 6 months and 9 months&quot;</a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    and </a:s>
                  <a:s r="249">
                     <a:s r="248">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="249">
                        <a:s>&quot;Live vaccine was administered in the last 4 weeks&quot;</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="242" locator="44:3-46:69" xsi:type="And">
            <operand localId="243" locator="44:3-45:65" xsi:type="And">
               <operand localId="245" locator="44:3-44:39" name="MCV0 was not administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
               <operand localId="247" locator="45:9-45:65" name="Client's age is between 6 months and 9 months" libraryName="Encounter" xsi:type="ExpressionRef"/>
            </operand>
            <operand localId="249" locator="46:9-46:69" name="Live vaccine was administered in the last 4 weeks" libraryName="Encounter" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="253" locator="52:1-53:60" name="Client is not due for MCV0 Case 3" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for MCV0 Case 3"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="253">
               <a:s>/*
@output: Client is not due for MCV0 Case 3
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for MCV0 Case 3&quot;:
  </a:s>
               <a:s r="255">
                  <a:s r="254">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="255">
                     <a:s>&quot;Client's age is more than or equal to 9 months&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="255" locator="53:3-53:60" name="Client's age is more than or equal to 9 months" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="259" locator="59:1-60:35" name="Client is not due for MCV0 Case 4" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for MCV0 Case 4"/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Not due&quot;"/>
            <a:s r="259">
               <a:s>/*
@output: Client is not due for MCV0 Case 4
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for MCV0 Case 4&quot;:
  </a:s>
               <a:s r="261">
                  <a:s r="260">
                     <a:s>Encounter</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="261">
                     <a:s>&quot;MCV0 was administered&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="261" locator="60:3-60:35" name="MCV0 was administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
      </def>
      <def localId="229" locator="66:1-70:42" name="Client is not due for MCV0" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for MCV0"/>
            <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 MCV0
@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Not due&quot;
*/
define &quot;Client is not due for MCV0&quot;:
  </a:s>
               <a:s r="230">
                  <a:s r="231">
                     <a:s r="232">
                        <a:s r="238">
                           <a:s>&quot;Client is not due for MCV0 Case 1&quot;</a:s>
                        </a:s>
                        <a:s>
    or </a:s>
                        <a:s r="250">
                           <a:s>&quot;Client is not due for MCV0 Case 2&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s>
    or </a:s>
                     <a:s r="256">
                        <a:s>&quot;Client is not due for MCV0 Case 3&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    or </a:s>
                  <a:s r="262">
                     <a:s>&quot;Client is not due for MCV0 Case 4&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="230" locator="67:3-70:42" xsi:type="Or">
            <operand localId="231" locator="67:3-69:42" xsi:type="Or">
               <operand localId="232" locator="67:3-68:42" xsi:type="Or">
                  <operand localId="238" locator="67:3-67:37" name="Client is not due for MCV0 Case 1" xsi:type="ExpressionRef"/>
                  <operand localId="250" locator="68:8-68:42" name="Client is not due for MCV0 Case 2" xsi:type="ExpressionRef"/>
               </operand>
               <operand localId="256" locator="69:8-69:42" name="Client is not due for MCV0 Case 3" xsi:type="ExpressionRef"/>
            </operand>
            <operand localId="262" locator="70:8-70:42" name="Client is not due for MCV0 Case 4" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="266" locator="81:1-90:5" name="Client is not due for MCV0 Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Client is not due for MCV0 Guidance"/>
            <a:s r="266">
               <a:s>/*
@output: Client is not due for MCV0 Guidance
@guidance = Should not vaccinate client with MCV0 as client's age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0.
@guidance = Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0.
@guidance = Should not vaccinate client with MCV0 as client's age is more than 9 months.
Check measles routine immunization schedule.
@guidance = MCV0 was administered.
Check measles routine immunization schedule.
*/
define &quot;Client is not due for MCV0 Guidance&quot;:
  </a:s>
               <a:s r="267">
                  <a:s>case
    </a:s>
                  <a:s r="268">
                     <a:s>when </a:s>
                     <a:s r="269">
                        <a:s>&quot;Client is not due for MCV0 Case 1&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="270">
                        <a:s>'Should not vaccinate client with MCV0 as client\'s age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="272">
                     <a:s>when </a:s>
                     <a:s r="273">
                        <a:s>&quot;Client is not due for MCV0 Case 2&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="274">
                        <a:s>'Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="276">
                     <a:s>when </a:s>
                     <a:s r="277">
                        <a:s>&quot;Client is not due for MCV0 Case 3&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="278">
                        <a:s>'Should not vaccinate client with MCV0 as client\'s age is more than 9 months.
Check measles routine immunization schedule.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="280">
                     <a:s>when </a:s>
                     <a:s r="281">
                        <a:s>&quot;Client is not due for MCV0 Case 4&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="282">
                        <a:s>'MCV0 was administered.
Check measles routine immunization schedule.'</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    else </a:s>
                  <a:s r="284">
                     <a:s>''</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="267" locator="82:3-90:5" xsi:type="Case">
            <caseItem localId="268" locator="83:5-83:212">
               <when localId="269" locator="83:10-83:44" name="Client is not due for MCV0 Case 1" xsi:type="ExpressionRef"/>
               <then localId="270" locator="83:51-83:212" valueType="t:String" value="Should not vaccinate client with MCV0 as client's age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0." xsi:type="Literal"/>
            </caseItem>
            <caseItem localId="272" locator="84:5-84:226">
               <when localId="273" locator="84:10-84:44" name="Client is not due for MCV0 Case 2" xsi:type="ExpressionRef"/>
               <then localId="274" locator="84:51-84:226" valueType="t:String" value="Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0." xsi:type="Literal"/>
            </caseItem>
            <caseItem localId="276" locator="85:5-85:174">
               <when localId="277" locator="85:10-85:44" name="Client is not due for MCV0 Case 3" xsi:type="ExpressionRef"/>
               <then localId="278" locator="85:51-85:174" valueType="t:String" value="Should not vaccinate client with MCV0 as client's age is more than 9 months.&#xa;Check measles routine immunization schedule." xsi:type="Literal"/>
            </caseItem>
            <caseItem localId="280" locator="87:5-87:119">
               <when localId="281" locator="87:10-87:44" name="Client is not due for MCV0 Case 4" xsi:type="ExpressionRef"/>
               <then localId="282" locator="87:51-87:119" valueType="t:String" value="MCV0 was administered.&#xa;Check measles routine immunization schedule." xsi:type="Literal"/>
            </caseItem>
            <else localId="284" locator="89:10-89:11" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="290" locator="97:1-100:72" name="Consider MCV0." context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Consider MCV0."/>
            <a:t name="pseudocode" value="&quot;Immunization recommendation status&quot; = &quot;Further evaluation needed&quot;"/>
            <a:s r="290">
               <a:s>/*
@output: Consider MCV0.
@pseudocode: Create a clinical note.
&quot;Immunization recommendation status&quot; = &quot;Further evaluation needed&quot;
*/
define &quot;Consider MCV0.&quot;:
  </a:s>
               <a:s r="291">
                  <a:s r="292">
                     <a:s r="294">
                        <a:s r="293">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="294">
                           <a:s>&quot;MCV0 was not administered&quot;</a:s>
                        </a:s>
                     </a:s>
                     <a:s>
    and </a:s>
                     <a:s r="296">
                        <a:s r="295">
                           <a:s>Encounter</a:s>
                        </a:s>
                        <a:s>.</a:s>
                        <a:s r="296">
                           <a:s>&quot;Client's age is between 6 months and 9 months&quot;</a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    and </a:s>
                  <a:s r="298">
                     <a:s r="297">
                        <a:s>Encounter</a:s>
                     </a:s>
                     <a:s>.</a:s>
                     <a:s r="298">
                        <a:s>&quot;No live vaccine was administered in the last 4 weeks&quot;</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="291" locator="98:3-100:72" xsi:type="And">
            <operand localId="292" locator="98:3-99:65" xsi:type="And">
               <operand localId="294" locator="98:3-98:39" name="MCV0 was not administered" libraryName="Encounter" xsi:type="ExpressionRef"/>
               <operand localId="296" locator="99:9-99:65" name="Client's age is between 6 months and 9 months" libraryName="Encounter" xsi:type="ExpressionRef"/>
            </operand>
            <operand localId="298" locator="100:9-100:72" name="No live vaccine was administered in the last 4 weeks" libraryName="Encounter" xsi:type="ExpressionRef"/>
         </expression>
      </def>
      <def localId="302" locator="106:1-107:220" name="Consider MCV0. Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="output" value="Consider MCV0. Guidance"/>
            <a:t name="guidance" value="May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable."/>
            <a:s r="302">
               <a:s>/*
@output: Consider MCV0. Guidance
@guidance: May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable.
*/
define &quot;Consider MCV0. Guidance&quot;:
  </a:s>
               <a:s r="303">
                  <a:s>'May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable.'</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="303" locator="107:3-107:220" valueType="t:String" value="May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable." xsi:type="Literal"/>
      </def>
      <def localId="224" locator="22:1-27: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="263">
                        <a:s>&quot;Client is not due for MCV0&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="286">
                        <a:s>&quot;Client is not due for MCV0 Guidance&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="287">
                     <a:s>when </a:s>
                     <a:s r="299">
                        <a:s>&quot;Consider MCV0.&quot;</a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="305">
                        <a:s>&quot;Consider MCV0. Guidance&quot;</a:s>
                     </a:s>
                  </a:s>
                  <a:s> 
    else </a:s>
                  <a:s r="306">
                     <a:s>''</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="225" locator="23:3-27:5" xsi:type="Case">
            <caseItem localId="226" locator="24:5-24:80">
               <when localId="263" locator="24:10-24:37" name="Client is not due for MCV0" xsi:type="ExpressionRef"/>
               <then localId="286" locator="24:44-24:80" name="Client is not due for MCV0 Guidance" xsi:type="ExpressionRef"/>
            </caseItem>
            <caseItem localId="287" locator="25:5-25:56">
               <when localId="299" locator="25:10-25:25" name="Consider MCV0." xsi:type="ExpressionRef"/>
               <then localId="305" locator="25:32-25:56" name="Consider MCV0. Guidance" xsi:type="ExpressionRef"/>
            </caseItem>
            <else localId="306" locator="26:10-26:11" valueType="t:String" value="" xsi:type="Literal"/>
         </expression>
      </def>
      <def localId="310" locator="29:1-30:45" name="Has Guidance" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="310">
               <a:s>define &quot;Has Guidance&quot;:
  </a:s>
               <a:s r="311">
                  <a:s r="314">
                     <a:s r="312">
                        <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="321">
                     <a:s r="316">
                        <a:s>&quot;Guidance&quot;</a:s>
                     </a:s>
                     <a:s> != </a:s>
                     <a:s r="317">
                        <a:s>''</a:s>
                     </a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="311" locator="30:3-30:45" xsi:type="And">
            <operand localId="314" locator="30:3-30:24" xsi:type="Not">
               <operand localId="313" locator="30:3-30:24" xsi:type="IsNull">
                  <operand localId="312" locator="30:3-30:12" name="Guidance" xsi:type="ExpressionRef"/>
               </operand>
            </operand>
            <operand localId="321" locator="30:30-30:45" xsi:type="Not">
               <operand localId="315" locator="30:30-30:45" xsi:type="Equal">
                  <signature localId="319" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="320" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="316" locator="30:30-30:39" name="Guidance" xsi:type="ExpressionRef"/>
                  <operand localId="317" locator="30:44-30:45" valueType="t:String" value="" xsi:type="Literal"/>
               </operand>
            </operand>
         </expression>
      </def>
      <def localId="324" locator="113:1-123: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="324">
               <a:s>/*
@test: Test expected results based on example patients
*/
define &quot;Test Validation&quot;:
  </a:s>
               <a:s r="325">
                  <a:s>case
    </a:s>
                  <a:s r="326">
                     <a:s>when </a:s>
                     <a:s r="327">
                        <a:s r="329">
                           <a:s r="328">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="329">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="330">
                           <a:s>'Measles36.1'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="336">
                        <a:s r="337">
                           <a:s>&quot;Client is not due for MCV0 Case 1&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="338">
                           <a:s r="339">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="340">
                              <a:s>'Should not vaccinate client with MCV0 as client\'s age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="344">
                     <a:s>when </a:s>
                     <a:s r="345">
                        <a:s r="347">
                           <a:s r="346">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="347">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="348">
                           <a:s>'Measles37.3'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="354">
                        <a:s r="355">
                           <a:s>&quot;Client is not due for MCV0 Case 2&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="356">
                           <a:s r="357">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="358">
                              <a:s>'Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="362">
                     <a:s>when </a:s>
                     <a:s r="363">
                        <a:s r="365">
                           <a:s r="364">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="365">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="366">
                           <a:s>'Measles38.3'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="372">
                        <a:s r="373">
                           <a:s>&quot;Consider MCV0.&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="374">
                           <a:s r="375">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="376">
                              <a:s>'May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    </a:s>
                  <a:s r="380">
                     <a:s>when </a:s>
                     <a:s r="381">
                        <a:s r="383">
                           <a:s r="382">
                              <a:s>Patient</a:s>
                           </a:s>
                           <a:s>.</a:s>
                           <a:s r="383">
                              <a:s>id</a:s>
                           </a:s>
                        </a:s>
                        <a:s> = </a:s>
                        <a:s r="384">
                           <a:s>'Measles39.1'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="390">
                        <a:s r="391">
                           <a:s>&quot;Client is not due for MCV0 Case 3&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="392">
                           <a:s r="393">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="394">
                              <a:s>'Should not vaccinate client with MCV0 as client\'s age is more than 9 months.
Check measles routine immunization schedule.'</a:s>
                           </a:s>
                        </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>'Measles40.1'</a:s>
                        </a:s>
                     </a:s>
                     <a:s> then </a:s>
                     <a:s r="408">
                        <a:s r="409">
                           <a:s>&quot;Client is not due for MCV0 Case 4&quot;</a:s>
                        </a:s>
                        <a:s> and </a:s>
                        <a:s r="410">
                           <a:s r="411">
                              <a:s>&quot;Guidance&quot;</a:s>
                           </a:s>
                           <a:s> = </a:s>
                           <a:s r="412">
                              <a:s>'MCV0 was administered.
Check measles routine immunization schedule.'</a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                  </a:s>
                  <a:s>
    else </a:s>
                  <a:s r="416">
                     <a:s>'No test case set'</a:s>
                  </a:s>
                  <a:s>
  end</a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="325" locator="114:3-123:5" xsi:type="Case">
            <caseItem localId="326" locator="115:5-115:256">
               <when localId="327" locator="115:10-115:35" xsi:type="Equal">
                  <signature localId="334" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="335" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="332" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="333" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="329" locator="115:10-115:19" path="id" xsi:type="Property">
                        <source localId="328" locator="115:10-115:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="330" locator="115:23-115:35" valueType="t:String" value="Measles36.1" xsi:type="Literal"/>
               </when>
               <then localId="418" xsi:type="As">
                  <operand localId="336" locator="115:42-115:256" xsi:type="And">
                     <operand localId="337" locator="115:42-115:76" name="Client is not due for MCV0 Case 1" xsi:type="ExpressionRef"/>
                     <operand localId="338" locator="115:82-115:256" xsi:type="Equal">
                        <signature localId="342" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="343" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="339" locator="115:82-115:91" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="340" locator="115:95-115:256" valueType="t:String" value="Should not vaccinate client with MCV0 as client's age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="419" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="420" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="421" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="344" locator="116:5-116:270">
               <when localId="345" locator="116:10-116:35" xsi:type="Equal">
                  <signature localId="352" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="353" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="350" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="351" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="347" locator="116:10-116:19" path="id" xsi:type="Property">
                        <source localId="346" locator="116:10-116:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="348" locator="116:23-116:35" valueType="t:String" value="Measles37.3" xsi:type="Literal"/>
               </when>
               <then localId="422" xsi:type="As">
                  <operand localId="354" locator="116:42-116:270" xsi:type="And">
                     <operand localId="355" locator="116:42-116:76" name="Client is not due for MCV0 Case 2" xsi:type="ExpressionRef"/>
                     <operand localId="356" locator="116:82-116:270" xsi:type="Equal">
                        <signature localId="360" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="361" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="357" locator="116:82-116:91" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="358" locator="116:95-116:270" valueType="t:String" value="Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0." xsi:type="Literal"/>
                     </operand>
                  </operand>
                  <asTypeSpecifier localId="423" xsi:type="ChoiceTypeSpecifier">
                     <choice localId="424" name="t:Boolean" xsi:type="NamedTypeSpecifier"/>
                     <choice localId="425" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  </asTypeSpecifier>
               </then>
            </caseItem>
            <caseItem localId="362" locator="117:5-117:293">
               <when localId="363" locator="117:10-117:35" xsi:type="Equal">
                  <signature localId="370" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="371" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="368" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="369" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="365" locator="117:10-117:19" path="id" xsi:type="Property">
                        <source localId="364" locator="117:10-117:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="366" locator="117:23-117:35" valueType="t:String" value="Measles38.3" xsi:type="Literal"/>
               </when>
               <then localId="426" xsi:type="As">
                  <operand localId="372" locator="117:42-117:293" xsi:type="And">
                     <operand localId="373" locator="117:42-117:57" name="Consider MCV0." xsi:type="ExpressionRef"/>
                     <operand localId="374" locator="117:63-117:293" xsi:type="Equal">
                        <signature localId="378" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="379" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="375" locator="117:63-117:72" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="376" locator="117:76-117:293" valueType="t:String" value="May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable." 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="380" locator="118:5-118:218">
               <when localId="381" locator="118:10-118:35" xsi:type="Equal">
                  <signature localId="388" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <signature localId="389" name="t:String" xsi:type="NamedTypeSpecifier"/>
                  <operand localId="386" name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
                     <signature localId="387" name="fhir:string" xsi:type="NamedTypeSpecifier"/>
                     <operand localId="383" locator="118:10-118:19" path="id" xsi:type="Property">
                        <source localId="382" locator="118:10-118:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="384" locator="118:23-118:35" valueType="t:String" value="Measles39.1" xsi:type="Literal"/>
               </when>
               <then localId="430" xsi:type="As">
                  <operand localId="390" locator="118:42-118:218" xsi:type="And">
                     <operand localId="391" locator="118:42-118:76" name="Client is not due for MCV0 Case 3" xsi:type="ExpressionRef"/>
                     <operand localId="392" locator="118:82-118:218" xsi:type="Equal">
                        <signature localId="396" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="397" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="393" locator="118:82-118:91" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="394" locator="118:95-118:218" valueType="t:String" value="Should not vaccinate client with MCV0 as client's age is more than 9 months.&#xa;Check measles routine immunization schedule." 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="398" locator="120:5-120:163">
               <when localId="399" locator="120:10-120: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="120:10-120:19" path="id" xsi:type="Property">
                        <source localId="400" locator="120:10-120:16" name="Patient" xsi:type="ExpressionRef"/>
                     </operand>
                  </operand>
                  <operand localId="402" locator="120:23-120:35" valueType="t:String" value="Measles40.1" xsi:type="Literal"/>
               </when>
               <then localId="434" xsi:type="As">
                  <operand localId="408" locator="120:42-120:163" xsi:type="And">
                     <operand localId="409" locator="120:42-120:76" name="Client is not due for MCV0 Case 4" xsi:type="ExpressionRef"/>
                     <operand localId="410" locator="120:82-120:163" xsi:type="Equal">
                        <signature localId="414" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <signature localId="415" name="t:String" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="411" locator="120:82-120:91" name="Guidance" xsi:type="ExpressionRef"/>
                        <operand localId="412" locator="120:95-120:163" valueType="t:String" value="MCV0 was administered.&#xa;Check measles routine immunization schedule." 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>
            <else localId="438" xsi:type="As">
               <operand localId="416" locator="122:10-122:27" valueType="t:String" value="No test case set" xsi:type="Literal"/>
               <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>
            </else>
         </expression>
      </def>
   </statements>
</library>
