<?xml version="1.0" encoding="UTF-8"?>

<PlanDefinition xmlns="http://hl7.org/fhir">
  <id value="IMMZD5DTTyphoidContraindications"/>
  <meta>
    <profile value="http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recommendationdefinition"/>
    <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareableplandefinition"/>
    <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishableplandefinition"/>
  </meta>
  <text>
    <status value="extensions"/><div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">IMMZD5DTTyphoidContraindications</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="PlanDefinition-IMMZD5DTTyphoidContraindications.html">IMMZ.D5.DT.Typhoid contraindications</a></td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">1.0.0</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">IMMZ.D5.DT.Typhoid contraindications</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/7.1.0/CodeSystem-plan-definition-type.html">http://terminology.hl7.org/CodeSystem/plan-definition-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>eca-rule</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2026-03-31 13:54:17+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">WHO</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>IMMZ.D5.DT.Typhoid contraindications
IMMZ.D5.DT.Typhoid contraindications</p>
</div></td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Knowledge Capability: </b></th>
            <td style="padding-left: 4px;">
                
                computable 
            </td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                <p><b>References</b></p>
                <ul>
                    
                    <li><div><p>WHO recommendations for routine immunization - summary tables (January 2025)</p>
</div><br/><a href="null"/></li>
                    
                </ul>
                
                
                
                
                
                
            </td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Libraries: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    
                    <tr>
                        <td><a href="Library-IMMZD5DTTyphoidContraindicationsLogic.html">IMMZD5DTTyphoidContraindicationsLogic</a></td>
                    </tr>
                    
                </table>
            </td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Actions: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    
                    <tr>
                        <td>
                            
                            <b> Check for contraindications before administering the vaccine(s) due:</b> Contraindication for Typhoid immunization
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Typhoid vaccination is contraindicated for Ty21a vaccine.
                            
                            <i>(Typhoid vaccination is contraindicated for Ty21a vaccine.)</i>
                            <br/>
                            
                            
                            
                            
                            <b>Then:</b> <i>Definition:</i> <a href="ActivityDefinition-IMMZD5DTMR.html">IMMZD5DTMR</a><br/>
                            
                            <i>Dynamic Values:</i><br/>
                            
                            id: <i>(Draft Medication Request ID for Typhoid dose)</i>
                            <br/>
                            
                            medication: <i>(Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE21', display: 'Typhoid vaccines' } }, display: 'Typhoid vaccines' })</i>
                            <br/>
                            
                            
                            
                            
                        </td>
                    </tr>
                    
                    <tr>
                        <td>
                            
                            <b> Check for Guidance for the patient regarding IMMZ.D5.DT.Typhoid contraindications.:</b> Show Guidance for the patient regarding IMMZ.D5.DT.Typhoid contraindications.
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Has Guidance
                            
                            <i>(Has Guidance)</i>
                            <br/>
                            
                            
                            
                            
                            <b>Then:</b> <i>Definition:</i> <a href="ActivityDefinition-IMMZD2DTCR.html">IMMZ.D2.DT.CR</a><br/>
                            
                            <i>Dynamic Values:</i><br/>
                            
                            status: <i>('active')</i>
                            <br/>
                            
                            payload.contentString: <i>(Guidance)</i>
                            <br/>
                            
                            category.coding: <i>(Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' })</i>
                            <br/>
                            
                            priority: <i>(Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' })</i>
                            <br/>
                            
                            
                            
                            
                        </td>
                    </tr>
                    
                </table>
            </td>
        </tr>
        
    </table>
</div>
</div>
  </text>
  <contained>
    <Library>
      <id value="effective-data-requirements"/>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE161"/>
          <display value="Potential contraindications"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE198"/>
          <display value="Hypersensitivity to vaccine components"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
          <code value="active"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
          <code value="recurrence"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
          <code value="relapse"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE162"/>
          <display value="Currently pregnant"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://loinc.org"/>
          <code value="82810-3"/>
          <display value="Pregnancy status"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://loinc.org"/>
          <code value="LA15173-0"/>
          <display value="Pregnant"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE199"/>
          <display value="Taking antibiotics"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE204"/>
          <display value="HIV status"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE205"/>
          <display value="HIV-positive"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
          <code value="DE249"/>
          <display value="Immunologically stable"/>
        </valueCoding>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="Potential contraindications"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Potential contraindications observations&#xA;*/&#xA;define &quot;Potential contraindications&quot;:&#xA;  ([Observation: Concepts.&quot;Potential contraindications&quot;]).complete()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="0"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Hypersensitivity to vaccine components Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Observation for Hypersensitivity to vaccine components&#xA;*/&#xA;define &quot;CI Hypersensitivity to vaccine components Observation&quot;:&#xA;  &quot;Potential contraindications&quot; O&#xA;    where O.value ~ Concepts.&quot;CI-Hypersensitivity to vaccine components&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="1"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Hypersensitivity to vaccine components Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Observation for Hypersensitivity to vaccine components&#xA;*/&#xA;define &quot;CI Hypersensitivity to vaccine components Observation&quot;:&#xA;  Elements.&quot;CI Hypersensitivity to vaccine components Observation&quot;.encounterOrOnBefore(EncounterId, Today)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="2"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Hypersensitivity to vaccine components Condition"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Condition for Hypersensitivity to vaccine components&#xA;*/&#xA;define &quot;CI Hypersensitivity to vaccine components Condition&quot;:&#xA;  [Condition: Concepts.&quot;CI-Hypersensitivity to vaccine components&quot;]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="3"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Hypersensitivity to vaccine components Condition"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Condition for Hypersensitivity to vaccine components&#xA;*/&#xA;define &quot;CI Hypersensitivity to vaccine components Condition&quot;:&#xA;  Elements.&quot;CI Hypersensitivity to vaccine components Condition&quot; C&#xA;    where C.prevalenceInterval() includes Today"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="4"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client has hypersensitivity to any component of the vaccine"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client has hypersensitivity to any component of the vaccine&#xA;@pseudocode: &quot;Potential contraindications&quot; = &quot;Hypersensitivity to vaccine components&quot;&#xA;*/&#xA;define &quot;The client has hypersensitivity to any component of the vaccine&quot;:&#xA;  exists &quot;CI Hypersensitivity to vaccine components Observation&quot;&#xA;    or exists &quot;CI Hypersensitivity to vaccine components Condition&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="5"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client has hypersensitivity to any component of the vaccine"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client has hypersensitivity to any component of the vaccine&#xA;@pseudocode: &quot;Potential contraindications&quot; = &quot;Hypersensitivity to vaccine components&quot;&#xA;@code: The client has hypersensitivity to any component of the vaccine-72&#xA;@decision: IMMZ.D5.DT.Typhoid contraindications&#xA;*/&#xA;define &quot;The client has hypersensitivity to any component of the vaccine&quot;:&#xA;  Encounter.&quot;The client has hypersensitivity to any component of the vaccine&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="6"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note."/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note.&#xA;@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Further evaluation needed&quot;&#xA;*/&#xA;define &quot;Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note.&quot;:&#xA;  Encounter.&quot;The client has hypersensitivity to any component of the vaccine&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="7"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance&#xA;@guidance: Do not vaccinate client with typhoid if client has known hypersensitivity to any component of the vaccine.&#xA;*/&#xA;define &quot;Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance&quot;:&#xA;  'Do not vaccinate client with typhoid if client has known hypersensitivity to any component of the vaccine.'"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="8"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Currently pregnant Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Observation for currently pregnant&#xA;*/&#xA;define &quot;CI Currently pregnant Observation&quot;:&#xA;  &quot;Potential contraindications&quot; O&#xA;    where O.value ~ Concepts.&quot;CI-Currently pregnant&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="9"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Currently pregnant Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Observation for currently pregnant&#xA;*/&#xA;define &quot;CI Currently pregnant Observation&quot;:&#xA;  Elements.&quot;CI Currently pregnant Observation&quot; O&#xA;    where O.encounter.references(EncounterId)&#xA;      or O.effective.toInterval() starts same day or after Today - 9 months"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="10"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Currently pregnant Condition"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Condition for currently pregnant&#xA;*/&#xA;define &quot;CI Currently pregnant Condition&quot;:&#xA;  [Condition: Concepts.&quot;CI-Currently pregnant&quot;]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="11"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Currently pregnant Condition"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Condition for currently pregnant&#xA;*/&#xA;define &quot;CI Currently pregnant Condition&quot;:&#xA;  Elements.&quot;CI Currently pregnant Condition&quot; C&#xA;    where C.prevalenceInterval() includes Today"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="12"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOElements"/>
        </extension>
        <extension url="name">
          <valueString value="Pregnancy Status Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="define &quot;Pregnancy Status Observation&quot;:&#xA;  [Observation: Concepts.&quot;Pregnancy status&quot;] O&#xA;    where O.status in { 'final', 'amended', 'corrected' }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="13"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOElements"/>
        </extension>
        <extension url="name">
          <valueString value="Pregnant Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="define &quot;Pregnant Observation&quot;:&#xA;  &quot;Pregnancy Status Observation&quot; O&#xA;    where O.value ~ Concepts.&quot;Pregnant&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="14"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Pregnant Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="define &quot;Pregnant Observation&quot;:&#xA;  Elements.&quot;Pregnant Observation&quot; O&#xA;    where O.encounter.references(EncounterId)&#xA;      or O.effective.toInterval() starts same day or after AsOf - 9 months"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="15"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client is pregnant"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client is pregnant&#xA;@pseudocode: &quot;Potential contraindications&quot; = &quot;Currently pregnant&quot;&#xA;*/&#xA;define &quot;The client is pregnant&quot;:&#xA;  exists &quot;CI Currently pregnant Observation&quot;&#xA;  or exists &quot;CI Currently pregnant Condition&quot;&#xA;  or exists WE.&quot;Pregnant Observation&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="16"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client is currently pregnant"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client is currently pregnant&#xA;@pseudocode: &quot;Potential contraindications&quot; = &quot;Currently pregnant&quot;&#xA;@code: The client is currently pregnant-52&#xA;@decision: IMMZ.D5.DT.Typhoid contraindications&#xA;*/&#xA;define &quot;The client is currently pregnant&quot;:&#xA;  Encounter.&quot;The client is pregnant&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="17"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note&#xA;@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Contraindicated&quot; (where &quot;Type of typhoid dose&quot; = &quot;Ty21a&quot;) AND &quot;Immunization recommendation status&quot; = &quot;Further evaluation needed&quot; (where &quot;Type of typhoid dose&quot; = &quot;Typbar-TCV&quot; OR &quot;ViPS&quot;)&#xA;*/&#xA;define &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note&quot;:&#xA;  Encounter.&quot;The client is currently pregnant&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="18"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note Guidance"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note Guidance&#xA;@guidance: Do not vaccinate client with Ty21a vaccine as live attenuated Ty21a vaccine is contraindicated for pregnant clients. For Typbar-TCV or ViPS vaccine, check if an alternative typhoid vaccine is appropriate for the client, consider risks of vaccination and make a clinical judgement.&#xA;*/&#xA;define &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note Guidance&quot;:&#xA;  'Do not vaccinate client with Ty21a vaccine as live attenuated Ty21a vaccine is contraindicated for pregnant clients. For Typbar-TCV or ViPS vaccine, check if an alternative typhoid vaccine is appropriate for the client, consider risks of vaccination and make a clinical judgement.'"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="19"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Taking antibiotics Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Observation for Taking antibiotics&#xA;*/&#xA;define &quot;CI Taking antibiotics Observation&quot;:&#xA;  &quot;Potential contraindications&quot; O&#xA;    where O.value ~ Concepts.&quot;CI-Taking antibiotics&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="20"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Taking antibiotics Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Observation for Taking antibiotics&#xA;*/&#xA;define &quot;CI Taking antibiotics Observation&quot;:&#xA;  Elements.&quot;CI Taking antibiotics Observation&quot;.encounterOrOnBefore(EncounterId, Today)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="21"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Taking antibiotics Condition"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Condition for Taking antibiotics&#xA;*/&#xA;define &quot;CI Taking antibiotics Condition&quot;:&#xA;  [Condition: Concepts.&quot;CI-Taking antibiotics&quot;]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="22"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="CI Taking antibiotics Condition"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Condition for Taking antibiotics&#xA;*/&#xA;define &quot;CI Taking antibiotics Condition&quot;:&#xA;  Elements.&quot;CI Taking antibiotics Condition&quot; C&#xA;    where C.prevalenceInterval() includes Today"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="23"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client is currently taking antibiotics"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client is currently taking antibiotics&#xA;@pseudocode: &quot;Potential contraindications&quot; = &quot;Taking antibiotics&quot;&#xA;*/&#xA;define &quot;The client is currently taking antibiotics&quot;:&#xA;  exists &quot;CI Taking antibiotics Observation&quot;&#xA;    or exists &quot;CI Taking antibiotics Condition&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="24"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client is currently taking antibiotics"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client is currently taking antibiotics&#xA;@pseudocode: &quot;Potential contraindications&quot; = &quot;Taking antibiotics&quot;&#xA;@code: The client is currently taking antibiotics-52&#xA;@decision: IMMZ.D5.DT.Typhoid contraindications&#xA;*/&#xA;define &quot;The client is currently taking antibiotics&quot;:&#xA;  Encounter.&quot;The client is currently taking antibiotics&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="25"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination is contraindicated for Ty21a vaccine. Case 1"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination is contraindicated for Ty21a vaccine. Case 1&#xA;@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Contraindicated&quot; (where &quot;Type of typhoid dose&quot; = &quot;Ty21a&quot;)&#xA;*/&#xA;define &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Case 1&quot;:&#xA;  Encounter.&quot;The client is currently taking antibiotics&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="26"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="HIV status Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: HIV Status Observation&#xA;*/&#xA;define &quot;HIV status Observation&quot;:&#xA;  ([Observation: Concepts.&quot;HIV status&quot;]).complete()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="27"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Client's HIV status is positive"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: Client's HIV status is positive&#xA;@pseudocode: &quot;HIV status&quot; = &quot;HIV-positive&quot;&#xA;*/&#xA;define &quot;Client's HIV status is positive&quot;:&#xA;  exists( (Elements.&quot;HIV status Observation&quot;.encounterOrOnBefore(EncounterId, Today)) O&#xA;    where O.value ~ Concepts.&quot;HIV-positive&quot; )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="28"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client's HIV status is positive"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client's HIV status is positive&#xA;@pseudocode: &quot;HIV status&quot; = &quot;HIV-positive&quot;&#xA;@code: The client's HIV status is positive-29&#xA;@decision: IMMZ.D5.DT.Typhoid contraindications&#xA;*/&#xA;define &quot;The client's HIV status is positive&quot;:&#xA;  Encounter.&quot;Client's HIV status is positive&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="29"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="Immunologically stable Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Immunologically stable Observation&#xA;*/&#xA;define &quot;Immunologically stable Observation&quot;:&#xA;  ([Observation: Concepts.&quot;Immunologically stable&quot;] O&#xA;    sort by end of effective.toInterval() desc).complete()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="30"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Immunologically stable Observation"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Immunologically stable Observation&#xA;*/&#xA;define &quot;Immunologically stable Observation&quot;:&#xA;  Elements.&quot;Immunologically stable Observation&quot;.encounterOrOnBefore(EncounterId, Today)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="31"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Client is not immunologically stable"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: Client is not immunologically stable&#xA;@pseudocode: &quot;Immunologically stable&quot; = FALSE&#xA;*/&#xA;define &quot;Client is not immunologically stable&quot;:&#xA;  exists(&quot;Immunologically stable Observation&quot;)&#xA;  and First(&quot;Immunologically stable Observation&quot;).value = false"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="32"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="The client is not immunologically stable"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@input: The client is not immunologically stable&#xA;@pseudocode: &quot;Immunologically stable&quot; ≠ TRUE&#xA;@code: The client is not immunologically stable-31&#xA;@decision: IMMZ.D5.DT.Typhoid contraindications&#xA;*/&#xA;define &quot;The client is not immunologically stable&quot;:&#xA;  Encounter.&quot;Client is not immunologically stable&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="33"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination is contraindicated for Ty21a vaccine. Case 2"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination is contraindicated for Ty21a vaccine. Case 2&#xA;@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Contraindicated&quot; (where &quot;Type of typhoid dose&quot; = &quot;Ty21a&quot;)&#xA;*/&#xA;define &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Case 2&quot;:&#xA;  Encounter.&quot;The client's HIV status is positive&quot;&#xA;    and Encounter.&quot;The client is not immunologically stable&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="34"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination is contraindicated for Ty21a vaccine."/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination is contraindicated for Ty21a vaccine.&#xA;@pseudocode: &quot;Immunization recommendation status&quot; = &quot;Contraindicated&quot; (where &quot;Type of typhoid dose&quot; = &quot;Ty21a&quot;)&#xA;*/&#xA;define &quot;Typhoid vaccination is contraindicated for Ty21a vaccine.&quot;:&#xA;  &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Case 1&quot;&#xA;    or &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Case 2&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="35"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Typhoid vaccination is contraindicated for Ty21a vaccine. Guidance"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@output: Typhoid vaccination is contraindicated for Ty21a vaccine. Guidance&#xA;@guidance = Do not vaccinate client with Ty21a vaccine as Ty21a vaccine is contraindicated for clients who are taking antibiotics. Evaluate if other types of typhoid vacccines can be administered.&#xA;@guidance = Do not vaccinate client with Ty21a vaccine as Ty21a vaccine is contraindicated for HIV-infected client who are not immunologically stable.&#xA;*/&#xA;define &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Guidance&quot;:&#xA;  case&#xA;    when &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Case 1&quot; then 'Do not vaccinate client with Ty21a vaccine as Ty21a vaccine is contraindicated for clients who are taking antibiotics. Evaluate if other types of typhoid vacccines can be administered.'&#xA;    when &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Case 2&quot; then 'Do not vaccinate client with Ty21a vaccine as Ty21a vaccine is contraindicated for HIV-infected client who are not immunologically stable.'&#xA;    else ''&#xA;  end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="36"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Guidance"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@dynamicValue: Guidance&#xA;*/&#xA;define &quot;Guidance&quot;:&#xA;  case &#xA;    when &quot;Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note.&quot; then &quot;Typhoid vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance&quot;&#xA;    when &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note&quot; then &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Clinical judgement is required for Typbar-TCV or ViPS vaccine. Create a clinical note Guidance&quot;&#xA;    when &quot;Typhoid vaccination is contraindicated for Ty21a vaccine.&quot; then &quot;Typhoid vaccination is contraindicated for Ty21a vaccine. Guidance&quot; &#xA;    else ''&#xA;  end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="37"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="Draft Medication Request for Patient"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@dataElement: Draft Medication Request for Patient&#xA;*/&#xA;define &quot;Draft Medication Request for Patient&quot;:&#xA;&#x9;[MedicationRequest] MR where MR.status = 'draft' and MR.intent = 'proposal'&#xA;&#x9;sort by date from (authoredOn as FHIR.dateTime) desc"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="38"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Draft Medication Request for Patient"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@dataElement: Draft Medication Request for Patient&#xA;*/&#xA;define &quot;Draft Medication Request for Patient&quot;:&#xA;  Elements.&quot;Draft Medication Request for Patient&quot; MR&#xA;    where MR.encounter.references(EncounterId) &#xA;      or MR.authoredOn.toInterval() same day or before Today&#xA;  &#x9;sort by date from (authoredOn as FHIR.dateTime) desc"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="39"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Draft Medication Request for Typhoid dose"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@internal: Draft Medication Request for Typhoid dose&#xA;*/&#xA;define &quot;Draft Medication Request for Typhoid dose&quot;:&#xA;  Encounter.&quot;Draft Medication Request for Patient&quot; MR&#xA;    where MR.medication in Concepts.&quot;Typhoid vaccines&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="40"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Draft Medication Request ID for Typhoid dose"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;  @dynamicValue: Draft Medication Request ID for Typhoid dose&#xA;  */&#xA;  define &quot;Draft Medication Request ID for Typhoid dose&quot;:&#xA;    First(Encounter.&quot;Draft Medication Request for Typhoid dose&quot;).id"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="41"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD5DTTyphoidContraindicationsLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Has Guidance"/>
        </extension>
        <extension url="statement">
          <valueString value="define &quot;Has Guidance&quot;:&#xA;  &quot;Guidance&quot; is not null and &quot;Guidance&quot; != ''"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="42"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZCommon"/>
        </extension>
        <extension url="name">
          <valueString value="encounterOrOnBefore"/>
        </extension>
        <extension url="statement">
          <valueString value="/**&#xA; * @description: Gets observation from an encounter or on or before a date&#xA; */&#xA;define fluent function encounterOrOnBefore(observations List&lt;Observation&gt;, EncounterId String, beforeDate Date):&#xA;  observations O where&#xA;    (O.encounter.references(EncounterId)&#xA;      or O.effective.toInterval() starts same day or before beforeDate)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="43"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOCommon"/>
        </extension>
        <extension url="name">
          <valueString value="references"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@description: Returns true if the given reference is to the given resourceId&#xA;@comment: Returns true if the `resourceId` parameter exactly equals the tail of the given reference.&#xA;NOTE: This function assumes resources from the same source server.&#xA;*/&#xA;define fluent function references(reference FHIR.Reference, resourceId String):&#xA;  resourceId = Last(Split(reference.reference, '/'))"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="44"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToString(value string): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="45"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOCommon"/>
        </extension>
        <extension url="name">
          <valueString value="toInterval"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;From FHIRCommon 4.1.0:&#xA;*/&#xA;&#xA;/*&#xA;@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval&#xA;@comment: Normalizes a choice type of FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instance, FHIR.string, FHIR.Age, or FHIR.Range types&#xA;to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible&#xA;representations for timing-valued elements in FHIR, allowing this function to be used across any resource.&#xA;&#xA;The input can be provided as a dateTime, Period, Timing, instant, string, Age, or Range.&#xA;The intent of this function is to provide a clear and concise mechanism to treat single&#xA;elements that have multiple possible representations as intervals so that logic doesn't have to account&#xA;for the variability. More complex calculations (such as medication request period or dispense period&#xA;calculation) need specific guidance and consideration. That guidance may make use of this function, but&#xA;the focus of this function is on single element calculations where the semantics are unambiguous.&#xA;If the input is a dateTime, the result a DateTime Interval beginning and ending on that dateTime.&#xA;If the input is a Period, the result is a DateTime Interval.&#xA;If the input is a Timing, an error is raised indicating a single interval cannot be computed from a Timing.&#xA;If the input is an instant, the result is a DateTime Interval beginning and ending on that instant.&#xA;If the input is a string, an error is raised indicating a single interval cannot be computed from a string.&#xA;If the input is an Age, the result is a DateTime Interval beginning when the patient was the given Age,&#xA;and ending immediately prior to when the patient was the given Age plus one year.&#xA;If the input is a Range, the result is a DateTime Interval beginning when the patient was the Age given&#xA;by the low end of the Range, and ending immediately prior to when the patient was the Age given by the&#xA;high end of the Range plus one year.&#xA;&#xA;NOTE: Due to the&#xA;complexity of determining a single interval from a Timing or String type, this function will throw a run-time exception if it is used&#xA;with a Timing or String.&#xA;*/&#xA;define fluent function toInterval(choice Choice&lt;FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instant, FHIR.string, FHIR.Age, FHIR.Range&gt;):&#xA;  case&#xA;    when choice is FHIR.dateTime then&#xA;      Interval[FHIRHelpers.ToDateTime(choice as FHIR.dateTime), FHIRHelpers.ToDateTime(choice as FHIR.dateTime)]&#xA;    when choice is FHIR.Period then&#xA;      FHIRHelpers.ToInterval(choice as FHIR.Period)&#xA;    when choice is FHIR.instant then&#xA;      Interval[FHIRHelpers.ToDateTime(choice as FHIR.instant), FHIRHelpers.ToDateTime(choice as FHIR.instant)]&#xA;    when choice is FHIR.Age then&#xA;      Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age),&#xA;        FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(choice as FHIR.Age) + 1 year)&#xA;    when choice is FHIR.Range then&#xA;      Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).low),&#xA;        FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).high) + 1 year)&#xA;    when choice is FHIR.Timing then&#xA;      Message(null as Interval&lt;DateTime&gt;, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported')&#xA;    when choice is FHIR.string then&#xA;      Message(null as Interval&lt;DateTime&gt;, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported')&#xA;    else&#xA;      null as Interval&lt;DateTime&gt;&#xA;  end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="46"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToDateTime"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToDateTime(value dateTime): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="47"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToInterval"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToInterval(period FHIR.Period):&#xA;    if period is null then&#xA;        null&#xA;    else&#xA;        if period.&quot;start&quot; is null then&#xA;            Interval(period.&quot;start&quot;.value, period.&quot;end&quot;.value]&#xA;        else&#xA;            Interval[period.&quot;start&quot;.value, period.&quot;end&quot;.value]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="48"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToDateTime"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToDateTime(value instant): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="49"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToDate"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToDate(value date): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="50"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToQuantity"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToQuantity(quantity FHIR.Quantity):&#xA;    case&#xA;        when quantity is null then null&#xA;        when quantity.value is null then null&#xA;        when quantity.comparator is not null then&#xA;            Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')&#xA;        when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'&#xA;              or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then&#xA;            System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }&#xA;        else&#xA;            Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' &amp; quantity.unit.value &amp; ' (' &amp; quantity.system.value &amp; '|' &amp; quantity.code.value &amp; ')')&#xA;    end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="51"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToCalendarUnit"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToCalendarUnit(unit System.String):&#xA;    case unit&#xA;        when 'ms' then 'millisecond'&#xA;        when 's' then 'second'&#xA;        when 'min' then 'minute'&#xA;        when 'h' then 'hour'&#xA;        when 'd' then 'day'&#xA;        when 'wk' then 'week'&#xA;        when 'mo' then 'month'&#xA;        when 'a' then 'year'&#xA;        else unit&#xA;    end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="52"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOCommon"/>
        </extension>
        <extension url="name">
          <valueString value="complete"/>
        </extension>
        <extension url="statement">
          <valueString value="define fluent function complete(observations List&lt;Observation&gt;):&#xA;  observations O where O.status in { 'final', 'amended', 'corrected' }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="53"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToString(value ObservationStatus): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="54"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToConcept"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToConcept(concept FHIR.CodeableConcept):&#xA;    if concept is null then&#xA;        null&#xA;    else&#xA;        System.Concept {&#xA;            codes: concept.coding C return ToCode(C),&#xA;            display: concept.text.value&#xA;        }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="55"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToCode"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToCode(coding FHIR.Coding):&#xA;    if coding is null then&#xA;        null&#xA;    else&#xA;        System.Code {&#xA;          code: coding.code.value,&#xA;          system: coding.system.value,&#xA;          version: coding.version.value,&#xA;          display: coding.display.value&#xA;        }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="56"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOCommon"/>
        </extension>
        <extension url="name">
          <valueString value="prevalenceInterval"/>
        </extension>
        <extension url="statement">
          <valueString value="/*&#xA;@description: Returns an interval representing the normalized prevalence period of a given Condition resource.&#xA;@comment: Uses the toInterval and toAbatementInterval functions to determine the widest potential interval from&#xA;onset to abatement as specified in the given Condition.&#xA;*/&#xA;define fluent function prevalenceInterval(condition Condition):&#xA;if condition.clinicalStatus ~ &quot;active&quot;&#xA;  or condition.clinicalStatus ~ &quot;recurrence&quot;&#xA;  or condition.clinicalStatus ~ &quot;relapse&quot; then&#xA;  Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()]&#xA;else&#xA;  (end of condition.abatementInterval()) abatementDate&#xA;    return &#xA;&#x9;  if abatementDate is null then&#xA;        Interval[start of condition.onset.toInterval(), abatementDate)&#xA;      else&#xA;        Interval[start of condition.onset.toInterval(), abatementDate]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="57"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOCommon"/>
        </extension>
        <extension url="name">
          <valueString value="abatementInterval"/>
        </extension>
        <extension url="statement">
          <valueString value="// Was getting error on this for this particular choice set not being found&#xA;&#xA;&#xA;/*&#xA;@description: Returns an interval representing the normalized Abatement of a given Condition resource.&#xA;@comment: NOTE: Due to the complexity of determining an interval from a String, this function will throw&#xA;a run-time exception if used with a Condition instance that has a String as the abatement value.&#xA;*/&#xA;define fluent function abatementInterval(condition Condition):&#xA;  if condition.abatement is FHIR.dateTime then&#xA;    Interval[FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime), FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime)]&#xA;  else if condition.abatement is FHIR.Period then&#xA;    FHIRHelpers.ToInterval(condition.abatement as FHIR.Period)&#xA;  else if condition.abatement is FHIR.string then&#xA;    Message(null as Interval&lt;DateTime&gt;, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported')&#xA;  else if condition.abatement is FHIR.Age then&#xA;    Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age),&#xA;      FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age) + 1 year)&#xA;  else if condition.abatement is FHIR.Range then&#xA;    Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).low),&#xA;      FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).high) + 1 year)&#xA;  else if condition.abatement is FHIR.boolean then&#xA;    Interval[end of condition.onset.toInterval(), condition.recordedDate)&#xA;  else &#xA;    null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="58"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToBoolean"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToBoolean(value boolean): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="59"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToString(value MedicationRequestStatus): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="60"/>
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString value="define function ToString(value MedicationRequestIntent): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="61"/>
        </extension>
      </extension>
      <name value="EffectiveDataRequirements"/>
      <status value="active"/>
      <type>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
          <code value="module-definition"/>
        </coding>
      </type>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="FHIR model information"/>
        <resource value="http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Encounter"/>
        <resource value="http://smart.who.int/immunizations/Library/IMMZD5DTTyphoidEncounterElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Encounter"/>
        <resource value="http://smart.who.int/immunizations/Library/IMMZEncounterElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Common"/>
        <resource value="http://smart.who.int/immunizations/Library/IMMZCommon"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library WC"/>
        <resource value="http://smart.who.int/immunizations/Library/WHOCommon"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library FHIRHelpers"/>
        <resource value="http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Elements"/>
        <resource value="http://smart.who.int/immunizations/Library/IMMZElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Concepts"/>
        <resource value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library WE"/>
        <resource value="http://smart.who.int/immunizations/Library/WHOEncounterElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Elements"/>
        <resource value="http://smart.who.int/immunizations/Library/WHOElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Concepts"/>
        <resource value="http://smart.who.int/immunizations/Library/WHOConcepts"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Code system IMMZD"/>
        <resource value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Code system ConditionClinicalStatusCodes"/>
        <resource value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Code system LOINC"/>
        <resource value="http://loinc.org"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Typhoid vaccines"/>
        <resource value="http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE21"/>
      </relatedArtifact>
      <parameter>
        <name value="EncounterId"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Today"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="date"/>
      </parameter>
      <parameter>
        <name value="AsOf"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="date"/>
      </parameter>
      <parameter>
        <name value="Guidance"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Draft Medication Request ID for Typhoid dose"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="id"/>
      </parameter>
      <parameter>
        <name value="Typhoid vaccination is contraindicated for Ty21a vaccine."/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Has Guidance"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <dataRequirement>
        <type value="Patient"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
        <mustSupport value="birthDate"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE161"/>
            <display value="Potential contraindications"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="value"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE161"/>
            <display value="Potential contraindications"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="value"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://loinc.org"/>
            <code value="82810-3"/>
            <display value="Pregnancy status"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="value"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://loinc.org"/>
            <code value="82810-3"/>
            <display value="Pregnancy status"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="value"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE204"/>
            <display value="HIV status"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="value"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="value"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE161"/>
            <display value="Potential contraindications"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="value"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="value"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE161"/>
            <display value="Potential contraindications"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="value"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="encounter"/>
        <mustSupport value="effective"/>
        <mustSupport value="status"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE249"/>
            <display value="Immunologically stable"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Condition"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
        <mustSupport value="abatement"/>
        <mustSupport value="onset"/>
        <mustSupport value="recordedDate"/>
        <mustSupport value="clinicalStatus"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Condition"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE162"/>
            <display value="Currently pregnant"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Condition"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE198"/>
            <display value="Hypersensitivity to vaccine components"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Condition"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE199"/>
            <display value="Taking antibiotics"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="MedicationRequest"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/MedicationRequest"/>
        <mustSupport value="status"/>
        <mustSupport value="intent"/>
        <mustSupport value="encounter"/>
        <mustSupport value="authoredOn"/>
        <codeFilter>
          <path value="status"/>
          <code>
            <code value="draft"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="intent"/>
          <code>
            <code value="proposal"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="MedicationRequest"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/MedicationRequest"/>
        <mustSupport value="id"/>
      </dataRequirement>
      <dataRequirement>
        <type value="MedicationRequest"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/MedicationRequest"/>
        <mustSupport value="status"/>
        <mustSupport value="intent"/>
        <mustSupport value="encounter"/>
        <mustSupport value="authoredOn"/>
        <mustSupport value="medication"/>
        <codeFilter>
          <path value="status"/>
          <code>
            <code value="draft"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="intent"/>
          <code>
            <code value="proposal"/>
          </code>
        </codeFilter>
        <codeFilter>
          <path value="medication"/>
          <valueSet value="http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE21"/>
        </codeFilter>
      </dataRequirement>
    </Library>
  </contained>
  <extension url="http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <extension url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements">
    <valueCanonical value="#effective-data-requirements"/>
  </extension>
  <url value="http://smart.who.int/immunizations/PlanDefinition/IMMZD5DTTyphoidContraindications"/>
  <version value="1.0.0"/>
  <name value="IMMZD5DTTyphoidContraindications"/>
  <title value="IMMZ.D5.DT.Typhoid contraindications"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/plan-definition-type"/>
      <code value="eca-rule"/>
    </coding>
  </type>
  <status value="draft"/>
  <experimental value="false"/>
  <date value="2026-03-31T13:54:17+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description value="IMMZ.D5.DT.Typhoid contraindications&#xA;IMMZ.D5.DT.Typhoid contraindications"/>
  <relatedArtifact>
    <type value="citation"/>
    <citation value="WHO recommendations for routine immunization - summary tables (January 2025)"/>
  </relatedArtifact>
  <library value="http://smart.who.int/immunizations/Library/IMMZD5DTTyphoidContraindicationsLogic"/>
  <action>
    <title value="Check for contraindications before administering the vaccine(s) due"/>
    <description value="Contraindication for Typhoid immunization"/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Typhoid vaccination is contraindicated for Ty21a vaccine."/>
        <language value="text/cql-identifier"/>
        <expression value="Typhoid vaccination is contraindicated for Ty21a vaccine."/>
      </expression>
    </condition>
    <type>
      <coding>
        <system value="http://terminology.hl7.org/CodeSystem/action-type"/>
        <code value="update"/>
      </coding>
    </type>
    <definitionCanonical value="http://smart.who.int/immunizations/ActivityDefinition/IMMZD5DTMR"/>
    <dynamicValue>
      <path value="id"/>
      <expression>
        <description value="Draft Medication Request ID for Typhoid dose"/>
        <language value="text/cql-identifier"/>
        <expression value="Draft Medication Request ID for Typhoid dose"/>
      </expression>
    </dynamicValue>
    <dynamicValue>
      <path value="medication"/>
      <expression>
        <language value="text/cql-expression"/>
        <expression value="Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE21', display: 'Typhoid vaccines' } }, display: 'Typhoid vaccines' }"/>
      </expression>
    </dynamicValue>
  </action>
  <action>
    <title value="Check for Guidance for the patient regarding IMMZ.D5.DT.Typhoid contraindications."/>
    <description value="Show Guidance for the patient regarding IMMZ.D5.DT.Typhoid contraindications."/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Has Guidance"/>
        <language value="text/cql-identifier"/>
        <expression value="Has Guidance"/>
      </expression>
    </condition>
    <definitionCanonical value="http://smart.who.int/immunizations/ActivityDefinition/IMMZD2DTCR"/>
    <dynamicValue>
      <path value="status"/>
      <expression>
        <language value="text/cql-expression"/>
        <expression value="'active'"/>
      </expression>
    </dynamicValue>
    <dynamicValue>
      <path value="payload.contentString"/>
      <expression>
        <language value="text/cql-identifier"/>
        <expression value="Guidance"/>
      </expression>
    </dynamicValue>
    <dynamicValue>
      <path value="category.coding"/>
      <expression>
        <description value="Category of communication"/>
        <language value="text/cql-expression"/>
        <expression value="Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }"/>
      </expression>
    </dynamicValue>
    <dynamicValue>
      <path value="priority"/>
      <expression>
        <description value="Alert priority"/>
        <language value="text/cql-expression"/>
        <expression value="Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }"/>
      </expression>
    </dynamicValue>
  </action>
</PlanDefinition>