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/ and changes regularly. See the Directory of published versions
Draft as of 2025-09-17 |
<PlanDefinition xmlns="http://hl7.org/fhir">
<id value="IMMZD18SPneumococcal3p0b"/>
<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;">IMMZD18SPneumococcal3p0b</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="PlanDefinition-IMMZD18SPneumococcal3p0b.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/6.5.0/CodeSystem-plan-definition-type.html">http://terminology.hl7.org/CodeSystem/plan-definition-type</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>eca-rule</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 4px;">2025-09-17 23:03:28+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-IMMZD18SPneumococcal3p0bLogic.html">IMMZD18SPneumococcal3p0bLogic</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 date: "Date of birth"
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
Today's date − "Date of birth" ≤ 5 years AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 1 AND "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines") − "Date of birth" < 24 months
Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines")
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.
Today's date − "Date of birth" ≤ 5 years AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 1 AND "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines") − "Date of birth" ≥ 24 months AND "At high risk for pneumococcal infection" = TRUE
Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines")
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.
Today's date − "Date of birth" ≤ 5 years AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 2 AND "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines" AND "Dose number" = 1) − "Date of birth" < 12 months
Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines")
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.
Today's date − "Date of birth" > 12 months AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 3 AND Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines") − "Date of birth" < 12 months AND ("HIV status" = "HIV-positive" OR "Preterm birth" = TRUE)
Trigger date: "Date of birth"
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>
<extension
url="http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability">
<valueCode value="computable"/>
</extension>
<url
value="http://smart.who.int/immunizations/PlanDefinition/IMMZD18SPneumococcal3p0b"/>
<version value="0.2.0"/>
<name value="IMMZD18SPneumococcal3p0b"/>
<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="2025-09-17T23:03:28+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/IMMZD18SPneumococcal3p0bLogic"/>
<action>
<title value="Pneumococcal dose 1"/>
<description
value="Provision of the pneumococcal dose 1
Trigger event: Child's birth
Trigger date: "Date of birth"
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
Today's date − "Date of birth" ≤ 5 years AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 1 AND "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines") − "Date of birth" < 24 months
Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines")
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.
Today's date − "Date of birth" ≤ 5 years AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 1 AND "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines") − "Date of birth" ≥ 24 months AND "At high risk for pneumococcal infection" = TRUE
Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines")
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.
Today's date − "Date of birth" ≤ 5 years AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 2 AND "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines" AND "Dose number" = 1) − "Date of birth" < 12 months
Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines")
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.
Today's date − "Date of birth" > 12 months AND Count of vaccines administered (where "Vaccine type" = "Pneumococcal vaccines" and "Type of dose" = "Primary series") = 3 AND Latest "Date and time of vaccination" (where "Vaccine type" = "Pneumococcal vaccines") − "Date of birth" < 12 months AND ("HIV status" = "HIV-positive" OR "Preterm birth" = TRUE)
Trigger date: "Date of birth"
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>