IMMZD2DTRotavirus
type: PlanDefinition
node role: treeRoot
id:
  v: IMMZD2DTRotavirus
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: IMMZD2DTRotavirus Url: IMMZ.D2.DT.Rotavirus Version: 0.2.0 Title: IMMZ.D2.DT.Rotavirus Status: draft Type: system: http://terminology.hl7.org/CodeSystem/plan-definition-type code: eca-rule Date: 2026-03-29 17:23:09+0000 Publisher: WHO Description: IMMZ.D2.DT.Rotavirus IMMZ.D2.DT.Rotavirus Knowledge Capability: computable Related Artifacts: References WHO recommendations for routine immunization - summary tables (January 2025) Libraries: IMMZD2DTRotavirusLogic Actions: Determine if the client is due for Rotavirus.: Determine if the client is due for Rotavirus vaccine according to the national immunization protocol. If: Applicability: Client is due for rotavirus vaccination (Client is due for rotavirus vaccination) Then: Definition: IMMZD2DTMR Dynamic Values: status: ('draft') intent: ('proposal') medication: (Concept { codes: { Code { system: 'http://smart.who.int/immunizations/CodeSystem/IMMZ.Z', code: 'DE16', display: 'Rotavirus vaccines' } }, display: 'Rotavirus vaccines' }) Check for Guidance for the patient regarding IMMZ.D2.DT.Rotavirus.: Show Guidance for the patient regarding IMMZ.D2.DT.Rotavirus. If: Applicability: Has Guidance (Has Guidance) Then: Definition: IMMZ.D2.DT.CR Dynamic Values: status: ('active') payload.contentString: (Guidance) category.coding: (Code { system: 'http://terminology.hl7.org/CodeSystem/communication-category', code: 'alert' }) priority: (Code { system: 'http://hl7.org/fhir/request-priority', code: 'routine' })
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 Weeks
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /** * @dataElement Patient age in weeks */ define "Current Patient Age In Weeks": AgeInWeeksAt(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
        v: IMMZD2DTRotavirusEncounterElements
    extension:
      url:
        v: name
        l: name
      value: String
        v: Client's age is less than 6 weeks
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @input: Client's age is less than 6 weeks @pseudocode: 'Today's date – "Date of birth" < 6 weeks @code: Client's age is less than 6 weeks-41 @decision: IMMZ.D2.DT.Rotavirus */ define "Client's age is less than 6 weeks": Encounter."Current Patient Age In Weeks" < 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
        v: IMMZD2DTRotavirusLogic
    extension:
      url:
        v: name
        l: name
      value: String
        v: Client is not due for rotavirus vaccination Case 1
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @output: Client is not due for rotavirus vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for rotavirus vaccination Case 1": Encounter."Client's age is less than 6 weeks"
    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
        v: IMMZD2DTRotavirusEncounterElements
    extension:
      url:
        v: name
        l: name
      value: String
        v: Rotavirus Doses Administered to Patient
    extension:
      url:
        v: statement
        l: statement
      value: String
        v: /* @internal: Rotavirus containing Doses Administered to Patient */ define "Rotavirus Doses Administered to Patient": Encounter."Doses Administered to Patient" I where I.vaccineCode in Concepts."Rotavirus 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
        v: IMMZD2DTRotavirusEncounterElements
    extension:
      url:
        v: name
        l: name
      value: String
        v: Rotavirus Primary Series Doses Administered to Patient

url:
  v: statement
  l: statement
value: String
  v: /* @internal: Rotavirus containing Doses Administered to Patient that are in the Primary series */ define "Rotavirus Primary Series Doses Administered to Patient": "Rotavirus Doses Administered to Patient".seriesPrimary()

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

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Number of Rotavirus Primary Series Doses Administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @internal: Number of Rotavirus Primary Series doses */ define "Number of Rotavirus Primary Series Doses Administered": Count("Rotavirus 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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: No rotavirus primary series doses were administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: No rotavirus primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Rotavirus vaccines" and "Type of dose" = "Primary series") = 0 @code: No rotavirus primary series doses were administered-118 @decision: IMMZ.D2.DT.Rotavirus */ define "No rotavirus primary series doses were administered": "Number of Rotavirus Primary Series Doses Administered" = 0
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 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: 9
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Client's age is between 6 weeks and 24 months
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Client's age is between 6 weeks and 24 months @pseudocode: 6 weeks ≤ Today's date – "Date of birth" < 24 months @code: Client's age is between 6 weeks and 24 months-52 @decision: IMMZ.D2.DT.Rotavirus */ define "Client's age is between 6 weeks and 24 months": 6 <= Encounter."Current Patient Age In Weeks" and Encounter."Current Patient Age In Months" < 24
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
    v: IMMZElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Live Attenuated Vaccines
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @dataElement: Live attenuated vaccines */ define "Live Attenuated Vaccines": "Doses Administered to Patient" I where I.vaccineCode in Concepts."Live Attenuated"
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
    v: IMMZEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Live Attenuated Vaccines
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @dataElement Live attenuated vaccines */ define "Live Attenuated Vaccines": Elements."Live Attenuated Vaccines" I where I.occurrence.toInterval() same day or before Today
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
    v: IMMZEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Date of Latest Live Attenuated Vaccine
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @dataElement Date and time of last live attenuated vaccine */ define "Date of Latest Live Attenuated Vaccine": date from start of "Live Attenuated Vaccines".mostRecent().occurrence.toInterval()
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
    v: IMMZEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Live vaccine was administered in the last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Live vaccine was administered in the last 4 weeks @pseudocode: Today's date − latest "Date and time of vaccination" (where "Live vaccine" = TRUE) < 4 weeks */ define "Live vaccine was administered in the last 4 weeks": "Date of Latest Live Attenuated Vaccine" is not null and duration in weeks between "Date of Latest Live Attenuated Vaccine" and Today < 4
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Live vaccine was administered in the last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Live vaccine was administered in the last 4 weeks @pseudocode: Today's date - latest "Date and time of vaccination" (where "Live vaccine" = TRUE) < 4 weeks @code: Live vaccine was administered in the last 4 weeks-92 @decision: IMMZ.D2.DT.Rotavirus */ define "Live vaccine was administered in the last 4 weeks": Encounter."Live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for rotavirus vaccination Case 2": Encounter."No rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."Live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: One rotavirus primary series dose was administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: One rotavirus primary series dose was administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Rotavirus vaccines" and "Type of dose" = "Primary series") = 1 @code: One rotavirus primary series dose was administered-118 @decision: IMMZ.D2.DT.Rotavirus */ define "One rotavirus primary series dose was administered": "Number of Rotavirus Primary Series Doses Administered" = 1
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination Case 3
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination Case 3 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for rotavirus vaccination Case 3": Encounter."One rotavirus primary series dose was administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."Live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Two rotavirus primary series doses were administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Two rotavirus primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Rotavirus vaccines" and "Type of dose" = "Primary series") = 2 @code: Two rotavirus primary series doses were administered-118 @decision: IMMZ.D2.DT.Rotavirus */ define "Two rotavirus primary series doses were administered": "Number of Rotavirus Primary Series Doses Administered" = 2
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Live vaccines was administered in the last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Live vaccines was administered in the last 4 weeks @pseudocode: Today's date - latest "Date and time of vaccination" (where "Live vaccine" = TRUE) < 4 weeks @code: Live vaccines was administered in the last 4 weeks-92 @decision: IMMZ.D2.DT.Rotavirus */ define "Live vaccines was administered in the last 4 weeks": Encounter."Live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Brand of First Dose
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @internal: Brand of First Dose */ define "Brand of First Dose": First("Rotavirus Doses Administered to Patient".getDose('1')).brand()
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Brand of Second Dose
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @internal: Brand of Second Dose */ define "Brand of Second Dose": First("Rotavirus Doses Administered to Patient".getDose('2')).brand()
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: The series administered to the client contains the same product
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The series administered to the client contains the same product @pseudocode: "Vaccine brand" (where "Vaccine type" = "Rotavirus vaccines" AND "Dose number" = 1) = "Vaccine brand" (where "Vaccine type" = "Rotavirus vaccines" AND "Dose number" = 2) @code: The series administered to the client contains the same product-169 @decision: IMMZ.D2.DT.Rotavirus */ define "The series administered to the client contains the same product": "Brand of First Dose" is not null and "Brand of First Dose" ~ "Brand of Second Dose"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: The series administered to the client is a mixed series or a series with unknown vaccine products
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The series administered to the client is a mixed series or a series with unknown vaccine products @pseudocode: "Vaccine brand" (where "Vaccine type" = "Rotavirus vaccines" AND "Dose number" = 1) ≠ "Vaccine brand" (where "Vaccine type" = "Rotavirus vaccines" AND "Dose number" = 2) @code: The series administered to the client is a mixed series or a series with unknown vaccine products-169 @decision: IMMZ.D2.DT.Rotavirus */ define "The series administered to the client is a mixed series or a series with unknown vaccine products": not "The series administered to the client contains the same product"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination Case 4
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination Case 4 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for rotavirus vaccination Case 4": Encounter."Two rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."Live vaccines was administered in the last 4 weeks" and Encounter."The series administered to the client is a mixed series or a series with unknown vaccine products"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Live vaccine was administered in last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Live vaccine was administered in last 4 weeks @pseudocode: Today's date - latest "Date and time of vaccination" (where "Live vaccine" = TRUE) < 4 weeks @code: Live vaccine was administered in last 4 weeks-92 @decision: IMMZ.D2.DT.Rotavirus */ define "Live vaccine was administered in last 4 weeks": Encounter."Live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: The series contain more than two doses
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The series contain more than two doses @pseudocode: "Total doses in series" > 2 @code: The series contain more than two doses-27 @decision: IMMZ.D2.DT.Rotavirus */ define "The series contain more than two doses": ToInteger("Rotavirus Doses Administered to Patient".mostRecent().seriesDoses()) > 2
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination Case 5
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination Case 5 @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for rotavirus vaccination Case 5": Encounter."Two rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."Live vaccine was administered in last 4 weeks" and Encounter."The series administered to the client contains the same product" and Encounter."The series contain more than two doses"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination @pseudocode: "Immunization recommendation status" = "Not due" */ define "Client is not due for rotavirus vaccination": "Client is not due for rotavirus vaccination Case 1" or "Client is not due for rotavirus vaccination Case 2" or "Client is not due for rotavirus vaccination Case 3" or "Client is not due for rotavirus vaccination Case 4" or "Client is not due for rotavirus vaccination Case 5"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination Guidance @guidance = Should not vaccinate client with first rotavirus dose as client's age is less than 6 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the first dose. @guidance = Should not vaccinate client with first rotavirus dose as live vaccine was administered in last 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for the first dose. @guidance = Should not vaccinate client with second rotavirus dose as live vaccine was administered in the last 4 weeks. 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 third rotavirus dose as live vaccine was administered in the last 4 weeks and series administered to client is a mixed or unknown series. 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 third rotavirus dose as live vaccine was administered in the last 4 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the next dose. */ define "Client is not due for rotavirus vaccination Guidance": case when "Client is not due for rotavirus vaccination Case 1" then 'Should not vaccinate client with first rotavirus dose as client\'s age is less than 6 weeks. Check for any other vaccines due and inform the caregiver of when to come back for the first dose.' when "Client is not due for rotavirus vaccination Case 2" then 'Should not vaccinate client with first rotavirus dose as live vaccine was administered in last 4 weeks. Check for any vaccines due and inform the caregiver of when to come back for the first dose.' when "Client is not due for rotavirus vaccination Case 3" then 'Should not vaccinate client with second rotavirus dose as live vaccine was administered in the last 4 weeks. Check for any other vaccines due and inform …
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
    v: IMMZEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: No live vaccine was administered in the last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: No live vaccine was administered in the last 4 weeks @pseudocode: Today's date − latest "Date and time of vaccination" (where "Live vaccine" = TRUE) ≥ 4 weeks */ define "No live vaccine was administered in the last 4 weeks": not("Live vaccine was administered in the last 4 weeks")
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: No live vaccine was administered in the last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: No live vaccine was administered in the last 4 weeks @pseudocode: Today's date - latest "Date and time of vaccination" (where "Live vaccine" = TRUE) ≥ 4 weeks @code: No live vaccine was administered in the last 4 weeks-92 @decision: IMMZ.D2.DT.Rotavirus */ define "No live vaccine was administered in the last 4 weeks": Encounter."No live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for rotavirus vaccination Case 1
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is due for rotavirus vaccination Case 1 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for rotavirus vaccination Case 1": Encounter."No rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."No live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for rotavirus vaccination Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is due for rotavirus vaccination Case 2 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for rotavirus vaccination Case 2": Encounter."One rotavirus primary series dose was administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."No live vaccine was administered in the last 4 weeks"
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
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for rotavirus vaccination Case 3
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is due for rotavirus vaccination Case 3 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for rotavirus vaccination Case 3": Encounter."Two rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."No live vaccine was administered in the last 4 weeks" and Encounter."The series administered to the client is a mixed series or a series with unknown vaccine products"
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
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: No live vaccine was administered in last 4 weeks
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: No live vaccine was administered in last 4 weeks @pseudocode: Today's date - latest "Date and time of vaccination" (where "Live vaccine" = TRUE) ≥ 4 weeks @code: No live vaccine was administered in last 4 weeks-92 @decision: IMMZ.D2.DT.Rotavirus */ define "No live vaccine was administered in last 4 weeks": Encounter."No live vaccine was administered in the last 4 weeks"
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: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for rotavirus vaccination Case 4
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is due for rotavirus vaccination Case 4 @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for rotavirus vaccination Case 4": Encounter."Two rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."No live vaccine was administered in last 4 weeks" and Encounter."The series administered to the client contains the same product" and Encounter."The series contain more than two doses"
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: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for rotavirus vaccination
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is due for rotavirus vaccination @pseudocode: "Immunization recommendation status" = "Due" */ define "Client is due for rotavirus vaccination": "Client is due for rotavirus vaccination Case 1" or "Client is due for rotavirus vaccination Case 2" or "Client is due for rotavirus vaccination Case 3" or "Client is due for rotavirus vaccination Case 4"
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: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is due for rotavirus vaccination Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is due for rotavirus vaccination Guidance @guidance = Should vaccinate client with first rotavirus dose as no rotavirus doses were administered, client's age is within appropriate age range and no live vaccine was administered in last 4 weeks. Check for contraindications. @guidance = Should vaccinate client with second rotavirus dose as client's age is within appropriate age range and no live vaccine was administered in the last 4 weeks. Check for contraindications. @guidance = Should vaccinate client with third rotavirus dose as no live vaccine was administered in the last 4 weeks and series administered to client is a mixed or unknown series. Check for contraindications. @guidance = Should vaccinate client with third rotavirus dose as series contains more than two doses and no live vaccine was administered in the last 4 weeks. Check for contraindications. */ define "Client is due for rotavirus vaccination Guidance": case when "Client is due for rotavirus vaccination Case 1" then 'Should vaccinate client with first rotavirus dose as no rotavirus doses were administered, client\'s age is within appropriate age range and no live vaccine was administered in last 4 weeks. Check for contraindications.' when "Client is due for rotavirus vaccination Case 2" then 'Should vaccinate client with second rotavirus dose as client\'s age is within appropriate age range and no live vaccine was administered in the last 4 weeks. Check for contraindications.' when "Client is due for rotavirus vaccination Case 3" then 'Should vaccinate client with third rotavirus dose as no live vaccine was administered in the last 4 weeks and series administered to client is a mixed or unknown series. Check for contraindications.' when "Client is due for rotavirus vaccination Case 4" then 'Should vaccinate client with third rotavirus dose as series contains more than two doses and no live vaccine was administered in the last 4 weeks. Check for contraindications.' else '' end
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: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: The series contain less than or equal to two doses
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: The series contain less than or equal to two doses @pseudocode: "Total doses in series" ≤ 2 @code: The series contain less than or equal to two doses-27 @decision: IMMZ.D2.DT.Rotavirus */ define "The series contain less than or equal to two doses": ToInteger("Rotavirus Doses Administered to Patient".mostRecent().seriesDoses()) <= 2
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: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Rotavirus immunization schedule is complete Case 1
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Rotavirus immunization schedule is complete Case 1 @pseudocode: "Immunization recommendation status" = "Complete" */ define "Rotavirus immunization schedule is complete Case 1": Encounter."Two rotavirus primary series doses were administered" and Encounter."Client's age is between 6 weeks and 24 months" and Encounter."The series administered to the client contains the same product" and Encounter."The series contain less than or equal to two doses"
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: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Three rotavirus primary series doses were administered
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Three rotavirus primary series doses were administered @pseudocode: Count of vaccines administered (where "Vaccine type" = "Rotavirus vaccines" and "Type of dose" = "Primary series") = 3 @code: Three rotavirus primary series doses were administered-118 @decision: IMMZ.D2.DT.Rotavirus */ define "Three rotavirus primary series doses were administered": "Number of Rotavirus Primary Series Doses Administered" = 3
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: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Rotavirus immunization schedule is complete Case 2
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Rotavirus immunization schedule is complete Case 2 @pseudocode: '"Immunization recommendation status" = "Complete" */ define "Rotavirus immunization schedule is complete Case 2": Encounter."Three rotavirus primary series doses were administered"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 43
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Rotavirus immunization schedule is complete
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Rotavirus immunization schedule is complete @pseudocode: "Immunization recommendation status" = "Complete" */ define "Rotavirus immunization schedule is complete": "Rotavirus immunization schedule is complete Case 1" or "Rotavirus immunization schedule is complete Case 2"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 44
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Rotavirus immunization schedule is complete Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Rotavirus immunization schedule is complete Guidance @guidance = Rotavirus immunization schedule is complete. Two rotavirus doses were administered. Check for any other vaccines due. @guidance = Rotavirus immunization schedule is complete. Three rotavirus primary series doses were administered. Check for any other vaccines due. */ define "Rotavirus immunization schedule is complete Guidance": case when "Rotavirus immunization schedule is complete Case 1" then 'Rotavirus immunization schedule is complete. Two rotavirus doses were administered. Check for any other vaccines due.' when "Rotavirus immunization schedule is complete Case 2" then 'Rotavirus immunization schedule is complete. Three rotavirus primary series doses were administered. Check for any other vaccines due.' else '' end
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 45
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusEncounterElements
extension:
  url:
    v: name
    l: name
  value: String
    v: Client's age is more than 24 months
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @input: Client's age is more than 24 months @pseudocode: "Date of birth" > 24 months @code: Client's age is more than 24 months-27 @decision: IMMZ.D2.DT.Rotavirus */ define "Client's age is more than 24 months": Encounter."Current Patient Age In Months" >= 24
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 46
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination if immunization schedule is not complete.
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination if immunization schedule is not complete. @pseudocode: "Immunization recommendation status" = "Not due" IF current "Immunization recommendation status" ≠ "Complete" */ define "Client is not due for rotavirus vaccination if immunization schedule is not complete.": Encounter."Client's age is more than 24 months"
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 47
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusLogic
extension:
  url:
    v: name
    l: name
  value: String
    v: Client is not due for rotavirus vaccination if immunization schedule is not complete. Guidance
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /* @output: Client is not due for rotavirus vaccination if immunization schedule is not complete. Guidance @guidance: Should not vaccinate client with rotavirus dose as client's age is more than 24 months. Check for any other vaccines due. */ define "Client is not due for rotavirus vaccination if immunization schedule is not complete. Guidance": 'Should not vaccinate client with rotavirus dose as client\'s age is more than 24 months. Check for any other vaccines due.'
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 48
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusLogic
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 rotavirus vaccination" then "Client is not due for rotavirus vaccination Guidance" when "Client is due for rotavirus vaccination" then "Client is due for rotavirus vaccination Guidance" when "Rotavirus immunization schedule is complete" then "Rotavirus immunization schedule is complete Guidance" when "Client is not due for rotavirus vaccination if immunization schedule is not complete." then "Client is not due for rotavirus vaccination if immunization schedule is not complete. Guidance" else '' end
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 49
url:
  v: http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition
  l: cqf-logicDefinition

extension:
  url:
    v: libraryName
    l: libraryName
  value: String
    v: IMMZD2DTRotavirusLogic
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: 50
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: 51
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: 52
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: 53
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: 54
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: 55
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: 56
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: 57
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: brand
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /** * @description: Gets the type of antigen dose extension value from an Immunization */ define fluent function brand(immz Immunization): (First( immz.extension E where E.url = 'http://smart.who.int/immunizations/StructureDefinition/IMMZVaccineBrand' )).value as FHIR.CodeableConcept
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 58
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 uri): value.value
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 59
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: getDose
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /** * @description: Gets a given immunization from a list that matches the dose number */ define fluent function getDose(immunizations List<Immunization>, doseNumber String): immunizations I where exists( I.protocolApplied pa where pa.doseNumber = doseNumber )
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 60
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: seriesDoses
extension:
  url:
    v: statement
    l: statement
  value: String
    v: /** * @description: Gets the series doses from an immunization */ define fluent function seriesDoses(immunization Immunization): First(immunization.protocolApplied pa where pa.seriesDoses is not null).seriesDoses
extension:
  url:
    v: displaySequence
    l: displaySequence
  value: Integer
    v: 61
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/IMMZD2DTRotavirusEncounterElements
  l: IMMZD2DTRotavirusEncounterElements

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 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 Rotavirus vaccines
resource:
  v: http://smart.who.int/immunizations/ValueSet/IMMZ.Z.DE16
  l: IMMZ.Z.DE16

type:
  v: depends-on
display:
  v: Value set Live Attenuated
resource:
  v: http://smart.who.int/immunizations/ValueSet/IMMZ.Z.LiveAttenuated
  l: IMMZ.Z.LiveAttenuated

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 rotavirus 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

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

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

v: IMMZ.D2.DT.Rotavirus

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-29T17:23:09+00:00

v: WHO

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

v: IMMZ.D2.DT.Rotavirus IMMZ.D2.DT.Rotavirus

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: WHO recommends that the first dose of rotavirus vaccine be administered as soon as possible after 6 weeks of age. A minimum interval of 4 weeks should be maintained between doses. Note: The rotavirus vaccination series for each child should be completed with the same product whenever feasible. However, if the product used for a prior dose is unavailable or unknown, the series should be completed with any available licensed product.
title:
  v: Determine if the client is due for Rotavirus.
description:
  v: Determine if the client is due for Rotavirus vaccine according to the national immunization protocol.
condition:
  kind:
    v: applicability
  expression:
    description:
      v: Client is due for rotavirus vaccination
    language:
      v: text/cql-identifier
    expression:
      v: Client is due for rotavirus 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: 'DE16', display: 'Rotavirus vaccines' } }, display: 'Rotavirus vaccines' }

title:
  v: Check for Guidance for the patient regarding IMMZ.D2.DT.Rotavirus.
description:
  v: Show Guidance for the patient regarding IMMZ.D2.DT.Rotavirus.
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' }