Title: IMMZD2DTSeasonalinfluenzaSeasonalInfluenzaLogic Id: IMMZD2DTSeasonalinfluenzaSeasonalInfluenzaLogic Version: 0.2.0 Url: IMMZD2DTSeasonalinfluenzaSeasonalInfluenzaLogic Status: draft Type: system: http://terminology.hl7.org/CodeSystem/library-type code: logic-library Date: 2025-12-05 23:35:21+0000 Publisher: WHO Description: This library defines decision support logic for the IMMZ.D2.DT.Seasonal influenza decision table in the Immunization CPG Related Artifacts: Dependencies IMMZD2DTSeasonalinfluenzaEncounterElements Parameters: Name Type Min Max In/Out Today date 0 1 In Patient Patient 0 1 Out Client is not due for seasonal influenza vaccination Case 1 boolean 0 1 Out Client is not due for seasonal influenza vaccination Case 2 boolean 0 1 Out Client is not due for seasonal influenza vaccination boolean 0 1 Out Client is not due for seasonal influenza vaccination Guidance string 0 1 Out Client is due for seasonal influenza vaccination Case 1 boolean 0 1 Out Client is due for seasonal influenza vaccination Case 2 boolean 0 1 Out Client is due for seasonal influenza vaccination boolean 0 1 Out Client is due for seasonal influenza vaccination Guidance string 0 1 Out The primary series is complete. Client is not due for seasonal influenza annual dose Case 1 boolean 0 1 Out The primary series is complete. Client is not due for seasonal influenza annual dose Case 2 boolean 0 1 Out The primary series is complete. Client is not due for seasonal influenza annual dose boolean 0 1 Out The primary series is complete. Client is not due for seasonal influenza annual dose Guidance string 0 1 Out The primary series is complete. Client is due for seasonal influenza annual dose Case 1 boolean 0 1 Out The primary series is complete. Client is due for seasonal influenza annual dose Case 2 boolean 0 1 Out The primary series is complete. Client is due for seasonal influenza annual dose boolean 0 1 Out The primary series is complete. Client is due for seasonal influenza annual dose 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: IMMZD2DTSeasonalinfluenzaSeasonalInfluenzaLogic (IMMZ.D2.DT.Seasonal influenza) * Rule: Determine if the client is due for a seasonal influenza vaccination according to the national immunization schedule * Decision Table: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule * Trigger: IMMZ.D2 Determine required vaccination(s) if any */ library IMMZD2DTSeasonalinfluenzaSeasonalInfluenzaLogic using FHIR version '4.0.1' include FHIRHelpers version '4.0.1' include IMMZD2DTSeasonalinfluenzaEncounterElements called Encounter parameter Today Date default Today() context Patient /* @dynamicValue: Guidance */ define "Guidance": case when "Client is not due for seasonal influenza vaccination" then "Client is not due for seasonal influenza vaccination Guidance" when "Client is due for seasonal influenza vaccination" then "Client is due for seasonal influenza vaccination Guidance" when "The primary series is complete. Client is not due for seasonal influenza annual dose" then "The primary series is complete. Client is not due for seasonal influenza annual dose Guidance" when "The primary series is complete. Client is due for seasonal influenza annual dose" then "The primary series is complete. Client is due for seasonal influenza annual dose Guidance" else '' end define "Has Guidance": "Guidance" is not null and "Guidance" != '' /* @output: Client is not due for seasonal influenza vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for seasonal influenza vaccination Case 1": Encounter."Client's age is less than 6 months" /* @output: Client is not due for seasonal influenza vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for seasonal influenza vaccination Case 2": Encounter."One seasonal influenza primary series doses were administered" and Encounter."Client's age is less than 9 years" and Encounter."The latest seasonal influenza dose was administered less than 4 weeks ago" /* @output: Client is not due for seasonal influenza vaccination @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for seasonal influenza vaccination": "Client is not due for seasonal influenza vaccination Case 1" or "Client is not due for seasonal influenza vaccination Case 2" /* @output: Client is not due for seasonal influenza vaccination Guidance @guidance = Should not vaccinate client with first seasonal influenza dose as client's age is less than 6 months. Check for any other vaccines due and inform the caregiver of when to come back for first dose. @guidance = Should not vaccinate client with second seasonal influenza dose as latest seasonal influenza dose was administered less than 4 weeks ago. Check for any other vaccines due and inform the caregiver of when to come back for the second dose. */ define "Client is not due for seasonal influenza vaccination Guidance": case when "Client is not due for seasonal influenza vaccination Case 1" then 'Should not vaccinate client with first seasonal influenza dose as client\'s age is less than 6 months. Check for any other vaccines due and inform the caregiver of when to come back for first dose.' when "Client is not due for seasonal influenza vaccination Case 2" then 'Should not vaccinate client with second seasonal influenza dose as latest seasonal influenza dose was administered less than 4 weeks ago. Check for any other vaccines due and inform the caregiver of when to come back for the second dose.' else '' end /* @output: Client is due for seasonal influenza vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for seasonal influenza vaccination Case 1": Encounter."No seasonal influenza primary series doses were administered" and Encounter."Client's age is more than or equal to 6 months" /* @output: Client is due for seasonal influenza vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for seasonal influenza vaccination Case 2": Encounter."One seasonal influenza primary series doses were administered" and Encounter."Client's age is less than 9 years" and Encounter."The latest seasonal influenza dose was administered more than 4 weeks ago" /* @output: Client is due for seasonal influenza vaccination @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for seasonal influenza vaccination": "Client is due for seasonal influenza vaccination Case 1" or "Client is due for seasonal influenza vaccination Case 2" /* @output: Client is due for seasonal influenza vaccination Guidance @guidance = Should vaccinate client with first seasonal influenza dose as no seasonal infuenza doses were administered and client is within appropriate age range. Check for contraindications. @guidance = Should vaccinate client with second seasonal influenza dose as client is within appropriate age range and latest seasonal influenza dose was administerered more than 4 weeks ago. Check for contraindications. */ define "Client is due for seasonal influenza vaccination Guidance": case when "Client is due for seasonal influenza vaccination Case 1" then 'Should vaccinate client with first seasonal influenza dose as no seasonal infuenza doses were administered and client is within appropriate age range. Check for contraindications.' when "Client is due for seasonal influenza vaccination Case 2" then 'Should vaccinate client with second seasonal influenza dose as client is within appropriate age range and latest seasonal influenza dose was administerered more than 4 weeks ago. Check for contraindications.' else '' end /* @output: The primary series is complete. Client is not due for seasonal influenza annual dose Case 1 @pseudocode: "Immunization recommendation status" = "Not due" "Completed the primary vaccination series" (where "Vaccine type" = "Seasonal influenza vaccines") = TRUE */ define "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1": Encounter."One seasonal influenza primary series doses were administered" and Encounter."Client's age is more than or equal to 9 years" and Encounter."The latest seasonal influenza dose was administered less than 1 year ago" /* @output: The primary series is complete. Client is not due for seasonal influenza annual dose Case 2 @pseudocode: "Immunization recommendation status" = "Not due" "Completed the primary vaccination series" (where "Vaccine type" = "Seasonal influenza vaccines") = TRUE */ define "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2": Encounter."Two seasonal influenza primary series doses were administered" and Encounter."The latest seasonal influenza dose was administered less than 1 year ago" /* @output: The primary series is complete. Client is not due for seasonal influenza annual dose @pseudocode: "Immunization recommendation status" = "Not due" "Completed the primary vaccination series" (where "Vaccine type" = "Seasonal influenza vaccines") = TRUE */ define "The primary series is complete. Client is not due for seasonal influenza annual dose": "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1" or "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2" /* @output: The primary series is complete. Client is not due for seasonal influenza annual dose Guidance @guidance = Should not vaccinate client with annual dose as the latest seasonal influenza dose was administered less than 1 year ago. Check for any other vaccines due and inform the caregiver of when to come back for the next dose. @guidance = Should not vaccinate client with annual dose as latest seasonal influenza dose was administered less than 1 year ago. Check for any other vaccines due and inform the caregiver of when to come back for the next dose. */ define "The primary series is complete. Client is not due for seasonal influenza annual dose Guidance": case when "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1" then 'Should not vaccinate client with annual dose as the latest seasonal influenza dose was administered less than 1 year ago. Check for any other vaccines due and inform the caregiver of when to come back for the next dose.' when "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2" then 'Should not vaccinate client with annual dose as latest seasonal influenza dose was administered less than 1 year ago. Check for any other vaccines due and inform the caregiver of when to come back for the next dose.' else '' end /* @output: The primary series is complete. Client is due for seasonal influenza annual dose Case 1 @pseudocode: "Immunization recommendation status" = "Due" "Completed the primary vaccination series" (where "Vaccine type" = "Seasonal influenza vaccines") = TRUE */ define "The primary series is complete. Client is due for seasonal influenza annual dose Case 1": Encounter."One seasonal influenza primary series doses were administered" and Encounter."Client's age is more than or equal to 9 years" and Encounter."The latest seasonal influenza dose was administered more than 1 year ago" /* @output: The primary series is complete. Client is due for seasonal influenza annual dose Case 2 @pseudocode: "Immunization recommendation status" = "Due" "Completed the primary vaccination series" (where "Vaccine type" = "Seasonal influenza vaccines") = TRUE */ define "The primary series is complete. Client is due for seasonal influenza annual dose Case 2": Encounter."Two seasonal influenza primary series doses were administered" and Encounter."The latest seasonal influenza dose was administered more than 1 year ago" /* @output: The primary series is complete. Client is due for seasonal influenza annual dose @pseudocode: "Immunization recommendation status" = "Due" "Completed the primary vaccination series" (where "Vaccine type" = "Seasonal influenza vaccines") = TRUE */ define "The primary series is complete. Client is due for seasonal influenza annual dose": "The primary series is complete. Client is due for seasonal influenza annual dose Case 1" or "The primary series is complete. Client is due for seasonal influenza annual dose Case 2" /* @output: The primary series is complete. Client is due for seasonal influenza annual dose Guidance @guidance = Should vaccinate client with annual dose as the latest seasonal influenza dose was administered more than 1 year ago. Check for contraindications. @guidance = Should vaccinate client with annual dose as latest seasonal influenza dose was administered more than 1 year ago. Check for contraindications. */ define "The primary series is complete. Client is due for seasonal influenza annual dose Guidance": case when "The primary series is complete. Client is due for seasonal influenza annual dose Case 1" then 'Should vaccinate client with annual dose as the latest seasonal influenza dose was administered more than 1 year ago. Check for contraindications.' when "The primary series is complete. Client is due for seasonal influenza annual dose Case 2" then 'Should vaccinate client with annual dose as latest seasonal influenza dose was administered more than 1 year ago. Check for contraindications.' else '' end /* @test: Test expected results based on example patients */ define "Test Validation": case when Patient.id = 'Seasonalinfluenza08.1' then "Client is not due for seasonal influenza vaccination Case 1" and "Guidance" = 'Should not vaccinate client with first seasonal influenza dose as client\'s age is less than 6 months. Check for any other vaccines due and inform the caregiver of when to come back for first dose.' when Patient.id = 'Seasonalinfluenza09.2' then "Client is due for seasonal influenza vaccination Case 1" and "Guidance" = 'Should vaccinate client with first seasonal influenza dose as no seasonal infuenza doses were administered and client is within appropriate age range. Check for contraindications.' when Patient.id = 'Seasonalinfluenza10.3' then "Client is not due for seasonal influenza vaccination Case 2" and "Guidance" = 'Should not vaccinate client with second seasonal influenza dose as latest seasonal influenza dose was administered less than 4 weeks ago. Check for any other vaccines due and inform the caregiver of when to come back for the second dose.' when Patient.id = 'Seasonalinfluenza11.3' then "Client is due for seasonal influenza vaccination Case 2" and "Guidance" = 'Should vaccinate client with second seasonal influenza dose as client is within appropriate age range and latest seasonal influenza dose was administerered more than 4 weeks ago. Check for contraindications.' when Patient.id = 'Seasonalinfluenza12.3' then "The primary series is complete. Client is not due for seasonal influenza annual dose Case 1" and "Guidance" = 'Should not vaccinate client with annual dose as the latest seasonal influenza dose was administered less than 1 year ago. Check for any other vaccines due and inform the caregiver of when to come back for the next dose.' when Patient.id = 'Seasonalinfluenza13.3' then "The primary series is complete. Client is due for seasonal influenza annual dose Case 1" and "Guidance" = 'Should vaccinate client with annual dose as the latest seasonal influenza dose was administered more than 1 year ago. Check for contraindications.' when Patient.id = 'Seasonalinfluenza14.2' then "The primary series is complete. Client is not due for seasonal influenza annual dose Case 2" and "Guidance" = 'Should not vaccinate client with annual dose as latest seasonal influenza dose was administered less than 1 year ago. Check for any other vaccines due and inform the caregiver of when to come back for the next dose.' when Patient.id = 'Seasonalinfluenza15.2' then "The primary series is complete. Client is due for seasonal influenza annual dose Case 2" and "Guidance" = 'Should vaccinate client with annual dose as latest seasonal influenza dose was administered more than 1 year ago. Check for contraindications.' else 'No test case set' end Content: application/elm+xml Encoded data (114928 characters)
This library defines decision support logic for the IMMZ.D2.DT.Seasonal influenza decision table in the Immunization CPG
Client is not due for seasonal influenza vaccination Case 1
Client is not due for seasonal influenza vaccination Case 2
Client is not due for seasonal influenza vaccination
Client is not due for seasonal influenza vaccination Guidance
Client is due for seasonal influenza vaccination Case 1
Client is due for seasonal influenza vaccination Case 2
Client is due for seasonal influenza vaccination
Client is due for seasonal influenza vaccination Guidance
The primary series is complete. Client is not due for seasonal influenza annual dose Case 1
The primary series is complete. Client is not due for seasonal influenza annual dose Case 2
The primary series is complete. Client is not due for seasonal influenza annual dose
The primary series is complete. Client is not due for seasonal influenza annual dose Guidance
The primary series is complete. Client is due for seasonal influenza annual dose Case 1
The primary series is complete. Client is due for seasonal influenza annual dose Case 2
The primary series is complete. Client is due for seasonal influenza annual dose
The primary series is complete. Client is due for seasonal influenza annual dose Guidance