优化案子处理逻辑

This commit is contained in:
2024-10-09 09:39:29 +08:00
parent a3fa1e502e
commit 795134f566
10 changed files with 257 additions and 304 deletions

View File

@@ -1,34 +1,20 @@
"""
信息抽取关键词配置
"""
# 患者姓名
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 = ['年龄']
# 大写总额
UPPERCASE_MEDICAL_EXPENSES = ['大写总额']
IE_KEY = {
'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': '年龄',
'upper_case_medical_expenses': '大写总额'
}

View File

@@ -19,7 +19,8 @@ def main():
cls_result = CLAS(text)
cls_result = cls_result[0].get('predictions')[0]
if cls_result['score'] < 0.8:
raise Exception(f'识别结果置信度过低text: {text}')
logging.info(f"识别结果置信度{cls_result['score']}过低text: {text}")
return None
return cls_result['label']

View File

@@ -4,12 +4,14 @@ import logging.config
from flask import Flask, request
from paddlenlp import Taskflow
from __init__ import PATIENT_NAME, ADMISSION_DATE, DISCHARGE_DATE, MEDICAL_EXPENSES
from __init__ import IE_KEY
from log import LOGGING_CONFIG
from utils import process_request
app = Flask(__name__)
COST_LIST_SCHEMA = PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + MEDICAL_EXPENSES
COST_LIST_SCHEMA = tuple(IE_KEY[key] for key in [
'name', 'admission_date', 'discharge_date', 'medical_expenses'
])
COST = Taskflow('information_extraction', schema=COST_LIST_SCHEMA, model='uie-x-base',
task_path='model/cost_list_model', layout_analysis=False, precision='fp16')

View File

@@ -4,14 +4,14 @@ import logging.config
from flask import Flask, request
from paddlenlp import Taskflow
from __init__ import HOSPITAL, DEPARTMENT, PATIENT_NAME, ADMISSION_DATE, DISCHARGE_DATE, DOCTOR, ADMISSION_ID, AGE
from __init__ import IE_KEY
from log import LOGGING_CONFIG
from utils import process_request
app = Flask(__name__)
DISCHARGE_RECORD_SCHEMA = (
HOSPITAL + DEPARTMENT + PATIENT_NAME + ADMISSION_DATE + DISCHARGE_DATE + DOCTOR + ADMISSION_ID + AGE
)
DISCHARGE_RECORD_SCHEMA = tuple(IE_KEY[key] for key in [
'hospital', 'department', 'name', 'admission_date', 'discharge_date', 'doctor', 'admission_id', 'age'
])
DISCHARGE = Taskflow('information_extraction', schema=DISCHARGE_RECORD_SCHEMA, model='uie-x-base',
task_path='model/discharge_record_model', layout_analysis=False, precision='fp16')

View File

@@ -4,18 +4,16 @@ import logging.config
from flask import Flask, request
from paddlenlp import Taskflow
from __init__ import PATIENT_NAME, ADMISSION_DATE, DISCHARGE_DATE, MEDICAL_EXPENSES, PERSONAL_CASH_PAYMENT, \
PERSONAL_ACCOUNT_PAYMENT, PERSONAL_FUNDED_AMOUNT, MEDICAL_INSURANCE_TYPE, ADMISSION_ID, SETTLEMENT_ID, \
UPPERCASE_MEDICAL_EXPENSES
from __init__ import IE_KEY
from log import LOGGING_CONFIG
from utils import process_request
app = Flask(__name__)
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
+ UPPERCASE_MEDICAL_EXPENSES
)
SETTLEMENT_LIST_SCHEMA = tuple(IE_KEY[key] for key in [
'name', 'admission_date', 'discharge_date', 'medical_expenses', 'personal_cash_payment',
'personal_account_payment', 'personal_funded_amount', 'medical_insurance_type', 'admission_id', 'settlement_id',
'uppercase_medical_expenses'
])
SETTLEMENT_IE = Taskflow('information_extraction', schema=SETTLEMENT_LIST_SCHEMA, model='uie-x-base',
task_path='model/settlement_list_model', layout_analysis=False, precision='fp16')