优化别名的匹配替换
This commit is contained in:
@@ -65,11 +65,11 @@ COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPE
|
||||
"""
|
||||
别名配置
|
||||
"""
|
||||
# 使用别名中的value替换key。考虑到效率问题,只会替换第一个匹配到的key。
|
||||
HOSPITAL_ALIAS = {
|
||||
"江阴徐霞客医院": ["江阴市徐霞客医院"],
|
||||
"江阴北国医院": ["江阴市北国医院"],
|
||||
"溧阳茶亭医院": ["溧阳市茶亭医院"],
|
||||
"南京市六合中医院": ["南京市六合区中医院"]
|
||||
"江阴": ["江阴市"],
|
||||
"溧阳": ["溧阳市"],
|
||||
"六合": ["六合区"],
|
||||
}
|
||||
|
||||
"""
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user