更新信息抽取接口调用
This commit is contained in:
@@ -175,18 +175,6 @@ def get_ocr_layout(ocr, img_path):
|
|||||||
return layout
|
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):
|
def ie_temp_image(ie, ocr, image):
|
||||||
with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as temp_file:
|
with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as temp_file:
|
||||||
cv2.imwrite(temp_file.name, image)
|
cv2.imwrite(temp_file.name, image)
|
||||||
@@ -210,15 +198,19 @@ def ie_temp_image(ie, ocr, image):
|
|||||||
|
|
||||||
|
|
||||||
# 关键信息提取
|
# 关键信息提取
|
||||||
def information_extraction(task_enum, phrecs):
|
def request_ie_result(task_enum, phrecs):
|
||||||
result = {}
|
url = task_enum.request_url()
|
||||||
# 同一批图的标识
|
|
||||||
identity = int(time.time())
|
identity = int(time.time())
|
||||||
|
images = []
|
||||||
for phrec in phrecs:
|
for phrec in phrecs:
|
||||||
ie_result = request_ie_result(task_enum, phrec, identity)
|
images.append({"name": phrec.cfjaddress, "pk": phrec.pk_phrec})
|
||||||
result = merge_result(result, ie_result)
|
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
|
# 从keys中获取准确率最高的value
|
||||||
@@ -274,7 +266,7 @@ def save_or_update_ie(table, pk_phhd, data):
|
|||||||
|
|
||||||
|
|
||||||
def settlement_task(pk_phhd, settlement_list):
|
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 = {
|
settlement_data = {
|
||||||
"pk_phhd": pk_phhd,
|
"pk_phhd": pk_phhd,
|
||||||
"name": handle_name(get_best_value_in_keys(settlement_list_ie_result, PATIENT_NAME)),
|
"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):
|
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 = {
|
discharge_data = {
|
||||||
"pk_phhd": pk_phhd,
|
"pk_phhd": pk_phhd,
|
||||||
"hospital": handle_hospital(get_best_value_in_keys(discharge_record_ie_result, HOSPITAL)),
|
"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):
|
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 = {
|
cost_data = {
|
||||||
"pk_phhd": pk_phhd,
|
"pk_phhd": pk_phhd,
|
||||||
"name": handle_name(get_best_value_in_keys(cost_list_ie_result, PATIENT_NAME)),
|
"name": handle_name(get_best_value_in_keys(cost_list_ie_result, PATIENT_NAME)),
|
||||||
|
|||||||
Reference in New Issue
Block a user