优化与调整
This commit is contained in:
@@ -3,6 +3,7 @@ import logging
|
||||
from time import sleep
|
||||
|
||||
from paddlenlp import Taskflow
|
||||
from sqlalchemy import update
|
||||
|
||||
from config.keys import PATIENT_NAME, ADMISSION_DATE, DISCHARGE_DATE, MEDICAL_EXPENSES, PERSONAL_CASH_PAYMENT, \
|
||||
PERSONAL_ACCOUNT_PAYMENT, PERSONAL_FUNDED_AMOUNT, MEDICAL_INSURANCE_TYPE, HOSPITAL, DEPARTMENT, DOCTOR
|
||||
@@ -16,7 +17,7 @@ from photo_review.entity.zx_ie_settlement import ZxIeSettlement
|
||||
from photo_review.entity.zx_ocr import ZxOcr
|
||||
from photo_review.entity.zx_phhd import ZxPhhd
|
||||
from photo_review.entity.zx_phrec import ZxPhrec
|
||||
from photo_review.util.data_util import handle_date, handle_decimal
|
||||
from photo_review.util.data_util import handle_date, handle_decimal, handle_department
|
||||
from photo_review.util.ucloud import get_private_url
|
||||
|
||||
|
||||
@@ -27,6 +28,7 @@ def information_extraction(schema, phrecs, task_path):
|
||||
pic_path = get_private_url(phrec.cfjaddress)
|
||||
if pic_path:
|
||||
ie = Taskflow("information_extraction", schema=schema, model="uie-x-base", task_path=task_path)
|
||||
# 批量抽取写法:(ie([{"doc": "./data/6.jpg"}, {"doc": "./data/7.jpg"}])
|
||||
result = ie({"doc": pic_path})
|
||||
|
||||
result_json = json.dumps(result, ensure_ascii=False)
|
||||
@@ -173,13 +175,18 @@ def photo_review(pk_phhd):
|
||||
discharge_data["hospital"] = yljg.name
|
||||
department_value = get_values_of_keys(discharge_record_ie_result, department_key)
|
||||
if department_value:
|
||||
session = MysqlSession()
|
||||
ylks = session.query(BdYlks.pk_ylks, BdYlks.name) \
|
||||
.filter(BdYlks.name.in_(department_value)).limit(1).one_or_none()
|
||||
session.close()
|
||||
if ylks:
|
||||
discharge_data["pk_ylks"] = ylks.pk_ylks
|
||||
discharge_data["department"] = ylks.name
|
||||
department_values = []
|
||||
for dept in department_value:
|
||||
department_values += handle_department(dept)
|
||||
department_values = list(set(department_values))
|
||||
if department_values:
|
||||
session = MysqlSession()
|
||||
ylks = session.query(BdYlks.pk_ylks, BdYlks.name) \
|
||||
.filter(BdYlks.name.in_(department_values)).limit(1).one_or_none()
|
||||
session.close()
|
||||
if ylks:
|
||||
discharge_data["pk_ylks"] = ylks.pk_ylks
|
||||
discharge_data["department"] = ylks.name
|
||||
save_or_update_ie(ZxIeDischarge, pk_phhd, discharge_data)
|
||||
|
||||
cost_list_ie_result = information_extraction(cost_list_schema, cost_list, "config/model/cost_list_model")
|
||||
@@ -192,19 +199,16 @@ def photo_review(pk_phhd):
|
||||
}
|
||||
cost_data["admission_date"] = handle_date(cost_data["admission_date_str"])
|
||||
cost_data["discharge_date"] = handle_date(cost_data["discharge_date_str"])
|
||||
cost_data["medical_expenses"] = handle_date(cost_data["medical_expenses_str"])
|
||||
cost_data["medical_expenses"] = handle_decimal(cost_data["medical_expenses_str"])
|
||||
save_or_update_ie(ZxIeCost, pk_phhd, cost_data)
|
||||
|
||||
|
||||
def main():
|
||||
# 最后处理的报销案子pk
|
||||
last_pk_phhd = 0
|
||||
# 持续检测新案子
|
||||
while 1:
|
||||
session = MysqlSession()
|
||||
phhds = session.query(ZxPhhd.pk_phhd) \
|
||||
.filter(ZxPhhd.pk_phhd > last_pk_phhd) \
|
||||
.filter(ZxPhhd.cStatus == '2') \
|
||||
.filter(ZxPhhd.exsuccess_flag == '1') \
|
||||
.limit(PHHD_BATCH_SIZE) \
|
||||
.all()
|
||||
session.close()
|
||||
@@ -212,7 +216,13 @@ def main():
|
||||
for phhd in phhds:
|
||||
pk_phhd = phhd.pk_phhd
|
||||
photo_review(pk_phhd)
|
||||
last_pk_phhd = pk_phhd
|
||||
|
||||
# 识别完成更新标识
|
||||
session = MysqlSession()
|
||||
stmt = (update(ZxPhhd).where(ZxPhhd.pk_phhd == pk_phhd).values(exsuccess_flag=8))
|
||||
session.execute(stmt)
|
||||
session.commit()
|
||||
session.close()
|
||||
else:
|
||||
# 没有查询到新案子,等待一段时间后再查
|
||||
sleep_minutes = SLEEP_MINUTES
|
||||
|
||||
Reference in New Issue
Block a user