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

Measure: ANC.IND.02 Percentage of pregnant women who received iron and folic acid (IFA) supplements for 90+ days

Official URL: http://smart.who.int/anc/Measure/ANCIND02 Version: 0.3.0
Draft as of 2025-06-24 Computable Name: ANCIND02

Percentage of pregnant women who received iron and folic acid (IFA) supplements for 90+ days

Knowledge Artifact Metadata
Name (machine-readable) ANCIND02
Title (human-readable) ANC.IND.02 Percentage of pregnant women who received iron and folic acid (IFA) supplements for 90+ days
Status Draft
Experimental false
Description

Percentage of pregnant women who received iron and folic acid (IFA) supplements for 90+ days

Measure Steward World Health Organization (WHO)
Steward Contact Details https://www.who.int
Measure Metadata
Version Number 0.3.0
Measure Scoring Proportion
Measure Type Process
Improvement Notation Increased score indicates improvement
Measure Population Criteria (ID: group-1)
Initial Population ID: initial-population
Description: No description provided Logic Definition: Initial Population
Denominator ID: denominator
Description: No description provided Logic Definition: Denominator
Numerator ID: numerator
Description: No description provided Logic Definition: Numerator
Stratifier ID: by-age
Stratifier ID: by-education-level
Measure Logic
Primary Library ANC.IND.02 Percentage of pregnant women who received iron and folic acid (IFA) supplements for 90+ days
Dependency Description: Library BaseData
Resource: ANC Base Data Elements
Canonical URL: http://smart.who.int/anc/Library/ANCBaseDataElements
Dependency Description: Library BCx
Resource: ANC Base Concepts
Canonical URL: http://smart.who.int/anc/Library/ANCBaseConcepts
Dependency Description: Library PatientData
Resource: ANC Data Elements
Canonical URL: http://smart.who.int/anc/Library/ANCDataElements
Dependency Description: Library FHIRHelpers
Resource: http://smart.who.int/anc/Library/FHIRHelpers|4.0.1
Canonical URL: http://smart.who.int/anc/Library/FHIRHelpers|4.0.1
Dependency Description: Library Stratifiers
Resource: ANC Stratifiers
Canonical URL: http://smart.who.int/anc/Library/ANCStratifiers
Dependency Description: Library Cx
Resource: ANC Concepts
Canonical URL: http://smart.who.int/anc/Library/ANCConcepts
Dependency Description: Library WC
Resource: WHO Common
Canonical URL: http://smart.who.int/anc/Library/WHOCommon
Dependency Description: Library FC
Resource: FHIRCommon
Canonical URL: http://smart.who.int/anc/Library/FHIRCommon
Dependency Description: Code system ISO-8601-Derived Periods
Resource: http://ohie.org/CodeSystem/iso-8601-derived-periods
Canonical URL: http://ohie.org/CodeSystem/iso-8601-derived-periods
Dependency Description: Value set Antenatal care contact
Resource: Antenatal care contact
Canonical URL: http://smart.who.int/anc/ValueSet/antenatal-care-contact
Dependency Description: Value set Iron supplement
Resource: Iron Supplement
Canonical URL: http://smart.who.int/anc/ValueSet/iron-supplement
Dependency Description: Value set Folic acid supplement
Resource: Folic Aicd Supplement
Canonical URL: http://smart.who.int/anc/ValueSet/folic-acid-supplement
Dependency Description: Value set Reason for closing ANC record
Resource: Reason for closing ANC record
Canonical URL: http://smart.who.int/anc/ValueSet/anc-end-1
Dependency Description: Value set Qualifying Reason for closing ANC record Choices
Resource: Qualifying Reason for closing ANC record Choices
Canonical URL: http://smart.who.int/anc/ValueSet/qualifying-reason-for-closing-anc-record-choices
Dependency Description: Value set Antenatal care case
Resource: Antenatal care case
Canonical URL: http://smart.who.int/anc/ValueSet/antenatal-care-case
Direct Reference Code Display: 10-14 years
Code: P10Y--P14Y
System: http://ohie.org/CodeSystem/iso-8601-derived-periods
Direct Reference Code Display: 15-19 years
Code: P15Y--P19Y
System: http://ohie.org/CodeSystem/iso-8601-derived-periods
Direct Reference Code Display: 20+ years
Code: P20Y--P9999Y
System: http://ohie.org/CodeSystem/iso-8601-derived-periods
Parameter Name: Measurement Period
Use: In
Min Cardinality: 0
Max Cardinality: 1
Type: Period
Parameter Name: Numerator
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Age Stratifier
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: Coding
Parameter Name: Denominator
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Parameter Name: Education Level Stratifier
Use: Out
Min Cardinality: 0
Max Cardinality: *
Type: CodeableConcept
Parameter Name: Initial Population
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: boolean
Measure Logic Data Requirements
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, period
Code Filter(s):
Path: type
ValueSet: Antenatal care contact
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest
Must Support Elements: medication, status, doNotPerform, dosageInstruction, dosageInstruction.timing, dosageInstruction.timing.repeat, dosageInstruction.timing.repeat.bounds
Code Filter(s):
Path: medication
ValueSet: Iron Supplement
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest
Must Support Elements: medication, status, doNotPerform, dosageInstruction, dosageInstruction.timing, dosageInstruction.timing.repeat, dosageInstruction.timing.repeat.bounds
Code Filter(s):
Path: medication
ValueSet: Folic Aicd Supplement
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest
Must Support Elements: medication.reference, status, doNotPerform, dosageInstruction, dosageInstruction.timing, dosageInstruction.timing.repeat, dosageInstruction.timing.repeat.bounds
Data Requirement Type: Medication
Profile(s): Medication
Must Support Elements: id, code
Data Requirement Type: Patient
Profile(s): Patient
Must Support Elements: url, value
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, status, effective, value
Code Filter(s):
Path: code
ValueSet: Reason for closing ANC record
Data Requirement Type: EpisodeOfCare
Profile(s): EpisodeOfCare
Must Support Elements: type
Code Filter(s):
Path: type
ValueSet: Antenatal care case
Measure Logic Definitions
Logic Definition Library Name: ANCBaseDataElements
define "Antenatal care contact":
  ["Encounter": type in BCx."Antenatal care contact"]
Logic Definition Library Name: ANCDataElements
/*
  @dataElement: ANC.B10.DE91 Amount of iron prescribed
  @activity: ANC.B10.5 Nutrition supplementation
  @description: Amount of iron supplements prescribed in milligrams for intake
*/
define "Amount of iron prescribed":
  [MedicationRequest: BCx."Iron supplement"] MR
    where MR.status in { 'draft', 'active', 'on-hold', 'completed' }
      and Coalesce(MR.doNotPerform, false) is false
Logic Definition Library Name: ANCDataElements
/*
  @dataElement: ANC.B10.DE95 Amount of daily dose of folic acid prescribed
  @activity: ANC.B10.5 Nutrition supplementation
  @description: Amount of folic acid supplements prescribed in milligrams for daily intake
*/
define "Amount of daily dose of folic acid prescribed":
  [MedicationRequest: BCx."Folic acid supplement"] MR
    where MR.status in { 'draft', 'active', 'on-hold', 'completed' }
      and Coalesce(MR.doNotPerform, false) is false
Logic Definition Library Name: ANCIND02
/*
Numerator: Number of pregnant women who received the recommended number of IFA tablets during all previous contacts
Numerator Computation: COUNT of number of women who were prescribed IFA tablets at each ANC contact they have had
*/
define Numerator:
  not exists (
    BaseData."Antenatal care contact" C
      without PatientData."Amount of iron prescribed" I
        such that (singleton from I.dosageInstruction).timing.repeat.bounds overlaps C.period
      without PatientData."Amount of daily dose of folic acid prescribed" FA
          such that (singleton from FA.dosageInstruction).timing.repeat.bounds overlaps C.period
  )
Logic Definition Library Name: ANCStratifiers
/*
By Patient Age as of the start of the Measurement Period
Age (10-14, 15-19, 20+)
*/
define "By Age":
  case
    when AgeInYearsAt(start of "Measurement Period") in Interval[10, 14] then "P10Y--P14Y"
    when AgeInYearsAt(start of "Measurement Period") in Interval[15, 19] then "P15Y--P19Y"
    when AgeInYearsAt(start of "Measurement Period") >= 20 then "P20Y--P9999Y"
    else null
  end
Logic Definition Library Name: ANCIND02
/*
Disaggregation: Age (10–14, 15–19, 20+)
*/
define "Age Stratifier":
  Stratifiers."By Age"
Logic Definition Library Name: ANCDataElements
/*
  @dataElement: ANC.End.1 Reason for closing ANC record
  @activity: ANC.End End
  @description: Select the reason why you are closing the woman's ANC record
*/
define "Reason for closing ANC record":
  [Observation: Cx."Reason for closing ANC record"] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
Logic Definition Library Name: ANCIND02
/*
Denominator: Total number of antenatal clients with a first contact
Denominator Computation: COUNT of all women whose records were closed (ANC
  close form) in the last reporting period due to any of the reasons below:
    » live birth
    » stillbirth
    » miscarriage
    » abortion
    » woman died
    » lost to follow-up
    » moved away
*/
define Denominator:
  exists (
    PatientData."Reason for closing ANC record" R
      where FC.ToInterval(R.effective) during "Measurement Period"
        and R.value as FHIR.CodeableConcept in Stratifiers."Qualifying Reason for closing ANC record Choices"
  )
Logic Definition Library Name: ANCStratifiers
/*
By Patient Education Level (none, don't know, primary, secondary, higher)
*/
define "By Education Level":
  Patient.extension E
    where E.url = 'http://smart.who.int/anc/StructureDefinition/educationlevel'
    return E.value as CodeableConcept
Logic Definition Library Name: ANCIND02
/*
Disaggregation: Education level (none, don’t know, primary, secondary, higher)
*/
define "Education Level Stratifier":
  Stratifiers."By Education Level"
Logic Definition Library Name: ANCBaseDataElements
/*
define "Pregnant":
  "Pregnancy" is not null
    or "Pregnancy status" in BCx."Pregnancy status - pregnant"

define "Pregnancy status":
  FHIRHelpers.ToConcept(
    Last(
      [Observation: BCx."Pregnancy status"] O
        where O.status = 'final'
        sort by FHIRHelpers.ToDateTime(effective as FHIR.dateTime)
    ).value
  )
*/

define "Antenatal care case":
  ["EpisodeOfCare": type in BCx."Antenatal care case"]
Logic Definition Library Name: ANCIND02
/*
Initial population: Antenatal clients
*/
define "Initial Population":
  exists (BaseData."Antenatal care case")
Logic Definition Library Name: FHIRHelpers
define function ToString(value string): value.value
Logic Definition Library Name: FHIRHelpers
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
        }
Logic Definition Library Name: FHIRHelpers
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
        }
Logic Definition Library Name: FHIRHelpers
define function ToString(value MedicationRequestStatus): value.value
Logic Definition Library Name: FHIRHelpers
define function ToBoolean(value boolean): value.value
Logic Definition Library Name: FHIRHelpers
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period."start" is null then
            Interval(period."start".value, period."end".value]
        else
            Interval[period."start".value, period."end".value]
Logic Definition Library Name: FHIRHelpers
define function ToString(value ObservationStatus): value.value
Logic Definition Library Name: WHOCommon
/*
@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)
Logic Definition Library Name: WHOCommon
/*
@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
Logic Definition Library Name: FHIRHelpers
define function ToString(value uri): value.value
Generated using version 0.4.6 of the sample-content-ig Liquid templates