Id: IMMZD18SDengue3DosesWithPreVaccinationScreening Url: IMMZ.D18.S.Dengue schedule Version: 0.2.0 Title: IMMZ.D18.S.Dengue schedule Status: draft Type: system: http://terminology.hl7.org/CodeSystem/plan-definition-type code: eca-rule Date: 2026-03-29 17:23:09+0000 Publisher: WHO Description: IMMZ.D18.S.Dengue schedule CYD-TDV (Dengvaxia), 3-dose schedule Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD18SDengue3DosesWithPreVaccinationScreeningLogic Actions: Dengue dose 1: Provision of dengue dose 1 Trigger event: No dengue doses from primary series were administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 0 Trigger date: To be determined by Member States based on vaccination strategy Create condition: Dengue dose 1 should be provided based on vaccination strategy If: Applicability: Dengue dose 1 (Dengue dose 1) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Dengue 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' }) Dengue dose 2: Provision of the dengue dose 2 Trigger event: First dengue dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 1 Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") Create condition: Dengue dose 2 should be provided if the previous dose was provide more than 6 months ago If: Applicability: Dengue dose 2 (Dengue dose 2) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Dengue 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' }) Dengue dose 3: Provision of dengue dose 3 Trigger event: Second dengue dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 2 Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") Create condition: Dengue dose 3 should be provided if the previous dose was provide more than 6 months ago If: Applicability: Dengue dose 3 (Dengue dose 3) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Dengue 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' })
/* @dynamicValue: Dengue dose 2 Expiration @pseudocode: "Date of birth" + 46 years */ define "Dengue dose 2 Expiration": Patient.birthDate + 46 years
/** * @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: Dengue containing Doses Administered to Patient */ define "Dengue Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Dengue vaccines"
Dengue Primary Series Doses Administered to Patient
/* @internal: Dengue containing Doses Administered to Patient that are in the Primary series */ define "Dengue Primary Series Doses Administered to Patient": "Dengue Doses Administered to Patient".seriesPrimary()
Number of Dengue Primary Series Doses Administered
/* @internal: Number of Dengue Primary Series doses */ define "Number of Dengue Primary Series Doses Administered": Count("Dengue Primary Series Doses Administered to Patient")
One dengue primary series dose was administered
/* @input: One dengue primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 1 @code: One dengue primary series dose was administered-115 @decision: IMMZ.D2.DT.Dengue.3 doses with pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule with pre-vaccination screening, the recommended strategy where feasible (pre-vaccination screening whereby only those tested seropositive would be vaccinated) @decision: IMMZ.D2.DT.Dengue.3 doses without pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule without pre-vaccination screening [when pre-vaccination screening is not feasible and in areas with recent documentation of seroprevalence rates of at least 80% by age 9 years] */ define "One dengue primary series dose was administered": "Number of Dengue Primary Series Doses Administered" = 1
First dengue dose from the primary series was administered
/* @complete: First dengue dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 1 */ define "First dengue dose from the primary series was administered": Encounter."One dengue primary series dose was administered"
Two dengue primary series doses were administered
/* @input: Two dengue primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 2 @code: Two dengue primary series doses were administered-115 @decision: IMMZ.D2.DT.Dengue.3 doses with pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule with pre-vaccination screening, the recommended strategy where feasible (pre-vaccination screening whereby only those tested seropositive would be vaccinated) @decision: IMMZ.D2.DT.Dengue.3 doses without pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule without pre-vaccination screening [when pre-vaccination screening is not feasible and in areas with recent documentation of seroprevalence rates of at least 80% by age 9 years] */ define "Two dengue primary series doses were administered": "Number of Dengue Primary Series Doses Administered" = 2
Second dengue dose from the primary series was administered
/* @complete: Second dengue dose from the primary series was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 2 */ define "Second dengue dose from the primary series was administered": Encounter."Two dengue primary series doses were administered"
/* @output: Dengue dose 2 @description: Provision of the dengue dose 2 @trigger: First dengue dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 1 @triggerDate: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") */ define "Dengue dose 2": "Dengue dose 2 Expiration" > Today and "First dengue dose from the primary series was administered" and not "Second dengue dose from the primary series was administered"
/* @internal: Date of Latest Dengue Dose */ define "Date of Latest Dengue Dose": date from start of "Dengue Doses Administered to Patient".mostRecent().occurrence.toInterval()
/* @dynamicValue: Dengue dose 2 Due Date @pseudocode: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") + 6 months */ define "Dengue dose 2 Due Date": if "Dengue dose 2" then Encounter."Date of Latest Dengue Dose" + 6 months else null
/* @output: Dengue dose 2 Create @create: Dengue dose 2 should be provided if the previous dose was provide more than 6 months ago */ define "Dengue dose 2 Create": if "Dengue dose 2" then 'Dengue dose 2 should be provided if the previous dose was provide more than 6 months ago' + ' Due Date: ' + ToString("Dengue dose 2 Due Date") + ' Expiration: ' + ToString("Dengue dose 2 Expiration") else ''
/** * @dataElement Patient age in years */ define "Current Patient Age In Years": AgeInYearsAt(Today)
/* @input: Client's age is more than 45 years @pseudocode: Today's date − "Date of birth" > 45 years @code: Client's age is more than 45 years-41 @decision: IMMZ.D2.DT.Dengue.3 doses with pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule with pre-vaccination screening, the recommended strategy where feasible (pre-vaccination screening whereby only those tested seropositive would be vaccinated) @decision: IMMZ.D2.DT.Dengue.3 doses without pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule without pre-vaccination screening [when pre-vaccination screening is not feasible and in areas with recent documentation of seroprevalence rates of at least 80% by age 9 years] */ define "Client's age is more than 45 years": Encounter."Current Patient Age In Years" > 45
/* @dynamicValue: Dengue dose 1 Expiration @pseudocode: "Date of birth" + 46 years */ define "Dengue dose 1 Expiration": Patient.birthDate + 46 years
No dengue primary series doses were administered
/* @input: No dengue primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 0 @code: No dengue primary series doses were administered-115 @decision: IMMZ.D2.DT.Dengue.3 doses with pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule with pre-vaccination screening, the recommended strategy where feasible (pre-vaccination screening whereby only those tested seropositive would be vaccinated) @decision: IMMZ.D2.DT.Dengue.3 doses without pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule without pre-vaccination screening [when pre-vaccination screening is not feasible and in areas with recent documentation of seroprevalence rates of at least 80% by age 9 years] */ define "No dengue primary series doses were administered": "Number of Dengue Primary Series Doses Administered" = 0
/* @output: Dengue dose 1 @description: Provision of dengue dose 1 @trigger: No dengue doses from primary series were administered @pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 0 @triggerDate: To be determined by Member States based on vaccination strategy */ define "Dengue dose 1": not Encounter."Client's age is more than 45 years" and "Dengue dose 1 Expiration" > Today and Encounter."No dengue primary series doses were administered" and not "First dengue dose from the primary series was administered"
Three dengue primary series doses were administered
/* @input: Three dengue primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 3 @code: Three dengue primary series doses were administered-115 @decision: IMMZ.D2.DT.Dengue.3 doses with pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule with pre-vaccination screening, the recommended strategy where feasible (pre-vaccination screening whereby only those tested seropositive would be vaccinated) @decision: IMMZ.D2.DT.Dengue.3 doses without pre-vaccination screening: CYD-TDV (Dengvaxia), 3-dose schedule without pre-vaccination screening [when pre-vaccination screening is not feasible and in areas with recent documentation of seroprevalence rates of at least 80% by age 9 years] */ define "Three dengue primary series doses were administered": "Number of Dengue Primary Series Doses Administered" = 3
Third dengue dose from the primary series was administered. The primary series has been completed
/* @complete: Third dengue dose from the primary series was administered. The primary series has been completed @pseudocode: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Dengue vaccines")" */ define "Third dengue dose from the primary series was administered. The primary series has been completed": Encounter."Three dengue primary series doses were administered"
/* @output: Dengue dose 3 @description: Provision of dengue dose 3 @trigger: Second dengue dose from the primary series was administered @pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 2 @triggerDate: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") */ define "Dengue dose 3": "Dengue dose 2 Expiration" > Today and "Second dengue dose from the primary series was administered" and not "Third dengue dose from the primary series was administered. The primary series has been completed"
/* @dynamicValue: Dengue dose 1 Due Date @pseudocode: "Date of birth" + 9 years */ define "Dengue dose 1 Due Date": if "Dengue dose 1" then Patient.birthDate + 9 years else null
/* @output: Dengue dose 1 Create @create: Dengue dose 1 should be provided based on vaccination strategy */ define "Dengue dose 1 Create": if "Dengue dose 1" then 'Dengue dose 1 should be provided based on vaccination strategy' + ' Due Date: ' + ToString("Dengue dose 1 Due Date") + ' Expiration: ' + ToString("Dengue dose 1 Expiration") else ''
/* @dynamicValue: Dengue dose 3 Due Date @pseudocode: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") + 6 months */ define "Dengue dose 3 Due Date": if "Dengue dose 3" then Encounter."Date of Latest Dengue Dose" + 6 months else null
/* @dynamicValue: Dengue dose 3 Expiration @pseudocode: "Date of birth" + 46 years */ define "Dengue dose 3 Expiration": Patient.birthDate + 46 years
/* @output: Dengue dose 3 Create @create: Dengue dose 3 should be provided if the previous dose was provide more than 6 months ago */ define "Dengue dose 3 Create": if "Dengue dose 3" then 'Dengue dose 3 should be provided if the previous dose was provide more than 6 months ago' + ' Due Date: ' + ToString("Dengue dose 3 Due Date") + ' Expiration: ' + ToString("Dengue dose 3 Expiration") else ''
define function ToDate(value date): value.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' )
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() )
IMMZ.D18.S.Dengue schedule CYD-TDV (Dengvaxia), 3-dose schedule
WHO recommendations for routine immunization - summary tables (January 2025)
Provision of dengue dose 1 Trigger event: No dengue doses from primary series were administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 0 Trigger date: To be determined by Member States based on vaccination strategy Create condition: Dengue dose 1 should be provided based on vaccination strategy
Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }
Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }
Provision of the dengue dose 2 Trigger event: First dengue dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 1 Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") Create condition: Dengue dose 2 should be provided if the previous dose was provide more than 6 months ago
Provision of dengue dose 3 Trigger event: Second dengue dose from the primary series was administered Trigger pseudo: Count of vaccines administered (where "Vaccine type" = "Dengue vaccines" and "Type of dose" = "Primary series") = 2 Trigger date: "Date and time of vaccination" (where "Vaccine type" = "Dengue vaccines") Create condition: Dengue dose 3 should be provided if the previous dose was provide more than 6 months ago