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

FHIR IG Statistics: Measure/ANCIND01

Packagesmart.who.int.anc
TypeMeasure
IdANCIND01
FHIR VersionR4
Sourcehttp://smart.who.int/anc/https://build.fhir.org/ig/WorldHealthOrganization/smart-anc/Measure-ANCIND01.html
URLhttp://smart.who.int/anc/Measure/ANCIND01
Version0.3.0
Statusdraft
Date2025-06-24T13:58:48-06:00
NameANCIND01
TitleANC.IND.01 Percentage of pregnant women with first ANC contact in the first trimester
Realmuv
Authoritywho
DescriptionPercentage of pregnant women with first ANC contact in the first trimester (before 12 weeks of gestation)

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) ANCIND01
Title (human-readable) ANC.IND.01 Percentage of pregnant women with first ANC contact in the first trimester
Status Draft
Experimental false
Description

Percentage of pregnant women with first ANC contact in the first trimester (before 12 weeks of gestation)

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.01 Percentage of pregnant women with first ANC contact in the first trimester
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 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 Cx
Resource: ANC Concepts
Canonical URL: http://smart.who.int/anc/Library/ANCConcepts
Dependency Description: Library ContactData
Resource: ANC Contact Data Elements
Canonical URL: http://smart.who.int/anc/Library/ANCContactDataElements
Dependency Description: Library WC
Resource: WHO Common
Canonical URL: http://smart.who.int/anc/Library/WHOCommon
Dependency Description: Library Stratifiers
Resource: ANC Stratifiers
Canonical URL: http://smart.who.int/anc/Library/ANCStratifiers
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 First Antenatal Care Contact Choices
Resource: First Antenatal Care Contact Choices
Canonical URL: http://smart.who.int/anc/ValueSet/anc-b5-de2
Dependency Description: Value set Gestational age
Resource: Gestational age
Canonical URL: http://smart.who.int/anc/ValueSet/anc-b6-de17
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: 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
Measure Logic Data Requirements
Data Requirement Type: Encounter
Profile(s): Encounter
Must Support Elements: type, reasonCode, period
Code Filter(s):
Path: type
ValueSet: Antenatal care contact
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: Patient
Profile(s): Patient
Must Support Elements: url, value
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: ANCIND01
define "First antenatal care contact":
  BaseData."Antenatal care contact" C
    where C.reasonCode in Cx."First Antenatal Care Contact Choices"
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: ANCIND01
/*
Numerator: Number of pregnant women who had their first ANC contact before 12 weeks (facility level)
Numerator Computation: Count of women whose gestational age <= 12 weeks at the time of first contact
*/
define Numerator:
  exists (
    "First antenatal care contact" C
      where C.period starts during "Measurement Period"
        and ContactData."Gestational age" <= 12 weeks
  )
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: ANCIND01
/*
Disaggregation: Age (10-14, 15-19, 20+)
*/
define "Age Stratifier":
  Stratifiers."By Age"
Logic Definition Library Name: ANCIND01
/*
Denominator: Total number of antenatal clients with a first contact
Denominator Computation: Count of all women who had first contact within the last reporting period
*/
define Denominator:
  exists (
    "First antenatal care contact" C
      where C.period starts during "Measurement Period"
  )
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: ANCIND01
/*
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: ANCIND01
/*
Initial population: Antenatal clients
*/
define "Initial Population":
  exists (BaseData."Antenatal care case")
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 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 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 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 ToString(value string): value.value
Generated using version 0.4.6 of the sample-content-ig Liquid templates

Source

{
  "resourceType": "Measure",
  "id": "ANCIND01",
  "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": "ANCBaseDataElements"
            },
            {
              "url": "name",
              "valueString": "Antenatal care contact"
            },
            {
              "url": "statement",
              "valueString": "define \"Antenatal care contact\":\n  [\"Encounter\": type in BCx.\"Antenatal care contact\"]"
            },
            {
              "url": "displaySequence",
              "valueInteger": 0
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND01"
            },
            {
              "url": "name",
              "valueString": "First antenatal care contact"
            },
            {
              "url": "statement",
              "valueString": "define \"First antenatal care contact\":\n  BaseData.\"Antenatal care contact\" C\n    where C.reasonCode in Cx.\"First Antenatal Care Contact Choices\""
            },
            {
              "url": "displaySequence",
              "valueInteger": 1
            }
          ],
          "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": 2
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND01"
            },
            {
              "url": "name",
              "valueString": "Numerator"
            },
            {
              "url": "statement",
              "valueString": "/*\nNumerator: Number of pregnant women who had their first ANC contact before 12 weeks (facility level)\nNumerator Computation: Count of women whose gestational age <= 12 weeks at the time of first contact\n*/\ndefine Numerator:\n  exists (\n    \"First antenatal care contact\" C\n      where C.period starts during \"Measurement Period\"\n        and ContactData.\"Gestational age\" <= 12 weeks\n  )"
            },
            {
              "url": "displaySequence",
              "valueInteger": 3
            }
          ],
          "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": 4
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND01"
            },
            {
              "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": 5
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND01"
            },
            {
              "url": "name",
              "valueString": "Denominator"
            },
            {
              "url": "statement",
              "valueString": "/*\nDenominator: Total number of antenatal clients with a first contact\nDenominator Computation: Count of all women who had first contact within the last reporting period\n*/\ndefine Denominator:\n  exists (\n    \"First antenatal care contact\" C\n      where C.period starts during \"Measurement Period\"\n  )"
            },
            {
              "url": "displaySequence",
              "valueInteger": 6
            }
          ],
          "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": 7
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND01"
            },
            {
              "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": 8
            }
          ],
          "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": 9
            }
          ],
          "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-logicDefinition"
        },
        {
          "extension": [
            {
              "url": "libraryName",
              "valueString": "ANCIND01"
            },
            {
              "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": 10
            }
          ],
          "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": 11
            }
          ],
          "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": 12
            }
          ],
          "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": 13
            }
          ],
          "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": 14
            }
          ],
          "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": 15
            }
          ],
          "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": 16
            }
          ],
          "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": 17
            }
          ],
          "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": 18
            }
          ],
          "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": 19
            }
          ],
          "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": 20
            }
          ],
          "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": 21
            }
          ],
          "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": 22
            }
          ],
          "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 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 FHIRHelpers",
          "resource": "http://smart.who.int/anc/Library/FHIRHelpers|4.0.1"
        },
        {
          "type": "depends-on",
          "display": "Library Cx",
          "resource": "http://smart.who.int/anc/Library/ANCConcepts"
        },
        {
          "type": "depends-on",
          "display": "Library ContactData",
          "resource": "http://smart.who.int/anc/Library/ANCContactDataElements"
        },
        {
          "type": "depends-on",
          "display": "Library WC",
          "resource": "http://smart.who.int/anc/Library/WHOCommon"
        },
        {
          "type": "depends-on",
          "display": "Library Stratifiers",
          "resource": "http://smart.who.int/anc/Library/ANCStratifiers"
        },
        {
          "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 Antenatal care contact",
          "resource": "http://smart.who.int/anc/ValueSet/antenatal-care-contact"
        },
        {
          "type": "depends-on",
          "display": "Value set First Antenatal Care Contact Choices",
          "resource": "http://smart.who.int/anc/ValueSet/anc-b5-de2"
        },
        {
          "type": "depends-on",
          "display": "Value set Gestational age",
          "resource": "http://smart.who.int/anc/ValueSet/anc-b6-de17"
        },
        {
          "type": "depends-on",
          "display": "Value set Antenatal care case",
          "resource": "http://smart.who.int/anc/ValueSet/antenatal-care-case"
        }
      ],
      "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"
        }
      ],
      "dataRequirement": [
        {
          "type": "Encounter",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Encounter"
          ],
          "mustSupport": [
            "type",
            "reasonCode",
            "period"
          ],
          "codeFilter": [
            {
              "path": "type",
              "valueSet": "http://smart.who.int/anc/ValueSet/antenatal-care-contact"
            }
          ]
        },
        {
          "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": "Patient",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/Patient"
          ],
          "mustSupport": [
            "url",
            "value"
          ]
        },
        {
          "type": "EpisodeOfCare",
          "profile": [
            "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare"
          ],
          "mustSupport": [
            "type"
          ],
          "codeFilter": [
            {
              "path": "type",
              "valueSet": "http://smart.who.int/anc/ValueSet/antenatal-care-case"
            }
          ]
        }
      ]
    }
  ],
  "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/ANCIND01",
  "version": "0.3.0",
  "name": "ANCIND01",
  "title": "ANC.IND.01 Percentage of pregnant women with first ANC contact in the first trimester",
  "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 first ANC contact in the first trimester (before 12 weeks of gestation)",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001"
        }
      ]
    }
  ],
  "library": [
    "http://smart.who.int/anc/Library/ANCIND01"
  ],
  "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": {
            "language": "text/cql-identifier",
            "expression": "Education Level Stratifier"
          }
        }
      ]
    }
  ]
}