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)
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')
def getPatientFile(patientId): userId = None if session.has_key('userId'): userId = session['userId'] if userId is None: return redirect(LOGIN_URL) if patientId is None or patientId < 0: return jsonify(FAILURE) patient = Patient.get_patient_by_id(patientId) if patient is None or patient.userID != string.atoi(userId): return jsonify(FAILURE) pathologs = Pathology.getByPatientId(patientId) files = [] if pathologs and len(pathologs) > 0: for patholog in pathologs: files.extend(File.getFilebypathologyId(patholog.id), constant.FileType.FileAboutDiagnose) fileResults = None if len(files) > 0: fileResults = dataChangeService.getFilesResult(files) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, fileResults) return jsonify(resultStatus.__dict__)
def patient_profile(): patientId = request.args['patientId'] patient = Patient.get_patient_by_id(patientId) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, patient.__dict__) if patient is None: return jsonify(resultStatus.__dict__) resultStatus.data = dataChangeService.get_patient(patient) return jsonify(resultStatus.__dict__)
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)
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)
def patient_profile(): if 'patientId' in request.args.keys(): patientId = request.args['patientId'] patient = Patient.get_patient_by_id(patientId) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, patient.__dict__) if patient is None: return jsonify(resultStatus.__dict__) resultStatus.data = dataChangeService.get_patient(patient) return jsonify(resultStatus.__dict__) return jsonify(SUCCESS.__dict__)
def 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)
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)
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)
def getPatientFile(patientId): userId=None if session.has_key('userId'): userId=session['userId'] if userId is None: redirect(LOGIN_URL) if patientId is None or patientId<0 : return jsonify(FAILURE) patient=Patient.get_patient_by_id(patientId) if patient is None or patient.userID!=string.atoi(userId): return jsonify(FAILURE) pathologs=Pathology.getByPatientId(patientId) files=[] if pathologs and len(pathologs)>0: for patholog in pathologs: files.extend(File.getFilebypathologyId(patholog.id),constant.FileType.FileAboutDiagnose) fileResults=None if len(files)>0: fileResults=dataChangeService.getFilesResult(files) resultStatus = rs.ResultStatus(rs.SUCCESS.status, rs.SUCCESS.msg, fileResults) return jsonify(resultStatus.__dict__)
def 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)
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')
def applyDiagnoseForm(formid): if (int(formid) == 1) : form = DiagnoseForm3(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if(form.diagnoseId): new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus(DiagnoseStatus.Draft, session['userId']) if(new_diagnose is None): new_diagnose = Diagnose() new_diagnose.status = DiagnoseStatus.Draft new_diagnose.doctorId = form.doctorId new_diagnose.uploadUserId = session['userId'] Diagnose.save(new_diagnose) form_result.data = {'formId': 2, 'diagnoseId': new_diagnose.id} return jsonify(form_result.__dict__) elif (int(formid) == 2) : form = DiagnoseForm1(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if form.diagnoseId is not None: new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus(DiagnoseStatus.Draft, int(session['userId'])) if(new_diagnose is not None): # 去拿没有draft的用户 if(form.exist): new_patient = Patient.get_patient_by_id(form.patientid) else: new_patient = Patient.get_patient_draft(new_diagnose.patientId) if new_patient is None: new_patient = Patient() new_patient.type = PatientStatus.diagnose new_patient.userID = session['userId'] new_patient.realname = form.patientname new_patient.gender = form.patientsex new_patient.birthDate = datetime.strptime(form.birthdate, "%Y-%m-%d") new_patient.identityCode = form.identitynumber new_patient.locationId = form.locationId new_patient.identityPhone = form.phonenumber new_patient.status = ModelStatus.Draft # new_patient.locationId = form.location Patient.save(new_patient) new_diagnose.patientId = new_patient.id Diagnose.save(new_diagnose) # Hospital User 注册用户 if(form.isHospitalUser): new_user = User(form.phonenumber, random.sample('zyxwvutsrqponmlkjihgfedcba1234567890',6), False) new_user.type = UserStatus.patent new_user.status = ModelStatus.Draft User.save(new_user) new_patient.userID = new_user.id Patient.save(new_patient) new_userrole = UserRole(new_user.id, RoleId.Patient) UserRole.save(new_userrole) form_result.data = {'formId': 3, } else: form_result = ResultStatus(FAILURE.status, "找不到第一步草稿") return jsonify(form_result.__dict__) elif (int(formid) == 3): form = DiagnoseForm2(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if form.diagnoseId is not None: new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus(DiagnoseStatus.Draft, int(session['userId'])) if new_diagnose is not None: if form.exist: new_pathology = Pathology.getById(form.pathologyId) elif new_diagnose.pathologyId: new_pathology = Pathology.getById(new_diagnose.pathologyId) else: new_pathology = Pathology.getByPatientStatus(session['userId'], ModelStatus.Draft) if new_pathology is None: new_pathology = Pathology(new_diagnose.patientId) new_pathology.diagnoseMethod = form.dicomtype new_pathology.status = ModelStatus.Draft new_pathology.save(new_pathology) PathologyPostion.deleteByPathologyId(new_pathology.id) for position in form.patientlocation: new_position_id = PathologyPostion(new_pathology.id, position) PathologyPostion.save(new_position_id) File.cleanDirtyFile(form.fileurl, new_pathology.id, FileType.Dicom) for fileurl in form.fileurl: new_file = File.getFilebyId(int(fileurl)) new_file.pathologyId = new_pathology.id File.save(new_file) new_diagnose.pathologyId = new_pathology.id Diagnose.save(new_diagnose) form_result.data = {'formId': 4} else: form_result = ResultStatus(FAILURE.status, "找不到上步的草稿") return jsonify(form_result.__dict__) elif (int(formid) == 4): form = DiagnoseForm4(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if form.diagnoseId is not None: new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus(DiagnoseStatus.Draft, int(session['userId'])) if(new_diagnose is not None): new_pathology = Pathology.getById(new_diagnose.pathologyId) if(new_pathology is not None): new_pathology.caseHistory = form.illnessHistory new_pathology.hospitalId = form.hospitalId new_pathology.status = ModelStatus.Normal Pathology.save(new_pathology) File.cleanDirtyFile(form.fileurl, new_pathology.id, FileType.FileAboutDiagnose) for fileurl in form.fileurl: new_file = File.getFilebyId(int(fileurl)) new_file.pathologyId = new_pathology.id File.save(new_file) new_patient = Patient.get_patient_by_id(new_diagnose.patientId) new_patient.status = PatientStatus.diagnose new_diagnose.status = DiagnoseStatus.NeedPay Diagnose.save(new_diagnose) new_diagnoselog = DiagnoseLog(new_diagnose.uploadUserId, new_diagnose.id, DiagnoseLogAction.NewDiagnoseAction) DiagnoseLog.save(db_session, new_diagnoselog) else: form_result = ResultStatus(FAILURE.status, "找不到上步的草稿1") else: form_result = ResultStatus(FAILURE.status, "找不到上步的草稿2") form_result.data = {'isFinal': True} return jsonify(form_result.__dict__) else: return jsonify(ResultStatus(FAILURE.status, "错误的表单号").__dict__)
def applyDiagnoseForm(formid): if (int(formid) == 1): form = DiagnoseForm3(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if (form.diagnoseId): new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus( DiagnoseStatus.Draft, session['userId']) if (new_diagnose is None): new_diagnose = Diagnose() new_diagnose.status = DiagnoseStatus.Draft new_diagnose.doctorId = form.doctorId new_diagnose.uploadUserId = session['userId'] Diagnose.save(new_diagnose) form_result.data = {'formId': 2, 'diagnoseId': new_diagnose.id} return jsonify(form_result.__dict__) elif (int(formid) == 2): form = DiagnoseForm1(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if form.diagnoseId is not None: new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus( DiagnoseStatus.Draft, int(session['userId'])) if (new_diagnose is not None): needcreateNewUserByHospitalUser = True # 去拿没有draft的用户 if (form.exist): #select exist patient , from list, when modify exist diagnose new_patient = Patient.get_patient_by_id(form.patientid) else: #update draft patient when modify exist diagnose new_patient = Patient.getPatientDraftByPatienId( new_diagnose.patientId) if new_patient: new_patient.realname = form.patientname new_patient.gender = form.patientsex new_patient.birthDate = datetime.strptime( form.birthdate, "%Y-%m-%d") new_patient.identityCode = form.identitynumber new_patient.locationId = form.locationId new_patient.identityPhone = form.phonenumber Patient.save(new_patient) needcreateNewUserByHospitalUser = False #create a new patient if new_patient is None: new_patient = Patient() new_patient.type = PatientStatus.diagnose new_patient.userID = session['userId'] new_patient.realname = form.patientname new_patient.gender = form.patientsex new_patient.birthDate = datetime.strptime( form.birthdate, "%Y-%m-%d") new_patient.identityCode = form.identitynumber new_patient.locationId = form.locationId new_patient.identityPhone = form.phonenumber new_patient.status = ModelStatus.Draft # new_patient.locationId = form.location Patient.save(new_patient) new_diagnose.patientId = new_patient.id Diagnose.save(new_diagnose) # Hospital User 注册用户 if form.isHospitalUser and ( not form.exist) and needcreateNewUserByHospitalUser: userQuery = User.getByPhone(form.phonenumber) if userQuery.count() <= 0: passwd = random.sample( 'zyxwvutsrqponmlkjihgfedcba1234567890', 6) passwd = ''.join(passwd) new_user = User(form.patientname, form.phonenumber, passwd, True) new_user.type = UserStatus.patent new_user.status = ModelStatus.Normal User.save(new_user) new_patient.userID = new_user.id Patient.save(new_patient) new_userrole = UserRole(new_user.id, RoleId.Patient) UserRole.save(new_userrole) sendRegisterMobileMessage(session.get('userId'), new_diagnose, new_user.phone, passwd) else: new_patient.userID = userQuery.first().id Patient.save(new_patient) form_result.data = { 'formId': 3, } else: form_result = ResultStatus(FAILURE.status, "找不到第一步草稿") return jsonify(form_result.__dict__) elif (int(formid) == 3): form = DiagnoseForm2(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if form.diagnoseId is not None: new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus( DiagnoseStatus.Draft, int(session['userId'])) if new_diagnose is not None: #直接选择的病例,不是新建或者更改 isExistingPathology = False if form.exist: new_pathology = Pathology.getById(form.pathologyId) isExistingPathology = True elif new_diagnose.pathologyId: new_pathology = Pathology.getById(new_diagnose.pathologyId) else: new_pathology = Pathology.getByPatientStatus( session['userId'], ModelStatus.Draft) if new_pathology is None: new_pathology = Pathology(new_diagnose.patientId) if not isExistingPathology: new_pathology.diagnoseMethod = form.dicomtype new_pathology.status = ModelStatus.Draft new_pathology.save(new_pathology) PathologyPostion.deleteByPathologyId(new_pathology.id) for position in form.patientlocation: new_position_id = PathologyPostion( new_pathology.id, position) PathologyPostion.save(new_position_id) File.cleanDirtyFile(form.fileurl, new_pathology.id, FileType.Dicom) if form.fileurl and len(form.fileurl) > 0: for fileurl in form.fileurl: new_file = File.getFilebyId(int(fileurl)) new_file.pathologyId = new_pathology.id File.save(new_file) new_diagnose.pathologyId = new_pathology.id Diagnose.save(new_diagnose) form_result.data = {'formId': 4} else: form_result = ResultStatus(FAILURE.status, "找不到上步的草稿") return jsonify(form_result.__dict__) elif (int(formid) == 4): form = DiagnoseForm4(request.form) form_result = form.validate() if form_result.status == rs.SUCCESS.status: if form.diagnoseId is not None: new_diagnose = Diagnose.getDiagnoseById(form.diagnoseId) else: new_diagnose = Diagnose.getNewDiagnoseByStatus( DiagnoseStatus.Draft, int(session['userId'])) if (new_diagnose is not None): new_pathology = Pathology.getById(new_diagnose.pathologyId) if (new_pathology is not None): new_pathology.caseHistory = form.illnessHistory new_pathology.hospitalId = form.hospitalId new_pathology.status = ModelStatus.Normal Pathology.save(new_pathology) File.cleanDirtyFile(form.fileurl, new_pathology.id, FileType.FileAboutDiagnose) if form.fileurl and len(form.fileurl) > 0: for fileurl in form.fileurl: new_file = File.getFilebyId(int(fileurl)) new_file.pathologyId = new_pathology.id File.save(new_file) new_patient = Patient.get_patient_by_id( new_diagnose.patientId) new_patient.status = PatientStatus.diagnose #add for need update scenario if new_diagnose.status == constant.DiagnoseStatus.NeedUpdate: new_diagnoselog = DiagnoseLog( new_diagnose.uploadUserId, new_diagnose.id, DiagnoseLogAction.DiagnoseNeedUpateRecommitAction) DiagnoseLog.save(db_session, new_diagnoselog) new_diagnose.status = DiagnoseStatus.Triaging Diagnose.save(new_diagnose) #hospitalUser type=1 else: if form.type == '1' and not checkFilesExisting( new_diagnose): new_diagnoselog = DiagnoseLog( new_diagnose.uploadUserId, new_diagnose.id, DiagnoseLogAction.NewDiagnoseAction) DiagnoseLog.save(db_session, new_diagnoselog) #update by lichuan , save diagnose and change to needPay new_diagnose.status = DiagnoseStatus.HospitalUserDiagnoseNeedCommit Diagnose.save(new_diagnose) #end update else: #产生alipay,发送短消息 userId = session.get('userId') new_diagnose.ossUploaded = constant.DiagnoseUploaed.Uploaded new_diagnose.status = DiagnoseStatus.NeedPay Diagnose.save(new_diagnose) sendAllMessage(userId, new_diagnose) else: form_result = ResultStatus(FAILURE.status, "找不到上步的草稿1") else: form_result = ResultStatus(FAILURE.status, "找不到上步的草稿2") form_result.data = {'isFinal': True} return jsonify(form_result.__dict__) else: return jsonify(ResultStatus(FAILURE.status, "错误的表单号").__dict__)