From 51be30576887f12285151f8dd2ed6eeec73a5517 Mon Sep 17 00:00:00 2001 From: Caleb Date: Wed, 29 May 2024 12:29:37 -0600 Subject: [PATCH] add early intervention co function --- .../urgent_needs/urgent_need_functions.py | 36 ++++++++++--------- screener/views.py | 1 + 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/programs/programs/urgent_needs/urgent_need_functions.py b/programs/programs/urgent_needs/urgent_need_functions.py index 86184042..cf6b2f89 100644 --- a/programs/programs/urgent_needs/urgent_need_functions.py +++ b/programs/programs/urgent_needs/urgent_need_functions.py @@ -39,6 +39,19 @@ def can_calc(cls, missing_dependencies: Dependencies): return True +class ChildAgeFunction(UrgentNeedFunction): + dependencies = ["age"] + min_age = 0 + max_age = 18 + + @classmethod + def eligible(cls, screen: Screen): + """ + return True if the child is between the ages of min_age and max_age + """ + return screen.num_children(age_min=cls.min_age, age_max=cls.max_age) > 0 + + class LivesInDenver(UrgentNeedFunction): dependencies = ["county"] @@ -95,16 +108,9 @@ def eligible(cls, screen: Screen): return screen.zipcode in zipcodes -class Child(UrgentNeedFunction): +class Child(ChildAgeFunction): dependencies = ["age"] - @classmethod - def eligible(cls, screen: Screen): - """ - Return True if someone is younger than 18 - """ - return screen.num_children(child_relationship=["all"]) > 0 - class BiaFoodDelivery(UrgentNeedFunction): dependencies = ["county"] @@ -284,17 +290,10 @@ def eligible(cls, screen: Screen): return is_age_eligible and screen.county in eligible_counties -class EarlyChildhoodMentalHealthSupport(UrgentNeedFunction): +class EarlyChildhoodMentalHealthSupport(ChildAgeFunction): dependencies = ["age"] max_age = 5 - @classmethod - def eligible(cls, screen: Screen): - """ - Return True if the household has a child aged 0-5 - """ - return screen.num_children(age_max=cls.max_age) > 0 - class ParentsOfPreschoolYoungsters(UrgentNeedFunction): dependencies = ["age", "county"] @@ -373,3 +372,8 @@ def eligible(cls, screen: Screen): county_eligible = screen.county in cls.counties return age_eligible and county_eligible + + +class EarlyIntervention(ChildAgeFunction): + dependencies = ["age"] + max_age = 2 diff --git a/screener/views.py b/screener/views.py index 5c41d4e4..cc912049 100644 --- a/screener/views.py +++ b/screener/views.py @@ -359,6 +359,7 @@ def urgent_need_results(screen): "ecmh": urgent_need_functions.EarlyChildhoodMentalHealthSupport.calc(screen, missing_dependencies), "hippy": urgent_need_functions.ParentsOfPreschoolYoungsters.calc(screen, missing_dependencies), "pat": urgent_need_functions.ParentsAsTeacher.calc(screen, missing_dependencies), + "eic": urgent_need_functions.EarlyIntervention.calc(screen, missing_dependencies), } list_of_needs = []