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

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

This library defines decision support logic for the IMMZ.D18.S.Rubella.Low incidence schedule table in the Immunization CPG

Title: IMMZD18SRubellaLowLogic
Id: IMMZD18SRubellaLowLogic
Version: 0.2.0
Url: IMMZD18SRubellaLowLogic
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.D18.S.Rubella.Low incidence schedule table in the Immunization CPG

Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
Todaydate01In
PatientPatient01Out
One rubella dose from the primary series was administered. The primary series has been completedboolean01Out
Rubella dose 1boolean01Out
Rubella dose 1 Due Datedate01Out
Rubella dose 1 Createstring01Out
Rubella dose 1 OverdueResource01Out
Rubella dose 1 ExpirationResource01Out
Test ValidationResource01Out
Content: text/cql

/*
 * Library: IMMZD18SRubellaLowLogic (IMMZ.D18.S.Rubella.Low incidence schedule)
 * Schedule Table: Schedule for countries with low incidence of rubella		 							
 */
library IMMZD18SRubellaLowLogic

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

include WHOCommon called WC

include IMMZCommon called Common
include IMMZConcepts called Concepts

include IMMZEncounterElements called IE
include IMMZD2DTRubellaEncounterElements called Encounter

parameter Today Date default Today()

context Patient


/*
@output: Rubella dose 1
@description: Provision of the rubella dose 1
@trigger: Child's birth
@triggerDate: "Date of birth"
*/
define "Rubella dose 1":
  Encounter."No rubella primary series dose was administered"
  and not "One rubella dose from the primary series was administered. The primary series has been completed"

/*
@output: Rubella dose 1 Create
@create: Rubella dose 1 should be provided if the client's age is at least 12 months
*/
define "Rubella dose 1 Create":
  if "Rubella dose 1" 
  then 'Rubella dose 1 should be provided if the client\'s age is at least 12 months' + '
Due Date: ' + ToString("Rubella dose 1 Due Date")
  else ''

/*
@dynamicValue: Rubella dose 1 Due Date
@pseudocode: "Date of birth" + 12 months
*/
define "Rubella dose 1 Due Date":
  if "Rubella dose 1" then Patient.birthDate + 12 months
  else null

/*
@dynamicValue: Rubella dose 1 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define "Rubella dose 1 Overdue":
  null

/*
@dynamicValue: Rubella dose 1 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define "Rubella dose 1 Expiration":
  null
  
/*
@complete: One rubella dose from the primary series was administered. The primary series has been completed
@pseudocode: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Rubella-containing vaccines")
*/
define "One rubella dose from the primary series was administered. The primary series has been completed":
  Encounter."One rubella primary series dose was administered"

/*
@test: Test expected results based on example patients
*/
define "Test Validation":
  case
    when Patient.id = '19.2' then "Rubella dose 1"
    when Patient.id = '20.123' then "Rubella dose 1"
    when Patient.id = '21.123' then "Rubella dose 1"
    when Patient.id = '22.1' then "One rubella dose from the primary series was administered. The primary series has been completed"
    else 'No test case set'
  end
Content: application/elm+xml
Encoded data (36036 characters)