WHO Antenatal Care Guideline Implementation Guide
0.3.0 - CI Build International flag

WHO Antenatal Care Guideline Implementation Guide, published by World Health Organization (WHO). This guide is not an authorized publication; it is the continuous build for version 0.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-anc/ and changes regularly. See the Directory of published versions

: ANC.DT.04 Conducting physical exams - XML Representation

Active as of 2025-06-24

Raw xml | Download


<PlanDefinition xmlns="http://hl7.org/fhir">
  <id value="ANCDT04"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">ANCDT04</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="PlanDefinition-ANCDT04.html">ANC.DT.04 Conducting physical exams</a></td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">0.3.0</td>
        </tr>
        

        
        <tr>
            <th scope="row">
                <b>
                    
                        Official
                    
                </b>
            </th>
            <td style="padding-left: 4px;">
                
                <p style="margin-bottom: 5px;">
                    <span>ANC.DT.04</span>
                </p>
                
            </td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">ANC.DT.04 Conducting physical exams</td>
        </tr>
        

        

        

        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/6.4.0/CodeSystem-plan-definition-type.html">http://terminology.hl7.org/CodeSystem/plan-definition-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>eca-rule</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2025-06-24 13:58:48-0600</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">World Health Organization (WHO)</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>Depending on the results of some physical exams, additional examinations or repeat measurements are required</p>
</div></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Use Context: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    <tr>
                        <th><b>code</b></th>
                        <th><b>value</b></th>
                    </tr>
                    
                        <tr>
                            <td>task</td>
                            <td/>
                        </tr>
                    
                </table>
            </td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Jurisdiction: </b></th>
            <td style="padding-left: 4px;">001</td>
        </tr>
        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Libraries: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    
                    <tr>
                        <td><a href="Library-ANCDT04.html">ANC.DT.04 Conducting physical exams</a></td>
                    </tr>
                    
                </table>
            </td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Actions: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    
                    <tr>
                        <td>
                            
                            <b> ANC.DT.04 Conducting physical exams:</b> 
                            
                            <br/>
                            
                            <b>When:</b>
                            
                            <i>Named Event:</i> ANC.B8 Conduct physical exam
                            <br/>
                            
                            
                            
                            
                            <b>Then:</b>
                            <table class="grid-dict">
                                
                                <tr>
                                    <td>
                                        
                                        Given high values (SBP ≥ 140 or DBP ≥ 90) upon first measure, blood pressure should be measured again
                                        
                                        <br/>
                                        
                                        
                                        <b>If:</b>
                                        
                                        <i>Applicability:</i>
                                        
                                        (&quot;Systolic blood pressure&quot; ≥ 140 mmHg)
  OR (&quot;Diastolic blood pressure&quot; ≥ 90 mmHg)
                                        
                                        <i>(Should Measure BP again after 10–15 minutes rest)</i>
                                        <br/>
                                        
                                        
                                        
                                        
                                        
                                    </td>
                                </tr>
                                
                                <tr>
                                    <td>
                                        
                                        The health worker should retake the woman's temperature if the first reading is over 38°C
                                        
                                        <br/>
                                        
                                        
                                        <b>If:</b>
                                        
                                        <i>Applicability:</i>
                                        
                                        &quot;Body temperature&quot; ≥ 38°C
                                        
                                        <i>(Should Measure temperature again)</i>
                                        <br/>
                                        
                                        
                                        
                                        
                                        
                                    </td>
                                </tr>
                                
                                <tr>
                                    <td>
                                        
                                        The health worker should retake the woman's pulse rate if the first reading is lower than 60 or higher than 100 beats per minute
                                        
                                        <br/>
                                        
                                        
                                        <b>If:</b>
                                        
                                        <i>Applicability:</i>
                                        
                                        60 &gt; Pulse rate &gt; 100
                                        
                                        <i>(Should Check again after 10 minutes rest)</i>
                                        <br/>
                                        
                                        
                                        
                                        
                                        
                                    </td>
                                </tr>
                                
                                <tr>
                                    <td>
                                        
                                        If the woman has an abnormal respiratory exam result or respiratory distress, conduct oximetry test
                                        
                                        <br/>
                                        
                                        
                                        <b>If:</b>
                                        
                                        <i>Applicability:</i>
                                        
                                        ((((((&quot;Respiratory exam result&quot; = &quot;Dyspnoea&quot;)
  OR (&quot;Respiratory exam result&quot; = &quot;Cough&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Rapid breathing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Slow breathing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Wheezing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Rales&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Other abnormal respiratory exam result (specify)&quot;)
                                        
                                        <i>(Should Conduct oximetry test)</i>
                                        <br/>
                                        
                                        
                                        
                                        
                                        
                                    </td>
                                </tr>
                                
                                <tr>
                                    <td>
                                        
                                        Fetal heart rate out of normal range (100–180) – please have the woman lay on her left side for 15 minutes and check again
                                        
                                        <br/>
                                        
                                        
                                        <b>If:</b>
                                        
                                        <i>Applicability:</i>
                                        
                                        100 bpm &gt; Fetal heart rate &gt; 180 bpm
                                        
                                        <i>(Should Measure the fetal heart rate again)</i>
                                        <br/>
                                        
                                        
                                        
                                        
                                        
                                    </td>
                                </tr>
                                
                            </table>
                            
                        </td>
                    </tr>
                    
                </table>
            </td>
        </tr>
        
    </table>
</div>
</div>
  </text>
  <contained>
    <Library>
      <id value="effective-data-requirements"/>
      <name value="EffectiveDataRequirements"/>
      <status value="active"/>
      <type>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
          <code value="module-definition"/>
        </coding>
      </type>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library FHIRHelpers"/>
        <resource value="http://smart.who.int/anc/Library/FHIRHelpers|4.0.1"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library ContactData"/>
        <resource
                  value="http://smart.who.int/anc/Library/ANCContactDataElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library WC"/>
        <resource value="http://smart.who.int/anc/Library/WHOCommon"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Cx"/>
        <resource value="http://smart.who.int/anc/Library/ANCConcepts"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Body temperature"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de34"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Systolic blood pressure"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de17"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Diastolic blood pressure"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de19"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Respiratory exam result"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de39"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Respiratory exam result - Dyspnoea Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de42"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Respiratory exam result - Cough Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de43"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Respiratory exam result - Rapid breathing Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de44"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Respiratory exam result - Slow breathing Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de45"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Respiratory exam result - Wheezing Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de46"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Respiratory exam result - Rales Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de47"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Respiratory exam result - Other abnormal result (specify) Choices"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de48"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Fetal heart rate"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de107"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Pulse rate"/>
        <resource value="http://smart.who.int/anc/ValueSet/anc-b8-de36"/>
      </relatedArtifact>
      <parameter>
        <name value="encounter"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="string"/>
      </parameter>
      <parameter>
        <name value="Should Measure temperature again"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Should Measure BP again after 10–15 minutes rest"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Should Conduct oximetry test"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Should Measure the fetal heart rate again"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Should Check again after 10 minutes rest"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="encounter.reference"/>
        <codeFilter>
          <path value="code"/>
          <valueSet value="http://smart.who.int/anc/ValueSet/anc-b8-de34"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="encounter.reference"/>
        <codeFilter>
          <path value="code"/>
          <valueSet value="http://smart.who.int/anc/ValueSet/anc-b8-de17"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="encounter.reference"/>
        <codeFilter>
          <path value="code"/>
          <valueSet value="http://smart.who.int/anc/ValueSet/anc-b8-de19"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="encounter.reference"/>
        <codeFilter>
          <path value="code"/>
          <valueSet value="http://smart.who.int/anc/ValueSet/anc-b8-de39"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="encounter.reference"/>
        <codeFilter>
          <path value="code"/>
          <valueSet value="http://smart.who.int/anc/ValueSet/anc-b8-de107"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Observation"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
        <mustSupport value="code"/>
        <mustSupport value="status"/>
        <mustSupport value="encounter"/>
        <mustSupport value="encounter.reference"/>
        <codeFilter>
          <path value="code"/>
          <valueSet value="http://smart.who.int/anc/ValueSet/anc-b8-de36"/>
        </codeFilter>
      </dataRequirement>
    </Library>
  </contained>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCContactDataElements"/>
    </extension>
    <extension url="name">
      <valueString value="Body temperature"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
  @dataElement: ANC.B8.DE34 Body temperature
  @activity: ANC.B8 Physical exam
  @description: The woman's body temperature in degrees Celsius  (°C) (first reading)
*/
define &quot;Body temperature&quot;:
  WC.Earliest(
  [Observation: Cx.&quot;Body temperature&quot;] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))
  ).value as FHIR.Quantity"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="0"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCDT04"/>
    </extension>
    <extension url="name">
      <valueString value="Should Measure temperature again"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
&quot;Body temperature&quot; ≥ 38°C
*/
define &quot;Should Measure temperature again&quot;:
  ContactData.&quot;Body temperature&quot; &gt;= 38 'Cel'"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="1"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCContactDataElements"/>
    </extension>
    <extension url="name">
      <valueString value="Systolic blood pressure"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
  @dataElement: ANC.B8.DE17 Systolic blood pressure
  @activity: ANC.B8 Physical exam
  @description: Systolic blood pressure (SBP) in mmHg
*/
define &quot;Systolic blood pressure&quot;:
  WC.Earliest(
  [Observation: Cx.&quot;Systolic blood pressure&quot;] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))
  ).value as FHIR.Quantity"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="2"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCContactDataElements"/>
    </extension>
    <extension url="name">
      <valueString value="Diastolic blood pressure"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
  @dataElement: ANC.B8.DE19 Diastolic blood pressure
  @activity: ANC.B8 Physical exam
  @description: Diastolic blood pressure (DBP) in mmHg
*/
define &quot;Diastolic blood pressure&quot;:
  WC.Earliest(
  [Observation: Cx.&quot;Diastolic blood pressure&quot;] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))
  ).value as FHIR.Quantity"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="3"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCDT04"/>
    </extension>
    <extension url="name">
      <valueString value="Should Measure BP again after 10–15 minutes rest"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
(&quot;Systolic blood pressure&quot; ≥ 140 mmHg)
  OR (&quot;Diastolic blood pressure&quot; ≥ 90 mmHg)
*/
define &quot;Should Measure BP again after 10–15 minutes rest&quot;:
  ContactData.&quot;Systolic blood pressure&quot; &gt;= 140 'mm[Hg]'
    or ContactData.&quot;Diastolic blood pressure&quot; &gt;= 90 'mm[Hg]'"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="4"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCContactDataElements"/>
    </extension>
    <extension url="name">
      <valueString value="Respiratory exam result"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
  @dataElement: ANC.B8.DE39 Respiratory exam result
  @activity: ANC.B8 Physical exam
  @description: The woman's respiratory condition based on respiratory exam
*/
define &quot;Respiratory exam result&quot;:
  WC.Only(
  [Observation: Cx.&quot;Respiratory exam result&quot;] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))
  ).value as FHIR.CodeableConcept"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="5"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCDT04"/>
    </extension>
    <extension url="name">
      <valueString value="Should Conduct oximetry test"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
((((((&quot;Respiratory exam result&quot; = &quot;Dyspnoea&quot;)
  OR (&quot;Respiratory exam result&quot; = &quot;Cough&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Rapid breathing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Slow breathing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Wheezing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Rales&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Other abnormal respiratory exam result (specify)&quot;)
*/
define &quot;Should Conduct oximetry test&quot;:
  ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Dyspnoea Choices&quot;
    or (ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Cough Choices&quot;)
    or (ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Rapid breathing Choices&quot;)
    or (ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Slow breathing Choices&quot;)
    or (ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Wheezing Choices&quot;)
    or (ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Rales Choices&quot;)
    or (ContactData.&quot;Respiratory exam result&quot; in Cx.&quot;Respiratory exam result - Other abnormal result (specify) Choices&quot;)"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="6"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCContactDataElements"/>
    </extension>
    <extension url="name">
      <valueString value="Fetal heart rate"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
  @dataElement: ANC.B8.DE107 Fetal heart rate
  @activity: ANC.B8 Physical exam
  @description: The fetal heart rate in beats per minute (bpm)
*/
define &quot;Fetal heart rate&quot;:
  WC.Earliest(
  [Observation: Cx.&quot;Fetal heart rate&quot;] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))
  ).value as FHIR.Quantity"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="7"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCDT04"/>
    </extension>
    <extension url="name">
      <valueString value="Should Measure the fetal heart rate again"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
100 bpm &gt; Fetal heart rate &gt; 180 bpm
*/
define &quot;Should Measure the fetal heart rate again&quot;:
  ContactData.&quot;Fetal heart rate&quot; &lt; 100
    or ContactData.&quot;Fetal heart rate&quot; &gt; 180"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="8"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCContactDataElements"/>
    </extension>
    <extension url="name">
      <valueString value="Pulse rate"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
  @dataElement: ANC.B8.DE36 Pulse rate
  @activity: ANC.B8 Physical exam
  @description: The woman's pulse rate in beats per minute (bpm)
*/
define &quot;Pulse rate&quot;:
  WC.Earliest(
  [Observation: Cx.&quot;Pulse rate&quot;] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))
  ).value as FHIR.Quantity"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="9"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="ANCDT04"/>
    </extension>
    <extension url="name">
      <valueString value="Should Check again after 10 minutes rest"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
60 &gt; Pulse rate &gt; 100
*/
define &quot;Should Check again after 10 minutes rest&quot;:
  ContactData.&quot;Pulse rate&quot; &lt; 60
    or ContactData.&quot;Pulse rate&quot; &gt; 100"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="10"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToQuantity"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function ToQuantity(quantity FHIR.Quantity):
    case
        when quantity is null then null
        when quantity.value is null then null
        when quantity.comparator is not null then
            Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')
        when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'
              or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then
            System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }
        else
            Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' &amp; quantity.unit.value &amp; ' (' &amp; quantity.system.value &amp; '|' &amp; quantity.code.value &amp; ')')
    end"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="11"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToCalendarUnit"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function ToCalendarUnit(unit System.String):
    case unit
        when 'ms' then 'millisecond'
        when 's' then 'second'
        when 'min' then 'minute'
        when 'h' then 'hour'
        when 'd' then 'day'
        when 'wk' then 'week'
        when 'mo' then 'month'
        when 'a' then 'year'
        else unit
    end"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="12"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="WHOCommon"/>
    </extension>
    <extension url="name">
      <valueString value="Earliest"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function Earliest(observations List&lt;Observation&gt;):
  First(
    observations O
      sort by issued
  )"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="13"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToString"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function ToString(value ObservationStatus): value.value"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="14"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToBoolean"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function ToBoolean(value boolean): value.value"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="15"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="WHOCommon"/>
    </extension>
    <extension url="name">
      <valueString value="ModifierExtension"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
@description: Returns the single WHO core modifier extension (if present) on the given resource with the specified id.
@comment: This function uses singleton from to ensure that a run-time exception is thrown if there
is more than one extension on the given resource with the specified url.
*/
define function ModifierExtension(domainResource DomainResource, id String):
  singleton from ModifierExtensions(domainResource, id)"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="16"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="WHOCommon"/>
    </extension>
    <extension url="name">
      <valueString value="ModifierExtensions"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="/*
@description: Returns any WHO core modifier extensions defined on the given resource with the specified id.
@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access
content that is defined by extensions but not yet surfaced in the
CQL model info.
*/
define function ModifierExtensions(domainResource DomainResource, id String):
  domainResource.modifierExtension E
	  where E.url = ('http://fhir.org/guides/who/core/StructureDefinition/' + id)
		return E"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="17"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToString"/>
    </extension>
    <extension url="statement">
      <valueString value="define function ToString(value uri): value.value"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="18"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToString"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function ToString(value string): value.value"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="19"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToConcept"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="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>
    <extension url="displaySequence">
      <valueInteger value="20"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="FHIRHelpers"/>
    </extension>
    <extension url="name">
      <valueString value="ToCode"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="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>
    <extension url="displaySequence">
      <valueInteger value="21"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
    <extension url="libraryName">
      <valueString value="WHOCommon"/>
    </extension>
    <extension url="name">
      <valueString value="Only"/>
    </extension>
    <extension url="statement">
      <valueString
                   value="define function Only(observations List&lt;Observation&gt;):
  singleton from observations"/>
    </extension>
    <extension url="displaySequence">
      <valueInteger value="22"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements" id="effective-data-requirements">
    <valueCanonical value="#effective-data-requirements"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
    <valueReference>🔗 
      <reference value="Device/cqf-tooling"/>
    </valueReference>
  </extension>
  <url value="http://smart.who.int/anc/PlanDefinition/ANCDT04"/>
  <identifier>
    <use value="official"/>
    <value value="ANC.DT.04"/>
  </identifier>
  <version value="0.3.0"/>
  <name value="ANCDT04"/>
  <title value="ANC.DT.04 Conducting physical exams"/>
  <type>
    <coding>
      <system
              value="http://terminology.hl7.org/CodeSystem/plan-definition-type"/>
      <code value="eca-rule"/>
    </coding>
  </type>
  <status value="active"/>
  <experimental value="false"/>
  <date value="2025-06-24T13:58:48-06:00"/>
  <publisher value="World Health Organization (WHO)"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="https://www.who.int"/>
    </telecom>
  </contact>
  <description
               value="Depending on the results of some physical exams, additional examinations or repeat measurements are required"/>
  <useContext>
    <code>
      <system
              value="http://terminology.hl7.org/CodeSystem/usage-context-type"/>
      <code value="task"/>
      <display value="Workflow Task"/>
    </code>
    <valueCodeableConcept>
      <coding>
        <system value="http://smart.who.int/anc/CodeSystem/activity-codes"/>
        <code value="ANC.B8"/>
        <display value="Conduct physical exam"/>
      </coding>
    </valueCodeableConcept>
  </useContext>
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
    </coding>
  </jurisdiction>
  <library value="http://smart.who.int/anc/Library/ANCDT04"/>
  <action>
    <title value="ANC.DT.04 Conducting physical exams"/>
    <trigger>
      <type value="named-event"/>
      <name value="ANC.B8 Conduct physical exam"/>
    </trigger>
    <action id="1">
      <title value="Measure BP again after 10–15 minutes rest"/>
      <description value="Measure BP again after 10–15 minutes rest"/>
      <textEquivalent
                      value="Given high values (SBP ≥ 140 or DBP ≥ 90) upon first measure, blood pressure should be measured again"/>
      <documentation>
        <type value="citation"/>
        <label
               value="Managing complications guide (IMPAC) (2017): Section S-51 (5)"/>
      </documentation>
      <condition>
        <kind value="applicability"/>
        <expression>
          <description
                       value="(&quot;Systolic blood pressure&quot; ≥ 140 mmHg)
  OR (&quot;Diastolic blood pressure&quot; ≥ 90 mmHg)"/>
          <language value="text/cql-identifier"/>
          <expression
                      value="Should Measure BP again after 10–15 minutes rest"/>
        </expression>
      </condition>
    </action>
    <action id="2">
      <title value="Measure temperature again"/>
      <description value="Measure temperature again"/>
      <textEquivalent
                      value="The health worker should retake the woman's temperature if the first reading is over 38°C"/>
      <documentation>
        <type value="citation"/>
        <label
               value="Managing complications guide (IMPAC) (2017): Section S-113 (5)"/>
      </documentation>
      <condition>
        <kind value="applicability"/>
        <expression>
          <description value="&quot;Body temperature&quot; ≥ 38°C"/>
          <language value="text/cql-identifier"/>
          <expression value="Should Measure temperature again"/>
        </expression>
      </condition>
    </action>
    <action id="3">
      <title value="Check again after 10 minutes rest"/>
      <description value="Check again after 10 minutes rest"/>
      <textEquivalent
                      value="The health worker should retake the woman's pulse rate if the first reading is lower than 60 or higher than 100 beats per minute"/>
      <documentation>
        <type value="citation"/>
        <label
               value="Managing complications guide (IMPAC) (2017): Section S-1 (5)"/>
      </documentation>
      <condition>
        <kind value="applicability"/>
        <expression>
          <description value="60 &gt; Pulse rate &gt; 100"/>
          <language value="text/cql-identifier"/>
          <expression value="Should Check again after 10 minutes rest"/>
        </expression>
      </condition>
    </action>
    <action id="4">
      <title value="Conduct oximetry test"/>
      <description value="Conduct oximetry test"/>
      <textEquivalent
                      value="If the woman has an abnormal respiratory exam result or respiratory distress, conduct oximetry test"/>
      <documentation>
        <type value="citation"/>
        <label
               value="Managing complications guide (IMPAC) (2017): Section S-149 (5)"/>
      </documentation>
      <condition>
        <kind value="applicability"/>
        <expression>
          <description
                       value="((((((&quot;Respiratory exam result&quot; = &quot;Dyspnoea&quot;)
  OR (&quot;Respiratory exam result&quot; = &quot;Cough&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Rapid breathing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Slow breathing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Wheezing&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Rales&quot;))
  OR (&quot;Respiratory exam result&quot; = &quot;Other abnormal respiratory exam result (specify)&quot;)"/>
          <language value="text/cql-identifier"/>
          <expression value="Should Conduct oximetry test"/>
        </expression>
      </condition>
    </action>
    <action id="5">
      <title value="Measure the fetal heart rate again"/>
      <description value="Measure the fetal heart rate again"/>
      <textEquivalent
                      value="Fetal heart rate out of normal range (100–180) – please have the woman lay on her left side for 15 minutes and check again"/>
      <documentation>
        <type value="citation"/>
        <label value="Managing complications guide (IMPAC) (2017): C-89 (5)"/>
      </documentation>
      <condition>
        <kind value="applicability"/>
        <expression>
          <description value="100 bpm &gt; Fetal heart rate &gt; 180 bpm"/>
          <language value="text/cql-identifier"/>
          <expression value="Should Measure the fetal heart rate again"/>
        </expression>
      </condition>
    </action>
  </action>
</PlanDefinition>