优化别名的匹配替换

This commit is contained in:
2024-08-15 09:15:08 +08:00
parent 326a4d14ba
commit 1f652d0a74
3 changed files with 12 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
x-env: x-env:
&template &template
image: fcb_photo_review:1.12.4 image: fcb_photo_review:1.12.5
restart: always restart: always
services: services:

View File

@@ -65,11 +65,11 @@ COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPE
""" """
别名配置 别名配置
""" """
# 使用别名中的value替换key。考虑到效率问题只会替换第一个匹配到的key。
HOSPITAL_ALIAS = { HOSPITAL_ALIAS = {
"江阴徐霞客医院": ["江阴市徐霞客医院"], "江阴": ["江阴市"],
"江阴北国医院": ["江阴市北国医院"], "溧阳": ["溧阳市"],
"溧阳茶亭医院": ["溧阳市茶亭医院"], "六合": ["六合区"],
"南京市六合中医院": ["南京市六合区中医院"]
} }
""" """

View File

@@ -245,11 +245,13 @@ def discharge_task(pk_phhd, discharge_record, identity):
for hospital in hospitals: for hospital in hospitals:
parsed_hospitals = parse_hospital(hospital) parsed_hospitals = parse_hospital(hospital)
for parsed_hospital in parsed_hospitals: for parsed_hospital in parsed_hospitals:
if parsed_hospital in HOSPITAL_ALIAS: hospital_like_conditions.append(BdYljg.name.like(f'%{parsed_hospital}%'))
for hospital_alias in HOSPITAL_ALIAS[parsed_hospital]: for hospital_alias_key in HOSPITAL_ALIAS.keys():
hospital_like_conditions.append(BdYljg.name.like(f'%{hospital_alias}%')) if hospital_alias_key in parsed_hospital:
else: for hospital_alias in HOSPITAL_ALIAS[hospital_alias_key]:
hospital_like_conditions.append(BdYljg.name.like(f'%{parsed_hospital}%')) new_hospital = parsed_hospital.replace(hospital_alias_key, hospital_alias)
hospital_like_conditions.append(BdYljg.name.like(f'%{new_hospital}%'))
break
session = MysqlSession() session = MysqlSession()
yljg = session.query(BdYljg.pk_yljg, BdYljg.name).filter(or_(*hospital_like_conditions)).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() session.close()