Id: IMMZD18SMeaslesSupplementaryDose Url: IMMZ.D18.S.Measles.Supplementary dose schedule Version: 0.2.0 Title: IMMZ.D18.S.Measles.Supplementary dose 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.Measles.Supplementary dose schedule Measles supplementary dose schedule Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD18SMeaslesSupplementaryDoseLogic Actions: Measles-containing vaccine (MCV) supplementary dose: Provision of a MCV supplementary dose Trigger event: Routine measles immunization schedule is complete Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Measles-containing vaccines") AND Member States defined logic for supplementary dose applied Trigger date: "Date when the primary vaccination series was completed" Create condition: Child is due for a MCV supplementary dose if child is HIV-positive, on antiretroviral therapy (ART) and immune reconstitution has been achieved. If: Applicability: Measles-containing vaccine (MCV) supplementary dose (Measles-containing vaccine (MCV) supplementary dose) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Measles-containing vaccine (MCV) supplementary 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' })
Completed the primary vaccination series
/** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": [Immunization] I where I.status = 'completed' and I.isSubpotent is not true
/* @internal: MCV Doses Administered to Patient */ define "MCV Doses Administered to Patient": Elements."Doses Administered to Patient" I where I.vaccineCode in Concepts."Measles-containing vaccines"
MCV Supplementary Doses Administered to Patient
/* @internal: MCV Supplementary Doses Administered to Patient */ define "MCV Supplementary Doses Administered to Patient": "MCV Doses Administered to Patient".seriesSupplementary()
/* @internal: MCV Supplementary Doses Administered to Patient */ define "MCV Supplementary Doses Administered to Patient": MeaslesElements."MCV Supplementary Doses Administered to Patient".onOrBefore(Today)
Number of MCV Supplementary Doses Administered
/* @internal: Number of MCV Supplementary Doses Administered */ define "Number of MCV Supplementary Doses Administered": Count("MCV Supplementary Doses Administered to Patient")
Measles supplementary dose was administered
/* @input: Measles supplementary dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Measles-containing vaccines" and "Type of dose" = "Supplementary dose") = 1 @code: Measles supplementary dose was administered-131 @decision: IMMZ.D2.DT.Measles.Supplementary dose: Measles-containing vaccine (MCV) supplementary dose administration */ define "Measles supplementary dose was administered": "Number of MCV Supplementary Doses Administered" = 1
/* @complete: MCV supplementary dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Measles-containing vaccines" and "Type of dose" = "Supplementary dose") = 1 */ define "MCV supplementary dose was administered": Encounter."Measles supplementary dose was administered"
MCV Primary Series Doses Administered to Patient
/* @internal: MCV Primary Series Doses Administered to Patient */ define "MCV Primary Series Doses Administered to Patient": "MCV Doses Administered to Patient".seriesPrimary()
/* @internal: MCV Primary Series Doses Administered to Patient */ define "MCV Primary Series Doses Administered to Patient": MeaslesElements."MCV Primary Series Doses Administered to Patient".onOrBefore(Today)
Number of MCV Primary Series Doses Administered
/* @internal: Number of MCV Primary Series Doses Administered */ define "Number of MCV Primary Series Doses Administered": Count("MCV Primary Series Doses Administered to Patient")
/* @input: MCV2 was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Measles-containing vaccines" and "Type of dose" = "Primary series") = 2 @code: MCV2 was administered-127 @decision: IMMZ.D2.DT.Measles.Ongoing transmission: Countries with ongoing transmission in which the risk of measles mortality remains high (countries that provide first dose of measles-containing vaccine (MCV) at 9 months and second dose of MCV at 15 months) @decision: IMMZ.D2.DT.Measles.Low transmission: Countries with low levels of measles transmission (countries that provide first dose of measles-containing vaccine (MCV) at 12 months and second dose of MCV at 15 months) */ define "MCV2 was administered": "Number of MCV Primary Series Doses Administered" = 2
/* @internal: MCV Doses Administered to Patient */ define "MCV Doses Administered to Patient": MeaslesElements."MCV Doses Administered to Patient".onOrBefore(Today)
Completed the primary vaccination series Observation
/* @internal: Completed the primary vaccination series Observation */ define "Completed the primary vaccination series Observation": ([Observation: Concepts."Completed the primary vaccination series"]).complete()
/* @internal: Completed the primary vaccination series Observation */ define "Completed the primary vaccination series Observation": Elements."Completed the primary vaccination series Observation".encounterOrOnBefore(EncounterId, Today)
Measles routine immunization schedule is complete
/* @input: Measles routine immunization schedule is complete @pseudocode: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Measles-containing vaccines") @code: Measles routine immunization schedule is complete-104 @decision: IMMZ.D2.DT.Measles.Supplementary dose: Measles-containing vaccine (MCV) supplementary dose administration */ define "Measles routine immunization schedule is complete": "MCV2 was administered" or Coalesce( "MCV Doses Administered to Patient" Dose aggregate Result: Encounter."Completed the primary vaccination series Observation".partOf.references(Dose) or Result, false )
Measles-containing vaccine (MCV) supplementary dose
/* @output: Measles-containing vaccine (MCV) supplementary dose @description: Provision of a MCV supplementary dose @trigger: Routine measles immunization schedule is complete @pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Measles-containing vaccines") AND Member States defined logic for supplementary dose applied @triggerDate: "Date when the primary vaccination series was completed" */ define "Measles-containing vaccine (MCV) supplementary dose": not "MCV supplementary dose was administered" and Encounter."Measles routine immunization schedule is complete"
Date when the primary vaccination series completed
/* @internal: Date when the primary vaccination series completed */ define "Date when the primary vaccination series completed": date from start of "MCV Primary Series Doses Administered to Patient".mostRecent().occurrence.toInterval()
Measles-containing vaccine (MCV) supplementary dose Due Date
/* @dynamicValue: Measles-containing vaccine (MCV) supplementary dose Due Date @pseudocode: "Date when the primary vaccination series completed" + 4 weeks */ define "Measles-containing vaccine (MCV) supplementary dose Due Date": if "Measles-containing vaccine (MCV) supplementary dose" then Encounter."Date when the primary vaccination series completed" + 4 weeks else null
Measles-containing vaccine (MCV) supplementary dose Create
/* @output: Measles-containing vaccine (MCV) supplementary dose Create @create: Child is due for a MCV supplementary dose if child is HIV-positive, on antiretroviral therapy (ART) and immune reconstitution has been achieved. */ define "Measles-containing vaccine (MCV) supplementary dose Create": if "Measles-containing vaccine (MCV) supplementary dose" then 'Child is due for a MCV supplementary dose if child is HIV-positive, on antiretroviral therapy (ART) and immune reconstitution has been achieved.' + ' Due Date: ' + ToString("Measles-containing vaccine (MCV) supplementary dose Due Date") 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 Supplementary series */ define fluent function seriesSupplementary(immunizations List<Immunization>): immunizations I where exists( I.protocolApplied pa where pa.series = 'Supplementary dose' )
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 }
/** * @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' )
/* @description: Returns true if any of the given references are to the given resource @comment: Returns true if the `id` element of the given resource exactly equals the tail of any of the given references. NOTE: This function assumes resources from the same source server. */ define fluent function references(references List<FHIR.Reference>, resource FHIR.Resource): exists (references R where R.references(resource))
/* @description: Returns true if the given reference is to the given resource @comment: Returns true if the `id` element of the given resource exactly equals the tail of the given reference. NOTE: This function assumes resources from the same source server. */ define fluent function references(reference FHIR.Reference, resource FHIR.Resource): resource.id = Last(Split(reference.reference, '/'))
/** * @description: Gets observation from an encounter or on or before a date */ define fluent function encounterOrOnBefore(observations List<Observation>, EncounterId String, beforeDate Date): observations O where (O.encounter.references(EncounterId) or O.effective.toInterval() starts same day or before beforeDate)
/* @description: Returns true if the given reference is to the given resourceId @comment: Returns true if the `resourceId` parameter exactly equals the tail of the given reference. NOTE: This function assumes resources from the same source server. */ define fluent function references(reference FHIR.Reference, resourceId String): resourceId = Last(Split(reference.reference, '/'))
define fluent function complete(observations List<Observation>): observations O where O.status in { 'final', 'amended', 'corrected' }
define function ToString(value ObservationStatus): value.value
define fluent function mostRecent(immunizations List<Immunization>): Last( immunizations I sort by start of occurrence.toInterval() )
IMMZ.D18.S.Measles.Supplementary dose schedule
IMMZ.D18.S.Measles.Supplementary dose schedule Measles supplementary dose schedule
WHO recommendations for routine immunization - summary tables (January 2025)
Provision of a MCV supplementary dose Trigger event: Routine measles immunization schedule is complete Trigger pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Measles-containing vaccines") AND Member States defined logic for supplementary dose applied Trigger date: "Date when the primary vaccination series was completed" Create condition: Child is due for a MCV supplementary dose if child is HIV-positive, on antiretroviral therapy (ART) and immune reconstitution has been achieved.
Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }
Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }