Id: IMMZD2DTHepatitisALiveAttenuatedHAV1Dose Url: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose Version: 0.2.0 Title: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose 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.Hepatitis A.Live attenuated HAV 1 dose Live attenuated hepatitis A virus (HAV), 1 dose schedule Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD2DTHepatitisALiveAttenuatedHAV1DoseLogic Actions: Determine if the client is due for HepatitisA.: Determine if the client is due for HepatitisA vaccine according to the national immunization protocol. Live attenuated hepatitis A virus (HAV), 1 dose schedule If: Applicability: Client is due for Hepatitis A vaccination (Client is due for Hepatitis A vaccination) Then: Definition: IMMZD2DTMR Dynamic Values: status: ('draft') intent: ('proposal') medication: (Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE5', display: 'Hepatitis A-containing vaccines' } }, display: 'Hepatitis A-containing vaccines' }) Check for Guidance for the patient regarding IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose.: Show Guidance for the patient regarding IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose. 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 18 months @pseudocode: Today's date − "Date of birth" < 18 months @code: Client's age is less than 18 months-42 @decision: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose: Live attenuated hepatitis A virus (HAV), 1 dose schedule */ define "Client's age is less than 18 months": Encounter."Current Patient Age In Months" < 18
Client is not due for Hepatitis A vaccination Case 1
/* @output: Client is not due for Hepatitis A vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for Hepatitis A vaccination Case 1": Encounter."Client's age is less than 18 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
Hepatitis A Doses Administered to Patient
/* @internal: Hepatitis A containing Doses Administered to Patient */ define "Hepatitis A Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Hepatitis A-containing vaccines"
Hepatitis A Primary Series Doses Administered to Patient
/* @internal: Hepatitis A containing Doses Administered to Patient that are in the Primary series */ define "Hepatitis A Primary Series Doses Administered to Patient": "Hepatitis A Doses Administered to Patient".seriesPrimary()
Number of Hepatitis A Primary Series Doses Administered
/* @internal: Number of Hepatitis A Primary Series doses */ define "Number of Hepatitis A Primary Series Doses Administered": Count("Hepatitis A Primary Series Doses Administered to Patient")
No hepatitis A primary series doses were administered
/* @input: No hepatitis A primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Hepatitis A-containing vaccines" and "Type of dose" = "Primary series") = 0 @code: No hepatitis A primary series doses were administered-131 @decision: IMMZ.D2.DT.Hepatitis A.Inactivated HAV 2 doses: Inactivated hepatitis A virus (HAV), 2-dose schedule */ define "No hepatitis A primary series doses were administered": "Number of Hepatitis A Primary Series Doses Administered" = 0
No hepatitis A primary series dose was administered
/* @input: No hepatitis A primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Hepatitis A-containing vaccines" and "Type of dose" = "Primary series") = 0 @code: No hepatitis A primary series dose was administered-131 @decision: IMMZ.D2.DT.Hepatitis A.Inactivated HAV 1 dose: Inactivated hepatitis A virus (HAV), 1-dose schedule @decision: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose: Live attenuated hepatitis A virus (HAV), 1 dose schedule */ define "No hepatitis A primary series dose was administered": "No hepatitis A primary series doses were administered"
Client's age is more than or equal to 18 months
/* @input: Client's age is more than or equal to 18 months @pseudocode: Today's date − "Date of birth" ≥ 18 months @code: Client's age is more than or equal to 18 months-42 @decision: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose: Live attenuated hepatitis A virus (HAV), 1 dose schedule */ define "Client's age is more than or equal to 18 months": Encounter."Current Patient Age In Months" >= 18
/* @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
/* @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 @code: Live vaccine was administered in the last 4 weeks-92 @decision: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose: Live attenuated hepatitis A virus (HAV), 1 dose schedule */ define "Live vaccine was administered in the last 4 weeks": Encounter."Live vaccine was administered in the last 4 weeks"
Client is not due for Hepatitis A vaccination Case 2
/* @output: Client is not due for Hepatitis A vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for Hepatitis A vaccination Case 2": Encounter."No hepatitis A primary series dose was administered" and Encounter."Client's age is more than or equal to 18 months" and Encounter."Live vaccine was administered in the last 4 weeks"
Client is not due for Hepatitis A vaccination
/* @output: Client is not due for Hepatitis A vaccination @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for Hepatitis A vaccination": "Client is not due for Hepatitis A vaccination Case 1" or "Client is not due for Hepatitis A vaccination Case 2"
Client is not due for Hepatitis A vaccination Guidance
/* @output: Client is not due for Hepatitis A vaccination Guidance @guidance = Should not vaccinate client with Hepatitis A dose as client's age is less than 18 months. Check for any other vaccines due and inform the caregiver of when to come back for the first dose. @guidance = Should not vaccinate client with Hepatitis A dose as live vaccine was administered in the last 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the first dose. */ define "Client is not due for Hepatitis A vaccination Guidance": case when "Client is not due for Hepatitis A vaccination Case 1" then 'Should not vaccinate client with Hepatitis A dose as client\'s age is less than 18 months. Check for any other vaccines due and inform the caregiver of when to come back for the first dose.' when "Client is not due for Hepatitis A vaccination Case 2" then 'Should not vaccinate client with Hepatitis A dose as live vaccine was administered in the last 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the first 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")
/* @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 @code: No live vaccine was administered in the last 4 weeks-92 @decision: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose: Live attenuated hepatitis A virus (HAV), 1 dose schedule */ define "No live vaccine was administered in the last 4 weeks": Encounter."No live vaccine was administered in the last 4 weeks"
Client is due for Hepatitis A vaccination
/* @output: Client is due for Hepatitis A vaccination @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for Hepatitis A vaccination": Encounter."No hepatitis A primary series dose was administered" and Encounter."Client's age is more than or equal to 18 months" and Encounter."No live vaccine was administered in the last 4 weeks"
Client is due for Hepatitis A vaccination Guidance
/* @output: Client is due for Hepatitis A vaccination Guidance @guidance: Should vaccinate client with hepatitis A dose as no Hepatitis A dose was administered, client is within appropriate age range and no live vaccine was administered in the last 4 weeks. Check for contraindications. */ define "Client is due for Hepatitis A vaccination Guidance": 'Should vaccinate client with hepatitis A dose as no Hepatitis A dose was administered, client is within appropriate age range and no live vaccine was administered in the last 4 weeks. Check for contraindications.'
One hepatitis A primary series dose was administered
/* @input: One hepatitis A primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Hepatitis A-containing vaccines" and "Type of dose" = "Primary series") = 1 @code: One hepatitis A primary series dose was administered-131 @decision: IMMZ.D2.DT.Hepatitis A.Inactivated HAV 2 doses: Inactivated hepatitis A virus (HAV), 2-dose schedule @decision: IMMZ.D2.DT.Hepatitis A.Inactivated HAV 1 dose: Inactivated hepatitis A virus (HAV), 1-dose schedule @decision: IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose: Live attenuated hepatitis A virus (HAV), 1 dose schedule */ define "One hepatitis A primary series dose was administered": "Number of Hepatitis A Primary Series Doses Administered" = 1
Hepatitis A immunization schedule is complete
/* @output: Hepatitis A immunization schedule is complete @pseudocode: "Immunization recommendation status" = "Complete" "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Hepatitis A-containing vaccines") */ define "Hepatitis A immunization schedule is complete": Encounter."One hepatitis A primary series dose was administered"
Hepatitis A immunization schedule is complete Guidance
/* @output: Hepatitis A immunization schedule is complete Guidance @guidance: Hepatitis A immunization schedule is complete. One hepatitis A primary series dose was administered. Check for any other vaccines due. */ define "Hepatitis A immunization schedule is complete Guidance": 'Hepatitis A immunization schedule is complete. One hepatitis A primary series dose was administered. Check for any other vaccines due.'
/* @dynamicValue: Guidance */ define "Guidance": case when "Client is not due for Hepatitis A vaccination" then "Client is not due for Hepatitis A vaccination Guidance" when "Client is due for Hepatitis A vaccination" then "Client is due for Hepatitis A vaccination Guidance" when "Hepatitis A immunization schedule is complete" then "Hepatitis A 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() )
Value set Hepatitis A-containing vaccines
IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose
IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose Live attenuated hepatitis A virus (HAV), 1 dose schedule
WHO recommendations for routine immunization - summary tables (January 2025)
Live vaccines are licensed for individuals aged ≥18 months and are administered as a single subcutaneous dose.
Determine if the client is due for HepatitisA.
Determine if the client is due for HepatitisA vaccine according to the national immunization protocol. Live attenuated hepatitis A virus (HAV), 1 dose schedule
Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE5', display: 'Hepatitis A-containing vaccines' } }, display: 'Hepatitis A-containing vaccines' }
Check for Guidance for the patient regarding IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose.
Show Guidance for the patient regarding IMMZ.D2.DT.Hepatitis A.Live attenuated HAV 1 dose.
Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }
Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }