def trans_pacs_reg(order_id, pacs_assem_id, op_type, op_name): """ 根据预约号、PACS项目组ID,将项目组进行登入、或取消登入的操作 :param order_id: :param pacs_assem_id: :param op_type: :param op_name: :return: """ department_id, assemdIds = _common_fun(pacs_assem_id) # 获取操作者id # result = tjAssert(getUserByRealName(op_name)) # op_id = result['msg']['id'] # confirmId = getUserIdByRealName(audit_doctor, appconfig['PACS_USE_EXAM_DOCTOR'], 'pacs') log.info('获取到技师名字:{} 是否是使用体检系统的用户名:{} '.format( op_name, appconfig['PACS_USE_EXAM_DOCTOR'])) op_id = getUserIdByRealName(op_name, appconfig['PACS_USE_EXAM_DOCTOR'], 'pacs') log.info("获取登记技师ID为:{}".format(op_id)) result = None if op_type == '登记': result = tjAssert(loginAssems(order_id, assemdIds, op_id)) elif op_type == '撤销登记': result = tjAssert( cancelLoginAssems(order_id, department_id, assemdIds, op_id)) else: raise InvalidOpTypeException( '无效的操作类型OP_TYPE:{},值必须为[登记]或[撤销登记]'.format(op_type)) log.info(result['msg'])
def _get_opid(opName, auditName): auditName = auditName if auditName else opName # 审核医生,如果审核医生为空,则使用报告医生 log.info('获取到报告医生:{} 审核医生:{}'.format(opName, auditName)) opId = getUserIdByRealName(opName, False, 'nj') log.info("获取报告医生id:{} 用户名:{}".format(opId, opName)) if not auditName: raise TJException('没有发现有效的审核医生') auditId = getUserIdByRealName(auditName, False, 'nj') log.info("获取审核医生id:{} 用户名:{}".format(auditId, auditName)) return opId, auditId
def _get_opid(lisResult): opName = lisResult.OPERATOR_NAME # 报告医生 auditName = lisResult.AUDIT_NAME if lisResult.AUDIT_NAME is not None else lisResult.OPERATOR_NAME # 审核医生,如果审核医生为空,则使用报告医生 log.info('获取到报告医生:{} 审核医生:{}'.format(opName, auditName)) opId = getUserIdByRealName(opName, False, 'lis') log.info("获取报告医生id:{} 用户名:{}".format(opId, opName)) if not auditName: raise TJException('没有发现有效的审核医生') auditId = getUserIdByRealName(auditName, False, 'lis') log.info("获取审核医生id:{} 用户名:{}".format(auditId, auditName)) return opId, auditId
def _get_opid(opName, auditName): # opName = lis_results_dict.get('JYYS', None) # 报告医生 # auditName = lis_results_dict.get('SHYS', None) if lis_results_dict.get('SHYS', # None) is not None else opName # 审核医生,如果审核医生为空,则使用报告医生 log.info('获取到报告医生:{} 审核医生:{}'.format(opName, auditName)) opId = getUserIdByRealName(opName, False, 'lis') log.info("获取报告医生id:{} 用户名:{}".format(opId, opName)) if not auditName: raise TJException('没有发现有效的审核医生') auditId = getUserIdByRealName(auditName, False, 'lis') log.info("获取审核医生id:{} 用户名:{}".format(auditId, auditName)) return opId, auditId
def _get_opid(pacs_results_dict): opName = pacs_results_dict.get('BGYSXM', None) # 报告医生 auditName = pacs_results_dict.get('SHRXM', None) if pacs_results_dict.get( 'BGYSXM', None) is not None else opName # 审核医生,如果审核医生为空,则使用报告医生 log.info('获取到报告医生:{} 审核医生:{}'.format(opName, auditName)) opId = getUserIdByRealName(opName, False, 'pacs') log.info("获取报告医生id:{} 用户名:{}".format(opId, opName)) if not auditName: raise TJException('没有发现有效的审核医生') auditId = getUserIdByRealName(auditName, False, 'pacs') log.info("获取审核医生id:{} 用户名:{}".format(auditId, auditName)) return opId, auditId
def trans_pacs_result(order_id, pacs_assem_id, pacs_assem_name, report_diagnose, report_result, positive_content, report_url, reporter, audit_doctor, report_date): """ 根据预约号、PACS项目组ID,传输pacs结果到体检系统 :param order_id: :param pacs_element_id: :return: """ department_id, assemdIds = _common_fun(pacs_assem_id) # 获取报告医生的ID reporterId = getUserIdByRealName(reporter, appconfig['PACS_USE_EXAM_DOCTOR'], 'pacs') log.info("获取报告医生ID为:{}".format(reporterId)) # 获取审核医生ID confirmId = getUserIdByRealName(audit_doctor, appconfig['PACS_USE_EXAM_DOCTOR'], 'pacs') log.info("获取审核者医生ID为:{}".format(confirmId)) log.info('开始根据科室、项目组、预约号获取体检信息,科室ID:{} 预约号:{} 项目组ID:{}'.format( department_id, order_id, assemdIds)) msg = tjAssert( loadExam(dept=department_id, orderId=order_id, filterAssemIds=assemdIds)) exam = msg['msg'] # 初始化保存数据 saveExam = initSaveExam(exam, department_id, confirmId, reporterId) # 小项结果 fs = {'others': report_result} addElementResult(saveExam, exam=exam, opId=reporterId, **fs) # 结论部分,开始拆分结论 log.info('获取结论...') if not report_diagnose: raise InvalidDialogException('结论不能为空') summaries = re.split(r'\;|;|\r|\n|\r\n|[\d]+\.', report_diagnose) for s in summaries: summary = re.sub(r'^[\d]+\.', '', s.strip()) if len(summary) == 0: continue log.info('获取结论:{}'.format(summary)) writeSymbol = None diseaseCode = None if summary.find('未见异常') >= 0 or summary.find( '未见明显异常') >= 0 or summary.find('未见确切异常') >= 0: writeSymbol = '03' else: result = getDiseaseByName(summary) if result is None: writeSymbol = '02' else: writeSymbol = '01' diseaseCode = result['msg']['id'] log.info("获取诊断方式:{},疾病名称:{},疾病id:{}".format(writeSymbol, summary, diseaseCode)) addDisease(saveExam, exam=exam, deptId=department_id, opId=reporterId, writeSymbol=writeSymbol, diseaseName=summary, diseaseCode=diseaseCode) # 重大阳性 if positive_content: if positive_content.strip() != '阴性': addPosReport(saveExam, content=positive_content, advice=positive_content, opId=reporterId) # 开始提交分科结果 examData = json.dumps(saveExam) log.info(examData) log.info('开始提交分科结果...') result = tjAssert(saveExamData(examData)) log.info(result['msg']) # 开始传输图像报告 upload_report( order_id=order_id, department_id=department_id, pacs_assem_id=getElementAssemByCode(exam)['assemId'], pacs_assem_name=pacs_assem_name, reporter_id=reporterId, report_url=report_url, report_date=report_date if report_date else datetime.datetime.now())
def save_gmd(): # 获取参数 r = {"Msg": None, "Status": "SUCCESS"} log.info('开始解析骨密度参数...') try: # print(request.json) gmd = json.loads(str(request.data, encoding='utf-8')) log.info('获取到要保存的骨密度数据:{}'.format(gmd)) patient_id = gmd.get('patientID') t = gmd.get('t') z = gmd.get('z') examDoctor = gmd.get('examDoctor') check_result = gmd.get('checkResultStr') log.info('获取到patient_id:{} t值:{} z值:{} 检查结果:{} examDoctor:{}'.format( patient_id, t, z, check_result, examDoctor)) exam_username = appconfig['JK_EXAM_USERNAME'] exam_password = appconfig['JK_EXAM_PASSWORD'] log.info('开始尝试登录体检系统,用户名:{} 密码:{}'.format(exam_username, exam_password)) result = tjAssert(loginByUserNamePwd(exam_username, exam_password)) log.info(result['msg']) # 获取报告医生的ID reporterId = getUserIdByRealName(examDoctor, appconfig['PACS_USE_EXAM_DOCTOR'], 'gmd') log.info("获取报告医生ID为:{}".format(reporterId)) log.info('开始保存骨密度数据...') # 获取诊断医生ID department_id = appconfig['DEPARTMENT'] assemdIds = appconfig['ASSEM_ID'] order_id = patient_id log.info('开始根据科室、项目组、预约号获取体检信息,科室ID:{} 预约号:{} 项目组ID:{}'.format( department_id, order_id, assemdIds)) msg = tjAssert( loadExam(dept=department_id, orderId=patient_id, filterAssemIds=assemdIds)) exam = msg['msg'] # 初始化保存数据 saveExam = initSaveExam(exam, department_id, reporterId, reporterId) # 小项结果 fs = {'3837': str(t), '3838': str(z)} addElementResult(saveExam, exam=exam, opId=reporterId, **fs) log.info('获取诊断信息:{}'.format(check_result)) summary = check_result log.info('获取结论:{}'.format(summary)) writeSymbol = None diseaseCode = None if summary.find('骨量正常') >= 0: writeSymbol = '03' else: result = getDiseaseByName(summary) if result is None: writeSymbol = '02' else: writeSymbol = '01' diseaseCode = result['msg']['id'] log.info("获取诊断方式:{},疾病名称:{},疾病id:{}".format(writeSymbol, summary, diseaseCode)) addDisease(saveExam, exam=exam, deptId=department_id, opId=reporterId, writeSymbol=writeSymbol, diseaseName=summary, diseaseCode=diseaseCode) # 开始提交分科结果 examData = json.dumps(saveExam) log.info(examData) log.info('开始提交分科结果...') result = tjAssert(saveExamData(examData)) log.info(result['msg']) # 开始上传图像 img = gmd.get('image') if img: log.info('开始上传图像报告...') upload_report(order_id=patient_id, department_id=department_id, pacs_assem_id=assemdIds, pacs_assem_name='超声骨密度', reporter_id=reporterId, report_base64=img, report_date=datetime.now()) r['Msg'] = '上传成功' except Exception as e: r['Msg'] = "上传失败!{}".format(repr(e)) log.error('上传数据失败') log.exception(e) finally: log.info('返回数据:{}'.format(r)) return jsonify(r)