Id: IMMZD18SMalaria Url: IMMZ.D18.S.Malaria schedule Version: 0.2.0 Title: IMMZ.D18.S.Malaria 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.Malaria schedule 4-dose schedule Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD18SMalariaLogic Actions: Malaria dose 1: Provision of the malaria dose 1 Trigger event: Child's birth Trigger pseudo: Trigger date: "Date of birth" Create condition: WHO recommends that the first dose of vaccine be administered from 5 months of age. If: Applicability: Malaria dose 1 (Malaria dose 1) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Malaria 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' }) Malaria dose 2: Provision of the malaria dose 2 Trigger event: First malaria dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 1 Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") Create condition: There should be a minimum interval of 4 weeks between doses. If: Applicability: Malaria dose 2 (Malaria dose 2) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Malaria 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' }) Malaria dose 3: Provision of the malaria dose 3 Trigger event: Second malaria dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 2 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") Create condition: There should be a minimum interval of 4 weeks between doses. If: Applicability: Malaria dose 3 (Malaria dose 3) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Malaria 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' }) Malaria dose 4: Provision of the malaria dose 4 Trigger event: Third malaria dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 3 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") Create condition: There should be a minimum interval of 4 weeks between doses. The fourth dose should be provided approximately 12–18 months after the third dose to prolong the duration of protection. If: Applicability: Malaria dose 4 (Malaria dose 4) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Malaria dose 4 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
/** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": Elements."Doses Administered to Patient" I where I.occurrence.toInterval() same day or before Today
/* @internal: Malaria containing Doses Administered to Patient */ define "Malaria Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Malaria vaccines"
Malaria Primary Series Doses Administered to Patient
/* @internal: Malaria containing Doses Administered to Patient that are in the Primary series */ define "Malaria Primary Series Doses Administered to Patient": "Malaria Doses Administered to Patient".seriesPrimary()
Number of Malaria Primary Series Doses Administered
/* @internal: Number of Malaria Primary Series doses */ define "Number of Malaria Primary Series Doses Administered": Count("Malaria Primary Series Doses Administered to Patient")
One malaria primary series dose was administered
/* @input: One malaria primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 1 @code: One malaria primary series dose was administered-116 @decision: IMMZ.D2.DT.Malaria: 4-dose schedule (The RTS,S/AS01 malaria vaccine should be used for the prevention of Plasmodium falciparum malaria in children living in regions with moderate to high malaria transmission, as defined by WHO) */ define "One malaria primary series dose was administered": "Number of Malaria Primary Series Doses Administered" = 1
First malaria dose from the primary series was administered
/* @complete: First malaria dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 1 */ define "First malaria dose from the primary series was administered": Encounter."One malaria primary series dose was administered"
Two malaria primary series doses were administered
/* @input: Two malaria primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 2 @code: Two malaria primary series doses were administered-116 @decision: IMMZ.D2.DT.Malaria: 4-dose schedule (The RTS,S/AS01 malaria vaccine should be used for the prevention of Plasmodium falciparum malaria in children living in regions with moderate to high malaria transmission, as defined by WHO) */ define "Two malaria primary series doses were administered": "Number of Malaria Primary Series Doses Administered" = 2
Second malaria dose from the primary series was administered
/* @complete: Second malaria dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 2 */ define "Second malaria dose from the primary series was administered": Encounter."Two malaria primary series doses were administered"
/* @output: Malaria dose 2 @description: Provision of the malaria dose 2 @trigger: First malaria dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 1 @triggerDate: "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") */ define "Malaria dose 2": "First malaria dose from the primary series was administered" and not "Second malaria dose from the primary series was administered"
Three malaria primary series doses were administered
/* @input: Three malaria primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 3 @code: Three malaria primary series doses were administered-116 @decision: IMMZ.D2.DT.Malaria: 4-dose schedule (The RTS,S/AS01 malaria vaccine should be used for the prevention of Plasmodium falciparum malaria in children living in regions with moderate to high malaria transmission, as defined by WHO) */ define "Three malaria primary series doses were administered": "Number of Malaria Primary Series Doses Administered" = 3
Third malaria dose from the primary series was administered
/* @complete: Third malaria dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 3 */ define "Third malaria dose from the primary series was administered": Encounter."Three malaria primary series doses were administered"
/* @output: Malaria dose 3 @description: Provision of the malaria dose 3 @trigger: Second malaria dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 2 @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") */ define "Malaria dose 3": "Second malaria dose from the primary series was administered" and not "Third malaria dose from the primary series was administered"
/* @internal: Date of Latest Malaria Dose */ define "Date of Latest Malaria Dose": date from start of "Malaria Doses Administered to Patient".mostRecent().occurrence.toInterval()
/* @dynamicValue: Malaria dose 3 Due Date @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") + 4 weeks */ define "Malaria dose 3 Due Date": if "Malaria dose 3" then Encounter."Date of Latest Malaria Dose" + 4 weeks else null
/* @output: Malaria dose 3 Create @create: There should be a minimum interval of 4 weeks between doses. */ define "Malaria dose 3 Create": if "Malaria dose 3" then 'There should be a minimum interval of 4 weeks between doses.' + ' Due Date: ' + ToString("Malaria dose 3 Due Date") else ''
Four malaria primary series doses were administered
/* @input: Four malaria primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 4 @code: Four malaria primary series doses were administered-116 @decision: IMMZ.D2.DT.Malaria: 4-dose schedule (The RTS,S/AS01 malaria vaccine should be used for the prevention of Plasmodium falciparum malaria in children living in regions with moderate to high malaria transmission, as defined by WHO) */ define "Four malaria primary series doses were administered": "Number of Malaria Primary Series Doses Administered" = 4
Fourth malaria dose from the primary series was administered. The primary series has been completed
/* @complete: Fourth malaria dose from the primary series was administered. The primary series has been completed @pseudocode: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Malaria vaccines")" */ define "Fourth malaria dose from the primary series was administered. The primary series has been completed": Encounter."Four malaria primary series doses were administered"
/* @output: Malaria dose 4 @description: Provision of the malaria dose 4 @trigger: Third malaria dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 3 @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") */ define "Malaria dose 4": "Third malaria dose from the primary series was administered" and not "Fourth malaria dose from the primary series was administered. The primary series has been completed"
/* @dynamicValue: Malaria dose 4 Due Date @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") + 4 weeks */ define "Malaria dose 4 Due Date": if "Malaria dose 4" then Encounter."Date of Latest Malaria Dose" + 4 weeks else null
/* @dynamicValue: Malaria dose 4 Overdue @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") + 18 months */ define "Malaria dose 4 Overdue": if "Malaria dose 4" then Encounter."Date of Latest Malaria Dose" + 18 months else null
/* @output: Malaria dose 4 Create @create: There should be a minimum interval of 4 weeks between doses. The fourth dose should be provided approximately 12–18 months after the third dose to prolong the duration of protection. */ define "Malaria dose 4 Create": if "Malaria dose 4" then 'There should be a minimum interval of 4 weeks between doses. The fourth dose should be provided approximately 12–18 months after the third dose to prolong the duration of protection.' + ' Due Date: ' + ToString("Malaria dose 4 Due Date") + ' Overdue: ' + ToString("Malaria dose 4 Overdue") else ''
No malaria primary series doses were administered
/* @input: No malaria primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 0 @code: No malaria primary series doses were administered-116 @decision: IMMZ.D2.DT.Malaria: 4-dose schedule (The RTS,S/AS01 malaria vaccine should be used for the prevention of Plasmodium falciparum malaria in children living in regions with moderate to high malaria transmission, as defined by WHO) */ define "No malaria primary series doses were administered": "Number of Malaria Primary Series Doses Administered" = 0
/* @output: Malaria dose 1 @description: Provision of the malaria dose 1 @trigger: Child's birth @pseudo: @triggerDate: "Date of birth" */ define "Malaria dose 1": Encounter."No malaria primary series doses were administered" and not "First malaria dose from the primary series was administered"
/* @dynamicValue: Malaria dose 2 Due Date @pseudocode: "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") + 4 weeks */ define "Malaria dose 2 Due Date": if "Malaria dose 2" then Encounter."Date of Latest Malaria Dose" + 4 weeks else null
/* @output: Malaria dose 2 Create @create: There should be a minimum interval of 4 weeks between doses. */ define "Malaria dose 2 Create": if "Malaria dose 2" then 'There should be a minimum interval of 4 weeks between doses.' + ' Due Date: ' + ToString("Malaria dose 2 Due Date") else ''
/* @dynamicValue: Malaria dose 1 Due Date @pseudocode: "Date of birth" + 5 months */ define "Malaria dose 1 Due Date": if "Malaria dose 1" then Patient.birthDate + 5 months else null
/* @output: Malaria dose 1 Create @create: WHO recommends that the first dose of vaccine be administered from 5 months of age. */ define "Malaria dose 1 Create": if "Malaria dose 1" then 'WHO recommends that the first dose of vaccine be administered from 5 months of age.' + ' Due Date: ' + ToString("Malaria dose 1 Due Date") else ''
/** * @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
IMMZ.D18.S.Malaria schedule 4-dose schedule
WHO recommendations for routine immunization - summary tables (January 2025)
Provision of the malaria dose 1 Trigger event: Child's birth Trigger pseudo: Trigger date: "Date of birth" Create condition: WHO recommends that the first dose of vaccine be administered from 5 months 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 the malaria dose 2 Trigger event: First malaria dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 1 Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") Create condition: There should be a minimum interval of 4 weeks between doses.
Provision of the malaria dose 3 Trigger event: Second malaria dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 2 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") Create condition: There should be a minimum interval of 4 weeks between doses.
Provision of the malaria dose 4 Trigger event: Third malaria dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Malaria vaccines" and "Type of dose" = "Primary series") = 3 Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Malaria vaccines") Create condition: There should be a minimum interval of 4 weeks between doses. The fourth dose should be provided approximately 12–18 months after the third dose to prolong the duration of protection.