diff --git a/docker-compose.yml b/docker-compose.yml index 1faaab0..85dc1c0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ x-env: &template - image: fcb_photo_review:1.12.4 + image: fcb_photo_review:1.12.5 restart: always services: diff --git a/photo_review/__init__.py b/photo_review/__init__.py index f5aaa0b..3e50121 100644 --- a/photo_review/__init__.py +++ b/photo_review/__init__.py @@ -65,11 +65,11 @@ COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPE """ 别名配置 """ +# 使用别名中的value替换key。考虑到效率问题,只会替换第一个匹配到的key。 HOSPITAL_ALIAS = { - "江阴徐霞客医院": ["江阴市徐霞客医院"], - "江阴北国医院": ["江阴市北国医院"], - "溧阳茶亭医院": ["溧阳市茶亭医院"], - "南京市六合中医院": ["南京市六合区中医院"] + "江阴": ["江阴市"], + "溧阳": ["溧阳市"], + "六合": ["六合区"], } """ diff --git a/photo_review/photo_review.py b/photo_review/photo_review.py index eb28f70..8211294 100644 --- a/photo_review/photo_review.py +++ b/photo_review/photo_review.py @@ -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()