def getAcountInfo(): type = request.args.get('type') if type: type = string.atoi(type) #医生:1 病人:2 else: type = 2 userId = None if session.has_key('userId'): userId = session['userId'] #userId='5' if userId is None: return redirect(LOGIN_URL) user = User.getById(userId) if user: userDict = object2dict.to_json(user, user.__class__) userDict['mobile'] = userDict.get('phone') if type == 2: result = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, userDict) return json.dumps(result.__dict__, ensure_ascii=False) elif type == 1: userDict = dataChangeService.getAccountInfo(userDict) userDict['userName'] = userDict.get('name') result = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, userDict) return json.dumps(result.__dict__, ensure_ascii=False) else: return json.dumps(rs.PARAM_ERROR.__dict__, ensure_ascii=False) return json.dumps(rs.NO_LOGIN.__dict__, ensure_ascii=False)
def AlipayCallbackUrl(): params = AlipayCallBackInfo(request.args) if params.diagnoseSeriesNumber is None: LOG.error("支付回调出错,无法拿到diagnoseSeriesNumber") return redirect(ERROR_URL) if (not params.trade_no) or (not params.out_trade_no) or ( not params.trade_status): LOG.error("支付回调出错,tradeNo") return redirect(ERROR_URL) diagnose = Diagnose.getDiagnoseByDiagnoseSeriesNo( params.diagnoseSeriesNumber) if diagnose is None or (not hasattr( diagnose, "patient")) or diagnose.patient.userID is None: LOG.error("支付回调出错,无法拿到诊断[diagnoseSeriesNumber%s]" % params.diagnoseSeriesNumber) #跳过验证,以后再测试,必须传入notify_id # verfyParams={} # verfyParams['out_trade_no']=params.out_trade_no # verfyParams['trade_status']='TRADE_SUCCESS' # verfyParams['trade_no']=params.trade_no # verfyParams['sign']= params.sign # veryResult=alipay.notify_verify(request.args) # if not veryResult: # LOG.error("支付交易出错,无法拿到诊断[diagnoseSeriesNumber%s]"%params.diagnoseSeriesNumber) userId = diagnose.patient.userID payRecord = AlipayChargeRecord(params.diagnoseSeriesNumber, params.buyer_email, params.buyer_id, params.is_success, params.notify_time, params.notify_type, params.total_fee, params.trade_no, params.trade_status, params.out_trade_no) AlipayChargeRecord.save(payRecord) if params.is_success == 'T' and params.trade_status == 'TRADE_SUCCESS': diagnose = Diagnose.getDiagnoseByDiagnoseSeriesNo( params.diagnoseSeriesNumber) if diagnose: diagnoseId = diagnose.id alipayLog = AlipayLog(userId, diagnoseId, constant.AlipayLogAction.PayFilished) AlipayLog.save(alipayLog) diagnose.status = constant.DiagnoseStatus.NeedTriage Diagnose.save(diagnose) result = rs.ResultStatus(rs.SUCCESS.status, '支付成功') return json.dumps(result.__dict__, ensure_ascii=False) else: # alipayLog=AlipayLog(userId,params.diagnoseSeriesNumber,constant.AlipayLogAction.PayFilished) # AlipayLog.save(alipayLog) LOG.error("支付成功,但系统诊断已经取消(诊断序列号:%s)", params.diagnoseSeriesNumber) result = rs.ResultStatus(rs.SUCCESS.status, '支付成功,但系统诊断已经取消') return json.dumps(result.__dict__, ensure_ascii=False) # alipayLog=AlipayLog(userId,params.diagnoseSeriesNumber,constant.AlipayLogAction.PayFailure) # AlipayLog.save(alipayLog) LOG.error("支付失败(诊断序列号:%s)", params.diagnoseSeriesNumber) result = rs.ResultStatus(rs.FAILURE.status, '支付失败') return json.dumps(result.__dict__, ensure_ascii=False)
def getList(user, list): if user is None: result = rs.ResultStatus(rs.FAILURE.status, rs.FAILURE.msg) return json.dumps(result.__dict__, ensure_ascii=False) if (list and len(list) > 0): resultLogs = object2dict.objects2dicts(list) result = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, resultLogs) return json.dumps(result.__dict__, ensure_ascii=False) return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
def pay(statsOldStatus, statsNewStatus, logStatus): user = session['user_id'] if user is None: result = rs.ResultStatus(rs.FAILURE.status, rs.FAILURE.msg) return json.dumps(result.__dict__, ensure_ascii=False) result = DiagnosePayStats.updatePaidStatsStatus(user, statsOldStatus, statsNewStatus) log = DiagnosePayStatsLog.insertNewItem(logStatus, user, result[0]) DiagnosePayStatsLogRel.insertNewItem(result[1], log) dict = {} dict['money'] = float(result[0]) resultJson = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, dict) return json.dumps(resultJson.__dict__, ensure_ascii=False)
def getDiagnoseActions(): try: diagnoseId = request.args.get('diagnoseId') userId = session['userId'] if userId is None: return json.dumps(rs.NO_LOGIN.__dict__, ensure_ascii=False) userId = string.atoi(userId) diagnose = Diagnose.getDiagnoseById(diagnoseId) if diagnose is None: return json.dumps(rs.NO_DATA.__dict__, ensure_ascii=False) if hasattr( diagnose, 'patient' ) and diagnose.patient and diagnose.patient.userID and diagnose.uploadUserId: if userId != diagnose.patient.userID and userId != diagnose.uploadUserId: return json.dumps(rs.PERMISSION_DENY.__dict__, ensure_ascii=False) diagDict = dataChangeService.getDiagnoseDetailInfoByPatient( db_session, diagnose) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False) except Exception, e: print e.message print e resultDict = rs.SUCCESS.__dict__ json.dumps(resultDict, ensure_ascii=False)
def getPatients(doctorId): patients = Diagnose.getPatientListByDoctorId(doctorId) patientsDict = object2dict.objects2dicts(patients) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, patientsDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)
def getPatientFile(patientId): userId = None if session.has_key('userId'): userId = session['userId'] if userId is None: return redirect(LOGIN_URL) if patientId is None or patientId < 0: return jsonify(FAILURE) patient = Patient.get_patient_by_id(patientId) if patient is None or patient.userID != string.atoi(userId): return jsonify(FAILURE) pathologs = Pathology.getByPatientId(patientId) files = [] if pathologs and len(pathologs) > 0: for patholog in pathologs: files.extend(File.getFilebypathologyId(patholog.id), constant.FileType.FileAboutDiagnose) fileResults = None if len(files) > 0: fileResults = dataChangeService.getFilesResult(files) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, fileResults) return jsonify(resultStatus.__dict__)
def getPostionList(): diagnoseMethod = request.args.get('diagnoseMethod') diagnosePositions = DiagnoseTemplate.getDiagnosePostion(diagnoseMethod) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagnosePositions) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)
def getConsultsByDoctor(doctorId): sourceId = request.args.get('source_id') status = request.args.get('status') if status is None: status = -1 else: status = string.atoi(status) if doctorId: consuts = None if sourceId: consuts = Consult.getConsultsByDoctorId(doctorId, string.atoi(sourceId), status) else: consuts = Consult.getConsultsByDoctorId(doctorId, status=status) consutsDict = object2dict.objects2dicts(consuts) dataChangeService.setConsultsResult(consutsDict, long(session["userId"])) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, consutsDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False) return json.dumps(rs.PARAM_ERROR, ensure_ascii=False)
def getDiagnoseListByHospitalUser2(): userId = session['userId'] status = request.args.get('status') if status: import string status = string.atoi(status) startDateStr = request.args.get('startDate') startDate = None if startDateStr: startDate = datetime.strptime(startDateStr, "%Y-%m-%d") else: startDate = constant.SystemTimeLimiter.startTime endDateStr = request.args.get('endDate') endDate = None if endDateStr: endDate = datetime.strptime(endDateStr, "%Y-%m-%d") else: endDate = constant.SystemTimeLimiter.endTime patientName = request.args.get('patientName') pageNo = request.args.get('pageNumber') pageSize = request.args.get('pageSize') pager = Pagger(pageNo, pageSize) diagnoses = Diagnose.getDealedDiagnoseByHospitalUser( db_session, userId, patientName, status, startDate, endDate, pager) diagnosesDict = dataChangeService.userCenterDiagnoses(diagnoses) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagnosesDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)
def avatarfileUpload(): userId = None userId = request.form.get("userId") if session.has_key('userId') and userId is None: userId = session['userId'] if userId is None: return redirect(LOGIN_URL) userId = string.atoi(userId) user = User.getById(userId, None) if user is None: return json.dumps(rs.ResultStatus(rs.FAILURE.status, "账户不存在"), ensure_ascii=False) try: if request.method == 'POST': file_infos = [] files = request.files for key, file in files.iteritems(): if file and isPicture(file.filename): filename = file.filename # file_url = oss_util.uploadFile(diagnoseId, filename) from DoctorSpring.util.oss_util import uploadAvatarFromFileStorage fileurl = uploadAvatarFromFileStorage( userId, filename, file, '', {}) if fileurl: user.imagePath = fileurl User.update(userId, imagePath=fileurl) file_infos.append(dict(name=filename, url=fileurl)) return jsonify(files=file_infos) else: return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False) return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False) except Exception, e: print e.message return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
def checkVerifyCodePwd(phoneNumber=None): code = request.form.get('verifyCode') mobile = phoneNumber verifyCode = session.get('verifyCode') user_id = User.get_id_by_phone(mobile)[0] userId = str(int(user_id)) if verifyCode is None: result = rs.ResultStatus(rs.FAILURE.status, "请重新产生验证码") return json.dumps(result.__dict__, ensure_ascii=False) if code is None: result = rs.ResultStatus(rs.FAILURE.status, "验证码不能为空,请输入验证码") return json.dumps(result.__dict__, ensure_ascii=False) if code == verifyCode: return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False) else: result = rs.ResultStatus(rs.FAILURE.status, "验证码错误,请重新输入验证码") return json.dumps(result.__dict__, ensure_ascii=False)
def get_pathology(): if 'pathologyId' in request.args.keys(): new_pathology = Pathology.getById(request.args['pathologyId']) if new_pathology is not None: pathologyDict = dataChangeService.get_pathology(new_pathology) result = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, pathologyDict) return jsonify(result.__dict__, ensure_ascii=False) return jsonify(rs.SUCCESS.__dict__, ensure_ascii=False)
def getReport(reportId): report = Report.getReportById(reportId) if report: reportDict = object2dict.to_json(report, report.__class__) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, reportDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False) return json.dumps(rs.NO_DATA, ensure_ascii=False)
def diagnoseCommentsByDiagnose(diagnoseId): diagnoseComments = Comment.getCommentBydiagnose(diagnoseId) if diagnoseComments is None or len(diagnoseComments) < 1: return jsonify(rs.SUCCESS.__dict__) diagnoseCommentsDict = object2dict.objects2dicts(diagnoseComments) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagnoseCommentsDict) resultDict = resultStatus.__dict__ return jsonify(resultDict)
def remarkMessage(messageId): status = request.args.get('status') result = None if status: result = Message.remarkMessage(db_session, messageId, status) else: result = Message.remarkMessage(db_session, messageId) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, result) resultDict = resultStatus.__dict__ return jsonify(resultDict)
def pathlogy_list(): if 'patientId' in request.args.keys(): patientId = request.args['patientId'] pathlogys = Pathology.getByPatientId(patientId) if pathlogys is None or len(pathlogys) < 1: return jsonify(rs.SUCCESS.__dict__, ensure_ascii=False) pathlogysDict = dataChangeService.get_pathology_list(pathlogys) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, pathlogysDict) return jsonify(resultStatus.__dict__, ensure_ascii=False) return jsonify(SUCCESS.__dict__)
def getDiagnoseAndImageDescList(): diagnoseMethod = request.args.get('diagnoseMethod') diagnosePostion = request.args.get('diagnosePostion') if diagnosePostion: diagnosePostion += '\n' diagnoseAndImageDescs = DiagnoseTemplate.getDiagnoseAndImageDescs( diagnoseMethod, diagnosePostion) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagnoseAndImageDescs) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)
def patient_profile(): if 'patientId' in request.args.keys(): patientId = request.args['patientId'] patient = Patient.get_patient_by_id(patientId) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, patient.__dict__) if patient is None: return jsonify(resultStatus.__dict__) resultStatus.data = dataChangeService.get_patient(patient) return jsonify(resultStatus.__dict__) return jsonify(SUCCESS.__dict__)
def getPayStatsSummary(): user = session['user_id'] summary = DiagnosePayStats.getSummaryPayStats(user) dict = {} dict['ongoing'] = float(summary[0]) dict['payable'] = float(summary[1]) dict['paid'] = float(summary[2]) dict['lastMonthRevenue'] = float(summary[3]) resultJson = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, dict) return json.dumps(resultJson.__dict__, default=json_encode_decimal)
def getUserFavorties(userId): type = request.args.get('type') if type is None: json.dumps(rs.PARAM_ERROR.__dict__, ensure_ascii=False) type = string.atoi(type) userFavorites = UserFavorites.getUserFavorties(userId, type) userFavoritesDict = dataChangeService.getUserFavoritiesDict(userFavorites) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, userFavoritesDict) return json.dumps(resultStatus.__dict__, ensure_ascii=False)
def diagnoseCommentsByObserver(userId): diagnoseComments = Comment.getCommentByUser(userId, type=constant.CommentType) if diagnoseComments is None or len(diagnoseComments) < 1: return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False) diagnoseCommentsDict = object2dict.objects2dicts(diagnoseComments) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagnoseCommentsDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)
def getDiagnoseLog(): if session.has_key('userId'): userId = session['userId'] if userId is None: return redirect(LOGIN_URL) diagnoseLogs = AlipayLog.getAlipayLogsByUserId(userId) if diagnoseLogs and len(diagnoseLogs) > 0: resultLogs = object2dict.objects2dicts(diagnoseLogs) result = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, resultLogs) return json.dumps(result.__dict__, ensure_ascii=False) return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
def diagnoseFinish(diagnoseId): diagnosePayStats = DiagnosePayStats() diagnose = Diagnose.getDiagnoseById(diagnoseId) diagnosePayStats.diagnoseId = diagnoseId diagnosePayStats.diagnoseSeriesNumber = diagnose.diagnoseSeriesNumber diagnosePayStats.userId = session["user_id"] diagnosePayStats.finishDate = datetime.now() diagnosePayStats.money = diagnose.money diagnosePayStats.status = constant.DiagnosePayStatsConstant.Ongoing DiagnosePayStats.save(diagnosePayStats) resultJson = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg) return json.dumps(resultJson.__dict__, ensure_ascii=False)
def checkVerifyCode(): code = request.form.get('verifyCode') mobile = request.form.get('mobile') verifyCode = session.get('verifyCode') userId = session.get('userId') if verifyCode is None: result = rs.ResultStatus(rs.FAILURE.status, "请重新产生验证码") return json.dumps(result.__dict__, ensure_ascii=False) if code is None: result = rs.ResultStatus(rs.FAILURE.status, "验证码不能为空,请输入验证码") return json.dumps(result.__dict__, ensure_ascii=False) if code == verifyCode: if mobile: import re #p = re.compile(r"((13|14|15|18)d{9}$)") if len(mobile) == 11: user = User.update(userId, mobile=mobile, isBindPhone=constant.UserPhoneBind.Binded) if user: return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False) else: result = rs.ResultStatus(rs.FAILURE.status, "更新失败") return json.dumps(result.__dict__, ensure_ascii=False) else: result = rs.ResultStatus(rs.FAILURE.status, "输入的电话号码格式有问题") return json.dumps(result.__dict__, ensure_ascii=False) else: result = rs.ResultStatus(rs.FAILURE.status, "请输入电话号码") return json.dumps(result.__dict__, ensure_ascii=False) else: result = rs.ResultStatus(rs.FAILURE.status, "验证码错误,请重新输入验证码") return json.dumps(result.__dict__, ensure_ascii=False)
def needCallBySupportStaff(): pageNo = request.args.get('pageNumber') pageSize = request.args.get('pageSize') pager = Pagger(pageNo, pageSize) diagnoses = Diagnose.getDiagnosesBySupportStaff(pager) diagnosesDict = dataChangeService.getDiagnoseListByKefu(diagnoses) data = {} data['amount'] = 0 if diagnosesDict: data['amount'] = len(diagnosesDict) data['list'] = diagnosesDict resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, data) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)
def getMobileVerifyPhone(phoneNumber=None): try: telPhoneNo = str(phoneNumber) if User.is_existing_phone(telPhoneNo): LOG.info("verify success:" + phoneNumber) return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False) else: result = rs.ResultStatus(rs.FAILURE.status, "电话号码不存在") #LOG.info("!!!!" + str(result.__dict__) + "!!!!") return json.dumps(result.__dict__, ensure_ascii=False) except Exception, e: LOG.error(e.message) return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
def getDiagnoseDetailInfo(): diagnoseId = request.args.get('diagnoseId') if diagnoseId: diagnoseId = string.atoi(diagnoseId) else: return json.dumps(rs.PARAM_ERROR, ensure_ascii=False) diagnose = Diagnose.getDiagnoseById(diagnoseId) if diagnose: diagnoseResult = dataChangeService.getDiagnoseDetailInfo(diagnose) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, diagnoseResult) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False) return json.dumps(rs.NO_DATA, ensure_ascii=False)
def messagesBySender(senderId): status = request.args.get('status') messages = None if status: messages = Message.getMessageByReceiver(senderId, status) else: messages = Message.getMessageByReceiver(senderId) if messages is None or len(messages) < 1: return jsonify(rs.SUCCESS.__dict__) messagesDict = object2dict.objects2dicts(messages) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, messagesDict) resultDict = resultStatus.__dict__ return jsonify(resultDict)
def getThanksNotes(userid): #status=request.args.get('status') pageNo = request.args.get('pageNo') pageSize = request.args.get('pageSize') pager = Pagger(pageNo, pageSize) thanksNotes = ThanksNote.getThanksNoteByReceiver(db_session, userid) if thanksNotes is None or len(thanksNotes) < 1: return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False) thanksNotesDict = object2dict.objects2dicts(thanksNotes) dataChangeService.setThanksNoteDetail(thanksNotesDict) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, thanksNotesDict) resultDict = resultStatus.__dict__ return json.dumps(resultDict, ensure_ascii=False)