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: IMMZD2DTHepatitisAIHAV1Logic

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

This library defines decision support logic for the IMMZ.D2.DT.Hepatitis A.Inactivated HAV 1 dose decision table in the Immunization CPG

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

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

code: logic-library

Date: 2025-09-17 23:03:28+0000
Publisher: WHO
Description:

This library defines decision support logic for the IMMZ.D2.DT.Hepatitis A.Inactivated HAV 1 dose decision table in the Immunization CPG

Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
Todaydate01In
PatientPatient01Out
Client is not due for Hepatitis A vaccinationboolean01Out
Client is not due for Hepatitis A vaccination Guidancestring01Out
Client is due for Hepatitis A vaccinationboolean01Out
Client is due for Hepatitis A vaccination Guidancestring01Out
Hepatitis A immunization schedule is completeboolean01Out
Hepatitis A immunization schedule is complete Guidancestring01Out
Guidancestring01Out
Has Guidanceboolean01Out
Test ValidationResource01Out
Content: text/cql

/*
 * Library: IMMZD2DTHepatitisAIHAV1Logic (IMMZ.D2.DT.Hepatitis A.Inactivated HAV 1 dose)
 * Rule: Determine if the client is due for a hepatitis A vaccination according to the national immunization schedule
 * Decision Table: Inactivated hepatitis A virus (HAV), 1-dose schedule
 * Trigger: IMMZ.D2 Determine required vaccination(s) if any  
 */
library IMMZD2DTHepatitisAIHAV1Logic

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

include IMMZD2DTHepatitisAEncounterElements called Encounter

parameter Today Date default Today()

context Patient


/*
@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" != ''

/*
@output: Client is not due for Hepatitis A vaccination
@pseudocode: "Immunization recommendation status" = "Not due"
*/
define "Client is not due for Hepatitis A vaccination":
  Encounter."Client's age is less than 12 months"

/*
@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 12 months.
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":
  'Should not vaccinate client with Hepatitis A 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 the first dose.'

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

/*
@output: Client is due for Hepatitis A vaccination Guidance
@guidance: Should vaccinate client with hepatitis A dose as no hepatitis A dose was administered and client's age is within appropriate age range.
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 and client\'s age is within appropriate age range.
Check for contraindications.'

/*
@output: Hepatitis A immunization schedule is complete
@pseudocode: "Immunization recommendation status" = "Complete"
*/
define "Hepatitis A immunization schedule is complete":
  Encounter."One hepatitis A primary series dose was administered"

/*
@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.'


/*
@test: Test expected results based on example patients
*/
define "Test Validation":
  case
    when Patient.id = '20.1' then "Client is not due for Hepatitis A vaccination" and "Guidance" = 'Should not vaccinate client with Hepatitis A 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 the first dose.'
    when Patient.id = '21.01' then "Client is due for Hepatitis A vaccination" and "Guidance" = 'Should vaccinate client with hepatitis A dose as no hepatitis A dose was administered and client\'s age is within appropriate age range.
Check for contraindications.'
    when Patient.id = '22.0' then "Hepatitis A immunization schedule is complete" and "Guidance" = 'Hepatitis A immunization schedule is complete. One hepatitis A primary series dose was administered.
Check for any other vaccines due.'
    else 'No test case set'
  end
Content: application/elm+xml
Encoded data (41244 characters)