1212
1313from eligibility_signposting_api .model import eligibility , rules
1414from eligibility_signposting_api .model .eligibility import (
15- CohortStatus ,
15+ CohortResult ,
1616 Condition ,
1717 ConditionName ,
18- IterationStatus ,
18+ IterationResult ,
1919 Status ,
2020)
2121from eligibility_signposting_api .services .calculators .rule_calculator import RuleCalculator
@@ -61,7 +61,7 @@ def person_cohorts(self) -> set[str]:
6161 return set (cohorts_row .get ("COHORT_MAP" , {}).get ("cohorts" , {}).get ("M" , {}).keys ())
6262
6363 # Assuming cohort_results contains tuples of (IterationCohort, Status, list[Reason])
64- def get_best_cohort (self , cohort_results : dict [str , CohortStatus ]) -> tuple [Status , list [CohortStatus ]]:
64+ def get_best_cohort (self , cohort_results : dict [str , CohortResult ]) -> tuple [Status , list [CohortResult ]]:
6565 # Find the best status across cohorts
6666 best_status = eligibility .Status .best (* [result .status for result in cohort_results .values ()])
6767
@@ -72,11 +72,11 @@ def get_best_cohort(self, cohort_results: dict[str, CohortStatus]) -> tuple[Stat
7272 def evaluate_eligibility (self ) -> eligibility .EligibilityStatus :
7373 """Iterates over campaign groups, evaluates eligibility, and returns a consolidated status."""
7474 priority_getter = attrgetter ("priority" )
75- results : dict [ConditionName , IterationStatus ] = defaultdict ()
75+ results : dict [ConditionName , IterationResult ] = defaultdict ()
7676 for condition_name , campaign_group in self .campaigns_grouped_by_condition_name :
77- iteration_results : dict [str , IterationStatus ] = defaultdict ()
77+ iteration_results : dict [str , IterationResult ] = defaultdict ()
7878 for active_iteration in [cc .current_iteration for cc in campaign_group ]:
79- cohort_results : dict [str , CohortStatus ] = defaultdict ()
79+ cohort_results : dict [str , CohortResult ] = defaultdict ()
8080
8181 # Get the rules for this iteration
8282 rules_filter , rules_suppression , rules_redirect = {
@@ -106,7 +106,7 @@ def evaluate_eligibility(self) -> eligibility.EligibilityStatus:
106106 rule_group
107107 )
108108 if status .is_exclusion :
109- cohort_results [cohort .cohort_label ] = CohortStatus (cohort , status , group_exclusions )
109+ cohort_results [cohort .cohort_label ] = CohortResult (cohort , status , group_exclusions )
110110 eligibility_flag = False
111111 break
112112 # Eligible
@@ -134,18 +134,18 @@ def evaluate_eligibility(self) -> eligibility.EligibilityStatus:
134134 break
135135 # No exclusions - actionable
136136 if actionable_flag :
137- cohort_results [cohort .cohort_label ] = CohortStatus (cohort , Status .actionable , [])
137+ cohort_results [cohort .cohort_label ] = CohortResult (cohort , Status .actionable , [])
138138 else :
139- cohort_results [cohort .cohort_label ] = CohortStatus (
139+ cohort_results [cohort .cohort_label ] = CohortResult (
140140 cohort , Status .not_actionable , suppression_reasons
141141 )
142142
143143 else :
144144 # Not base eligibility
145- cohort_results [cohort .cohort_label ] = CohortStatus (cohort , eligibility .Status .not_eligible , [])
145+ cohort_results [cohort .cohort_label ] = CohortResult (cohort , eligibility .Status .not_eligible , [])
146146
147147 # Determine Result between cohorts - get the best
148- iteration_results [active_iteration .name ] = IterationStatus (
148+ iteration_results [active_iteration .name ] = IterationResult (
149149 * self .get_best_cohort (cohort_results )
150150 ) # multiple
151151 # Determine results between iterations - get the best
0 commit comments