Title: IMMZD2DTMeaslesMCVDose0Logic Id: IMMZD2DTMeaslesMCVDose0Logic Version: 0.2.0 Url: IMMZD2DTMeaslesMCVDose0Logic Status: draft Type: system: http://terminology.hl7.org/CodeSystem/library-type code: logic-library Date: 2025-11-25 19:41:02+0000 Publisher: WHO Description: This library defines decision support logic for the IMMZ.D2.DT.Measles.MCV dose 0 decision table in the Immunization CPG Related Artifacts: Dependencies IMMZD2DTMeaslesEncounterElements Parameters: Name Type Min Max In/Out Today date 0 1 In Patient Patient 0 1 Out Client is not due for MCV0 Case 1 boolean 0 1 Out Client is not due for MCV0 Case 2 boolean 0 1 Out Client is not due for MCV0 Case 3 boolean 0 1 Out Client is not due for MCV0 Case 4 boolean 0 1 Out Client is not due for MCV0 boolean 0 1 Out Client is not due for MCV0 Guidance string 0 1 Out Consider MCV0. boolean 0 1 Out Consider MCV0. Guidance string 0 1 Out Guidance string 0 1 Out Has Guidance boolean 0 1 Out Test Validation Resource 0 1 Out Content: text/cql /* * Library: IMMZD2DTMeaslesMCVDose0Logic (IMMZ.D2.DT.Measles.MCV dose 0) * Rule: Determine if the client is due for a measles vaccination according to the national immunization schedule * Decision Table: Measles-containing vaccine dose 0 (MCV0) administration * Trigger: IMMZ.D2 Determine required vaccination(s) if any */ library IMMZD2DTMeaslesMCVDose0Logic using FHIR version '4.0.1' include FHIRHelpers version '4.0.1' include IMMZD2DTMeaslesEncounterElements called Encounter parameter Today Date default Today() context Patient /* @dynamicValue: Guidance */ define "Guidance": case when "Client is not due for MCV0" then "Client is not due for MCV0 Guidance" when "Consider MCV0." then "Consider MCV0. Guidance" else '' end define "Has Guidance": "Guidance" is not null and "Guidance" != '' /* @output: Client is not due for MCV0 Case 1 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for MCV0 Case 1": Encounter."Client's age is less than 6 months" /* @output: Client is not due for MCV0 Case 2 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for MCV0 Case 2": Encounter."MCV0 was not administered" and Encounter."Client's age is between 6 months and 9 months" and Encounter."Live vaccine was administered in the last 4 weeks" /* @output: Client is not due for MCV0 Case 3 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for MCV0 Case 3": Encounter."Client's age is more than or equal to 9 months" /* @output: Client is not due for MCV0 Case 4 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for MCV0 Case 4": Encounter."MCV0 was administered" /* @output: Client is not due for MCV0 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for MCV0": "Client is not due for MCV0 Case 1" or "Client is not due for MCV0 Case 2" or "Client is not due for MCV0 Case 3" or "Client is not due for MCV0 Case 4" /* @output: Client is not due for MCV0 Guidance @guidance = Should not vaccinate client with MCV0 as client's age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0. @guidance = Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0. @guidance = Should not vaccinate client with MCV0 as client's age is more than 9 months. Check measles routine immunization schedule. @guidance = MCV0 was administered. Check measles routine immunization schedule. */ define "Client is not due for MCV0 Guidance": case when "Client is not due for MCV0 Case 1" then 'Should not vaccinate client with MCV0 as client\'s age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0.' when "Client is not due for MCV0 Case 2" then 'Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0.' when "Client is not due for MCV0 Case 3" then 'Should not vaccinate client with MCV0 as client\'s age is more than 9 months. Check measles routine immunization schedule.' when "Client is not due for MCV0 Case 4" then 'MCV0 was administered. Check measles routine immunization schedule.' else '' end /* @output: Consider MCV0. @pseudocode: Create a clinical note. "Immunization recommendation status" = "Further evaluation needed" */ define "Consider MCV0.": Encounter."MCV0 was not administered" and Encounter."Client's age is between 6 months and 9 months" and Encounter."No live vaccine was administered in the last 4 weeks" /* @output: Consider MCV0. Guidance @guidance: May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable. */ define "Consider MCV0. Guidance": 'May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable.' /* @test: Test expected results based on example patients */ define "Test Validation": case when Patient.id = 'Measles36.1' then "Client is not due for MCV0 Case 1" and "Guidance" = 'Should not vaccinate client with MCV0 as client\'s age is less than 6 months. Check for any vaccines due and inform the caregiver of when to come back for MCV0.' when Patient.id = 'Measles37.3' then "Client is not due for MCV0 Case 2" and "Guidance" = 'Should not vaccinate client with MCV0 as live vaccine was administered in the past 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for MCV0.' when Patient.id = 'Measles38.3' then "Consider MCV0." and "Guidance" = 'May vaccinate client with MCV0 as client is within appropriate age range, MCV0 was not administered and no live vaccine was administered in the past 4 weeks. Check if one of the MCV0 specific scenarios is applicable.' when Patient.id = 'Measles39.1' then "Client is not due for MCV0 Case 3" and "Guidance" = 'Should not vaccinate client with MCV0 as client\'s age is more than 9 months. Check measles routine immunization schedule.' when Patient.id = 'Measles40.1' then "Client is not due for MCV0 Case 4" and "Guidance" = 'MCV0 was administered. Check measles routine immunization schedule.' else 'No test case set' end Content: application/elm+xml Encoded data (62156 characters)
This library defines decision support logic for the IMMZ.D2.DT.Measles.MCV dose 0 decision table in the Immunization CPG