diff --git a/check_ie_result/check_ie_result.py b/check_ie_result/check_ie_result.py index 6c6d580..80eb3e0 100644 --- a/check_ie_result/check_ie_result.py +++ b/check_ie_result/check_ie_result.py @@ -1,12 +1,18 @@ import json import os import sys +from decimal import Decimal from io import BytesIO from itertools import groupby import requests from PIL import ImageDraw, Image, ImageFont +from photo_review.entity.zx_ie_cost import ZxIeCost +from photo_review.entity.zx_ie_discharge import ZxIeDischarge +from photo_review.entity.zx_ie_settlement import ZxIeSettlement +from photo_review.entity.zx_phhd import ZxPhhd + sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from config.mysql import MysqlSession from photo_review.entity.zx_ocr import ZxOcr @@ -15,7 +21,51 @@ from ucloud import ucloud def check_ie_result(pk_phhd): + json_result = {"pk_phhd": pk_phhd} session = MysqlSession() + phhd = session.query(ZxPhhd.cXm).filter(ZxPhhd.pk_phhd == pk_phhd).one() + json_result["cXm"] = phhd.cXm + settlement = session.query(ZxIeSettlement.pk_ie_settlement, ZxIeSettlement.name, ZxIeSettlement.admission_date, ZxIeSettlement.discharge_date, + ZxIeSettlement.medical_expenses, ZxIeSettlement.personal_cash_payment, ZxIeSettlement.personal_account_payment, + ZxIeSettlement.personal_funded_amount, ZxIeSettlement.medical_insurance_type).filter(ZxIeSettlement.pk_phhd == pk_phhd).one() + settlement_result = { + "pk_ie_settlement": settlement.pk_ie_settlement, + "name": settlement.name, + "admission_date": settlement.admission_date, + "discharge_date": settlement.discharge_date, + "medical_expenses": settlement.medical_expenses, + "personal_cash_payment": settlement.personal_cash_payment, + "personal_account_payment": settlement.personal_account_payment, + "personal_funded_amount": settlement.personal_funded_amount, + "medical_insurance_type": settlement.medical_insurance_type, + } + json_result["settlement"] = settlement_result + + discharge = session.query(ZxIeDischarge.pk_ie_discharge, ZxIeDischarge.hospital, ZxIeDischarge.pk_yljg, ZxIeDischarge.department, ZxIeDischarge.pk_ylks, + ZxIeDischarge.name, ZxIeDischarge.admission_date, ZxIeDischarge.discharge_date, ZxIeDischarge.doctor).filter(ZxIeDischarge.pk_phhd == pk_phhd).one() + discharge_result = { + "pk_ie_discharge": discharge.pk_ie_discharge, + "hospital": discharge.hospital, + "pk_yljg": discharge.pk_yljg, + "department": discharge.department, + "pk_ylks": discharge.pk_ylks, + "name": discharge.name, + "admission_date": discharge.admission_date, + "discharge_date": discharge.discharge_date, + "doctor": discharge.doctor, + } + json_result["discharge"] = discharge_result + + cost = session.query(ZxIeCost.pk_ie_cost, ZxIeCost.name, ZxIeCost.admission_date, ZxIeCost.discharge_date, ZxIeCost.medical_expenses).filter(ZxIeCost.pk_phhd == pk_phhd).one() + cost_result = { + "pk_ie_cost": cost.pk_ie_cost, + "name": cost.name, + "admission_date": cost.admission_date, + "discharge_date": cost.discharge_date, + "medical_expenses": cost.medical_expenses, + } + json_result["cost"] = cost_result + phrecs = session.query(ZxPhrec.pk_phrec, ZxPhrec.pk_phhd, ZxPhrec.cRectype, ZxPhrec.cfjaddress).filter(ZxPhrec.pk_phhd == pk_phhd).all() for phrec in phrecs: img_name = phrec.cfjaddress @@ -50,6 +100,14 @@ def check_ie_result(pk_phhd): image.save(f"./check_result/{pk_phhd}/{ocr_item.id}/{img_name}") session.close() + # 自定义JSON处理器来处理Decimal类型 + def decimal_default(obj): + if isinstance(obj, Decimal): + return float(obj) + + with open(f"./check_result/{pk_phhd}/result.json", "w", encoding="utf-8") as json_file: + json.dump(json_result, json_file, indent=4, ensure_ascii=False, default=decimal_default) + if __name__ == '__main__': check_ie_result(3866770)