为医院匹配添加别名机制
This commit is contained in:
@@ -62,6 +62,13 @@ DISCHARGE_RECORD_SCHEMA = \
|
|||||||
|
|
||||||
COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES
|
COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES
|
||||||
|
|
||||||
|
"""
|
||||||
|
别名配置
|
||||||
|
"""
|
||||||
|
HOSPITAL_ALIAS = {
|
||||||
|
"江阴徐霞客医院": ["江阴市徐霞客医院"],
|
||||||
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
模型配置
|
模型配置
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -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, \
|
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, \
|
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, \
|
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 ucloud import ufile
|
||||||
from util import image_util, util
|
from util import image_util, util
|
||||||
from util.data_util import handle_date, handle_decimal, parse_department, handle_name, \
|
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):
|
def discharge_task(pk_phhd, discharge_record, identity):
|
||||||
discharge_record_ie_result = information_extraction(DISCHARGE_IE, 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 = {
|
discharge_data = {
|
||||||
"pk_phhd": pk_phhd,
|
"pk_phhd": pk_phhd,
|
||||||
"hospital": handle_hospital(get_best_value_in_keys(discharge_record_ie_result, HOSPITAL)),
|
"hospital": handle_hospital(",".join(hospitals)),
|
||||||
"department": handle_department(get_best_value_in_keys(discharge_record_ie_result, DEPARTMENT)),
|
"department": handle_department(",".join(departments)),
|
||||||
"name": handle_name(get_best_value_in_keys(discharge_record_ie_result, PATIENT_NAME)),
|
"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)),
|
"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)),
|
"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["admission_date"] = handle_date(discharge_data["admission_date_str"])
|
||||||
discharge_data["discharge_date"] = handle_date(discharge_data["discharge_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()
|
session = MysqlSession()
|
||||||
yljg = (session.query(BdYljg.pk_yljg, BdYljg.name)
|
yljg = session.query(BdYljg.pk_yljg, BdYljg.name).filter(or_(*hospital_like_conditions)).limit(1).one_or_none()
|
||||||
.filter(or_(*[BdYljg.name.like(f'%{hos}%') for hos in hospital_value])).limit(1).one_or_none())
|
|
||||||
session.close()
|
session.close()
|
||||||
if yljg:
|
if yljg:
|
||||||
discharge_data["pk_yljg"] = yljg.pk_yljg
|
discharge_data["pk_yljg"] = yljg.pk_yljg
|
||||||
discharge_data["hospital"] = yljg.name
|
if departments:
|
||||||
department_value = get_values_of_keys(discharge_record_ie_result, DEPARTMENT)
|
|
||||||
if department_value:
|
|
||||||
department_values = []
|
department_values = []
|
||||||
for dept in department_value:
|
for dept in departments:
|
||||||
department_values += parse_department(dept)
|
department_values += parse_department(dept)
|
||||||
department_values = list(set(department_values))
|
department_values = list(set(department_values))
|
||||||
if department_values:
|
if department_values:
|
||||||
@@ -258,7 +264,6 @@ def discharge_task(pk_phhd, discharge_record, identity):
|
|||||||
session.close()
|
session.close()
|
||||||
if ylks:
|
if ylks:
|
||||||
discharge_data["pk_ylks"] = ylks.pk_ylks
|
discharge_data["pk_ylks"] = ylks.pk_ylks
|
||||||
discharge_data["department"] = ylks.name
|
|
||||||
save_or_update_ie(ZxIeDischarge, pk_phhd, discharge_data)
|
save_or_update_ie(ZxIeDischarge, pk_phhd, discharge_data)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user