添加医保类型的区分

This commit is contained in:
2024-07-09 14:13:32 +08:00
parent 89de0e0815
commit 835cb78e57
3 changed files with 34 additions and 11 deletions

View File

@@ -23,7 +23,8 @@ class ZxIeSettlement(Base):
personal_account_payment = Column(DECIMAL(18, 2), comment='个人账户支付') personal_account_payment = Column(DECIMAL(18, 2), comment='个人账户支付')
personal_funded_amount_str = Column(String(255), comment='自费金额字符串') personal_funded_amount_str = Column(String(255), comment='自费金额字符串')
personal_funded_amount = Column(DECIMAL(18, 2), comment='自费金额') personal_funded_amount = Column(DECIMAL(18, 2), comment='自费金额')
medical_insurance_type = Column(String(255), comment='医保类型') medical_insurance_type_str = Column(String(255), comment='医保类型字符串')
medical_insurance_type = Column(String(40), comment='医保类型')
admission_id = Column(String(50), comment='住院号') admission_id = Column(String(50), comment='住院号')
settlement_id = Column(String(50), comment='医保结算单号码') settlement_id = Column(String(50), comment='医保结算单号码')
create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间')

View File

@@ -321,7 +321,7 @@ def settlement_task(pk_phhd, settlement_list):
get_best_value_in_keys(settlement_list_ie_result, PERSONAL_ACCOUNT_PAYMENT)), get_best_value_in_keys(settlement_list_ie_result, PERSONAL_ACCOUNT_PAYMENT)),
"personal_funded_amount_str": handle_original_data( "personal_funded_amount_str": handle_original_data(
get_best_value_in_keys(settlement_list_ie_result, PERSONAL_FUNDED_AMOUNT)), get_best_value_in_keys(settlement_list_ie_result, PERSONAL_FUNDED_AMOUNT)),
"medical_insurance_type": handle_insurance_type( "medical_insurance_type_str": handle_original_data(
get_best_value_in_keys(settlement_list_ie_result, MEDICAL_INSURANCE_TYPE)), get_best_value_in_keys(settlement_list_ie_result, MEDICAL_INSURANCE_TYPE)),
"admission_id": handle_id(get_best_value_in_keys(settlement_list_ie_result, ADMISSION_ID)), "admission_id": handle_id(get_best_value_in_keys(settlement_list_ie_result, ADMISSION_ID)),
"settlement_id": handle_id(get_best_value_in_keys(settlement_list_ie_result, SETTLEMENT_ID)), "settlement_id": handle_id(get_best_value_in_keys(settlement_list_ie_result, SETTLEMENT_ID)),
@@ -333,6 +333,7 @@ def settlement_task(pk_phhd, settlement_list):
settlement_data["personal_cash_payment"] = handle_decimal(settlement_data["personal_cash_payment_str"]) settlement_data["personal_cash_payment"] = handle_decimal(settlement_data["personal_cash_payment_str"])
settlement_data["personal_account_payment"] = handle_decimal(settlement_data["personal_account_payment_str"]) settlement_data["personal_account_payment"] = handle_decimal(settlement_data["personal_account_payment_str"])
settlement_data["personal_funded_amount"] = handle_decimal(settlement_data["personal_funded_amount_str"]) settlement_data["personal_funded_amount"] = handle_decimal(settlement_data["personal_funded_amount_str"])
settlement_data["medical_insurance_type"] = handle_insurance_type(settlement_data["medical_insurance_type_str"])
save_or_update_ie(ZxIeSettlement, pk_phhd, settlement_data) save_or_update_ie(ZxIeSettlement, pk_phhd, settlement_data)

View File

@@ -85,16 +85,25 @@ def parse_department(string):
result = [] result = []
if not string: if not string:
return result return result
result.append(handle_department(string)) string = re.sub(r'\([^()]*\)|\[[^\[\]]*\]|\{[^\{\}]*\}|[^]*|[^⺀-鿿]', '', string)[:255]
if string == "":
return result
result.append(string)
string_without_num = re.sub(r'\d|一|二|三|四|五|六|七|八|九|十', '', string) string_without_num = re.sub(r'\d|一|二|三|四|五|六|七|八|九|十', '', string)
if string == "":
return result
if string_without_num != string: if string_without_num != string:
result.append(handle_department(string_without_num)) result.append(string_without_num)
string_without_brackets = re.sub(r'\([^()]*\)|\[[^\[\]]*\]|\{[^\{\}]*\}|[^]*', "", string_without_num) pure_string = string_without_num.split("")[0] + ""
if string_without_brackets != string_without_num: if string == "":
result.append(handle_department(string_without_brackets)) return result
pure_string = string_without_brackets.split("")[0] + "" if pure_string != string_without_num:
if pure_string != string_without_brackets: result.append(pure_string)
result.append(handle_department(pure_string)) pure_string_without_io = pure_string.replace("", "").replace("", "")
if string == "":
return result
if pure_string_without_io != pure_string:
result.append(pure_string)
return result return result
@@ -109,7 +118,19 @@ def handle_name(string):
def handle_insurance_type(string): def handle_insurance_type(string):
if not string: if not string:
return "" return ""
return string.replace(":", "").replace("", "")[:255] worker_insurance_keys = ["社保", "城保", ""]
villager_insurance_keys = ["农保", "居民"]
migrant_worker_insurance_keys = ["农民工"]
no_insurance_keys = ["自费", "全费"]
if any(key in string for key in worker_insurance_keys):
return "职工医保"
if any(key in string for key in villager_insurance_keys):
return "居民医保"
if any(key in string for key in migrant_worker_insurance_keys):
return "农民工医保"
if any(key in string for key in no_insurance_keys):
return "无医保"
return ""
# 处理原始数据 # 处理原始数据