<?xml version='1.0' encoding='UTF-8'?>
<Library xmlns="http://hl7.org/fhir" xmlns:html="http://www.w3.org/1999/xhtml">
  <id value="IMMZD2DTHepatitisBEncounterElements" />
  <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-8be35c4a-056f-48e3-9f93-192aa3ff43d4.html): Unable to Parse HTML - node 'code' has unexpected content ' ' (last text = '
/*
  * Library: IMMZD2DTHepatitisBEncounterElements
  */
library IMMZD2DTHepatitisBEncounterElements

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 IMMZD2DTHepatitisBElements called HepatitisBElements

parameter Today Date default Today()
parameter EncounterId String
parameter HepBBirthDoseAgeLimitDays Integer default 1
parameter HepBLowerLimitWeeks Integer default 4

context Patient

/*
@internal: Hepatitis B containing Doses Administered to Patient
*/
define "Hepatitis B Doses Administered to Patient":
  HepatitisBElements."Hepatitis B Doses Administered to Patient".onOrBefore(Today)

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

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

/*
@input: Hepatitis B birth dose was not administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Hepatitis B-containing vaccines" and "Birth dose" = TRUE) = 0
@code: Hepatitis B birth dose was not administered-117
@decision: IMMZ.D2.DT.Hepatitis B.Birth dose: Birth dose administration
*/
define "Hepatitis B birth dose was not administered":
  "Number of Hepatitis B Dose 0 Doses Administered" = 0

/*
@input: Client's age is less than {Member States defined upper limit}
@pseudocode: Today's date − "Date of birth" ' at line 299 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/IMMZD2DTHepatitisBEncounterElements" />
  <version value="1.0.0" />
  <name value="IMMZD2DTHepatitisBEncounterElements" />
  <title value="IMMZD2DTHepatitisBEncounterElements" />
  <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 Hepatitis B 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 HepatitisBElements" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZD2DTHepatitisBElements" />
  </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="HepBBirthDoseAgeLimitDays" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="HepBLowerLimitWeeks" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="Patient" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Patient" />
  </parameter>
  <parameter>
    <name value="Hepatitis B Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Hepatitis B Primary Series Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Hepatitis B Primary Series Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="Hepatitis B Dose 0 Doses Administered to Patient" />
    <use value="out" />
    <min value="0" />
    <max value="*" />
    <type value="Immunization" />
  </parameter>
  <parameter>
    <name value="Number of Hepatitis B Dose 0 Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="Hepatitis B birth 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 {Member States defined upper limit}" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than {Member States defined upper limit}" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Hepatitis B birth dose was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="No hepatitis B 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 {Member States defined lower limit}" />
    <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 {Member States defined lower limit}" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="One hepatitis B primary series dose was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Date of Latest Hepatitis B Dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="The latest hepatitis B 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 hepatitis B dose was administered more than 4 weeks ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Two hepatitis B primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's weight at birth was over 2000 g" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client was not a premature infant at birth" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's weight at birth was below 2000 g" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client was a premature infant at birth" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Three hepatitis B primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="One hepatitis B primary series doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Number of Hepatitis B Doses Administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="integer" />
  </parameter>
  <parameter>
    <name value="No hepatitis B doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Client's age is more than {Member States defined lower limit}" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="One hepatitis B dose was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Two hepatitis B doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Date of First Hepatitis B Dose" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="The first hepatitis B 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 first hepatitis B dose was administered more than 6 months ago" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Three hepatitis B doses were administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <content>
    <contentType value="text/cql" />
    <url value="Library-IMMZD2DTHepatitisBEncounterElements.cql" /></content>
  <content>
    <contentType value="application/elm+xml" />
    <url value="Library-IMMZD2DTHepatitisBEncounterElements.elm.xml" /></content>
</Library>