<?xml version='1.0' encoding='UTF-8'?>
<Library xmlns="http://hl7.org/fhir" xmlns:html="http://www.w3.org/1999/xhtml">
  <id value="IMMZD5DTSeasonalInfluenzaContraindicationsLogic" />
  <meta>
    <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary" />
    <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary" />
    <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library" />
    <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module" />
  </meta>
  <text>
    <status value="extensions" /><html:div>
<html:div>
    <html:table class="grid dict">
        
        
        <html:tr>
            <html:th scope="row"><html:b>Title: </html:b></html:th>
            <html:td style="padding-left: 4px;">IMMZD5DTSeasonalInfluenzaContraindicationsLogic</html:td>
        </html:tr>
        

        
        
        <html:tr>
            <html:th scope="row"><html:b>Id: </html:b></html:th>
            <html:td style="padding-left: 4px;">IMMZD5DTSeasonalInfluenzaContraindicationsLogic</html:td>
        </html:tr>
        

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

        
        <html:tr>
            <html:th scope="row"><html:b>Url: </html:b></html:th>
            <html:td style="padding-left: 4px;"><html:a href="Library-IMMZD5DTSeasonalInfluenzaContraindicationsLogic.html">IMMZD5DTSeasonalInfluenzaContraindicationsLogic</html:a></html:td>
        </html:tr>
        

        

        

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

        

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

        

        
        <html:tr>
            <html:th scope="row"><html:b>Date: </html:b></html:th>
            <html:td style="padding-left: 4px;">2026-03-25 23:30:34+0000</html:td>
        </html:tr>
        

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

        
        <html:tr>
            <html:th scope="row"><html:b>Description: </html:b></html:th>
            <html:td style="padding-left: 4px;"><html:div><html:p>This library defines decision support logic for the IMMZ.D5.DT.Seasonal influenza contraindications decision table in the Immunization CPG</html:p>
</html:div></html:td>
        </html:tr>
        

        

        

        

        

        

        

        

        

        

        

        
        <html:tr>
            <html:th scope="row"><html:b>Related Artifacts: </html:b></html:th>
            <html:td style="padding-left: 4px;">
                
                
                
                <html:p><html:b>Dependencies</html:b></html:p>
                <html:ul>
                  
                    <html:li><html:a href="Library-IMMZD5DTSeasonalinfluenzaEncounterElements.html">IMMZD5DTSeasonalinfluenzaEncounterElements</html:a></html:li>
                  
                </html:ul>
                
                
                
                
                
            </html:td>
        </html:tr>
        

        
        <html:tr>
          <html:th scope="row"><html:b>Parameters: </html:b></html:th>
          <html:td style="padding-left: 4px;">
            <html:table class="grid-dict">
              <html:tr><html:th><html:b>Name</html:b></html:th><html:th><html:b>Type</html:b></html:th><html:th><html:b>Min</html:b></html:th><html:th><html:b>Max</html:b></html:th><html:th><html:b>In/Out</html:b></html:th></html:tr>
              
                <html:tr><html:th>Today</html:th><html:th>date</html:th><html:th>0</html:th><html:th>1</html:th><html:th>In</html:th></html:tr>
              
                <html:tr><html:th>Patient</html:th><html:th>Patient</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Draft Medication Request ID for Seasonal influenza dose</html:th><html:th>id</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1</html:th><html:th>boolean</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2</html:th><html:th>boolean</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note</html:th><html:th>boolean</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance</html:th><html:th>string</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Guidance</html:th><html:th>string</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Has Guidance</html:th><html:th>boolean</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
                <html:tr><html:th>Test Validation</html:th><html:th>Resource</html:th><html:th>0</html:th><html:th>1</html:th><html:th>Out</html:th></html:tr>
              
            </html:table>
          </html:td>
        </html:tr>
        

        

        
        
        <html:tr>
          <html:td colspan="2">
            <html:table>
              <html:tr><html:th><html:a id="cql-content"><html:b>Content: </html:b></html:a> text/cql</html:th></html:tr>
              <html:tr><html:td><html:pre><html:code class="language-cql">/*
 * Library: IMMZD5DTSeasonalInfluenzaContraindicationsLogic (IMMZ.D5.DT.Seasonal influenza contraindications)
 * Rule: Check for contraindications before administering the vaccine(s) due
 * Decision Table: IMMZ.D5.DT.Seasonal influenza contraindications
 * Trigger: IMMZ.D5 Determine vaccine(s) to be administered based on contraindications
 */
library IMMZD5DTSeasonalInfluenzaContraindicationsLogic

using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'

include IMMZD5DTSeasonalinfluenzaEncounterElements called Encounter

parameter Today Date default Today()

context Patient

/*
  @dynamicValue: Draft Medication Request ID for Seasonal influenza dose
  */
  define "Draft Medication Request ID for Seasonal influenza dose":
    First(Encounter."Draft Medication Request for Seasonal influenza dose").id


/*
@dynamicValue: Guidance
*/
define "Guidance":
  case 
    when "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note" then "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance" 
    else ''
  end
  
define "Has Guidance":
  "Guidance" is not null and "Guidance" != ''

/*
@output: Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1
@pseudocode: '"Immunization recommendation status" = "Further evaluation needed"
*/
define "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1":
  Encounter."The client has a history of anaphylactic reactions"

/*
@output: Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2
@pseudocode: '"Immunization recommendation status" = "Further evaluation needed"
*/
define "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2":
  Encounter."The client has a history of severe allergic reactions after a previous dose or to a vaccine component"

/*
@output: Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note
@pseudocode: '"Immunization recommendation status" = "Further evaluation needed"
*/
define "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note":
  "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1"
    or "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2"

/*
@output: Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance
@guidance = Do not vaccinate client with seasonal influenza if client has had a severe allergic reaction (e.g. anaphylaxis) after a previous dose or to a vaccine component.
@guidance = Do not vaccinate client with seasonal influenza if client has had a severe allergic reaction (e.g. anaphylaxis) after a previous dose or to a vaccine component.
*/
define "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance":
  case
    when "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1" then 'Do not vaccinate client with seasonal influenza if client has had a severe allergic reaction (e.g. anaphylaxis) after a previous dose or to a vaccine component.'
    when "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2" then 'Do not vaccinate client with seasonal influenza if client has had a severe allergic reaction (e.g. anaphylaxis) after a previous dose or to a vaccine component.'
    else ''
  end


/*
@test: Test expected results based on example patients
*/
define "Test Validation":
  case
    when Patient.id = 'Seasonalinfluenza21.1' then "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1" and "Guidance" = 'Do not vaccinate client with seasonal influenza if client has had a severe allergic reaction (e.g. anaphylaxis) after a previous dose or to a vaccine component.'
    when Patient.id = 'Seasonalinfluenza22.1' then "Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2" and "Guidance" = 'Do not vaccinate client with seasonal influenza if client has had a severe allergic reaction (e.g. anaphylaxis) after a previous dose or to a vaccine component.'
    else 'No test case set'
  end
</html:code></html:pre></html:td></html:tr>
            </html:table>
          </html:td>
        </html:tr>
        
        
        
        
        
        <html:tr>
          <html:td colspan="2">
            <html:table>
              <html:tr><html:th><html:b>Content: </html:b> application/elm+xml</html:th></html:tr>
              <html:tr><html:td><html:pre><html:code>Encoded data (37800 characters)</html:code></html:pre></html:td></html:tr>
            </html:table>
          </html:td>
        </html:tr>
        
        
    </html:table>
</html:div>
</html:div>
  </text>
  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable" />
  </extension>
  <url value="http://smart.who.int/immunizations/Library/IMMZD5DTSeasonalInfluenzaContraindicationsLogic" />
  <version value="0.2.0" />
  <name value="IMMZD5DTSeasonalInfluenzaContraindicationsLogic" />
  <title value="IMMZD5DTSeasonalInfluenzaContraindicationsLogic" />
  <status value="draft" />
  <experimental value="false" />
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type" />
      <code value="logic-library" />
    </coding>
  </type>
  <date value="2026-03-25T23:30:34+00:00" />
  <publisher value="WHO" />
  <contact>
    <name value="WHO" />
    <telecom>
      <system value="url" />
      <value value="http://who.int" />
    </telecom>
  </contact>
  <description value="This library defines decision support logic for the IMMZ.D5.DT.Seasonal influenza contraindications decision table in the Immunization CPG" />
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library Encounter" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZD5DTSeasonalinfluenzaEncounterElements" />
  </relatedArtifact>
  <parameter>
    <name value="Today" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Patient" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Patient" />
  </parameter>
  <parameter>
    <name value="Draft Medication Request ID for Seasonal influenza dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="id" />
  </parameter>
  <parameter>
    <name value="Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 1" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Case 2" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Seasonal influenza vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="string" />
  </parameter>
  <parameter>
    <name value="Guidance" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="string" />
  </parameter>
  <parameter>
    <name value="Has Guidance" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Test Validation" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Resource" />
  </parameter>
  <content>
    <contentType value="text/cql" />
    <url value="Library-IMMZD5DTSeasonalInfluenzaContraindicationsLogic.cql" /></content>
  <content>
    <contentType value="application/elm+xml" />
    <url value="Library-IMMZD5DTSeasonalInfluenzaContraindicationsLogic.elm.xml" /></content>
</Library>