http://smart.who.int/immunizations/PlanDefinition/IMMZD2DTSeasonalinfluenzaSeasonalInfluenza
type: PlanDefinition
node role: treeRoot
meta:
  profile:
    v: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recommendationdefinition
    l: cpg-recommendationdefinition
  profile:
    v: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareableplandefinition
    l: crmi-shareableplandefinition
  profile:
    v: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishableplandefinition
    l: crmi-publishableplandefinition
text:
  status:
    v: extensions
  div:
    v: Id: IMMZD2DTSeasonalinfluenzaSeasonalInfluenza Url: IMMZ.D2.DT.Seasonal influenza Version: 0.2.0 Title: IMMZ.D2.DT.Seasonal influenza Status: draft Type: system: http://terminology.hl7.org/CodeSystem/plan-definition-type code: eca-rule Date: 2026-03-25 23:30:34+0000 Publisher: WHO Description: IMMZ.D2.DT.Seasonal influenza Inactivated trivalent and quadrivalent vaccines, 2-dose schedule Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD2DTSeasonalinfluenzaSeasonalInfluenzaLogic Actions: Determine if the client is due for Seasonal influenza.: Determine if the client is due for Seasonal influenza vaccine according to the national immunization protocol. Inactivated trivalent and quadrivalent vaccines, 2-dose schedule If: Applicability: Client is due for seasonal influenza vaccination (Client is due for seasonal influenza vaccination) Then: Definition: IMMZD2DTMR Dynamic Values: status: ('draft') intent: ('proposal') medication: (Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE18', display: 'Seasonal influenza vaccines' } }, display: 'Seasonal influenza vaccines' }) Determine if the client is due for Seasonal influenza.: Determine if the client is due for Seasonal influenza vaccine according to the national immunization protocol. Inactivated trivalent and quadrivalent vaccines, 2-dose schedule If: Applicability: 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) Then: Definition: IMMZD2DTMR Dynamic Values: status: ('draft') intent: ('proposal') medication: (Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE18', display: 'Seasonal influenza vaccines' } }, display: 'Seasonal influenza vaccines' }) Check for Guidance for the patient regarding IMMZ.D2.DT.Season…
contained: Library
  id:
    v: effective-data-requirements
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: IMMZEncounterElements
    extension:
      url:
        v: name
        l: name
      value: String
        v: Current Patient Age In Months
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /** * @dataElement Patient age in months */ define "Current Patient Age In Months": AgeInMonthsAt(Today)
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 0
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
    extension:
      url:
        v: name
        l: name
      value: String
        v: Client's age is less than 6 months
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @input: Client's age is less than 6 months @pseudocode: Today's date − "Date of birth" < 6 months @code: Client's age is less than 6 months-41 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Client's age is less than 6 months": Encounter."Current Patient Age In Months" < 6
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 1
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
    extension:
      url:
        v: name
        l: name
      value: String
        v: Client is not due for seasonal influenza vaccination Case 1
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @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"
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 2
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: IMMZElements
    extension:
      url:
        v: name
        l: name
      value: String
        v: Doses Administered to Patient
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": [Immunization] I where I.status = 'completed' and I.isSubpotent is not true
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 3
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
        v: IMMZEncounterElements
    extension:
      url:
        v: name
        l: name
      value: String
        v: Doses Administered to Patient
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /** * @dataElement All Doses Administered to Patient */ define "Doses Administered to Patient": Elements."Doses Administered to Patient" I where I.occurrence.toInterval() same day or before Today
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 4
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
    extension:
      url:
        v: name
        l: name
      value: String
        v: Seasonal influenza Doses Administered to Patient
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @internal: Seasonal influenza containing Doses Administered to Patient */ define "Seasonal influenza Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Seasonal influenza vaccines"
    extension:
      url:
        v: displaySequence
        l: displaySequence
      value: Integer
        v: 5
    url:
      v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
      l: cqf-logicDefinition
  extension:
    extension:
      url:
        v: libraryName
        l: libraryName
      value: String
    extension:
      url:
        v: name
        l: name
      value: String
        v: Seasonal influenza Primary Series Doses Administered to Patient
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @internal: Seasonal influenza containing Doses Administered to Patient that are in the Primary series */ define "Seasonal influenza Primary Series Doses Administered to Patient": "Seasonal influenza Doses Administered to Patient".seriesPrimary()

url:
  v: displaySequence
  l: displaySequence
value: Integer
  v: 6

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Number of Seasonal influenza Primary Series Doses Administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @internal: Number of Seasonal influenza Primary Series doses */ define "Number of Seasonal influenza Primary Series Doses Administered": Count("Seasonal influenza Primary Series Doses Administered to Patient")
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 7
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: One seasonal influenza primary series doses were administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: One seasonal influenza primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 1 @code: One seasonal influenza primary series doses were administered-127 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "One seasonal influenza primary series doses were administered": "Number of Seasonal influenza Primary Series Doses Administered" = 1
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 8
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Current Patient Age In Years
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /** * @dataElement Patient age in years */ define "Current Patient Age In Years": AgeInYearsAt(Today)
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 9
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client's age is less than 9 years
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Client's age is less than 9 years @pseudocode: Today's date − "Date of birth" < 9 years @code: Client's age is less than 9 years-40 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Client's age is less than 9 years": Encounter."Current Patient Age In Years" < 9
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 10
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Date of Latest Seasonal influenza Dose
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @internal: Date of Latest Seasonal influenza Dose */ define "Date of Latest Seasonal influenza Dose": date from start of "Seasonal influenza Doses Administered to Patient".mostRecent().occurrence.toInterval()
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 11
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The latest seasonal influenza dose was administered less than 4 weeks ago
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The latest seasonal influenza dose was administered less than 4 weeks ago @pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") < 4 weeks @code: The latest seasonal influenza dose was administered less than 4 weeks ago-110 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "The latest seasonal influenza dose was administered less than 4 weeks ago": "Date of Latest Seasonal influenza Dose" is not null and duration in weeks between "Date of Latest Seasonal influenza Dose" and Today < 4
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 12
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for seasonal influenza vaccination Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 13
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for seasonal influenza vaccination
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 14
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for seasonal influenza vaccination Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 15
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: No seasonal influenza primary series doses were administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: No seasonal influenza primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 0 @code: No seasonal influenza primary series doses were administered-127 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "No seasonal influenza primary series doses were administered": "Number of Seasonal influenza Primary Series Doses Administered" = 0
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 16
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client's age is more than or equal to 6 months
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Client's age is more than or equal to 6 months @pseudocode: Today's date − "Date of birth" ≥ 6 months @code: Client's age is more than or equal to 6 months-41 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Client's age is more than or equal to 6 months": Encounter."Current Patient Age In Months" >= 6
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 17
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for seasonal influenza vaccination Case 1
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 18
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The latest seasonal influenza dose was administered more than 4 weeks ago
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The latest seasonal influenza dose was administered more than 4 weeks ago @pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") ≥ 4 weeks @code: The latest seasonal influenza dose was administered more than 4 weeks ago-110 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "The latest seasonal influenza dose was administered more than 4 weeks ago": not "The latest seasonal influenza dose was administered less than 4 weeks ago"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 19
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for seasonal influenza vaccination Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 20
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for seasonal influenza vaccination
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 21
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for seasonal influenza vaccination Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 22
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Client's age is more than or equal to 9 years
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Client's age is more than or equal to 9 years @pseudocode: Today's date − "Date of birth" ≥ 9 years @code: Client's age is more than or equal to 9 years-40 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Client's age is more than or equal to 9 years": Encounter."Current Patient Age In Years" >= 9
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 23
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The latest seasonal influenza dose was administered less than 1 year ago
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The latest seasonal influenza dose was administered less than 1 year ago @pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") < 1 year @code: The latest seasonal influenza dose was administered less than 1 year ago-109 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "The latest seasonal influenza dose was administered less than 1 year ago": "Date of Latest Seasonal influenza Dose" is not null and duration in years between "Date of Latest Seasonal influenza Dose" and Today < 1
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 24
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is not due for seasonal influenza annual dose Case 1
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 25
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Two seasonal influenza primary series doses were administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Two seasonal influenza primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Seasonal influenza vaccines" and "Type of dose" = "Primary series") = 2 @code: Two seasonal influenza primary series doses were administered-127 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "Two seasonal influenza primary series doses were administered": "Number of Seasonal influenza Primary Series Doses Administered" = 2
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 26
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is not due for seasonal influenza annual dose Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 27
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is not due for seasonal influenza annual dose
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 28
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is not due for seasonal influenza annual dose Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 29
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The latest seasonal influenza dose was administered more than 1 year ago
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The latest seasonal influenza dose was administered more than 1 year ago @pseudocode: Today's date − "Date and time of vaccination" (where "Vaccine type" = "Seasonal influenza vaccines") ≥ 1 year @code: The latest seasonal influenza dose was administered more than 1 year ago-109 @decision: IMMZ.D2.DT.Seasonal influenza: Inactivated trivalent and quadrivalent vaccines, 2-dose schedule */ define "The latest seasonal influenza dose was administered more than 1 year ago": not "The latest seasonal influenza dose was administered less than 1 year ago"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 30
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is due for seasonal influenza annual dose Case 1
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 31
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is due for seasonal influenza annual dose Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 32
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is due for seasonal influenza annual dose
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 33
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: The primary series is complete. Client is due for seasonal influenza annual dose Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 34
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @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
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 35
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
extension:
  url:
    v: name
    l: name
  value: String
    v: Has Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define "Has Guidance": "Guidance" is not null and "Guidance" != ''
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 36
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZCommon
extension:
  url:
    v: name
    l: name
  value: String
    v: seriesPrimary
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /** * @description: Gets the doses from the primary series */ define fluent function seriesPrimary(immunizations List<Immunization>): immunizations I where exists( I.protocolApplied pa where pa.series = 'Primary series' )
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 37
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: FHIRHelpers
extension:
  url:
    v: name
    l: name
  value: String
    v: ToString
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define function ToString(value string): value.value
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 38
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: FHIRHelpers
extension:
  url:
    v: name
    l: name
  value: String
    v: ToString
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define function ToString(value ImmunizationStatus): value.value
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 39
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: FHIRHelpers
extension:
  url:
    v: name
    l: name
  value: String
    v: ToBoolean
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define function ToBoolean(value boolean): value.value
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 40
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: FHIRHelpers
extension:
  url:
    v: name
    l: name
  value: String
    v: ToConcept
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define function ToConcept(concept FHIR.CodeableConcept): if concept is null then null else System.Concept { codes: concept.coding C return ToCode(C), display: concept.text.value }
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 41
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: FHIRHelpers
extension:
  url:
    v: name
    l: name
  value: String
    v: ToCode
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define function ToCode(coding FHIR.Coding): if coding is null then null else System.Code { code: coding.code.value, system: coding.system.value, version: coding.version.value, display: coding.display.value }
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 42
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: WHOCommon
extension:
  url:
    v: name
    l: name
  value: String
    v: mostRecent
extension:
  url:
    v: statement
    l: statement
  value: String
    v: define fluent function mostRecent(immunizations List<Immunization>): Last( immunizations I sort by start of occurrence.toInterval() )
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 43
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

v: EffectiveDataRequirements

v: active

coding:
  system:
    v: http://terminology.hl7.org/CodeSystem/library-type
    l: library-type
  code:
    v: module-definition

type:
  v: depends-on
display:
  v: FHIR model information
resource:
  v: http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1
  l: http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo

type:
  v: depends-on
display:
  v: Library Encounter
resource:
  v: http://smart.who.int/immunizations/Library/IMMZD2DTSeasonalinfluenzaEncounterElements

type:
  v: depends-on
display:
  v: Library Encounter
resource:
  v: http://smart.who.int/immunizations/Library/IMMZEncounterElements
  l: IMMZEncounterElements

type:
  v: depends-on
display:
  v: Library Common
resource:
  v: http://smart.who.int/immunizations/Library/IMMZCommon
  l: IMMZCommon

type:
  v: depends-on
display:
  v: Library FHIRHelpers
resource:
  v: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1
  l: http://fhir.org/guides/cqf/common/Library/FHIRHelpers

type:
  v: depends-on
display:
  v: Library Elements
resource:
  v: http://smart.who.int/immunizations/Library/IMMZElements
  l: IMMZElements

type:
  v: depends-on
display:
  v: Library WC
resource:
  v: http://smart.who.int/immunizations/Library/WHOCommon
  l: WHOCommon

type:
  v: depends-on
display:
  v: Library FHIRHelpers
resource:
  v: http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1
  l: http://fhir.org/guides/cqf/common/Library/FHIRHelpers

type:
  v: depends-on
display:
  v: Library Concepts
resource:
  v: http://smart.who.int/immunizations/Library/IMMZConcepts
  l: IMMZConcepts

type:
  v: depends-on
display:
  v: Library WC
resource:
  v: http://smart.who.int/immunizations/Library/WHOCommon
  l: WHOCommon

type:
  v: depends-on
display:
  v: Value set Seasonal influenza vaccines
resource:
  v: http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE18
  l: IMMZ.Z.DE18

name:
  v: Today
use:
  v: in
min:
  v: 0
max:
  v: 1
type:
  v: date

name:
  v: Guidance
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: string

name:
  v: Client is due for seasonal influenza vaccination
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: boolean

name:
  v: Has Guidance
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: boolean

name:
  v: The primary series is complete. Client is due for seasonal influenza annual dose
use:
  v: out
min:
  v: 0
max:
  v: 1
type:
  v: boolean

type:
  v: Patient
profile:
  v: http://hl7.org/fhir/StructureDefinition/Patient
  l: Patient

type:
  v: Immunization
profile:
  v: http://hl7.org/fhir/StructureDefinition/Immunization
  l: Immunization
must support:
  v: status
must support:
  v: isSubpotent

type:
  v: Immunization
profile:
  v: http://hl7.org/fhir/StructureDefinition/Immunization
  l: Immunization
must support:
  v: status
must support:
  v: isSubpotent
must support:
  v: occurrence

type:
  v: Immunization
profile:
  v: http://hl7.org/fhir/StructureDefinition/Immunization
  l: Immunization
must support:
  v: status
must support:
  v: isSubpotent
must support:
  v: occurrence
must support:
  v: vaccineCode

type:
  v: Immunization
profile:
  v: http://hl7.org/fhir/StructureDefinition/Immunization
  l: Immunization
must support:
  v: status
must support:
  v: isSubpotent
must support:
  v: occurrence
must support:
  v: vaccineCode

type:
  v: Immunization
profile:
  v: http://hl7.org/fhir/StructureDefinition/Immunization
  l: Immunization
must support:
  v: status
must support:
  v: isSubpotent
must support:
  v: occurrence
must support:
  v: vaccineCode

url:
  v: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-knowledgeCapability
  l: cpg-knowledgeCapability
value: Code
  v: computable

url:
  v: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements
  l: crmi-effectiveDataRequirements
value: Canonical
  v: #effective-data-requirements
  l: effective-data-requirements

v: 0.2.0

v: IMMZ.D2.DT.Seasonal influenza

coding:
  system:
    v: http://terminology.hl7.org/CodeSystem/plan-definition-type
    l: plan-definition-type
  code:
    v: eca-rule

v: draft

v: false

v: 2026-03-25T23:30:34+00:00

v: WHO

name:
  v: WHO
telecom:
  system:
    v: url
  value:
    v: http://who.int

v: IMMZ.D2.DT.Seasonal influenza Inactivated trivalent and quadrivalent vaccines, 2-dose schedule

type:
  v: citation
citation:
  v: WHO recommendations for routine immunization - summary tables (January 2025)

extension:
  url:
    v: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-rationale
    l: cpg-rationale
  value: Markdown
    v: Influenza vaccines are safe and effective in children from 6 months of age. Children aged under 6 months can be protected through maternal immunization during pregnancy. Children aged 6 months to 8 years should receive 2 doses at least 4 weeks apart. A single dose is appropriate for those ≥ 9 years of age and healthy adults. Children aged 6 months to 8 years should receive 2 doses at least 4 weeks apart.
title:
  v: Determine if the client is due for Seasonal influenza.
description:
  v: Determine if the client is due for Seasonal influenza vaccine according to the national immunization protocol. Inactivated trivalent and quadrivalent vaccines, 2-dose schedule
condition:
  kind:
    v: applicability
  expression:
    description:
      v: Client is due for seasonal influenza vaccination
    language:
      v: text/cql-identifier
    expression:
      v: Client is due for seasonal influenza vaccination
definition: Canonical
  v: http://smart.who.int/immunizations/ActivityDefinition/IMMZD2DTMR
  l: IMMZD2DTMR
dynamic value:
  path:
    v: status
  expression:
    language:
      v: text/cql-expression
    expression:
      v: 'draft'
dynamic value:
  path:
    v: intent
  expression:
    language:
      v: text/cql-expression
    expression:
      v: 'proposal'
dynamic value:
  path:
    v: medication
  expression:
    language:
      v: text/cql-expression
    expression:
      v: Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE18', display: 'Seasonal influenza vaccines' } }, display: 'Seasonal influenza vaccines' }

extension:
  url:
    v: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-rationale
    l: cpg-rationale
  value: Markdown
    v: A single dose is appropriate for children aged ≥ 9 years and healthy adults. Those who have previously been vaccinated at least once should subsequently receive an annual dose, as should children and adolescents aged 9 years or over and healthy adults.
title:
  v: Determine if the client is due for Seasonal influenza.
description:
  v: Determine if the client is due for Seasonal influenza vaccine according to the national immunization protocol. Inactivated trivalent and quadrivalent vaccines, 2-dose schedule
condition:
  kind:
    v: applicability
  expression:
    description:
      v: The primary series is complete. Client is due for seasonal influenza annual dose
    language:
      v: text/cql-identifier
    expression:
      v: The primary series is complete. Client is due for seasonal influenza annual dose
definition: Canonical
  v: http://smart.who.int/immunizations/ActivityDefinition/IMMZD2DTMR
  l: IMMZD2DTMR
dynamic value:
  path:
    v: status
  expression:
    language:
      v: text/cql-expression
    expression:
      v: 'draft'
dynamic value:
  path:
    v: intent
  expression:
    language:
      v: text/cql-expression
    expression:
      v: 'proposal'
dynamic value:
  path:
    v: medication
  expression:
    language:
      v: text/cql-expression
    expression:
      v: Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE18', display: 'Seasonal influenza vaccines' } }, display: 'Seasonal influenza vaccines' }

title:
  v: Check for Guidance for the patient regarding IMMZ.D2.DT.Seasonal influenza.
description:
  v: Show Guidance for the patient regarding IMMZ.D2.DT.Seasonal influenza.
condition:
  kind:
    v: applicability
  expression:
    description:
      v: Has Guidance
    language:
      v: text/cql-identifier
    expression:
      v: Has Guidance
definition: Canonical
  v: http://smart.who.int/immunizations/ActivityDefinition/IMMZD2DTCR
  l: IMMZD2DTCR
dynamic value:
  path:
    v: status
  expression:
    language:
      v: text/cql-expression
    expression:
      v: 'active'
dynamic value:
  path:
    v: payload.contentString
  expression:
    language:
      v: text/cql-identifier
    expression:
      v: Guidance
dynamic value:
  path:
    v: category.coding
  expression:
    description:
      v: Category of communication
    language:
      v: text/cql-expression
    expression:
      v: Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }
dynamic value:
  path:
    v: priority
  expression:
    description:
      v: Alert priority
    language:
      v: text/cql-expression
    expression:
      v: Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' }