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
| Draft as of 2026-03-03 |
<PlanDefinition xmlns="http://hl7.org/fhir">
<id value="IMMZD18SDTPPregnancyStartingWith3Doses"/>
<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;">IMMZD18SDTPPregnancyStartingWith3Doses</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="PlanDefinition-IMMZD18SDTPPregnancyStartingWith3Doses.html">IMMZ.D18.S.DTP.Pregnancy starting with 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.DTP.Pregnancy starting with 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.DTP.Pregnancy starting with 3 doses schedule
Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood diphtheria–tetanus–pertussis (DTP) doses</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-IMMZD18SDTPPregnancyStartingWith3DosesLogic.html">IMMZD18SDTPPregnancyStartingWith3DosesLogic</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> Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy):</b> Provision of tetanus and diphtheria booster dose 1 for pregnant women who received only 3 doses of DTP during childhood without booster doses
Trigger event: The primary DTP series has been completed and client is currently pregnant
Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") AND "Currently pregnant" = TRUE
Trigger date: "Contact date" WHEN "ANC contact number" = 1
Create condition: Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth.
<br/>
<b>If:</b>
<i>Applicability:</i>
Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)
<i>(Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy))</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>(Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) 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> Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy):</b> Provision of tetanus and diphtheria booster dose 2 for pregnant women who received only 3 doses of DTP during childhood without booster doses
Trigger event: First tetanus and diphtheria booster dose was administered
Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 1
Trigger date: Latest "Date and time of vaccination" where "Vaccine type" = "Tetanus and diphtheria-containing vaccines"
Create condition: Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth.
<br/>
<b>If:</b>
<i>Applicability:</i>
Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)
<i>(Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy))</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>(Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) 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> Tetanus and diphtheria-containing vaccine booster dose 3:</b> Provision of tetanus and diphtheria booster dose 3 for pregnant women who received only 3 doses of DTP during childhood without booster doses
Trigger event: Second tetanus and diphtheria booster dose was administered
Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 2
Trigger date: Latest "Date and time of vaccination" where "Vaccine type" = "Tetanus and diphtheria-containing vaccines"
Create condition: A sixth dose would be needed at least 1 year after the fifth dose, or during the next pregnancy.
<br/>
<b>If:</b>
<i>Applicability:</i>
Tetanus and diphtheria-containing vaccine booster dose 3
<i>(Tetanus and diphtheria-containing vaccine booster 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>(Tetanus and diphtheria-containing vaccine booster 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>
</table>
</td>
</tr>
</table>
</div>
</div>
</text>
<contained>
<Library>
<id value="effective-data-requirements"/>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
<code value="DE161"/>
<display value="Potential contraindications"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
<code value="DE162"/>
<display value="Currently pregnant"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system
value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
<code value="active"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system
value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
<code value="recurrence"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system
value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
<code value="relapse"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="82810-3"/>
<display value="Pregnancy status"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
<valueCoding>
<system value="http://loinc.org"/>
<code value="LA15173-0"/>
<display value="Pregnant"/>
</valueCoding>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-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 "Doses Administered to Patient":
[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="IMMZD2DTDTPElements"/>
</extension>
<extension url="name">
<valueString value="Td Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Td Doses Administered to Patient
*/
define "Td Doses Administered to Patient":
Elements."Doses Administered to Patient" I
where
I.vaccineCode in Concepts."Tetanus and diphtheria-containing vaccines""/>
</extension>
<extension url="displaySequence">
<valueInteger value="1"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPElements"/>
</extension>
<extension url="name">
<valueString
value="Td Booster Series Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Td Booster Series Doses Administered to Patient
*/
define "Td Booster Series Doses Administered to Patient":
"Td Doses Administered to Patient".seriesBooster()"/>
</extension>
<extension url="displaySequence">
<valueInteger value="2"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="Td Booster Series Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Td Booster Series Doses Administered to Patient
*/
define "Td Booster Series Doses Administered to Patient":
DTPElements."Td Booster Series Doses Administered to Patient".onOrBefore(Today)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="3"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="Number of Td Booster Series Doses Administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Number of Td Booster Series Doses Administered
*/
define "Number of Td Booster Series Doses Administered":
Count("Td Booster Series Doses Administered to Patient")"/>
</extension>
<extension url="displaySequence">
<valueInteger value="4"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="Two tetanus and diphtheria booster doses were administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@input: Two tetanus and diphtheria booster doses were administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 2
@code: Two tetanus and diphtheria booster doses were administered-140
@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)
@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age
@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses
*/
define "Two tetanus and diphtheria booster doses were administered":
"Number of Td Booster Series Doses Administered" = 2"/>
</extension>
<extension url="displaySequence">
<valueInteger value="5"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Second tetanus and diphtheria booster dose was administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@complete: Second tetanus and diphtheria booster dose was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 2
*/
define "Second tetanus and diphtheria booster dose was administered":
Encounter."Two tetanus and diphtheria booster doses were administered""/>
</extension>
<extension url="displaySequence">
<valueInteger value="6"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="Three tetanus and diphtheria booster doses were administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@input: Three tetanus and diphtheria booster doses were administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 3
@code: Three tetanus and diphtheria booster doses were administered-140
@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)
@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses
*/
define "Three tetanus and diphtheria booster doses were administered":
"Number of Td Booster Series Doses Administered" = 3"/>
</extension>
<extension url="displaySequence">
<valueInteger value="7"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Third tetanus and diphtheria-containing booster dose was administered. Tetanus and diphtheria immunization schedule has been completed"/>
</extension>
<extension url="statement">
<valueString
value="/*
@complete: Third tetanus and diphtheria-containing booster dose was administered. Tetanus and diphtheria immunization schedule has been completed
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 3
"Immunization recommendation status" = "Complete" (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines")
*/
define "Third tetanus and diphtheria-containing booster dose was administered. Tetanus and diphtheria immunization schedule has been completed":
Encounter."Three tetanus and diphtheria booster doses were administered""/>
</extension>
<extension url="displaySequence">
<valueInteger value="8"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 3"/>
</extension>
<extension url="statement">
<valueString
value="/*
@output: Tetanus and diphtheria-containing vaccine booster dose 3
@description: Provision of tetanus and diphtheria booster dose 3 for pregnant women who received only 3 doses of DTP during childhood without booster doses
@trigger: Second tetanus and diphtheria booster dose was administered
@pseudo: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 2
@triggerDate: Latest "Date and time of vaccination" where "Vaccine type" = "Tetanus and diphtheria-containing vaccines"
*/
define "Tetanus and diphtheria-containing vaccine booster dose 3":
"Second tetanus and diphtheria booster dose was administered" and
not "Third tetanus and diphtheria-containing booster dose was administered. Tetanus and diphtheria immunization schedule has been completed""/>
</extension>
<extension url="displaySequence">
<valueInteger value="9"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPElements"/>
</extension>
<extension url="name">
<valueString value="DTP Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: DTP containing Doses Administered to Patient
*/
define "DTP Doses Administered to Patient":
Elements."Doses Administered to Patient" I
where
I.vaccineCode in Concepts."DTP-containing vaccines""/>
</extension>
<extension url="displaySequence">
<valueInteger value="10"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPElements"/>
</extension>
<extension url="name">
<valueString
value="DTP Primary Series Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: DTP containing Doses Administered to Patient that are in the Primary series
*/
define "DTP Primary Series Doses Administered to Patient":
"DTP Doses Administered to Patient".seriesPrimary()"/>
</extension>
<extension url="displaySequence">
<valueInteger value="11"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="DTP Primary Series Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: DTP containing Doses Administered to Patient that are in the Primary series
*/
define "DTP Primary Series Doses Administered to Patient":
DTPElements."DTP Primary Series Doses Administered to Patient".onOrBefore(Today)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="12"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="Number of DTP Primary Series Doses Administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Number of DTP Primary Series doses
*/
define "Number of DTP Primary Series Doses Administered":
Count("DTP Primary Series Doses Administered to Patient")"/>
</extension>
<extension url="displaySequence">
<valueInteger value="13"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="Three DTP primary series doses were administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@input: Three DTP primary series doses were administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 3
@code: Three DTP primary series doses were administered-123
@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)
@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age
@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses
*/
define "Three DTP primary series doses were administered":
"Number of DTP Primary Series Doses Administered" = 3"/>
</extension>
<extension url="displaySequence">
<valueInteger value="14"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZElements"/>
</extension>
<extension url="name">
<valueString value="Potential contraindications"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Potential contraindications observations
*/
define "Potential contraindications":
([Observation: Concepts."Potential contraindications"]).complete()"/>
</extension>
<extension url="displaySequence">
<valueInteger value="15"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZElements"/>
</extension>
<extension url="name">
<valueString value="CI Currently pregnant Observation"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Observation for currently pregnant
*/
define "CI Currently pregnant Observation":
"Potential contraindications" O
where O.value ~ Concepts."CI-Currently pregnant""/>
</extension>
<extension url="displaySequence">
<valueInteger value="16"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZEncounterElements"/>
</extension>
<extension url="name">
<valueString value="CI Currently pregnant Observation"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Observation for currently pregnant
*/
define "CI Currently pregnant Observation":
Elements."CI Currently pregnant Observation" O
where O.encounter.references(EncounterId)
or O.effective.toInterval() starts same day or after Today - 9 months"/>
</extension>
<extension url="displaySequence">
<valueInteger value="17"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZElements"/>
</extension>
<extension url="name">
<valueString value="CI Currently pregnant Condition"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Condition for currently pregnant
*/
define "CI Currently pregnant Condition":
[Condition: Concepts."CI-Currently pregnant"]"/>
</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="CI Currently pregnant Condition"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Condition for currently pregnant
*/
define "CI Currently pregnant Condition":
Elements."CI Currently pregnant Condition" C
where C.prevalenceInterval() includes Today"/>
</extension>
<extension url="displaySequence">
<valueInteger value="19"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="WHOElements"/>
</extension>
<extension url="name">
<valueString value="Pregnancy Status Observation"/>
</extension>
<extension url="statement">
<valueString
value="define "Pregnancy Status Observation":
[Observation: Concepts."Pregnancy status"] O
where O.status in { 'final', 'amended', 'corrected' }"/>
</extension>
<extension url="displaySequence">
<valueInteger value="20"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="WHOElements"/>
</extension>
<extension url="name">
<valueString value="Pregnant Observation"/>
</extension>
<extension url="statement">
<valueString
value="define "Pregnant Observation":
"Pregnancy Status Observation" O
where O.value ~ Concepts."Pregnant""/>
</extension>
<extension url="displaySequence">
<valueInteger value="21"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="WHOEncounterElements"/>
</extension>
<extension url="name">
<valueString value="Pregnant Observation"/>
</extension>
<extension url="statement">
<valueString
value="define "Pregnant Observation":
Elements."Pregnant Observation" O
where O.encounter.references(EncounterId)
or O.effective.toInterval() starts same day or after AsOf - 9 months"/>
</extension>
<extension url="displaySequence">
<valueInteger value="22"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZEncounterElements"/>
</extension>
<extension url="name">
<valueString value="The client is pregnant"/>
</extension>
<extension url="statement">
<valueString
value="/*
@input: The client is pregnant
@pseudocode: "Potential contraindications" = "Currently pregnant"
*/
define "The client is pregnant":
exists "CI Currently pregnant Observation"
or exists "CI Currently pregnant Condition"
or exists WE."Pregnant Observation""/>
</extension>
<extension url="displaySequence">
<valueInteger value="23"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString value="Client is currently pregnant"/>
</extension>
<extension url="statement">
<valueString
value="/*
@input: Client is currently pregnant
@pseudocode: "Currently pregnant" = TRUE
@code: Client is currently pregnant-27
@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses
*/
define "Client is currently pregnant":
Encounter."The client is pregnant""/>
</extension>
<extension url="displaySequence">
<valueInteger value="24"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString
value="One tetanus and diphtheria booster dose was administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@input: One tetanus and diphtheria booster dose was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 1
@code: One tetanus and diphtheria booster dose was administered-140
@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)
@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age
@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women
@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses
*/
define "One tetanus and diphtheria booster dose was administered":
"Number of Td Booster Series Doses Administered" = 1"/>
</extension>
<extension url="displaySequence">
<valueInteger value="25"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="First tetanus and diphtheria booster dose was administered"/>
</extension>
<extension url="statement">
<valueString
value="/*
@complete: First tetanus and diphtheria booster dose was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 1
*/
define "First tetanus and diphtheria booster dose was administered":
Encounter."One tetanus and diphtheria booster dose was administered""/>
</extension>
<extension url="displaySequence">
<valueInteger value="26"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)"/>
</extension>
<extension url="statement">
<valueString
value="/*
@output: Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)
@description: Provision of tetanus and diphtheria booster dose 1 for pregnant women who received only 3 doses of DTP during childhood without booster doses
@trigger: The primary DTP series has been completed and client is currently pregnant
@pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") AND "Currently pregnant" = TRUE
@triggerDate: "Contact date" WHEN "ANC contact number" = 1
*/
define "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)":
Encounter."Three DTP primary series doses were administered"
and Encounter."Client is currently pregnant"
and not("First tetanus and diphtheria booster dose was administered")"/>
</extension>
<extension url="displaySequence">
<valueInteger value="27"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Due Date"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Due Date
@pseudocode: "Contact date" WHEN "ANC contact number" = 1
*/
define "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Due Date":
if "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)" then Today
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="28"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Overdue"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Overdue
@pseudocode: Every subsequent contact until 38 weeks
*/
define "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Overdue":
if "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)" then Today
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="29"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Expiration"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Expiration
@pseudocode: Two weeks before birth for the pregnancy; however, individuals remain eligible to be vaccinated.
"Gestational age" < 38 weeks
*/
define "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Expiration":
if "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)" then 'Two weeks before birth'
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="30"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Create"/>
</extension>
<extension url="statement">
<valueString
value="/*
@output: Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Create
@create: Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth.
*/
define "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Create":
if "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)"
then 'Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth.' + '
Due Date: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Due Date") + '
Overdue: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Overdue") + '
Expiration: ' + "Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Expiration"
else ''"/>
</extension>
<extension url="displaySequence">
<valueInteger value="31"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)"/>
</extension>
<extension url="statement">
<valueString
value="/*
@output: Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)
@description: Provision of tetanus and diphtheria booster dose 2 for pregnant women who received only 3 doses of DTP during childhood without booster doses
@trigger: First tetanus and diphtheria booster dose was administered
@pseudo: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 1
@triggerDate: Latest "Date and time of vaccination" where "Vaccine type" = "Tetanus and diphtheria-containing vaccines"
*/
define "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)":
"First tetanus and diphtheria booster dose was administered" and
Encounter."Client is currently pregnant" and
not "Second tetanus and diphtheria booster dose was administered""/>
</extension>
<extension url="displaySequence">
<valueInteger value="32"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString value="Td Doses Administered to Patient"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Td Doses Administered to Patient
*/
define "Td Doses Administered to Patient":
DTPElements."Td Doses Administered to Patient".onOrBefore(Today)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="33"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD2DTDTPEncounterElements"/>
</extension>
<extension url="name">
<valueString value="Date of Latest Td Dose"/>
</extension>
<extension url="statement">
<valueString
value="/*
@internal: Date of Latest Td Dose
*/
define "Date of Latest Td Dose":
date from start of "Td Doses Administered to Patient".mostRecent().occurrence.toInterval()"/>
</extension>
<extension url="displaySequence">
<valueInteger value="34"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Due Date"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Due Date
@pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines") + 4 'week'
*/
define "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Due Date":
if "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)" then Encounter."Date of Latest Td Dose" + 4 weeks
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="35"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Overdue"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Overdue
@pseudocode: Every subsequent contact until 38 weeks
*/
define "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Overdue":
if "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)" then Encounter."Date of Latest Td Dose" + 4 weeks
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="36"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Expiration"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Expiration
@pseudocode: Two weeks before birth for the pregnancy; however, individuals remain eligible to be vaccinated after giving birth.
"Gestational age" < 38 weeks
*/
define "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Expiration":
if "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)" then 'Two weeks before birth'
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="37"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Create"/>
</extension>
<extension url="statement">
<valueString
value="/*
@output: Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Create
@create: Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth.
*/
define "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Create":
if "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)"
then 'Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth.' + '
Due Date: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Due Date") + '
Overdue: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Overdue") + '
Expiration: ' + "Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Expiration"
else ''"/>
</extension>
<extension url="displaySequence">
<valueInteger value="38"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 3 Due Date"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 3 Due Date
@pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines") + 1 year or during next pregnancy
*/
define "Tetanus and diphtheria-containing vaccine booster dose 3 Due Date":
if "Tetanus and diphtheria-containing vaccine booster dose 3" then Encounter."Date of Latest Td Dose" + 1 year
else null"/>
</extension>
<extension url="displaySequence">
<valueInteger value="39"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
</extension>
<extension url="name">
<valueString
value="Tetanus and diphtheria-containing vaccine booster dose 3 Create"/>
</extension>
<extension url="statement">
<valueString
value="/*
@output: Tetanus and diphtheria-containing vaccine booster dose 3 Create
@create: A sixth dose would be needed at least 1 year after the fifth dose, or during the next pregnancy.
*/
define "Tetanus and diphtheria-containing vaccine booster dose 3 Create":
if "Tetanus and diphtheria-containing vaccine booster dose 3"
then 'A sixth dose would be needed at least 1 year after the fifth dose, or during the next pregnancy.' + '
Due Date: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 3 Due Date")
else ''"/>
</extension>
<extension url="displaySequence">
<valueInteger value="40"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="IMMZCommon"/>
</extension>
<extension url="name">
<valueString value="onOrBefore"/>
</extension>
<extension url="statement">
<valueString
value="/**
* @description: Gets immunizations on or before a date
*/
define fluent function onOrBefore(immunizations List<Immunization>, beforeDate Date):
immunizations I where
I.occurrence.toInterval() same day or before beforeDate"/>
</extension>
<extension url="displaySequence">
<valueInteger value="41"/>
</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<Immunization>):
immunizations I where
exists( I.protocolApplied pa where pa.series = 'Booster dose' )"/>
</extension>
<extension url="displaySequence">
<valueInteger value="42"/>
</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="43"/>
</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="44"/>
</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="45"/>
</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="46"/>
</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="47"/>
</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<Immunization>):
immunizations I where
exists( I.protocolApplied pa where pa.series = 'Primary series' )"/>
</extension>
<extension url="displaySequence">
<valueInteger value="48"/>
</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<Observation>):
observations O where O.status in { 'final', 'amended', 'corrected' }"/>
</extension>
<extension url="displaySequence">
<valueInteger value="49"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="FHIRHelpers"/>
</extension>
<extension url="name">
<valueString value="ToString"/>
</extension>
<extension url="statement">
<valueString
value="define function ToString(value ObservationStatus): value.value"/>
</extension>
<extension url="displaySequence">
<valueInteger value="50"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="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="51"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="WHOCommon"/>
</extension>
<extension url="name">
<valueString value="prevalenceInterval"/>
</extension>
<extension url="statement">
<valueString
value="/*
@description: Returns an interval representing the normalized prevalence period of a given Condition resource.
@comment: Uses the toInterval and toAbatementInterval functions to determine the widest potential interval from
onset to abatement as specified in the given Condition.
*/
define fluent function prevalenceInterval(condition Condition):
if condition.clinicalStatus ~ "active"
or condition.clinicalStatus ~ "recurrence"
or condition.clinicalStatus ~ "relapse" then
Interval[start of condition.onset.toInterval(), end of condition.abatementInterval()]
else
(end of condition.abatementInterval()) abatementDate
return
if abatementDate is null then
Interval[start of condition.onset.toInterval(), abatementDate)
else
Interval[start of condition.onset.toInterval(), abatementDate]"/>
</extension>
<extension url="displaySequence">
<valueInteger value="52"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="WHOCommon"/>
</extension>
<extension url="name">
<valueString value="abatementInterval"/>
</extension>
<extension url="statement">
<valueString
value="// Was getting error on this for this particular choice set not being found
/*
@description: Returns an interval representing the normalized Abatement of a given Condition resource.
@comment: NOTE: Due to the complexity of determining an interval from a String, this function will throw
a run-time exception if used with a Condition instance that has a String as the abatement value.
*/
define fluent function abatementInterval(condition Condition):
if condition.abatement is FHIR.dateTime then
Interval[FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime), FHIRHelpers.ToDateTime(condition.abatement as FHIR.dateTime)]
else if condition.abatement is FHIR.Period then
FHIRHelpers.ToInterval(condition.abatement as FHIR.Period)
else if condition.abatement is FHIR.string then
Message(null as Interval<DateTime>, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a String value is not supported')
else if condition.abatement is FHIR.Age then
Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age),
FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity(condition.abatement as FHIR.Age) + 1 year)
else if condition.abatement is FHIR.Range then
Interval[FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).low),
FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((condition.abatement as FHIR.Range).high) + 1 year)
else if condition.abatement is FHIR.boolean then
Interval[end of condition.onset.toInterval(), condition.recordedDate)
else
null"/>
</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="ToDateTime"/>
</extension>
<extension url="statement">
<valueString
value="define function ToDateTime(value dateTime): 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="ToInterval"/>
</extension>
<extension url="statement">
<valueString
value="define function ToInterval(period FHIR.Period):
if period is null then
null
else
if period."start" is null then
Interval(period."start".value, period."end".value]
else
Interval[period."start".value, period."end".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="ToDate"/>
</extension>
<extension url="statement">
<valueString
value="define function ToDate(value date): value.value"/>
</extension>
<extension url="displaySequence">
<valueInteger value="56"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="FHIRHelpers"/>
</extension>
<extension url="name">
<valueString value="ToQuantity"/>
</extension>
<extension url="statement">
<valueString
value="define function ToQuantity(quantity FHIR.Quantity):
case
when quantity is null then null
when quantity.value is null then null
when quantity.comparator is not null then
Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')
when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'
or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then
System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }
else
Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')')
end"/>
</extension>
<extension url="displaySequence">
<valueInteger value="57"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="FHIRHelpers"/>
</extension>
<extension url="name">
<valueString value="ToCalendarUnit"/>
</extension>
<extension url="statement">
<valueString
value="define function ToCalendarUnit(unit System.String):
case unit
when 'ms' then 'millisecond'
when 's' then 'second'
when 'min' then 'minute'
when 'h' then 'hour'
when 'd' then 'day'
when 'wk' then 'week'
when 'mo' then 'month'
when 'a' then 'year'
else unit
end"/>
</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="mostRecent"/>
</extension>
<extension url="statement">
<valueString
value="define fluent function mostRecent(immunizations List<Immunization>):
Last(
immunizations I
sort by start of occurrence.toInterval()
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="59"/>
</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/IMMZD2DTDTPEncounterElements"/>
</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 DTPElements"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZD2DTDTPElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library FHIRHelpers"/>
<resource
value="http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Elements"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library 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 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 Concepts"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library WE"/>
<resource
value="http://smart.who.int/immunizations/Library/WHOEncounterElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Elements"/>
<resource
value="http://smart.who.int/immunizations/Library/WHOElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Concepts"/>
<resource
value="http://smart.who.int/immunizations/Library/WHOConcepts"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Common"/>
<resource
value="http://smart.who.int/immunizations/Library/WHOCommon"/>
</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="Code system IMMZD"/>
<resource
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system ConditionClinicalStatusCodes"/>
<resource
value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system LOINC"/>
<resource value="http://loinc.org"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Tetanus and diphtheria-containing vaccines"/>
<resource
value="http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE28"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set DTP-containing vaccines"/>
<resource
value="http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE24"/>
</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="AsOf"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name
value="Tetanus and diphtheria-containing vaccine booster dose 3"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name
value="Tetanus and diphtheria-containing vaccine booster dose 3 Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)"/>
<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="vaccineCode"/>
</dataRequirement>
<dataRequirement>
<type value="Immunization"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mustSupport value="status"/>
<mustSupport value="isSubpotent"/>
<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="DE161"/>
<display value="Potential contraindications"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="value"/>
<codeFilter>
<path value="code"/>
<code>
<system
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
<code value="DE161"/>
<display value="Potential contraindications"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="value"/>
<mustSupport value="encounter"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<code>
<system
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
<code value="DE161"/>
<display value="Potential contraindications"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<code>
<system
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
<code value="DE162"/>
<display value="Currently pregnant"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Patient"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
</dataRequirement>
<dataRequirement>
<type value="Condition"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Condition"/>
<mustSupport value="code"/>
<codeFilter>
<path value="code"/>
<code>
<system
value="http://smart.who.int/immunizations/CodeSystem/IMMZ.D"/>
<code value="DE162"/>
<display value="Currently pregnant"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="82810-3"/>
<display value="Pregnancy status"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="value"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="82810-3"/>
<display value="Pregnancy status"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="value"/>
<mustSupport value="encounter"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<code>
<system value="http://loinc.org"/>
<code value="82810-3"/>
<display value="Pregnancy status"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Immunization"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mustSupport value="status"/>
<mustSupport value="isSubpotent"/>
<mustSupport value="vaccineCode"/>
</dataRequirement>
<dataRequirement>
<type value="Immunization"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mustSupport value="status"/>
<mustSupport value="isSubpotent"/>
<mustSupport value="vaccineCode"/>
</dataRequirement>
<dataRequirement>
<type value="Immunization"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mustSupport value="status"/>
<mustSupport value="isSubpotent"/>
<mustSupport value="vaccineCode"/>
</dataRequirement>
<dataRequirement>
<type value="Immunization"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mustSupport value="status"/>
<mustSupport value="isSubpotent"/>
<mustSupport value="vaccineCode"/>
</dataRequirement>
<dataRequirement>
<type value="Immunization"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mustSupport value="status"/>
<mustSupport value="isSubpotent"/>
<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/IMMZD18SDTPPregnancyStartingWith3Doses"/>
<version value="0.2.0"/>
<name value="IMMZD18SDTPPregnancyStartingWith3Doses"/>
<title value="IMMZ.D18.S.DTP.Pregnancy starting with 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.DTP.Pregnancy starting with 3 doses schedule
Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood diphtheria–tetanus–pertussis (DTP) doses"/>
<relatedArtifact>
<type value="citation"/>
<citation
value="WHO recommendations for routine immunization - summary tables (January 2025)"/>
</relatedArtifact>
<library
value="http://smart.who.int/immunizations/Library/IMMZD18SDTPPregnancyStartingWith3DosesLogic"/>
<action>
<title
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)"/>
<description
value="Provision of tetanus and diphtheria booster dose 1 for pregnant women who received only 3 doses of DTP during childhood without booster doses
Trigger event: The primary DTP series has been completed and client is currently pregnant
Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") AND "Currently pregnant" = TRUE
Trigger date: "Contact date" WHEN "ANC contact number" = 1
Create condition: Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth."/>
<condition>
<kind value="applicability"/>
<expression>
<description
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)"/>
<language value="text/cql-identifier"/>
<expression
value="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy)"/>
</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="Tetanus and diphtheria-containing vaccine booster dose 1 (during pregnancy) 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="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)"/>
<description
value="Provision of tetanus and diphtheria booster dose 2 for pregnant women who received only 3 doses of DTP during childhood without booster doses
Trigger event: First tetanus and diphtheria booster dose was administered
Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 1
Trigger date: Latest "Date and time of vaccination" where "Vaccine type" = "Tetanus and diphtheria-containing vaccines"
Create condition: Pregnant women who have received only 3 doses of tetanus-containing vaccines during childhood without booster doses should receive 2 doses of tetanus-containing vaccines at the earliest opportunity during pregnancy with a minimal interval of 4 weeks between doses and the second dose at least 2 weeks before giving birth."/>
<condition>
<kind value="applicability"/>
<expression>
<description
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)"/>
<language value="text/cql-identifier"/>
<expression
value="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy)"/>
</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="Tetanus and diphtheria-containing vaccine booster dose 2 (during pregnancy) 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="Tetanus and diphtheria-containing vaccine booster dose 3"/>
<description
value="Provision of tetanus and diphtheria booster dose 3 for pregnant women who received only 3 doses of DTP during childhood without booster doses
Trigger event: Second tetanus and diphtheria booster dose was administered
Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Tetanus and diphtheria-containing vaccines" and "Type of dose" = "Booster dose") = 2
Trigger date: Latest "Date and time of vaccination" where "Vaccine type" = "Tetanus and diphtheria-containing vaccines"
Create condition: A sixth dose would be needed at least 1 year after the fifth dose, or during the next pregnancy."/>
<condition>
<kind value="applicability"/>
<expression>
<description
value="Tetanus and diphtheria-containing vaccine booster dose 3"/>
<language value="text/cql-identifier"/>
<expression
value="Tetanus and diphtheria-containing vaccine booster 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="Tetanus and diphtheria-containing vaccine booster 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>
</PlanDefinition>