<?xml version='1.0' encoding='UTF-8'?>
<Library xmlns="http://hl7.org/fhir" xmlns:html="http://www.w3.org/1999/xhtml">
  <id value="IMMZD2DTPolioEncounterElements" />
  <meta>
    <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary" />
    <profile value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary" />
    <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library" />
    <profile value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module" />
  </meta>
  <text>
    <status value="extensions" /><html:div><html:p><html:b style="color: maroon">Exception parsing generated Narrative (see /tmp/liquid-72a690b1-0dd6-48e2-b545-447236c30e97.html): Unable to Parse HTML - node 'code' has unexpected content ' ' (last text = '
/*
  * Library: IMMZD2DTPolioEncounterElements
  */
library IMMZD2DTPolioEncounterElements

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

include WHOConcepts
include WHOCommon called WC
include WHOElements called WE

include IMMZCommon called Common
include IMMZConcepts called Concepts
include IMMZEncounterElements called Encounter

include IMMZD2DTPolioElements called PolioElements

parameter Today Date default Today()
parameter EncounterId String

context Patient

/*
@internal: Polio containing Doses Administered to Patient
*/
define "Polio Doses Administered to Patient":
  PolioElements."Polio Doses Administered to Patient".onOrBefore(Today)

/*
@internal: Polio containing Doses Administered to Patient that are in the Primary series
*/
define "Polio Primary Series Doses Administered to Patient":
  PolioElements."Polio Primary Series Doses Administered to Patient".onOrBefore(Today)

/*
@internal: Number of Polio Primary Series doses
*/
define "Number of Polio Primary Series Doses Administered":
  Count("Polio Primary Series Doses Administered to Patient")

/*
@input: bOPV birth dose (a zero dose) was not administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Poliovirus-containing vaccines" and "Type of dose" = "Dose 0" AND "Birth dose" = TRUE) = 0
@code: bOPV birth dose (a zero dose) was not administered-146
@decision: IMMZ.D2.DT.Polio.Birth dose: Birth dose administration as part of "bivalent oral polio vaccine (bOPV) plus inactivated polio vaccine (IPV)" schedule (in countries that are poliomyelitis (polio)-endemic countries or at high risk of importation and subsequent spread of polio that follow the combined bOPV–IPV schedule)
*/
define "bOPV birth dose (a zero dose) was not administered":
  "Number of Polio Dose 0 Doses Administered" = 0

/*
@input: Client's age is less than 1 week
@pseudocode: Today's date − "Date of birth" ' at line 345 column 46</html:b></html:p></html:div>
  </text>
  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable" />
  </extension>
  <url value="http://smart.who.int/immunizations/Library/IMMZD2DTPolioEncounterElements" />
  <version value="1.0.0" />
  <name value="IMMZD2DTPolioEncounterElements" />
  <title value="IMMZD2DTPolioEncounterElements" />
  <status value="draft" />
  <experimental value="false" />
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type" />
      <code value="logic-library" />
    </coding>
  </type>
  <date value="2026-10-02T09:24:37+00:00" />
  <publisher value="WHO" />
  <contact>
    <name value="WHO" />
    <telecom>
      <system value="url" />
      <value value="http://who.int" />
    </telecom>
  </contact>
  <description value="This library defines encounter-based elements for Polio used throughout the Immunization CPG" />
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library WHOConcepts" />
    <resource value="http://smart.who.int/immunizations/Library/WHOConcepts" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library WC" />
    <resource value="http://smart.who.int/immunizations/Library/WHOCommon" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library WE" />
    <resource value="http://smart.who.int/immunizations/Library/WHOElements" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library Common" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZCommon" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library Concepts" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZConcepts" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library Encounter" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZEncounterElements" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library PolioElements" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZD2DTPolioElements" />
  </relatedArtifact>
  <parameter>
    <name value="Today" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="EncounterId" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <type value="string" />
  </parameter>
  <parameter>
    <name value="Patient" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Patient" />
  </parameter>
  <parameter>
    <name value="Polio Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Polio Primary Series Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Polio Primary Series Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="Polio Dose 0 Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Polio Dose 0 Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="bOPV birth dose (a zero dose) was not administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is less than 1 week" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 1 week" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="bOPV birth dose (a zero dose) was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is less than 6 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="No poliovirus primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is between 6 weeks and 3 months" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than 3 months" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="One poliovirus primary series dose was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is between 6 weeks and 14 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="bOPV Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Date of Latest bOPV Dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="The latest bOPV dose was administered less than 4 weeks ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The latest bOPV dose was administered more than 4 weeks ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Polio bOPV Primary Series Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Polio bOPV Primary Series Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="The poliovirus dose administered is bOPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 14 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The poliovirus dose administered is IPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="IPV Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Date of Latest IPV Dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="The latest IPV dose was administered less than 4 months ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The latest IPV dose was administered more than 4 months ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Two poliovirus primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The two doses administered are bOPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="From the two doses administered one is bOPV and one is IPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The two doses administered are IPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Three poliovirus primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The three doses administered are bOPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is less than 14 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="From the three doses administered, one is IPV and two are bOPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="From the three doses administered, one is bOPV and two are IPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Four poliovirus primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="From the four doses administered, one is IPV and three are bOPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="From the four doses administered, two are IPV and two are bOPV" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Five poliovirus primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is less than 8 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 8 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Date of Latest Polio Dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="The latest poliovirus dose was administered less than 4 weeks ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The latest poliovirus dose was administered more than 4 weeks ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 6 weeks" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Date of First Primary Series Polio Dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Client's age was more than 6 weeks when the primary series was started" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age was 6 weeks when the primary series was started" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The latest poliovirus dose was administered less than 6 months ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="The latest poliovirus dose was administered more than 6 months ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Polio Booster Series Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Polio Booster Series Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="No polio booster dose was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Polio booster dose was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Polio IPV Primary Series Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Polio IPV Primary Series Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <content>
    <contentType value="text/cql" />
    <url value="Library-IMMZD2DTPolioEncounterElements.cql" /></content>
  <content>
    <contentType value="application/elm+xml" />
    <url value="Library-IMMZD2DTPolioEncounterElements.elm.xml" /></content>
</Library>