WHO Immunization Implementation Guide
0.2.0 - ci-build

WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/ and changes regularly. See the Directory of published versions

Library: IMMZD2DTHepatitisAEncounterElements

Official URL: http://smart.who.int/immunizations/Library/IMMZD2DTHepatitisAEncounterElements Version: 0.2.0
Draft as of 2025-08-08 Computable Name: IMMZD2DTHepatitisAEncounterElements

This library defines encounter-based elements for Hepatitis A used throughout the Immunization CPG

Title: IMMZD2DTHepatitisAEncounterElements
Id: IMMZD2DTHepatitisAEncounterElements
Version: 0.2.0
Url: IMMZD2DTHepatitisAEncounterElements
Status: draft
Type:

system: http://terminology.hl7.org/CodeSystem/library-type

code: logic-library

Date: 2025-08-08 19:12:11+0000
Publisher: WHO
Description:

This library defines encounter-based elements for Hepatitis A used throughout the Immunization CPG

Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
Todaydate01In
EncounterIdstring01In
PatientPatient01Out
Hepatitis A Doses Administered to PatientImmunization0*Out
Date of Latest Hepatitis A Dosedate01Out
Hepatitis A Primary Series Doses Administered to PatientImmunization0*Out
Number of Hepatitis A Primary Series Doses Administeredinteger01Out
No hepatitis A primary series doses were administeredboolean01Out
No hepatitis A primary series dose was administeredboolean01Out
One hepatitis A primary series dose was administeredboolean01Out
Two hepatitis A primary series doses were administeredboolean01Out
Client's age is less than 12 monthsboolean01Out
Client's age is more than or equal to 12 monthsboolean01Out
The latest Hepatitis A dose was administered less than 6 months agoboolean01Out
The latest Hepatitis A dose was administered more than 6 months agoboolean01Out
Client's age is less than 18 monthsboolean01Out
Client's age is more than or equal to 18 monthsboolean01Out
Live vaccine was administered in the last 4 weeksboolean01Out
No live vaccine was administered in the last 4 weeksboolean01Out
Content: text/cql

/*
  * Library: IMMZD2DTHepatitisAEncounterElements
  */
library IMMZD2DTHepatitisAEncounterElements

using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'

include WHOConcepts
include WHOCommon called WC
include WHOElements called WE

include IMMZCommon called Common
include IMMZConcepts called Concepts

include IMMZEncounterElements called Encounter

include IMMZD2DTHepatitisAElements called HepatitisAElements

parameter Today Date default Today()
parameter EncounterId String

context 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"

/*
@internal: Date and time of last Hepatitis A dose
*/
define "Date of Latest Hepatitis A Dose":
  date from start of "Hepatitis A Doses Administered to Patient".mostRecent().occurrence.toInterval()

/*
@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()

/*
@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")

/*
@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
@decision: 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

/*
@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
@decision: Inactivated hepatitis A virus (HAV), 1-dose schedule
@decision: 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"

/*
@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
@decision: Inactivated hepatitis A virus (HAV), 2-dose schedule
@decision: Inactivated hepatitis A virus (HAV), 1-dose schedule
@decision: 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

/*
@input: Two 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") = 2
@decision: Inactivated hepatitis A virus (HAV), 2-dose schedule
*/
define "Two hepatitis A primary series doses were administered":
  "Number of Hepatitis A Primary Series Doses Administered" = 2

/*
@input: Client's age is less than 12 months
@pseudocode: Today's date − "Date of birth" < 12 months
@decision: Inactivated hepatitis A virus (HAV), 2-dose schedule
@decision: Inactivated hepatitis A virus (HAV), 1-dose schedule
*/
define "Client's age is less than 12 months":
  Encounter."Current Patient Age In Months" < 12

/*
@input: Client's age is more than or equal to 12 months
@pseudocode: Today's date − "Date of birth" ≥ 12 months
@decision: Inactivated hepatitis A virus (HAV), 2-dose schedule
@decision: Inactivated hepatitis A virus (HAV), 1-dose schedule
*/
define "Client's age is more than or equal to 12 months":
  Encounter."Current Patient Age In Months" >= 12

/*
@input: The latest Hepatitis A dose was administered less than 6 months ago
@pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Hepatitis A-containing vaccines") < 6 months
@decision: Inactivated hepatitis A virus (HAV), 2-dose schedule
*/
define "The latest Hepatitis A dose was administered less than 6 months ago":
  "Date of Latest Hepatitis A Dose" is not null 
    and duration in months between "Date of Latest Hepatitis A Dose" and Today < 6

/*
@input: The latest Hepatitis A dose was administered more than 6 months ago
@pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Hepatitis A-containing vaccines") ≥ 6 months
@decision: Inactivated hepatitis A virus (HAV), 2-dose schedule
*/
define "The latest Hepatitis A dose was administered more than 6 months ago":
  not "The latest Hepatitis A dose was administered less than 6 months ago"

/*
@input: Client's age is less than 18 months
@pseudocode: Today's date − "Date of birth" < 18 months
@decision: 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

/*
@input: Client's age is more than or equal to 18 months
@pseudocode: Today's date − "Date of birth" ≥ 18 months
@decision: 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

/*
@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
@decision: 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"

/*
@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
@decision: 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"
Content: application/elm+xml
Encoded data (49656 characters)