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

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

This library defines decision support logic for the IMMZ.D5.DT.Hepatitis A contraindications decision table in the Immunization CPG

Title: IMMZD5DTHepatitisACILogic
Id: IMMZD5DTHepatitisACILogic
Version: 0.2.0
Url: IMMZD5DTHepatitisACILogic
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 decision support logic for the IMMZ.D5.DT.Hepatitis A contraindications decision table in the Immunization CPG

Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
Todaydate01In
PatientPatient01Out
Draft Medication Request ID for Hepatitis A doseid01Out
Live attentuated Hepatitis A-containing vaccine is contraindicated Case 1boolean01Out
Live attentuated Hepatitis A-containing vaccine is contraindicated Case 2boolean01Out
Live attentuated Hepatitis A-containing vaccine is contraindicatedboolean01Out
Live attentuated Hepatitis A-containing vaccine is contraindicated Guidancestring01Out
Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical noteboolean01Out
Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidancestring01Out
Guidancestring01Out
Has Guidanceboolean01Out
Test ValidationResource01Out
Content: text/cql

/*
 * Library: IMMZD5DTHepatitisACILogic (IMMZ.D5.DT.Hepatitis A contraindications)
 * Rule: Check for contraindications before administering the vaccine(s) due	
 * Decision Table: Potential contraindications
 * Trigger: IMMZ.D5 Determine vaccine(s) to be administered based on contraindications
 */
library IMMZD5DTHepatitisACILogic

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

include IMMZD5DTHepatitisAEncounterElements called Encounter

parameter Today Date default Today()

context Patient

/*
  @dynamicValue: Draft Medication Request ID for Hepatitis A dose
  */
  define "Draft Medication Request ID for Hepatitis A dose":
    First(Encounter."Draft Medication Request for Hepatitis A dose").id


/*
@dynamicValue: Guidance
*/
define "Guidance":
  case
    when "Live attentuated Hepatitis A-containing vaccine is contraindicated" then "Live attentuated Hepatitis A-containing vaccine is contraindicated Guidance"
    when "Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note" then "Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance"
    else ''
  end

define "Has Guidance":
  "Guidance" is not null and "Guidance" != ''

/*
@output: Live attentuated Hepatitis A-containing vaccine is contraindicated Case 1
@pseudocode: "Immunization recommendation status" = "Contraindicated" (where "Type of hepatitis A dose" = "Live attenuated hepatitis A vaccine")
*/
define "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 1":
  Encounter."The client is currently pregnant"

/*
@output: Live attentuated Hepatitis A-containing vaccine is contraindicated Case 2
@pseudocode: "Immunization recommendation status" = "Contraindicated" (where "Type of hepatitis A dose" = "Live attenuated hepatitis A vaccine")
*/
define "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 2":
  Encounter."The client is severely immunocompromised"

/*
@output: Live attentuated Hepatitis A-containing vaccine is contraindicated
@pseudocode: "Immunization recommendation status" = "Contraindicated" (where "Type of hepatitis A dose" = "Live attenuated hepatitis A vaccine")
*/
define "Live attentuated Hepatitis A-containing vaccine is contraindicated":
  "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 1"
    or "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 2"

/*
@output: Live attentuated Hepatitis A-containing vaccine is contraindicated Guidance
@guidance: Do not vaccinate client with hepatitis A as hepatitis A  vaccination is contraindicated for pregnant client and may pose a theoretical risk to the developing fetus.
@guidance: Do not vaccinate client with hepatitis A as hepatitis A  vaccination is contraindicated for severely immunocompromised clients.
*/
define "Live attentuated Hepatitis A-containing vaccine is contraindicated Guidance":
  case
    when "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 1" then 'Do not vaccinate client with hepatitis A as hepatitis A  vaccination is contraindicated for pregnant client and may pose a theoretical risk to the developing fetus.'
    when "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 2" then 'Do not vaccinate client with hepatitis A as hepatitis A  vaccination is contraindicated for severely immunocompromised clients.'
    else ''
  end

/*
@output: Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note
@pseudocode: "Immunization recommendation status" = "Further evaluation needed"
*/
define "Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note":
  Encounter."The client has a history of severe allergic reactions"

/*
@output: Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance
@guidance: Do not vaccinate client with inactivated hepatitis A vaccination if client has had a severe allergic reaction to the previous dose.
Do not vaccinate client with live attenuated hepatitis A vaccination if client has severe allergy to components included in the live attenuated hepatitis A-containing vaccines.
*/
define "Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note Guidance":
  'Do not vaccinate client with inactivated hepatitis A vaccination if client has had a severe allergic reaction to the previous dose.
Do not vaccinate client with live attenuated hepatitis A vaccination if client has severe allergy to components included in the live attenuated hepatitis A-containing vaccines.'


/*
@test: Test expected results based on example patients
*/
define "Test Validation":
  case
    when Patient.id = '39.0' then "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 1" and "Guidance" = 'Do not vaccinate client with hepatitis A as hepatitis A  vaccination is contraindicated for pregnant client and may pose a theoretical risk to the developing fetus.'
    when Patient.id = '40.0' then "Live attentuated Hepatitis A-containing vaccine is contraindicated Case 2" and "Guidance" = 'Do not vaccinate client with hepatitis A as hepatitis A  vaccination is contraindicated for severely immunocompromised clients.'
    when Patient.id = '41.0' then "Hepatitis A vaccination could be contraindicated. Clinical judgement is required. Create a clinical note" and "Guidance" = 'Do not vaccinate client with inactivated hepatitis A vaccination if client has had a severe allergic reaction to the previous dose.
Do not vaccinate client with live attenuated hepatitis A vaccination if client has severe allergy to components included in the live attenuated hepatitis A-containing vaccines.'
    else 'No test case set'
  end
Content: application/elm+xml
Encoded data (48448 characters)