WHO Immunization Implementation Guide
0.2.0 - ci-build

WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/tree/123/merge and changes regularly. See the Directory of published versions

: IMMZ.D18.S.Pneumococcal.3 doses schedule - XML Representation

Draft as of 2026-03-03

Raw xml | Download


<PlanDefinition xmlns="http://hl7.org/fhir">
  <id value="IMMZD18SPneumococcal3Doses"/>
  <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;">IMMZD18SPneumococcal3Doses</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="PlanDefinition-IMMZD18SPneumococcal3Doses.html">IMMZ.D18.S.Pneumococcal.3 doses schedule</a></td>
        </tr>
        

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

        

        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">IMMZ.D18.S.Pneumococcal.3 doses schedule</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.0.1/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-03 13:07:11+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.D18.S.Pneumococcal.3 doses schedule
3 primary doses (3p+0) schedule</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-IMMZD18SPneumococcal3DosesLogic.html">IMMZD18SPneumococcal3DosesLogic</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> Pneumococcal dose 1:</b> Provision of the pneumococcal dose 1
Trigger event: Child's birth
Trigger pseudo: 
Trigger date: &quot;Date of birth&quot;
Create condition: Pneumococcal dose 1 should be provided if the client is older than 6 weeks
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Pneumococcal dose 1
                            
                            <i>(Pneumococcal dose 1)</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>(Pneumococcal dose 1 Create)</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>
                    
                    <tr>
                        <td>
                            
                            <b> Pneumococcal dose 2, first within 24m:</b> Provision of the pneumococcal dose 2
Trigger event: First pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age, within 24 months post birth
Trigger pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 24 months
Trigger date: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
Create condition: Pneumococcal dose 2 should be provided if the client was given the previous dose more than 4 weeks ago
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Pneumococcal dose 2, first within 24m
                            
                            <i>(Pneumococcal dose 2, first within 24m)</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>(Pneumococcal dose 2, first within 24m Create)</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>
                    
                    <tr>
                        <td>
                            
                            <b> Pneumococcal dose 2, first after 24m:</b> Provision of the pneumococcal dose 2
Trigger event: First pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age. Pneumococcal dose was not administered within 24 months post birth. Client is at high risk for pneumococcal infection.
Trigger pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; ≥ 24 months AND &quot;At high risk for pneumococcal infection&quot; = TRUE
Trigger date: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
Create condition: Pneumococcal dose 2 should be provided if the client was given the previous dose more than 8 weeks ago
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Pneumococcal dose 2, first after 24m
                            
                            <i>(Pneumococcal dose 2, first after 24m)</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>(Pneumococcal dose 2, first after 24m Create)</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>
                    
                    <tr>
                        <td>
                            
                            <b> Pneumococcal dose 3:</b> Provision of the pneumococcal dose 3
Trigger event: Second pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age. First pneumococcal dose was administered within 12 months post birth.
Trigger pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 2 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; AND &quot;Dose number&quot; = 1) − &quot;Date of birth&quot; &lt; 12 months
Trigger date: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
Create condition: Pneumococcal dose 3 should be provided if the client was given the previous dose more than 4 weeks ago
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Pneumococcal dose 3
                            
                            <i>(Pneumococcal dose 3)</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>(Pneumococcal dose 3 Create)</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>
                    
                    <tr>
                        <td>
                            
                            <b> Pneumococcal booster dose:</b> Provision of booster dose for HIV-positive infants and preterm neonates
Trigger event: Third pneumococcal dose from the primary series was administered to client, who is more than 12 months of age. The latest pneumococcal dose was administered within 12 months post birth. Client is either HIV positive or had preterm birth.
Trigger pseudo: Today's date − &quot;Date of birth&quot; &gt; 12 months AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 3 AND Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 12 months AND (&quot;HIV status&quot; = &quot;HIV-positive&quot; OR &quot;Preterm birth&quot; = TRUE)
Trigger date: &quot;Date of birth&quot;
Create condition: HIV-positive infants and preterm neonates who have received their 3 primary vaccine doses before 12 months of age may benefit from a booster dose in the second year of life
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            Pneumococcal booster dose
                            
                            <i>(Pneumococcal booster dose)</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>(Pneumococcal booster dose Create)</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="DE251"/>
          <display value="At high risk for pneumococcal infection"/>
        </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="DE208"/>
          <display value="Preterm birth"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString value="Doses Administered to Patient"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/**
 * @dataElement All Doses Administered to Patient
 */
define &quot;Doses Administered to Patient&quot;:
  [Immunization] I
    where I.status = 'completed'
    and I.isSubpotent is not true"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="0"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Doses Administered to Patient"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/**
 * @dataElement All Doses Administered to Patient
 */
define &quot;Doses Administered to Patient&quot;:
  Elements.&quot;Doses Administered to Patient&quot; I
    where I.occurrence.toInterval() same day or before Today"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="1"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal Doses Administered to Patient"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Pneumococcal containing Doses Administered to Patient
*/
define &quot;Pneumococcal Doses Administered to Patient&quot;:
  Encounter.&quot;Doses Administered to Patient&quot; I
  where
    I.vaccineCode in Concepts.&quot;Pneumococcal vaccines&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="2"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Pneumococcal Primary Series Doses Administered to Patient"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Pneumococcal containing Doses Administered to Patient that are in the Primary series
*/
define &quot;Pneumococcal Primary Series Doses Administered to Patient&quot;:
  &quot;Pneumococcal Doses Administered to Patient&quot;.seriesPrimary()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="3"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Number of Pneumococcal Primary Series Doses Administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Number of Pneumococcal Primary Series doses
*/
define &quot;Number of Pneumococcal Primary Series Doses Administered&quot;:
  Count(&quot;Pneumococcal Primary Series Doses Administered to Patient&quot;)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="4"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Two pneumococcal primary series doses were administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Two pneumococcal primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 2
@code: Two pneumococcal primary series doses were administered-121
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;Two pneumococcal primary series doses were administered&quot;:
  &quot;Number of Pneumococcal Primary Series Doses Administered&quot; = 2"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="5"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Second pneumococcal dose from the primary series was administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@complete: Second pneumococcal dose from the primary series was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 2
*/
define &quot;Second pneumococcal dose from the primary series was administered&quot;:
  Encounter.&quot;Two pneumococcal primary series doses were administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="6"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Current Patient Age In Years"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/** 
 * @dataElement Patient age in years
 */
define &quot;Current Patient Age In Years&quot;:
  AgeInYearsAt(Today)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="7"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="The client's age is less than or equal to 5 years"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: The client's age is less than or equal to 5 years
@pseudocode: 'Today's date − &quot;Date of birth&quot; ≤ 5 years
@code: The client's age is less than or equal to 5 years-41
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
*/
define &quot;The client's age is less than or equal to 5 years&quot;:
  Encounter.&quot;Current Patient Age In Years&quot; &lt;= 5"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="8"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Date of First Pneumococcal Dose"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Date of First Pneumococcal Dose
*/
define &quot;Date of First Pneumococcal Dose&quot;:
  date from start of &quot;Pneumococcal Doses Administered to Patient&quot;.earliest().occurrence.toInterval()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="9"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="The first pneumococcal dose was administered within 24 months post birth"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: The first pneumococcal dose was administered within 24 months post birth
@pseudocode: &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 24 months
@code: The first pneumococcal dose was administered within 24 months post birth-109
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
*/
define &quot;The first pneumococcal dose was administered within 24 months post birth&quot;:
  AgeInMonthsAt(&quot;Date of First Pneumococcal Dose&quot;) &lt; 24"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="10"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Three pneumococcal primary series doses were administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Three pneumococcal primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 3
@code: Three pneumococcal primary series doses were administered-121
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;Three pneumococcal primary series doses were administered&quot;:
  &quot;Number of Pneumococcal Primary Series Doses Administered&quot; = 3"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="11"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Third pneumococcal dose from the primary series was administered. The primary series has been completed."/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@complete: Third pneumococcal dose from the primary series was administered. The primary series has been completed.
@pseudocode: &quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
*/
define &quot;Third pneumococcal dose from the primary series was administered. The primary series has been completed.&quot;:
  Encounter.&quot;Three pneumococcal primary series doses were administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="12"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 3"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 3
@description: Provision of the pneumococcal dose 3
@trigger: Second pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age. First pneumococcal dose was administered within 12 months post birth.
@pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 2 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; AND &quot;Dose number&quot; = 1) − &quot;Date of birth&quot; &lt; 12 months
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
*/
define &quot;Pneumococcal dose 3&quot;:
  &quot;Second pneumococcal dose from the primary series was administered&quot;
  and Encounter.&quot;The client's age is less than or equal to 5 years&quot;
  and Encounter.&quot;The first pneumococcal dose was administered within 24 months post birth&quot;  and not &quot;Third pneumococcal dose from the primary series was administered. The primary series has been completed.&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="13"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="One pneumococcal primary series dose was administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: One pneumococcal primary series dose was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
@code: One pneumococcal primary series dose was administered-121
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;One pneumococcal primary series dose was administered&quot;:
  &quot;Number of Pneumococcal Primary Series Doses Administered&quot; = 1"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="14"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="First pneumococcal dose from the primary series was administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@complete: First pneumococcal dose from the primary series was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
*/
define &quot;First pneumococcal dose from the primary series was administered&quot;:
  Encounter.&quot;One pneumococcal primary series dose was administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="15"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="The first pneumococcal dose was administered after 24 months post birth"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: The first pneumococcal dose was administered after 24 months post birth
@pseudocode: &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; ≥ 24 months
@code: The first pneumococcal dose was administered after 24 months post birth-109
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;The first pneumococcal dose was administered after 24 months post birth&quot;:
  AgeInMonthsAt(&quot;Date of First Pneumococcal Dose&quot;) &gt;= 24"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="16"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="At high risk for pneumococcal infection Observation"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: At high risk for pneumococcal infection Observation
*/
define &quot;At high risk for pneumococcal infection Observation&quot;:
  ([Observation: Concepts.&quot;At high risk for pneumococcal infection&quot;]).complete()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="17"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="At high risk for pneumococcal infection Observation"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: At high risk for pneumococcal infection Observation
*/
define &quot;At high risk for pneumococcal infection Observation&quot;:
  Elements.&quot;At high risk for pneumococcal infection Observation&quot;.encounterOrOnBefore(EncounterId, Today)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="18"/>
        </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 at high risk for pneumococcal infection"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Client is at high risk for pneumococcal infection
@pseudocode: &quot;At high risk for pneumococcal infection&quot; = TRUE
*/
define &quot;Client is at high risk for pneumococcal infection&quot;:
  exists( &quot;At high risk for pneumococcal infection Observation&quot; O where O.value = true )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="19"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Client is at high risk for pneumococcal infection"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Client is at high risk for pneumococcal infection
@pseudocode: &quot;At high risk for pneumococcal infection&quot; = TRUE
@code: Client is at high risk for pneumococcal infection-48
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;Client is at high risk for pneumococcal infection&quot;:
  Encounter.&quot;Client is at high risk for pneumococcal infection&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="20"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 2, first after 24m"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 2, first after 24m
@description: Provision of the pneumococcal dose 2
@trigger: First pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age. Pneumococcal dose was not administered within 24 months post birth. Client is at high risk for pneumococcal infection.
@pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; ≥ 24 months AND &quot;At high risk for pneumococcal infection&quot; = TRUE
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
*/
define &quot;Pneumococcal dose 2, first after 24m&quot;:
  &quot;First pneumococcal dose from the primary series was administered&quot;
  and Encounter.&quot;The client's age is less than or equal to 5 years&quot;
  and Encounter.&quot;The first pneumococcal dose was administered after 24 months post birth&quot;
  and Encounter.&quot;Client is at high risk for pneumococcal infection&quot;
  and not &quot;Second pneumococcal dose from the primary series was administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="21"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 2, first within 24m"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 2, first within 24m
@description: Provision of the pneumococcal dose 2
@trigger: First pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age, within 24 months post birth
@pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 24 months
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
*/
define &quot;Pneumococcal dose 2, first within 24m&quot;:
  &quot;First pneumococcal dose from the primary series was administered&quot;
  and Encounter.&quot;The client's age is less than or equal to 5 years&quot;
  and Encounter.&quot;The first pneumococcal dose was administered within 24 months post birth&quot;
  and not &quot;Second pneumococcal dose from the primary series was administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="22"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Date of Latest Pneumococcal Dose"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Date of Latest Pneumococcal Dose
*/
define &quot;Date of Latest Pneumococcal Dose&quot;:
  date from start of &quot;Pneumococcal Doses Administered to Patient&quot;.mostRecent().occurrence.toInterval()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="23"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Pneumococcal dose 2, first within 24m Due Date"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal dose 2, first within 24m Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) + 4 weeks
*/
define &quot;Pneumococcal dose 2, first within 24m Due Date&quot;:
  if &quot;Pneumococcal dose 2, first within 24m&quot; then Encounter.&quot;Date of Latest Pneumococcal Dose&quot; + 4 weeks
  else null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="24"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 2, first within 24m Create"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 2, first within 24m Create
@create: Pneumococcal dose 2 should be provided if the client was given the previous dose more than 4 weeks ago
*/
define &quot;Pneumococcal dose 2, first within 24m Create&quot;:
  if &quot;Pneumococcal dose 2, first within 24m&quot;
  then 'Pneumococcal dose 2 should be provided if the client was given the previous dose more than 4 weeks ago' + '
Due Date: ' + ToString(&quot;Pneumococcal dose 2, first within 24m Due Date&quot;)
  else ''"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="25"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="The latest pneumococcal dose was administered within 12 months post birth"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: The latest pneumococcal dose was administered within 12 months post birth
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 12 months
@code: The latest pneumococcal dose was administered within 12 months post birth-116
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;The latest pneumococcal dose was administered within 12 months post birth&quot;:
  AgeInMonthsAt(&quot;Date of Latest Pneumococcal Dose&quot;) &lt; 12"/>
        </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="/*
@internal: HIV Status Observation
*/
define &quot;HIV status Observation&quot;:
  ([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="/*
@input: Client's HIV status is positive
@pseudocode: &quot;HIV status&quot; = &quot;HIV-positive&quot;
*/
define &quot;Client's HIV status is positive&quot;:
  exists( (Elements.&quot;HIV status Observation&quot;.encounterOrOnBefore(EncounterId, Today)) O
    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="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Client's HIV status is positive"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Client's HIV status is positive
@pseudocode: &quot;HIV status&quot; = &quot;HIV-positive&quot;
@code: Client's HIV status is positive-29
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;Client's HIV status is positive&quot;:
  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="Preterm birth Observation"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Preterm birth Observation
*/
define &quot;Preterm birth Observation&quot;:
  ([Observation: Concepts.&quot;Preterm birth&quot;]).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="Preterm birth Observation"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Preterm birth Observation
*/
define &quot;Preterm birth Observation&quot;:
  Elements.&quot;Preterm birth 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 was a premature infant at birth"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Client was a premature infant at birth
@pseudocode: &quot;Preterm birth&quot; =  TRUE
*/
define &quot;Client was a premature infant at birth&quot;:
  exists( &quot;Preterm birth Observation&quot; O where O.value = true )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="32"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString value="Client had preterm birth"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: Client had preterm birth
@pseudocode: &quot;Preterm birth&quot; = TRUE
@code: Client had preterm birth-22
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;Client had preterm birth&quot;:
  Encounter.&quot;Client was a premature infant at birth&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="33"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal booster dose Expiration"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal booster dose Expiration
@pseudocode: &quot;Date of birth&quot; + 24 months
*/
define &quot;Pneumococcal booster dose Expiration&quot;:
  Patient.birthDate + 24 months"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="34"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Pneumococcal Booster Series Doses Administered to Patient"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Pneumococcal Booster Series Doses Administered to Patient
*/
define &quot;Pneumococcal Booster Series Doses Administered to Patient&quot;:
  &quot;Pneumococcal Doses Administered to Patient&quot;.seriesBooster()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="35"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Number of Pneumococcal Booster Series Doses Administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@internal: Number of Pneumococcal Booster Series Doses Administered
*/
define &quot;Number of Pneumococcal Booster Series Doses Administered&quot;:
  Count(&quot;Pneumococcal Booster Series Doses Administered to Patient&quot;)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="36"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="One pneumococcal booster dose was administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: One pneumococcal booster dose was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Booster dose&quot;) = 1
@code: One pneumococcal booster dose was administered-119
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;One pneumococcal booster dose was administered&quot;:
  &quot;Number of Pneumococcal Booster Series Doses Administered&quot; = 1"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="37"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="One pneumococcal booster dose was administered."/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@complete: One pneumococcal booster dose was administered.
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Booster dose&quot;) = 1
*/
define &quot;One pneumococcal booster dose was administered.&quot;:
  Encounter.&quot;One pneumococcal booster dose was administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="38"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal booster dose"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal booster dose
@description: Provision of booster dose for HIV-positive infants and preterm neonates
@trigger: Third pneumococcal dose from the primary series was administered to client, who is more than 12 months of age. The latest pneumococcal dose was administered within 12 months post birth. Client is either HIV positive or had preterm birth.
@pseudo: Today's date − &quot;Date of birth&quot; &gt; 12 months AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 3 AND Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 12 months AND (&quot;HIV status&quot; = &quot;HIV-positive&quot; OR &quot;Preterm birth&quot; = TRUE)
@triggerDate: &quot;Date of birth&quot;
*/
define &quot;Pneumococcal booster dose&quot;:
  &quot;Third pneumococcal dose from the primary series was administered. The primary series has been completed.&quot;
  and Encounter.&quot;The latest pneumococcal dose was administered within 12 months post birth&quot;
  and (
    Encounter.&quot;Client's HIV status is positive&quot;
    or Encounter.&quot;Client had preterm birth&quot;
  )
  and &quot;Pneumococcal booster dose Expiration&quot; after day of Today
  and not &quot;One pneumococcal booster dose was administered.&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="39"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal booster dose Due Date"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal booster dose Due Date
@pseudocode: &quot;Date of birth&quot; + 12 months
*/
define &quot;Pneumococcal booster dose Due Date&quot;:
  if &quot;Pneumococcal booster dose&quot; then Patient.birthDate + 12 months
  else null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="40"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal booster dose Overdue"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal booster dose Overdue
@pseudocode: &quot;Date of birth&quot; + 24 months
*/
define &quot;Pneumococcal booster dose Overdue&quot;:
  if &quot;Pneumococcal booster dose&quot; then Patient.birthDate + 24 months
  else null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="41"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal booster dose Create"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal booster dose Create
@create: HIV-positive infants and preterm neonates who have received their 3 primary vaccine doses before 12 months of age may benefit from a booster dose in the second year of life
*/
define &quot;Pneumococcal booster dose Create&quot;:
  if &quot;Pneumococcal booster dose&quot;
  then 'HIV-positive infants and preterm neonates who have received their 3 primary vaccine doses before 12 months of age may benefit from a booster dose in the second year of life' + '
Due Date: ' + ToString(&quot;Pneumococcal booster dose Due Date&quot;) + '
Overdue: ' + ToString(&quot;Pneumococcal booster dose Overdue&quot;) + '
Expiration: ' + ToString(&quot;Pneumococcal booster dose Expiration&quot;)
  else ''"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="42"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 2, first after 24m Due Date"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal dose 2, first after 24m Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) + 8 weeks
*/
define &quot;Pneumococcal dose 2, first after 24m Due Date&quot;:
  if &quot;Pneumococcal dose 2, first after 24m&quot; then Encounter.&quot;Date of Latest Pneumococcal Dose&quot; + 8 weeks
  else null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="43"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 2, first after 24m Create"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 2, first after 24m Create
@create: Pneumococcal dose 2 should be provided if the client was given the previous dose more than 8 weeks ago
*/
define &quot;Pneumococcal dose 2, first after 24m Create&quot;:
  if &quot;Pneumococcal dose 2, first after 24m&quot;
  then 'Pneumococcal dose 2 should be provided if the client was given the previous dose more than 8 weeks ago' + '
Due Date: ' + ToString(&quot;Pneumococcal dose 2, first after 24m Due Date&quot;)
  else ''"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="44"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 3 Due Date"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal dose 3 Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) + 4 weeks
*/
define &quot;Pneumococcal dose 3 Due Date&quot;:
  if &quot;Pneumococcal dose 3&quot; then Encounter.&quot;Date of Latest Pneumococcal Dose&quot; + 4 weeks
  else null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="45"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 3 Create"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 3 Create
@create: Pneumococcal dose 3 should be provided if the client was given the previous dose more than 4 weeks ago
*/
define &quot;Pneumococcal dose 3 Create&quot;:
  if &quot;Pneumococcal dose 3&quot;
  then 'Pneumococcal dose 3 should be provided if the client was given the previous dose more than 4 weeks ago' + '
Due Date: ' + ToString(&quot;Pneumococcal dose 3 Due Date&quot;)
  else ''"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="46"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD2DTPneumococcalEncounterElements"/>
        </extension>
        <extension url="name">
          <valueString
                       value="No pneumococcal primary series doses were administered"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@input: No pneumococcal primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 0
@code: No pneumococcal primary series doses were administered-121
@decision: IMMZ.D2.DT.Pneumococcal.2 doses with booster dose: 2 primary doses with a booster dose (2p+1)
@decision: IMMZ.D2.DT.Pneumococcal.3 doses: 3 primary doses (3p+0)
*/
define &quot;No pneumococcal primary series doses were administered&quot;:
  &quot;Number of Pneumococcal Primary Series Doses Administered&quot; = 0"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="47"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 1"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 1
@description: Provision of the pneumococcal dose 1
@trigger: Child's birth
@pseudo: 
@triggerDate: &quot;Date of birth&quot;
*/
define &quot;Pneumococcal dose 1&quot;:
  Encounter.&quot;The client's age is less than or equal to 5 years&quot;
  and Encounter.&quot;No pneumococcal primary series doses were administered&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="48"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 1 Due Date"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@dynamicValue: Pneumococcal dose 1 Due Date
@pseudocode: &quot;Date of birth&quot; + 6 weeks
*/
define &quot;Pneumococcal dose 1 Due Date&quot;:
  if &quot;Pneumococcal dose 1&quot; then Patient.birthDate + 6 weeks
  else null"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="49"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZD18SPneumococcal3DosesLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Pneumococcal dose 1 Create"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@output: Pneumococcal dose 1 Create
@create: Pneumococcal dose 1 should be provided if the client is older than 6 weeks
*/
define &quot;Pneumococcal dose 1 Create&quot;:
  if &quot;Pneumococcal dose 1&quot;
  then 'Pneumococcal dose 1 should be provided if the client is older than 6 weeks' + '
Due Date: ' + ToString(&quot;Pneumococcal dose 1 Due Date&quot;)
  else ''"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="50"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZCommon"/>
        </extension>
        <extension url="name">
          <valueString value="seriesPrimary"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/**
 * @description: Gets the doses from the primary series
 */
define fluent function seriesPrimary(immunizations List&lt;Immunization&gt;):
  immunizations I where
    exists( I.protocolApplied pa where pa.series = 'Primary series' )"/>
        </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="ToString"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToString(value string): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="52"/>
        </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 ImmunizationStatus): value.value"/>
        </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="ToBoolean"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToBoolean(value boolean): 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):
    if concept is null then
        null
    else
        System.Concept {
            codes: concept.coding C return ToCode(C),
            display: concept.text.value
        }"/>
        </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):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }"/>
        </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="earliest"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define fluent function earliest(immunizations List&lt;Immunization&gt;):
  First(
    immunizations I
      sort by start of occurrence.toInterval()
  )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="57"/>
        </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="/**
 * @description: Gets observation from an encounter or on or before a date
 */
define fluent function encounterOrOnBefore(observations List&lt;Observation&gt;, EncounterId String, beforeDate Date):
  observations O where
    (O.encounter.references(EncounterId)
      or O.effective.toInterval() starts same day or before beforeDate)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="58"/>
        </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="/*
@description: Returns true if the given reference is to the given resourceId
@comment: Returns true if the `resourceId` parameter exactly equals the tail of the given reference.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(reference FHIR.Reference, resourceId String):
  resourceId = Last(Split(reference.reference, '/'))"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="59"/>
        </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;):
  observations O where O.status in { 'final', 'amended', 'corrected' }"/>
        </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 ObservationStatus): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="61"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="WHOCommon"/>
        </extension>
        <extension url="name">
          <valueString value="mostRecent"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define fluent function mostRecent(immunizations List&lt;Immunization&gt;):
  Last(
    immunizations I
      sort by start of occurrence.toInterval()
  )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="62"/>
        </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="63"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="IMMZCommon"/>
        </extension>
        <extension url="name">
          <valueString value="seriesBooster"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/**
 * @description: Gets the doses from the Booster series
 */
define fluent function seriesBooster(immunizations List&lt;Immunization&gt;):
  immunizations I where
    exists( I.protocolApplied pa where pa.series = 'Booster dose' )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="64"/>
        </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/IMMZD2DTPneumococcalEncounterElements"/>
      </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 FHIRHelpers"/>
        <resource
                  value="http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1"/>
      </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 Elements"/>
        <resource
                  value="http://smart.who.int/immunizations/Library/IMMZElements"/>
      </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 Concepts"/>
        <resource
                  value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
      </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 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 Concepts"/>
        <resource
                  value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
      </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="Value set Pneumococcal vaccines"/>
        <resource
                  value="http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE13"/>
      </relatedArtifact>
      <parameter>
        <name value="Today"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="date"/>
      </parameter>
      <parameter>
        <name value="EncounterId"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 3"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 2, first after 24m"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 2, first within 24m Create"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 2, first within 24m"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal booster dose"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal booster dose Create"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 2, first after 24m Create"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 3 Create"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 1 Create"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Pneumococcal dose 1"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
        <mustSupport value="occurrence"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
        <mustSupport value="occurrence"/>
        <mustSupport value="vaccineCode"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Patient"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Patient"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system
                    value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE251"/>
            <display value="At high risk for pneumococcal infection"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <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="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system
                    value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE208"/>
            <display value="Preterm birth"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Patient"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
        <mustSupport value="occurrence"/>
        <mustSupport value="vaccineCode"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
        <mustSupport value="occurrence"/>
        <mustSupport value="vaccineCode"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system
                    value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE251"/>
            <display value="At high risk for pneumococcal infection"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <code>
            <system
                    value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
            <code value="DE208"/>
            <display value="Preterm birth"/>
          </code>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
        <mustSupport value="occurrence"/>
        <mustSupport value="vaccineCode"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Immunization"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
        <mustSupport value="status"/>
        <mustSupport value="isSubpotent"/>
        <mustSupport value="occurrence"/>
        <mustSupport value="vaccineCode"/>
      </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/IMMZD18SPneumococcal3Doses"/>
  <version value="0.2.0"/>
  <name value="IMMZD18SPneumococcal3Doses"/>
  <title value="IMMZ.D18.S.Pneumococcal.3 doses schedule"/>
  <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-03T13:07:11+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="IMMZ.D18.S.Pneumococcal.3 doses schedule
3 primary doses (3p+0) schedule"/>
  <relatedArtifact>
    <type value="citation"/>
    <citation
              value="WHO recommendations for routine immunization - summary tables (January 2025)"/>
  </relatedArtifact>
  <library
           value="http://smart.who.int/immunizations/Library/IMMZD18SPneumococcal3DosesLogic"/>
  <action>
    <title value="Pneumococcal dose 1"/>
    <description
                 value="Provision of the pneumococcal dose 1
Trigger event: Child's birth
Trigger pseudo: 
Trigger date: &quot;Date of birth&quot;
Create condition: Pneumococcal dose 1 should be provided if the client is older than 6 weeks"/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Pneumococcal dose 1"/>
        <language value="text/cql-identifier"/>
        <expression value="Pneumococcal dose 1"/>
      </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="Pneumococcal dose 1 Create"/>
      </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>
  <action>
    <title value="Pneumococcal dose 2, first within 24m"/>
    <description
                 value="Provision of the pneumococcal dose 2
Trigger event: First pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age, within 24 months post birth
Trigger pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 24 months
Trigger date: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
Create condition: Pneumococcal dose 2 should be provided if the client was given the previous dose more than 4 weeks ago"/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Pneumococcal dose 2, first within 24m"/>
        <language value="text/cql-identifier"/>
        <expression value="Pneumococcal dose 2, first within 24m"/>
      </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="Pneumococcal dose 2, first within 24m Create"/>
      </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>
  <action>
    <title value="Pneumococcal dose 2, first after 24m"/>
    <description
                 value="Provision of the pneumococcal dose 2
Trigger event: First pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age. Pneumococcal dose was not administered within 24 months post birth. Client is at high risk for pneumococcal infection.
Trigger pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; ≥ 24 months AND &quot;At high risk for pneumococcal infection&quot; = TRUE
Trigger date: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
Create condition: Pneumococcal dose 2 should be provided if the client was given the previous dose more than 8 weeks ago"/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Pneumococcal dose 2, first after 24m"/>
        <language value="text/cql-identifier"/>
        <expression value="Pneumococcal dose 2, first after 24m"/>
      </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="Pneumococcal dose 2, first after 24m Create"/>
      </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>
  <action>
    <title value="Pneumococcal dose 3"/>
    <description
                 value="Provision of the pneumococcal dose 3
Trigger event: Second pneumococcal dose from the primary series was administered to client, who is less than or equal to 5 years of age. First pneumococcal dose was administered within 12 months post birth.
Trigger pseudo: Today's date − &quot;Date of birth&quot; ≤ 5 years AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 2 AND &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; AND &quot;Dose number&quot; = 1) − &quot;Date of birth&quot; &lt; 12 months
Trigger date: Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;)
Create condition: Pneumococcal dose 3 should be provided if the client was given the previous dose more than 4 weeks ago"/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Pneumococcal dose 3"/>
        <language value="text/cql-identifier"/>
        <expression value="Pneumococcal dose 3"/>
      </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="Pneumococcal dose 3 Create"/>
      </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>
  <action>
    <title value="Pneumococcal booster dose"/>
    <description
                 value="Provision of booster dose for HIV-positive infants and preterm neonates
Trigger event: Third pneumococcal dose from the primary series was administered to client, who is more than 12 months of age. The latest pneumococcal dose was administered within 12 months post birth. Client is either HIV positive or had preterm birth.
Trigger pseudo: Today's date − &quot;Date of birth&quot; &gt; 12 months AND Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 3 AND Latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Pneumococcal vaccines&quot;) − &quot;Date of birth&quot; &lt; 12 months AND (&quot;HIV status&quot; = &quot;HIV-positive&quot; OR &quot;Preterm birth&quot; = TRUE)
Trigger date: &quot;Date of birth&quot;
Create condition: HIV-positive infants and preterm neonates who have received their 3 primary vaccine doses before 12 months of age may benefit from a booster dose in the second year of life"/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <description value="Pneumococcal booster dose"/>
        <language value="text/cql-identifier"/>
        <expression value="Pneumococcal booster dose"/>
      </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="Pneumococcal booster dose Create"/>
      </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>