WHO Antenatal Care Guideline Implementation Guide
0.3.0 - CI Build International flag

WHO Antenatal Care Guideline Implementation Guide, published by World Health Organization (WHO). This guide is not an authorized publication; it is the continuous build for version 0.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/costateixeira/smart-anc/ and changes regularly. See the Directory of published versions

Library: ANC.DT.17 Pre-eclampsia, severe pre-eclampsia and hypertension diagnosis

Official URL: http://fhir.org/guides/who/anc-cds/Library/ANCDT17 Version: 0.3.0
Active as of 2024-09-10 Computable Name: ANCDT17
Other Identifiers: ANC.DT.17 (use: official, )

If the woman presents with any of the following symptoms and/or test results, conduct counselling and referral as needed

Id: ANCDT17
Url: ANC.DT.17 Pre-eclampsia, severe pre-eclampsia and hypertension diagnosis
Version: 0.3.0
Identifier:

value: ANC.DT.17

Name: ANCDT17
Title: ANC.DT.17 Pre-eclampsia, severe pre-eclampsia and hypertension diagnosis
Status: active
Experimental: false
Type:

system: http://terminology.hl7.org/CodeSystem/library-type

code: logic-library

Date: 2024-09-10 04:55:21+0000
Publisher: World Health Organization (WHO)
Description: If the woman presents with any of the following symptoms and/or test results, conduct counselling and referral as needed
Jurisdiction: 001
Related Artifacts:

Dependencies

Parameters:
NameTypeMinMaxIn/Out
encounterstring01In
PatientPatient01Out
Should Refer urgently to a hospitalboolean01Out
Should Refer urgently to a hospital 2boolean01Out
Should Refer urgently to a hospital 3boolean01Out
Should Conduct hypertension counsellingboolean01Out
Data Requirements:
TypeProfileMSCode Filter
Patient http://hl7.org/fhir/StructureDefinition/Patient
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b8-de27
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b6-de83
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b8-de17
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b8-de20
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b8-de19
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b8-de21
Observation http://hl7.org/fhir/StructureDefinition/Observation ;;;; code filter:
path: code
value set: http://fhir.org/guides/who/anc-cds/ValueSet/anc-b9-de144
Content: text/cql
library ANCDT17

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1'

include ANCConfig called Config
include ANCConcepts called Cx
include ANCDataElements called PatientData
include ANCContactDataElements called ContactData

context Patient

/*
(((((((((((((((("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Severe headache"))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Severe headache")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Blurred vision")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Blurred vision")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Epigastric pain")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Epigastric pain")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Dizziness")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Dizziness")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Vomiting")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "Vomiting")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "None")
  AND ("Urine dipstick result – protein" = "++")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "None")
  AND ("Urine dipstick result – protein" = "++")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "None")
  AND ("Urine dipstick result – protein" = "+++")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "None")
  AND ("Urine dipstick result – protein" = "+++")))
  OR (("Systolic blood pressure" ≥ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "None")
  AND ("Urine dipstick result – protein" = "++++")))
  OR (("Diastolic blood pressure" ≥ 90 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 90 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "None")
  AND ("Urine dipstick result – protein" = "++++"))
*/
define "Should Refer urgently to a hospital":
  (
    ContactData."Systolic blood pressure" >= 140 'mm[Hg]'
      and ContactData."Repeat systolic blood pressure" >= 140 'mm[Hg]'
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia Choices"
  ) or
  (
    ContactData."Diastolic blood pressure" >= 90 'mm[Hg]'
      and ContactData."Repeat diastolic blood pressure" >= 90 'mm[Hg]'
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia Choices"
  ) or
  (
    ContactData."Systolic blood pressure" >= 140 'mm[Hg]'
      and ContactData."Repeat systolic blood pressure" >= 140 'mm[Hg]'
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and (
        ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 2 plus Choices"
        or ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 3 plus Choices"
        or ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 4 plus Choices"
      )
  ) or
  (
    ContactData."Diastolic blood pressure" >= 90 'mm[Hg]'
      and ContactData."Repeat diastolic blood pressure" >= 90 'mm[Hg]'
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and (
        ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 2 plus Choices"
        or ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 3 plus Choices"
        or ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 4 plus Choices"
      )
  )

/*
((((((("Systolic blood pressure" ≤ 140 mmHg)
  AND ("Repeat systolic blood pressure" ≤ 140 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "++"))
  OR (("Systolic blood pressure" > 160 mmHg)
  AND ("Repeat systolic blood pressure" > 160 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "++")))
  OR ((90 mmHg ≤ "Diastolic blood pressure" < 110 mmHg)
  AND (90 mmHg ≤ "Repeat diastolic blood pressure" < 110 mmHg)
  AND (Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "++")))
  OR ((140 mmHg ≤ "Systolic blood pressure" < 160 mmHg)
  AND (140 mmHg ≤ "Repeat systolic blood pressure" < 160 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "+++")))
  OR ((90 mmHg ≤ "Diastolic blood pressure" < 110 mmHg)
  AND (90 mmHg – "Repeat diastolic blood pressure" < 110 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "+++")))
  OR ((140 mmHg ≤ "Systolic blood pressure" < 160 mmHg)
  AND (140 mmHg ≤ "Repeat systolic blood pressure" < 160 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "++++")))
  OR ((90 mmHg ≤ "Diastolic blood pressure" < 110 mmHg)
  AND (90 mmHg ≤ "Repeat diastolic blood pressure" < 110 mmHg)
  AND ("Symptoms of severe pre-eclampsia" = "No symptoms of severe pre-eclampsia")
  AND ("Urine dipstick result – protein" = "++++"))
*/
define "Should Refer urgently to a hospital 2":
  (
    ContactData."Systolic blood pressure" <= 140 'mm[Hg]'
      and ContactData."Repeat systolic blood pressure" <= 140 'mm[Hg]'
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 2 plus Choices"
  ) or
  (
    ContactData."Systolic blood pressure" > 160 'mm[Hg]'
      and ContactData."Repeat systolic blood pressure" > 160 'mm[Hg]'
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 2 plus Choices"
  ) or
  (
    ContactData."Diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
      and ContactData."Repeat diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 2 plus Choices"
  ) or
  (
    ContactData."Systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
      and ContactData."Repeat systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 3 plus Choices"
  ) or
  (
    ContactData."Diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
      and ContactData."Repeat diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 3 plus Choices"
  ) or
  (
    ContactData."Systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
      and ContactData."Repeat systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 4 plus Choices"
  ) or
  (
    ContactData."Diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
      and ContactData."Repeat diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
      and ContactData."Symptoms of severe pre-eclampsia" in Cx."Symptoms of severe pre-eclampsia - No symptoms Choices"
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 4 plus Choices"
  )

/*
(((("Systolic blood pressure" ≥ 160 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 160 mmHg)
  AND ("Urine dipstick result – protein" = "+"))
  OR (("Diastolic blood pressure" ≥ 110 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 110 mmHg)
  AND ("Urine dipstick result – protein" = "+")))
  OR (("Systolic blood pressure" ≥ 160 mmHg)
  AND ("Repeat systolic blood pressure" ≥ 160 mmHg)
  AND ("Urine dipstick result – protein" = "None")))
  OR (("Diastolic blood pressure" ≥ 110 mmHg)
  AND ("Repeat diastolic blood pressure" ≥ 110 mmHg)
  AND ("Urine dipstick result – protein" = "None"))
*/
define "Should Refer urgently to a hospital 3":
  (
    ContactData."Systolic blood pressure" >= 160 'mm[Hg]'
      and ContactData."Repeat systolic blood pressure" >= 160 'mm[Hg]'
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 1 plus Choices"
  ) or
  (
    ContactData."Diastolic blood pressure" >= 110 'mm[Hg]'
      and ContactData."Repeat diastolic blood pressure" >= 110 'mm[Hg]'
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 1 plus Choices"
  ) or
  (
    ContactData."Systolic blood pressure" >= 160 'mm[Hg]'
      and ContactData."Repeat systolic blood pressure" value >= 160 'mm[Hg]'
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - None Choices"
  ) or
  (
    ContactData."Diastolic blood pressure" >= 110 'mm[Hg]'
      and ContactData."Repeat diastolic blood pressure" >= 110 'mm[Hg]'
      and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - None Choices"
  )

/*
(((("Existing chronic health conditions" = "Hypertension")
  OR ((140 mmHg ≤ "Systolic blood pressure" < 160 mmHg)
  AND (140 mmHg ≤ "Repeat systolic blood pressure" < 160 mmHg)
  AND ("Urine dipstick result – protein" = "+")))
  OR ((90 mmHg ≤ "Diastolic blood pressure" < 110 mmHg)
  AND (90 mmHg ≤ "Repeat diastolic blood pressure" < 110 mmHg)
  AND ("Urine dipstick result – protein" = "+")))
  OR ((140 mmHg ≤ "Systolic blood pressure" < 160 mmHg)
  AND (140 mmHg ≤ "Repeat systolic blood pressure" < 160 mmHg)
  AND (Urine dipstick result – protein" = "None")))
  OR ((90 mmHg ≤ "Diastolic blood pressure" < 110 mmHg)
  AND (90 mmHg ≤ "Repeat diastolic blood pressure" < 110 mmHg)
  AND ("Urine dipstick result – protein" = "None"))
*/
define "Should Conduct hypertension counselling":
  ContactData."Existing chronic health conditions" in Cx."Existing chronic health conditions - Hypertension Choices"
    or (
      ContactData."Systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
        and ContactData."Repeat systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
        and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 1 plus Choices"
    )
    or (
      ContactData."Diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
        and ContactData."Repeat diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
        and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - 1 plus Choices"
    )
    or (
      ContactData."Systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
        and ContactData."Repeat systolic blood pressure" in Interval[140 'mm[Hg]', 160 'mm[Hg]']
        and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - None Choices"
    )
    or (
      ContactData."Diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
        and ContactData."Repeat diastolic blood pressure" in Interval[90 'mm[Hg]', 110 'mm[Hg]']
        and ContactData."Urine dipstick result - protein" in Cx."Urine dipstick result - protein - None Choices"
    )
Content: application/elm+xml
Encoded data (214544 characters)
Content: application/elm+json
Encoded data (387708 characters)