Id: IMMZD18SDTPOnTimeStart Url: IMMZ.D18.S.DTP.On-time start schedule Version: 0.2.0 Title: IMMZ.D18.S.DTP.On-time start schedule Status: draft Type: system: http://terminology.hl7.org/CodeSystem/plan-definition-type code: eca-rule Date: 2026-03-03 13:07:11+0000 Publisher: WHO Description: IMMZ.D18.S.DTP.On-time start schedule Diphtheria–tetanus–pertussis (DTP) vaccination schedule, on-time start (at ≤ 12 months of age) Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD18SDTPOnTimeStartLogic Actions: DTP dose 1: Provision of DTP dose 1 Trigger event: Child's birth Trigger pseudo: Trigger date: "Date of birth" Create condition: DTP dose 1 should be provided if the client is older than 6 weeks of age. If: Applicability: DTP dose 1 (DTP dose 1) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (DTP dose 1 Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }) DTP dose 2: Provision of DTP dose 2 Trigger event: First DTP dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 1 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: DTP dose 2 should be provided if the client was given the previous DTP dose more than 4 weeks ago. If: Applicability: DTP dose 2 (DTP dose 2) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (DTP dose 2 Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }) DTP dose 3: Provision of DTP dose 3 Trigger event: Second DTP dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series" ) = 2 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: DTP dose 3 should be provided if the client received the previous dose more than 4 weeks ago. If: Applicability: DTP dose 3 (DTP dose 3) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (DTP dose 3 Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }) Tetanus and diphtheria-containing vaccine booster dose 1: Provision of tetanus and diphtheria booster dose 1 Trigger event: The primary DTP series has been completed Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context. If: Applicability: Tetanus and diphtheria-containing vaccine booster dose 1 (Tetanus and diphtheria-containing vaccine booster dose 1) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Tetanus and diphtheria-containing vaccine booster dose 1 Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }) Tetanus and diphtheria-containing vaccine booster dose 2: Provision of tetanus and diphtheria booster dose 2 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: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context. If: Applicability: Tetanus and diphtheria-containing vaccine booster dose 2 (Tetanus and diphtheria-containing vaccine booster dose 2) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Tetanus and diphtheria-containing vaccine booster dose 2 Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }) Tetanus and diphtheria-containing vaccine booster dose 3: Provision of tetanus and diphtheria booster dose 3 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: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context. If: Applicability: Tetanus and diphtheria-containing vaccine booster dose 3 (Tetanus and diphtheria-containing vaccine booster dose 3) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Tetanus and diphtheria-containing vaccine booster dose 3 Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }) Pertussis-containing vaccine booster dose: Provision of the pertussis-containing vaccine booster dose Trigger event: The primary DTP series has been completed and client's age is between 1 and 6 years Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") AND 1 year ≤ Today's date − "Date of birth" ≤ 6 years Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: A booster dose is recommended for children aged 1–6 years, preferably during the second year of life (≥6 months after last primary dose). If: Applicability: Pertussis-containing vaccine booster dose (Pertussis-containing vaccine booster dose) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Pertussis-containing vaccine booster dose Create) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' })
/** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": [Immunization] I where I.status = 'completed' and I.isSubpotent is not true
/* @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"
DTP Primary Series Doses Administered to Patient
/* @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()
/* @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)
Number of DTP Primary Series Doses Administered
/* @internal: Number of DTP Primary Series doses */ define "Number of DTP Primary Series Doses Administered": Count("DTP Primary Series Doses Administered to Patient")
Two DTP primary series doses were administered
/* @input: Two DTP primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 2 @code: Two 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 */ define "Two DTP primary series doses were administered": "Number of DTP Primary Series Doses Administered" = 2
Second DTP dose from the primary series was administered
/* @complete: Second DTP dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 2 */ define "Second DTP dose from the primary series was administered": Encounter."Two DTP primary series doses were administered"
Three DTP primary series doses were administered
/* @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
Third DTP dose from the primary series was administered. The primary DTP series has been completed
/* @complete: Third DTP dose from the primary series was administered. The primary DTP series has been completed @pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 3 "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") */ define "Third DTP dose from the primary series was administered. The primary DTP series has been completed": Encounter."Three DTP primary series doses were administered"
/* @output: DTP dose 3 @description: Provision of DTP dose 3 @trigger: Second DTP dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series" ) = 2 @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") */ define "DTP dose 3": "Second DTP dose from the primary series was administered" and not "Third DTP dose from the primary series was administered. The primary DTP series has been completed"
/* @internal: DTP containing Doses Administered to Patient */ define "DTP Doses Administered to Patient": DTPElements."DTP Doses Administered to Patient".onOrBefore(Today)
/* @internal: Date of Latest DTP Dose */ define "Date of Latest DTP Dose": date from start of "DTP Doses Administered to Patient".mostRecent().occurrence.toInterval()
/* @dynamicValue: DTP dose 3 Due Date @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") + 4 weeks */ define "DTP dose 3 Due Date": if "DTP dose 3" then Encounter."Date of Latest DTP Dose" + 4 weeks else null
/* @dynamicValue: DTP dose 3 Overdue @pseudocode: "Date of birth" + 6 months */ define "DTP dose 3 Overdue": if "DTP dose 3" then Patient.birthDate + 6 months else null
/* @output: DTP dose 3 Create @create: DTP dose 3 should be provided if the client received the previous dose more than 4 weeks ago. */ define "DTP dose 3 Create": if "DTP dose 3" then 'DTP dose 3 should be provided if the client received the previous dose more than 4 weeks ago.' + ' Due Date: ' + ToString("DTP dose 3 Due Date") + ' Overdue: ' + ToString("DTP dose 3 Overdue") else ''
No DTP primary series doses were administered
/* @input: No DTP primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 0 @code: No 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 */ define "No DTP primary series doses were administered": "Number of DTP Primary Series Doses Administered" = 0
/* @dynamicValue: DTP dose 1 Expiration @pseudocode: "Date of birth" + 1 year */ define "DTP dose 1 Expiration": Patient.birthDate + 1 year
/* @output: DTP dose 1 @description: Provision of DTP dose 1 @trigger: Child's birth @pseudo: @triggerDate: "Date of birth" */ define "DTP dose 1": Encounter."No DTP primary series doses were administered" and "DTP dose 1 Expiration" after day of Today
/* @dynamicValue: DTP dose 1 Due Date @pseudocode: "Date of birth" + 6 weeks */ define "DTP dose 1 Due Date": if "DTP dose 1" then Patient.birthDate + 6 weeks else null
/* @output: DTP dose 1 Create @create: DTP dose 1 should be provided if the client is older than 6 weeks of age. */ define "DTP dose 1 Create": if "DTP dose 1" then 'DTP dose 1 should be provided if the client is older than 6 weeks of age.' + ' Due Date: ' + ToString("DTP dose 1 Due Date") + ' Expiration: ' + ToString("DTP dose 1 Expiration") else ''
/** * @dataElement Patient age in years */ define "Current Patient Age In Years": AgeInYearsAt(Today)
Client's age is between 1 year and 6 years
/* @input: Client's age is between 1 year and 6 years @pseudocode: 1 year ≤ Today's date − "Date of birth" ≤ 6 years @code: Client's age is between 1 year and 6 years-49 @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 */ define "Client's age is between 1 year and 6 years": 1 <= Encounter."Current Patient Age In Years" and Encounter."Current Patient Age In Years" <= 6
/* @internal: Pertussis Doses Administered to Patient */ define "Pertussis Doses Administered to Patient": Elements."Doses Administered to Patient" I where I.vaccineCode in Concepts."Pertussis-containing vaccines"
Pertussis Booster Series Doses Administered to Patient
/* @internal: Pertussis Booster Series Doses Administered to Patient */ define "Pertussis Booster Series Doses Administered to Patient": "Pertussis Doses Administered to Patient".seriesBooster()
/* @internal: Pertussis Booster Series Doses Administered to Patient */ define "Pertussis Booster Series Doses Administered to Patient": DTPElements."Pertussis Booster Series Doses Administered to Patient".onOrBefore(Today)
Number of Pertussis Booster Series Doses Administered
/* @internal: Number of Pertussis Booster Series Doses Administered */ define "Number of Pertussis Booster Series Doses Administered": Count("Pertussis Booster Series Doses Administered to Patient")
One pertussis booster dose was administered
/* @input: One pertussis booster dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Pertussis-containing vaccines" and "Type of dose" = "Booster dose") = 1 @code: One pertussis booster dose was administered-127 @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 */ define "One pertussis booster dose was administered": "Number of Pertussis Booster Series Doses Administered" = 1
Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed
/* @complete: Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed @pseudocode: Count of vaccines administered (where "Vaccine type" = "Pertussis-containing vaccines" and "Type of dose" = "Booster dose") = 1 "Immunization recommendation status" = "Complete" (where "Vaccine type" = "Pertussis-containing vaccines") */ define "Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed": Encounter."One pertussis booster dose was administered"
Pertussis-containing vaccine booster dose Expiration
/* @dynamicValue: Pertussis-containing vaccine booster dose Expiration @pseudocode: "Date of birth" + 7 years */ define "Pertussis-containing vaccine booster dose Expiration": Patient.birthDate + 7 years
Pertussis-containing vaccine booster dose
/* @output: Pertussis-containing vaccine booster dose @description: Provision of the pertussis-containing vaccine booster dose @trigger: The primary DTP series has been completed and client's age is between 1 and 6 years @pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") AND 1 year ≤ Today's date − "Date of birth" ≤ 6 years @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") */ define "Pertussis-containing vaccine booster dose": "Third DTP dose from the primary series was administered. The primary DTP series has been completed" and Encounter."Client's age is between 1 year and 6 years" and not "Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed" and "Pertussis-containing vaccine booster dose Expiration" after day of Today
Pertussis-containing vaccine booster dose Due Date
/* @dynamicValue: Pertussis-containing vaccine booster dose Due Date @pseudocode: Date of birth" + 1 'year' OR Latest "Date and time of vaccination" where "Vaccine type" = "DTP-containing vaccines" + 6 months */ define "Pertussis-containing vaccine booster dose Due Date": if "Pertussis-containing vaccine booster dose" then WC.LatestOf({ Patient.birthDate + 1 year, Encounter."Date of Latest DTP Dose" + 6 months }) else null
Pertussis-containing vaccine booster dose Overdue
/* @dynamicValue: Pertussis-containing vaccine booster dose Overdue @pseudocode: "Date of birth" + 7 years */ define "Pertussis-containing vaccine booster dose Overdue": if "Pertussis-containing vaccine booster dose" then Patient.birthDate + 7 years else null
Pertussis-containing vaccine booster dose Create
/* @output: Pertussis-containing vaccine booster dose Create @create: A booster dose is recommended for children aged 1–6 years, preferably during the second year of life (≥6 months after last primary dose). */ define "Pertussis-containing vaccine booster dose Create": if "Pertussis-containing vaccine booster dose" then 'A booster dose is recommended for children aged 1–6 years, preferably during the second year of life (≥6 months after last primary dose).' + ' Due Date: ' + ToString("Pertussis-containing vaccine booster dose Due Date") + ' Overdue: ' + ToString("Pertussis-containing vaccine booster dose Overdue") + ' Expiration: ' + ToString("Pertussis-containing vaccine booster dose Expiration") else ''
One DTP primary series dose was administered
/* @input: One DTP primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 1 @code: One DTP primary series dose was 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 */ define "One DTP primary series dose was administered": "Number of DTP Primary Series Doses Administered" = 1
First DTP dose from the primary series was administered
/* @complete: First DTP dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 1 */ define "First DTP dose from the primary series was administered": Encounter."One DTP primary series dose was administered"
/* @output: DTP dose 2 @description: Provision of DTP dose 2 @trigger: First DTP dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 1 @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") */ define "DTP dose 2": "First DTP dose from the primary series was administered" and not "Second DTP dose from the primary series was administered"
/* @dynamicValue: DTP dose 2 Due Date @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") + 4 weeks */ define "DTP dose 2 Due Date": if "DTP dose 2" then Encounter."Date of Latest DTP Dose" + 4 weeks else null
/* @dynamicValue: DTP dose 2 Overdue @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") + 8 weeks */ define "DTP dose 2 Overdue": if "DTP dose 2" then Encounter."Date of Latest DTP Dose" + 8 weeks else null
/* @output: DTP dose 2 Create @create: DTP dose 2 should be provided if the client was given the previous DTP dose more than 4 weeks ago. */ define "DTP dose 2 Create": if "DTP dose 2" then 'DTP dose 2 should be provided if the client was given the previous DTP dose more than 4 weeks ago.' + ' Due Date: ' + ToString("DTP dose 2 Due Date") + ' Overdue: ' + ToString("DTP dose 2 Overdue") else ''
/* @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"
Td Booster Series Doses Administered to Patient
/* @internal: Td Booster Series Doses Administered to Patient */ define "Td Booster Series Doses Administered to Patient": "Td Doses Administered to Patient".seriesBooster()
/* @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)
Number of Td Booster Series Doses Administered
/* @internal: Number of Td Booster Series Doses Administered */ define "Number of Td Booster Series Doses Administered": Count("Td Booster Series Doses Administered to Patient")
One tetanus and diphtheria booster dose was administered
/* @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
First tetanus and diphtheria booster dose was administered
/* @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"
Two tetanus and diphtheria booster doses were administered
/* @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
Second tetanus and diphtheria booster dose was administered
/* @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"
Tetanus and diphtheria-containing vaccine booster dose 2
/* @output: Tetanus and diphtheria-containing vaccine booster dose 2 @description: Provision of tetanus and diphtheria booster dose 2 @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": "First tetanus and diphtheria booster dose was administered" and not "Second tetanus and diphtheria booster dose was administered"
Tetanus and diphtheria-containing vaccine booster dose 2 Due Date
/* @dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 Due Date @pseudocode: "Date of birth" + 4 years */ define "Tetanus and diphtheria-containing vaccine booster dose 2 Due Date": if "Tetanus and diphtheria-containing vaccine booster dose 2" then Patient.birthDate + 4 years else null
Tetanus and diphtheria-containing vaccine booster dose 2 Overdue
/* @dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 Overdue @pseudocode: "Date of birth" + 8 years */ define "Tetanus and diphtheria-containing vaccine booster dose 2 Overdue": if "Tetanus and diphtheria-containing vaccine booster dose 2" then Patient.birthDate + 8 years else null
Tetanus and diphtheria-containing vaccine booster dose 2 Create
/* @output: Tetanus and diphtheria-containing vaccine booster dose 2 Create @create: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context. */ define "Tetanus and diphtheria-containing vaccine booster dose 2 Create": if "Tetanus and diphtheria-containing vaccine booster dose 2" then 'Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context.' + ' Due Date: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 2 Due Date") + ' Overdue: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 2 Overdue") else ''
No tetanus and diphtheria booster doses were administered
/* @input: No 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") = 0 @code: No 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 starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses */ define "No tetanus and diphtheria booster doses were administered": "Number of Td Booster Series Doses Administered" = 0
Tetanus and diphtheria-containing vaccine booster dose 1
/* @output: Tetanus and diphtheria-containing vaccine booster dose 1 @description: Provision of tetanus and diphtheria booster dose 1 @trigger: The primary DTP series has been completed @pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") */ define "Tetanus and diphtheria-containing vaccine booster dose 1": "Third DTP dose from the primary series was administered. The primary DTP series has been completed" and Encounter."No tetanus and diphtheria booster doses were administered"
Tetanus and diphtheria-containing vaccine booster dose 1 Due Date
/* @dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 Due Date @pseudocode: "Date of birth" + 12 months */ define "Tetanus and diphtheria-containing vaccine booster dose 1 Due Date": if "Tetanus and diphtheria-containing vaccine booster dose 1" then Patient.birthDate + 12 months else null
Tetanus and diphtheria-containing vaccine booster dose 1 Overdue
/* @dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 Overdue @pseudocode: "Date of birth" + 24 months */ define "Tetanus and diphtheria-containing vaccine booster dose 1 Overdue": if "Tetanus and diphtheria-containing vaccine booster dose 1" then Patient.birthDate + 24 months else null
Tetanus and diphtheria-containing vaccine booster dose 1 Create
/* @output: Tetanus and diphtheria-containing vaccine booster dose 1 Create @create: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context. */ define "Tetanus and diphtheria-containing vaccine booster dose 1 Create": if "Tetanus and diphtheria-containing vaccine booster dose 1" then 'Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context.' + ' Due Date: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 1 Due Date") + ' Overdue: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 1 Overdue") else ''
Three tetanus and diphtheria booster doses were administered
/* @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
Third tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed
/* @complete: Third tetanus and diphtheria 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 booster dose was administered. Tetanus and diphtheria immunization schedule has been completed": Encounter."Three tetanus and diphtheria booster doses were administered"
Tetanus and diphtheria-containing vaccine booster dose 3
/* @output: Tetanus and diphtheria-containing vaccine booster dose 3 @description: Provision of tetanus and diphtheria booster dose 3 @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 booster dose was administered. Tetanus and diphtheria immunization schedule has been completed"
Tetanus and diphtheria-containing vaccine booster dose 3 Due Date
/* @dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 3 Due Date @pseudocode: "Date of birth" + 9 years */ define "Tetanus and diphtheria-containing vaccine booster dose 3 Due Date": if "Tetanus and diphtheria-containing vaccine booster dose 3" then Patient.birthDate + 9 years else null
Tetanus and diphtheria-containing vaccine booster dose 3 Overdue
/* @dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 3 Overdue @pseudocode: "Date of birth" + 16 years */ define "Tetanus and diphtheria-containing vaccine booster dose 3 Overdue": if "Tetanus and diphtheria-containing vaccine booster dose 3" then Patient.birthDate + 16 years else null
Tetanus and diphtheria-containing vaccine booster dose 3 Create
/* @output: Tetanus and diphtheria-containing vaccine booster dose 3 Create @create: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context. */ define "Tetanus and diphtheria-containing vaccine booster dose 3 Create": if "Tetanus and diphtheria-containing vaccine booster dose 3" then 'Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context.' + ' Due Date: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 3 Due Date") + ' Overdue: ' + ToString("Tetanus and diphtheria-containing vaccine booster dose 3 Overdue") else ''
/** * @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
/** * @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' )
define function ToString(value string): value.value
define function ToString(value ImmunizationStatus): value.value
define function ToBoolean(value boolean): value.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 }
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 }
define fluent function mostRecent(immunizations List<Immunization>): Last( immunizations I sort by start of occurrence.toInterval() )
define function ToDate(value date): value.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' )
define function LatestOf(dates List<Date>): Max(dates)
Value set Tetanus and diphtheria-containing vaccines
IMMZ.D18.S.DTP.On-time start schedule Diphtheria–tetanus–pertussis (DTP) vaccination schedule, on-time start (at ≤ 12 months of age)
WHO recommendations for routine immunization - summary tables (January 2025)
Provision of DTP dose 1 Trigger event: Child's birth Trigger pseudo: Trigger date: "Date of birth" Create condition: DTP dose 1 should be provided if the client is older than 6 weeks of age.
Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }
Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }
Provision of DTP dose 2 Trigger event: First DTP dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series") = 1 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: DTP dose 2 should be provided if the client was given the previous DTP dose more than 4 weeks ago.
Provision of DTP dose 3 Trigger event: Second DTP dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "DTP-containing vaccines" and "Type of dose" = "Primary series" ) = 2 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: DTP dose 3 should be provided if the client received the previous dose more than 4 weeks ago.
Provision of tetanus and diphtheria booster dose 1 Trigger event: The primary DTP series has been completed Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context.
Provision of tetanus and diphtheria booster dose 2 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: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context.
Provision of tetanus and diphtheria booster dose 3 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: Three booster doses of diphtheria-containing vaccine should be provided during childhood and adolescence. The diphtheria booster doses should be given in combination with tetanus using the same schedule (i.e at 12–23 months of age, 4–7 years of age and 9–15 years of age, using age-appropriate vaccine formulations). Ideally, there should be at least 4 years between booster doses. Member States may update this schedule based on their country context.
Provision of the pertussis-containing vaccine booster dose Trigger event: The primary DTP series has been completed and client's age is between 1 and 6 years Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "DTP-containing vaccines") AND 1 year ≤ Today's date − "Date of birth" ≤ 6 years Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "DTP-containing vaccines") Create condition: A booster dose is recommended for children aged 1–6 years, preferably during the second year of life (≥6 months after last primary dose).