优化别名的匹配替换

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

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

View File

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