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

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

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

Title: IMMZD5DTBCGCILogic
Id: IMMZD5DTBCGCILogic
Version: 0.2.0
Url: IMMZD5DTBCGCILogic
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.BCG contraindications decision table in the Immunization CPG

Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
Todaydate01In
PatientPatient01Out
Draft Medication Request ID for BCG doseid01Out
Bacille Calmette–Guérin (BCG) vaccination is contraindicatedboolean01Out
Bacille Calmette–Guérin (BCG) vaccination is contraindicated Guidancestring01Out
BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 1boolean01Out
BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 2boolean01Out
BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note.boolean01Out
BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidancestring01Out
BCG vaccination is contraindicated Case 1boolean01Out
BCG vaccination is contraindicated Case 2boolean01Out
BCG vaccination is contraindicatedboolean01Out
BCG vaccination is contraindicated Guidancestring01Out
Guidancestring01Out
Has Guidanceboolean01Out
Test ValidationResource01Out
Content: text/cql

/*
 * Library: IMMZD5DTBCGCILogic (IMMZ.D5.DT.BCG 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 IMMZD5DTBCGCILogic

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

include IMMZD5DTBCGEncounterElements called Encounter

parameter Today Date default Today()

context Patient


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

/*
@dynamicValue: Guidance
*/
define "Guidance":
  case
    when "Bacille Calmette–Guérin (BCG) vaccination is contraindicated" then "Bacille Calmette–Guérin (BCG) vaccination is contraindicated Guidance"
    when "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note." then "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance"
    when "BCG vaccination is contraindicated" then "BCG vaccination is contraindicated Guidance"
    else ''
  end

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

/*
@output: Bacille Calmette–Guérin (BCG) vaccination is contraindicated
@pseudocode: '"Immunization recommendation status" = "Contraindicated"
*/
define "Bacille Calmette–Guérin (BCG) vaccination is contraindicated":
  Encounter."The client is pregnant"

/*
@output: Bacille Calmette–Guérin (BCG) vaccination is contraindicated Guidance
@guidance: Do not vaccinate client with BCG as BCG vaccination is not recommended during pregnancy
*/
define "Bacille Calmette–Guérin (BCG) vaccination is contraindicated Guidance":
  'Do not vaccinate client with BCG as BCG vaccination is not recommended during pregnancy'

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

/*
@output: BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 2
@pseudocode: '"Immunization recommendation status" = "Further evaluation needed"
*/
define "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 2":
  Encounter."The client is exposed to immunosuppressive treatment"
    and Encounter."Client's age is more than or equal to 1 year"

/*
@output: BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note.
@pseudocode: '"Immunization recommendation status" = "Further evaluation needed"
*/
define "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note.":
  "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 1"
    or "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 2"

/*
@output: BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance
@guidance: Do not vaccinate client with BCG if the client had previous allergic reaction to any component of the vaccine
@guidance: Do not vaccinate client with BCG if client is exposed to or receives immunosuppressive treatment
*/
define "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Guidance":
  case
    when "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 1" then 'Do not vaccinate client with BCG if the client had previous allergic reaction to any component of the vaccine'
    when "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 2" then 'Do not vaccinate client with BCG if client is exposed to or receives immunosuppressive treatment'
    else ''
  end

/*
@output: BCG vaccination is contraindicated Case 1
@pseudocode: '"Immunization recommendation status" = "Contraindicated"
*/
define "BCG vaccination is contraindicated Case 1":
  Encounter."The client has immunodeficiency syndromes"

/*
@output: BCG vaccination is contraindicated Case 2
@pseudocode: '"Immunization recommendation status" = "Contraindicated"
*/
define "BCG vaccination is contraindicated Case 2":
  Encounter."The client is exposed to immunosuppressive treatment"
    and Encounter."Client's age is less than 1 year"

/*
@output: BCG vaccination is contraindicated
@pseudocode: '"Immunization recommendation status" = "Contraindicated"
*/
define "BCG vaccination is contraindicated":
  "BCG vaccination is contraindicated Case 1"
    or "BCG vaccination is contraindicated Case 2"

/*
@output: BCG vaccination is contraindicated Guidance
@guidance: Do not vaccinate client with BCG as BCG vaccination is contraindicated for clients with immunodeficiency syndromes
@guidance: Do not vaccinate client with BCG as BCG vaccination is contraindicated for clients undergoing immunosuppressive treatment
*/
define "BCG vaccination is contraindicated Guidance":
  case
    when "BCG vaccination is contraindicated Case 1" then 'Do not vaccinate client with BCG as BCG vaccination is contraindicated for clients with immunodeficiency syndromes'
    when "BCG vaccination is contraindicated Case 2" then 'Do not vaccinate client with BCG as BCG vaccination is contraindicated for clients undergoing immunosuppressive treatment'
    else ''
  end


/*
@test: Test expected results based on example patients
*/
define "Test Validation":
  case
    when Patient.id = 'BCG37.0' then "Bacille Calmette–Guérin (BCG) vaccination is contraindicated" and "Guidance" = 'Do not vaccinate client with BCG as BCG vaccination is not recommended during pregnancy'
    when Patient.id = 'BCG38.0' then "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 1" and "Guidance" = 'Do not vaccinate client with BCG if the client had previous allergic reaction to any component of the vaccine'
    when Patient.id = 'BCG39.0' then "BCG vaccination is contraindicated Case 1" and "Guidance" = 'Do not vaccinate client with BCG as BCG vaccination is contraindicated for clients with immunodeficiency syndromes'
    when Patient.id = 'BCG40.01' then "BCG vaccination is contraindicated Case 2" and "Guidance" = 'Do not vaccinate client with BCG as BCG vaccination is contraindicated for clients undergoing immunosuppressive treatment'
    when Patient.id = 'BCG41.01' then "BCG vaccination could be contraindicated. Clinical judgement is required. Create a clinical note. Case 2" and "Guidance" = 'Do not vaccinate client with BCG if client is exposed to or receives immunosuppressive treatment'
    else 'No test case set'
  end

Content: application/elm+xml
Encoded data (68552 characters)