Merged in feature/selective-reimb-prov-info (pull request #558)
Update reimb tin-npi-name passing to reimbursement primary * Update reimb tin-npi-name passing to reimbursement primary * Refactor reimbursement_tin_npi to streamline provider value extraction and improve handling of empty values Approved-by: Alex Galarce
This commit is contained in:
committed by
Alex Galarce
parent
3be2f44cb1
commit
e5d5c71781
@@ -179,6 +179,11 @@ def reimbursement_tin_npi(exhibit_chunk: str, reimbursement_level_fields: FieldS
|
||||
REIMB_PROV_TIN,
|
||||
REIMB_PROV_NPI
|
||||
"""
|
||||
def get_list(field_name, filtered_providers):
|
||||
# Get all values and filter out invalid ones
|
||||
all_values = [provider.get(field_name, "N/A") for provider in filtered_providers]
|
||||
valid_values = [val for val in all_values if not string_utils.is_empty(val) and val != "UNKNOWN"]
|
||||
return list(set(valid_values)) # Remove duplicates
|
||||
|
||||
answer_dict = {}
|
||||
|
||||
@@ -187,28 +192,27 @@ def reimbursement_tin_npi(exhibit_chunk: str, reimbursement_level_fields: FieldS
|
||||
|
||||
# Clean, standardize, and deduplicate extracted providers
|
||||
filtered_providers = deduplicate_providers(clean_provider_info(providers))
|
||||
|
||||
field_configs = [
|
||||
("REIMB_PROV_TIN", "TIN"),
|
||||
("REIMB_PROV_NPI", "NPI"),
|
||||
("REIMB_PROV_NAME", "NAME")
|
||||
]
|
||||
|
||||
# Always add providers to reimbursement_level fields for proper term attribution
|
||||
if len(filtered_providers) > 0:
|
||||
tin_field = Field.load_from_file(config.FIELD_JSON_PATH, "REIMB_PROV_TIN")
|
||||
tin_list = list(set([provider.get("TIN", "N/A") for provider in filtered_providers])) # Remove duplicates
|
||||
tin_field.update_valid_values(tin_list)
|
||||
reimbursement_level_fields.add_field(tin_field)
|
||||
for field_name, provider_key in field_configs:
|
||||
if len(filtered_providers) > 0:
|
||||
field = Field.load_from_file(config.FIELD_JSON_PATH, field_name)
|
||||
value_list = get_list(provider_key, filtered_providers)
|
||||
|
||||
npi_field = Field.load_from_file(config.FIELD_JSON_PATH, "REIMB_PROV_NPI")
|
||||
npi_list = list(set([provider.get("NPI", "N/A") for provider in filtered_providers])) # Remove duplicates
|
||||
npi_field.update_valid_values(npi_list)
|
||||
reimbursement_level_fields.add_field(npi_field)
|
||||
|
||||
name_field = Field.load_from_file(config.FIELD_JSON_PATH, "REIMB_PROV_NAME")
|
||||
name_list = list(set([provider.get("NAME", "N/A") for provider in filtered_providers])) # Remove duplicates
|
||||
name_field.update_valid_values(name_list)
|
||||
reimbursement_level_fields.add_field(name_field)
|
||||
# If no providers are found, set default values
|
||||
else:
|
||||
answer_dict['REIMB_PROV_TIN'] = "N/A"
|
||||
answer_dict['REIMB_PROV_NPI'] = "N/A"
|
||||
answer_dict['REIMB_PROV_NAME'] = "N/A"
|
||||
if len(value_list) == 0:
|
||||
answer_dict[field_name] = "N/A"
|
||||
else:
|
||||
field.update_valid_values(value_list)
|
||||
reimbursement_level_fields.add_field(field)
|
||||
else:
|
||||
# If no providers are found, set default values
|
||||
answer_dict[field_name] = "N/A"
|
||||
|
||||
return answer_dict, reimbursement_level_fields
|
||||
|
||||
|
||||
Reference in New Issue
Block a user