Id: IMMZD2DTMumps Url: IMMZ.D2.DT.Mumps Version: 0.2.0 Title: IMMZ.D2.DT.Mumps 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.D2.DT.Mumps 2-dose schedule (countries with mumps in schedule and low transmission of measles) Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD2DTMumpsLogic Actions: Determine if the client is due for Mumps.: Determine if the client is due for Mumps vaccine according to the national immunization protocol. 2-dose schedule (countries with mumps in schedule and low transmission of measles) If: Applicability: Client is due for mumps vaccination (Client is due for mumps vaccination) Then: Definition: IMMZD2DTMR Dynamic Values: status: ('draft') intent: ('proposal') medication: (Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE11', display: 'Mumps-containing vaccines' } }, display: 'Mumps-containing vaccines' }) Check for Guidance for the patient regarding IMMZ.D2.DT.Mumps.: Show Guidance for the patient regarding IMMZ.D2.DT.Mumps. If: Applicability: Has Guidance (Has Guidance) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Guidance) 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 Patient age in months */ define "Current Patient Age In Months": AgeInMonthsAt(Today)
/* @input: Client's age is less than 12 months @pseudocode: Today's date − "Date of birth" < 12 months @code: Client's age is less than 12 months-42 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "Client's age is less than 12 months": Encounter."Current Patient Age In Months" < 12
Client is not due for mumps vaccination Case 1
/* @output: Client is not due for mumps vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for mumps vaccination Case 1": Encounter."Client's age is less than 12 months"
/** * @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: Mumps containing Doses Administered to Patient */ define "Mumps Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Mumps-containing vaccines"
Mumps Primary Series Doses Administered to Patient
/* @internal: Mumps containing Doses Administered to Patient that are in the Primary series */ define "Mumps Primary Series Doses Administered to Patient": "Mumps Doses Administered to Patient".seriesPrimary()
Number of Mumps Primary Series Doses Administered
/* @internal: Number of Mumps Primary Series doses */ define "Number of Mumps Primary Series Doses Administered": Count("Mumps Primary Series Doses Administered to Patient")
No mumps primary series doses were administered
/* @input: No mumps primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Mumps-containing vaccines" and "Type of dose" = "Primary series") = 0 @code: No mumps primary series doses were administered-125 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "No mumps primary series doses were administered": "Number of Mumps Primary Series Doses Administered" = 0
Client's age is more than or equal to 12 months
/* @input: Client's age is more than or equal to 12 months @pseudocode: Today's date − "Date of birth" ≥ 12 months @code: Client's age is more than or equal to 12 months-42 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "Client's age is more than or equal to 12 months": Encounter."Current Patient Age In Months" >= 12
/* @dataElement: Live attenuated vaccines */ define "Live Attenuated Vaccines": "Doses Administered to Patient" I where I.vaccineCode in Concepts."Live Attenuated"
/* @dataElement Live attenuated vaccines */ define "Live Attenuated Vaccines": Elements."Live Attenuated Vaccines" I where I.occurrence.toInterval() same day or before Today
/* @dataElement Date and time of last live attenuated vaccine */ define "Date of Latest Live Attenuated Vaccine": date from start of "Live Attenuated Vaccines".mostRecent().occurrence.toInterval()
Live vaccine was administered in the last 4 weeks
/* @input: Live vaccine was administered in the last 4 weeks @pseudocode: Today's date − latest "Date and time of vaccination" (where "Live vaccine" = TRUE) < 4 weeks */ define "Live vaccine was administered in the last 4 weeks": "Date of Latest Live Attenuated Vaccine" is not null and duration in weeks between "Date of Latest Live Attenuated Vaccine" and Today < 4
Live vaccine was administered in the past 4 weeks
/* @input: Live vaccine was administered in the past 4 weeks @pseudocode: Today's date − latest "Date and time of vaccination" (where "Live vaccine" = TRUE) < 4 weeks @code: Live vaccine was administered in the past 4 weeks-92 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "Live vaccine was administered in the past 4 weeks": Encounter."Live vaccine was administered in the last 4 weeks"
Client is not due for mumps vaccination Case 2
/* @output: Client is not due for mumps vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for mumps vaccination Case 2": Encounter."No mumps primary series doses were administered" and Encounter."Client's age is more than or equal to 12 months" and Encounter."Live vaccine was administered in the past 4 weeks"
One mumps primary series dose was administered
/* @input: One mumps primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Mumps-containing vaccines" and "Type of dose" = "Primary series") = 1 @code: One mumps primary series dose was administered-125 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "One mumps primary series dose was administered": "Number of Mumps Primary Series Doses Administered" = 1
/* @internal: Date of Latest Mumps Dose */ define "Date of Latest Mumps Dose": date from start of "Mumps Doses Administered to Patient".mostRecent().occurrence.toInterval()
The latest mumps dose was administered less than 4 weeks ago
/* @input: The latest mumps dose was administered less than 4 weeks ago @pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Mumps-containing vaccines") < 4 weeks @code: The latest mumps dose was administered less than 4 weeks ago-108 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "The latest mumps dose was administered less than 4 weeks ago": "Date of Latest Mumps Dose" is not null and duration in weeks between "Date of Latest Mumps Dose" and Today < 4
Client is not due for mumps vaccination Case 3
/* @output: Client is not due for mumps vaccination Case 3 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for mumps vaccination Case 3": Encounter."One mumps primary series dose was administered" and Encounter."The latest mumps dose was administered less than 4 weeks ago"
The latest mumps dose was administered more than 4 weeks ago
/* @input: The latest mumps dose was administered more than 4 weeks ago @pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Mumps-containing vaccines") ≥ 4 weeks @code: The latest mumps dose was administered more than 4 weeks ago-108 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "The latest mumps dose was administered more than 4 weeks ago": not "The latest mumps dose was administered less than 4 weeks ago"
Client is not due for mumps vaccination Case 4
/* @output: Client is not due for mumps vaccination Case 4 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for mumps vaccination Case 4": Encounter."One mumps primary series dose was administered" and Encounter."The latest mumps dose was administered more than 4 weeks ago" and Encounter."Live vaccine was administered in the past 4 weeks"
/* @output: Client is not due for mumps vaccination @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for mumps vaccination": "Client is not due for mumps vaccination Case 1" or "Client is not due for mumps vaccination Case 2" or "Client is not due for mumps vaccination Case 3" or "Client is not due for mumps vaccination Case 4"
Client is not due for mumps vaccination Guidance
/* @output: Client is not due for mumps vaccination Guidance @guidance = Should not vaccinate client with first mumps dose as client's age is less than 12 months. Check for any other vaccines due and inform the caregiver of when to come back for first dose. @guidance = Should not vaccinate client with first mumps dose as live vaccine was administered in the past 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for first dose. @guidance = Should not vaccinate client with second mumps dose as latest mumps dose was administered less than 4 weeks ago. Check for any other vaccines due and inform the caregiver of when to come back for the second dose. @guidance = Should not vaccinate client with second mumps dose as live vaccine was administered in the past 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the second dose. */ define "Client is not due for mumps vaccination Guidance": case when "Client is not due for mumps vaccination Case 1" then 'Should not vaccinate client with first mumps dose as client\'s age is less than 12 months. Check for any other vaccines due and inform the caregiver of when to come back for first dose.' when "Client is not due for mumps vaccination Case 2" then 'Should not vaccinate client with first mumps dose as live vaccine was administered in the past 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for first dose.' when "Client is not due for mumps vaccination Case 3" then 'Should not vaccinate client with second mumps dose as latest mumps dose was administered less than 4 weeks ago. Check for any other vaccines due and inform the caregiver of when to come back for the second dose.' when "Client is not due for mumps vaccination Case 4" then 'Should not vaccinate client with second mumps dose as live vaccine was administered in the past 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the second dose.' else '' end
No live vaccine was administered in the last 4 weeks
/* @input: No live vaccine was administered in the last 4 weeks @pseudocode: Today's date − latest "Date and time of vaccination" (where "Live vaccine" = TRUE) ≥ 4 weeks */ define "No live vaccine was administered in the last 4 weeks": not("Live vaccine was administered in the last 4 weeks")
No live vaccine was administered in the past 4 weeks
/* @input: No live vaccine was administered in the past 4 weeks @pseudocode: Today's date − latest "Date and time of vaccination" (where "Live vaccine" = TRUE) ≥ 4 weeks @code: No live vaccine was administered in the past 4 weeks-92 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "No live vaccine was administered in the past 4 weeks": Encounter."No live vaccine was administered in the last 4 weeks"
Client is due for mumps vaccination Case 1
/* @output: Client is due for mumps vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for mumps vaccination Case 1": Encounter."No mumps primary series doses were administered" and Encounter."Client's age is more than or equal to 12 months" and Encounter."No live vaccine was administered in the past 4 weeks"
Client is due for mumps vaccination Case 2
/* @output: Client is due for mumps vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for mumps vaccination Case 2": Encounter."One mumps primary series dose was administered" and Encounter."The latest mumps dose was administered more than 4 weeks ago" and Encounter."No live vaccine was administered in the past 4 weeks"
/* @output: Client is due for mumps vaccination @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for mumps vaccination": "Client is due for mumps vaccination Case 1" or "Client is due for mumps vaccination Case 2"
Client is due for mumps vaccination Guidance
/* @output: Client is due for mumps vaccination Guidance @guidance = Should vaccinate client with first mumps dose as the client is within appropriate age range and no live vaccine was administered in the past 4 weeks. Check for contraindications. @guidance = Should vaccinate client with second mumps dose as latest mumps dose was administered more than 4 weeks ago and no live vaccine was administered in the past 4 weeks. Check for contraindications. */ define "Client is due for mumps vaccination Guidance": case when "Client is due for mumps vaccination Case 1" then 'Should vaccinate client with first mumps dose as the client is within appropriate age range and no live vaccine was administered in the past 4 weeks. Check for contraindications.' when "Client is due for mumps vaccination Case 2" then 'Should vaccinate client with second mumps dose as latest mumps dose was administered more than 4 weeks ago and no live vaccine was administered in the past 4 weeks. Check for contraindications.' else '' end
Two mumps primary series doses were administered
/* @input: Two mumps primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Mumps-containing vaccines" and "Type of dose" = "Primary series") = 2 @code: Two mumps primary series doses were administered-125 @decision: IMMZ.D2.DT.Mumps: 2-dose schedule (countries with mumps in schedule and low transmission of measles) */ define "Two mumps primary series doses were administered": "Number of Mumps Primary Series Doses Administered" = 2
/* @output: Mumps immunization schedule is complete @pseudocode: "Immunization recommendation status" = "Complete" "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Mumps-containing vaccines")" */ define "Mumps immunization schedule is complete": Encounter."Two mumps primary series doses were administered"
Mumps immunization schedule is complete Guidance
/* @output: Mumps immunization schedule is complete Guidance @guidance: Mumps immunization schedule is complete. Two mumps primary series doses were administered. Check for any other vaccines due. */ define "Mumps immunization schedule is complete Guidance": 'Mumps immunization schedule is complete. Two mumps primary series doses were administered. Check for any other vaccines due.'
/* @dynamicValue: Guidance */ define "Guidance": case when "Client is not due for mumps vaccination" then "Client is not due for mumps vaccination Guidance" when "Client is due for mumps vaccination" then "Client is due for mumps vaccination Guidance" when "Mumps immunization schedule is complete" then "Mumps immunization schedule is complete Guidance" else '' end
define "Has Guidance": "Guidance" is not null and "Guidance" != ''
/** * @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.D2.DT.Mumps 2-dose schedule (countries with mumps in schedule and low transmission of measles)
WHO recommendations for routine immunization - summary tables (January 2025)
The first dose of the mumps-containing vaccine (monovalent or MMR [measles, mumps and rubella]) should be given at the age of 12–18 months. As a general rule, live vaccines should be given either simultaneously or at intervals of 4 weeks. The age of administration of the second dose may range from the second year of life to age at school entry. The minimum interval between the first and the second doses is 1 month. As a general rule, live vaccines should be given either simultaneously or at intervals of 4 weeks.
Determine if the client is due for Mumps.
Determine if the client is due for Mumps vaccine according to the national immunization protocol. 2-dose schedule (countries with mumps in schedule and low transmission of measles)
Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE11', display: 'Mumps-containing vaccines' } }, display: 'Mumps-containing vaccines' }
Check for Guidance for the patient regarding IMMZ.D2.DT.Mumps.
Show Guidance for the patient regarding IMMZ.D2.DT.Mumps.
Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }
Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }