<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="urn:hl7-org:elm:r1" xmlns:t="urn:hl7-org:elm-types:r1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fhir="http://hl7.org/fhir" xmlns:qdm43="urn:healthit-gov:qdm:v4_3" xmlns:qdm53="urn:healthit-gov:qdm:v5_3" xmlns:a="urn:hl7-org:cql-annotations:r1" localId="0">
   <annotation translatorOptions="EnableAnnotations,EnableLocators,DisableListDemotion,DisableListPromotion" signatureLevel="Overloads" xsi:type="a:CqlToElmInfo"/>
   <annotation message="An operand identifier reference is hiding another identifier of the same name." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/>
   <annotation message="An operand identifier reference is hiding another identifier of the same name." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/>
   <annotation message="An operand identifier reference is hiding another identifier of the same name." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/>
   <annotation xsi:type="a:Annotation">
      <a:s r="290">
         <a:s>/*
 * Library: IMMZ.IND.26 Logic
 * Immunization coverage for yellow fever vaccine
 * The percentage in the target population who have received one dose of yellow fever vaccine during the reporting period
 * 
 * Numerator: Number of yellow fever vaccine doses administered through routine services during the reporting period
 * Numerator Computation: COUNT of immunization events WHERE &quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; AND &quot;Date and time of vaccination&quot; is during the reporting period
 * Denominator: Number in target group
 * Denominator Computation: As defined by the Member States
 * 
 * Disaggregation
 *  - Administrative area
 *  - Sex
 *  - Age in years
 *  - Age group (depending on schedule)
 *
 * References: WHO/UNICEF joint reporting form (1)
 *   WHO Immunization data portal (2)
 *   WHO Immunization facility analysis guide (5)
 *   WHO Handbook on immunization data (6)
 * 
 * Annotations: The calculation for this indicator is in line with the administrative calculation provided on the WHO Immunization data portal.
 *   As per WHO Immunization data portal, recommended denominator used in the administrative coverage calculation is surviving infants for countries recommending yellow fever vaccination in the first year of life. Then, the single age cohort population estimates for the targeted cohort.
 */
library IMMZIND26Logic</a:s>
      </a:s>
   </annotation>
   <identifier id="IMMZIND26Logic" system="http://smart.who.int/immunizations"/>
   <schemaIdentifier id="urn:hl7-org:elm" version="r1"/>
   <usings>
      <def localId="1" localIdentifier="System" uri="urn:hl7-org:elm-types:r1" version="1.0.0"/>
      <def localId="206" locator="27:1-27:26" localIdentifier="FHIR" uri="http://hl7.org/fhir" version="4.0.1">
         <annotation xsi:type="a:Annotation">
            <a:s r="206">
               <a:s>using </a:s>
               <a:s>
                  <a:s>FHIR</a:s>
               </a:s>
               <a:s> version '4.0.1'</a:s>
            </a:s>
         </annotation>
      </def>
   </usings>
   <includes>
      <def localId="208" locator="29:1-29:35" localIdentifier="FHIRHelpers" path="http://hl7.org/fhir/FHIRHelpers" version="4.0.1">
         <annotation xsi:type="a:Annotation">
            <a:s r="208">
               <a:s>include </a:s>
               <a:s>
                  <a:s>FHIRHelpers</a:s>
               </a:s>
               <a:s> version '4.0.1'</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="210" locator="31:1-31:27" localIdentifier="WC" path="http://smart.who.int/immunizations/WHOCommon">
         <annotation xsi:type="a:Annotation">
            <a:s r="210">
               <a:s>include </a:s>
               <a:s>
                  <a:s>WHOCommon</a:s>
               </a:s>
               <a:s> called WC</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="212" locator="33:1-33:32" localIdentifier="Common" path="http://smart.who.int/immunizations/IMMZCommon">
         <annotation xsi:type="a:Annotation">
            <a:s r="212">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZCommon</a:s>
               </a:s>
               <a:s> called Common</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="214" locator="34:1-34:36" localIdentifier="Concepts" path="http://smart.who.int/immunizations/IMMZConcepts">
         <annotation xsi:type="a:Annotation">
            <a:s r="214">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZConcepts</a:s>
               </a:s>
               <a:s> called Concepts</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="216" locator="35:1-35:45" localIdentifier="Elements" path="http://smart.who.int/immunizations/IMMZIndicatorElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="216">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZIndicatorElements</a:s>
               </a:s>
               <a:s> called Elements</a:s>
            </a:s>
         </annotation>
      </def>
      <def localId="218" locator="37:1-37:54" localIdentifier="Yellowfever" path="http://smart.who.int/immunizations/IMMZD2DTYellowfeverElements">
         <annotation xsi:type="a:Annotation">
            <a:s r="218">
               <a:s>include </a:s>
               <a:s>
                  <a:s>IMMZD2DTYellowfeverElements</a:s>
               </a:s>
               <a:s> called Yellowfever</a:s>
            </a:s>
         </annotation>
      </def>
   </includes>
   <parameters>
      <def localId="220" locator="39:1-39:88" name="Measurement Period" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="220">
               <a:s>parameter &quot;Measurement Period&quot; </a:s>
               <a:s r="232">
                  <a:s>Interval&lt;</a:s>
                  <a:s r="233">
                     <a:s>Date</a:s>
                  </a:s>
                  <a:s>></a:s>
               </a:s>
               <a:s> default </a:s>
               <a:s r="231">
                  <a:s r="225">Interval[@2025-01-01, @2025-12-31]</a:s>
               </a:s>
            </a:s>
         </annotation>
         <default localId="231" locator="39:55-39:88" lowClosed="true" highClosed="true" xsi:type="Interval">
            <low localId="225" locator="39:64-39:74" xsi:type="Date">
               <year localId="222" valueType="t:Integer" value="2025" xsi:type="Literal"/>
               <month localId="223" valueType="t:Integer" value="1" xsi:type="Literal"/>
               <day localId="224" valueType="t:Integer" value="1" xsi:type="Literal"/>
            </low>
            <high localId="230" locator="39:77-39:87" xsi:type="Date">
               <year localId="227" valueType="t:Integer" value="2025" xsi:type="Literal"/>
               <month localId="228" valueType="t:Integer" value="12" xsi:type="Literal"/>
               <day localId="229" valueType="t:Integer" value="31" xsi:type="Literal"/>
            </high>
         </default>
         <parameterTypeSpecifier localId="232" locator="39:32-39:45" xsi:type="IntervalTypeSpecifier">
            <pointType localId="233" locator="39:41-39:44" name="t:Date" xsi:type="NamedTypeSpecifier"/>
         </parameterTypeSpecifier>
      </def>
   </parameters>
   <contexts>
      <def localId="238" locator="41:1-41:15" name="Patient"/>
   </contexts>
   <statements>
      <def localId="236" locator="41:1-41:15" name="Patient" context="Patient">
         <expression localId="237" xsi:type="SingletonFrom">
            <operand localId="235" locator="41:1-41:15" dataType="fhir:Patient" templateId="http://hl7.org/fhir/StructureDefinition/Patient" xsi:type="Retrieve"/>
         </expression>
      </def>
      <def localId="241" locator="46:1-47:6" name="Initial Population" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="241">
               <a:s r="242">/*
 * As defined by Member State
 */
define &quot;Initial Population&quot;:
  true</a:s>
            </a:s>
         </annotation>
         <expression localId="242" locator="47:3-47:6" valueType="t:Boolean" value="true" xsi:type="Literal"/>
      </def>
      <def localId="245" locator="53:1-54:6" name="Denominator" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="denominator" value="Number in target group"/>
            <a:t name="pseudocode" value="As defined by the Member States"/>
            <a:s r="245">
               <a:s r="246">/*
@denominator: Number in target group
@pseudocode: As defined by the Member States
*/
define &quot;Denominator&quot;:
  true</a:s>
            </a:s>
         </annotation>
         <expression localId="246" locator="54:3-54:6" valueType="t:Boolean" value="true" xsi:type="Literal"/>
      </def>
      <def localId="249" locator="60:1-62:74" name="Numerator" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="numerator" value="Number of yellow fever vaccine doses administered through routine services during the reporting period"/>
            <a:t name="pseudocode" value="&quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; AND &quot;Date and time of vaccination&quot; is during the reporting period"/>
            <a:s r="249">
               <a:s>/*
@numerator: Number of yellow fever vaccine doses administered through routine services during the reporting period
@pseudocode: COUNT of immunization events WHERE &quot;Vaccine type&quot; = &quot;Yellow fever vaccines&quot; AND &quot;Date and time of vaccination&quot; is during the reporting period
*/
define &quot;Numerator&quot;:
    </a:s>
               <a:s r="250">
                  <a:s>exists</a:s>
                  <a:s r="272">
                     <a:s>( </a:s>
                     <a:s r="272">
                        <a:s>
                           <a:s r="251">
                              <a:s r="253">
                                 <a:s>
                                    <a:s>Yellowfever.&quot;Yellow fever Doses Administered to Patient&quot;</a:s>
                                 </a:s>
                              </a:s>
                              <a:s> I</a:s>
                           </a:s>
                        </a:s>
                        <a:s>
      </a:s>
                        <a:s r="260">
                           <a:s>where </a:s>
                           <a:s r="260">
                              <a:s r="257">
                                 <a:s r="256">
                                    <a:s r="255">
                                       <a:s>I</a:s>
                                    </a:s>
                                    <a:s>.</a:s>
                                    <a:s r="256">
                                       <a:s>occurrence</a:s>
                                    </a:s>
                                 </a:s>
                                 <a:s>.</a:s>
                                 <a:s r="257">
                                    <a:s>toInterval()</a:s>
                                 </a:s>
                              </a:s>
                              <a:s r="260"> starts during </a:s>
                              <a:s r="258">
                                 <a:s>&quot;Measurement Period&quot;</a:s>
                              </a:s>
                           </a:s>
                        </a:s>
                     </a:s>
                     <a:s> )</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="250" locator="61:5-62:74" xsi:type="Exists">
            <operand localId="272" locator="61:11-62:74" xsi:type="Query">
               <source localId="251" locator="61:13-61:70" alias="I">
                  <expression localId="253" locator="61:13-61:68" name="Yellow fever Doses Administered to Patient" libraryName="Yellowfever" xsi:type="ExpressionRef"/>
               </source>
               <where localId="260" locator="62:7-62:72" xsi:type="In">
                  <operand localId="259" locator="62:39-62:44" xsi:type="Start">
                     <operand localId="257" locator="62:13-62:37" name="toInterval" libraryName="WC" xsi:type="FunctionRef">
                        <operand localId="256" locator="62:13-62:24" path="occurrence" scope="I" xsi:type="Property"/>
                     </operand>
                  </operand>
                  <operand localId="261" xsi:type="Interval">
                     <low localId="264" xsi:type="ToDateTime">
                        <signature localId="265" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="262" path="low" xsi:type="Property">
                           <source localId="258" locator="62:53-62:72" name="Measurement Period" xsi:type="ParameterRef"/>
                        </operand>
                     </low>
                     <lowClosedExpression localId="266" path="lowClosed" xsi:type="Property">
                        <source localId="258" locator="62:53-62:72" name="Measurement Period" xsi:type="ParameterRef"/>
                     </lowClosedExpression>
                     <high localId="269" xsi:type="ToDateTime">
                        <signature localId="270" name="t:Date" xsi:type="NamedTypeSpecifier"/>
                        <operand localId="267" path="high" xsi:type="Property">
                           <source localId="258" locator="62:53-62:72" name="Measurement Period" xsi:type="ParameterRef"/>
                        </operand>
                     </high>
                     <highClosedExpression localId="271" path="highClosed" xsi:type="Property">
                        <source localId="258" locator="62:53-62:72" name="Measurement Period" xsi:type="ParameterRef"/>
                     </highClosedExpression>
                  </operand>
               </where>
            </operand>
         </expression>
      </def>
      <def localId="275" locator="70:1-71:43" name="Stratification 1" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:t name="disaggregation" value="Administrative area&#xa;                 Sex&#xa;                 Age in years&#xa;                 Age group (depending on schedule)"/>
            <a:s r="275">
               <a:s>/*
@disaggregation: Administrative area
                 Sex
                 Age in years
                 Age group (depending on schedule)
*/
define &quot;Stratification 1&quot;:
	</a:s>
               <a:s r="277">
                  <a:s r="276">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="277">
                     <a:s>&quot;By Geographic Region Stratifier&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="277" locator="71:2-71:43" name="By Geographic Region Stratifier" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
      <def localId="280" locator="73:1-74:47" name="Stratification 2" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="280">
               <a:s>define &quot;Stratification 2&quot;:
	</a:s>
               <a:s r="282">
                  <a:s r="281">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="282">
                     <a:s>&quot;By Administrative Gender Stratifier&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="282" locator="74:2-74:47" name="By Administrative Gender Stratifier" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
      <def localId="285" locator="76:1-77:26" name="Stratification 3" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="285">
               <a:s>define &quot;Stratification 3&quot;:
	</a:s>
               <a:s r="287">
                  <a:s r="286">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="287">
                     <a:s>&quot;Age Stratifier&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="287" locator="77:2-77:26" name="Age Stratifier" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
      <def localId="290" locator="79:1-80:35" name="Stratification 4" context="Patient" accessLevel="Public">
         <annotation xsi:type="a:Annotation">
            <a:s r="290">
               <a:s>define &quot;Stratification 4&quot;:
	</a:s>
               <a:s r="292">
                  <a:s r="291">
                     <a:s>Elements</a:s>
                  </a:s>
                  <a:s>.</a:s>
                  <a:s r="292">
                     <a:s>&quot;By Age Group Stratifier&quot;</a:s>
                  </a:s>
               </a:s>
            </a:s>
         </annotation>
         <expression localId="292" locator="80:2-80:35" name="By Age Group Stratifier" libraryName="Elements" xsi:type="ExpressionRef"/>
      </def>
   </statements>
</library>
