OpenSRP/opensrp-client-anc

View on GitHub
opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml

Summary

Maintainability
Test Coverage
---
name: step1_hiv_risk
description: HIV Risk
priority: 1
condition: "(step4_hiv_positive != 1 && (step8_partner_hiv_positive == 1 || step7_alcohol_substance_use.contains('injectable_drugs') || step1_occupation.contains('informal_employment_sex_worker')))"
actions:
  - "calculation = 1"
---

name: step2_lmp_known_date
description: step2_lmp_known_date
priority: 1
condition: "step2_lmp_known == 'yes'"
actions:
  - "calculation = helper.getDateToday()"
---
name: step2_lmp_edd
description: LMP EDD
priority: 1
condition: "step2_lmp_known == 'yes' && !step2_lmp_known_date.isEmpty()"
actions:
  - "calculation = helper.addDuration(helper.getSecondaryValue(step2_lmp_known_date),'280d')"
---
name: step2_lmp_gest_age
description: LMP Gest age
priority: 1
condition: "step2_lmp_known == 'yes'"
actions:
  - "calculation = helper.getWeeksAndDaysFromDays(helper.getDifferenceDays(helper.getSecondaryValue(step2_lmp_known_date)))"
---
name: step2_ultrasound_gest_age_concept
description: Ultrasound  Gest age concept
priority: 1
condition: "step2_ultrasound_done== 'yes' && step2_ultrasound_gest_age_days != ''"
actions:
  - "calculation = Math.ceil(((step2_ultrasound_gest_age_wks * 7) + new Integer(step2_ultrasound_gest_age_days)) / 7)"
---
name: step2_ultrasound_done_date
description: step2_ultrasound_done_date
priority: 1
condition: "step2_ultrasound_done == 'yes'"
actions:
  - "calculation = helper.getDateToday()"
---
name: step2_ultrasound_edd
description: Ultrasound edd
priority: 1
condition: "step2_ultrasound_gest_age_wks != ''"
actions:
  - "calculation = helper.addDuration(helper.getSecondaryValue(step2_ultrasound_done_date), ( (280 - ( (new Integer(step2_ultrasound_gest_age_wks) * 7) +  new Integer(step2_ultrasound_gest_age_days != '' ? step2_ultrasound_gest_age_days : 0)) ) +'d'))"
---
name: step2_ultrasound_gest_age
description: Ultrasound  Gest age
priority: 1
condition: "step2_ultrasound_done== 'yes'"
actions:
  - "calculation =  helper.getWeeksAndDaysFromDays( 280 - helper.getDifferenceDays(helper.getSecondaryValue(step2_ultrasound_edd)) - 1 )"
---
name: step2_sfh_edd
description: SFH edd
priority: 1
condition: "step2_sfh_gest_age > 0"
actions:
  - "calculation = helper.addDuration((280 - (step2_sfh_gest_age * 7)) + 'd')"
---
name: step2_sfh_ga_hidden
description: SFH edd
priority: 1
condition: "true"
actions:
  - "calculation = step2_sfh_gest_age > 0 ? step2_sfh_gest_age + ' weeks' : 0"
---
name: step2_lmp_gest_age_selection
description: Gest age
priority: 1
condition: "true"
actions:
  - "calculation = ['lmp_gest_age': step2_lmp_gest_age,'lmp_edd':step2_lmp_edd]"
---
name: step2_ultrasound_gest_age_selection
description: Gest age
priority: 1
condition: "true"
actions:
  - "calculation = ['ultrasound_gest_age':step2_ultrasound_gest_age,'ultrasound_edd':step2_ultrasound_edd]"
---
name: step2_sfh_gest_age_selection
description: Gest age
priority: 1
condition: "true"
actions:
  - "calculation = ['sfh_gest_age':step2_sfh_ga_hidden,'sfh_edd':step2_sfh_edd]"
---
name: step2_lmp_ultrasound_gest_age_selection
description: Gest age
priority: 1
condition: "true"
actions:
  - "calculation = ['lmp_gest_age': step2_lmp_gest_age,'lmp_edd':step2_lmp_edd, 'ultrasound_gest_age':step2_ultrasound_gest_age,'ultrasound_edd':step2_ultrasound_edd]"
---
name: step2_sfh_ultrasound_gest_age_selection
description: Gest age
priority: 1
condition: "true"
actions:
  - "calculation = ['ultrasound_gest_age':step2_ultrasound_gest_age,'ultrasound_edd':step2_ultrasound_edd,'sfh_gest_age':step2_sfh_ga_hidden,'sfh_edd':step2_sfh_edd]"
---
name: step2_select_gest_age_edd_sfh_ultrasound
description: select_gest_age_edd_sfh_ultrasound
priority: 1
condition: "step2_sfh_ultrasound_gest_age_selection != ''"
actions:
  - "calculation = step2_sfh_ultrasound_gest_age_selection"
---
name: step2_select_gest_age_edd_lmp_ultrasound
description: select_gest_age_edd_lmp_ultrasound
priority: 1
condition: "step2_lmp_ultrasound_gest_age_selection != ''"
actions:
  - "calculation = step2_lmp_ultrasound_gest_age_selection"
---
name: step2_select_gest_age_edd_all_values
description: select_gest_age_edd_all_values
priority: 1
condition: "true"
actions:
  - "calculation = (step2_lmp_known == 'yes' && step2_ultrasound_done == 'no') ? step2_lmp_gest_age_selection : (step2_lmp_known == 'no' && step2_ultrasound_done == 'yes' && (step2_ultrasound_gest_age_wks == '' || step2_ultrasound_gest_age_wks < 24)) ? step2_ultrasound_gest_age_selection : step2_sfh_gest_age_selection"
---
name: step2_select_gest_age_edd
description: Gest age
priority: 1
condition: "true"
actions:
  - "calculation = (step2_sfh_ultrasound_gest_age_selection != '' && step2_sfh_ultrasound_gest_age_selection != 0) ? step2_sfh_ultrasound_gest_age_selection : (step2_select_gest_age_edd_lmp_ultrasound != '' && step2_select_gest_age_edd_lmp_ultrasound != 0) ? step2_select_gest_age_edd_lmp_ultrasound : step2_select_gest_age_edd_all_values"
---
name: step2_edd
description: Selected EDD
priority: 1
condition: "step2_select_gest_age_edd != ''"
actions:
  - "calculation = step2_select_gest_age_edd == 'lmp' ? step2_lmp_edd : step2_select_gest_age_edd == 'ultrasound' ? step2_ultrasound_edd : step2_sfh_edd"
---
name: step2_gest_age
description: Selected Gest Age
priority: 1
condition: "step2_select_gest_age_edd != ''"
actions:
  - "calculation = step2_select_gest_age_edd == 'lmp' ? step2_lmp_gest_age : step2_select_gest_age_edd == 'ultrasound' ? step2_ultrasound_gest_age : step2_sfh_gest_age"
---
name: step2_gest_age_openmrs
description: Ga to send to openmrs
priority: 1
condition: "step2_select_gest_age_edd != ''"
actions:
  - "calculation = step2_select_gest_age_edd == 'lmp' ? helper.stripGaNumber(step2_lmp_gest_age) : step2_select_gest_age_edd == 'ultrasound' ? helper.stripGaNumber(step2_ultrasound_gest_age) : helper.stripGaNumber(step2_sfh_gest_age)"
---
name: step3_previous_pregnancies
description: Previous pregnancies
priority: 1
condition: "step3_gravida > 0"
actions:
  - "calculation = step3_gravida - 1 "
---
name: step3_parity
description: Parity calculation
priority: 1
condition: "true"
actions:
  - "calculation = step3_live_births + step3_stillbirths"
---
name: step3_preeclampsia_risk
description: preeclampsia_risk
priority: 1
condition: "((global_no_of_fetuses != null && global_no_of_fetuses != '' && global_no_of_fetuses >= 2) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('pre_eclampsia') || step3_prev_preg_comps.contains('eclampsia') || step3_prev_preg_comps.contains('convulsions'))) || (!step4_health_conditions.isEmpty() && (step4_health_conditions.contains('autoimmune_disease') || step4_health_conditions.contains('diabetes') || step4_health_conditions.contains('gest_diabetes') || step4_health_conditions.contains('diabetes_other') || step4_health_conditions.contains('diabetes_type2') || step4_health_conditions.contains('hypertension') || step4_health_conditions.contains('kidney_disease'))))"
actions:
  - "calculation = 1"
---
name: step3_gdm_risk
description: gdm_risk
priority: 1
condition: "(global_bmi != null && global_bmi != '' && global_bmi >= 30) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('gestational_diabetes') || step3_prev_preg_comps.contains('macrosomia'))) || (global_urine_glucose != null && global_urine_glucose != '' && (global_urine_glucose == '++' || global_urine_glucose == '+++' ||  global_urine_glucose == '++++'))"
actions:
  - "calculation = 1"
---
name: step4_preeclampsia_risk
description: preeclampsia_risk
priority: 1
condition: "((global_no_of_fetuses != null && global_no_of_fetuses != '' && global_no_of_fetuses >= 2) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('pre_eclampsia') || step3_prev_preg_comps.contains('eclampsia') || step3_prev_preg_comps.contains('convulsions'))) || (!step4_health_conditions.isEmpty() && (step4_health_conditions.contains('autoimmune_disease') || step4_health_conditions.contains('diabetes') || step4_health_conditions.contains('gest_diabetes') || step4_health_conditions.contains('diabetes_other') || step4_health_conditions.contains('diabetes_type2') || step4_health_conditions.contains('hypertension') || step4_health_conditions.contains('kidney_disease'))))"
actions:
  - "calculation = 1"
---
name: step4_hiv_positive
description: hiv_positive
priority: 1
condition: "(global_hiv_test_result != null && global_hiv_test_result != '' && global_hiv_test_result == 'positive') || (step4_health_conditions.contains('hiv'))"
actions:
  - "calculation = 1"
---
name: step7_hiv_risk
description: HIV Risk
priority: 1
condition: "((global_hiv_positive == null || global_hiv_positive == '' || global_hiv_positive == 0) && step4_hiv_positive != 1 && (global_site_anc_hiv == true || step8_partner_hiv_positive == 1 || step7_alcohol_substance_use.contains('injectable_drugs') || step1_occupation.contains('informal_employment_sex_worker')))"
actions:
  - "calculation = 1"
---
name: step8_hiv_risk
description: HIV Risk
priority: 1
condition: "((global_hiv_positive == null || global_hiv_positive == '' || global_hiv_positive == 0) && step4_hiv_positive != 1 && (global_site_anc_hiv == true || step8_partner_hiv_positive == 1 || step7_alcohol_substance_use.contains('injectable_drugs') || step1_occupation.contains('informal_employment_sex_worker')))"
actions:
  - "calculation = 1"
---
name: step8_partner_hiv_positive
description: HIV Risk
priority: 1
condition: "(step8_partner_hiv_status == 'positive') || (global_hiv_test_partner_result != null && global_hiv_test_partner_result != '' && global_hiv_test_partner_result == 'positive')"
actions:
  - "calculation = 1"