diff --git a/auto_email/__init__.py b/auto_email/__init__.py index 7e31a60..e69de29 100644 --- a/auto_email/__init__.py +++ b/auto_email/__init__.py @@ -1,15 +0,0 @@ -# 程序异常短信配置 -ERROR_EMAIL_CONFIG = { - # SMTP服务器地址 - "smtp_server": "smtp.163.com", - # 连接SMTP的端口 - "port": 994, - # 发件人邮箱地址,请确保开启了SMTP邮件服务! - "sender": "EchoLiu618@163.com", - # 授权码--用于登录第三方邮件客户端的专用密码,不是邮箱密码 - "authorization_code": "OKPQLIIVLVGRZYVH", - # 收件人邮箱地址 - "receivers": ["1515783401@qq.com"], - # 尝试次数 - "retry_times": 3, -} \ No newline at end of file diff --git a/auto_email/error_email.py b/auto_email/error_email.py index 7899a83..91af21e 100644 --- a/auto_email/error_email.py +++ b/auto_email/error_email.py @@ -3,7 +3,7 @@ import logging import smtplib from email.mime.text import MIMEText -from auto_email import ERROR_EMAIL_CONFIG +from config.email import ERROR_EMAIL_CONFIG def send_error_email(program_name, error_name, error_detail): diff --git a/auto_generator.py b/auto_generator.py index 897b0aa..ffcec1d 100644 --- a/auto_generator.py +++ b/auto_generator.py @@ -1,15 +1,15 @@ # 自动生成数据库表和sqlalchemy对应的Model import subprocess -from db import DB_URL +from config.mysql import DB_URL if __name__ == '__main__': table = input("请输入表名:") - out_file = f"db/{table}.py" + out_file = f"photo_review/entity/{table}.py" command = f"sqlacodegen {DB_URL} --outfile={out_file} --tables={table}" try: subprocess.run(command, shell=True, check=True) - print(f"{table}.py文件生成成功!请检查并复制到合适的文件中!") + print(f"{table}.py文件生成成功!请手动调整Base的声明!") except Exception as e: print(f"生成{table}.py文件时发生错误: {e}") diff --git a/check_ie_result/__init__.py b/check_ie_result/__init__.py index 8b13789..e69de29 100644 --- a/check_ie_result/__init__.py +++ b/check_ie_result/__init__.py @@ -1 +0,0 @@ - diff --git a/check_ie_result/check_ie_result.py b/check_ie_result/check_ie_result.py index e8730b1..065f7c9 100644 --- a/check_ie_result/check_ie_result.py +++ b/check_ie_result/check_ie_result.py @@ -9,9 +9,15 @@ 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 db import MysqlSession -from db.mysql import ZxIeCost, ZxIeDischarge, ZxIeSettlement, ZxPhhd, ZxOcr, ZxPhrec +from config.mysql import MysqlSession +from photo_review.entity.zx_ocr import ZxOcr +from photo_review.entity.zx_phrec import ZxPhrec from ucloud import ucloud diff --git a/config/email.py b/config/email.py new file mode 100644 index 0000000..c7cd056 --- /dev/null +++ b/config/email.py @@ -0,0 +1,15 @@ +# 程序异常短信配置 +ERROR_EMAIL_CONFIG = { + # SMTP服务器地址 + "smtp_server": "smtp.163.com", + # 连接SMTP的端口 + "port": 994, + # 发件人邮箱地址,请确保开启了SMTP邮件服务! + "sender": "EchoLiu618@163.com", + # 授权码--用于登录第三方邮件客户端的专用密码,不是邮箱密码 + "authorization_code": "OKPQLIIVLVGRZYVH", + # 收件人邮箱地址 + "receivers": ["1515783401@qq.com"], + # 尝试次数 + "retry_times": 3, +} diff --git a/config/keys.py b/config/keys.py new file mode 100644 index 0000000..fc6c58b --- /dev/null +++ b/config/keys.py @@ -0,0 +1,39 @@ +# 信息抽取关键词配置 + +# 患者姓名 +PATIENT_NAME = ["患者姓名"] +# 入院日期 +ADMISSION_DATE = ["入院日期"] +# 出院日期 +DISCHARGE_DATE = ["出院日期"] +# 发生医疗费 +MEDICAL_EXPENSES = ["费用总额"] +# 个人现金支付 +PERSONAL_CASH_PAYMENT = ["个人现金支付"] +# 个人账户支付 +PERSONAL_ACCOUNT_PAYMENT = ["个人账户支付"] +# 个人自费金额 +PERSONAL_FUNDED_AMOUNT = ["自费金额"] +# 医保类别 +MEDICAL_INSURANCE_TYPE = ["医保类型"] +# 就诊医院 +HOSPITAL = ["医院"] +# 就诊科室 +DEPARTMENT = ["科室"] +# 主治医生 +DOCTOR = ["主治医生"] +# 住院号 +ADMISSION_ID = ["住院号"] +# 医保结算单号码 +SETTLEMENT_ID = ["医保结算单号码"] +# 年龄 +AGE = ["年龄"] + +SETTLEMENT_LIST_SCHEMA = \ + PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES + PERSONAL_CASH_PAYMENT \ + + PERSONAL_ACCOUNT_PAYMENT + PERSONAL_FUNDED_AMOUNT + MEDICAL_INSURANCE_TYPE + ADMISSION_ID + SETTLEMENT_ID + +DISCHARGE_RECORD_SCHEMA = \ + HOSPITAL + DEPARTMENT + PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + DOCTOR + ADMISSION_ID + AGE + +COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES diff --git a/log/__init__.py b/config/log.py similarity index 99% rename from log/__init__.py rename to config/log.py index 3c25585..a8392eb 100644 --- a/log/__init__.py +++ b/config/log.py @@ -38,4 +38,4 @@ LOGGING_CONFIG = { 'propagate': False, # 是否向上级传播日志信息 }, }, -} \ No newline at end of file +} diff --git a/db/__init__.py b/config/mysql.py similarity index 100% rename from db/__init__.py rename to config/mysql.py diff --git a/config/photo_review.py b/config/photo_review.py new file mode 100644 index 0000000..9f4865b --- /dev/null +++ b/config/photo_review.py @@ -0,0 +1,17 @@ +# 项目奔溃的重试次数 +RETRY_TIME = 1 + +# 每次从数据库获取的案子数量 +PHHD_BATCH_SIZE = 10 + +# 没有查询到案子的等待时间(分钟) +SLEEP_MINUTES = 5 + +# 是否发送报错邮件 +SEND_ERROR_EMAIL = True + +# 是否开启布局分析 +LAYOUT_ANALYSIS = False + +# 可使用的GPU +CUDA_VISIBLE_DEVICES = "1" diff --git a/config/ucloud.py b/config/ucloud.py new file mode 100644 index 0000000..44373b0 --- /dev/null +++ b/config/ucloud.py @@ -0,0 +1,12 @@ +# 公钥 +PUBLIC_KEY = "4Z7QYI7qml36QRjcCjKrls7aHl1R6H6uq" +# 私钥 +PRIVATE_KEY = "FIdW1Kev1Ge3K7GHXzSLyGG1wTnaG6LE9BxmIVubcCaG" +# 桶 +BUCKET = "drg100" +# 上传后缀 +UPLOAD_SUFFIX = ".cn-sh2.ufileos.com" +# 下载后缀 +DOWNLOAD_SUFFIX = ".cn-sh2.ufileos.com" +# 私空间文件地址过期时间(秒) +PRIVATE_EXPIRES = 3600 diff --git a/util/__init__.py b/log/.keep similarity index 100% rename from util/__init__.py rename to log/.keep diff --git a/main.py b/main.py index 67938de..bfd5df0 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,9 @@ import logging.config +import os import traceback from auto_email.error_email import send_error_email -from log import LOGGING_CONFIG +from config.log import LOGGING_CONFIG from photo_review.photo_review import main # 项目必须从此处启动,否则代码中的相对路径可能导致错误的发生 @@ -17,5 +18,4 @@ if __name__ == '__main__': main() except Exception as e: log.error(traceback.format_exc()) - send_error_email(program_name='照片审核关键信息抽取脚本', error_name=repr(e), - error_detail=traceback.format_exc()) + send_error_email(program_name='照片审核关键信息抽取脚本', error_name=repr(e), error_detail=traceback.format_exc()) diff --git a/db/mysql.py b/models.py similarity index 51% rename from db/mysql.py rename to models.py index fd0f527..f3bb680 100644 --- a/db/mysql.py +++ b/models.py @@ -2,164 +2,7 @@ from sqlalchemy import Column, DECIMAL, Date, DateTime, Index, String, text, LargeBinary from sqlalchemy.dialects.mysql import BIT, CHAR, INTEGER, TINYINT, VARCHAR -from db import Base - - -class BdYljg(Base): - __tablename__ = 'bd_yljg' - - pk_yljg = Column(INTEGER(11), primary_key=True, comment='医疗机构主键') - code = Column(String(12), nullable=False, unique=True, comment='编码') - name = Column(String(200), comment='名称') - cpym = Column(String(40), comment='拼音码') - pk_yldj = Column(INTEGER(11), comment='医疗机构等级') - pk_father = Column(INTEGER(11), comment='上级医疗机构') - address = Column(String(300), comment='地址') - pk_region = Column(INTEGER(11), comment='行政区划主键') - depiction = Column(String(100), comment='备注') - creator = Column(String(20), comment='创建人') - creationtime = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - modifier = Column(String(20), comment='最后修改人') - modifiedtime = Column(DateTime, comment='最后修改时间') - enablestate = Column(TINYINT(4), server_default=text("'1'"), comment='启用状态') - create_by = Column(String(100), comment='创建人') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - update_by = Column(String(100), comment='更新人') - update_time = Column(DateTime, comment='更新时间') - del_flag = Column(TINYINT(1), server_default=text("'0'"), comment='删除标记') - - -class BdYlks(Base): - __tablename__ = 'bd_ylks' - - pk_ylks = Column(INTEGER(11), primary_key=True, comment='科室主键') - code = Column(String(12), nullable=False, index=True, comment='编码') - name = Column(String(200), comment='名称') - cpym = Column(String(40), comment='拼音码') - pk_father = Column(INTEGER(11)) - cIsBottom = Column(CHAR(1), comment='是否底层') - depiction = Column(String(100), comment='备注') - creator = Column(String(20), comment='创建人') - creationtime = Column(DateTime, comment='创建时间') - modifier = Column(String(20), comment='最后修改人') - modifiedtime = Column(DateTime, comment='最后修改时间') - enablestate = Column(TINYINT(4), server_default=text("'1'"), comment='启用状态') - create_by = Column(String(100), comment='创建人') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - update_by = Column(String(100), comment='更新人') - update_time = Column(DateTime, comment='更新时间') - del_flag = Column(TINYINT(1), server_default=text("'0'"), comment='删除标记') - - -class ZxIeCost(Base): - __tablename__ = 'zx_ie_cost' - - pk_ie_cost = Column(INTEGER(11), primary_key=True, comment='费用明细信息抽取主键') - pk_phhd = Column(INTEGER(11), nullable=False, unique=True, comment='报销案子主键') - name = Column(String(30), comment='患者姓名') - admission_date_str = Column(String(255), comment='入院日期字符串') - admission_date = Column(Date, comment='入院日期') - discharge_date_str = Column(String(255), comment='出院日期字符串') - discharge_date = Column(Date, comment='出院日期') - medical_expenses_str = Column(String(255), comment='费用总额字符串') - medical_expenses = Column(DECIMAL(18, 2), comment='费用总额') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - creator = Column(String(255), comment='创建人') - update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), - comment='修改时间') - updater = Column(String(255), comment='修改人') - - -class ZxIeCostDetail(Base): - __tablename__ = 'zx_ie_cost_detail' - - pk_ie_cost_detail = Column(INTEGER(11), primary_key=True, comment='费用明细详情主键') - pk_ie_cost = Column(INTEGER(11), nullable=False, comment='费用明细信息抽取主键') - pk_phhd = Column(INTEGER(11), nullable=False, comment='报销案子主键') - _class = Column('class', String(255), comment='类别') - name = Column(String(255), comment='名称') - specification = Column(String(255), comment='规格') - price = Column(DECIMAL(18, 2), comment='单价') - quantity = Column(INTEGER(11), comment='数量') - amount = Column(DECIMAL(18, 2), comment='金额(单价 * 数量)') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - creator = Column(String(30), comment='创建人') - update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), - comment='修改时间') - updater = Column(String(30), comment='修改人') - - -class ZxIeDischarge(Base): - __tablename__ = 'zx_ie_discharge' - - pk_ie_discharge = Column(INTEGER(11), primary_key=True, comment='出院记录信息抽取主键') - pk_phhd = Column(INTEGER(11), nullable=False, unique=True, comment='报销案子主键') - content = Column(String(5000), comment='详细内容') - hospital = Column(String(255), comment='医院') - pk_yljg = Column(INTEGER(11), comment='医院主键') - department = Column(String(255), comment='科室') - pk_ylks = Column(INTEGER(11), comment='科室主键') - name = Column(String(30), comment='患者姓名') - age = Column(INTEGER(3), comment='年龄') - admission_date_str = Column(String(255), comment='入院日期字符串') - admission_date = Column(Date, comment='入院日期') - discharge_date_str = Column(String(255), comment='出院日期字符串') - discharge_date = Column(Date, comment='出院日期') - doctor = Column(String(30), comment='主治医生') - admission_id = Column(String(50), comment='住院号') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - creator = Column(String(255), comment='创建人') - update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), - comment='修改时间') - updater = Column(String(255), comment='修改人') - - -class ZxIeSettlement(Base): - __tablename__ = 'zx_ie_settlement' - - pk_ie_settlement = Column(INTEGER(11), primary_key=True, comment='结算清单信息抽取主键') - pk_phhd = Column(INTEGER(11), nullable=False, unique=True, comment='报销案子主键') - name = Column(String(30), comment='患者姓名') - admission_date_str = Column(String(255), comment='入院日期字符串') - admission_date = Column(Date, comment='入院日期') - discharge_date_str = Column(String(255), comment='出院日期字符串') - discharge_date = Column(Date, comment='出院日期') - medical_expenses_str = Column(String(255), comment='费用总额字符串') - medical_expenses = Column(DECIMAL(18, 2), comment='费用总额') - personal_cash_payment_str = Column(String(255), comment='个人现金支付字符串') - personal_cash_payment = Column(DECIMAL(18, 2), comment='个人现金支付') - personal_account_payment_str = Column(String(255), comment='个人账户支付字符串') - personal_account_payment = Column(DECIMAL(18, 2), comment='个人账户支付') - personal_funded_amount_str = Column(String(255), comment='自费金额字符串') - personal_funded_amount = Column(DECIMAL(18, 2), comment='自费金额') - medical_insurance_type_str = Column(String(255), comment='医保类型字符串') - medical_insurance_type = Column(String(40), comment='医保类型') - admission_id = Column(String(50), comment='住院号') - settlement_id = Column(String(50), comment='医保结算单号码') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - creator = Column(String(255), comment='创建人') - update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), - comment='修改时间') - updater = Column(String(255), comment='修改人') - - -class ZxOcr(Base): - __tablename__ = 'zx_ocr' - - pk_ocr = Column(INTEGER(11), primary_key=True, comment='图片OCR识别主键') - pk_phhd = Column(INTEGER(11), nullable=False, comment='报销单主键') - pk_phrec = Column(INTEGER(11), nullable=False, comment='图片主键') - id = Column(INTEGER(11), nullable=False, comment='识别批次') - cfjaddress = Column(String(200), nullable=False, comment='云存储文件名') - content = Column(String(5000), comment='OCR识别内容') - rotation_angle = Column(INTEGER(11), comment='旋转角度') - x_offset = Column(INTEGER(11), comment='x轴偏移量') - y_offset = Column(INTEGER(11), comment='y轴偏移量') - create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') - creator = Column(String(30), comment='创建人') - update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), - comment='修改时间') - updater = Column(String(30), comment='修改人') +from config.mysql import Base class ZxPhhd(Base): diff --git a/photo_mask.py b/photo_mask.py index 013f252..f73ae4d 100644 --- a/photo_mask.py +++ b/photo_mask.py @@ -13,11 +13,12 @@ from paddlenlp.utils.doc_parser import DocParser from sqlalchemy import update from auto_email.error_email import send_error_email -from db import MysqlSession -from db.mysql import ZxPhrec, ZxPhhd -from log import LOGGING_CONFIG -from photo_review import PHHD_BATCH_SIZE, SLEEP_MINUTES -from ucloud import BUCKET, ucloud +from config.log import LOGGING_CONFIG +from config.mysql import MysqlSession +from config.photo_review import PHHD_BATCH_SIZE, SLEEP_MINUTES +from config.ucloud import BUCKET +from models import ZxPhrec, ZxPhhd +from ucloud import ucloud DOC_PARSER = DocParser(use_gpu=True, device_id=1) diff --git a/photo_review/__init__.py b/photo_review/__init__.py index b3c06e3..872bc2c 100644 --- a/photo_review/__init__.py +++ b/photo_review/__init__.py @@ -1,73 +1,13 @@ from paddlenlp import Taskflow from paddleocr import PaddleOCR -""" -项目配置 -""" -# 项目奔溃的重试次数 -RETRY_TIME = 1 +from config import keys -# 每次从数据库获取的案子数量 -PHHD_BATCH_SIZE = 10 - -# 没有查询到案子的等待时间(分钟) -SLEEP_MINUTES = 5 - -# 是否发送报错邮件 -SEND_ERROR_EMAIL = True - -# 是否开启布局分析 -LAYOUT_ANALYSIS = False - -# 可使用的GPU -CUDA_VISIBLE_DEVICES = "1" - -""" -信息抽取关键词配置 -""" -# 患者姓名 -PATIENT_NAME = ["患者姓名"] -# 入院日期 -ADMISSION_DATE = ["入院日期"] -# 出院日期 -DISCHARGE_DATE = ["出院日期"] -# 发生医疗费 -MEDICAL_EXPENSES = ["费用总额"] -# 个人现金支付 -PERSONAL_CASH_PAYMENT = ["个人现金支付"] -# 个人账户支付 -PERSONAL_ACCOUNT_PAYMENT = ["个人账户支付"] -# 个人自费金额 -PERSONAL_FUNDED_AMOUNT = ["自费金额"] -# 医保类别 -MEDICAL_INSURANCE_TYPE = ["医保类型"] -# 就诊医院 -HOSPITAL = ["医院"] -# 就诊科室 -DEPARTMENT = ["科室"] -# 主治医生 -DOCTOR = ["主治医生"] -# 住院号 -ADMISSION_ID = ["住院号"] -# 医保结算单号码 -SETTLEMENT_ID = ["医保结算单号码"] -# 年龄 -AGE = ["年龄"] - -SETTLEMENT_LIST_SCHEMA = \ - PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES + PERSONAL_CASH_PAYMENT \ - + PERSONAL_ACCOUNT_PAYMENT + PERSONAL_FUNDED_AMOUNT + MEDICAL_INSURANCE_TYPE + ADMISSION_ID + SETTLEMENT_ID - -DISCHARGE_RECORD_SCHEMA = \ - HOSPITAL + DEPARTMENT + PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + DOCTOR + ADMISSION_ID + AGE - -COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES - -SETTLEMENT_IE = Taskflow("information_extraction", schema=SETTLEMENT_LIST_SCHEMA, model="uie-x-base", +SETTLEMENT_IE = Taskflow("information_extraction", schema=keys.SETTLEMENT_LIST_SCHEMA, model="uie-x-base", task_path="config/model/settlement_list_model", layout_analysis=False, precision='fp16') -DISCHARGE_IE = Taskflow("information_extraction", schema=DISCHARGE_RECORD_SCHEMA, model="uie-x-base", +DISCHARGE_IE = Taskflow("information_extraction", schema=keys.DISCHARGE_RECORD_SCHEMA, model="uie-x-base", task_path="config/model/discharge_record_model", layout_analysis=False, precision='fp16') -COST_IE = Taskflow("information_extraction", schema=COST_LIST_SCHEMA, model="uie-x-base", device_id=1, +COST_IE = Taskflow("information_extraction", schema=keys.COST_LIST_SCHEMA, model="uie-x-base", device_id=1, task_path="config/model/cost_list_model", layout_analysis=False, precision='fp16') OCR = PaddleOCR(use_angle_cls=False, lang="ch", show_log=False, gpu_id=1) diff --git a/photo_review/entity/__init__.py b/photo_review/entity/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/photo_review/entity/bd_yljg.py b/photo_review/entity/bd_yljg.py new file mode 100644 index 0000000..66210d8 --- /dev/null +++ b/photo_review/entity/bd_yljg.py @@ -0,0 +1,29 @@ +# coding: utf-8 +from sqlalchemy import Column, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER, TINYINT + +from config.mysql import Base + + +class BdYljg(Base): + __tablename__ = 'bd_yljg' + + pk_yljg = Column(INTEGER(11), primary_key=True, comment='医疗机构主键') + code = Column(String(12), nullable=False, unique=True, comment='编码') + name = Column(String(200), comment='名称') + cpym = Column(String(40), comment='拼音码') + pk_yldj = Column(INTEGER(11), comment='医疗机构等级') + pk_father = Column(INTEGER(11), comment='上级医疗机构') + address = Column(String(300), comment='地址') + pk_region = Column(INTEGER(11), comment='行政区划主键') + depiction = Column(String(100), comment='备注') + creator = Column(String(20), comment='创建人') + creationtime = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + modifier = Column(String(20), comment='最后修改人') + modifiedtime = Column(DateTime, comment='最后修改时间') + enablestate = Column(TINYINT(4), server_default=text("'1'"), comment='启用状态') + create_by = Column(String(100), comment='创建人') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + update_by = Column(String(100), comment='更新人') + update_time = Column(DateTime, comment='更新时间') + del_flag = Column(TINYINT(1), server_default=text("'0'"), comment='删除标记') diff --git a/photo_review/entity/bd_ylks.py b/photo_review/entity/bd_ylks.py new file mode 100644 index 0000000..a168a96 --- /dev/null +++ b/photo_review/entity/bd_ylks.py @@ -0,0 +1,27 @@ +# coding: utf-8 +from sqlalchemy import CHAR, Column, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER, TINYINT + +from config.mysql import Base + + +class BdYlks(Base): + __tablename__ = 'bd_ylks' + + pk_ylks = Column(INTEGER(11), primary_key=True, comment='科室主键') + code = Column(String(12), nullable=False, index=True, comment='编码') + name = Column(String(200), comment='名称') + cpym = Column(String(40), comment='拼音码') + pk_father = Column(INTEGER(11)) + cIsBottom = Column(CHAR(1), comment='是否底层') + depiction = Column(String(100), comment='备注') + creator = Column(String(20), comment='创建人') + creationtime = Column(DateTime, comment='创建时间') + modifier = Column(String(20), comment='最后修改人') + modifiedtime = Column(DateTime, comment='最后修改时间') + enablestate = Column(TINYINT(4), server_default=text("'1'"), comment='启用状态') + create_by = Column(String(100), comment='创建人') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + update_by = Column(String(100), comment='更新人') + update_time = Column(DateTime, comment='更新时间') + del_flag = Column(TINYINT(1), server_default=text("'0'"), comment='删除标记') diff --git a/photo_review/entity/zx_ie_cost.py b/photo_review/entity/zx_ie_cost.py new file mode 100644 index 0000000..04834b2 --- /dev/null +++ b/photo_review/entity/zx_ie_cost.py @@ -0,0 +1,23 @@ +# coding: utf-8 +from sqlalchemy import Column, DECIMAL, Date, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER + +from config.mysql import Base + + +class ZxIeCost(Base): + __tablename__ = 'zx_ie_cost' + + pk_ie_cost = Column(INTEGER(11), primary_key=True, comment='费用明细信息抽取主键') + pk_phhd = Column(INTEGER(11), nullable=False, unique=True, comment='报销案子主键') + name = Column(String(30), comment='患者姓名') + admission_date_str = Column(String(255), comment='入院日期字符串') + admission_date = Column(Date, comment='入院日期') + discharge_date_str = Column(String(255), comment='出院日期字符串') + discharge_date = Column(Date, comment='出院日期') + medical_expenses_str = Column(String(255), comment='费用总额字符串') + medical_expenses = Column(DECIMAL(18, 2), comment='费用总额') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + creator = Column(String(255), comment='创建人') + update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), comment='修改时间') + updater = Column(String(255), comment='修改人') diff --git a/photo_review/entity/zx_ie_cost_detail.py b/photo_review/entity/zx_ie_cost_detail.py new file mode 100644 index 0000000..e41aeda --- /dev/null +++ b/photo_review/entity/zx_ie_cost_detail.py @@ -0,0 +1,23 @@ +# coding: utf-8 +from sqlalchemy import Column, DECIMAL, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER + +from config.mysql import Base + + +class ZxIeCostDetail(Base): + __tablename__ = 'zx_ie_cost_detail' + + pk_ie_cost_detail = Column(INTEGER(11), primary_key=True, comment='费用明细详情主键') + pk_ie_cost = Column(INTEGER(11), nullable=False, comment='费用明细信息抽取主键') + pk_phhd = Column(INTEGER(11), nullable=False, comment='报销案子主键') + _class = Column('class', String(255), comment='类别') + name = Column(String(255), comment='名称') + specification = Column(String(255), comment='规格') + price = Column(DECIMAL(18, 2), comment='单价') + quantity = Column(INTEGER(11), comment='数量') + amount = Column(DECIMAL(18, 2), comment='金额(单价 * 数量)') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + creator = Column(String(30), comment='创建人') + update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), comment='修改时间') + updater = Column(String(30), comment='修改人') diff --git a/photo_review/entity/zx_ie_discharge.py b/photo_review/entity/zx_ie_discharge.py new file mode 100644 index 0000000..8609154 --- /dev/null +++ b/photo_review/entity/zx_ie_discharge.py @@ -0,0 +1,30 @@ +# coding: utf-8 +from sqlalchemy import Column, Date, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER + +from config.mysql import Base + + +class ZxIeDischarge(Base): + __tablename__ = 'zx_ie_discharge' + + pk_ie_discharge = Column(INTEGER(11), primary_key=True, comment='出院记录信息抽取主键') + pk_phhd = Column(INTEGER(11), nullable=False, unique=True, comment='报销案子主键') + content = Column(String(5000), comment='详细内容') + hospital = Column(String(255), comment='医院') + pk_yljg = Column(INTEGER(11), comment='医院主键') + department = Column(String(255), comment='科室') + pk_ylks = Column(INTEGER(11), comment='科室主键') + name = Column(String(30), comment='患者姓名') + age = Column(INTEGER(3), comment='年龄') + admission_date_str = Column(String(255), comment='入院日期字符串') + admission_date = Column(Date, comment='入院日期') + discharge_date_str = Column(String(255), comment='出院日期字符串') + discharge_date = Column(Date, comment='出院日期') + doctor = Column(String(30), comment='主治医生') + admission_id = Column(String(50), comment='住院号') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + creator = Column(String(255), comment='创建人') + update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), + comment='修改时间') + updater = Column(String(255), comment='修改人') diff --git a/photo_review/entity/zx_ie_settlement.py b/photo_review/entity/zx_ie_settlement.py new file mode 100644 index 0000000..59f3271 --- /dev/null +++ b/photo_review/entity/zx_ie_settlement.py @@ -0,0 +1,34 @@ +# coding: utf-8 +from sqlalchemy import Column, DECIMAL, Date, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER + +from config.mysql import Base + + +class ZxIeSettlement(Base): + __tablename__ = 'zx_ie_settlement' + + pk_ie_settlement = Column(INTEGER(11), primary_key=True, comment='结算清单信息抽取主键') + pk_phhd = Column(INTEGER(11), nullable=False, unique=True, comment='报销案子主键') + name = Column(String(30), comment='患者姓名') + admission_date_str = Column(String(255), comment='入院日期字符串') + admission_date = Column(Date, comment='入院日期') + discharge_date_str = Column(String(255), comment='出院日期字符串') + discharge_date = Column(Date, comment='出院日期') + medical_expenses_str = Column(String(255), comment='费用总额字符串') + medical_expenses = Column(DECIMAL(18, 2), comment='费用总额') + personal_cash_payment_str = Column(String(255), comment='个人现金支付字符串') + personal_cash_payment = Column(DECIMAL(18, 2), comment='个人现金支付') + personal_account_payment_str = Column(String(255), comment='个人账户支付字符串') + personal_account_payment = Column(DECIMAL(18, 2), comment='个人账户支付') + personal_funded_amount_str = Column(String(255), comment='自费金额字符串') + personal_funded_amount = Column(DECIMAL(18, 2), comment='自费金额') + medical_insurance_type_str = Column(String(255), comment='医保类型字符串') + medical_insurance_type = Column(String(40), comment='医保类型') + admission_id = Column(String(50), comment='住院号') + settlement_id = Column(String(50), comment='医保结算单号码') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + creator = Column(String(255), comment='创建人') + update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), + comment='修改时间') + updater = Column(String(255), comment='修改人') diff --git a/photo_review/entity/zx_ocr.py b/photo_review/entity/zx_ocr.py new file mode 100644 index 0000000..dbbf031 --- /dev/null +++ b/photo_review/entity/zx_ocr.py @@ -0,0 +1,23 @@ +# coding: utf-8 +from sqlalchemy import Column, DateTime, String, text +from sqlalchemy.dialects.mysql import INTEGER + +from config.mysql import Base + + +class ZxOcr(Base): + __tablename__ = 'zx_ocr' + + pk_ocr = Column(INTEGER(11), primary_key=True, comment='图片OCR识别主键') + pk_phhd = Column(INTEGER(11), nullable=False, comment='报销单主键') + pk_phrec = Column(INTEGER(11), nullable=False, comment='图片主键') + id = Column(INTEGER(11), nullable=False, comment='识别批次') + cfjaddress = Column(String(200), nullable=False, comment='云存储文件名') + content = Column(String(5000), comment='OCR识别内容') + rotation_angle = Column(INTEGER(11), comment='旋转角度') + x_offset = Column(INTEGER(11), comment='x轴偏移量') + y_offset = Column(INTEGER(11), comment='y轴偏移量') + create_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + creator = Column(String(30), comment='创建人') + update_time = Column(DateTime, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"), comment='修改时间') + updater = Column(String(30), comment='修改人') diff --git a/photo_review/entity/zx_phhd.py b/photo_review/entity/zx_phhd.py new file mode 100644 index 0000000..6c329bd --- /dev/null +++ b/photo_review/entity/zx_phhd.py @@ -0,0 +1,115 @@ +# coding: utf-8 +from sqlalchemy import Column, DECIMAL, Date, DateTime, Index, String, text +from sqlalchemy.dialects.mysql import BIT, CHAR, INTEGER, TINYINT, VARCHAR + +from config.mysql import Base + + +class ZxPhhd(Base): + __tablename__ = 'zx_phhd' + __table_args__ = ( + Index('zx_phhd_idx3', 'pk_yljg', 'cjsd_id'), + ) + + pk_phhd = Column(INTEGER(11), primary_key=True, comment='病案主键') + cPhhd_id = Column(VARCHAR(20), index=True, comment='拍一拍单据号') + billdate = Column(DateTime, index=True) + pk_person = Column(INTEGER(11), server_default=text("'0'"), comment='人员主键') + pk_corp = Column(INTEGER(11), index=True, server_default=text("'0'"), comment='单位主键') + cRyid = Column(VARCHAR(20), comment='人员编码') + cJBH = Column(VARCHAR(20), comment='结报号') + cXm = Column(String(12), comment='姓名') + cSfzh = Column(VARCHAR(20), index=True, comment='身份证号') + czh = Column(VARCHAR(20), comment='小组') + cXb = Column(VARCHAR(2), comment='性别') + dCsny = Column(Date, comment='出身时间') + fAge = Column(INTEGER(4), server_default=text("'0'"), comment='年龄') + pk_yljg = Column(INTEGER(11), server_default=text("'0'"), comment='医院pk') + pk_ylks = Column(INTEGER(11), server_default=text("'0'"), comment='科室pk') + cDoctor = Column(VARCHAR(20), comment='医生') + dZYRQ = Column(DateTime, comment='入院日期') + dCYRQ = Column(DateTime) + cZYH = Column(VARCHAR(20), comment='住院号') + iMZTS = Column(INTEGER(4), server_default=text("'0'"), comment='住院天数') + fFSYLFY = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='发生医疗费用') + fZcfwfy = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='政策范围内费用') + fxnhbcje = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='新农合补助金额') + fqtbcje = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='其它补助金额') + fBCJE = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='补偿金额') + fgrzfje1 = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='个人支付金额1') + fgezfje2 = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='个人支付金额2') + fgrzfje = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='个人自费金额') + fZfje = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='自付金额') + fXianje = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='限额') + fMaxbcje = Column(DECIMAL(18, 2), server_default=text("'0.00'"), comment='最高支付') + cJBBM = Column(VARCHAR(20), server_default=text("'-'"), comment='疾病编码') + cJbbm_cyzd = Column(VARCHAR(20), comment='疾病编码出院诊断') + cSsczmc = Column(VARCHAR(100), comment='手术操作名称') + problem_note = Column(String(400)) + depiction = Column(VARCHAR(300), comment='备注') + creator = Column(VARCHAR(30), index=True, comment='创建人') + creationtime = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='创建时间') + modifier = Column(VARCHAR(30), comment='最后修改人') + modifiedtime = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"), comment='最后修改时间') + cStatus = Column(CHAR(1), index=True, server_default=text("'0'"), comment='状态') + vercode = Column(VARCHAR(4), comment='版本编码') + drg_groups_id = Column(String(6), server_default=text("'2017'"), comment='drg分组器版本号') + cSource_flag = Column(VARCHAR(4), server_default=text("'1'"), comment='病案来源') + ref_id1 = Column(VARCHAR(20)) + ref_id2 = Column(VARCHAR(20)) + ref_pk1 = Column(INTEGER(11)) + checker = Column(VARCHAR(30), comment='创建人') + checktime = Column(DateTime, comment='创建时间') + paint_user = Column(VARCHAR(30)) + paint_date = Column(DateTime) + filetype_id = Column(VARCHAR(10), comment='文件类型id') + cMphone = Column(VARCHAR(11), comment='移动电话') + cmiss_rectype = Column(VARCHAR(10), comment='遗漏记录类型') + cmiss_remark = Column(VARCHAR(200), comment='遗漏备注 ') + bhg_remark = Column(VARCHAR(200), comment='不合格原因') + cmis_jsd_flag = Column(BIT(1)) + cmis_jsd_page = Column(VARCHAR(40), comment='结算单遗漏页码') + cmis_cyjl_flag = Column(BIT(1)) + cmis_cyjl_page = Column(VARCHAR(40), comment='出院记录遗漏页码') + cmis_fyqd_flag = Column(BIT(1)) + cmis_fyqd_page = Column(VARCHAR(40), comment='费用清单遗漏页码') + cmis_evidence = Column(VARCHAR(60), comment='相关证明材料') + del_reason = Column(CHAR(1), server_default=text("'0'"), comment='删除原因') + deln_reason = Column(VARCHAR(2), comment='删除原因') + train_flag = Column(VARCHAR(10), server_default=text("'0'"), comment='培训标志') + cjsd_id = Column(VARCHAR(30), comment='结算单号码') + sms_content = Column(String(1000), comment='短信内容') + judge_backup = Column(VARCHAR(100)) + remind_num = Column(INTEGER(11), server_default=text("'0'"), comment='提醒次数') + input_cxm = Column(String(20), comment='姓名核对') + yb_type = Column(VARCHAR(10), comment='医保类别') + bucode = Column(VARCHAR(4), server_default=text("'1'"), comment='业务单元') + subcorpname = Column(VARCHAR(80), comment='子公司') + deptname = Column(VARCHAR(80), comment='部门') + psncode = Column(VARCHAR(16), comment='工号') + period_code = Column(VARCHAR(10), comment='会计期间') + cbznote = Column(VARCHAR(500)) + corp_list = Column(VARCHAR(200), comment='其它补助单位及年度') + perjudge_flag = Column(CHAR(1), server_default=text("'0'"), comment='人员信息判断标志') + priority_num = Column(TINYINT(4), server_default=text("'0'"), comment='优先领取') + addin_xybz = Column(BIT(1)) + addin_tybz = Column(BIT(1)) + finish_flag = Column(BIT(1)) + exsuccess_flag = Column(CHAR(1), server_default=text("'0'"), comment='交换成功标志') + pk_soncorp = Column(INTEGER(11), server_default=text("'0'"), comment='镇下村单位pk值') + return_times = Column(INTEGER(11), server_default=text("'0'"), comment='退回次数') + phuser_type = Column(CHAR(1), server_default=text("'1'"), comment='拍传人类型') + examine_note = Column(VARCHAR(400), comment='抽查意见') + examine_user = Column(VARCHAR(30), comment='抽查人') + examine_date = Column(DateTime, comment='抽查时间') + channel_code = Column(VARCHAR(10), comment='上传渠道') + einvoice_flag = Column(BIT(1)) + drgs_flag = Column(CHAR(1), server_default=text("'0'"), comment='病种类型(0-无,1-单病种,2-drg)') + applyDate = Column(DateTime) + admissionDate = Column(Date, comment='入院日期') + dischargeDate = Column(Date, comment='出院日期') + reapplyDate = Column(Date, comment='重新上传日期') + exreq_times = Column(INTEGER(11), server_default=text("'0'"), comment='请求次数') + drug_source = Column(CHAR(1), server_default=text("'0'"), comment='药品来源(1-外购药,0--没有)') + addin_passpaydate = Column(BIT(1)) + apply_classid = Column(CHAR(1), server_default=text("'0'"), comment='申请人员类别(1-农民工,0-默认)') diff --git a/photo_review/entity/zx_phrec.py b/photo_review/entity/zx_phrec.py new file mode 100644 index 0000000..613c82f --- /dev/null +++ b/photo_review/entity/zx_phrec.py @@ -0,0 +1,46 @@ +# coding: utf-8 +from sqlalchemy import CHAR, Column, DateTime, LargeBinary, String, text +from sqlalchemy.dialects.mysql import BIT, INTEGER, TINYINT + +from config.mysql import Base + + +class ZxPhrec(Base): + __tablename__ = 'zx_phrec' + + pk_phrec = Column(INTEGER(11), primary_key=True, comment='病案清主键') + pk_phhd = Column(INTEGER(11), index=True, comment='病案主键') + cRectype = Column(CHAR(1), comment='记录类型(1-入院小结,2--出院小结,3--手术记录 4清单)') + rowno = Column(TINYINT(4), server_default=text("'1'"), comment='序号') + cfjaddress = Column(String(200), comment='附件地址') + cfjaddress2 = Column(String(500), comment='附件地址2') + cfjaddress3 = Column(String(500), comment='附件地址3') + cfjblob = Column(LargeBinary, comment='附件') + cfjblob2 = Column(LargeBinary, comment='附件2') + cfjblob3 = Column(LargeBinary, comment='附件3') + subsys_id = Column(String(4), comment='分系统代码') + depiction = Column(String(100), comment='备注') + isreupload = Column(CHAR(1), server_default=text("'0'")) + checker = Column(String(10), comment='创建人') + checktime = Column(DateTime, comment='创建时间') + creator = Column(String(30), comment='创建人') + creationtime = Column(DateTime, index=True, comment='创建时间') + modifier = Column(String(30), comment='最后修改人') + modifiedtime = Column(DateTime, comment='最后修改时间') + cSource_flag = Column(String(4), server_default=text("'1'"), comment='病案来源') + cStatus = Column(CHAR(1), server_default=text("'0'"), comment='状态') + link_flag = Column(CHAR(1), server_default=text("'1'"), comment='是否采用链接') + filetype_id = Column(String(10), server_default=text("'jpg'"), comment='文件类型id') + cmiss_flag = Column(INTEGER(4), server_default=text("'0'"), comment='遗漏补拍标记') + paint_flag = Column(CHAR(1), server_default=text("'0'"), comment='涂抹标志') + paint_user = Column(String(30)) + paint_date = Column(DateTime) + byz_xmbz_flag = Column(BIT(1)) + byz_zyrqcyjl_flag = Column(BIT(1)) + byz_zyhcyjl_flag = Column(BIT(1)) + byz_ftyccyjl_flag = Column(BIT(1)) + byz_ftycfyqd_flag = Column(BIT(1)) + byz_ftycjsd_flag = Column(BIT(1)) + unsharp_flag = Column(BIT(1)) + judge_backup = Column(String(40)) + ps_flag = Column(CHAR(1), server_default=text("'0'"), comment='图片是否ps过(0-无,1-ps过)') diff --git a/photo_review/enumeration/task.py b/photo_review/enumeration/task.py new file mode 100644 index 0000000..b09e8d6 --- /dev/null +++ b/photo_review/enumeration/task.py @@ -0,0 +1,26 @@ +from enum import Enum + +from config.keys import SETTLEMENT_LIST_SCHEMA, DISCHARGE_RECORD_SCHEMA, COST_LIST_SCHEMA + + +class TaskEnum(Enum): + SETTLEMENT = "SETTLEMENT" + DISCHARGE = "DISCHARGE" + COST = "COST" + + def request_url(self): + base_url = "http://192.168.5.9:8000" + if self == TaskEnum.SETTLEMENT: + return base_url + "/nlp/ie/settlement" + elif self == TaskEnum.DISCHARGE: + return base_url + "/nlp/ie/discharge" + elif self == TaskEnum.COST: + return base_url + "/nlp/ie/cost" + + def schema(self): + if self == TaskEnum.SETTLEMENT: + return SETTLEMENT_LIST_SCHEMA + elif self == TaskEnum.DISCHARGE: + return DISCHARGE_RECORD_SCHEMA + elif self == TaskEnum.COST: + return COST_LIST_SCHEMA diff --git a/photo_review/photo_review.py b/photo_review/photo_review.py index d715502..215f7a1 100644 --- a/photo_review/photo_review.py +++ b/photo_review/photo_review.py @@ -6,25 +6,35 @@ import sys import tempfile import time import urllib.request -from time import sleep import cv2 import numpy as np import paddleclas import requests +from photo_review import OCR, SETTLEMENT_IE, DISCHARGE_IE, COST_IE +from photo_review.entity.zx_ocr import ZxOcr +from ucloud import ucloud + sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from db import MysqlSession -from db.mysql import BdYljg, BdYlks, ZxOcr, ZxIeCost, ZxIeDischarge, ZxIeSettlement, ZxPhhd, ZxPhrec -from photo_review import PATIENT_NAME, ADMISSION_DATE, DISCHARGE_DATE, MEDICAL_EXPENSES, PERSONAL_CASH_PAYMENT, \ - PERSONAL_ACCOUNT_PAYMENT, PERSONAL_FUNDED_AMOUNT, MEDICAL_INSURANCE_TYPE, HOSPITAL, DEPARTMENT, DOCTOR, \ - ADMISSION_ID, SETTLEMENT_ID, AGE, OCR, SETTLEMENT_IE, DISCHARGE_IE, COST_IE, PHHD_BATCH_SIZE, SLEEP_MINUTES +from time import sleep from sqlalchemy import update -from ucloud import ucloud -from util.data_util import handle_date, handle_decimal, parse_department, handle_name, \ +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, \ + ADMISSION_ID, SETTLEMENT_ID, AGE +from config.mysql import MysqlSession +from config.photo_review import PHHD_BATCH_SIZE, SLEEP_MINUTES +from photo_review.entity.bd_yljg import BdYljg +from photo_review.entity.bd_ylks import BdYlks +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 +from photo_review.entity.zx_phrec import ZxPhrec +from photo_review.util.data_util import handle_date, handle_decimal, parse_department, handle_name, \ handle_insurance_type, handle_original_data, handle_hospital, handle_department, handle_id, handle_age -from util.util import get_default_datetime +from photo_review.util.util import get_default_datetime # 获取图片 diff --git a/photo_review/util/__init__.py b/photo_review/util/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/util/data_util.py b/photo_review/util/data_util.py similarity index 100% rename from util/data_util.py rename to photo_review/util/data_util.py diff --git a/util/util.py b/photo_review/util/util.py similarity index 100% rename from util/util.py rename to photo_review/util/util.py diff --git a/ucloud/__init__.py b/ucloud/__init__.py index 44373b0..e69de29 100644 --- a/ucloud/__init__.py +++ b/ucloud/__init__.py @@ -1,12 +0,0 @@ -# 公钥 -PUBLIC_KEY = "4Z7QYI7qml36QRjcCjKrls7aHl1R6H6uq" -# 私钥 -PRIVATE_KEY = "FIdW1Kev1Ge3K7GHXzSLyGG1wTnaG6LE9BxmIVubcCaG" -# 桶 -BUCKET = "drg100" -# 上传后缀 -UPLOAD_SUFFIX = ".cn-sh2.ufileos.com" -# 下载后缀 -DOWNLOAD_SUFFIX = ".cn-sh2.ufileos.com" -# 私空间文件地址过期时间(秒) -PRIVATE_EXPIRES = 3600 diff --git a/ucloud/ucloud.py b/ucloud/ucloud.py index 37e87f7..fce4417 100644 --- a/ucloud/ucloud.py +++ b/ucloud/ucloud.py @@ -3,7 +3,7 @@ import logging from ufile import filemanager -from ucloud import PUBLIC_KEY, PRIVATE_KEY, UPLOAD_SUFFIX, DOWNLOAD_SUFFIX, BUCKET, PRIVATE_EXPIRES +from config.ucloud import PUBLIC_KEY, PRIVATE_KEY, UPLOAD_SUFFIX, DOWNLOAD_SUFFIX, BUCKET, PRIVATE_EXPIRES UFILE_HANDLER = filemanager.FileManager(PUBLIC_KEY, PRIVATE_KEY, UPLOAD_SUFFIX, DOWNLOAD_SUFFIX)