FHIR © HL7.org  |  Server Home  |  XIG Home  |  Server Source  |  FHIR  

FHIR IG Statistics: Measure/ANCIND07

Packagesmart.who.int.anc
TypeMeasure
IdANCIND07
FHIR VersionR4
Sourcehttp://smart.who.int/anc/https://build.fhir.org/ig/WorldHealthOrganization/smart-anc/Measure-ANCIND07.html
URLhttp://smart.who.int/anc/Measure/ANCIND07
Version0.3.0
Statusdraft
Date2025-06-24T13:58:48-06:00
NameANCIND07
TitleANC.IND.07 Percentage of pregnant women with at least one blood pressure measure during ANC
Realmuv
Authoritywho
DescriptionPercentage of pregnant women with at least one blood pressure measure during ANC

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

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

Source

{
  "resourceType": "Measure",
  "id": "ANCIND07",
  "meta": {
    "profile": [
      "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/computable-measure-cqfm"
    ]
  },
  "text": {
    "status": "extensions",
    "div": "<!-- snip (see above) -->"
  },
  "contained": [
    {
      "resourceType": "Library",
      "id": "effective-data-requirements",
      "extension": [
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://ohie.org/CodeSystem/iso-8601-derived-periods",
            "code": "P10Y--P14Y",
            "display": "10-14 years"
          }
        },
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://ohie.org/CodeSystem/iso-8601-derived-periods",
            "code": "P15Y--P19Y",
            "display": "15-19 years"
          }
        },
        {
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-directReferenceCode",
          "valueCoding": {
            "system": "http://ohie.org/CodeSystem/iso-8601-derived-periods",
            "code": "P20Y--P9999Y",
            "display": "20+ years"
          }
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCDataElements"
            },
            {
              "url": "name",
              "valueString": "Systolic blood pressure"
            },
            {
              "url": "statement",
              "valueString": "/*\n  @dataElement: ANC.B8.DE17 Systolic blood pressure\n  @activity: ANC.B8. Conduct physical exam\n  @description: Systolic blood pressure (SBP) in mmHg\n*/\ndefine \"Systolic blood pressure\":\n  [Observation: Cx.\"Systolic blood pressure\"] O\n    where O.status in { 'final', 'amended', 'corrected' }\n      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false"
            },
            {
              "url": "displaySequence",
              "valueInteger": 0
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCBaseDataElements"
            },
            {
              "url": "name",
              "valueString": "Antenatal care case"
            },
            {
              "url": "statement",
              "valueString": "/*\ndefine \"Pregnant\":\n  \"Pregnancy\" is not null\n    or \"Pregnancy status\" in BCx.\"Pregnancy status - pregnant\"\n\ndefine \"Pregnancy status\":\n  FHIRHelpers.ToConcept(\n    Last(\n      [Observation: BCx.\"Pregnancy status\"] O\n        where O.status = 'final'\n        sort by FHIRHelpers.ToDateTime(effective as FHIR.dateTime)\n    ).value\n  )\n*/\n\ndefine \"Antenatal care case\":\n  [\"EpisodeOfCare\": type in BCx.\"Antenatal care case\"]"
            },
            {
              "url": "displaySequence",
              "valueInteger": 1
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCBaseDataElements"
            },
            {
              "url": "name",
              "valueString": "Pregnancy"
            },
            {
              "url": "statement",
              "valueString": "/*\n@description: Most recent antenatal care case\n*/\ndefine \"Pregnancy\":\n  First(\n    \"Antenatal care case\" E\n\t\t  sort by start of period descending\n\t)"
            },
            {
              "url": "displaySequence",
              "valueInteger": 2
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCDataElements"
            },
            {
              "url": "name",
              "valueString": "Diastolic blood pressure"
            },
            {
              "url": "statement",
              "valueString": "/*\n  @dataElement: ANC.B8.DE19 Diastolic blood pressure\n  @activity: ANC.B8. Conduct physical exam\n  @description: Diastolic blood pressure (DBP) in mmHg\n*/\ndefine \"Diastolic blood pressure\":\n  [Observation: Cx.\"Diastolic blood pressure\"] O\n    where O.status in { 'final', 'amended', 'corrected' }\n      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false"
            },
            {
              "url": "displaySequence",
              "valueInteger": 3
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND07"
            },
            {
              "url": "name",
              "valueString": "Numerator"
            },
            {
              "url": "statement",
              "valueString": "/*\nNumerator: Number of antenatal clients with blood pressure measured\nNumerator Computation: COUNT of all women who had their blood pressure measured at least once during pregnancy\n*/\ndefine Numerator:\n  exists (\n    PatientData.\"Systolic blood pressure\" O\n      where O.issued during BaseData.\"Pregnancy\".period\n  )\n    or exists (\n      PatientData.\"Diastolic blood pressure\" O\n        where O.issued during BaseData.\"Pregnancy\".period\n    )"
            },
            {
              "url": "displaySequence",
              "valueInteger": 4
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCStratifiers"
            },
            {
              "url": "name",
              "valueString": "By Age"
            },
            {
              "url": "statement",
              "valueString": "/*\nBy Patient Age as of the start of the Measurement Period\nAge (10-14, 15-19, 20+)\n*/\ndefine \"By Age\":\n  case\n    when AgeInYearsAt(start of \"Measurement Period\") in Interval[10, 14] then \"P10Y--P14Y\"\n    when AgeInYearsAt(start of \"Measurement Period\") in Interval[15, 19] then \"P15Y--P19Y\"\n    when AgeInYearsAt(start of \"Measurement Period\") >= 20 then \"P20Y--P9999Y\"\n    else null\n  end"
            },
            {
              "url": "displaySequence",
              "valueInteger": 5
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND07"
            },
            {
              "url": "name",
              "valueString": "Age Stratifier"
            },
            {
              "url": "statement",
              "valueString": "/*\nDisaggregation: Age (10-14, 15-19, 20+)\n*/\ndefine \"Age Stratifier\":\n  Stratifiers.\"By Age\""
            },
            {
              "url": "displaySequence",
              "valueInteger": 6
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCDataElements"
            },
            {
              "url": "name",
              "valueString": "Reason for closing ANC record"
            },
            {
              "url": "statement",
              "valueString": "/*\n  @dataElement: ANC.End.1 Reason for closing ANC record\n  @activity: ANC.End End\n  @description: Select the reason why you are closing the woman's ANC record\n*/\ndefine \"Reason for closing ANC record\":\n  [Observation: Cx.\"Reason for closing ANC record\"] O\n    where O.status in { 'final', 'amended', 'corrected' }\n      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false"
            },
            {
              "url": "displaySequence",
              "valueInteger": 7
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND07"
            },
            {
              "url": "name",
              "valueString": "Denominator"
            },
            {
              "url": "statement",
              "valueString": "/*\nDenominator: Total number of antenatal clients with a first contact\nDenominator Computation: COUNT of all women whose records were closed (ANC close form) in the last reporting period due to any of the reasons below:\n*live birth\n*stillbirth\n*miscarriage\n*abortion\n*woman died\n*lost to follow-up\n*moved away\n*/\ndefine Denominator:\n  exists (\n    PatientData.\"Reason for closing ANC record\" R\n      where FC.ToInterval(R.effective) during \"Measurement Period\"\n        and R.value as FHIR.CodeableConcept in Stratifiers.\"Qualifying Reason for closing ANC record Choices\"\n  )"
            },
            {
              "url": "displaySequence",
              "valueInteger": 8
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCStratifiers"
            },
            {
              "url": "name",
              "valueString": "By Education Level"
            },
            {
              "url": "statement",
              "valueString": "/*\nBy Patient Education Level (none, don't know, primary, secondary, higher)\n*/\ndefine \"By Education Level\":\n  Patient.extension E\n    where E.url = 'http://smart.who.int/anc/StructureDefinition/educationlevel'\n    return E.value as CodeableConcept"
            },
            {
              "url": "displaySequence",
              "valueInteger": 9
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND07"
            },
            {
              "url": "name",
              "valueString": "Education Level Stratifier"
            },
            {
              "url": "statement",
              "valueString": "/*\nDisaggregation: Education Level (none, don't know, primary, secondary, higher)\n*/\ndefine \"Education Level Stratifier\":\n  Stratifiers.\"By Education Level\""
            },
            {
              "url": "displaySequence",
              "valueInteger": 10
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND07"
            },
            {
              "url": "name",
              "valueString": "Initial Population"
            },
            {
              "url": "statement",
              "valueString": "/*\nInitial population: Antenatal clients\n*/\ndefine \"Initial Population\":\n  exists (BaseData.\"Antenatal care case\")"
            },
            {
              "url": "displaySequence",
              "valueInteger": 11
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCContactDataElements"
            },
            {
              "url": "name",
              "valueString": "Gestational age"
            },
            {
              "url": "statement",
              "valueString": "/*\n  @dataElement: ANC.B6.DE17 Gestational age\n  @activity: ANC.B6 Profile\n  @description: Gestational age in weeks and/or days depending on the source of gestational age\n*/\ndefine \"Gestational age\":\n  WC.MostRecent(\n  [Observation: Cx.\"Gestational age\"] O\n    where O.status in { 'final', 'amended', 'corrected' }\n      and Coalesce(WC.ModifierExtension(O, 'who-notDone').value, false) is false\n      and Last(Split(O.encounter.reference, '/')) = Last(Split(encounter, '/'))\n  ).value as FHIR.Quantity"
            },
            {
              "url": "displaySequence",
              "valueInteger": 12
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCStratifiers"
            },
            {
              "url": "name",
              "valueString": "By Trimester Category"
            },
            {
              "url": "statement",
              "valueString": "/*\nBy Trimester Category: 1st (GA ≤ 12 weeks); 2nd (GA > 12 weeks to ≤ 28 weeks); 3rd (GA > 28 weeks)\n*/\ndefine \"By Trimester Category\":\n  case\n    when ContactData.\"Gestational age\" <= 12 weeks then 'GA ≤ 12 weeks'\n    when ContactData.\"Gestational age\" <= 28 weeks then 'GA > 12 weeks to ≤ 28 weeks'\n    else 'GA > 28 weeks'\n  end"
            },
            {
              "url": "displaySequence",
              "valueInteger": 13
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND07"
            },
            {
              "url": "name",
              "valueString": "Trimester Category Stratifier"
            },
            {
              "url": "statement",
              "valueString": "/*\nDisaggregation: Trimester categories: 1st (GA ≤ 12 weeks); 2nd (GA > 12 weeks to ≤ 28 weeks); 3rd (GA > 28 weeks)\n*/\ndefine \"Trimester Category Stratifier\":\n  Stratifiers.\"By Trimester Category\""
            },
            {
              "url": "displaySequence",
              "valueInteger": 14
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToString"
            },
            {
              "url": "statement",
              "valueString": "define function ToString(value ObservationStatus): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 15
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToBoolean"
            },
            {
              "url": "statement",
              "valueString": "define function ToBoolean(value boolean): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 16
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "WHOCommon"
            },
            {
              "url": "name",
              "valueString": "ModifierExtension"
            },
            {
              "url": "statement",
              "valueString": "/*\n@description: Returns the single WHO core modifier extension (if present) on the given resource with the specified id.\n@comment: This function uses singleton from to ensure that a run-time exception is thrown if there\nis more than one extension on the given resource with the specified url.\n*/\ndefine function ModifierExtension(domainResource DomainResource, id String):\n  singleton from ModifierExtensions(domainResource, id)"
            },
            {
              "url": "displaySequence",
              "valueInteger": 17
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "WHOCommon"
            },
            {
              "url": "name",
              "valueString": "ModifierExtensions"
            },
            {
              "url": "statement",
              "valueString": "/*\n@description: Returns any WHO core modifier extensions defined on the given resource with the specified id.\n@comment: NOTE: Extensions are not the preferred approach, but are used as a way to access\ncontent that is defined by extensions but not yet surfaced in the\nCQL model info.\n*/\ndefine function ModifierExtensions(domainResource DomainResource, id String):\n  domainResource.modifierExtension E\n\t  where E.url = ('http://fhir.org/guides/who/core/StructureDefinition/' + id)\n\t\treturn E"
            },
            {
              "url": "displaySequence",
              "valueInteger": 18
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToString"
            },
            {
              "url": "statement",
              "valueString": "define function ToString(value uri): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 19
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToDateTime"
            },
            {
              "url": "statement",
              "valueString": "define function ToDateTime(value instant): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 20
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToInterval"
            },
            {
              "url": "statement",
              "valueString": "define function ToInterval(period FHIR.Period):\n    if period is null then\n        null\n    else\n        if period.\"start\" is null then\n            Interval(period.\"start\".value, period.\"end\".value]\n        else\n            Interval[period.\"start\".value, period.\"end\".value]"
            },
            {
              "url": "displaySequence",
              "valueInteger": 21
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToConcept"
            },
            {
              "url": "statement",
              "valueString": "define function ToConcept(concept FHIR.CodeableConcept):\n    if concept is null then\n        null\n    else\n        System.Concept {\n            codes: concept.coding C return ToCode(C),\n            display: concept.text.value\n        }"
            },
            {
              "url": "displaySequence",
              "valueInteger": 22
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToCode"
            },
            {
              "url": "statement",
              "valueString": "define function ToCode(coding FHIR.Coding):\n    if coding is null then\n        null\n    else\n        System.Code {\n          code: coding.code.value,\n          system: coding.system.value,\n          version: coding.version.value,\n          display: coding.display.value\n        }"
            },
            {
              "url": "displaySequence",
              "valueInteger": 23
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToQuantity"
            },
            {
              "url": "statement",
              "valueString": "define function ToQuantity(quantity FHIR.Quantity):\n    case\n        when quantity is null then null\n        when quantity.value is null then null\n        when quantity.comparator is not null then\n            Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')\n        when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'\n              or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then\n            System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }\n        else\n            Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')')\n    end"
            },
            {
              "url": "displaySequence",
              "valueInteger": 24
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToCalendarUnit"
            },
            {
              "url": "statement",
              "valueString": "define function ToCalendarUnit(unit System.String):\n    case unit\n        when 'ms' then 'millisecond'\n        when 's' then 'second'\n        when 'min' then 'minute'\n        when 'h' then 'hour'\n        when 'd' then 'day'\n        when 'wk' then 'week'\n        when 'mo' then 'month'\n        when 'a' then 'year'\n        else unit\n    end"
            },
            {
              "url": "displaySequence",
              "valueInteger": 25
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "WHOCommon"
            },
            {
              "url": "name",
              "valueString": "MostRecent"
            },
            {
              "url": "statement",
              "valueString": "define function MostRecent(observations List<Observation>):\n  Last(\n    observations O\n      sort by issued\n  )"
            },
            {
              "url": "displaySequence",
              "valueInteger": 26
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "FHIRHelpers"
            },
            {
              "url": "name",
              "valueString": "ToString"
            },
            {
              "url": "statement",
              "valueString": "define function ToString(value string): value.value"
            },
            {
              "url": "displaySequence",
              "valueInteger": 27
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        }
      ],
      "name": "EffectiveDataRequirements",
      "status": "active",
      "type": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/library-type",
            "code": "module-definition"
          }
        ]
      },
      "relatedArtifact": [
        {
          "type": "depends-on",
          "display": "Library PatientData",
          "resource": "http://smart.who.int/anc/Library/ANCDataElements"
        },
        {
          "type": "depends-on",
          "display": "Library Cx",
          "resource": "http://smart.who.int/anc/Library/ANCConcepts"
        },
        {
          "type": "depends-on",
          "display": "Library FHIRHelpers",
          "resource": "http://smart.who.int/anc/Library/FHIRHelpers|4.0.1"
        },
        {
          "type": "depends-on",
          "display": "Library WC",
          "resource": "http://smart.who.int/anc/Library/WHOCommon"
        },
        {
          "type": "depends-on",
          "display": "Library BaseData",
          "resource": "http://smart.who.int/anc/Library/ANCBaseDataElements"
        },
        {
          "type": "depends-on",
          "display": "Library BCx",
          "resource": "http://smart.who.int/anc/Library/ANCBaseConcepts"
        },
        {
          "type": "depends-on",
          "display": "Library Stratifiers",
          "resource": "http://smart.who.int/anc/Library/ANCStratifiers"
        },
        {
          "type": "depends-on",
          "display": "Library FC",
          "resource": "http://smart.who.int/anc/Library/FHIRCommon"
        },
        {
          "type": "depends-on",
          "display": "Library ContactData",
          "resource": "http://smart.who.int/anc/Library/ANCContactDataElements"
        },
        {
          "type": "depends-on",
          "display": "Code system ISO-8601-Derived Periods",
          "resource": "http://ohie.org/CodeSystem/iso-8601-derived-periods"
        },
        {
          "type": "depends-on",
          "display": "Value set Systolic blood pressure",
          "resource": "http://smart.who.int/anc/ValueSet/anc-b8-de17"
        },
        {
          "type": "depends-on",
          "display": "Value set Antenatal care case",
          "resource": "http://smart.who.int/anc/ValueSet/antenatal-care-case"
        },
        {
          "type": "depends-on",
          "display": "Value set Diastolic blood pressure",
          "resource": "http://smart.who.int/anc/ValueSet/anc-b8-de19"
        },
        {
          "type": "depends-on",
          "display": "Value set Reason for closing ANC record",
          "resource": "http://smart.who.int/anc/ValueSet/anc-end-1"
        },
        {
          "type": "depends-on",
          "display": "Value set Qualifying Reason for closing ANC record Choices",
          "resource": "http://smart.who.int/anc/ValueSet/qualifying-reason-for-closing-anc-record-choices"
        },
        {
          "type": "depends-on",
          "display": "Value set Gestational age",
          "resource": "http://smart.who.int/anc/ValueSet/anc-b6-de17"
        }
      ],
      "parameter": [
        {
          "name": "Measurement Period",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "Period"
        },
        {
          "name": "encounter",
          "use": "in",
          "min": 0,
          "max": "1",
          "type": "string"
        },
        {
          "name": "Numerator",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "boolean"
        },
        {
          "name": "Age Stratifier",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "Coding"
        },
        {
          "name": "Denominator",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "boolean"
        },
        {
          "name": "Education Level Stratifier",
          "use": "out",
          "min": 0,
          "max": "*",
          "type": "CodeableConcept"
        },
        {
          "name": "Initial Population",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "boolean"
        },
        {
          "name": "Trimester Category Stratifier",
          "use": "out",
          "min": 0,
          "max": "1",
          "type": "string"
        }
      ],
      "dataRequirement": [
        {
          "type": "Observation",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Observation"
          ],
          "mustSupport": [
            "code",
            "status",
            "issued"
          ],
          "codeFilter": [
            {
              "path": "code",
              "valueSet": "http://smart.who.int/anc/ValueSet/anc-b8-de17"
            }
          ]
        },
        {
          "type": "Observation",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Observation"
          ],
          "mustSupport": [
            "code",
            "status",
            "issued"
          ],
          "codeFilter": [
            {
              "path": "code",
              "valueSet": "http://smart.who.int/anc/ValueSet/anc-b8-de19"
            }
          ]
        },
        {
          "type": "Observation",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Observation"
          ],
          "mustSupport": [
            "code",
            "status",
            "effective",
            "value"
          ],
          "codeFilter": [
            {
              "path": "code",
              "valueSet": "http://smart.who.int/anc/ValueSet/anc-end-1"
            }
          ]
        },
        {
          "type": "Observation",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Observation"
          ],
          "mustSupport": [
            "code",
            "status",
            "encounter",
            "encounter.reference"
          ],
          "codeFilter": [
            {
              "path": "code",
              "valueSet": "http://smart.who.int/anc/ValueSet/anc-b6-de17"
            }
          ]
        },
        {
          "type": "EpisodeOfCare",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare"
          ],
          "mustSupport": [
            "type"
          ],
          "codeFilter": [
            {
              "path": "type",
              "valueSet": "http://smart.who.int/anc/ValueSet/antenatal-care-case"
            }
          ]
        },
        {
          "type": "Patient",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Patient"
          ],
          "mustSupport": [
            "url",
            "value"
          ]
        }
      ]
    }
  ],
  "extension": [
    {
      "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem",
      "valueReference": {
        "reference": "Device/cqf-tooling"
      }
    },
    {
      "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem",
      "valueReference": {
        "reference": "Device/cqf-tooling"
      }
    },
    {
      "id": "effective-data-requirements",
      "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-effectiveDataRequirements",
      "valueReference": {
        "reference": "#effective-data-requirements"
      }
    }
  ],
  "url": "http://smart.who.int/anc/Measure/ANCIND07",
  "version": "0.3.0",
  "name": "ANCIND07",
  "title": "ANC.IND.07 Percentage of pregnant women with at least one blood pressure measure during ANC",
  "status": "draft",
  "experimental": false,
  "date": "2025-06-24T13:58:48-06:00",
  "publisher": "World Health Organization (WHO)",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "https://www.who.int"
        }
      ]
    }
  ],
  "description": "Percentage of pregnant women with at least one blood pressure measure during ANC",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001"
        }
      ]
    }
  ],
  "library": [
    "http://smart.who.int/anc/Library/ANCIND07"
  ],
  "scoring": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/measure-scoring",
        "code": "proportion"
      }
    ]
  },
  "type": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/measure-type",
          "code": "process"
        }
      ]
    }
  ],
  "improvementNotation": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/measure-improvement-notation",
        "code": "increase"
      }
    ]
  },
  "group": [
    {
      "id": "group-1",
      "population": [
        {
          "id": "initial-population",
          "code": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                "code": "initial-population"
              }
            ]
          },
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Initial Population"
          }
        },
        {
          "id": "denominator",
          "code": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                "code": "denominator"
              }
            ]
          },
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Denominator"
          }
        },
        {
          "id": "numerator",
          "code": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                "code": "numerator"
              }
            ]
          },
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Numerator"
          }
        }
      ],
      "stratifier": [
        {
          "id": "by-age",
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Age Stratifier"
          }
        },
        {
          "id": "by-education-level",
          "criteria": {
            "expression": "Education Level Stratifier"
          }
        },
        {
          "id": "by-trimester-category",
          "criteria": {
            "language": "text/cql-identifier",
            "expression": "Trimester Category Stratifier"
          }
        }
      ]
    }
  ]
}