为医院匹配添加别名机制
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user