feat(backend): tighten CLM05 validation for CO Medicaid (CLM05-1 POS, CLM05-2 qualifier)
This commit is contained in:
@@ -150,3 +150,46 @@ def test_r100_payer_id_warning_only():
|
||||
report = validate(claim, cfg)
|
||||
assert any(i.rule == "R100_payer_id_matches" and i.severity == "warning" for i in report.warnings)
|
||||
assert report.passed is True
|
||||
|
||||
|
||||
def test_r032_passes_when_qualifier_b():
|
||||
cfg = PayerConfig.co_medicaid()
|
||||
claim = _build_claim()
|
||||
claim.claim.facility_code_qualifier = "B"
|
||||
report = validate(claim, cfg)
|
||||
assert not any(i.rule == "R032_clm05_2_facility_qualifier" for i in report.errors + report.warnings)
|
||||
|
||||
|
||||
def test_r032_errors_when_qualifier_unknown():
|
||||
cfg = PayerConfig.co_medicaid()
|
||||
claim = _build_claim()
|
||||
claim.claim.facility_code_qualifier = "X"
|
||||
report = validate(claim, cfg)
|
||||
assert any(i.rule == "R032_clm05_2_facility_qualifier" and i.severity == "error" for i in report.errors)
|
||||
assert report.passed is False
|
||||
|
||||
|
||||
def test_r032_skipped_when_qualifier_none():
|
||||
cfg = PayerConfig.co_medicaid()
|
||||
claim = _build_claim()
|
||||
# Default _build_claim leaves facility_code_qualifier unset (None).
|
||||
assert claim.claim.facility_code_qualifier is None
|
||||
report = validate(claim, cfg)
|
||||
assert not any(i.rule == "R032_clm05_2_facility_qualifier" for i in report.errors + report.warnings)
|
||||
|
||||
|
||||
def test_r033_passes_with_valid_pos_code():
|
||||
cfg = PayerConfig.co_medicaid()
|
||||
claim = _build_claim()
|
||||
claim.claim.place_of_service = "12" # Office — valid CMS POS
|
||||
report = validate(claim, cfg)
|
||||
assert not any(i.rule == "R033_clm05_1_place_of_service_code" for i in report.errors + report.warnings)
|
||||
|
||||
|
||||
def test_r033_errors_with_invalid_pos_code():
|
||||
cfg = PayerConfig.co_medicaid()
|
||||
claim = _build_claim()
|
||||
claim.claim.place_of_service = "999" # not a valid CMS POS code
|
||||
report = validate(claim, cfg)
|
||||
assert any(i.rule == "R033_clm05_1_place_of_service_code" and i.severity == "error" for i in report.errors)
|
||||
assert report.passed is False
|
||||
|
||||
Reference in New Issue
Block a user