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="ANCDT01"/>
<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;">ANCDT01</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="PlanDefinition-ANCDT01.html">ANC.DT.01 Danger signs</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.01</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">ANC.DT.01 Danger signs</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>Before each contact, during the Quick Check, the health worker should check whether the woman has any of the danger signs listed here – if yes, she should be referred to the hospital urgently; if no, the normal contact should be continued as normal</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-ANCDT01.html">ANC.DT.01 Danger signs</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.01 Danger signs:</b>
<br/>
<b>When:</b>
<i>Named Event:</i> ANC.B5 Quick check
<br/>
<b>Then:</b>
<table class="grid-dict">
<tr>
<td>
If no danger signs are present, the health worker can continue with the normal ANC contact
<br/>
<b>If:</b>
<i>Applicability:</i>
"Danger signs" = "No danger signs"
<i>(Should Proceed with ANC contact)</i>
<br/>
</td>
</tr>
<tr>
<td>
Bluish discolouration around the mucous membranes in the mouth, lips and tongue.
<br/>
<b>If:</b>
<i>Applicability:</i>
"Danger signs" = "Central cyanosis"
<i>(Should Proceed with ANC contact OR Referral for Central cyanosis)</i>
<br/>
</td>
</tr>
<tr>
<td>
This is a danger sign that indicates that the woman needs urgent management
<br/>
<b>If:</b>
<i>Applicability:</i>
((((((((((("Danger signs" = "Bleeding vaginally")
OR ("Danger signs" = "Convulsing"))
OR ("Danger signs" = "Fever"))
OR ("Danger signs" = "Severe headache"))
OR ("Danger signs" = "Visual disturbance"))
OR ("Danger signs" = "Imminent delivery"))
OR ("Danger signs" = "Labour"))
OR ("Danger signs" = "Looks very ill"))
OR ("Danger signs" = "Severe vomiting"))
OR ("Danger signs" = "Severe pain"))
OR ("Danger signs" = "Severe abdominal pain"))
OR ("Danger signs" = "Unconscious")
<i>(Should Proceed with ANC contact OR Referral)</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 ContactData"/>
<resource
value="http://smart.who.int/anc/Library/ANCContactDataElements"/>
</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="Library FHIRHelpers"/>
<resource value="http://smart.who.int/anc/Library/FHIRHelpers|4.0.1"/>
</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="Value set Danger signs"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b5-de48"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Danger Signs - No danger signs Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b5-de49"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Danger signs Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b5-de50"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Danger Signs - Central cyanosis Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b5-de51"/>
</relatedArtifact>
<parameter>
<name value="encounter"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="Should Proceed with ANC contact"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Should Proceed with ANC contact OR Referral"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name
value="Should Proceed with ANC contact OR Referral for Central cyanosis"/>
<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"/>
<mustSupport value="value"/>
<codeFilter>
<path value="code"/>
<valueSet value="http://smart.who.int/anc/ValueSet/anc-b5-de48"/>
</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="Danger signs"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B5.DE48 Danger signs
@activity: ANC.B5 Quick check
@description: Before each contact, the health worker should check whether the woman has any of the danger signs listed here – if yes, she should refer to the hospital urgently; if no, she should continue to the normal contact
*/
define "Danger signs":
[Observation: Cx."Danger signs"] 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="0"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCDT01"/>
</extension>
<extension url="name">
<valueString value="Should Proceed with ANC contact"/>
</extension>
<extension url="statement">
<valueString
value="/*
"Danger signs" = "No danger signs"
*/
define "Should Proceed with ANC contact":
ContactData."Danger signs" in Cx."Danger Signs - No danger signs Choices""/>
</extension>
<extension url="displaySequence">
<valueInteger value="1"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCDT01"/>
</extension>
<extension url="name">
<valueString value="Should Proceed with ANC contact OR Referral"/>
</extension>
<extension url="statement">
<valueString
value="/*
((((((((((("Danger signs" = "Bleeding vaginally")
OR ("Danger signs" = "Convulsing"))
OR ("Danger signs" = "Fever"))
OR ("Danger signs" = "Severe headache"))
OR ("Danger signs" = "Visual disturbance"))
OR ("Danger signs" = "Imminent delivery"))
OR ("Danger signs" = "Labour"))
OR ("Danger signs" = "Looks very ill"))
OR ("Danger signs" = "Severe vomiting"))
OR ("Danger signs" = "Severe pain"))
OR ("Danger signs" = "Severe abdominal pain"))
OR ("Danger signs" = "Unconscious")
*/
define "Should Proceed with ANC contact OR Referral":
ContactData."Danger signs" in Cx."Danger signs Choices""/>
</extension>
<extension url="displaySequence">
<valueInteger value="2"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCDT01"/>
</extension>
<extension url="name">
<valueString
value="Should Proceed with ANC contact OR Referral for Central cyanosis"/>
</extension>
<extension url="statement">
<valueString
value="/*
"Danger signs" = "Central cyanosis"
*/
define "Should Proceed with ANC contact OR Referral for Central cyanosis":
ContactData."Danger signs" in Cx."Danger Signs - Central cyanosis Choices""/>
</extension>
<extension url="displaySequence">
<valueInteger value="3"/>
</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="4"/>
</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="5"/>
</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="6"/>
</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="7"/>
</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="8"/>
</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="9"/>
</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="10"/>
</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="11"/>
</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/ANCDT01"/>
<identifier>
<use value="official"/>
<value value="ANC.DT.01"/>
</identifier>
<version value="0.3.0"/>
<name value="ANCDT01"/>
<title value="ANC.DT.01 Danger signs"/>
<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="Before each contact, during the Quick Check, the health worker should check whether the woman has any of the danger signs listed here – if yes, she should be referred to the hospital urgently; if no, the normal contact should be continued as normal"/>
<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.B5"/>
<display value="Quick check"/>
</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/ANCDT01"/>
<action>
<title value="ANC.DT.01 Danger signs"/>
<trigger>
<type value="named-event"/>
<name value="ANC.B5 Quick check"/>
</trigger>
<action id="1">
<title value="Proceed with ANC contact "/>
<description value="Proceed with ANC contact "/>
<textEquivalent
value="If no danger signs are present, the health worker can continue with the normal ANC contact"/>
<documentation>
<type value="citation"/>
<label
value="Pregnancy, childbirth, postpartum and newborn care guide (IMPAC) (2015) (1)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value=""Danger signs" = "No danger signs""/>
<language value="text/cql-identifier"/>
<expression value="Should Proceed with ANC contact"/>
</expression>
</condition>
</action>
<action id="2">
<title
value="Proceed with ANC contact OR Referral for Central cyanosis"/>
<description
value="Proceed with ANC contact OR Referral for Central cyanosis"/>
<textEquivalent
value="Bluish discolouration around the mucous membranes in the mouth, lips and tongue."/>
<documentation>
<type value="citation"/>
<label
value="Pregnancy, childbirth, postpartum and newborn care guide (IMPAC) (2015) (1)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value=""Danger signs" = "Central cyanosis""/>
<language value="text/cql-identifier"/>
<expression
value="Should Proceed with ANC contact OR Referral for Central cyanosis"/>
</expression>
</condition>
</action>
<action id="3">
<title value="Proceed with ANC contact OR Referral"/>
<description value="Proceed with ANC contact OR Referral"/>
<textEquivalent
value="This is a danger sign that indicates that the woman needs urgent management"/>
<documentation>
<type value="citation"/>
<label
value="Pregnancy, childbirth, postpartum and newborn care guide (IMPAC) (2015) (1)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value="((((((((((("Danger signs" = "Bleeding vaginally")
OR ("Danger signs" = "Convulsing"))
OR ("Danger signs" = "Fever"))
OR ("Danger signs" = "Severe headache"))
OR ("Danger signs" = "Visual disturbance"))
OR ("Danger signs" = "Imminent delivery"))
OR ("Danger signs" = "Labour"))
OR ("Danger signs" = "Looks very ill"))
OR ("Danger signs" = "Severe vomiting"))
OR ("Danger signs" = "Severe pain"))
OR ("Danger signs" = "Severe abdominal pain"))
OR ("Danger signs" = "Unconscious")"/>
<language value="text/cql-identifier"/>
<expression value="Should Proceed with ANC contact OR Referral"/>
</expression>
</condition>
</action>
</action>
</PlanDefinition>