Ejemplo n.º 1
0
def addDiagnoseComment():
    form = CommentsForm(request.form)
    resultForm = form.validate()
    if resultForm.status == rs.SUCCESS.status:
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        diagnoseComment = Comment(form.userId, form.receiverId,
                                  form.diagnoseId, form.content)
        db_session.add(diagnoseComment)
        db_session.commit()
        db_session.flush()
        score = constant.DiagnoseScore[form.score]
        diagnose = Diagnose.getDiagnoseById(form.diagnoseId)
        diagnose.score = form.score
        Diagnose.save(diagnose)
        #为医生添加一些冗余字段
        if hasattr(diagnose, 'doctor'):
            doctor = diagnose.doctor
            if score != 0:
                if doctor.goodFeedbackCount:
                    doctor.goodFeedbackCount += 1
                else:
                    doctor.goodFeedbackCount = 1
            if doctor.feedbackCount:
                doctor.feedbackCount += 1
            else:
                doctor.feedbackCount = 1
            Doctor.save(doctor)
        #flash('成功添加诊断评论')
        return jsonify(rs.SUCCESS.__dict__)
    return jsonify(rs.FAILURE.__dict__)
Ejemplo n.º 2
0
def copyObjects():
    oss = OssAPI(HOST, ACCESS_ID, SECRET_ACCESS_KEY)
    bucket = "solidmedicaltest"
    prefix = "1_c4ca4238a0b923820dcc509a6f75849b/"
    marker = ""
    delimiter = "/"
    maxkeys = "100"
    headers = {}
    res = oss.get_bucket(bucket, prefix, marker, delimiter, maxkeys, headers)
    if (res.status / 100) == 2:
        body = res.read()
        #print body
        h = GetBucketXml(body)
        (file_list, common_list) = h.list()
        print "object list is:"
        for i in file_list:
            fileName = i[0]
            diagnoseId = getDiagnoseIdFromFileName(fileName)
            diagnose = Diagnose.getDiagnoseByDiagnoseSeriesNo(diagnoseId)
            if diagnose:
                res = oss.copy_object(bucket, fileName, bucket, diagnoseId)
                if (res.status / 100) == 2:
                    fileUrl = 'http://%s.%s/%s' % (bucket, WEB_HOST,
                                                   diagnoseId)
                    Diagnose.setDiagnoseUploaded(diagnoseId)
Ejemplo n.º 3
0
def rollbackDiagnose(diagnoseId):
    userId=session['userId']
    if userId is None:
        return json.dumps(rs.NO_LOGIN.__dict__,ensure_ascii=False)
    userId=string.atoi(userId)

    status=request.form.get('status')
    comments=request.form.get('comments')
    if status:
        status=string.atoi(status)
    diagnose=Diagnose.getDiagnoseById(diagnoseId)
    if diagnose is None:
        return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
    if hasattr(diagnose,'adminId') and diagnose.adminId and  diagnose.adminId==userId:
        if status is None:
            status=constant.DiagnoseStatus.Draft
        diagnose.status=status
        Diagnose.save(diagnose)

        diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.DiagnoseNeedUpateAction)
        diagoseLog.description=comments
        DiagnoseLog.save(db_session,diagoseLog)

        if hasattr(diagnose,'patient') and diagnose.patient.userID:
            content=dataChangeService.getPatienDiagnoseMessageContent(diagnose)

            #诊断通知
            message=Message(constant.DefaultSystemAdminUserId,diagnose.patient.userID,'诊断通知',content,constant.MessageType.Diagnose)
            Message.save(message)

        return  json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    else:
        return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)
Ejemplo n.º 4
0
def evaluateDiagnose(diagnoseId):
    userId = session['uesrId']
    if userId is None:
        return json.dumps(rs.NO_LOGIN.__dict__, ensure_ascii=False)
    userId = string.atoi(userId)

    score = request.args.get('score')
    description = request.args.get('description')
    if score:
        score = string.atoi(score)
    else:
        return json.dumps(rs.PARAM_ERROR.__dict__, ensure_ascii=False)

    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.patient.userID == userId:
        diagnose.status = constant.DiagnoseStatus.Diagnosed
        diagnose.score = score
        Diagnose.save(diagnose)

        diagoseLog = DiagnoseLog(userId, diagnoseId,
                                 constant.DiagnoseLogAction.DiagnoseFinished)
        diagoseLog.description = description
        DiagnoseLog.save(db_session, diagoseLog)
        return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
    else:
        return json.dumps(rs.PERMISSION_DENY.__dict__, ensure_ascii=False)
Ejemplo n.º 5
0
def evaluateDiagnose(diagnoseId):
    userId=session['uesrId']
    if userId is None:
        return json.dumps(rs.NO_LOGIN.__dict__,ensure_ascii=False)
    userId=string.atoi(userId)

    score=request.args.get('score')
    description=request.args.get('description')
    if score:
        score=string.atoi(score)
    else:
        return  json.dumps(rs.PARAM_ERROR.__dict__,ensure_ascii=False)

    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.patient.userID==userId:
        diagnose.status=constant.DiagnoseStatus.Diagnosed
        diagnose.score=score
        Diagnose.save(diagnose)

        diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.DiagnoseFinished)
        diagoseLog.description=description
        DiagnoseLog.save(db_session,diagoseLog)
        return  json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    else:
        return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)
Ejemplo n.º 6
0
def AlipayCallbackUrl():
    userId='9'
    if session.has_key('userId'):
        userId=session['userId']
    if userId is None:
        redirect(LOGIN_URL)
    params=AlipayCallBackInfo(request.args)
    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)
Ejemplo n.º 7
0
def sendMobileMessage(userId, diagnoseId, diagnose=None, message=None):
    telPhoneNo = None

    if diagnoseId:
        diagnose = Diagnose.getDiagnoseById(diagnoseId)
    else:
        diagnose = Diagnose.getDiagnoseById(diagnose.id)

    if diagnose and hasattr(diagnose, 'patient') and diagnose.patient:
        telPhoneNo = diagnose.patient.identityPhone
        if telPhoneNo is None and hasattr(diagnose.patient,
                                          'user') and diagnose.patient.user:
            telPhoneNo = diagnose.patient.user.phone
    if telPhoneNo is None:
        user = User.getById(userId)
        telPhoneNo = user.phone
    if telPhoneNo:
        smsRc = sms_utils.RandCode()
        param1 = diagnose.diagnoseSeriesNumber
        param3 = constant.MobileMessageConstant.UrlPrefix + diagnose.alipayHashCode
        param4 = constant.MobileMessageConstant.KefuPhone
        from DoctorSpring.util.helper import getPayCountByDiagnoseId
        param2 = getPayCountByDiagnoseId(diagnose.id)
        template_param = {
            'param1': param1,
            'param2': param2,
            'param3': param3,
            'param4': param4
        }
        smsRc.send_emp_sms(telPhoneNo, smsRc.TEMPLATE_PAY,
                           json.dumps(template_param))
Ejemplo n.º 8
0
def addDiagnoseComment():
    form = CommentsForm(request.form)
    resultForm=form.validate()
    if resultForm.status==rs.SUCCESS.status:
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        diagnoseComment=Comment(form.userId,form.receiverId,form.diagnoseId,form.content)
        db_session.add(diagnoseComment)
        db_session.commit()
        db_session.flush()
        score=constant.DiagnoseScore[form.score]
        diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
        diagnose.score=form.score
        Diagnose.save(diagnose)
        #为医生添加一些冗余字段
        if hasattr(diagnose,'doctor'):
            doctor=diagnose.doctor
            if score!=0:
                if doctor.goodFeedbackCount:
                    doctor.goodFeedbackCount+=1
                else:
                    doctor.goodFeedbackCount=1
            if doctor.feedbackCount:
                doctor.feedbackCount+=1
            else:
                doctor.feedbackCount=1
            Doctor.save(doctor)
        #flash('成功添加诊断评论')
        return jsonify(rs.SUCCESS.__dict__)
    return jsonify(rs.FAILURE.__dict__)
Ejemplo n.º 9
0
def updateReport():

    userId=session['userId']
    user=User.getById(userId)
    if user is None:
        return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)

    # if UserRole.checkRole(db_session,userId,constant.RoleId.Doctor):
    #     return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)

    form =  ReportForm(request.form)

    if form.reportId:
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        if form.status and form.status==constant.ReportStatus.Commited:

            fileUrl=pdf_utils.generatorPdf(form.diagnoseId)#需要先生存文檔上傳到服務器,獲取url
            report=Report.update(form.reportId,constant.ReportType.Doctor,form.status,fileUrl,form.techDesc,form.imageDesc,form.diagnoseDesc)
            Diagnose.changeDiagnoseStatus(form.diagnoseId,constant.DiagnoseStatus.Diagnosed)
            #需要給用戶發信和記錄操作日誌
            diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
            sendMessageAndRecordLog(diagnose,userId)

        else:
            fileUrl=None#這是草稿,不需要生存文檔

            diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
            if diagnose is None:
                return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
            report=Report.update(form.reportId,constant.ReportType.Doctor,form.status,fileUrl,form.techDesc,form.imageDesc,form.diagnoseDesc)
            recordDiagnoseLog(diagnose,userId)

        return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 10
0
def applyDiagnose():

    if session.has_key('userId'):
        userId = session['userId']
    if userId is None:
        return redirect('/loginPage')

    data = {}
    hospitals = Hospital.getAllHospitals(db_session)
    hospitalsDict = object2dict.objects2dicts(hospitals)
    data['hospitals'] = hospitalsDict

    positions = Position.getPositions()
    positionsDict = object2dict.objects2dicts(positions)
    data['positions'] = positionsDict

    locations = Location.getAllLocations(db_session)
    locationsDict = object2dict.objects2dicts(locations)
    data['locations'] = locationsDict

    #hospital user
    if 'type' in request.args.keys():
        data['type'] = int(request.args.get('type'))
    if 'edit' in request.args.keys() and 'diagnoseid' in request.args.keys():
        new_diagnose = Diagnose.getDiagnoseById(request.args['diagnoseid'])
        data['edit'] = 1
    else:
        new_diagnose = Diagnose.getNewDiagnoseByStatus(ModelStatus.Draft,
                                                       session['userId'])

    if new_diagnose is not None:
        data['doctor'] = new_diagnose.doctor
        data['patient'] = new_diagnose.patient
        data['pathology'] = new_diagnose.pathology

        new_file = File.getFiles(new_diagnose.pathologyId,
                                 constant.FileType.Dicom)
        data['dicomfile'] = new_file
        new_files = File.getFiles(new_diagnose.pathologyId,
                                  constant.FileType.FileAboutDiagnose)
        data['fileAboutDiagnose'] = new_files

        pathologyPositions = []
        if hasattr(new_diagnose, 'pathology') and hasattr(
                new_diagnose.pathology, 'pathologyPostions'):
            pathologyPositions = object2dict.objects2dicts(
                new_diagnose.pathology.pathologyPostions)
        data['pathologyPositions'] = pathologyPositions

    patients = Patient.get_patient_by_user(session['userId'])
    if patients is None or len(patients) < 1:
        patientdict = []
    else:
        patientdict = object2dict.objects2dicts(patients)

    data['patientdict'] = patientdict

    return render_template("applyDiagnose.html", result=data)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
def updateReport():

    userId = session['userId']
    user = User.getById(userId)
    if user is None:
        return json.dumps(rs.NO_DATA.__dict__, ensure_ascii=False)

    # if UserRole.checkRole(db_session,userId,constant.RoleId.Doctor):
    #     return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)

    form = ReportForm(request.form)

    patient_id = Diagnose.get_patientID_by_diagnoseID(form.diagnoseId)
    identity_Phone = Patient.get_identityPhone_by_patientID(patient_id)
    #identityPhone = Patient.get_identityPhone_by_patientID(patient_id)[0].decode(encoding='UTF-8')

    identityPhone = identity_Phone[0]
    #print(identityPhone)

    if form.reportId:
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        if form.status and form.status == constant.ReportStatus.Commited:

            #first update based on form , then generate html
            Report.update(reportId=form.reportId,
                          techDesc=form.techDesc,
                          imageDesc=form.imageDesc,
                          diagnoseDesc=form.diagnoseDesc)
            # fileUrl=pdf_utils.generatorPdf(form.diagnoseId, identityPhone)#需要先生存文檔上傳到服務器,獲取url
            fileUrl = pdf_utils.generatorHtml(form.diagnoseId, identityPhone)
            if fileUrl:
                report = Report.update(form.reportId,
                                       constant.ReportType.Doctor, form.status,
                                       fileUrl, form.techDesc, form.imageDesc,
                                       form.diagnoseDesc)
                Diagnose.changeDiagnoseStatus(
                    form.diagnoseId, constant.DiagnoseStatus.Diagnosed)
                #需要給用戶發信和記錄操作日誌
                diagnose = Diagnose.getDiagnoseById(form.diagnoseId)
                sendMessageAndRecordLog(diagnose, userId)
            else:
                return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
        else:
            fileUrl = None  #這是草稿,不需要生存文檔

            diagnose = Diagnose.getDiagnoseById(form.diagnoseId)
            if diagnose is None:
                return json.dumps(rs.NO_DATA.__dict__, ensure_ascii=False)
            report = Report.update(form.reportId, constant.ReportType.Doctor,
                                   form.status, fileUrl, form.techDesc,
                                   form.imageDesc, form.diagnoseDesc)
            recordDiagnoseLog(diagnose, userId)

        return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
    return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 13
0
def rollbackDiagnose(diagnoseId):
    userId=session['userId']
    if userId is None:
        return json.dumps(rs.NO_LOGIN.__dict__,ensure_ascii=False)
    userId=string.atoi(userId)

    status=request.form.get('status')
    comments=request.form.get('comments')
    if status:
        status=string.atoi(status)
    diagnose=Diagnose.getDiagnoseById(diagnoseId)
    if diagnose is None:
        return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
    if (hasattr(diagnose,'adminId') and diagnose.adminId and  diagnose.adminId==userId) or (hasattr(diagnose,'doctorId') and diagnose.doctorId and  diagnose.doctor.userId == userId):
        if status is None:
            status=constant.DiagnoseStatus.Draft
        diagnose.status=status
        Diagnose.save(diagnose)

        diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.DiagnoseNeedUpateAction)
        diagoseLog.description=comments
        DiagnoseLog.save(db_session,diagoseLog)

        if hasattr(diagnose,'patient') and diagnose.patient.userID:
            content=dataChangeService.getPatienDiagnoseMessageContent(diagnose)

            #诊断通知
            message=Message(constant.DefaultSystemAdminUserId,diagnose.patient.userID,'诊断通知',content,constant.MessageType.Diagnose)
            Message.save(message)

        if(hasattr(diagnose,'doctorId') and diagnose.doctorId and  diagnose.doctor.userId == userId):
            reportDiagnoseRelations = ReportDiagnoseRelation.getReportsByDiagnoseId(diagnose.id)
            for reportDiagnoseRelation in reportDiagnoseRelations:
                if reportDiagnoseRelation.report.status != constant.ReportStatus.Del:
                    if reportDiagnoseRelation.report.type == constant.ReportType.Doctor:
                        print 'doctor report'
                        #delete doctor report if exist
                        # reportDiagnoseRelation.report.status = constant.ModelStatus.Del
                        Report.update(reportDiagnoseRelation.report.id,status=constant.ReportStatus.Del)
                        ReportDiagnoseRelation.update(reportDiagnoseRelation.id,status=constant.ModelStatus.Del)
                    elif reportDiagnoseRelation.report.type == constant.ReportType.Admin:
                        print 'admin report'
                        #set diagnose report to admin report

                        diagnose.reportId = reportDiagnoseRelation.report.id
                        Diagnose.update(diagnose)





        return  json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    else:
        return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)
Ejemplo n.º 14
0
def applyDiagnose():

    if session.has_key('userId'):
        userId=session['userId']
    if userId is None:
        return redirect('/loginPage')

    data = {}
    hospitals = Hospital.getAllHospitals(db_session)
    hospitalsDict = object2dict.objects2dicts(hospitals)
    data['hospitals'] = hospitalsDict

    positions = Position.getPositions()
    positionsDict = object2dict.objects2dicts(positions)
    data['positions'] = positionsDict

    locations = Location.getAllLocations(db_session)
    locationsDict = object2dict.objects2dicts(locations)
    data['locations'] = locationsDict


    if 'edit' in request.args.keys() and 'diagnoseid' in request.args.keys():
        new_diagnose = Diagnose.getDiagnoseById(request.args['diagnoseid'])
        data['edit'] = 1
    else:
        new_diagnose = Diagnose.getNewDiagnoseByStatus(ModelStatus.Draft, session['userId'])

    if new_diagnose is not None:
        data['doctor'] = new_diagnose.doctor
        data['patient'] = new_diagnose.patient
        data['pathology'] = new_diagnose.pathology

        new_file = File.getFiles(new_diagnose.pathologyId, constant.FileType.Dicom)
        data['dicomfile'] = new_file
        new_files = File.getFiles(new_diagnose.pathologyId, constant.FileType.FileAboutDiagnose)
        data['fileAboutDiagnose'] = new_files

        pathologyPositions = []
        if hasattr(new_diagnose, 'pathology') and hasattr(new_diagnose.pathology, 'pathologyPostions'):
            pathologyPositions = object2dict.objects2dicts(new_diagnose.pathology.pathologyPostions)
        data['pathologyPositions'] = pathologyPositions


    patients = Patient.get_patient_by_user(session['userId'])
    if patients is None or len(patients) < 1:
        patientdict = []
    else:
        patientdict = object2dict.objects2dicts(patients)

    data['patientdict'] = patientdict

    return render_template("applyDiagnose.html", result=data)
Ejemplo n.º 15
0
def changeDiagnoseToNeedPay(diagnoseId):
    try:
        loginUserId = session.get('userId')
        if loginUserId is None:
            return

        fileIds = request.form.getlist('fileIds')

        loginUserId = string.atoi(loginUserId)
        diagnose = Diagnose.getDiagnoseById(diagnoseId)
        if diagnose is None or (not hasattr(
                diagnose, "patient")) or diagnose.patient is None:
            return
        userID = diagnose.patient.userID
        if userID == loginUserId or diagnose.uploadUserId == loginUserId:
            # diagnose=Diagnose()
            # diagnose.id=diagnoseId
            #update by lichuan
            # diagnose.status= constant.DiagnoseStatus.NeedPay
            # Diagnose.update(diagnose)
            from DoctorSpring.views.front import sendAllMessage, checkFilesExisting
            from DoctorSpring.models.diagnoseDocument import File
            if (checkFilesExisting(diagnose)):
                # newDiagnose= Diagnose()
                # newDiagnose.id=diagnoseId
                if diagnose.status == constant.DiagnoseStatus.NeedUpdate:
                    new_diagnoselog = DiagnoseLog(
                        diagnose.uploadUserId, diagnose.id,
                        DiagnoseLogAction.DiagnoseNeedUpateRecommitAction)
                    DiagnoseLog.save(db_session, new_diagnoselog)
                    diagnose.status = constant.DiagnoseStatus.Triaging
                    Diagnose.update(diagnose)
                    pathologyId = diagnose.pathologyId
                    File.cleanAllDirtyFile(fileIds, pathologyId)
                else:
                    diagnose.status = constant.DiagnoseStatus.NeedPay
                    Diagnose.update(diagnose)
                    #清除以前的无用文件
                    pathologyId = diagnose.pathologyId
                    File.cleanAllDirtyFile(fileIds, pathologyId)
                    sendAllMessage(userID, diagnose)

            else:
                return json.dumps(rs.FAILURE.__dict__, "需要上传DICOM文件和诊断文件")

            #end update

    except Exception, e:
        LOG.error(e.message)
        return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 16
0
def changeDiagnoseToNeedPay(diagnoseId):
    try:
        loginUserId=session.get('userId')
        if loginUserId is None:
            return

        fileIds = request.form.getlist('fileIds')

        loginUserId=string.atoi(loginUserId)
        diagnose=Diagnose.getDiagnoseById(diagnoseId)
        if diagnose is None or (not hasattr(diagnose,"patient")) or  diagnose.patient is None:
            return
        userID=diagnose.patient.userID
        if userID==loginUserId or diagnose.uploadUserId==loginUserId:
            # diagnose=Diagnose()
            # diagnose.id=diagnoseId
            #update by lichuan
            # diagnose.status= constant.DiagnoseStatus.NeedPay
            # Diagnose.update(diagnose)
            from DoctorSpring.views.front import sendAllMessage,checkFilesExisting
            from DoctorSpring.models.diagnoseDocument import File
            if(checkFilesExisting(diagnose)):
                # newDiagnose= Diagnose()
                # newDiagnose.id=diagnoseId
                if diagnose.status == constant.DiagnoseStatus.NeedUpdate:
                    new_diagnoselog = DiagnoseLog(diagnose.uploadUserId, diagnose.id, DiagnoseLogAction.DiagnoseNeedUpateRecommitAction)
                    DiagnoseLog.save(db_session, new_diagnoselog)
                    diagnose.status = constant.DiagnoseStatus.Triaging
                    Diagnose.update(diagnose)
                    pathologyId = diagnose.pathologyId
                    File.cleanAllDirtyFile(fileIds, pathologyId)
                else:
                    diagnose.status = constant.DiagnoseStatus.NeedPay
                    Diagnose.update(diagnose)
                    #清除以前的无用文件
                    pathologyId = diagnose.pathologyId
                    File.cleanAllDirtyFile(fileIds, pathologyId)
                    sendAllMessage(userID,diagnose)


            else:
                return json.dumps(rs.FAILURE.__dict__,"需要上传DICOM文件和诊断文件")

            #end update

    except Exception,e:
        LOG.error(e.message)
        return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 17
0
def updateReport():

    userId=session['userId']
    user=User.getById(userId)
    if user is None:
        return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)

    # if UserRole.checkRole(db_session,userId,constant.RoleId.Doctor):
    #     return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)

    form =  ReportForm(request.form)

    patient_id = Diagnose.get_patientID_by_diagnoseID(form.diagnoseId)
    identity_Phone = Patient.get_identityPhone_by_patientID(patient_id)
    #identityPhone = Patient.get_identityPhone_by_patientID(patient_id)[0].decode(encoding='UTF-8')

    identityPhone = identity_Phone[0]
    #print(identityPhone)

    if form.reportId:
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        if form.status and form.status==constant.ReportStatus.Commited:


            #first update based on form , then generate html
            Report.update(reportId=form.reportId,techDesc=form.techDesc,imageDesc=form.imageDesc,diagnoseDesc=form.diagnoseDesc)
            # fileUrl=pdf_utils.generatorPdf(form.diagnoseId, identityPhone)#需要先生存文檔上傳到服務器,獲取url
            fileUrl=pdf_utils.generatorHtml(form.diagnoseId, identityPhone)
            if fileUrl:
                report=Report.update(form.reportId,constant.ReportType.Doctor,form.status,fileUrl,form.techDesc,form.imageDesc,form.diagnoseDesc)
                Diagnose.changeDiagnoseStatus(form.diagnoseId,constant.DiagnoseStatus.Diagnosed)
                #需要給用戶發信和記錄操作日誌
                diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
                sendMessageAndRecordLog(diagnose,userId)
            else:
                return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
        else:
            fileUrl=None#這是草稿,不需要生存文檔

            diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
            if diagnose is None:
                return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
            report=Report.update(form.reportId,constant.ReportType.Doctor,form.status,fileUrl,form.techDesc,form.imageDesc,form.diagnoseDesc)
            recordDiagnoseLog(diagnose,userId)

        return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 18
0
def getMobileVerifyCode():
    try:
        from DoctorSpring.util import verify_code, sms_utils
        verifyCode = verify_code.generatorVerifyCode()
        LOG.info("产生验证码")
        session['verifyCode'] = verifyCode
        telPhoneNo = None
        userId = session.get('userId')
        diagnoseId = request.args.get('diagnoseId')

        diagnose = Diagnose.getDiagnoseById(diagnoseId)

        if diagnose and hasattr(diagnose, 'patient') and diagnose.patient:
            telPhoneNo = diagnose.patient.identityPhone
            if telPhoneNo is None and hasattr(
                    diagnose.patient, 'user') and diagnose.patient.user:
                telPhoneNo = diagnose.patient.user.phone
        if telPhoneNo is None:
            user = User.getById(userId)
            telPhoneNo = user.phone
        if telPhoneNo:
            smsRc = sms_utils.RandCode()
            template_param = {'param1': verifyCode}
            smsRc.send_emp_sms(telPhoneNo, smsRc.TEMPLATE_ID_1,
                               json.dumps(template_param))
            return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
        else:
            LOG.error("诊断[%s]发送验证码错误" % diagnoseId)
            return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)

    except Exception, e:
        LOG.error(e.message)
        return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 19
0
def fetchDiagnoseByAdmin():

    diagnoseId=request.form.get('diagnoseId')
    userId=session['userId']


    # if diagnoseId is None :
    #     return  json.dumps(rs.PARAM_ERROR.__dict__,ensure_ascii=False)
    #
    # user=User.getById(userId)
    # if user is None:
    #     return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
    #
    # from database import db_session
    # if UserRole.checkRole(db_session,userId,constant.RoleId.Admin):
    #     result=Diagnose.addAdminIdAndChangeStatus(diagnoseId,userId)
    #     #诊断日志
    #     diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.FetchDiagnoseAction)
    #     DiagnoseLog.save(db_session,diagoseLog)
    #
    #     return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    # else:
    #     return json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)



    result=Diagnose.addAdminIdAndChangeStatus(diagnoseId,userId)
    #诊断日志
    if result:
        diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.FetchDiagnoseAction)
        DiagnoseLog.save(db_session,diagoseLog)

        return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 20
0
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)
Ejemplo n.º 21
0
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)
Ejemplo n.º 22
0
def fetchDiagnoseByAdmin():

    diagnoseId = request.form.get('diagnoseId')
    userId = session['userId']

    # if diagnoseId is None :
    #     return  json.dumps(rs.PARAM_ERROR.__dict__,ensure_ascii=False)
    #
    # user=User.getById(userId)
    # if user is None:
    #     return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
    #
    # from database import db_session
    # if UserRole.checkRole(db_session,userId,constant.RoleId.Admin):
    #     result=Diagnose.addAdminIdAndChangeStatus(diagnoseId,userId)
    #     #诊断日志
    #     diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.FetchDiagnoseAction)
    #     DiagnoseLog.save(db_session,diagoseLog)
    #
    #     return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    # else:
    #     return json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)

    result = Diagnose.addAdminIdAndChangeStatus(diagnoseId, userId)
    #诊断日志
    if result:
        diagoseLog = DiagnoseLog(
            userId, diagnoseId, constant.DiagnoseLogAction.FetchDiagnoseAction)
        DiagnoseLog.save(db_session, diagoseLog)

        return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
    return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 23
0
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:
            if userId!=diagnose.patient.userID:
                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)
Ejemplo n.º 24
0
def redirectAlipay(alipayHashcode):
    alipayUrl=Diagnose.getAlipayUrl(alipayHashcode)
    if alipayUrl is None:
        return redirect(ERROR_URL)
    #return redirect("/pdf")
    #print url_for('user_center.generatorPdf',diagnoseName='ccheng')
    return redirect(alipayUrl[0])
Ejemplo n.º 25
0
def getMobileVerifyCode():
    try:
        from DoctorSpring.util import verify_code,sms_utils
        verifyCode= verify_code.generatorVerifyCode()
        LOG.info("产生验证码")
        session['verifyCode']=verifyCode
        telPhoneNo=None
        userId=session.get('userId')
        diagnoseId=request.args.get('diagnoseId')

        diagnose=Diagnose.getDiagnoseById(diagnoseId)

        if diagnose and hasattr(diagnose,'patient') and diagnose.patient:
            telPhoneNo=diagnose.patient.identityPhone
            if telPhoneNo is None and hasattr(diagnose.patient,'user') and diagnose.patient.user:
                telPhoneNo=diagnose.patient.user.phone
        if telPhoneNo is None:
            user=User.getById(userId)
            telPhoneNo=user.phone
        if telPhoneNo:
            smsRc=sms_utils.RandCode()
            template_param = {'param1':verifyCode}
            smsRc.send_emp_sms(telPhoneNo,smsRc.TEMPLATE_ID_1,json.dumps(template_param))
            return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
        else:
            LOG.error("诊断[%s]发送验证码错误"%diagnoseId)
            return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)

    except Exception,e:
        LOG.error(e.message)
        return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 26
0
def generatorPdf(diagnoseId):

    diagnose=Diagnose.getDiagnoseById(diagnoseId)
    if session.has_key('userId'):
        userId=session['userId']
    if userId is None:
        return redirect('/loginPage')

    resHtml = None

    if UserRole.checkRole(db_session,userId,constant.RoleId.Patient) and Patient.is_patient_under_user(int(userId),diagnose.patientId):
        resHtml = renderHtmlFromDiagnose(diagnose)

    if UserRole.checkRole(db_session,userId,constant.RoleId.Admin) and (int(userId) == diagnose.adminId):
        resHtml = renderHtmlFromDiagnose(diagnose)

    if UserRole.checkRole(db_session,userId,constant.RoleId.Doctor) and (int(userId) == diagnose.doctorId):
        resHtml = renderHtmlFromDiagnose(diagnose)

    if UserRole.checkRole(db_session,userId,constant.RoleId.HospitalUser) and (int(userId) == diagnose.uploadUserId):
        resHtml = renderHtmlFromDiagnose(diagnose)

    if resHtml:
        return resHtml
    else:
        return redirect('/error')
Ejemplo n.º 27
0
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)
Ejemplo n.º 28
0
def redirectAlipay(alipayHashcode):
    alipayUrl = Diagnose.getAlipayUrl(alipayHashcode)
    if alipayUrl is None:
        return redirect(ERROR_URL)
    #return redirect("/pdf")
    #print url_for('user_center.generatorPdf',diagnoseName='ccheng')
    return redirect(alipayUrl[0])
Ejemplo n.º 29
0
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)
Ejemplo n.º 30
0
 def validate(self):
     try:
         if self.diagnoseId is None:
             return FAILURE
         diagnose=Diagnose.getDiagnoseById(self.diagnoseId)
         if diagnose is None:
             return FAILURE
         if diagnose.doctorId and hasattr(diagnose,'doctor') and diagnose.doctor and diagnose.doctor.userId:
             self.receiverId=diagnose.doctor.userId
         else:
             return FAILURE
         if diagnose.patientId and hasattr(diagnose,'patient') and diagnose.patient and diagnose.patient.userID:
             self.userId=diagnose.patient.userID
         else:
             return FAILURE
         # if self.title is None:
         #     return FAILURE
         if self.content is None or len(self.content)<10:
             failure=ResultStatus(FAILURE.status,"输入的内容长度必须大于等于10")
             return  failure
         if self.score is None or self.score == u'':
             return FAILURE
         else:
             self.score=string.atoi(self.score)
     except Exception,e:
         return FAILURE
Ejemplo n.º 31
0
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)
Ejemplo n.º 32
0
def diagnosefileUpload(filetype):
    userId = session.get('userId')
    diagnoseId = request.args.get('diagnoseId')
    diagnose = Diagnose.getDiagnoseById(diagnoseId)
    if diagnose and userId:
        userId = string.atoi(userId)
        if diagnose.uploadUserId == userId:
            File.deleteFileByPathologyId(diagnose.pathologyId, filetype)
Ejemplo n.º 33
0
def cancleDiagnose(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.patient.userID==userId) or (hasattr(diagnose,'uploadUser') and diagnose.uploadUserId and  diagnose.uploadUserId==userId):
         diagnose.status=constant.DiagnoseStatus.Del
         Diagnose.save(diagnose)

         diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.CancleDiagnose)
         DiagnoseLog.save(db_session,diagoseLog)
         return  json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
    else:
         return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)
Ejemplo n.º 34
0
def updateDiagnose(diagnoseId, alipayUrl):
    if diagnoseId:
        diagnose = Diagnose()
        diagnose.id = diagnoseId
        diagnose.alipayUrl = alipayUrl
        diagnose.alipayHashCode = getAlipayHashCode()
        Diagnose.update(diagnose)
Ejemplo n.º 35
0
def needCallBySupportStaff():
    pageNo=request.args.get('pageNumber')
    pageSize=request.args.get('pageSize')
    pager=Pagger(pageNo,pageSize)
    diagnoses=Diagnose.getDiagnosesBySupportStaff(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)
Ejemplo n.º 36
0
def endterDoctorHome():
    userId=session['userId']
    doctor=Doctor.getByUserId(userId)

    if doctor is None:
        return redirect(ERROR_URL)

    resultDate={}
    messageCount=Message.getMessageCountByReceiver(userId)
    resultDate['messageCount']=messageCount

    diagnoseCount=Diagnose.getNewDiagnoseCountByDoctorId(doctor.id)
    resultDate['diagnoseCount']=diagnoseCount

    resultDate['doctor']=doctor
    pager=Pagger(1,20)
    diagnoses=Diagnose.getDiagnosesByDoctorId(db_session,doctor.id,pager)
    diagnoseDict=dataChangeService.userCenterDiagnoses(diagnoses)
    resultDate['diagnoses']=diagnoseDict
    return render_template("doctorHome.html",data=resultDate)
Ejemplo n.º 37
0
def endterDoctorHome():
    userId = session['userId']
    doctor = Doctor.getByUserId(userId)

    if doctor is None:
        return redirect(ERROR_URL)

    resultDate = {}
    messageCount = Message.getMessageCountByReceiver(userId)
    resultDate['messageCount'] = messageCount

    diagnoseCount = Diagnose.getNewDiagnoseCountByDoctorId(doctor.id)
    resultDate['diagnoseCount'] = diagnoseCount

    resultDate['doctor'] = doctor
    pager = Pagger(1, 20)
    diagnoses = Diagnose.getDiagnosesByDoctorId(db_session, doctor.id, pager)
    diagnoseDict = dataChangeService.userCenterDiagnoses(diagnoses)
    resultDate['diagnoses'] = diagnoseDict
    return render_template("doctorHome.html", data=resultDate)
Ejemplo n.º 38
0
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)
Ejemplo n.º 39
0
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)
Ejemplo n.º 40
0
def cancleDiagnose(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.patient.userID
            == userId) or (hasattr(diagnose, 'uploadUser')
                           and diagnose.uploadUserId
                           and diagnose.uploadUserId == userId):
        diagnose.status = constant.DiagnoseStatus.Del
        Diagnose.save(diagnose)

        diagoseLog = DiagnoseLog(userId, diagnoseId,
                                 constant.DiagnoseLogAction.CancleDiagnose)
        DiagnoseLog.save(db_session, diagoseLog)
        return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
    else:
        return json.dumps(rs.PERMISSION_DENY.__dict__, ensure_ascii=False)
Ejemplo n.º 41
0
def applyRefund(diagnoseId):
    userId = session['user_id']
    diagoseLog=DiagnoseLog(userId,diagnoseId,constant.DiagnoseLogAction.DiagnoseRefund)
    DiagnoseLog.save(session,diagoseLog)

    diagnose = Diagnose.getDiagnoseById(diagnoseId)
    if diagnose.status == constant.DiagnoseStatus.Diagnosed:
        diagnosePayStats = DiagnosePayStats.getPayStatsByDiagnoseId(diagnoseId)
        for payStats in diagnosePayStats:
            payStats.status = constant.DiagnosePayStatsConstant.Refund
        DiagnosePayStats.updatePayStats(diagnosePayStats)

    return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
Ejemplo n.º 42
0
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)
Ejemplo n.º 43
0
def getDiagnoseLogBydiagnoseId(diagnoseId):
    if session.has_key('userId'):
        userId=session['userId']
    if userId is None:
        return redirect(LOGIN_URL)
    diagnose=Diagnose.getDiagnoseById(diagnoseId)
    if diagnose and hasattr(diagnose,'patient') and diagnose.patient.userID==string.atoi(userId):
        diagnoseLogs=AlipayLog.getAlipayLogsByDiagnoseId(diagnoseId)
        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)
    return  json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 44
0
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)
Ejemplo n.º 45
0
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)
Ejemplo n.º 46
0
def disableFile():
    try:
        disgnoseId = request.form.get('diagnoseId')
        type = request.form.get('type')
        if disgnoseId is None:
            disgnoseId = string.atoi(disgnoseId)
        if type is None:
            type = constant.FileType.Dicom
        else:
            type = string.atoi(type)
        diagnose = Diagnose.getDiagnoseById(disgnoseId)
        if diagnose and diagnose.pathologyId:
            pathologyId = diagnose.pathologyId
            result = File.deleteFileByPathologyId(pathologyId, type)
            if result > 0:
                diagnose.ossUploaded = constant.DiagnoseUploaed.NoUploaded
                Diagnose.save(diagnose)
                return jsonify(rs.SUCCESS.__dict__, ensure_ascii=False)
        return jsonify(rs.FAILURE.__dict__, ensure_ascii=False)

    except Exception, e:
        LOG.error(e.message)
        return redirect(ERROR_URL)
Ejemplo n.º 47
0
def getDiagnoseListByHospitaluserReal():
    userId=session['userId']

    if userId:

        pageNo=request.args.get('pageNo')
        pageSize=request.args.get('pageSize')
        pager=Pagger(pageNo,pageSize)
        diagnoses=Diagnose.getDiagnoseByHospitalUserReal(db_session,userId,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)
    return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 48
0
def applyRefund(diagnoseId):
    userId = session['user_id']
    diagoseLog = DiagnoseLog(userId, diagnoseId,
                             constant.DiagnoseLogAction.DiagnoseRefund)
    DiagnoseLog.save(session, diagoseLog)

    diagnose = Diagnose.getDiagnoseById(diagnoseId)
    if diagnose.status == constant.DiagnoseStatus.Diagnosed:
        diagnosePayStats = DiagnosePayStats.getPayStatsByDiagnoseId(diagnoseId)
        for payStats in diagnosePayStats:
            payStats.status = constant.DiagnosePayStatsConstant.Refund
        DiagnosePayStats.updatePayStats(diagnosePayStats)

    return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
Ejemplo n.º 49
0
def generateAlipayUrl(diagnoseId):
    if session.has_key('userId'):
        userId=session['userId']
    if userId is None:
        return redirect(LOGIN_URL)
    diagnose=Diagnose.getDiagnoseById(diagnoseId)

    if diagnose and hasattr(diagnose,'patient') and string.atoi(userId)!=diagnose.patient.userID:
        result=rs.ResultStatus(rs.FAILURE.status,"诊断不存在或不是用户申请的")
        return  json.dumps(result.__dict__,ensure_ascii=False)

    if diagnose and diagnose.status==constant.DiagnoseStatus.NeedPay and diagnose.ossUploaded==constant.DiagnoseUploaed.Uploaded:
        alipayLog=AlipayLog(userId,diagnoseId,constant.AlipayLogAction.StartApplyAlipay)
        AlipayLog.save(alipayLog)
        description=None
        needPay=None
        if hasattr(diagnose,'pathology') and hasattr(diagnose.pathology,'pathologyPostions'):
            if len(diagnose.pathology.pathologyPostions)>0:
                if diagnose.pathology.diagnoseMethod==constant.DiagnoseMethod.Mri:
                    needPay=diagnose.getPayCount(constant.DiagnoseMethod.Mri,len(diagnose.pathology.pathologyPostions),diagnose.getUserDiscount(diagnose.patientId))
                elif diagnose.pathology.diagnoseMethod==constant.DiagnoseMethod.Ct:
                    needPay=diagnose.getPayCount(constant.DiagnoseMethod.Ct,len(diagnose.pathology.pathologyPostions),diagnose.getUserDiscount(diagnose.patientId))
            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)

        if hasattr(diagnose,'doctor') and hasattr(diagnose.doctor,'username'):

            description=' 医生(%s)的诊断费用:%f 元'%(diagnose.doctor.username,needPay)
            if hasattr(diagnose.doctor.hospital,'name'):
                description=diagnose.doctor.hospital.name+description
        payUrl=alipay.create_direct_pay_by_user(diagnose.diagnoseSeriesNumber,diagnose.diagnoseSeriesNumber,'咨询费',needPay)
        if payUrl:
            alipayLog=AlipayLog(userId,diagnoseId,constant.AlipayLogAction.GetAlipayUrl)
            alipayLog.description=description
            alipayLog.payUrl=payUrl
            AlipayLog.save(alipayLog)
            result=rs.ResultStatus(rs.SUCCESS.status,rs.SUCCESS.msg,payUrl)
            return  json.dumps(result.__dict__,ensure_ascii=False)
        else:
            alipayLog=AlipayLog(userId,diagnoseId,constant.AlipayLogAction.GetAlipayUrlFailure)
            AlipayLog.save(alipayLog)
            result=rs.ResultStatus(rs.FAILURE.status,constant.AlipayLogAction.GetAlipayUrlFailure)
            return  json.dumps(result.__dict__,ensure_ascii=False)
    result=rs.ResultStatus(rs.FAILURE.status,"诊断不存在或这状态不对")
    return  json.dumps(result.__dict__,ensure_ascii=False)
Ejemplo n.º 50
0
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)
Ejemplo n.º 51
0
def copyObjects():
    oss = OssAPI(HOST, ACCESS_ID, SECRET_ACCESS_KEY)
    bucket="solidmedicaltest"
    prefix = "1_c4ca4238a0b923820dcc509a6f75849b/"
    marker = ""
    delimiter = "/"
    maxkeys = "100"
    headers = {}
    res = oss.get_bucket(bucket, prefix, marker, delimiter, maxkeys, headers)
    if (res.status / 100) == 2:
        body = res.read()
        #print body
        h = GetBucketXml(body)
        (file_list, common_list) = h.list()
        print "object list is:"
        for i in file_list:
            fileName= i[0]
            diagnoseId=getDiagnoseIdFromFileName(fileName)
            diagnose=Diagnose.getDiagnoseByDiagnoseSeriesNo(diagnoseId)
            if diagnose:
                res=oss.copy_object(bucket,fileName,bucket,diagnoseId)
                if (res.status / 100) == 2:
                    fileUrl='http://%s.%s/%s'%(bucket,WEB_HOST,diagnoseId)
                    Diagnose.setDiagnoseUploaded(diagnoseId)
Ejemplo n.º 52
0
def addOrUpdateReport():

    userId=session['userId']
    user=User.getById(userId)


    if user is None  :
        return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
    #权限查看
    if  UserRole.checkRole(db_session,userId,constant.RoleId.Admin) == False:
        return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)

    form =  ReportForm(request.form)
    formResult=form.validate()
    if formResult.status==rs.SUCCESS.status:
        diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
        if diagnose is None:
            return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        report = None
        if form.reportId:
            report=Report.getReportById(form.reportId)
            if report.type==constant.ReportType.Doctor:
                return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)
            Report.update(form.reportId,None,form.status,None,form.techDesc,form.imageDesc,form.diagnoseDesc)
        else:
            report=Report(form.techDesc,form.imageDesc,form.diagnoseDesc,form.fileUrl,ReportType.Admin,form.status)
            Report.save(report)

            diagnose.reportId=report.id
            Diagnose.save(diagnose)
        #flash('成功添加诊断评论')
        if form.status and form.status == constant.ReportStatus.Commited:
            diagnose=Diagnose.getDiagnoseById(form.diagnoseId)
            if diagnose:
                Diagnose.changeDiagnoseStatus(diagnose.id,constant.DiagnoseStatus.NeedDiagnose)
            if form.reportId is None and report:
                form.reportId = report.id
            Report.update(form.reportId,constant.ReportType.Doctor,status=constant.ReportStatus.Draft)
            if diagnose and hasattr(diagnose,'doctor'):
                doctor=diagnose.doctor
                if doctor and doctor.userId:
                    content=dataChangeService.getDoctorNeedDiagnoseMessageContent(diagnose,doctor)

                    #诊断通知
                    message=Message(constant.DefaultSystemAdminUserId,doctor.userId,'诊断通知',content,constant.MessageType.Diagnose)
                    Message.save(message)

                    #诊断日志
                    diagoseLog=DiagnoseLog(userId,form.diagnoseId,constant.DiagnoseLogAction.FetchDiagnoseEndAction)
                    DiagnoseLog.save(db_session,diagoseLog)

            return json.dumps(formResult.__dict__,ensure_ascii=False)
    return json.dumps(formResult.__dict__,ensure_ascii=False)
Ejemplo n.º 53
0
def getDiagnoseListByHospitalUser():

     userId=session['userId']


     pageNo=request.args.get('pageNumber')
     pageSize=request.args.get('pageSize')
     pager=Pagger(pageNo,pageSize)
     diagnoses=Diagnose.getNeedDealDiagnoseByHospitalUser(db_session,userId,None,pager)
     #type fullFile代表查询文件返回文件全部信息,如果没有只返回FILE URL
     diagnosesDict=dataChangeService.userCenterDiagnoses(diagnoses,'fullFile')


     resultStatus=rs.ResultStatus(rs.SUCCESS.status,rs.SUCCESS.msg,diagnosesDict)
     resultDict=resultStatus.__dict__
     return json.dumps(resultDict,ensure_ascii=False)
Ejemplo n.º 54
0
def getDiagnoseListByHospitaluserReal():
    userId = session['userId']

    if userId:

        pageNo = request.args.get('pageNo')
        pageSize = request.args.get('pageSize')
        pager = Pagger(pageNo, pageSize)
        diagnoses = Diagnose.getDiagnoseByHospitalUserReal(
            db_session, userId, 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)
    return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 55
0
def getDiagnoseListByHospitalUser():

    userId = session['userId']

    pageNo = request.args.get('pageNumber')
    pageSize = request.args.get('pageSize')
    pager = Pagger(pageNo, pageSize)
    diagnoses = Diagnose.getNeedDealDiagnoseByHospitalUser(
        db_session, userId, None, pager)
    #type fullFile代表查询文件返回文件全部信息,如果没有只返回FILE URL
    diagnosesDict = dataChangeService.userCenterDiagnoses(
        diagnoses, 'fullFile')

    resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg,
                                   diagnosesDict)
    resultDict = resultStatus.__dict__
    return json.dumps(resultDict, ensure_ascii=False)
Ejemplo n.º 56
0
def getDiagnoseLogBydiagnoseId(diagnoseId):
    if session.has_key('userId'):
        userId = session['userId']
    if userId is None:
        return redirect(LOGIN_URL)
    diagnose = Diagnose.getDiagnoseById(diagnoseId)
    if diagnose and hasattr(
            diagnose,
            'patient') and diagnose.patient.userID == string.atoi(userId):
        diagnoseLogs = AlipayLog.getAlipayLogsByDiagnoseId(diagnoseId)
        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)
    return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 57
0
def getDiagnoseListByAdmin2():

    userId = session['userId']

    hostpitalIds = request.args.get('hospitalId')
    hostpitalList = UserCenter.getDiagnoseListByAdmin(hostpitalIds)
    doctorName = request.args.get('doctorName')
    pageNo = request.args.get('pageNo')
    pageSize = request.args.get('pageSize')
    pager = Pagger(pageNo, pageSize)
    diagnoses = Diagnose.getDiagnoseByAdmin2(db_session, hostpitalList,
                                             doctorName, 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)
Ejemplo n.º 58
0
def setDiagnoseCommentsDetailInfo(diagnoseCommentsDict):
    if diagnoseCommentsDict is None or len(diagnoseCommentsDict) < 1:
        return
    for diagnoseComment in diagnoseCommentsDict:
        if diagnoseComment.has_key('observer'):
            observer = diagnoseComment.get('observer')
            user = User.getById(observer)
            if user:
                diagnoseComment['avatar'] = user.imagePath
                diagnoseComment['senderName'] = user.name

        if diagnoseComment.has_key('receiver'):
            receiver = diagnoseComment.get('receiver')
            user = User.getById(receiver)
            if user:
                #diagnoseComment['receiverName']=user.name
                doctor = Doctor.getByUserId(receiver)
                if doctor and hasattr(doctor, "hospital") and doctor.hospital:
                    diagnoseComment['doctorUserId'] = receiver
                    diagnoseComment['hospitalId'] = doctor.hospitalId
                    diagnoseComment['hospitalName'] = doctor.hospital.name
                    diagnoseComment['receiverName'] = doctor.username

        if diagnoseComment.has_key('diagnoseId'):
            diagnose = Diagnose.getDiagnoseById(
                diagnoseComment.get('diagnoseId'))
            if diagnose:
                if diagnose.score:
                    diagnoseComment['scoreName'] = constant.DiagnoseScore[
                        diagnose.score]
                # if diagnose.hospitalId and hasattr(diagnose,'hospital') and diagnose.hospital and diagnose.hospita.name:
                #     diagnoseComment['hospitalId']= diagnose.hospitalId
                #     diagnoseComment['hospitalName']=diagnose.hospital.name
                if hasattr(diagnose, "pathology") and diagnose.pathology:
                    pathology = diagnose.pathology
                    if hasattr(pathology, "pathologyPostions"
                               ) and pathology.pathologyPostions:
                        pathologyPositons = pathology.pathologyPostions
                        if pathologyPositons and len(pathologyPositons) > 0:
                            positions = u''
                            for pathologyPositon in pathologyPositons:
                                position = pathologyPositon.position
                                positions += (u' ' + position.name)
                            diagnoseComment['positionName'] = positions
Ejemplo n.º 59
0
def getDiagnoseListByPatient():
    userId = session['userId']
    # user=User.getById(userId)
    # if user is None:
    #     return  json.dumps(rs.NO_DATA.__dict__,ensure_ascii=False)
    #     #权限查看
    # if UserRole.checkRole(db_session,userId,constant.RoleId.Admin):
    #     return  json.dumps(rs.PERMISSION_DENY.__dict__,ensure_ascii=False)

    if userId:

        status = request.args.get('type')
        if status:
            import string
            status = string.atoi(status)
        if status == u'':
            status = None

        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

        pageNo = request.args.get('pageNo')
        pageSize = request.args.get('pageSize')
        pager = Pagger(pageNo, pageSize)
        diagnoses = Diagnose.getDiagnoseByPatientUser(db_session, userId,
                                                      status, 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)
    return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)