WHO Antenatal Care Guideline Implementation Guide
0.3.0 - CI Build
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
Active as of 2025-06-24 |
<PlanDefinition xmlns="http://hl7.org/fhir">
<id value="ANCDT34"/>
<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;">ANCDT34</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="PlanDefinition-ANCDT34.html">ANC.DT.34 Birth preparedness counselling</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.34</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">ANC.DT.34 Birth preparedness counselling</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>General counselling to be provided/reviewed at every contact</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-ANCDT34.html">ANC.DT.34 Birth preparedness counselling</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.34 Birth preparedness counselling:</b>
<br/>
<b>When:</b>
<i>Named Event:</i> ANC.B10. Counselling, in-facility management & treatment
<br/>
<b>Then:</b>
<table class="grid-dict">
<tr>
<td>
Encourage delivery at a health-care facility.
Risk factors necessitating a facility birth:
– Age 17 or under
– Primigravida
– Parity 6 or higher
– Prior caesarian section
– Previous pregnancy complications: heavy bleeding, forceps or vacuum delivery, convulsions, or 3rd or 4th degree tear
– Vaginal bleeding
– Multiple fetuses
– Abnormal fetal presentation
– HIV positive
– Wants IUD or tubal ligation following delivery
<br/>
<b>If:</b>
<i>Applicability:</i>
(((((((((((((((Age" ≤ 17 years)
OR ("Fetal presentation" = "Transverse fetal presentation"))
OR ("Fetal presentation" = "Other fetal presentation (specify)"))
OR (Number of caesarian sections" > 0))
OR ("Number of fetuses" > 1))
OR ("Family planning method provided" = "Copper-bearing intrauterine device (Cu-IUD)"))
OR ("Family planning method provided" = "Levonorgestrel intrauterine device (LNG-IUD)"))
OR ("Family planning method provided" = "Female sterilization"))
OR ("Past pregnancy complications" = "Convulsions"))
OR ("Past pregnancy complications" = "Heavy bleeding (during or after delivery)"))
OR ("Past pregnancy complications" = "Forceps or vacuum delivery"))
OR ("Past pregnancy complications" = "3rd or 4th degree tear"))
OR ("Current physiological symptoms" = "Vaginal bleeding"))
OR ("Number of pregnancies (gravida)" = 1))
OR ("Parity" > 5))
OR ("HIV status" = "HIV positive")
<i>(Should Conduct counselling on birth preparedness and complications readiness)</i>
<br/>
<b>Then:</b> <i>Additional sub-actions not displayed</i>
</td>
</tr>
<tr>
<td>
Explain why delivery needs to be with a skilled birth attendant, preferably at a facility according to woman's preference
<br/>
<b>If:</b>
<i>Applicability:</i>
"Planned birth place" = "Home"
<i>(Should Conduct counselling on birth preparedness and complications readiness 2)</i>
<br/>
<b>Then:</b> <i>Additional sub-actions not displayed</i>
</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 Planned birth place"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b10-de137"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Planned birth place - Home Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b10-de140"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Fetal presentation"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b8-de111"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Fetal presentation - Transverse fetal presentation Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b8-de115"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Fetal presentation - Other fetal presentation (specify) Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b8-de116"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Number of caesarian sections"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de33"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Number of fetuses"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b8-de109"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Family planning method selected"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b10-de145"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Family planning method selected - Copper-bearing intrauterine device (Cu-IUD) Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b10-de146"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Family planning method selected - Levonorgestrel intrauterine device (LNG-IUD) Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b10-de147"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Family planning method selected - Female sterilization Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b10-de162"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Past pregnancy complications"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de34"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Past pregnancy complications - Convulsions Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de41"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Past pregnancy complications - Heavy bleeding (during or after delivery) Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de44"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Past pregnancy complications - Forceps Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de42"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Past pregnancy complications - Perineal tear (3rd or 4th degree) Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de46"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Current physiological symptoms"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b7-de43"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Current physiological symptoms - Vaginal bleeding Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b7-de66"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Number of pregnancies (gravida)"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de24"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Parity"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b6-de32"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set HIV status"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b9-de45"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set HIV status - HIV positive Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b9-de46"/>
</relatedArtifact>
<parameter>
<name value="encounter"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name
value="Should Conduct counselling on birth preparedness and complications readiness 2"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name
value="Should Conduct counselling on birth preparedness and complications readiness"/>
<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-b10-de137"/>
</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-de111"/>
</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-b6-de33"/>
</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-de109"/>
</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-b10-de145"/>
</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-b6-de24"/>
</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-b6-de32"/>
</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-b9-de45"/>
</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"/>
<mustSupport value="value"/>
<codeFilter>
<path value="code"/>
<valueSet value="http://smart.who.int/anc/ValueSet/anc-b6-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"/>
<mustSupport value="value"/>
<codeFilter>
<path value="code"/>
<valueSet value="http://smart.who.int/anc/ValueSet/anc-b7-de43"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Patient"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
</dataRequirement>
</Library>
</contained>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="Planned birth place"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B10.DE137 Planned birth place
@activity: ANC.B10.6 Risk reduction & general counselling
@description: Place where woman plans to give birth
*/
define "Planned birth place":
WC.Only(
[Observation: Cx."Planned birth place"] 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="0"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCDT34"/>
</extension>
<extension url="name">
<valueString
value="Should Conduct counselling on birth preparedness and complications readiness 2"/>
</extension>
<extension url="statement">
<valueString
value="/*
"Planned birth place" = "Home"
*/
define "Should Conduct counselling on birth preparedness and complications readiness 2":
ContactData."Planned birth place" in Cx."Planned birth place - Home Choices""/>
</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="Fetal presentation"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B8.DE111 Fetal presentation
@activity: ANC.B8 Physical exam
@description: If a single fetus only, indicate the presentation of the fetus in the uterus
*/
define "Fetal presentation":
WC.Only(
[Observation: Cx."Fetal presentation"] 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="2"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="Number of caesarian sections"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B6.DE33 Number of caesarian sections
@activity: ANC.B6 Profile
@description: Total number of caesarean sections
*/
define "Number of caesarian sections":
WC.MostRecent(
[Observation: Cx."Number of caesarian sections"] 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.integer"/>
</extension>
<extension url="displaySequence">
<valueInteger value="3"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="Number of fetuses"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B8.DE109 Number of fetuses
@activity: ANC.B8 Physical exam
@description: Indicate the number of fetuses the woman is carrying
*/
define "Number of fetuses":
WC.Only(
[Observation: Cx."Number of fetuses"] 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="4"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="Family planning method selected"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B10.DE145 Family planning method selected
@activity: ANC.B10.6 Risk reduction & general counselling
@description: Type of postpartum family planning method selected
*/
define "Family planning method selected":
WC.Only(
[Observation: Cx."Family planning method selected"] 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="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="Past pregnancy complications"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B6.DE34 Past pregnancy complications
@activity: ANC.B6 Profile
@description: Mark whether the woman has had any complications or problems in any previous pregnancy
*/
define "Past pregnancy complications":
[Observation: Cx."Past pregnancy complications"] 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, '/'))
return O.value as FHIR.CodeableConcept"/>
</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="Current physiological symptoms"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B7.DE43 Current physiological symptoms
@activity: ANC.B7 Symptoms & Follow-up
@description: The physiological symptoms that the woman is experiencing right now: select "None" if she is experiencing none of these symptoms
*/
define "Current physiological symptoms":
[Observation: Cx."Current physiological symptoms"] 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, '/'))
return O.value as FHIR.CodeableConcept"/>
</extension>
<extension url="displaySequence">
<valueInteger value="7"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="Number of pregnancies (gravida)"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B6.DE24 Number of pregnancies (gravida)
@activity: ANC.B6 Profile
@description: Total number of times the woman has been pregnant (including this pregnancy); also referred to as gravida
*/
define "Number of pregnancies (gravida)":
WC.Only(
[Observation: Cx."Number of pregnancies (gravida)"] 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.integer"/>
</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="Parity"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B6.DE32 Parity
@activity: ANC.B6 Profile
@description: Calculated parity is the total number of live and stillbirths
*/
define "Parity":
WC.MostRecent(
[Observation: Cx."Parity"] 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.integer"/>
</extension>
<extension url="displaySequence">
<valueInteger value="9"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCContactDataElements"/>
</extension>
<extension url="name">
<valueString value="HIV status"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B9.DE45 HIV status
@activity: ANC.B9 Lab tests & imaging
@description: Calculated field for woman's HIV status
*/
define "HIV status":
WC.Only(
[Observation: Cx."HIV status"] 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="10"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCDT34"/>
</extension>
<extension url="name">
<valueString
value="Should Conduct counselling on birth preparedness and complications readiness"/>
</extension>
<extension url="statement">
<valueString
value="/*
(((((((((((((((Age" ≤ 17 years)
OR ("Fetal presentation" = "Transverse fetal presentation"))
OR ("Fetal presentation" = "Other fetal presentation (specify)"))
OR (Number of caesarian sections" > 0))
OR ("Number of fetuses" > 1))
OR ("Family planning method provided" = "Copper-bearing intrauterine device (Cu-IUD)"))
OR ("Family planning method provided" = "Levonorgestrel intrauterine device (LNG-IUD)"))
OR ("Family planning method provided" = "Female sterilization"))
OR ("Past pregnancy complications" = "Convulsions"))
OR ("Past pregnancy complications" = "Heavy bleeding (during or after delivery)"))
OR ("Past pregnancy complications" = "Forceps or vacuum delivery"))
OR ("Past pregnancy complications" = "3rd or 4th degree tear"))
OR ("Current physiological symptoms" = "Vaginal bleeding"))
OR ("Number of pregnancies (gravida)" = 1))
OR ("Parity" > 5))
OR ("HIV status" = "HIV positive")
*/
define "Should Conduct counselling on birth preparedness and complications readiness":
(AgeInYearsAt(Today()) <= 17)
or ContactData."Fetal presentation" in Cx."Fetal presentation - Transverse fetal presentation Choices"
or ContactData."Fetal presentation" in Cx."Fetal presentation - Other fetal presentation (specify) Choices"
or ContactData."Number of caesarian sections" > 0
or ContactData."Number of fetuses" > 1
or (ContactData."Family planning method selected" in Cx."Family planning method selected - Copper-bearing intrauterine device (Cu-IUD) Choices")
or (ContactData."Family planning method selected" in Cx."Family planning method selected - Levonorgestrel intrauterine device (LNG-IUD) Choices")
or (ContactData."Family planning method selected" in Cx."Family planning method selected - Female sterilization Choices")
or (ContactData."Past pregnancy complications" in Cx."Past pregnancy complications - Convulsions Choices")
or (ContactData."Past pregnancy complications" in Cx."Past pregnancy complications - Heavy bleeding (during or after delivery) Choices")
or (ContactData."Past pregnancy complications" in Cx."Past pregnancy complications - Forceps Choices")
or (ContactData."Past pregnancy complications" in Cx."Past pregnancy complications - Perineal tear (3rd or 4th degree) Choices")
or (ContactData."Current physiological symptoms" in Cx."Current physiological symptoms - Vaginal bleeding Choices")
or ContactData."Number of pregnancies (gravida)" = 1
or ContactData."Parity" > 5
or ContactData."HIV status" in Cx."HIV status - HIV positive Choices""/>
</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="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="12"/>
</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="13"/>
</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<Observation>):
singleton from observations"/>
</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="ToString"/>
</extension>
<extension url="statement">
<valueString
value="define function ToString(value ObservationStatus): 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="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="16"/>
</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="17"/>
</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="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 uri): 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="ToString"/>
</extension>
<extension url="statement">
<valueString
value="define function ToString(value string): value.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="ToInteger"/>
</extension>
<extension url="statement">
<valueString
value="define function ToInteger(value integer): value.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="MostRecent"/>
</extension>
<extension url="statement">
<valueString
value="define function MostRecent(observations List<Observation>):
Last(
observations O
sort by issued
)"/>
</extension>
<extension url="displaySequence">
<valueInteger value="22"/>
</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: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')')
end"/>
</extension>
<extension url="displaySequence">
<valueInteger value="23"/>
</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="24"/>
</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/ANCDT34"/>
<identifier>
<use value="official"/>
<value value="ANC.DT.34"/>
</identifier>
<version value="0.3.0"/>
<name value="ANCDT34"/>
<title value="ANC.DT.34 Birth preparedness counselling"/>
<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="General counselling to be provided/reviewed at every contact"/>
<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.B10."/>
<display value="Counselling, in-facility management & treatment"/>
</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/ANCDT34"/>
<action>
<title value="ANC.DT.34 Birth preparedness counselling"/>
<trigger>
<type value="named-event"/>
<name
value="ANC.B10. Counselling, in-facility management & treatment"/>
</trigger>
<action id="1">
<title
value="Conduct counselling on birth preparedness and complications readiness"/>
<description
value="Conduct counselling on birth preparedness and complications readiness"/>
<textEquivalent
value="Encourage delivery at a health-care facility.
Risk factors necessitating a facility birth:
– Age 17 or under
– Primigravida
– Parity 6 or higher
– Prior caesarian section
– Previous pregnancy complications: heavy bleeding, forceps or vacuum delivery, convulsions, or 3rd or 4th degree tear
– Vaginal bleeding
– Multiple fetuses
– Abnormal fetal presentation
– HIV positive
– Wants IUD or tubal ligation following delivery"/>
<documentation>
<type value="citation"/>
<label
value="Pregnancy, childbirth, postpartum and newborn care guide (IMPAC) (2015) (1)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value="(((((((((((((((Age" ≤ 17 years)
OR ("Fetal presentation" = "Transverse fetal presentation"))
OR ("Fetal presentation" = "Other fetal presentation (specify)"))
OR (Number of caesarian sections" > 0))
OR ("Number of fetuses" > 1))
OR ("Family planning method provided" = "Copper-bearing intrauterine device (Cu-IUD)"))
OR ("Family planning method provided" = "Levonorgestrel intrauterine device (LNG-IUD)"))
OR ("Family planning method provided" = "Female sterilization"))
OR ("Past pregnancy complications" = "Convulsions"))
OR ("Past pregnancy complications" = "Heavy bleeding (during or after delivery)"))
OR ("Past pregnancy complications" = "Forceps or vacuum delivery"))
OR ("Past pregnancy complications" = "3rd or 4th degree tear"))
OR ("Current physiological symptoms" = "Vaginal bleeding"))
OR ("Number of pregnancies (gravida)" = 1))
OR ("Parity" > 5))
OR ("HIV status" = "HIV positive")"/>
<language value="text/cql-identifier"/>
<expression
value="Should Conduct counselling on birth preparedness and complications readiness"/>
</expression>
</condition>
<action>
<title
value="Conduct counselling on birth preparedness and complications readiness"/>
</action>
<action>
<title
value="Recommend woman to plan to give birth at a health-care facility"/>
</action>
</action>
<action id="2">
<title
value="Conduct counselling on birth preparedness and complications readiness"/>
<description
value="Conduct counselling on birth preparedness and complications readiness 2"/>
<textEquivalent
value="Explain why delivery needs to be with a skilled birth attendant, preferably at a facility according to woman's preference"/>
<documentation>
<type value="citation"/>
<label
value="Pregnancy, childbirth, postpartum and newborn care guide (IMPAC) (2015) (1)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value=""Planned birth place" = "Home""/>
<language value="text/cql-identifier"/>
<expression
value="Should Conduct counselling on birth preparedness and complications readiness 2"/>
</expression>
</condition>
<action>
<title
value="Conduct counselling on birth preparedness and complications readiness"/>
</action>
<action>
<title
value="Explain why delivery needs to be with a skilled birth attendant, preferably at a facility according to woman's preference"/>
</action>
</action>
</action>
</PlanDefinition>