From 09c06d9c8ac90ca0d6ababc1aacf881659894373 Mon Sep 17 00:00:00 2001 From: liuyebo <1515783401@qq.com> Date: Wed, 14 Aug 2024 09:26:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E5=8C=BB=E9=99=A2=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=AB=E5=90=8D=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- photo_review/__init__.py | 7 +++++++ photo_review/photo_review.py | 29 +++++++++++++++++------------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/photo_review/__init__.py b/photo_review/__init__.py index 59bcf9b..c94d9e1 100644 --- a/photo_review/__init__.py +++ b/photo_review/__init__.py @@ -62,6 +62,13 @@ DISCHARGE_RECORD_SCHEMA = \ COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES +""" +别名配置 +""" +HOSPITAL_ALIAS = { + "江阴徐霞客医院": ["江阴市徐霞客医院"], +} + """ 模型配置 """ diff --git a/photo_review/photo_review.py b/photo_review/photo_review.py index 6a58f85..bbb31a3 100644 --- a/photo_review/photo_review.py +++ b/photo_review/photo_review.py @@ -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)