From 104fd33088d03d299d0367eae1d9e56dbc82366a Mon Sep 17 00:00:00 2001 From: liuyebo <1515783401@qq.com> Date: Tue, 2 Jul 2024 10:10:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BF=A1=E6=81=AF=E6=8A=BD?= =?UTF-8?q?=E5=8F=96=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- photo_review/photo_review.py | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/photo_review/photo_review.py b/photo_review/photo_review.py index 5c31e18..984d667 100644 --- a/photo_review/photo_review.py +++ b/photo_review/photo_review.py @@ -175,18 +175,6 @@ def get_ocr_layout(ocr, img_path): return layout -def request_ie_result(task_enum, phrec, identity): - url = task_enum.request_url() - payload = {"image_name": phrec.cfjaddress, "schema": task_enum.schema(), "pk_phhd": phrec.pk_phhd, - "pk_phrec": phrec.pk_phrec, "identity": identity} - response = requests.post(url, json=payload) - - if response.status_code == 200: - return response.json()["data"] - else: - raise Exception(f"请求信息抽取结果失败,状态码:{response.status_code}") - - def ie_temp_image(ie, ocr, image): with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as temp_file: cv2.imwrite(temp_file.name, image) @@ -210,15 +198,19 @@ def ie_temp_image(ie, ocr, image): # 关键信息提取 -def information_extraction(task_enum, phrecs): - result = {} - # 同一批图的标识 +def request_ie_result(task_enum, phrecs): + url = task_enum.request_url() identity = int(time.time()) + images = [] for phrec in phrecs: - ie_result = request_ie_result(task_enum, phrec, identity) - result = merge_result(result, ie_result) + images.append({"name": phrec.cfjaddress, "pk": phrec.pk_phrec}) + payload = {"images": images, "schema": task_enum.schema(), "pk_phhd": phrecs[0].pk_phhd, "identity": identity} + response = requests.post(url, json=payload) - return result + if response.status_code == 200: + return response.json()["data"] + else: + raise Exception(f"请求信息抽取结果失败,状态码:{response.status_code}") # 从keys中获取准确率最高的value @@ -274,7 +266,7 @@ def save_or_update_ie(table, pk_phhd, data): def settlement_task(pk_phhd, settlement_list): - settlement_list_ie_result = information_extraction(TaskEnum.SETTLEMENT, settlement_list) + settlement_list_ie_result = request_ie_result(TaskEnum.SETTLEMENT, settlement_list) settlement_data = { "pk_phhd": pk_phhd, "name": handle_name(get_best_value_in_keys(settlement_list_ie_result, PATIENT_NAME)), @@ -302,7 +294,7 @@ def settlement_task(pk_phhd, settlement_list): def discharge_task(pk_phhd, discharge_record): - discharge_record_ie_result = information_extraction(TaskEnum.DISCHARGE, discharge_record) + discharge_record_ie_result = request_ie_result(TaskEnum.DISCHARGE, discharge_record) discharge_data = { "pk_phhd": pk_phhd, "hospital": handle_hospital(get_best_value_in_keys(discharge_record_ie_result, HOSPITAL)), @@ -341,7 +333,7 @@ def discharge_task(pk_phhd, discharge_record): def cost_task(pk_phhd, cost_list): - cost_list_ie_result = information_extraction(TaskEnum.COST, cost_list) + cost_list_ie_result = request_ie_result(TaskEnum.COST, cost_list) cost_data = { "pk_phhd": pk_phhd, "name": handle_name(get_best_value_in_keys(cost_list_ie_result, PATIENT_NAME)),