Exemplo n.º 1
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')
Exemplo n.º 2
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')
Exemplo n.º 3
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')
Exemplo n.º 4
0
def homepage():

    resultData = {}
    pager = Pagger(1, 6)
    doctors = Doctor.get_doctor_list(0, 0, "", pager)
    doctorsList = dataChangeService.get_doctors_dict(doctors)
    resultData['doctorlist'] = doctorsList
    if len(doctorsList['doctor']) > 0:
        resultData['doctor'] = doctorsList['doctor'][0]
    diagnoseComments = Comment.getRecentComments()
    if diagnoseComments and len(diagnoseComments) > 0:
        diagnoseCommentsDict = object2dict.objects2dicts_2(diagnoseComments)
        dataChangeService.setDiagnoseCommentsDetailInfo(diagnoseCommentsDict)
        resultData['comments'] = diagnoseCommentsDict
    else:
        resultData['comments'] = None

    resultData['ishomepage'] = True
    if session.has_key('userId'):
        userId = session['userId']
        messageCount = Message.getMessageCountByReceiver(userId)
        resultData['messageCount'] = messageCount
        if UserRole.checkRole(db_session, userId, constant.RoleId.Patient):
            resultData['isPatient'] = True

    return render_template("home.html", data=resultData)
Exemplo n.º 5
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)
Exemplo n.º 6
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')
Exemplo n.º 7
0
        def adminPage_wrapper(*args, **kwargs):
            userId = session.get('userId')

            if userId is None:
                return redirect(NO_LOGIN_URL)

            # if isinstance(userId,basestring):
            #     userId=string.atoi(userId)

            elif self.role and UserRole.checkRole(db_session,userId,self.role):
                return method(*args, **kwargs)
            #there have some bug needs to be fixed
            # elif self.role !=None and  userinfo and int(userinfo['cross_share_grade']) == self.role:
            #     return method(_self, *args, **kwargs)
            else:
                return redirect(PERMISSION_DENY_URL)
Exemplo n.º 8
0
        def admin_wrapper(*args, **kwargs):
            userId = session.get('userId')

            if userId is None:
                return json.dumps(result_status.NO_LOGIN.__dict__,ensure_ascii=False)

            # if isinstance(userId,basestring):
            #     userId=string.atoi(userId)

            elif self.role and UserRole.checkRole(db_session,userId,self.role):
                return method(*args, **kwargs)
            #there have some bug needs to be fixed
            # elif self.role !=None and  userinfo and int(userinfo['cross_share_grade']) == self.role:
            #     return method(_self, *args, **kwargs)
            else:
                return json.dumps(result_status.PERMISSION_DENY.__dict__,ensure_ascii=False)
Exemplo n.º 9
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)

            #add report and diagnose to relation table
            reportDiagnoseRelation = ReportDiagnoseRelation(
                report.id, diagnose.id)
            ReportDiagnoseRelation.save(reportDiagnoseRelation)

        #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
            #copy a report and add to relation table
            newReport = Report(form.techDesc, form.imageDesc,
                               form.diagnoseDesc, form.fileUrl,
                               ReportType.Doctor, constant.ReportStatus.Draft)
            Report.save(newReport)

            reportDiagnoseRelation = ReportDiagnoseRelation(
                newReport.id, diagnose.id)
            ReportDiagnoseRelation.save(reportDiagnoseRelation)

            diagnose.reportId = newReport.id
            Diagnose.save(diagnose)
            #end copy

            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)