Ejemplo n.º 1
0
def updateAcountInfo():
    type = request.form.get('type')
    if type:
        type = string.atoi(type)  #医生:1 病人:2
    else:
        type = 2
    userId = None
    if session.has_key('userId'):
        userId = session['userId']
    if userId is None:
        return redirect(LOGIN_URL)
    form = UserUpdateForm(request.form)
    paraRs = form.validate()
    if rs.SUCCESS.status == paraRs.status:
        User.update(userId, form.name, form.account, form.mobile, form.address,
                    form.email, form.identityCode, form.yibaoCard)
        if type == 1:
            doctor = Doctor(userId)
            doctor.identityPhone = form.identityPhone
            doctor.username = form.name
            hospitalId = Doctor.update(doctor)
            # if hospitalId:
            #     hospital=Hospital(form.hospitalName)
            #     hospital.id=hospitalId
            #     Hospital.updateHospital(hospital)

        return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)

    return json.dumps(rs.FAILURE.__dict__, ensure_ascii=False)
Ejemplo n.º 2
0
 def validate(self):
     try:
         if self.email is None or "@" not in self.email:
             failure = ResultStatus(FAILURE.status, "邮箱地址格式不正确")
             return failure
         else:
             user = User.get_by_name(self.email)
             if user is not None:
                 failure = ResultStatus(FAILURE.status, "邮箱地址已注册")
                 return failure
         if self.username is None:
             failure = ResultStatus(FAILURE.status, "用户名为空")
             return failure
         if self.password is None:
             failure = ResultStatus(FAILURE.status, "密码为空")
             return failure
         if self.real_name is None:
             failure = ResultStatus(FAILURE.status, "真实姓名为空")
             return failure
         if self.identity_phone is None:
             failure = ResultStatus(FAILURE.status, "注册号码为空")
             return failure
         if self.cellphone is None:
             failure = ResultStatus(FAILURE.status, "手机号码格式不对")
             return failure
         else:
             user = User.get_by_name(self.cellphone)
             if user is not None:
                 failure = ResultStatus(FAILURE.status, "手机号码已注册")
                 return failure
     except Exception, e:
         return FAILURE
Ejemplo n.º 3
0
def updateAcountInfo():
    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']
    if userId is None:
        return redirect(LOGIN_URL)
    form=UserUpdateForm(request.form)
    paraRs=form.validate()
    if rs.SUCCESS.status==paraRs.status:
        User.update(userId,form.name,form.account,form.mobile,form.address,form.email,form.identityCode,form.yibaoCard)
        if type==1:
            doctor=Doctor(userId)
            doctor.identityPhone=form.identityPhone
            hospitalId=Doctor.update(doctor)
            if hospitalId:
                hospital=Hospital(form.hospitalName)
                hospital.id=hospitalId
                Hospital.updateHospital(hospital)

        return json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)

    return json.dumps(rs.FAILURE.__dict__,ensure_ascii=False)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
 def test_add_patient(self):
     new_user = User("*****@*****.**", "123456")
     new_user.type = UserStatus.patent
     User.save(new_user)
     new_patient = Patient(new_user.id)
     Patient.save(new_patient)
     new_userrole = UserRole(new_user.id, RoleId.Patient)
     UserRole.save(new_userrole)
Ejemplo n.º 6
0
 def test_add_patient(self):
     new_user = User("*****@*****.**", "123456")
     new_user.type = UserStatus.patent
     User.save(new_user)
     new_patient = Patient(new_user.id)
     Patient.save(new_patient)
     new_userrole = UserRole(new_user.id, RoleId.Patient)
     UserRole.save(new_userrole)
Ejemplo n.º 7
0
def resetPasswd(mobileNumber):
    userId=str(int(User.get_id_by_phone(mobileNumber)[0]))
    form=UserResetPasswdForm(request.form)
    result=form.validate()
    if result.status==rs.SUCCESS.status:
        user = User.getById(userId)
        newHashPasswd=generate_password_hash(form.newPasswd)
        User.update(userId,passwd=newHashPasswd)
    return  json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
Ejemplo n.º 8
0
def resetPasswd(mobileNumber):
    userId = str(int(User.get_id_by_phone(mobileNumber)[0]))
    form = UserResetPasswdForm(request.form)
    result = form.validate()
    if result.status == rs.SUCCESS.status:
        user = User.getById(userId)
        newHashPasswd = generate_password_hash(form.newPasswd)
        User.update(userId, passwd=newHashPasswd)
    return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
Ejemplo n.º 9
0
def register_patient():
    form = RegisterFormPatent(request.form)
    form_result = form.validate()
    if form_result.status == rs.SUCCESS.status:
        new_user = User(form.nickname, form.name, form.password)
        new_user.type = UserStatus.patent
        User.save(new_user)
        new_userrole = UserRole(new_user.id, RoleId.Patient)
        UserRole.save(new_userrole)
        login_session(new_user)
        form_result.msg = request.host_url + "homepage"
        return jsonify(form_result.__dict__, ensure_ascii=False)

    return jsonify(form_result.__dict__, ensure_ascii=False)
Ejemplo n.º 10
0
def register_patient():
    form = RegisterFormPatent(request.form)
    form_result = form.validate()
    if form_result.status == rs.SUCCESS.status:
        new_user = User(form.nickname, form.name, form.password)
        new_user.type = UserStatus.patent
        User.save(new_user)
        new_userrole = UserRole(new_user.id, RoleId.Patient)
        UserRole.save(new_userrole)
        login_session(new_user)
        form_result.msg = request.host_url + 'homepage'
        return jsonify(form_result.__dict__,ensure_ascii=False)

    return jsonify(form_result.__dict__,ensure_ascii=False)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
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.º 13
0
def setConsultsResult(consutsDict, userId=0):
    if consutsDict is None:
        return
    for consutDict in consutsDict:
        type=consutDict.get('type')
        if type==1:
            if consutDict.get('doctorId'):
                    doctor=Doctor.getById(consutDict.get('doctorId'))
                    if doctor:
                        consutDict['doctorName']=doctor.username
                        consutDict['doctorTitle']=doctor.title
                        if hasattr(doctor,'user') and doctor.user and doctor.user.imagePath:
                            consutDict['avartarUrl']= doctor.user.imagePath
                    consutDict["statusText"] = getStatusText(consutDict.get("status"),
                                                             UserRole.checkRole(db_session,userId,constant.RoleId.Doctor))

        if type==0:
            if consutDict.get('userId'):
                user=User.getById(consutDict.get('userId'))
                if user:
                    consutDict['userName']=user.name
                    consutDict['avartarUrl']=user.imagePath
                    consutDict["statusText"] = getStatusText(consutDict.get("status"),
                                                             UserRole.checkRole(db_session,userId,constant.RoleId.Doctor))
        consutDict['amount']=consutDict.get('count')
Ejemplo n.º 14
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.º 15
0
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)
Ejemplo n.º 16
0
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)
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)

    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.º 18
0
def setConsultsResult(consutsDict, userId=0):
    if consutsDict is None:
        return
    for consutDict in consutsDict:
        type = consutDict.get('type')
        if type == 1:
            if consutDict.get('doctorId'):
                doctor = Doctor.getById(consutDict.get('doctorId'))
                if doctor:
                    consutDict['doctorName'] = doctor.username
                    consutDict['doctorTitle'] = doctor.title
                    if hasattr(
                            doctor,
                            'user') and doctor.user and doctor.user.imagePath:
                        consutDict['avartarUrl'] = doctor.user.imagePath
                consutDict["statusText"] = getStatusText(
                    consutDict.get("status"),
                    UserRole.checkRole(db_session, userId,
                                       constant.RoleId.Doctor))

        if type == 0:
            if consutDict.get('userId'):
                user = User.getById(consutDict.get('userId'))
                if user:
                    consutDict['userName'] = user.name
                    consutDict['avartarUrl'] = user.imagePath
                    consutDict["statusText"] = getStatusText(
                        consutDict.get("status"),
                        UserRole.checkRole(db_session, userId,
                                           constant.RoleId.Doctor))
        consutDict['amount'] = consutDict.get('count')
Ejemplo n.º 19
0
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__)
        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)
            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)
Ejemplo n.º 20
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.º 21
0
def updateDoctorInfo():
    form=DoctorUpdateForm(request.form)
    doctor=Doctor(form.userId)
    doctor.departmentId=form.department
    doctor.hospitalId=form.hospital
    doctor.status=form.status
    doctor.title=form.title
    Doctor.update(doctor)
    doctor=Doctor.getByUserId(form.userId)

    if doctor:
        for skill in form.skills:
            doctorsKill=Doctor2Skill(doctor.id,skill)
            Doctor2Skill.save(doctorsKill)
    User.update(form.userId,status=constant.ModelStatus.Normal)
    result=rs.ResultStatus(rs.SUCCESS.status,rs.SUCCESS.msg,None)
    return  json.dumps(result.__dict__,ensure_ascii=False)
Ejemplo n.º 22
0
def updateDoctorInfo():
    form = DoctorUpdateForm(request.form)
    doctor = Doctor(form.userId)
    doctor.departmentId = form.department
    doctor.hospitalId = form.hospital
    doctor.status = form.status
    doctor.title = form.title
    Doctor.update(doctor)
    doctor = Doctor.getByUserId(form.userId)

    if doctor:
        for skill in form.skills:
            doctorsKill = Doctor2Skill(doctor.id, skill)
            Doctor2Skill.save(doctorsKill)
    User.update(form.userId, status=constant.ModelStatus.Normal)
    result = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, None)
    return json.dumps(result.__dict__, ensure_ascii=False)
Ejemplo n.º 23
0
def changePasswd():
    userId=None
    if session.has_key('userId'):
        userId=session['userId']
    if userId is None:
        return redirect(LOGIN_URL)
    form=UserChangePasswdForm(request.form)
    result=form.validate()
    if result.status==rs.SUCCESS.status:
        user = User.getById(userId)
        if user and user.check_password(form.oldPasswd):
            newHashPasswd=generate_password_hash(form.newPasswd)
            User.update(userId,passwd=newHashPasswd)
            return  json.dumps(rs.SUCCESS.__dict__,ensure_ascii=False)
        else:
            resultStatus=rs.ResultStatus(rs.FAILURE.status,"未登录或者密码错误")
            return json.dumps(resultStatus.__dict__,ensure_ascii=False)
    return json.dumps(result.__dict__,ensure_ascii=False)
Ejemplo n.º 24
0
def changePasswd():
    userId = None
    if session.has_key('userId'):
        userId = session['userId']
    if userId is None:
        return redirect(LOGIN_URL)
    form = UserChangePasswdForm(request.form)
    result = form.validate()
    if result.status == rs.SUCCESS.status:
        user = User.getById(userId)
        if user and user.check_password(form.oldPasswd):
            newHashPasswd = generate_password_hash(form.newPasswd)
            User.update(userId, passwd=newHashPasswd)
            return json.dumps(rs.SUCCESS.__dict__, ensure_ascii=False)
        else:
            resultStatus = rs.ResultStatus(rs.FAILURE.status, "未登录或者密码错误")
            return json.dumps(resultStatus.__dict__, ensure_ascii=False)
    return json.dumps(result.__dict__, ensure_ascii=False)
Ejemplo n.º 25
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.º 26
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.º 27
0
 def test_addPatient(self):
     user=User('liclu','15210892443','123456')
     user.sex=0
     user.status=0
     user.email='*****@*****.**'
     user.address='四川省 通江县'
     user.phone = '15210892443'
     User.save(user)
     patient=Patient()
     patient.gender=0
     patient.Name='程成'
     patient.status=0
     patient.userID=user.id
     Patient.save(patient)
     new_userrole = UserRole(user.id, RoleId.Patient)
     UserRole.save(new_userrole)
Ejemplo n.º 28
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.º 29
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.º 30
0
def setThanksNoteDetail(thanksNoteDicts):
    if thanksNoteDicts and len(thanksNoteDicts) < 1:
        return
    for thanksNoteDict in thanksNoteDicts:
        if thanksNoteDict.has_key("sender"):
            observer = thanksNoteDict.get("sender")
            user = User.getById(observer)
            if user:
                thanksNoteDict["observer"] = observer
                thanksNoteDict["observerName"] = user.name
                if user.imagePath:
                    thanksNoteDict["avatarUrl"] = user.imagePath
Ejemplo n.º 31
0
def setThanksNoteDetail(thanksNoteDicts):
    if thanksNoteDicts and len(thanksNoteDicts) < 1:
        return
    for thanksNoteDict in thanksNoteDicts:
        if thanksNoteDict.has_key('sender'):
            observer = thanksNoteDict.get('sender')
            user = User.getById(observer)
            if user:
                thanksNoteDict['observer'] = observer
                thanksNoteDict['observerName'] = user.name
                if user.imagePath:
                    thanksNoteDict["avatarUrl"] = user.imagePath
Ejemplo n.º 32
0
 def validate(self):
     try:
         if self.nickname is None or self.nickname == u"":
             failure = ResultStatus(FAILURE.status, "昵称为空")
             return failure
         if self.password is None or self.password == u"":
             failure = ResultStatus(FAILURE.status, "密码为空")
             return failure
         if self.name is None or self.name == u"":
             failure = ResultStatus(FAILURE.status, "用户名为空")
             return failure
         else:
             if '@' in self.name:
                 user = User.getByEmail(self.name)
             else:
                 user = User.getByPhone(self.name)
             if user.count() > 0:
                 failure = ResultStatus(FAILURE.status, "该用户已存在")
                 return failure
     except Exception, e:
         return FAILURE
Ejemplo n.º 33
0
    def test_addSuperUser(self):
        user=User('zhoufan','13426026573','123456')
        user.sex=0
        user.status=0
        user.email='*****@*****.**'
        user.address='四川省 通江县'
        user.phone = '13426026573'
        user.type = UserStatus.doctor
        user.name = "张西"
        User.save(user)


        patient=Patient()
        patient.gender=0
        patient.Name='zf'
        patient.status=0
        patient.userID=user.id
        Patient.save(patient)
        new_userrole = UserRole(user.id, RoleId.Patient)
        UserRole.save(new_userrole)

        new_doctor_1 = Doctor(user.id)
        new_doctor_1.identityPhone = "029-12345567"
        new_doctor_1.username = "******"
        new_doctor_1.diagnoseCount = 10
        new_doctor_1.feedbackCount = 5
        new_doctor_1.goodFeedbackCount = 5
        new_doctor_1.hospitalId = 1
        new_doctor_1.departmentId = 1
        new_doctor_1.title = "副主任医师"
        new_doctor_1.status = 0


        Doctor.save(new_doctor_1)
        new_doctor2skill_1_1 = Doctor2Skill(new_doctor_1.id,1)
        Doctor2Skill.save(new_doctor2skill_1_1)
        new_userrole1 = UserRole(user.id, RoleId.Doctor)
        UserRole.save(new_userrole1)
        new_userrole2 = UserRole(user.id, RoleId.Admin)
        UserRole.save(new_userrole2)
Ejemplo n.º 34
0
    def test_addHospitalUser(self):
        new_user_1 = User('医院用户',"44444444444", "123456")
        new_user_1.email = "*****@*****.**"
        new_user_1.phone = "44444444444"
        new_user_1.name = "医院用户"
        new_user_1.type = UserStatus.doctor
        User.save(new_user_1)

        new_doctor_1 = Doctor(new_user_1.id)
        new_doctor_1.username = "******"
        new_doctor_1.hospitalId = 1
        new_doctor_1.status = 0
        new_doctor_1.type = DoctorType.HospitalUser
        Doctor.save(new_doctor_1)
        new_userrole = UserRole(new_user_1.id, RoleId.HospitalUser)
        UserRole.save(new_userrole)
Ejemplo n.º 35
0
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)
Ejemplo n.º 36
0
def login():
    form = LoginForm(request.form)
    formResult = form.validate()
    if formResult.status == rs.SUCCESS.status:
        # session['remember_me'] = form.remember_me.data
        # login and validate the user...
        user = User.get_by_name(form.username)
        if user is not None and user.check_password(form.password):
            login_session(user)
            formResult.msg = request.host_url + "homepage"
        else:
            formResult = rs.LOGIN_CHECK_FARLURE

    return jsonify(formResult.__dict__)
Ejemplo n.º 37
0
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)
Ejemplo n.º 38
0
def login():
    form = LoginForm(request.form)
    formResult = form.validate()
    if formResult.status == rs.SUCCESS.status:
        #session['remember_me'] = form.remember_me.data
        # login and validate the user...
        user = User.get_by_name(form.username)
        if user is not None and user.check_password(form.password):
            login_session(user)
            formResult.msg = request.host_url + "homepage"
        else:
            formResult = rs.LOGIN_CHECK_FARLURE

    return jsonify(formResult.__dict__)
Ejemplo n.º 39
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.º 40
0
def renderHtmlFromDiagnose(diagnose):
    if hasattr(diagnose,'report'):
        report=diagnose.report
        #edit by lichuan , any one can take a look at the html
        # if diagnose and report and report.status==ReportStatus.Commited and report.type==ReportType.Doctor:
        if diagnose and report:
            data={}
            data['techDesc']=report.techDesc
            data['imageDesc']=report.imageDesc
            if hasattr(diagnose,'diagnoseSeriesNumber'):
                data['diagnoseSN'] = diagnose.diagnoseSeriesNumber
            data['diagnoseDesc']=report.diagnoseDesc
            data['seriesNumber']=report.seriesNumber
            data['fileUrl']=report.fileUrl
            createDate=report.createDate
            if createDate:
                createDate=createDate.strftime('%Y-%m-%d')
                data['createDate']=createDate

            postions=dataChangeService.getDiagnosePositonFromDiagnose(diagnose)
            if postions:
                data['postions']=postions
            if hasattr(diagnose,'patient') and diagnose.patient:
                data['gender']=diagnose.patient.gender
                birthDate=diagnose.patient.birthDate
                if birthDate:
                    birthDate=birthDate.strftime('%Y-%m-%d')
                    data['birthDate']=pdf_utils.getAge(birthDate)
                data['name']=diagnose.patient.realname
            if hasattr(diagnose,'doctor'):
                data['doctorName']=diagnose.doctor.username

            if hasattr(diagnose,'adminId'):
                adminUser = User.getById(diagnose.adminId)
                if adminUser.name:
                    data['adminName']= adminUser.name



            html =  render_template('diagnoseResultPdf.html',data=data)
            # fileName=constant.DirConstant.DIAGNOSE_PDF_DIR+'test.pdf'
            # result = open(fileName, 'wb') # Changed from file to filename
            #
            # pdf = pdf_utils.save_pdf(html,result,diagnoseId,fileName)
            # result.close()
            # return render_template("testpdf.html",getAvatar=getAvatar)
            return html
    return None
Ejemplo n.º 41
0
def renderHtmlFromDiagnose(diagnose):
    if hasattr(diagnose, 'report'):
        report = diagnose.report
        #edit by lichuan , any one can take a look at the html
        # if diagnose and report and report.status==ReportStatus.Commited and report.type==ReportType.Doctor:
        if diagnose and report:
            data = {}
            data['techDesc'] = report.techDesc
            data['imageDesc'] = report.imageDesc
            if hasattr(diagnose, 'diagnoseSeriesNumber'):
                data['diagnoseSN'] = diagnose.diagnoseSeriesNumber
            data['diagnoseDesc'] = report.diagnoseDesc
            data['seriesNumber'] = report.seriesNumber
            data['fileUrl'] = report.fileUrl
            createDate = report.createDate
            if createDate:
                createDate = createDate.strftime('%Y-%m-%d')
                data['createDate'] = createDate

            postions = dataChangeService.getDiagnosePositonFromDiagnose(
                diagnose)
            if postions:
                data['postions'] = postions
            if hasattr(diagnose, 'patient') and diagnose.patient:
                data['gender'] = diagnose.patient.gender
                birthDate = diagnose.patient.birthDate
                if birthDate:
                    birthDate = birthDate.strftime('%Y-%m-%d')
                    data['birthDate'] = pdf_utils.getAge(birthDate)
                data['name'] = diagnose.patient.realname
            if hasattr(diagnose, 'doctor'):
                data['doctorName'] = diagnose.doctor.username

            if hasattr(diagnose, 'adminId'):
                adminUser = User.getById(diagnose.adminId)
                if adminUser.name:
                    data['adminName'] = adminUser.name

            html = render_template('diagnoseResultPdf.html', data=data)
            # fileName=constant.DirConstant.DIAGNOSE_PDF_DIR+'test.pdf'
            # result = open(fileName, 'wb') # Changed from file to filename
            #
            # pdf = pdf_utils.save_pdf(html,result,diagnoseId,fileName)
            # result.close()
            # return render_template("testpdf.html",getAvatar=getAvatar)
            return html
    return None
Ejemplo n.º 42
0
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)
Ejemplo n.º 43
0
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)
Ejemplo n.º 44
0
    def validate(self):
        try:

            if self.nickname is None:
                failure = ResultStatus(FAILURE.status, "昵称为空")
                return failure
            if self.password is None:
                failure = ResultStatus(FAILURE.status, "密码为空")
                return failure
            if self.name is None:
                failure = ResultStatus(FAILURE.status, "用户名为空")
                return failure
            else:
                user = User.get_by_name(self.name)
                if user is not None:
                    failure = ResultStatus(FAILURE.status, "该用户已存在")
                    return failure
        except Exception, e:
            return FAILURE
Ejemplo n.º 45
0
def setConsultsResult(consutsDict):
    if consutsDict is None:
        return
    for consutDict in consutsDict:
        type=consutDict.get('type')
        if type==1:
            if consutDict.get('doctorId'):
                    doctor=Doctor.getById(consutDict.get('doctorId'))
                    if doctor:
                        consutDict['doctorName']=doctor.username
                        consutDict['doctorTitle']=doctor.title
                        if hasattr(doctor,'user') and doctor.user and doctor.user.imagePath:
                            consutDict['avartarUrl']= doctor.user.imagePath
        if type==0:
            if consutDict.get('userId'):
                user=User.getById(consutDict.get('userId'))
                if user:
                    consutDict['userName']=user.name
                    consutDict['avartarUrl']=user.imagePath
Ejemplo n.º 46
0
def register_doctor():
    form = RegisterFormDoctor(request.form)
    form_result = form.validate()
    if form_result.status == rs.SUCCESS.status:
        new_user = User(form.real_name, form.username, form.password)
        new_user.email = form.email
        new_user.phone = form.cellphone
        new_user.type = UserStatus.doctor
        new_user.status = ModelStatus.Draft
        User.save(new_user)
        new_doctor = Doctor(new_user.id)
        new_doctor.username = form.real_name
        new_doctor.identityPhone = form.identity_phone
        Doctor.save(new_doctor)

        new_doctor2skill = Doctor2Skill(new_doctor.id, 1)
        Doctor2Skill.save(new_doctor2skill)

        new_userrole = UserRole(new_user.id, RoleId.Doctor)
        UserRole.save(new_userrole)

    return jsonify(form_result.__dict__)
Ejemplo n.º 47
0
def endterHospitalUserHome():
    userId = session['userId']
    user = User.getById(userId)

    if user is None:
        return redirect(ERROR_URL)

    resultDate = {}
    # messageCount=Message.getMessageCountByReceiver(userId)
    # resultDate['messageCount']=messageCount
    #
    # diagnoseCount=Diagnose.getNewDiagnoseCountByUserId(userId)
    # resultDate['diagnoseCount']=diagnoseCount
    #
    # resultDate['user']=user
    #pager=Pagger(1,20)
    # diagnoses=Diagnose.getDiagnosesByDoctorId(db_session,doctor.id,pager)
    # diagnoseDict=dataChangeService.userCenterDiagnoses(diagnoses)
    # resultDate['diagnoses']=diagnoseDict
    return render_template("hospitalUser.html", data=resultDate)
Ejemplo n.º 48
0
def endterHospitalUserHome():
    userId=session['userId']
    user=User.getById(userId)

    if user is None:
        return redirect(ERROR_URL)

    resultDate={}
    # messageCount=Message.getMessageCountByReceiver(userId)
    # resultDate['messageCount']=messageCount
    #
    # diagnoseCount=Diagnose.getNewDiagnoseCountByUserId(userId)
    # resultDate['diagnoseCount']=diagnoseCount
    #
    # resultDate['user']=user
    #pager=Pagger(1,20)
    # diagnoses=Diagnose.getDiagnosesByDoctorId(db_session,doctor.id,pager)
    # diagnoseDict=dataChangeService.userCenterDiagnoses(diagnoses)
    # resultDate['diagnoses']=diagnoseDict
    return render_template("hospitalUser.html",data=resultDate)
Ejemplo n.º 49
0
def endterPatientHome():
    if session.has_key('userId'):
        userId = session['userId']
        user = User.getById(userId)

        if user is None:
            return redirect(ERROR_URL)

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

        diagnoseCount = Diagnose.getNewDiagnoseCountByUserId(userId)
        resultDate['diagnoseCount'] = diagnoseCount

        resultDate['user'] = user
        #pager=Pagger(1,20)
        # diagnoses=Diagnose.getDiagnosesByDoctorId(db_session,doctor.id,pager)
        # diagnoseDict=dataChangeService.userCenterDiagnoses(diagnoses)
        # resultDate['diagnoses']=diagnoseDict
        return render_template("patientHome.html", data=resultDate)
    else:
        return redirect(LOGIN_URL)
Ejemplo n.º 50
0
def load_user(id):
    return User.getById(int(id))
Ejemplo n.º 51
0
def login_session(user):
    login_user(user)
    session['logged_in'] = True
    session['username'] = User.get_name(user)
    session['userId'] = User.get_id(user)
    flash('注册成功,跳转至首页')
Ejemplo n.º 52
0
    def test_addKefu(self):
        user=User('kefu','77777777777','123456')
        user.sex=0
        user.status=0
        user.email='*****@*****.**'
        user.address='四川省 通江县'
        user.phone = '77777777777'
        user.type = UserStatus.doctor
        user.name = "客服人员"
        User.save(user)

        new_userrole2 = UserRole(user.id, RoleId.Kefu)
        UserRole.save(new_userrole2)
Ejemplo n.º 53
0
    def test_addFenzhen(self):
        user=User('fenzhen','13426026573','123456')
        user.sex=0
        user.status=0
        user.email='*****@*****.**'
        user.address='四川省 通江县'
        user.phone = '13426026573'
        user.type = UserStatus.doctor
        user.name = "分诊医生"
        User.save(user)

        new_userrole2 = UserRole(user.id, RoleId.Admin)
        UserRole.save(new_userrole2)
Ejemplo n.º 54
0
    def test_addDoctor(self):
        new_user_1 = User('印弘',"1111111111", "123456")
        new_user_1.email = "*****@*****.**"
        new_user_1.phone = "111111111111"
        new_user_1.type = UserStatus.doctor
        new_user_1.imagePath = config.AVATAR_PREFIX+'avatar/yinhong-xj.png'
        User.save(new_user_1)

        new_doctor_1 = Doctor(new_user_1.id)
        new_doctor_1.identityPhone = "029-12345567"
        new_doctor_1.username = "******"
        new_doctor_1.diagnoseCount = 10
        new_doctor_1.feedbackCount = 5
        new_doctor_1.goodFeedbackCount = 5
        new_doctor_1.hospitalId = 1
        new_doctor_1.departmentId = 1
        new_doctor_1.title = "主任医师"
        new_doctor_1.status = 0


        Doctor.save(new_doctor_1)
        new_doctor2skill_1_1 = Doctor2Skill(new_doctor_1.id,1)
        Doctor2Skill.save(new_doctor2skill_1_1)
        new_userrole = UserRole(new_user_1.id, RoleId.Doctor)
        UserRole.save(new_userrole)




        new_user_2 = User('宦怡',"22222222222", "123456")
        new_user_2.email = "*****@*****.**"
        new_user_2.phone = "22222222222"
        new_user_2.imagePath = config.AVATAR_PREFIX+'avatar/huanyi-xj.jpg'

        new_user_2.type = UserStatus.doctor
        User.save(new_user_2)

        new_doctor_2 = Doctor(new_user_2.id)
        new_doctor_2.identityPhone = "029-12345567"
        new_doctor_2.username = "******"
        new_doctor_2.diagnoseCount = 8
        new_doctor_2.feedbackCount = 3

        new_doctor_2.hospitalId = 1
        new_doctor_2.departmentId = 1
        new_doctor_2.title = "主任医师"
        new_doctor_2.status = 0
        new_doctor_2.goodFeedbackCount = 2

        Doctor.save(new_doctor_2)
        new_doctor2skill_1_2 = Doctor2Skill(new_doctor_2.id,2)
        Doctor2Skill.save(new_doctor2skill_1_2)
        new_userrole2 = UserRole(new_user_2.id, RoleId.Doctor)
        UserRole.save(new_userrole2)

        new_user_3 = User('张劲松',"33333333333", "123456")
        new_user_3.email = "*****@*****.**"
        new_user_3.phone = "33333333333"
        new_user_3.type = UserStatus.doctor
        new_user_3.imagePath = config.AVATAR_PREFIX+'avatar/zhangjinsong-xj.jpg'

        User.save(new_user_3)

        new_doctor_3 = Doctor(new_user_3.id)
        new_doctor_3.identityPhone = "029-12345567"
        new_doctor_3.username = "******"
        new_doctor_3.diagnoseCount = 9
        new_doctor_3.feedbackCount = 4

        new_doctor_3.hospitalId = 1
        new_doctor_3.departmentId = 1
        new_doctor_3.title = "副主任医师"
        new_doctor_3.status = 0
        new_doctor_3.goodFeedbackCount = 3

        Doctor.save(new_doctor_3)
        new_doctor2skill_1_3 = Doctor2Skill(new_doctor_3.id,3)
        Doctor2Skill.save(new_doctor2skill_1_3)
        new_userrole3 = UserRole(new_user_3.id, RoleId.Doctor)
        UserRole.save(new_userrole3)

        #doctor 4
        new_user_4 = User('孙立军',"88888888888", "123456")
        new_user_4.email = "*****@*****.**"
        new_user_4.phone = "88888888888"
        new_user_4.type = UserStatus.doctor
        new_user_4.imagePath = config.AVATAR_PREFIX+'avatar/sunlijun-xj.jpg'

        User.save(new_user_4)

        new_doctor_4 = Doctor(new_user_4.id)
        new_doctor_4.identityPhone = "029-12345567"
        new_doctor_4.username = "******"
        new_doctor_4.diagnoseCount = 9
        new_doctor_4.feedbackCount = 4

        new_doctor_4.hospitalId = 1
        new_doctor_4.departmentId = 1
        new_doctor_4.title = "主任医师"
        new_doctor_4.status = 0
        new_doctor_4.goodFeedbackCount = 3

        Doctor.save(new_doctor_4)
        new_doctor2skill_1_4 = Doctor2Skill(new_doctor_4.id,3)
        Doctor2Skill.save(new_doctor2skill_1_4)
        new_userrole4 = UserRole(new_user_4.id, RoleId.Doctor)
        UserRole.save(new_userrole4)



        #doctor 5
        new_user_5 = User('魏光全',"99999999999", "123456")
        new_user_5.email = "*****@*****.**"
        new_user_5.phone = "88888888888"
        new_user_5.type = UserStatus.doctor
        new_user_5.imagePath = config.AVATAR_PREFIX+'avatar/weiguangquan-xj.jpg'

        User.save(new_user_5)

        new_doctor_5 = Doctor(new_user_5.id)
        new_doctor_5.identityPhone = "029-12345567"
        new_doctor_5.username = "******"
        new_doctor_5.diagnoseCount = 9
        new_doctor_5.feedbackCount = 4

        new_doctor_5.hospitalId = 1
        new_doctor_5.departmentId = 1
        new_doctor_5.title = "副主任医师"
        new_doctor_5.status = 0
        new_doctor_5.goodFeedbackCount = 3

        Doctor.save(new_doctor_5)
        new_doctor2skill_1_5 = Doctor2Skill(new_doctor_5.id,3)
        Doctor2Skill.save(new_doctor2skill_1_5)
        new_userrole5 = UserRole(new_user_5.id, RoleId.Doctor)
        UserRole.save(new_userrole5)


        #doctor 6
        new_user_6 = User('郑敏文',"00000000000", "123456")
        new_user_6.email = "*****@*****.**"
        new_user_6.phone = "00000000000"
        new_user_6.type = UserStatus.doctor
        new_user_6.imagePath = config.AVATAR_PREFIX+'avatar/zhengminwen-xj.jpg'

        User.save(new_user_6)

        new_doctor_6 = Doctor(new_user_6.id)
        new_doctor_6.identityPhone = "029-12345567"
        new_doctor_6.username = "******"
        new_doctor_6.diagnoseCount = 9
        new_doctor_6.feedbackCount = 4

        new_doctor_6.hospitalId = 1
        new_doctor_6.departmentId = 1
        new_doctor_6.title = "副主任医师"
        new_doctor_6.status = 0
        new_doctor_6.goodFeedbackCount = 3

        Doctor.save(new_doctor_6)
        new_doctor2skill_1_6 = Doctor2Skill(new_doctor_6.id,3)
        Doctor2Skill.save(new_doctor2skill_1_6)
        new_userrole6 = UserRole(new_user_6.id, RoleId.Doctor)
        UserRole.save(new_userrole6)




        dp=DoctorProfile()
        dp.type=DoctorProfileType.Intro
        dp.description='从事影像诊断多年,对普通放射、CT以及血管造影的影像诊断有丰富的经验,能够综合各种诊断手段进行诊断。对磁共振的影像诊断有丰富的经验,尤其侧重神经系统疑难疾病的诊断,采用磁共振波谱等多项先进技术,对神经系统肿瘤,肌萎缩性侧索硬化、癫痫以及先天性发育异常、变性疾病等神经系统疾病进行诊断及预后评估,有独到的诊断特色。与神经外科合作,开展肿瘤术前功能定位定向,确保了手术的安全性以及有效性;与身心科合作,开展了精神疾病诊断及临床研究工作。'
        dp.userId= new_user_1.id
        DoctorProfile.save(dp)

        dp=DoctorProfile()
        dp.type=DoctorProfileType.Resume
        dp.userId= new_user_1.id
        dp.description='印弘, 西京医院放射科主任,教授,主任医师,博士,硕士研究生导师。 毕业于第四军医大学。先后在新加坡国立神经科学研究所及美国加州大学旧金山分校作为访问学者工作。承担或参加北京市自然科学基金,新加坡国家医学基金,国家十一五科技支撑项目等多项科研基金,任职期间发表学术论文20余篇,其中SCI 5篇。'
        DoctorProfile.save(dp)


        dp=DoctorProfile()
        dp.type=DoctorProfileType.Award
        dp.userId= new_user_1.id
        dp.description='担任国家自然科学基金委主办杂志《自然》杂志以及《实用放射学杂志》特约审稿专家'
        DoctorProfile.save(dp)


        # dp=DoctorProfile()
        # dp.type=DoctorProfileType.Other
        # dp.userId= new_user_1.id
        # dp.description='陕西省影像协会会长'
        # DoctorProfile.save(dp)


        dp2=DoctorProfile()
        dp2.type=DoctorProfileType.Intro
        dp2.description='主要从事CT、MRI诊断及相关基础研究。90年代初在国内率先开展CT 影像后处理研究,在3D CE MRA、CTA成像,耳部HRCT、HRMRI影像及影像解剖基础研究,泌尿系疾患CT、MRI成像及前列腺癌的分子影像学方面做了较多的工作,并获得省及国家自然科学基金资助。'
        dp2.userId= new_user_2.id
        DoctorProfile.save(dp2)

        dp2=DoctorProfile()
        dp2.type=DoctorProfileType.Resume
        dp2.userId= new_user_2.id
        dp2.description='宦怡,主任医师,教授,博士生导师。先后共发表论文70余篇,主编副主编专著2部,参编的专著6部。承担国家自然科学基金、陕西省自然科学基金课题各1项,参与国家自然科学基金2项,国家“九五”科技公关攻关课题1项,军队青年基金课题1项。'
        DoctorProfile.save(dp2)


        dp2=DoctorProfile()
        dp2.type=DoctorProfileType.Award
        dp2.userId= new_user_2.id
        dp2.description='军队医疗成果二等奖1项,三等奖5项'
        DoctorProfile.save(dp2)


        dp3=DoctorProfile()
        dp3.type=DoctorProfileType.Intro
        dp3.description='长期坚持临床一线工作,历经放射科X线诊断组、CT组和磁共振组等部门工作,熟练掌握CT、MRI影像诊断。每年承担医疗系和口腔系5年制本科学员、8年制学员等的大课教学工作,发表教学论文4篇;指导进修生多人;参与指导硕士研究生及博士生多名。多次参加全国及省放射学会的专题讲座。'
        dp3.userId= new_user_3.id
        DoctorProfile.save(dp3)

        dp3=DoctorProfile()
        dp3.type=DoctorProfileType.Resume
        dp3.userId= new_user_3.id
        dp3.description='张劲松,男,副主任医师、副教授。1994年本科毕业于第四军医大学临床医学系(6年制本科),1997年获第四军医大学影像医学硕士学位,2005年获第四军医大学影像医学博士学位。2008年赴美国南加州大学放射科进修学习半年。'
        DoctorProfile.save(dp3)


        dp3=DoctorProfile()
        dp3.type=DoctorProfileType.Award
        dp3.userId= new_user_3.id
        dp3.description='获得省科技进步一等奖1项,全军医疗成果二等奖2项,全军医疗成果三等奖6项'
        DoctorProfile.save(dp3)


        #doctor 4
        dp4=DoctorProfile()
        dp4.type=DoctorProfileType.Intro
        dp4.description='以第一作者或通讯作者发表论文近100余篇,其中2篇被SCI收录。主要研究方向为①微创与介入放射学以及心血管疾病影像诊断;②心肌缺血与梗死后促血管新生分子治疗学。'
        dp4.userId= new_user_4.id
        DoctorProfile.save(dp4)

        dp4=DoctorProfile()
        dp4.type=DoctorProfileType.Resume
        dp4.userId= new_user_4.id
        dp4.description='孙立军,男,1960年6月03日出生。博士,主任医师,教授。1983年毕业于第四军医大学空医系本科,1986~1989年攻读影像学硕士学位, 1992~1995年攻读影像学博士学位'
        DoctorProfile.save(dp4)


        dp4=DoctorProfile()
        dp4.type=DoctorProfileType.Award
        dp4.userId= new_user_4.id
        dp4.description='2006年度陕西省科技进步二等奖(第二名),2008年度军队医疗成果二等奖(第四名),2011年陕西省科技进步二等奖(第三名)'
        DoctorProfile.save(dp4)

        #doctor 5
        dp5=DoctorProfile()
        dp5.type=DoctorProfileType.Intro
        dp5.description='主要研究方向:分子影像学。以第一作者发表文章48篇,其中7篇被SCI收录,最高影响因子8.3.参编专著3部。主持国家自然科学基金2项,参与(第二作者) 国家自然科学基金7项,其中包括NSFC重大项目:肿瘤分子影像基础研究.参与“973”子课题1项。参编专著3。'
        dp5.userId= new_user_5.id
        DoctorProfile.save(dp5)

        dp5=DoctorProfile()
        dp5.type=DoctorProfileType.Resume
        dp5.userId= new_user_5.id
        dp5.description='魏光全,男,副教授,副主任医师,硕士研究生导师'
        DoctorProfile.save(dp5)


        dp5=DoctorProfile()
        dp5.type=DoctorProfileType.Award
        dp5.userId= new_user_5.id
        dp5.description='中国人民解放军总后勤部特殊岗位津贴获得者(2005);第四军医大学学术新人获得者(2005)'
        DoctorProfile.save(dp5)

        #doctor 6
        dp6=DoctorProfile()
        dp6.type=DoctorProfileType.Intro
        dp6.description='主要研究方向为心血管疾病影像诊断,在西北地区最早开展对冠心病等各种心血管疾病的CT诊断,积累了丰富的临床经验。发表论文60余篇,SCI收录6篇。参编专著3部。'
        dp6.userId= new_user_6.id
        DoctorProfile.save(dp6)

        dp6=DoctorProfile()
        dp6.type=DoctorProfileType.Resume
        dp6.userId= new_user_6.id
        dp6.description='郑敏文,女,第四军医大学西京医院放射科副主任。博士学历,副教授,副主任医师,硕士研究生导师'
        DoctorProfile.save(dp6)


        dp6=DoctorProfile()
        dp6.type=DoctorProfileType.Award
        dp6.userId= new_user_6.id
        dp6.description='获军队医疗成果二等奖2项,省级科技进步二等奖2项'
        DoctorProfile.save(dp6)