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

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

This library defines decision support logic for the IMMZ.D18.S.Measles.MCV dose 0 schedule table in the Immunization CPG

Title: IMMZD18SMeaslesDose0OTLogic
Id: IMMZD18SMeaslesDose0OTLogic
Version: 0.2.0
Url: IMMZD18SMeaslesDose0OTLogic
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.Measles.MCV dose 0 schedule table in the Immunization CPG

Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
Todaydate01In
PatientPatient01Out
MCV0 was administeredboolean01Out
MCV0 Expirationdate01Out
MCV0boolean01Out
MCV0 Due Datedate01Out
MCV0 Createstring01Out
MCV0 OverdueResource01Out
Test ValidationResource01Out
Content: text/cql

/*
 * Library: IMMZD18SMeaslesDose0OTLogic (IMMZ.D18.S.Measles.MCV dose 0 schedule)
 * Schedule Table: Measles-containing vaccine dose 0 (MCV0) schedule for Ongoing Transmission
 */
library IMMZD18SMeaslesDose0OTLogic

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

include IMMZD2DTMeaslesEncounterElements called Encounter

parameter Today Date default Today()

context Patient


/*
@output: MCV0
@description: Provision of the MCV0
@trigger: Child's birth
@triggerDate: "Date of birth"
*/
define "MCV0":
  not "MCV0 was administered" and "MCV0 Expiration" after Today

/*
@output: MCV0 Create
@create: In the following situations, a supplementary dose of MCV should be given to infants from 6 months of age: 
• during a measles outbreak as part of intensified service delivery;
• during campaigns in settings where the risk of measles among infants aged under 9 months remains high (e.g. in endemic countries experiencing regular outbreaks);
• for internally displaced populations and refugees, and populations in conflict zones;
• for individual infants at high risk of contracting measles (e.g. contacts of known measles cases or in settings with increased risk of exposure during outbreaks such as day-care facilities);
• for infants travelling to countries experiencing measles outbreaks;
• for infants known to be HIV-infected or exposed (i.e. born to a woman infected with HIV).
*/
define "MCV0 Create":
  if "MCV0" 
  then 'In the following situations, a supplementary dose of MCV should be given to infants from 6 months of age: 
• during a measles outbreak as part of intensified service delivery;
• during campaigns in settings where the risk of measles among infants aged under 9 months remains high (e.g. in endemic countries experiencing regular outbreaks);
• for internally displaced populations and refugees, and populations in conflict zones;
• for individual infants at high risk of contracting measles (e.g. contacts of known measles cases or in settings with increased risk of exposure during outbreaks such as day-care facilities);
• for infants travelling to countries experiencing measles outbreaks;
• for infants known to be HIV-infected or exposed (i.e. born to a woman infected with HIV).' + '
Due Date: ' + ToString("MCV0 Due Date") + '
Expiration: ' + ToString("MCV0 Expiration")
  else ''

/*
@dynamicValue: MCV0 Due Date
@pseudocode: "Date of birth" + 6 months
*/
define "MCV0 Due Date":
  if "MCV0" then Patient.birthDate + 6 months
  else null

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

/*
@dynamicValue: MCV0 Expiration
@pseudocode: "Date of birth" + 9 months for countries with ongoing transmission in which the risk of measles mortality remains high
*/
define "MCV0 Expiration":
  Patient.birthDate + 9 months

/*
@complete: MCV0 was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Measles-containing vaccines" and "Type of dose" = "Dose 0") = 1
*/
define "MCV0 was administered":
  Encounter."MCV0 was administered"


/*
@test: Test expected results based on example patients
*/
define "Test Validation":
  case
    when Patient.id = '35.Alt6m' then "MCV0"
    when Patient.id = '35.Agt9m' then not "MCV0"  // expired
    when Patient.id = '35.Agt6mLVlt4w' then "MCV0"
    when Patient.id = '35.D1' then not "MCV0"  // done
    else 'No test case set'
  end
Content: application/elm+xml
Encoded data (40804 characters)