Id: IMMZD18SSeasonalinfluenzaSeasonalInfluenza Url: IMMZ.D18.S.Seasonal influenza schedule Version: 0.2.0 Title: IMMZ.D18.S.Seasonal influenza schedule Status: draft Type: system: http://terminology.hl7.org/CodeSystem/plan-definition-type code: eca-rule Date: 2026-03-25 23:30:34+0000 Publisher: WHO Description: IMMZ.D18.S.Seasonal influenza schedule Inactivated trivalent and quadrivalent vaccines, 2-dose schedule for children aged under 9 years Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD18SSeasonalinfluenzaSeasonalInfluenzaLogic Actions: Seasonal influenza dose 1: Provision of the seasonal influenza vaccine dose 1 Trigger event: Child's birth Trigger pseudo: Trigger date: "Date of birth" Create condition: Influenza vaccines are safe and effective in children from 6 months of age If: Applicability: Seasonal influenza dose 1 (Seasonal influenza dose 1) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Seasonal influenza 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' }) Seasonal influenza dose 2: Provision of the seasonal influenza vaccine dose 2 Trigger event: First seasonal influenza dose from the primary series was administered and client is less than 9 years Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 1 AND (Today's date − "Date of birth" < 9 years) Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") Create condition: Children aged 6 months to 8 years should receive 2 doses at least 4 weeks apart If: Applicability: Seasonal influenza dose 2 (Seasonal influenza dose 2) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Seasonal influenza 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' }) Seasonal influenza annual dose: Provision of the seasonal influenza vaccine annual dose Trigger event: The primary series has been completed Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Seasonal influenza vaccines") Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") Create condition: Seasonal influenza vaccine annual dose should be provided 1 year after the previous dose If: Applicability: Seasonal influenza annual dose (Seasonal influenza annual dose) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Seasonal influenza annual 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
/** * @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
Seasonal influenza Doses Administered to Patient
/* @internal: Seasonal influenza containing Doses Administered to Patient */ define "Seasonal influenza Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Seasonal influenza vaccines"
Seasonal influenza Primary Series Doses Administered to Patient
/* @internal: Seasonal influenza containing Doses Administered to Patient that are in the Primary series */ define "Seasonal influenza Primary Series Doses Administered to Patient": "Seasonal influenza Doses Administered to Patient".seriesPrimary()
Number of Seasonal influenza Primary Series Doses Administered
/* @internal: Number of Seasonal influenza Primary Series doses */ define "Number of Seasonal influenza Primary Series Doses Administered": Count("Seasonal influenza Primary Series Doses Administered to Patient")
One seasonal influenza primary series doses were administered
/* @input: One seasonal influenza primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 1 @code: One seasonal influenza primary series doses were administered-127 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "One seasonal influenza primary series doses were administered": "Number of Seasonal influenza Primary Series Doses Administered" = 1
First seasonal influenza dose from the primary series was administered
/* @complete: First seasonal influenza dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 1 */ define "First seasonal influenza dose from the primary series was administered": Encounter."One seasonal influenza primary series doses were administered"
/** * @dataElement Patient age in years */ define "Current Patient Age In Years": AgeInYearsAt(Today)
/* @input: Client's age is less than 9 years @pseudocode: Today's date − "Date of birth" < 9 years @code: Client's age is less than 9 years-40 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Client's age is less than 9 years": Encounter."Current Patient Age In Years" < 9
Two seasonal influenza primary series doses were administered
/* @input: Two seasonal influenza primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 2 @code: Two seasonal influenza primary series doses were administered-127 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Two seasonal influenza primary series doses were administered": "Number of Seasonal influenza Primary Series Doses Administered" = 2
Second seasonal influenza dose from the primary series was administered. The primary series has been completed
/* @complete: Second seasonal influenza dose from the primary series was administered. The primary series has been completed @pseudocode: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Seasonal influenza vaccines") */ define "Second seasonal influenza dose from the primary series was administered. The primary series has been completed": Encounter."Two seasonal influenza primary series doses were administered"
/* @output: Seasonal influenza dose 2 @description: Provision of the seasonal influenza vaccine dose 2 @trigger: First seasonal influenza dose from the primary series was administered and client is less than 9 years @pseudo: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 1 AND (Today's date − "Date of birth" < 9 years) @triggerDate: "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") */ define "Seasonal influenza dose 2": "First seasonal influenza dose from the primary series was administered" and Encounter."Client's age is less than 9 years" and not "Second seasonal influenza dose from the primary series was administered. The primary series has been completed"
/* @internal: Date of Latest Seasonal influenza Dose */ define "Date of Latest Seasonal influenza Dose": date from start of "Seasonal influenza Doses Administered to Patient".mostRecent().occurrence.toInterval()
/* @dynamicValue: Seasonal influenza dose 2 Due Date @pseudocode: "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") + 4 weeks */ define "Seasonal influenza dose 2 Due Date": if "Seasonal influenza dose 2" then Encounter."Date of Latest Seasonal influenza Dose" + 4 weeks else null
/* @dynamicValue: Seasonal influenza dose 2 Expiration @pseudocode: "Date of birth" + 9 years */ define "Seasonal influenza dose 2 Expiration": if "Seasonal influenza dose 2" then Patient.birthDate + 9 years else null
/* @output: Seasonal influenza dose 2 Create @create: Children aged 6 months to 8 years should receive 2 doses at least 4 weeks apart */ define "Seasonal influenza dose 2 Create": if "Seasonal influenza dose 2" then 'Children aged 6 months to 8 years should receive 2 doses at least 4 weeks apart' + ' Due Date: ' + ToString("Seasonal influenza dose 2 Due Date") + ' Expiration: ' + ToString("Seasonal influenza dose 2 Expiration") else ''
No seasonal influenza primary series doses were administered
/* @input: No seasonal influenza primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 0 @code: No seasonal influenza primary series doses were administered-127 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "No seasonal influenza primary series doses were administered": "Number of Seasonal influenza Primary Series Doses Administered" = 0
/* @output: Seasonal influenza dose 1 @description: Provision of the seasonal influenza vaccine dose 1 @trigger: Child's birth @pseudo: @triggerDate: "Date of birth" */ define "Seasonal influenza dose 1": Encounter."No seasonal influenza primary series doses were administered" and not "First seasonal influenza dose from the primary series was administered"
/* @dynamicValue: Seasonal influenza dose 1 Due Date @pseudocode: "Date of birth" + 6 months */ define "Seasonal influenza dose 1 Due Date": if "Seasonal influenza dose 1" then Patient.birthDate + 6 months else null
/* @output: Seasonal influenza dose 1 Create @create: Influenza vaccines are safe and effective in children from 6 months of age */ define "Seasonal influenza dose 1 Create": if "Seasonal influenza dose 1" then 'Influenza vaccines are safe and effective in children from 6 months of age' + ' Due Date: ' + ToString("Seasonal influenza dose 1 Due Date") else ''
Client's age is more than or equal to 9 years
/* @input: Client's age is more than or equal to 9 years @pseudocode: Today's date − "Date of birth" ≥ 9 years @code: Client's age is more than or equal to 9 years-40 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Client's age is more than or equal to 9 years": Encounter."Current Patient Age In Years" >= 9
/* @output: Seasonal influenza annual dose @description: Provision of the seasonal influenza vaccine annual dose @trigger: The primary series has been completed @pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Seasonal influenza vaccines") @triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") */ define "Seasonal influenza annual dose": ( "Second seasonal influenza dose from the primary series was administered. The primary series has been completed" or ( "First seasonal influenza dose from the primary series was administered" and Encounter."Client's age is more than or equal to 9 years" ) )
/* @dynamicValue: Seasonal influenza annual dose Due Date @pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") + 1 year */ define "Seasonal influenza annual dose Due Date": if "Seasonal influenza annual dose" then Encounter."Date of Latest Seasonal influenza Dose" + 1 year else null
/* @output: Seasonal influenza annual dose Create @create: Seasonal influenza vaccine annual dose should be provided 1 year after the previous dose */ define "Seasonal influenza annual dose Create": if "Seasonal influenza annual dose" then 'Seasonal influenza vaccine annual dose should be provided 1 year after the previous dose' + ' Due Date: ' + ToString("Seasonal influenza annual dose 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.Seasonal influenza schedule Inactivated trivalent and quadrivalent vaccines, 2-dose schedule for children aged under 9 years
WHO recommendations for routine immunization - summary tables (January 2025)
Provision of the seasonal influenza vaccine dose 1 Trigger event: Child's birth Trigger pseudo: Trigger date: "Date of birth" Create condition: Influenza vaccines are safe and effective in children from 6 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 seasonal influenza vaccine dose 2 Trigger event: First seasonal influenza dose from the primary series was administered and client is less than 9 years Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 1 AND (Today's date − "Date of birth" < 9 years) Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") Create condition: Children aged 6 months to 8 years should receive 2 doses at least 4 weeks apart
Provision of the seasonal influenza vaccine annual dose Trigger event: The primary series has been completed Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Seasonal influenza vaccines") Trigger date: Latest "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") Create condition: Seasonal influenza vaccine annual dose should be provided 1 year after the previous dose