<?xml version='1.0' encoding='UTF-8'?>
<Library xmlns="http://hl7.org/fhir" xmlns:html="http://www.w3.org/1999/xhtml">
  <id value="IMMZD18SHib3DosesLogic" />
  <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-8fdded27-b2b1-4b4d-9ec6-3c64082aa78e.html): Unable to Parse HTML - node 'code' has unexpected content ' ' (last text = '/*
 * Library: IMMZD18SHib3DosesLogic (IMMZ.D18.S.Hib.3 doses schedule)
 * Schedule Table: 3 primary doses without a booster dose (3p) schedule
 */
library IMMZD18SHib3DosesLogic

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

include WHOCommon called WC

include IMMZCommon called Common
include IMMZConcepts called Concepts

include IMMZEncounterElements called IE
include IMMZD2DTHibEncounterElements called Encounter

parameter Today Date default Today()


context Patient


/*
@output: Haemophilus influenzae type b (Hib) dose 1
@description: Provision of the Hib dose 1
@trigger: Child's birth
@pseudo: 
@triggerDate: "Date of birth"
*/
define "Haemophilus influenzae type b (Hib) dose 1":
  Encounter."No Hib primary series doses were administered"
  and "Haemophilus influenzae type b (Hib) dose 1 Expiration" after day of Today


/*
@output: Haemophilus influenzae type b (Hib) dose 1 Create
@create: Immunization should start from 6 weeks of age, or as early as possible thereafter.
Hib-containing vaccine is not required for healthy children aged over 5 years.
*/
define "Haemophilus influenzae type b (Hib) dose 1 Create":
  if "Haemophilus influenzae type b (Hib) dose 1"
  then 'Immunization should start from 6 weeks of age, or as early as possible thereafter.
Hib-containing vaccine is not required for healthy children aged over 5 years.' + '
Due Date: ' + ToString("Haemophilus influenzae type b (Hib) dose 1 Due Date") + '
Expiration: ' + ToString("Haemophilus influenzae type b (Hib) dose 1 Expiration")
  else ''


/*
@dynamicValue: Haemophilus influenzae type b (Hib) dose 1 Due Date
@pseudocode: "Date of birth" + 6 weeks
*/
define "Haemophilus influenzae type b (Hib) dose 1 Due Date":
  if "Haemophilus influenzae type b (Hib) dose 1" then Patient.birthDate + 6 weeks
  else null


/*
@dynamicValue: Haemophilus influenzae type b (Hib) dose 1 Overdue
@pseudocode: To be determined by Member States
*/
define "Haemophilus influenzae type b (Hib) dose 1 Overdue":
  null


/*
@dynamicValue: Haemophilus influenzae type b (Hib) dose 1 Expiration
@pseudocode: "Date of birth" + 6 years
*/
define "Haemophilus influenzae type b (Hib) dose 1 Expiration":
  Patient.birthDate + 6 years

  
/*
@complete: First Hib dose from the primary series was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "Hib-containing vaccines" and "Type of dose"= "Primary series") = 1
The primary series has been completed for delayed start
"Completed the primary vaccination series" = TRUE (where "Vaccine type" = "Hib-containing vaccines")
*/
define "First Hib dose from the primary series was administered":
  Encounter."One Hib primary series dose was administered"



/*
@output: Hib dose 2
@description: Provision of the Hib dose 2
@trigger: First Hib dose from the primary series was administered to the client within 1 year of age. Client's age is less than 5 years
@pseudo: Count of vaccines administered (where "Vaccine type" = "Hib-containing vaccines" and "Type of dose" = "Primary series") = 1 AND "Date and time of vaccination" (where "Vaccine type"= "Hib-containing vaccines" and "Dose number" = 1) − "Date of birth" ' at line 297 column 260</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/IMMZD18SHib3DosesLogic" />
  <version value="1.0.0" />
  <name value="IMMZD18SHib3DosesLogic" />
  <title value="IMMZD18SHib3DosesLogic" />
  <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 decision support logic for the IMMZ.D18.S.Hib.3 doses schedule table in the Immunization CPG" />
  <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 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 IE" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZEncounterElements" />
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on" />
    <display value="Library Encounter" />
    <resource value="http://smart.who.int/immunizations/Library/IMMZD2DTHibEncounterElements" />
  </relatedArtifact>
  <parameter>
    <name value="Today" />
    <use value="in" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Patient" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Patient" />
  </parameter>
  <parameter>
    <name value="Haemophilus influenzae type b (Hib) dose 1 Expiration" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Haemophilus influenzae type b (Hib) dose 1" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Haemophilus influenzae type b (Hib) dose 1 Due Date" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Haemophilus influenzae type b (Hib) dose 1 Create" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="string" />
  </parameter>
  <parameter>
    <name value="Haemophilus influenzae type b (Hib) dose 1 Overdue" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Resource" />
  </parameter>
  <parameter>
    <name value="First Hib dose from the primary series was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Second Hib dose from the primary series was administered" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Hib dose 2 Expiration" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Hib dose 2" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Hib dose 2 Due Date" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Hib dose 2 Create" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="string" />
  </parameter>
  <parameter>
    <name value="Hib dose 2 Overdue" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Resource" />
  </parameter>
  <parameter>
    <name value="Third Hib dose from the primary series was administered. The primary series has been completed" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Hib dose 3 Expiration" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Hib dose 3" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="boolean" />
  </parameter>
  <parameter>
    <name value="Hib dose 3 Due Date" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="date" />
  </parameter>
  <parameter>
    <name value="Hib dose 3 Create" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="string" />
  </parameter>
  <parameter>
    <name value="Hib dose 3 Overdue" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Resource" />
  </parameter>
  <parameter>
    <name value="Test Validation" />
    <use value="out" />
    <min value="0" />
    <max value="1" />
    <type value="Resource" />
  </parameter>
  <content>
    <contentType value="text/cql" />
    <url value="Library-IMMZD18SHib3DosesLogic.cql" /></content>
  <content>
    <contentType value="application/elm+xml" />
    <url value="Library-IMMZD18SHib3DosesLogic.elm.xml" /></content>
</Library>