From 42f6166052d06c588d544dce6d6202dc173db895 Mon Sep 17 00:00:00 2001 From: Weili Xu Date: Thu, 1 Aug 2024 19:13:09 -0700 Subject: [PATCH] set rulebase to add not applicable message to empty list after flitering. --- rct229/rule_engine/rule_base.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rct229/rule_engine/rule_base.py b/rct229/rule_engine/rule_base.py index d5ee3558b2..ebf7398c4d 100644 --- a/rct229/rule_engine/rule_base.py +++ b/rct229/rule_engine/rule_base.py @@ -172,8 +172,17 @@ def evaluate(self, rmds, data={}): # Evaluate the actual rule check result = self.rule_check(context, calc_vals, data) if isinstance(result, list): - # The result is a list of outcomes - outcome["result"] = result + if len(result) == 0: + # empty list: + outcome["result"] = RCTOutcomeLabel.NOT_APPLICABLE + not_applicable_msg = self.get_not_applicable_msg( + context, data + ) + if not_applicable_msg: + outcome["message"] = not_applicable_msg + # The result is a list of outcomes + else: + outcome["result"] = result # using is False to include the None case. elif self.is_primary_rule is False: # secondary rule applicability check true-> undetermined, false -> not_applicable