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="ANCDT18"/>
<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;">ANCDT18</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="PlanDefinition-ANCDT18.html">ANC.DT.18 HIV diagnosis</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.18</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">ANC.DT.18 HIV diagnosis</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>If the woman tests positive for HIV, provide counselling and referral as needed</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-ANCDT18.html">ANC.DT.18 HIV diagnosis</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.18 HIV diagnosis:</b>
<br/>
<b>When:</b>
<i>Named Event:</i> ANC.B10.4. Diagnosis and treatment
<br/>
<b>Then:</b>
<table class="grid-dict">
<tr>
<td>
HIV test inconclusive, refer for further testing.
"In high-prevalence settings, provider-initiated testing and counselling (PITC) for HIV should be considered a routine component of the package of care for pregnant women in all antenatal care settings. In low-prevalence settings, PITC can be considered for pregnant women in antenatal care settings as a key component of the effort to eliminate mother-to-child transmission of HIV, and to integrate HIV testing with syphilis, viral or other key tests, as relevant to the setting, and to strengthen the underlying maternal and child health systems" (2)
<br/>
<b>If:</b>
<i>Applicability:</i>
"HIV test result" = "Inconclusive"
<i>(Should Refer for further testing)</i>
<br/>
</td>
</tr>
<tr>
<td>
– Counsel for HIV positive test
– Refer for further testing and confirmation
– Refer for HIV services
– Advise on opportunistic infections and need to seek medical help
– Proceed with systematic screening for active TB
"In high-prevalence settings, provider-initiated testing and counselling (PITC) for HIV should be considered a routine component of the package of care for pregnant women in all antenatal care settings. In low-prevalence settings, PITC can be considered for pregnant women in antenatal care settings as a key component of the effort to eliminate mother-to-child transmission of HIV, and to integrate HIV testing with syphilis, viral or other key tests, as relevant to the setting, and to strengthen the underlying maternal and child health systems" (2)
<br/>
<b>If:</b>
<i>Applicability:</i>
"HIV test result" = "HIV positive"
<i>(Should Conduct HIV positive counselling)</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 HIV test result"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b9-de41"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set HIV Test Result - Positive Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b9-de42"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set HIV Test Result - Inconclusive Choices"/>
<resource value="http://smart.who.int/anc/ValueSet/anc-b9-de44"/>
</relatedArtifact>
<parameter>
<name value="encounter"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="Should Conduct HIV positive counselling"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Should Refer for further testing"/>
<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-b9-de41"/>
</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="HIV test result"/>
</extension>
<extension url="statement">
<valueString
value="/*
@dataElement: ANC.B9.DE41 HIV test result
@activity: ANC.B9 Lab tests & imaging
@description: Select the result of the HIV test
*/
define "HIV test result":
WC.Only(
[Observation: Cx."HIV test result"] 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="ANCDT18"/>
</extension>
<extension url="name">
<valueString value="Should Conduct HIV positive counselling"/>
</extension>
<extension url="statement">
<valueString
value="/*
"HIV test result" = "HIV positive"
*/
define "Should Conduct HIV positive counselling":
ContactData."HIV test result" in Cx."HIV Test Result - Positive Choices""/>
</extension>
<extension url="displaySequence">
<valueInteger value="1"/>
</extension>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
<extension url="libraryName">
<valueString value="ANCDT18"/>
</extension>
<extension url="name">
<valueString value="Should Refer for further testing"/>
</extension>
<extension url="statement">
<valueString
value="/*
"HIV test result" = "Inconclusive"
*/
define "Should Refer for further testing":
ContactData."HIV test result" in Cx."HIV Test Result - Inconclusive Choices""/>
</extension>
<extension url="displaySequence">
<valueInteger value="2"/>
</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="3"/>
</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="4"/>
</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="5"/>
</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="6"/>
</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="7"/>
</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="8"/>
</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="9"/>
</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="10"/>
</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="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/ANCDT18"/>
<identifier>
<use value="official"/>
<value value="ANC.DT.18"/>
</identifier>
<version value="0.3.0"/>
<name value="ANCDT18"/>
<title value="ANC.DT.18 HIV diagnosis"/>
<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="If the woman tests positive for HIV, provide counselling and referral as needed"/>
<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.4."/>
<display value="Diagnosis and 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/ANCDT18"/>
<action>
<title value="ANC.DT.18 HIV diagnosis"/>
<trigger>
<type value="named-event"/>
<name value="ANC.B10.4. Diagnosis and treatment"/>
</trigger>
<action id="1">
<title value="Refer for further testing"/>
<description value="Refer for further testing"/>
<textEquivalent
value="HIV test inconclusive, refer for further testing.
"In high-prevalence settings, provider-initiated testing and counselling (PITC) for HIV should be considered a routine component of the package of care for pregnant women in all antenatal care settings. In low-prevalence settings, PITC can be considered for pregnant women in antenatal care settings as a key component of the effort to eliminate mother-to-child transmission of HIV, and to integrate HIV testing with syphilis, viral or other key tests, as relevant to the setting, and to strengthen the underlying maternal and child health systems" (2)"/>
<documentation>
<type value="citation"/>
<label
value="WHO ANC recommendations (2016): B.1.7. Human immunodeficiency virus (HIV) and syphilis (3)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value=""HIV test result" = "Inconclusive""/>
<language value="text/cql-identifier"/>
<expression value="Should Refer for further testing"/>
</expression>
</condition>
</action>
<action id="2">
<title value="Conduct HIV positive counselling"/>
<description value="Conduct HIV positive counselling"/>
<textEquivalent
value="– Counsel for HIV positive test
– Refer for further testing and confirmation
– Refer for HIV services
– Advise on opportunistic infections and need to seek medical help
– Proceed with systematic screening for active TB
"In high-prevalence settings, provider-initiated testing and counselling (PITC) for HIV should be considered a routine component of the package of care for pregnant women in all antenatal care settings. In low-prevalence settings, PITC can be considered for pregnant women in antenatal care settings as a key component of the effort to eliminate mother-to-child transmission of HIV, and to integrate HIV testing with syphilis, viral or other key tests, as relevant to the setting, and to strengthen the underlying maternal and child health systems" (2)"/>
<documentation>
<type value="citation"/>
<label
value="WHO ANC recommendations (2016): B.1.7. Human immunodeficiency virus (HIV) and syphilis (3)"/>
</documentation>
<condition>
<kind value="applicability"/>
<expression>
<description
value=""HIV test result" = "HIV positive""/>
<language value="text/cql-identifier"/>
<expression value="Should Conduct HIV positive counselling"/>
</expression>
</condition>
</action>
</action>
</PlanDefinition>