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.07 Percentage of pregnant women with at least one blood pressure measure during ANC

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

Percentage of pregnant women with at least one blood pressure measure during ANC

Knowledge Artifact Metadata
Name (machine-readable) ANCIND07
Title (human-readable) ANC.IND.07 Percentage of pregnant women with at least one blood pressure measure during ANC
Status Draft
Experimental false
Description

Percentage of pregnant women with at least one blood pressure measure during ANC

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
Stratifier ID: by-trimester-category
Measure Logic
Primary Library ANC.IND.07 Percentage of pregnant women with at least one blood pressure measure during ANC
Dependency Description: Library PatientData
Resource: ANC Data Elements
Canonical URL: http://smart.who.int/anc/Library/ANCDataElements
Dependency Description: Library Cx
Resource: ANC Concepts
Canonical URL: http://smart.who.int/anc/Library/ANCConcepts
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 WC
Resource: WHO Common
Canonical URL: http://smart.who.int/anc/Library/WHOCommon
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 Stratifiers
Resource: ANC Stratifiers
Canonical URL: http://smart.who.int/anc/Library/ANCStratifiers
Dependency Description: Library FC
Resource: FHIRCommon
Canonical URL: http://smart.who.int/anc/Library/FHIRCommon
Dependency Description: Library ContactData
Resource: ANC Contact Data Elements
Canonical URL: http://smart.who.int/anc/Library/ANCContactDataElements
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 Systolic blood pressure
Resource: Systolic blood pressure
Canonical URL: http://smart.who.int/anc/ValueSet/anc-b8-de17
Dependency Description: Value set Antenatal care case
Resource: Antenatal care case
Canonical URL: http://smart.who.int/anc/ValueSet/antenatal-care-case
Dependency Description: Value set Diastolic blood pressure
Resource: Diastolic blood pressure
Canonical URL: http://smart.who.int/anc/ValueSet/anc-b8-de19
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 Gestational age
Resource: Gestational age
Canonical URL: http://smart.who.int/anc/ValueSet/anc-b6-de17
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: encounter
Use: In
Min Cardinality: 0
Max Cardinality: 1
Type: string
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
Parameter Name: Trimester Category Stratifier
Use: Out
Min Cardinality: 0
Max Cardinality: 1
Type: string
Measure Logic Data Requirements
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, status, issued
Code Filter(s):
Path: code
ValueSet: Systolic blood pressure
Data Requirement Type: Observation
Profile(s): Observation
Must Support Elements: code, status, issued
Code Filter(s):
Path: code
ValueSet: Diastolic blood pressure
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: Observation
Profile(s): Observation
Must Support Elements: code, status, encounter, encounter.reference
Code Filter(s):
Path: code
ValueSet: Gestational age
Data Requirement Type: EpisodeOfCare
Profile(s): EpisodeOfCare
Must Support Elements: type
Code Filter(s):
Path: type
ValueSet: Antenatal care case
Data Requirement Type: Patient
Profile(s): Patient
Must Support Elements: url, value
Measure Logic Definitions
Logic Definition Library Name: ANCDataElements
/*
  @dataElement: ANC.B8.DE17 Systolic blood pressure
  @activity: ANC.B8. Conduct physical exam
  @description: Systolic blood pressure (SBP) in mmHg
*/
define "Systolic blood pressure":
  [Observation: Cx."Systolic blood pressure"] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
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: ANCBaseDataElements
/*
@description: Most recent antenatal care case
*/
define "Pregnancy":
  First(
    "Antenatal care case" E
		  sort by start of period descending
	)
Logic Definition Library Name: ANCDataElements
/*
  @dataElement: ANC.B8.DE19 Diastolic blood pressure
  @activity: ANC.B8. Conduct physical exam
  @description: Diastolic blood pressure (DBP) in mmHg
*/
define "Diastolic blood pressure":
  [Observation: Cx."Diastolic blood pressure"] O
    where O.status in { 'final', 'amended', 'corrected' }
      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false
Logic Definition Library Name: ANCIND07
/*
Numerator: Number of antenatal clients with blood pressure measured
Numerator Computation: COUNT of all women who had their blood pressure measured at least once during pregnancy
*/
define Numerator:
  exists (
    PatientData."Systolic blood pressure" O
      where O.issued during BaseData."Pregnancy".period
  )
    or exists (
      PatientData."Diastolic blood pressure" O
        where O.issued during BaseData."Pregnancy".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: ANCIND07
/*
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: ANCIND07
/*
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: ANCIND07
/*
Disaggregation: Education Level (none, don't know, primary, secondary, higher)
*/
define "Education Level Stratifier":
  Stratifiers."By Education Level"
Logic Definition Library Name: ANCIND07
/*
Initial population: Antenatal clients
*/
define "Initial Population":
  exists (BaseData."Antenatal care case")
Logic Definition Library Name: ANCContactDataElements
/*
  @dataElement: ANC.B6.DE17 Gestational age
  @activity: ANC.B6 Profile
  @description: Gestational age in weeks and/or days depending on the source of gestational age
*/
define "Gestational age":
  WC.MostRecent(
  [Observation: Cx."Gestational age"] 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
Logic Definition Library Name: ANCStratifiers
/*
By Trimester Category: 1st (GA ≤ 12 weeks); 2nd (GA > 12 weeks to ≤ 28 weeks); 3rd (GA > 28 weeks)
*/
define "By Trimester Category":
  case
    when ContactData."Gestational age" <= 12 weeks then 'GA ≤ 12 weeks'
    when ContactData."Gestational age" <= 28 weeks then 'GA > 12 weeks to ≤ 28 weeks'
    else 'GA > 28 weeks'
  end
Logic Definition Library Name: ANCIND07
/*
Disaggregation: Trimester categories: 1st (GA ≤ 12 weeks); 2nd (GA > 12 weeks to ≤ 28 weeks); 3rd (GA > 28 weeks)
*/
define "Trimester Category Stratifier":
  Stratifiers."By Trimester Category"
Logic Definition Library Name: FHIRHelpers
define function ToString(value ObservationStatus): value.value
Logic Definition Library Name: FHIRHelpers
define function ToBoolean(value boolean): 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
Logic Definition Library Name: FHIRHelpers
define function ToDateTime(value instant): 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 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 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
Logic Definition Library Name: FHIRHelpers
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
Logic Definition Library Name: WHOCommon
define function MostRecent(observations List<Observation>):
  Last(
    observations O
      sort by issued
  )
Logic Definition Library Name: FHIRHelpers
define function ToString(value string): value.value
Generated using version 0.4.6 of the sample-content-ig Liquid templates