コード例 #1
0
ファイル: diagnose.py プロジェクト: LichuanLu/blueberry
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)
コード例 #2
0
ファイル: diagnose.py プロジェクト: LichuanLu/redberry
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)
コード例 #3
0
ファイル: diagnose.py プロジェクト: LichuanLu/blueberry
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)
コード例 #4
0
ファイル: diagnose.py プロジェクト: LichuanLu/redberry
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)
コード例 #5
0
ファイル: diagnose.py プロジェクト: LichuanLu/redberry
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)