为医院匹配添加别名机制

This commit is contained in:
2024-08-14 09:26:07 +08:00
parent aadc607145
commit 09c06d9c8a
2 changed files with 24 additions and 12 deletions

View File

@@ -15,7 +15,7 @@ from db.mysql import BdYljg, BdYlks, ZxIeResult, ZxIeCost, ZxIeDischarge, ZxIeSe
from photo_review import PATIENT_NAME, ADMISSION_DATE, DISCHARGE_DATE, MEDICAL_EXPENSES, PERSONAL_CASH_PAYMENT, \
PERSONAL_ACCOUNT_PAYMENT, PERSONAL_FUNDED_AMOUNT, MEDICAL_INSURANCE_TYPE, HOSPITAL, DEPARTMENT, DOCTOR, \
ADMISSION_ID, SETTLEMENT_ID, AGE, OCR, SETTLEMENT_IE, DISCHARGE_IE, COST_IE, PHHD_BATCH_SIZE, SLEEP_MINUTES, \
UPPERCASE_MEDICAL_EXPENSES, HOSTNAME
UPPERCASE_MEDICAL_EXPENSES, HOSTNAME, HOSPITAL_ALIAS
from ucloud import ufile
from util import image_util, util
from util.data_util import handle_date, handle_decimal, parse_department, handle_name, \
@@ -223,10 +223,12 @@ def settlement_task(pk_phhd, settlement_list, identity):
def discharge_task(pk_phhd, discharge_record, identity):
discharge_record_ie_result = information_extraction(DISCHARGE_IE, discharge_record, identity)
hospitals = get_values_of_keys(discharge_record_ie_result, HOSPITAL)
departments = get_values_of_keys(discharge_record_ie_result, DEPARTMENT)
discharge_data = {
"pk_phhd": pk_phhd,
"hospital": handle_hospital(get_best_value_in_keys(discharge_record_ie_result, HOSPITAL)),
"department": handle_department(get_best_value_in_keys(discharge_record_ie_result, DEPARTMENT)),
"hospital": handle_hospital(",".join(hospitals)),
"department": handle_department(",".join(departments)),
"name": handle_name(get_best_value_in_keys(discharge_record_ie_result, PATIENT_NAME)),
"admission_date_str": handle_original_data(get_best_value_in_keys(discharge_record_ie_result, ADMISSION_DATE)),
"discharge_date_str": handle_original_data(get_best_value_in_keys(discharge_record_ie_result, DISCHARGE_DATE)),
@@ -236,19 +238,23 @@ def discharge_task(pk_phhd, discharge_record, identity):
}
discharge_data["admission_date"] = handle_date(discharge_data["admission_date_str"])
discharge_data["discharge_date"] = handle_date(discharge_data["discharge_date_str"])
hospital_value = get_values_of_keys(discharge_record_ie_result, HOSPITAL)
if hospital_value:
if hospitals:
hospital_like_conditions = []
for hospital in hospitals:
if hospital in HOSPITAL_ALIAS:
for hospital_alias in HOSPITAL_ALIAS[hospital]:
hospital_like_conditions.append(BdYljg.name.like(f'%{hospital_alias}%'))
else:
hospital_like_conditions.append(BdYljg.name.like(f'%{hospital}%'))
session = MysqlSession()
yljg = (session.query(BdYljg.pk_yljg, BdYljg.name)
.filter(or_(*[BdYljg.name.like(f'%{hos}%') for hos in hospital_value])).limit(1).one_or_none())
yljg = session.query(BdYljg.pk_yljg, BdYljg.name).filter(or_(*hospital_like_conditions)).limit(1).one_or_none()
session.close()
if yljg:
discharge_data["pk_yljg"] = yljg.pk_yljg
discharge_data["hospital"] = yljg.name
department_value = get_values_of_keys(discharge_record_ie_result, DEPARTMENT)
if department_value:
if departments:
department_values = []
for dept in department_value:
for dept in departments:
department_values += parse_department(dept)
department_values = list(set(department_values))
if department_values:
@@ -258,7 +264,6 @@ def discharge_task(pk_phhd, discharge_record, identity):
session.close()
if ylks:
discharge_data["pk_ylks"] = ylks.pk_ylks
discharge_data["department"] = ylks.name
save_or_update_ie(ZxIeDischarge, pk_phhd, discharge_data)