77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
"""High Needs criteria from caller-supplied quarter flags."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from lead.high_needs import QuarterFlags, alignment_year, criteria_met, persists
|
|
|
|
|
|
def test_ad_score_at_3_is_hn4_and_not_hn6():
|
|
met = criteria_met(QuarterFlags(quarter="2027Q1", ad_score=3.0))
|
|
assert met == frozenset({"HN.4"})
|
|
|
|
|
|
def test_ad_band_with_two_admissions_is_hn6():
|
|
met = criteria_met(
|
|
QuarterFlags(quarter="2027Q1", ad_score=2.0, unplanned_admissions=2)
|
|
)
|
|
assert met == frozenset({"HN.6"})
|
|
|
|
|
|
def test_ad_band_with_one_admission_meets_nothing():
|
|
met = criteria_met(
|
|
QuarterFlags(quarter="2027Q1", ad_score=2.0, unplanned_admissions=1)
|
|
)
|
|
assert met == frozenset()
|
|
|
|
|
|
def test_ad_below_the_band_meets_nothing():
|
|
met = criteria_met(
|
|
QuarterFlags(quarter="2027Q1", ad_score=1.999, unplanned_admissions=2)
|
|
)
|
|
assert met == frozenset()
|
|
|
|
|
|
def test_esrd_score_at_0_35_is_hn5_and_not_hn6():
|
|
met = criteria_met(QuarterFlags(quarter="2027Q1", esrd_score=0.35))
|
|
assert "HN.5" in met
|
|
assert "HN.6" not in met
|
|
|
|
|
|
def test_esrd_band_with_two_admissions_is_hn6():
|
|
met = criteria_met(
|
|
QuarterFlags(quarter="2027Q1", esrd_score=0.24, unplanned_admissions=2)
|
|
)
|
|
assert met == frozenset({"HN.6"})
|
|
|
|
|
|
def test_forty_five_snf_days_meet_hn7():
|
|
assert "HN.7" in criteria_met(QuarterFlags(quarter="2027Q1", snf_days=45))
|
|
assert "HN.7" not in criteria_met(QuarterFlags(quarter="2027Q1", snf_days=44))
|
|
|
|
|
|
def test_diagnosis_and_dme_are_separate_criteria():
|
|
assert criteria_met(
|
|
QuarterFlags(quarter="2027Q1", hn1_diagnosis=True)
|
|
) == frozenset({"HN.1"})
|
|
assert criteria_met(QuarterFlags(quarter="2027Q1", hn2_dme=True)) == frozenset(
|
|
{"HN.2"}
|
|
)
|
|
|
|
|
|
def test_kim_needs_both_the_index_and_the_cutoff():
|
|
assert "HN.3" in criteria_met(
|
|
QuarterFlags(quarter="2027Q1", kim_index=0.2, kim_cutoff=0.2)
|
|
)
|
|
assert "HN.3" not in criteria_met(QuarterFlags(quarter="2027Q1", kim_index=0.2))
|
|
assert "HN.3" not in criteria_met(QuarterFlags(quarter="2027Q1", kim_cutoff=0.2))
|
|
|
|
|
|
def test_one_quarter_sets_the_alignment_year():
|
|
quiet = QuarterFlags(quarter="2027Q1")
|
|
met = QuarterFlags(quarter="2027Q2", snf_days=45)
|
|
assert alignment_year((quiet, met, quiet, quiet)) == frozenset({"HN.7"})
|
|
|
|
|
|
def test_a_met_criterion_never_goes_away():
|
|
assert persists(frozenset({"HN.1"}), frozenset()) == frozenset({"HN.1"})
|