diff --git a/photo_review/auto_photo_review.py b/photo_review/auto_photo_review.py index a2832cf..4ccf676 100644 --- a/photo_review/auto_photo_review.py +++ b/photo_review/auto_photo_review.py @@ -136,7 +136,8 @@ def information_extraction(phrec, pk_phhd, identity): for split_result in split_results: if split_result['img'] is None: continue - ocr_result += model_util.ocr(rotated_img) + a4_img = image_util.expand_to_a4_size(split_result['img']) + ocr_result += model_util.ocr(a4_img) ocr_text = common_util.ocr_result_to_text(ocr_result) rec_type = model_util.clas_text(ocr_text) if ocr_text else None if rec_type == '基本医保结算单': @@ -301,7 +302,7 @@ def settlement_task(pk_phhd, settlement_list_ie_result): settlement_data["medical_insurance_type"] = handle_insurance_type(settlement_data["medical_insurance_type_str"]) parse_money_result = parse_money( - get_best_value_of_key(settlement_list_ie_result, IE_KEY['upper_case_medical_expenses']), + get_best_value_of_key(settlement_list_ie_result, IE_KEY['uppercase_medical_expenses']), get_best_value_of_key(settlement_list_ie_result, IE_KEY['medical_expenses'])) settlement_data["medical_expenses_str"] = handle_original_data(parse_money_result[0]) settlement_data["medical_expenses"] = parse_money_result[1] @@ -397,9 +398,10 @@ def cost_task(pk_phhd, cost_list_ie_result): 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_decimal(cost_data["medical_expenses_str"]) - page_nums, page_count = parse_page_num(cost_list_ie_result[IE_KEY['page']]) - cost_data['page_nums'] = handle_original_data(','.join(page_nums)) - cost_data['page_count'] = handle_tiny_int(page_count) + if cost_list_ie_result.get(IE_KEY['page']): + page_nums, page_count = parse_page_num(cost_list_ie_result[IE_KEY['page']]) + cost_data['page_nums'] = handle_original_data(','.join(page_nums)) + cost_data['page_count'] = handle_tiny_int(page_count) save_or_update_ie(ZxIeCost, pk_phhd, cost_data) return cost_data diff --git a/services/paddle_services/__init__.py b/services/paddle_services/__init__.py index d2e5148..cf329dc 100644 --- a/services/paddle_services/__init__.py +++ b/services/paddle_services/__init__.py @@ -16,6 +16,6 @@ IE_KEY = { 'admission_id': '住院号', 'settlement_id': '医保结算单号码', 'age': '年龄', - 'upper_case_medical_expenses': '大写总额', + 'uppercase_medical_expenses': '大写总额', 'page': '页码', } diff --git a/util/image_util.py b/util/image_util.py index 4010b59..48cf32d 100644 --- a/util/image_util.py +++ b/util/image_util.py @@ -172,12 +172,14 @@ def invert_rotate_rectangle(rectangle, center, angle): return [new_top_left[0], new_top_left[1], new_bot_right[0], new_bot_right[1]] -def expand_to_a4_size(image): +def expand_to_a4_size(img_path): """ 以尽量少的方式将图片扩充到a4大小 - :param image: 图片NumPy数组 + :param img_path: 图片路径 :return: 扩充后的图片NumPy数组和偏移量 """ + image = cv2.imread(img_path) + img_name, img_ext = parse_save_path(img_path) height, width = image.shape[:2] x_offset, y_offset = 0, 0 hw_ratio = height / width @@ -205,7 +207,10 @@ def expand_to_a4_size(image): exp_img = numpy.zeros((y_offset, width, 3), dtype='uint8') exp_img.fill(255) image = numpy.vstack([exp_img, image, exp_img]) - return image, x_offset, y_offset + # todo:未拓展时不要生成新的图片 + save_path = get_save_path(f'{img_name}.a4.{img_ext}') + cv2.imwrite(save_path, image) + return save_path, x_offset, y_offset def combined(img1, img2):