def RandDSampleReviewOperation (request): try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print(r'首页,username: '******'1': button_name = '' # 按钮名字 sam_code_num = '' # 研发样本审核信息 ReviewTime = '' # 样本审核时间 ReviewRemarks = '' # 样本审核备注 ContractAuditor = '' # 合同审核人 TaskAssignment = '' # 实验任务分派人 if request.method == "POST": # 样本条码号 sam_code_num = request.POST.get('sam_code_num').strip('HT') print '样本条码号: ', sam_code_num # 样本审核时间 ReviewTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print '样本审核时间: ', ReviewTime # 审核备注 ReviewRemarks = request.POST.get('ReviewRemarks') print '审核备注: ', ReviewRemarks ContractAuditor = request.POST.get('ContractAuditor') # 合同审核人 TaskAssignment = request.POST.get('TaskAssignment') # 实验任务分派人 # 判断哪个按钮提交的数据 if request.POST.has_key('pass'): button_name = 'pass' elif request.POST.has_key('Suspend'): button_name = 'Suspend' elif request.POST.has_key('return'): button_name = 'return' elif request.POST.has_key('Not_pass'): button_name = 'Not_pass' elif request.POST.has_key('submitModify'): button_name = 'submitModify' if button_name == 'pass': # 通过审核 models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( sample_review='1', ReviewResult='通过', Next_TaskProgress_Sign='0', ReviewTime=ReviewTime, ReviewRemarks=ReviewRemarks, SampleAuditor=username, ContractAuditor=ContractAuditor, TaskAssignment=TaskAssignment, ) # 添加系统消息 taskTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") Title = '通知:研发样本合同审核任务' # 系统消息标题 Message = username + '分派给你一个研发样本合同审核任务!样本编号为:HT' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=ContractAuditor, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(ContractAuditor, Title, Message) # 发送邮件通知 Title = '通知:研发样本实验分派任务' # 系统消息标题 Message = username + '分派给你一个研发实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskAssignment, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskAssignment, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': print '修改数据' temp_data = models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num) if not temp_data[0].ContractAuditor == ContractAuditor and temp_data[0].contract_review == '0': # 添加系统消息 taskTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") Title = '通知:研发样本合同审核任务' # 系统消息标题 Message = username + '分派给你一个研发样本合同审核任务!样本编号为:HT' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=ContractAuditor, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(ContractAuditor, Title, Message) # 发送邮件通知 if not temp_data[0].TaskAssignment == TaskAssignment and temp_data[0].Next_TaskProgress_Sign == '0': Title = '通知:研发样本实验分派任务' # 系统消息标题 taskTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") Message = username + '分派给你一个研发实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskAssignment, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskAssignment, Title, Message) # 发送邮件通知 # 更新数据 models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( ReviewTime=ReviewTime, ReviewRemarks=ReviewRemarks, ContractAuditor=ContractAuditor, TaskAssignment=TaskAssignment, ) elif button_name == 'Suspend': print '暂停任务' temp_data = models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num) if not temp_data[0].Next_TaskProgress_Sign == '1': # 暂停任务 models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( sample_review='2', ReviewResult='暂停', SampleAuditor=username, ReviewTime=ReviewTime, ReviewRemarks=ReviewRemarks, ContractAuditor=ContractAuditor, TaskAssignment=TaskAssignment, ) elif button_name == 'return': print '退回修改' temp_data = models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num) if not temp_data[0].Next_TaskProgress_Sign == '1': # 暂停任务 models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( sample_review='4', SampleAuditor=username, ReviewTime=ReviewTime, ReviewRemarks=ReviewRemarks, ContractAuditor=ContractAuditor, TaskAssignment=TaskAssignment, ) taskTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") Title = '通知:研发样本审核退回' # 系统消息标题 Message = username + '在审核你登记的研发样本信息时给你退回一个样本修改登记信息!样本编号为:' + sam_code_num + '。请尽快完成修改!' # 系统邮件正文 temp_data = models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num) Receiver = temp_data[0].username print 'Receiver:', Receiver models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Receiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, ReadingState='未读', # 信息阅读状态 ) sendEmail(Receiver, Title, Message) # 发送邮件通知 elif button_name == 'Not_pass': print '终止任务' temp_data = models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num) if not temp_data[0].Next_TaskProgress_Sign == '1': # 终止任务 models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( sample_review='3', ReviewResult='终止', SampleAuditor=username, ReviewTime=ReviewTime, ReviewRemarks=ReviewRemarks, ContractAuditor=ContractAuditor, TaskAssignment=TaskAssignment, ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 temp_not_audited = models.RandDSampleInfo.objects.filter(sample_review=0) # 研发样本未审核信息 temp_pass = models.RandDSampleInfo.objects.filter(sample_review=1) # 研发样本已通过审核信息 temp_return = models.RandDSampleInfo.objects.filter(sample_review=4) # 研发审核退回样本信息 temp_Suspend = models.RandDSampleInfo.objects.filter(sample_review=2) # 研发样本暂停任务信息 temp_not_pass = models.RandDSampleInfo.objects.filter(sample_review=3) # 研发样本终止任务信息 return render(request, "modelspage/RandD_Sample_ReviewHomePage.html", {"userinfo": temp, "data": temp_not_audited, "pass": temp_pass, "Suspend": temp_Suspend, "Not_pass": temp_not_pass, "myInfo": temp_myInfo, "return": temp_return, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread}) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 return render(request, "modelspage/PermissionsPrompt.html", {"userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread})
def DataAnalysisResult_Examine_ToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 ExperimentNumber = '' # 实验编号 DataAnalysis_num = '' # 数据分析次数 # 审核信息 Examine_Result = '' # 审核结果 Examine_Time = '' # 审核时间 Examine_Remarks = '' # 审核备注 ReportMakeTask_Man = '' # 报告制作任务接收人 Computer_Seq_num = '' # 上机测序实验次数 button_name = '' if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber print '其他信息: ============================================= ' # 数据分析次数 DataAnalysis_num = request.POST.get('DataAnalysis_num') print '数据分析次数: ', DataAnalysis_num print '审核信息: ============================================= ' # 审核结果 Examine_Result = request.POST.get('Examine_Result') print '审核结果: ', Examine_Result # 审核时间 Examine_Time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print '审核时间: ', Examine_Time # 审核备注 Examine_Remarks = request.POST.get('Examine_Remarks') print '审核备注: ', Examine_Remarks ReportMakeTask_Man = request.POST.get( 'ReportMakeTask_Man') # 报告制作任务接收人 Computer_Seq_num = request.POST.get('Computer_Seq_num') # 上机测序实验次数 # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.BioinfoDataAnalysisResultReview == '1': if Examine_Result == '通过': if button_name == 'Determine': # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( Examine_Result=Examine_Result, Examine_Time=Examine_Time, Examine_Remarks=Examine_Remarks, BioinfoResult_Sign='1', ReportMakeTask_Man=ReportMakeTask_Man, ) # 添加系统消息 Title = '通知:生信报告制作任务' # 系统消息标题 Message = username + '分派给你一个生信报告制作任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=ReportMakeTask_Man, # 接收者 # 信息内容 Time=Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(ReportMakeTask_Man, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': temp_oldData = models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) if not temp_oldData[0].Examine_Result == Examine_Result or not \ temp_oldData[0].ReportMakeTask_Man == ReportMakeTask_Man and \ temp_oldData[0].Report_Make_Sign == 0: # 添加系统消息 Title = '通知:生信报告制作任务' # 系统消息标题 Message = username + '分派给你一个生信报告制作任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=ReportMakeTask_Man, # 接收者 # 信息内容 Time=Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(ReportMakeTask_Man, Title, Message) # 发送邮件通知 if not temp_oldData[0].Examine_Result == Examine_Result: Data = models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) if Data[0].SampleSource == '临检样本': models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( BioinfoResult_Sign='1', ) models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Next_TaskProgress_Time=Examine_Time, Next_TaskProgress_Remarks=Examine_Remarks, Bioinfo_Sign='1', ) else: models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( BioinfoResult_Sign='1', ) models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Next_TaskProgress_Time=Examine_Time, Next_TaskProgress_Remarks=Examine_Remarks, Bioinfo_Sign='1', ) # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( Examine_Result=Examine_Result, Examine_Time=Examine_Time, Examine_Remarks=Examine_Remarks, BioinfoResult_Sign='1', ReportMakeTask_Man=ReportMakeTask_Man, ) else: # 添加系统消息 Title = '通知:样本重新分析任务' # 系统消息标题 Message = username + '分派给你一个样本重新分析任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 Data = models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) if button_name == 'Determine': if Data[0].SampleSource == '临检样本': models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( BioinfoResult_Sign='1', Examine_Result=Examine_Result, Examine_Time=Examine_Time, Examine_Remarks=Examine_Remarks, ) models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Next_TaskProgress_Time=Examine_Time, Next_TaskProgress_Remarks=Examine_Remarks, Bioinfo_Sign='0', ) sample = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) TaskReceiver = sample[0].Next_TaskProgress_Man else: models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( BioinfoResult_Sign='1', Examine_Result=Examine_Result, Examine_Time=Examine_Time, Examine_Remarks=Examine_Remarks, ) models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Next_TaskProgress_Time=Examine_Time, Next_TaskProgress_Remarks=Examine_Remarks, Bioinfo_Sign='0', ) sample = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) TaskReceiver = sample[0].Next_TaskProgress_Man models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': tag = 0 if not Data[0].Examine_Result == Examine_Result or not \ Data[0].ReportMakeTask_Man == ReportMakeTask_Man and \ Data[0].Report_Make_Sign == 0: tag = 1 if Data[0].SampleSource == '临检样本': models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( BioinfoResult_Sign='1', Examine_Result=Examine_Result, Examine_Time=Examine_Time, Examine_Remarks=Examine_Remarks, ) models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Next_TaskProgress_Time=Examine_Time, Next_TaskProgress_Remarks=Examine_Remarks, Bioinfo_Sign='0', ) sample = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) TaskReceiver = sample[0].Next_TaskProgress_Man else: models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( BioinfoResult_Sign='1', Examine_Result=Examine_Result, Examine_Time=Examine_Time, Examine_Remarks=Examine_Remarks, ) models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Next_TaskProgress_Time=Examine_Time, Next_TaskProgress_Remarks=Examine_Remarks, Bioinfo_Sign='0', ) sample = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) TaskReceiver = sample[0].Next_TaskProgress_Man if tag == 1: models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_unfinished = models.BioinfoDataAnalysisInfo.objects.filter( BioinfoResult_Sign=0) temp_finished = models.BioinfoDataAnalysisInfo.objects.filter( BioinfoResult_Sign=1) return render( request, "modelspage/BioinfoResultAudit_TaskReview.html", { "userinfo": temp, "unfinished": temp_unfinished, "finished": temp_finished, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def RandDSampleComSeqTaskAssignmentOperation (request): try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print(r'首页,username: '******'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.RandDExperimentalTaskAssignmentHomePage == '1': button_name = '' # 按钮名字 sam_code_num = '' # 样本任务分配信息 Next_TaskProgress_Man = '' # 任务接收者 Next_TaskProgress_Remarks = '' # 任务备注 Next_TaskProgress = '' # 任务进度 Next_TaskProgress_Time = '' # 任务分配时间 Build_finlib_num = '' # 实验次数 DNA_extraction_num = '' # DNA提取实验次数 Build_lib_num = '' # 预文库构建实验次数 if request.method == "POST": print '患者信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num').strip('HT') print '样本条码号: ', sam_code_num # 样本任务分配信息 Next_TaskProgress_Man = request.POST.get('Next_TaskProgress_Man') # 任务接收者 Next_TaskProgress_Remarks = request.POST.get('Next_TaskProgress_Remarks') # 任务备注 Next_TaskProgress = request.POST.get('Next_TaskProgress') # 任务进度 Next_TaskProgress_Time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 任务分配时间 Build_finlib_num = request.POST.get('Build_finlib_num') # 实验次数 DNA_extraction_num = request.POST.get('DNA_extraction_num') # DNA提取实验次数 Build_lib_num = request.POST.get('Build_lib_num') # 预文库构建实验次数 # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('Suspend'): button_name = 'Suspend' elif request.POST.has_key('Stop'): button_name = 'Stop' elif request.POST.has_key('submitModify'): button_name = 'submitModify' # 修改数据库合同信息状态 if button_name == 'Determine': if Next_TaskProgress == request.POST.get('DNA_extraction'): temp_RandDSamplePretreatmentInfo = models.RandDSamplePretreatmentInfo.objects.filter( sam_code_num=sam_code_num) if len(temp_RandDSamplePretreatmentInfo) == 0: models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( DNAExtract_Sign=0, Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) else: models.RandDSamplePretreatmentInfo.objects.filter(sam_code_num=sam_code_num).update( DNAExtract_Sign=0, Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) # 添加系统消息 Title = '通知:研发样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个研发样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 print '再次进行DNA提取' elif Next_TaskProgress == request.POST.get('PreLibCon'): models.RandDSampleDNAExtractInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num).update( PreLibCon_Sign='0', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) # 添加系统消息 Title = '通知:研发样本预文库构建任务' # 系统消息标题 Message = username + '分派给你一个研发样本预文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 print '再次进行预文库构建' elif Next_TaskProgress == request.POST.get('FinLibCon'): models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num).update( FinalLibCon_Sign='0', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) # 添加系统消息 Title = '通知:研发样本终文库构建任务' # 系统消息标题 Message = username + '分派给你一个研发样本终文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 print '再次进行终文库构建' else: # 添加系统消息 Title = '通知:研发样本上机测序任务' # 系统消息标题 Message = username + '分派给你一个研发样本上机测序任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) elif button_name == 'submitModify': # 上次分派任务进度 OldTaskProgress = request.POST.get('OldTaskProgress') if not Next_TaskProgress == OldTaskProgress: if OldTaskProgress == request.POST.get('DNA_extraction'): temp_RandDSamplePretreatmentInfo = models.RandDSamplePretreatmentInfo.objects.filter( sam_code_num=sam_code_num) if len(temp_RandDSamplePretreatmentInfo) == 0: models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update(DNAExtract_Sign=1) else: models.RandDSamplePretreatmentInfo.objects.filter(sam_code_num=sam_code_num).update(DNAExtract_Sign=1) elif OldTaskProgress == request.POST.get('PreLibCon'): models.RandDSampleDNAExtractInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) elif OldTaskProgress == request.POST.get('FinLibCon'): models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) else: models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) if Next_TaskProgress == request.POST.get('DNA_extraction'): temp_RandDSamplePretreatmentInfo = models.RandDSamplePretreatmentInfo.objects.filter( sam_code_num=sam_code_num) if len(temp_RandDSamplePretreatmentInfo) == 0: models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( DNAExtract_Sign=0, Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) else: models.RandDSamplePretreatmentInfo.objects.filter(sam_code_num=sam_code_num).update( DNAExtract_Sign=0, Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) # 添加系统消息 Title = '通知:研发样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个研发样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 print '再次进行DNA提取' elif Next_TaskProgress == request.POST.get('PreLibCon'): models.RandDSampleDNAExtractInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num).update( PreLibCon_Sign='0', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) Title = '通知:研发样本预文库构建任务' # 系统消息标题 Message = username + '分派给你一个研发样本预文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 print '再次进行预文库构建' elif Next_TaskProgress == request.POST.get('FinLibCon'): models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num).update( FinalLibCon_Sign='0', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) # 添加系统消息 Title = '通知:研发样本终文库构建任务' # 系统消息标题 Message = username + '分派给你一个研发样本终文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 print '再次进行终文库构建' else: models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( ComputerSeq_Sign='0', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) # 添加系统消息 Title = '通知:研发样本上机测序任务' # 系统消息标题 Message = username + '分派给你一个研发样本上机测序任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 else: # 预文库构建任务列表 if Next_TaskProgress == request.POST.get('DNA_extraction'): temp_RandDSamplePretreatmentInfo = models.RandDSamplePretreatmentInfo.objects.filter( sam_code_num=sam_code_num) if len(temp_RandDSamplePretreatmentInfo) == 0: temp_data = models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num) if not temp_data[0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[0].DNAExtract_Sign == '0': # 添加系统消息 Title = '通知:研发样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个研发样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSampleInfo.objects.filter(sam_code_num=sam_code_num).update( Next_TaskProgress=Next_TaskProgress, Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) else: temp_data = models.RandDSamplePretreatmentInfo.objects.filter(sam_code_num=sam_code_num) if not temp_data[0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[0].DNAExtract_Sign == '0': # 添加系统消息 Title = '通知:研发样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个研发样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSamplePretreatmentInfo.objects.filter(sam_code_num=sam_code_num).update( Next_TaskProgress=Next_TaskProgress, Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) print '再次进行DNA提取' elif Next_TaskProgress == request.POST.get('PreLibCon'): temp_data = models.RandDSampleDNAExtractInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num) if not temp_data[0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[0].PreLibCon_Sign == '0': Title = '通知:研发样本预文库构建任务' # 系统消息标题 Message = username + '分派给你一个研发样本预文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSampleDNAExtractInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) print '再次进行预文库构建' elif Next_TaskProgress == request.POST.get('FinLibCon'): temp_data = models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num) if not temp_data[0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[0].FinalLibCon_Sign == '0': Title = '通知:临检样本终文库构建任务' # 系统消息标题 Message = username + '分派给你一个临检样本终文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) print '再次进行终文库构建' else: temp_data = models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num) if not temp_data[0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[0].FinalLibCon_Sign == '0': Title = '通知:临检样本终文库构建任务' # 系统消息标题 Message = username + '分派给你一个临检样本终文库构建任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 # 添加系统消息 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress=Next_TaskProgress, ) elif button_name == 'Suspend': print '任务暂停' # 任务暂停 models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( Next_TaskProgress_Sign='2', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) elif button_name == 'Stop': print '任务终止' # 任务终止 models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( Next_TaskProgress_Sign='3', Next_TaskProgress_Man=Next_TaskProgress_Man, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress=Next_TaskProgress, ) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) # 预处理任务列表 Pretreatment_not_audited = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=0, sample_review='1', TissueSampleSign=0) # 任务未分配信息 Pretreatment_audited = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=1, sample_review='1', TissueSampleSign=0) # 任务已分配信息 # DNA提取任务列表 # DNA_not_audited = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=0, TissueSampleSign=1) # 任务未分配信息 temp_not_Pretreatment = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=0, sample_review='1', TissueSampleSign=1) # 任务未分配信息 temp_Pretreatment = models.RandDSamplePretreatmentInfo.objects.filter(Next_TaskProgress_Sign=0) # 任务未分配信息 DNA_not_audited = chain(temp_not_Pretreatment, temp_Pretreatment) # 合并所有数据表数据 # DNA_audited = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=1, TissueSampleSign=1) # 任务已分配信息 temp_not_Pretreatment_audited = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=1, sample_review='1', TissueSampleSign=1) # 任务已分配信息 temp_Pretreatment_audited = models.RandDSamplePretreatmentInfo.objects.filter( Next_TaskProgress_Sign=1) # 任务已分配信息 DNA_audited = chain(temp_not_Pretreatment_audited, temp_Pretreatment_audited) # 合并所有数据表数据 # 预文库构建任务列表 temp_Fin_unaud = models.clinicalSampleInfo.objects.filter(contract_review=0) # 财务未审核信息 temp_Fin_NoPass = models.clinicalSampleInfo.objects.filter(contract_review=2) # 财务审核不通过信息 PreLibCon_not_audited = models.RandDSampleDNAExtractInfo.objects.filter(Next_TaskProgress_Sign=0) # 任务未分配信息 PreLibCon_audited = models.RandDSampleDNAExtractInfo.objects.filter(Next_TaskProgress_Sign=1) # 任务已分配信息 # 终文库构建任务列表 FinLibCon_not_audited = models.RandDSamplePreLibConInfo.objects.filter(Next_TaskProgress_Sign=0) # 任务未分配信息 FinLibCon_audited = models.RandDSamplePreLibConInfo.objects.filter(Next_TaskProgress_Sign=1) # 任务已分配信息 # 上机测序任务列表 ComputerSeq_not_audited = models.RandDSampleFinLibConInfo.objects.filter( Next_TaskProgress_Sign=0) # 任务未分配信息 ComputerSeq_audited = models.RandDSampleFinLibConInfo.objects.filter(Next_TaskProgress_Sign=1) # 任务已分配信息 # 其他信息列表 # 任务暂停信息 temp_Pretreatment = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=2, sample_review='1') # 预处理任务暂停信息 temp_DNAExtract = models.RandDSamplePretreatmentInfo.objects.filter(Next_TaskProgress_Sign=2) # DNA提取任务暂停信息 temp_PreLibCon = models.RandDSampleDNAExtractInfo.objects.filter(Next_TaskProgress_Sign=2) # 预文库构建任务暂停信息 temp_FinLibCon = models.RandDSamplePreLibConInfo.objects.filter(Next_TaskProgress_Sign=2) # 终文库构建任务暂停信息 temp_SeqCom = models.RandDSampleFinLibConInfo.objects.filter(Next_TaskProgress_Sign=2) # 上机测序任务暂停信息 temp_suspend = chain(temp_Pretreatment, temp_DNAExtract, temp_PreLibCon, temp_FinLibCon, temp_SeqCom) # 合并所有数据表数据 # 任务终止信息 # temp_stop = models.clinicalSampleInfo.objects.filter(Next_TaskProgress_Sign=3) # 任务终止信息 temp_Pretreatment_stop = models.RandDSampleInfo.objects.filter(Next_TaskProgress_Sign=3, sample_review='1') # 预处理任务终止信息 temp_DNAExtract_stop = models.RandDSamplePretreatmentInfo.objects.filter( Next_TaskProgress_Sign=3) # DNA提取任务终止信息 temp_PreLibCon_stop = models.RandDSampleDNAExtractInfo.objects.filter( Next_TaskProgress_Sign=3) # 预文库构建任务终止信息 temp_FinLibCon_stop = models.RandDSamplePreLibConInfo.objects.filter( Next_TaskProgress_Sign=3) # 终文库构建任务终止信息 temp_SeqCom_stop = models.RandDSampleFinLibConInfo.objects.filter(Next_TaskProgress_Sign=3) # 上机测序任务终止信息 temp_stop = chain(temp_Pretreatment_stop, temp_DNAExtract_stop, temp_PreLibCon_stop, temp_FinLibCon_stop, temp_SeqCom_stop) # 合并所有数据表数据 return render(request, "modelspage/RandDExperimentalTaskAssignment.html", {"userinfo": temp, "Pretreatment_not_audited": Pretreatment_not_audited, "Pretreatment_audited": Pretreatment_audited, "DNA_not_audited": DNA_not_audited, "DNA_audited": DNA_audited, "PreLibCon_not_audited": PreLibCon_not_audited, "PreLibCon_audited": PreLibCon_audited, "FinLibCon_not_audited": FinLibCon_not_audited, "FinLibCon_audited": FinLibCon_audited, "ComputerSeq_not_audited": ComputerSeq_not_audited, "ComputerSeq_audited": ComputerSeq_audited, "Fin_unaud": temp_Fin_unaud, "Fin_NoPass": temp_Fin_NoPass, "suspend": temp_suspend, "stop": temp_stop, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread}) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 return render(request, "modelspage/PermissionsPrompt.html", {"userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread})
def RandDPreLibConInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本编号 DNA_extraction_num = '' # DNA提取实验次数 # 预文库构建信息 PreLibConName = '' # 预文库名称 InitialAmountOfTransformation = '' # 转化起始量(ng) InitialQuantityOfPreLibCon = '' # 建库起始量(ng) Concentration = '' # 浓度(ng/µL) DNA_volume = '' # 体积(µL) DNA_Total = '' # DNA总量(ng) Index_i5 = '' # Index-i5 Index_i7 = '' # Index-i7 Build_lib_method = '' # 建库方法(可选Batman、Ironman) Build_lib_time = '' # 建库时间 PreLibCon_storage_location = '' # 预文库存储位置 Build_lib_man = '' # 建库人 Quality_inspection_result = '' # 质检结果 Glue_map_link = '' # 胶图链接 ConversionKitNumber = '' # 转化试剂盒编号 NumberOfLibraryKit = '' # 建库试剂盒编号 Build_lib_remarks = '' # 其它(备注) button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # DNA提取实验次数 DNA_extraction_num = request.POST.get('DNA_extraction_num') print 'DNA提取实验次数: ', DNA_extraction_num print '预文库构建信息: ============================================= ' PreLibConName = request.POST.get('PreLibConName') # 预文库名称 InitialAmountOfTransformation = request.POST.get('InitialAmountOfTransformation') # 转化起始量(ng) InitialQuantityOfPreLibCon = request.POST.get('InitialQuantityOfPreLibCon') # 建库起始量(ng) Concentration = request.POST.get('Concentration') # 浓度(ng/µL) DNA_volume = request.POST.get('DNA_volume') # 体积(µL) DNA_Total = request.POST.get('DNA_Total') # DNA总量(ng) Index_i5 = request.POST.get('Index_i5') # Index-i5 Index_i7 = request.POST.get('Index_i7') # Index-i7 Build_lib_method = request.POST.get('Build_lib_method') # 建库方法(可选Batman、Ironman) Build_lib_time = request.POST.get('Build_lib_time') # 建库时间 PreLibCon_storage_location = request.POST.get('PreLibCon_storage_location') # 预文库存储位置 Build_lib_man = request.POST.get('Build_lib_man') # 建库人 Quality_inspection_result = request.POST.get('Quality_inspection_result') # 质检结果 Glue_map_link = request.POST.get('Glue_map_link') # 胶图链接 ConversionKitNumber = request.POST.get('ConversionKitNumber') # 转化试剂盒编号 NumberOfLibraryKit = request.POST.get('NumberOfLibraryKit') # 建库试剂盒编号 Build_lib_remarks = request.POST.get('Build_lib_remarks') # 其它(备注) # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.RandDPreLibConInfoInputHomePage == '1': if button_name == 'Determine': temp_PreLibConTask = models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num) # DNA提取样本信息 num = len(temp_PreLibConTask) # 添加数据到数据库 models.RandDSamplePreLibConInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本编号 # 预文库构建信息 PreLibConName=PreLibConName, # 预文库名称 InitialAmountOfTransformation=InitialAmountOfTransformation, # 转化起始量(ng) InitialQuantityOfPreLibCon=InitialQuantityOfPreLibCon, # 建库起始量(ng) DNA_Concentration=Concentration, # 浓度(ng/µL) DNA_volume=DNA_volume, # 体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Index_i5=Index_i5, # Index-i5 Index_i7=Index_i7, # Index-i7 Build_lib_method=Build_lib_method, # 建库方法(可选Batman、Ironman) Build_lib_time=Build_lib_time, # 建库时间 PreLibCon_storage_location=PreLibCon_storage_location, # 预文库存储位置 Build_lib_man=Build_lib_man, # 建库人 Quality_inspection_result=Quality_inspection_result, # 质检结果 Glue_map_link=Glue_map_link, # 胶图链接 ConversionKitNumber=ConversionKitNumber, # 转化试剂盒编号 NumberOfLibraryKit=NumberOfLibraryKit, # 建库试剂盒编号 Build_lib_remarks=Build_lib_remarks, # 其它(备注) # 其他信息 DNA_extraction_num=DNA_extraction_num, # DNA提取实验次数 ExperimentTimes=num+1, # 预文库构建实验次数 FinalLibCon_Sign=0, # 终文库构建任务标记 Next_TaskProgress_Sign=0 # 下一步任务分配标记 ) models.RandDSampleDNAExtractInfo.objects.filter(sam_code_num=sam_code_num, Next_TaskProgress='预文库构建', ExperimentTimes=DNA_extraction_num).update(PreLibCon_Sign='1') # 添加系统消息 taskTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") Title = '通知:研发样本终文库构建实验分派任务' # 系统消息标题 Message = username + '分派给你一个研发样本终文库构建实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.RandDSampleInfo.objects.get(sam_code_num=sam_code_num) TaskReceiver = sample.TaskAssignment models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 预文库构建次数 Build_lib_num = request.POST.get('Build_lib_num') # 添加数据到数据库 models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num).update( # 预文库构建信息 PreLibConName=PreLibConName, # 预文库名称 InitialAmountOfTransformation=InitialAmountOfTransformation, # 转化起始量(ng) InitialQuantityOfPreLibCon=InitialQuantityOfPreLibCon, # 建库起始量(ng) DNA_Concentration=Concentration, # 浓度(ng/µL) DNA_volume=DNA_volume, # 体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Index_i5=Index_i5, # Index-i5 Index_i7=Index_i7, # Index-i7 Build_lib_method=Build_lib_method, # 建库方法(可选Batman、Ironman) Build_lib_time=Build_lib_time, # 建库时间 PreLibCon_storage_location=PreLibCon_storage_location, # 预文库存储位置 Build_lib_man=Build_lib_man, # 建库人 Quality_inspection_result=Quality_inspection_result, # 质检结果 Glue_map_link=Glue_map_link, # 胶图链接 ConversionKitNumber=ConversionKitNumber, # 转化试剂盒编号 NumberOfLibraryKit=NumberOfLibraryKit, # 建库试剂盒编号 Build_lib_remarks=Build_lib_remarks, # 其它(备注) ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 temp_PreLibConTask = models.RandDSampleDNAExtractInfo.objects.filter(Next_TaskProgress="预文库构建", Next_TaskProgress_Sign='1', PreLibCon_Sign='0') # 预文库构建任务信息 temp_pass = models.RandDSamplePreLibConInfo.objects.all() # 预文库构建任务已完成 return render(request, "modelspage/RandDPreLibConInfoInputHomePage.html", {"userinfo": temp, "data": temp_PreLibConTask, "pass": temp_pass, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread}) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 return render(request, "modelspage/PermissionsPrompt.html", {"userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread})
def PreLibConInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 ExperimentNumber = '' # 实验编号 DNA_extraction_num = '' # DNA提取实验次数 # 预文库构建信息 DNA_Concentration = '' # 预文库浓度(ng/µL) DNA_volume = '' # DNA体积(µL) DNA_Total = '' # DNA总量(ng) Indexi5i7 = '' # Indexi5i7 Quality_inspection_method = '' # 质检方法 Quality_inspection_result = '' # 质检结果 Quality_inspection_volume = '' # 质检使用体积(µL) Quality_inspection_mass = '' # 质检使用质量(ng) Residual_volume = '' # 剩余体积(µL) Residual_mass = '' # 剩余质量(ng) Build_lib_method = '' # 建库方法(可选Batman、Ironman) Build_lib_man = '' # 建库人 Build_lib_time = '' # 建库时间(系统默认时间) Build_lib_remarks = '' # 其它(备注) button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber # DNA提取实验次数 DNA_extraction_num = request.POST.get('DNA_extraction_num') print 'DNA提取实验次数: ', DNA_extraction_num print 'DNA提取信息: ============================================= ' # 预文库浓度 DNA_Concentration = request.POST.get('DNA_Concentration') print '预文库浓度: ', DNA_Concentration # DNA体积 DNA_volume = request.POST.get('DNA_volume') print 'DNA体积: ', DNA_volume # DNA总量 DNA_Total = request.POST.get('DNA_Total') print 'DNA总量: ', DNA_Total # Indexi5i7 Indexi5i7 = request.POST.get('Indexi5i7') print 'Indexi5i7: ', Indexi5i7 # 质检方法 Quality_inspection_method = request.POST.get( 'Quality_inspection_method') print '质检方法: ', Quality_inspection_method # 质检结果 Quality_inspection_result = request.POST.get( 'Quality_inspection_result') print '质检结果: ', Quality_inspection_result # 质检使用体积 Quality_inspection_volume = request.POST.get( 'Quality_inspection_volume') print '质检使用体积: ', Quality_inspection_volume # 质检使用质量 Quality_inspection_mass = request.POST.get('Quality_inspection_mass') print '质检使用质量: ', Quality_inspection_mass # 剩余体积 Residual_volume = request.POST.get('Residual_volume') print '剩余体积: ', Residual_volume # 剩余质量 Residual_mass = request.POST.get('Residual_mass') print '剩余质量: ', Residual_mass # 建库方法 Build_lib_method = request.POST.get('Build_lib_method') print '建库方法: ', Build_lib_method # 建库人 Build_lib_man = request.POST.get('Build_lib_man') print '建库人: ', Build_lib_man # 建库时间 Build_lib_time = request.POST.get('Build_lib_time') print '建库时间: ', Build_lib_time # 其它(备注) Build_lib_remarks = request.POST.get('Build_lib_remarks') print '其它(备注): ', Build_lib_remarks # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.PreLibConTaskReview == '1': if button_name == 'Determine': temp_PreLibConTask = models.PreLibConInfo.objects.filter( sam_code_num=sam_code_num) # DNA提取样本信息 num = len(temp_PreLibConTask) # 添加数据到数据库 models.PreLibConInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 ExperimentNumber=ExperimentNumber, # 实验编号 # 预文库构建信息 DNA_Concentration=DNA_Concentration, # 预文库浓度(ng/µL) DNA_volume=DNA_volume, # DNA体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Indexi5i7=Indexi5i7, # Indexi5i7 Quality_inspection_method=Quality_inspection_method, # 质检方法 Quality_inspection_result=Quality_inspection_result, # 质检结果 Quality_inspection_volume= Quality_inspection_volume, # 质检使用体积(µL) Quality_inspection_mass= Quality_inspection_mass, # 质检使用质量(ng) Residual_volume=Residual_volume, # 剩余体积(µL) Residual_mass=Residual_mass, # 剩余质量(ng) Build_lib_method=Build_lib_method, # 建库方法(可选Batman、Ironman) Build_lib_man=Build_lib_man, # 建库人 Build_lib_time=Build_lib_time, # 建库时间(系统默认时间) Build_lib_remarks=Build_lib_remarks, # 其它(备注) # 其他信息 DNA_extraction_num=DNA_extraction_num, # DNA提取实验次数 ExperimentTimes=num + 1, # 预文库构建实验次数 FinalLibCon_Sign=0, # 终文库构建任务标记 Next_TaskProgress_Sign=0 # 下一步任务分配标记 ) models.DNAExtractInfo.objects.filter( sam_code_num=sam_code_num, Next_TaskProgress='预文库构建', ExperimentTimes=DNA_extraction_num).update( PreLibCon_Sign='1') # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:临检样本终文库构建实验分派任务' # 系统消息标题 Message = username + '分派给你一个临检样本终文库构建实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.clinicalSampleInfo.objects.get( sam_code_num=sam_code_num) TaskReceiver = sample.TaskAssignment models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 预文库构建次数 Build_lib_num = request.POST.get('Build_lib_num') models.PreLibConInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Build_lib_num ).update( # 预文库构建信息 DNA_Concentration=DNA_Concentration, # 预文库浓度(ng/µL) DNA_volume=DNA_volume, # DNA体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Indexi5i7=Indexi5i7, # Indexi5i7 Quality_inspection_method=Quality_inspection_method, # 质检方法 Quality_inspection_result=Quality_inspection_result, # 质检结果 Quality_inspection_volume= Quality_inspection_volume, # 质检使用体积(µL) Quality_inspection_mass= Quality_inspection_mass, # 质检使用质量(ng) Residual_volume=Residual_volume, # 剩余体积(µL) Residual_mass=Residual_mass, # 剩余质量(ng) Build_lib_method=Build_lib_method, # 建库方法(可选Batman、Ironman) Build_lib_man=Build_lib_man, # 建库人 Build_lib_time=Build_lib_time, # 建库时间(系统默认时间) Build_lib_remarks=Build_lib_remarks, # 其它(备注) ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_PreLibConTask = models.DNAExtractInfo.objects.filter( Next_TaskProgress="预文库构建", Next_TaskProgress_Sign='1', PreLibCon_Sign='0') # 预文库构建任务信息 temp_pass = models.PreLibConInfo.objects.all() # 预文库构建任务已完成 return render( request, "modelspage/PreLibConTaskReview.html", { "userinfo": temp, "data": temp_PreLibConTask, "pass": temp_pass, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def CSRDataToBackstage(request): # 患者信息 sam_code_num = '' # 样本条码号 PatientName = '' # 患者姓名 PatientAge = '' # 患者年龄(岁) PatientSex = '' # 患者性别 PatientBirthday = '' # 患者身份证号码 PatientPhoneNumber = '' # 患者联系电话 PatientEmail = '' # 患者电子邮箱 PatientAddress = '' # 报告接收地址 treatment_hospital = '' # 就诊医院 treatment_department = '' # 就诊科室 AttendingDoctor = '' # 主治医生 DoctorEmail = '' # 医生邮箱 # 样本信息 Pathological_diagnosis = '' # 病理诊断 clinical_diagnosis = '' # 临床诊断 Clinical_stage = '' # 临床分期 is_tubercle_history = '' # 结核病史 tubercle_distribution = '' # 结节大小和分布 sample_source = '' # 样本来源 acquisition_time = '' # 采集时间 family_history = '' # 家族史 receiving_time = '' # 收样时间 sample_count = '' # 样本数量 sample_type = '' # 样本类型 sample_type_text = '' # 样本类型描述 infection_history = '' # 传染病史 # 基因检测史 detected_gene_time = '' # 检测时间 detected_gene_name = '' # 检测基因 detected_gene_result = '' # 检测结果 # 曾有治疗史 treatment_history_surgery = '' # 手术 treatment_history_chem = '' # 化疗 treatment_history_therapy = '' # 靶向治疗 # 合同信息 contract_name = '' # 项目编号 contract_pay = '' # 合同金额(人民币) pay_way = '' # 支付方式 pos_code = '' # pos单号(交易参考号) Client = '' # 委托人 remarks = '' # 其它(备注) # 检测方案 cancer_type = '' # 癌种 detection_type = '' # 类型 product_name = '' # 产品名称 is_return = '' # 剩余样本是否退回 is_invoice = '' # 是否需要发票 SampleAuditor = '' # 样本审核人 TissueSampleSign = '' # 组织样本标记 # 按钮名字 button_name = '' # 按钮名字 sample_review = '' # 审核标记 IS = '' NO = '' old_sam_code_num = '' # 旧样本编号 if request.method == "POST": # 样本条码号 sam_code_num = request.POST.get('sam_code_num') # 患者姓名 PatientName = request.POST.get('PatientName') # 患者年龄(岁) PatientAge = request.POST.get('PatientAge') # 患者性别 PatientSex = request.POST.get('PatientSex') # 患者身份证号码 PatientBirthday = request.POST.get('PatientBirthday') # 患者联系电话 PatientPhoneNumber = request.POST.get('PatientPhoneNumber') # 患者电子邮箱 PatientEmail = request.POST.get('PatientEmail') # 报告接收地址 PatientAddress = request.POST.get('PatientAddress') # 就诊医院 treatment_hospital = request.POST.get('treatment_hospital') if treatment_hospital == "其他".decode('utf-8'): treatment_hospital = request.POST.get('other_treatment_hospital') # 就诊科室 treatment_department = request.POST.get('treatment_department') if treatment_department == "其他".decode('utf-8'): treatment_department = request.POST.get('othertreatment') # 主治医生 AttendingDoctor = request.POST.get('AttendingDoctor') # 医生邮箱 DoctorEmail = request.POST.get('DoctorEmail') # 病理诊断 Pathological_diagnosis = request.POST.get('Pathological_diagnosis') # 临床诊断 clinical_diagnosis = request.POST.get('clinical_diagnosis') # 临床分期 Clinical_stage = request.POST.get('Clinical_stage') # 结核病史 is_tubercle_history = request.POST.get('is_tubercle_history') # 结节大小和分布 tubercle_distribution = request.POST.get('tubercle_distribution') # 样本来源 sample_source = request.POST.get('sample_source') # 采集时间 acquisition_time = request.POST.get('acquisition_time') # 家族史 family_history = request.POST.get('family_history') # 收样时间 receiving_time = request.POST.get('receiving_time') # 样本数量 sample_count = request.POST.get('sample_count') # 样本类型 sample_type = request.POST.get('sample_type') sample_type_text = request.POST.get('sample_type_text') # 传染病史 infection_history = request.POST.get('infection_history') # 基因检测史 detected_gene_time_list = request.POST.getlist('detected_gene_time') detected_gene_name_list = request.POST.getlist('detected_gene_name') detected_gene_result_list = request.POST.getlist( 'detected_gene_result') for i in range(0, len(detected_gene_time_list)): if i == 0: detected_gene_time = detected_gene_time_list[i] detected_gene_name = detected_gene_name_list[i] detected_gene_result = detected_gene_result_list[i] else: detected_gene_time += ';' + detected_gene_time_list[i] detected_gene_name += ';' + detected_gene_name_list[i] detected_gene_result += ';' + detected_gene_result_list[i] # 曾有治疗史 treatment_history_surgery = request.POST.get( 'treatment_history_surgery') treatment_history_chem = request.POST.get('treatment_history_chem') treatment_history_therapy = request.POST.get( 'treatment_history_therapy') # 合同名称 contract_name = request.POST.get('contract_name') # 合同金额(人民币) contract_pay = request.POST.get('contract_pay') # 支付方式 pay_way = request.POST.get('pay_way') if pay_way == "pos机支付".decode('utf-8'): pos_code = request.POST.get('pos_code') # 委托人 Client = request.POST.get('Client') # 其它(备注) remarks = request.POST.get('remarks') # 癌种 cancer_type = request.POST.get('cancer_type') if cancer_type == "其他癌种".decode('utf-8'): cancer_type = request.POST.get('other_cancer_type') # 类型 detection_type_list = request.POST.getlist('detection_type') detection_type = '' for i in range(0, len(detection_type_list)): if i == 0: detection_type = detection_type_list[i] else: detection_type += ';' + detection_type_list[i] # 产品名称 product_name_list = request.POST.getlist('product_name') product_name = '' for i in range(0, len(product_name_list)): if i == 0: product_name = product_name_list[i] else: product_name += ';' + product_name_list[i] # 剩余样本是否退回 is_return = request.POST.get('is_return') # 是否需要发票 is_invoice = request.POST.get('is_invoice') SampleAuditor = request.POST.get('SampleAuditor') # 样本审核人 TissueSampleSign = request.POST.get('TissueSampleSign') # 组织样本标记 if TissueSampleSign == '是': TissueSampleSign = '1' elif TissueSampleSign == '否': TissueSampleSign = '0' IS = request.POST.get('is') NO = request.POST.get('no') old_sam_code_num = request.POST.get('old_sam_code_num') # 旧样本编号 # 判断哪个按钮提交的数据 if request.POST.has_key('singleAddSampleDraft'): button_name = 'singleAddSample' sample_review = '' elif request.POST.has_key('singleAddSample'): button_name = 'singleAddSample' sample_review = 0 elif request.POST.has_key('batchAddSampleDraft'): button_name = 'batchAddSample' sample_review = '' elif request.POST.has_key('batchAddSample'): button_name = 'batchAddSample' sample_review = 0 elif request.POST.has_key('saveDraft'): button_name = 'updata' sample_review = '' elif request.POST.has_key('submitReview'): button_name = 'updata' sample_review = 0 elif request.POST.has_key('submitModify'): button_name = 'submitModify' try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'' # 重复样本编号列表 Sample_list = [] # 空列表 for i in range(0, len(temp_mySample)): Sample_list.append(temp_mySample[i].sam_code_num) temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 if temp_UserOperationPermissionsInfo.ClinicalSampleRegistration == '1': if button_name == 'singleAddSample': if sam_code_num not in Sample_list: # 添加数据到数据库 models.clinicalSampleInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 患者信息 sam_code_num=sam_code_num, # 样本条码号 PatientName=PatientName, # 患者姓名 PatientAge=PatientAge, # 患者年龄(岁) PatientSex=PatientSex, # 患者性别 PatientBirthday=PatientBirthday, # 患者身份证号码 PatientPhoneNumber=PatientPhoneNumber, # 患者联系电话 PatientEmail=PatientEmail, # 患者电子邮箱 PatientAddress=PatientAddress, # 报告接收地址 treatment_hospital=treatment_hospital, # 就诊医院 treatment_department=treatment_department, # 就诊科室 AttendingDoctor=AttendingDoctor, # 主治医生 DoctorEmail=DoctorEmail, # 医生邮箱 # 样本信息 Pathological_diagnosis=Pathological_diagnosis, # 病理诊断 clinical_diagnosis=clinical_diagnosis, # 临床诊断 Clinical_stage=Clinical_stage, # 临床分期 is_tubercle_history=is_tubercle_history, # 结核病史 tubercle_distribution=tubercle_distribution, # 结节大小和分布 sample_source=sample_source, # 样本来源 acquisition_time=acquisition_time, # 采集时间 family_history=family_history, # 家族史 receiving_time=receiving_time, # 收样时间 sample_count=sample_count, # 样本数量 sample_type=sample_type, # 样本类型 sample_type_text=sample_type_text, # 样本类型描述 infection_history=infection_history, # 传染病史 # 基因检测史 detected_gene_time=detected_gene_time, # 检测时间 detected_gene_name=detected_gene_name, # 检测基因 detected_gene_result=detected_gene_result, # 检测结果 # 曾有治疗史 treatment_history_surgery= treatment_history_surgery, # 手术 treatment_history_chem=treatment_history_chem, # 化疗 treatment_history_therapy= treatment_history_therapy, # 靶向治疗 # 合同信息 contract_name=contract_name, # 合同名称 contract_pay=contract_pay, # 合同金额(人民币) pay_way=pay_way, # 支付方式 pos_code=pos_code, # pos单号(交易参考号) Client=Client, # 委托人 remarks=remarks, # 其它(备注) # 检测方案 cancer_type=cancer_type, # 癌种 detection_type=detection_type, # 类型 product_name=product_name, # 产品名称 is_return=is_return, # 剩余样本是否退回 is_invoice=is_invoice, # 是否需要发票 # 审核标记 # contract_review=0, # 合同审核标记 sample_review=sample_review, # 样本审核标记 Pretreatment_Sign=0, # 样本预处理标记 DNAExtract_Sign=0, # DNA提取任务标记 # 样本审核信息 SampleAuditor=SampleAuditor, # 样本审核人 # 组织样本标记 TissueSampleSign=TissueSampleSign, # 组织样本标记 ) if not sample_review == '': # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:临检样本审核任务' # 系统消息标题 Message = username + '分派给你一个临检样本审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=SampleAuditor, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(SampleAuditor, Title, Message) # 发送邮件通知 else: AlreadyExistedList = sam_code_num print sam_code_num + '已存在!' elif button_name == 'updata': isupdata = 0 if not sam_code_num == old_sam_code_num: if sam_code_num in Sample_list: isupdata = 1 if isupdata == 0: # 添加数据到数据库 models.clinicalSampleInfo.objects.filter( sam_code_num=old_sam_code_num ).update( # 用户信息 username=username, # 用户名 department=department, # 部门 # 患者信息 sam_code_num=sam_code_num, # 样本条码号 PatientName=PatientName, # 患者姓名 PatientAge=PatientAge, # 患者年龄(岁) PatientSex=PatientSex, # 患者性别 PatientBirthday=PatientBirthday, # 患者身份证号码 PatientPhoneNumber=PatientPhoneNumber, # 患者联系电话 PatientEmail=PatientEmail, # 患者电子邮箱 PatientAddress=PatientAddress, # 报告接收地址 treatment_hospital=treatment_hospital, # 就诊医院 treatment_department=treatment_department, # 就诊科室 AttendingDoctor=AttendingDoctor, # 主治医生 DoctorEmail=DoctorEmail, # 医生邮箱 # 样本信息 Pathological_diagnosis=Pathological_diagnosis, # 病理诊断 clinical_diagnosis=clinical_diagnosis, # 临床诊断 Clinical_stage=Clinical_stage, # 临床分期 is_tubercle_history=is_tubercle_history, # 结核病史 tubercle_distribution=tubercle_distribution, # 结节大小和分布 sample_source=sample_source, # 样本来源 acquisition_time=acquisition_time, # 采集时间 family_history=family_history, # 家族史 receiving_time=receiving_time, # 收样时间 sample_count=sample_count, # 样本数量 sample_type=sample_type, # 样本类型 sample_type_text=sample_type_text, # 样本类型描述 infection_history=infection_history, # 传染病史 # 基因检测史 detected_gene_time=detected_gene_time, # 检测时间 detected_gene_name=detected_gene_name, # 检测基因 detected_gene_result=detected_gene_result, # 检测结果 # 曾有治疗史 treatment_history_surgery= treatment_history_surgery, # 手术 treatment_history_chem=treatment_history_chem, # 化疗 treatment_history_therapy= treatment_history_therapy, # 靶向治疗 # 合同信息 contract_name=contract_name, # 合同名称 contract_pay=contract_pay, # 合同金额(人民币) pay_way=pay_way, # 支付方式 pos_code=pos_code, # pos单号(交易参考号) Client=Client, # 委托人 remarks=remarks, # 其它(备注) # 检测方案 cancer_type=cancer_type, # 癌种 detection_type=detection_type, # 类型 product_name=product_name, # 产品名称 is_return=is_return, # 剩余样本是否退回 is_invoice=is_invoice, # 是否需要发票 # 审核标记 # contract_review=0, # 合同审核标记 sample_review=sample_review, # 样本审核标记 Pretreatment_Sign=0, # 样本预处理标记 DNAExtract_Sign=0, # DNA提取任务标记 # 样本审核信息 SampleAuditor=SampleAuditor, # 样本审核人 # 组织样本标记 TissueSampleSign=TissueSampleSign, # 组织样本标记 ) if not sample_review == '': # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:临检样本审核任务' # 系统消息标题 Message = username + '分派给你一个临检样本审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=SampleAuditor, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(SampleAuditor, Title, Message) # 发送邮件通知 else: AlreadyExistedList = sam_code_num # print sam_code_num + '已存在!' elif button_name == 'submitModify': isupdata = 0 if not sam_code_num == old_sam_code_num: if sam_code_num in Sample_list: isupdata = 1 if isupdata == 0: # 添加数据到数据库 models.clinicalSampleInfo.objects.filter( sam_code_num=old_sam_code_num ).update( # 用户信息 username=username, # 用户名 department=department, # 部门 # 患者信息 sam_code_num=sam_code_num, # 样本条码号 PatientName=PatientName, # 患者姓名 PatientAge=PatientAge, # 患者年龄(岁) PatientSex=PatientSex, # 患者性别 PatientBirthday=PatientBirthday, # 患者身份证号码 PatientPhoneNumber=PatientPhoneNumber, # 患者联系电话 PatientEmail=PatientEmail, # 患者电子邮箱 PatientAddress=PatientAddress, # 报告接收地址 treatment_hospital=treatment_hospital, # 就诊医院 treatment_department=treatment_department, # 就诊科室 AttendingDoctor=AttendingDoctor, # 主治医生 DoctorEmail=DoctorEmail, # 医生邮箱 # 样本信息 Pathological_diagnosis=Pathological_diagnosis, # 病理诊断 clinical_diagnosis=clinical_diagnosis, # 临床诊断 Clinical_stage=Clinical_stage, # 临床分期 is_tubercle_history=is_tubercle_history, # 结核病史 tubercle_distribution=tubercle_distribution, # 结节大小和分布 sample_source=sample_source, # 样本来源 acquisition_time=acquisition_time, # 采集时间 family_history=family_history, # 家族史 receiving_time=receiving_time, # 收样时间 sample_count=sample_count, # 样本数量 sample_type=sample_type, # 样本类型 sample_type_text=sample_type_text, # 样本类型描述 infection_history=infection_history, # 传染病史 # 基因检测史 detected_gene_time=detected_gene_time, # 检测时间 detected_gene_name=detected_gene_name, # 检测基因 detected_gene_result=detected_gene_result, # 检测结果 # 曾有治疗史 treatment_history_surgery= treatment_history_surgery, # 手术 treatment_history_chem=treatment_history_chem, # 化疗 treatment_history_therapy= treatment_history_therapy, # 靶向治疗 # 合同信息 contract_name=contract_name, # 合同名称 contract_pay=contract_pay, # 合同金额(人民币) pay_way=pay_way, # 支付方式 pos_code=pos_code, # pos单号(交易参考号) Client=Client, # 委托人 remarks=remarks, # 其它(备注) # 检测方案 cancer_type=cancer_type, # 癌种 detection_type=detection_type, # 类型 product_name=product_name, # 产品名称 is_return=is_return, # 剩余样本是否退回 is_invoice=is_invoice, # 是否需要发票 # 组织样本标记 TissueSampleSign=TissueSampleSign, # 组织样本标记 ) else: AlreadyExistedList = sam_code_num # print sam_code_num + '已存在!' elif button_name == 'batchAddSample': # print 'batchAddSample' isAlreadyExisted = 0 # 是否存在重复样本编号标志 sam_code_num_list = '' # 样本编号列表 num_sam = 0 # 样本编号个数 # 患者信息 sam_code_num = sam_code_num.split('\n') # 样本条码号 PatientName = PatientName.split('\n') # 患者姓名 if len(sam_code_num) > len(PatientName): li = [''] * (len(sam_code_num) - len(PatientName)) tuple(li) PatientName = PatientName + li PatientAge = PatientAge.split('\n') # 患者年龄(岁) if len(sam_code_num) > len(PatientAge): li = [''] * (len(sam_code_num) - len(PatientAge)) tuple(li) PatientAge = PatientAge + li PatientSex = PatientSex.split('\n') # 患者性别 if len(sam_code_num) > len(PatientSex): li = [''] * (len(sam_code_num) - len(PatientSex)) tuple(li) PatientSex = PatientSex + li PatientBirthday = PatientBirthday.split('\n') # 患者身份证号码 if len(sam_code_num) > len(PatientBirthday): li = [''] * (len(sam_code_num) - len(PatientBirthday)) tuple(li) PatientBirthday = PatientBirthday + li PatientPhoneNumber = PatientPhoneNumber.split('\n') # 患者联系电话 if len(sam_code_num) > len(PatientPhoneNumber): li = [''] * (len(sam_code_num) - len(PatientPhoneNumber)) tuple(li) PatientPhoneNumber = PatientPhoneNumber + li PatientEmail = PatientEmail.split('\n') # 患者电子邮箱 if len(sam_code_num) > len(PatientEmail): li = [''] * (len(sam_code_num) - len(PatientEmail)) tuple(li) PatientEmail = PatientEmail + li PatientAddress = PatientAddress.split('\n') # 报告接收地址 if len(sam_code_num) > len(PatientAddress): li = [''] * (len(sam_code_num) - len(PatientAddress)) tuple(li) PatientAddress = PatientAddress + li treatment_hospital = treatment_hospital.split('\n') # 就诊医院 if len(sam_code_num) > len(treatment_hospital): li = [''] * (len(sam_code_num) - len(treatment_hospital)) tuple(li) treatment_hospital = treatment_hospital + li treatment_department = treatment_department.split('\n') # 就诊科室 if len(sam_code_num) > len(treatment_department): li = [''] * (len(sam_code_num) - len(treatment_department)) tuple(li) treatment_department = treatment_department + li AttendingDoctor = AttendingDoctor.split('\n') # 主治医生 if len(sam_code_num) > len(AttendingDoctor): li = [''] * (len(sam_code_num) - len(AttendingDoctor)) tuple(li) AttendingDoctor = AttendingDoctor + li DoctorEmail = DoctorEmail.split('\n') # 医生邮箱 if len(sam_code_num) > len(DoctorEmail): li = [''] * (len(sam_code_num) - len(DoctorEmail)) tuple(li) DoctorEmail = DoctorEmail + li # 样本信息 Pathological_diagnosis = Pathological_diagnosis.split( '\n') # 病理诊断 if len(sam_code_num) > len(Pathological_diagnosis): li = ['' ] * (len(sam_code_num) - len(Pathological_diagnosis)) tuple(li) Pathological_diagnosis = Pathological_diagnosis + li clinical_diagnosis = clinical_diagnosis.split('\n') # 临床诊断 if len(sam_code_num) > len(clinical_diagnosis): li = [''] * (len(sam_code_num) - len(clinical_diagnosis)) tuple(li) clinical_diagnosis = clinical_diagnosis + li Clinical_stage = Clinical_stage.split('\n') # 临床分期 if len(sam_code_num) > len(Clinical_stage): li = [''] * (len(sam_code_num) - len(Clinical_stage)) tuple(li) Clinical_stage = Clinical_stage + li is_tubercle_history = is_tubercle_history.split('\n') # 结核病史 if len(sam_code_num) > len(is_tubercle_history): li = [''] * (len(sam_code_num) - len(is_tubercle_history)) tuple(li) is_tubercle_history = is_tubercle_history + li tubercle_distribution = tubercle_distribution.split( '\n') # 结节大小和分布 if len(sam_code_num) > len(tubercle_distribution): li = ['' ] * (len(sam_code_num) - len(tubercle_distribution)) tuple(li) tubercle_distribution = tubercle_distribution + li sample_source = sample_source.split('\n') # 样本来源 if len(sam_code_num) > len(sample_source): li = [''] * (len(sam_code_num) - len(sample_source)) tuple(li) sample_source = sample_source + li acquisition_time = acquisition_time.split('\n') # 采集时间 if len(sam_code_num) > len(acquisition_time): li = [''] * (len(sam_code_num) - len(acquisition_time)) tuple(li) acquisition_time = acquisition_time + li family_history = family_history.split('\n') # 家族史 if len(sam_code_num) > len(family_history): li = [''] * (len(sam_code_num) - len(family_history)) tuple(li) family_history = family_history + li receiving_time = receiving_time.split('\n') # 收样时间 if len(sam_code_num) > len(receiving_time): li = [''] * (len(sam_code_num) - len(receiving_time)) tuple(li) receiving_time = receiving_time + li sample_count = sample_count.split('\n') # 样本数量 if len(sam_code_num) > len(sample_count): li = [''] * (len(sam_code_num) - len(sample_count)) tuple(li) sample_count = sample_count + li sample_type = sample_type.split('\n') # 样本类型 if len(sam_code_num) > len(sample_type): li = [''] * (len(sam_code_num) - len(sample_type)) tuple(li) sample_type = sample_type + li sample_type_text = sample_type_text.split('\n') # 样本类型描述 if len(sam_code_num) > len(sample_type_text): li = [''] * (len(sam_code_num) - len(sample_type_text)) tuple(li) sample_type_text = sample_type_text + li infection_history = infection_history.split('\n') # 传染病史 if len(sam_code_num) > len(infection_history): li = [''] * (len(sam_code_num) - len(infection_history)) tuple(li) infection_history = infection_history + li # 基因检测史 detected_gene_time = detected_gene_time.split('\n') # 检测时间 if len(sam_code_num) > len(detected_gene_time): li = [''] * (len(sam_code_num) - len(detected_gene_time)) tuple(li) detected_gene_time = detected_gene_time + li detected_gene_name = detected_gene_name.split('\n') # 检测基因 if len(sam_code_num) > len(detected_gene_name): li = [''] * (len(sam_code_num) - len(detected_gene_name)) tuple(li) detected_gene_name = detected_gene_name + li detected_gene_result = detected_gene_result.split('\n') # 检测结果 if len(sam_code_num) > len(detected_gene_result): li = [''] * (len(sam_code_num) - len(detected_gene_result)) tuple(li) detected_gene_result = detected_gene_result + li # 曾有治疗史 treatment_history_surgery = treatment_history_surgery.split( '\n') # 手术 if len(sam_code_num) > len(treatment_history_surgery): li = [''] * (len(sam_code_num) - len(treatment_history_surgery)) tuple(li) treatment_history_surgery = treatment_history_surgery + li treatment_history_chem = treatment_history_chem.split( '\n') # 化疗 if len(sam_code_num) > len(treatment_history_chem): li = ['' ] * (len(sam_code_num) - len(treatment_history_chem)) tuple(li) treatment_history_chem = treatment_history_chem + li treatment_history_therapy = treatment_history_therapy.split( '\n') # 靶向治疗 if len(sam_code_num) > len(treatment_history_therapy): li = [''] * (len(sam_code_num) - len(treatment_history_therapy)) tuple(li) treatment_history_therapy = treatment_history_therapy + li # 合同信息 contract_name = contract_name.split('\n') # 项目编号 if len(sam_code_num) > len(contract_name): li = [''] * (len(sam_code_num) - len(contract_name)) tuple(li) contract_name = contract_name + li contract_pay = contract_pay.split('\n') # 合同金额(人民币) if len(sam_code_num) > len(contract_pay): li = [''] * (len(sam_code_num) - len(contract_pay)) tuple(li) contract_pay = contract_pay + li pay_way = pay_way.split('\n') # 支付方式 if len(sam_code_num) > len(pay_way): li = [''] * (len(sam_code_num) - len(pay_way)) tuple(li) pay_way = pay_way + li pos_code = pos_code.split('\n') # pos单号(交易参考号) if len(sam_code_num) > len(pos_code): li = [''] * (len(sam_code_num) - len(pos_code)) tuple(li) pos_code = pos_code + li Client = Client.split('\n') # 委托人 if len(sam_code_num) > len(Client): li = [''] * (len(sam_code_num) - len(Client)) tuple(li) Client = Client + li remarks = remarks.split('\n') # 其它(备注) if len(sam_code_num) > len(remarks): li = [''] * (len(sam_code_num) - len(remarks)) tuple(li) remarks = remarks + li # 检测方案 cancer_type = cancer_type.split('\n') # 癌种 if len(sam_code_num) > len(cancer_type): li = [''] * (len(sam_code_num) - len(cancer_type)) tuple(li) cancer_type = cancer_type + li detection_type = detection_type.split('\n') # 类型 if len(sam_code_num) > len(detection_type): li = [''] * (len(sam_code_num) - len(detection_type)) tuple(li) detection_type = detection_type + li product_name = product_name.split('\n') # 产品名称 if len(sam_code_num) > len(product_name): li = [''] * (len(sam_code_num) - len(product_name)) tuple(li) product_name = product_name + li is_return = is_return.split('\n') # 剩余样本是否退回 if len(sam_code_num) > len(is_return): li = [''] * (len(sam_code_num) - len(is_return)) tuple(li) is_return = is_return + li is_invoice = is_invoice.split('\n') # 是否需要发票 if len(sam_code_num) > len(is_invoice): li = [''] * (len(sam_code_num) - len(is_invoice)) tuple(li) is_invoice = is_invoice + li TissueSampleSign = TissueSampleSign.split('\n') # 组织样本标记 if len(sam_code_num) > len(TissueSampleSign): li = [''] * (len(sam_code_num) - len(TissueSampleSign)) tuple(li) TissueSampleSign = TissueSampleSign + li for i in range(0, len(sam_code_num)): if sam_code_num[i].strip('\r') not in Sample_list: Sample_list.append(sam_code_num[i].strip('\r')) if not sam_code_num[i].strip('\r') == '': isAlreadyExisted = 1 # 是否存在重复样本编号标志 num_sam += 1 if not i == 0: sam_code_num_list += ',' + sam_code_num[ i].strip('\r') else: sam_code_num_list = sam_code_num[i].strip('\r') # print 'IS:', request.POST.get('is') if TissueSampleSign[i].strip('\r') == IS: isTissueSample = 1 # 组织样本标记 # print '组织样本标记是是是: ', TissueSampleSign[i] else: isTissueSample = 0 # 组织样本标记 # print '组织样本标记: ', TissueSampleSign[i] # 添加数据到数据库 models.clinicalSampleInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 患者信息 sam_code_num=sam_code_num[i].strip( '\r'), # 样本条码号 PatientName=PatientName[i].strip('\r'), # 患者姓名 PatientAge=PatientAge[i].strip( '\r'), # 患者年龄(岁) PatientSex=PatientSex[i].strip('\r'), # 患者性别 PatientBirthday=PatientBirthday[i].strip( '\r'), # 患者身份证号码 PatientPhoneNumber=PatientPhoneNumber[i].strip( '\r'), # 患者联系电话 PatientEmail=PatientEmail[i].strip( '\r'), # 患者电子邮箱 PatientAddress=PatientAddress[i].strip( '\r'), # 报告接收地址 treatment_hospital=treatment_hospital[i].strip( '\r'), # 就诊医院 treatment_department=treatment_department[i]. strip('\r'), # 就诊科室 AttendingDoctor=AttendingDoctor[i].strip( '\r'), # 主治医生 DoctorEmail=DoctorEmail[i].strip('\r'), # 医生邮箱 # 样本信息 Pathological_diagnosis=Pathological_diagnosis[ i].strip('\r'), # 病理诊断 clinical_diagnosis=clinical_diagnosis[i].strip( '\r'), # 临床诊断 Clinical_stage=Clinical_stage[i].strip( '\r'), # 临床分期 is_tubercle_history=is_tubercle_history[i]. strip('\r'), # 结核病史 tubercle_distribution=tubercle_distribution[i]. strip('\r'), # 结节大小和分布 sample_source=sample_source[i].strip( '\r'), # 样本来源 acquisition_time=acquisition_time[i].strip( '\r'), # 采集时间 family_history=family_history[i].strip( '\r'), # 家族史 receiving_time=receiving_time[i].strip( '\r'), # 收样时间 sample_count=sample_count[i].strip( '\r'), # 样本数量 sample_type=sample_type[i].strip('\r'), # 样本类型 sample_type_text=sample_type_text[i].strip( '\r'), # 样本类型描述 infection_history=infection_history[i].strip( '\r'), # 传染病史 # 基因检测史 detected_gene_time=detected_gene_time[i].strip( '\r'), # 检测时间 detected_gene_name=detected_gene_name[i].strip( '\r'), # 检测基因 detected_gene_result=detected_gene_result[i]. strip('\r'), # 检测结果 # 曾有治疗史 treatment_history_surgery= treatment_history_surgery[i].strip('\r'), # 手术 treatment_history_chem=treatment_history_chem[ i].strip('\r'), # 化疗 treatment_history_therapy= treatment_history_therapy[i].strip( '\r'), # 靶向治疗 # 合同信息 contract_name=contract_name[i].strip( '\r'), # 合同名称 contract_pay=contract_pay[i].strip( '\r'), # 合同金额(人民币) pay_way=pay_way[i].strip('\r'), # 支付方式 pos_code=pos_code[i].strip( '\r'), # pos单号(交易参考号) Client=Client[i].strip('\r'), # 委托人 remarks=remarks[i].strip('\r'), # 其它(备注) # 检测方案 cancer_type=cancer_type[i].strip('\r'), # 癌种 detection_type=detection_type[i].strip( '\r'), # 类型 product_name=product_name[i].strip( '\r'), # 产品名称 is_return=is_return[i].strip('\r'), # 剩余样本是否退回 is_invoice=is_invoice[i].strip('\r'), # 是否需要发票 # 审核标记 # contract_review=0, # 合同审核标记 sample_review=sample_review, # 样本审核标记 Pretreatment_Sign=0, # 样本预处理标记 DNAExtract_Sign=0, # DNA提取任务标记 # 样本审核信息 SampleAuditor=SampleAuditor, # 样本审核人 # 组织样本标记 TissueSampleSign=isTissueSample, # 组织样本标记 ) else: # print sam_code_num[i].strip('\r') + '已存在!' if not i == 0: AlreadyExistedList += ',' + sam_code_num[i].strip( '\r') else: AlreadyExistedList = sam_code_num[i].strip('\r') if not isAlreadyExisted == 0: if not sample_review == '': # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:临检样本审核任务' # 系统消息标题 Message = username + '录入一批(共' + str( num_sam ) + '个)临检样本!样本编号分别为:' + sam_code_num_list + '。请尽快完成审核!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=SampleAuditor, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(SampleAuditor, Title, Message) # 发送邮件通知 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 # temp_mySample = models.clinicalSampleInfo.objects.filter(username=username) # 临床样本信息 if department == '管理员': temp_not_audited = models.clinicalSampleInfo.objects.filter( sample_review=0) # 研发样本未审核信息 temp_draft = models.clinicalSampleInfo.objects.filter( sample_review='') # 研发样本草稿信息 temp_return = models.clinicalSampleInfo.objects.filter( sample_review=4) # 研发审核退回样本信息 temp_audited = models.clinicalSampleInfo.objects.filter( sample_review__in=[1, 2, 3]) # 研发样本已审核信息 else: temp_not_audited = models.clinicalSampleInfo.objects.filter( username=username, sample_review=0) # 研发样本未审核信息 temp_draft = models.clinicalSampleInfo.objects.filter( username=username, sample_review='') # 研发样本草稿信息 temp_return = models.clinicalSampleInfo.objects.filter( username=username, sample_review=4) # 研发审核退回样本信息 temp_audited = models.clinicalSampleInfo.objects.filter( username=username, sample_review__in=[1, 2, 3]) # 研发样本已审核信息 return render( request, "modelspage/sample_entry.html", { "userinfo": temp, "not_audited": temp_not_audited, "audited": temp_audited, "draft": temp_draft, "AlreadyExistedList": AlreadyExistedList, "return": temp_return, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def DataAnalysisInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 ExperimentNumber = '' # 实验编号 # 数据分析信息 DataQquality = '' # 数据质量 Effective_sequencing_depth = '' # 有效测序深度 SequencingFileName = '' # Sequencing file name QC_Result = '' # QC result Path_To_Sorted_Deduped_Bam = '' # Path to sorted.deduped.bam Analyser = '' # 分析人 AnalysisTime = '' # 分析时间(系统默认) AnalysisRemarks = '' # 其它(备注) # 其他信息 DNA_extraction_num = '' # DNA提取实验次数 Build_Prelib_num = '' # 预文库构建实验次数 Build_finlib_num = '' # 终文库构建实验次数 Computer_Seq_num = '' # 上机测序实验次数 SampleSource = '' # 样本来源 button_name = '' if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # 判断哪个按钮提交的数据 if request.POST.has_key('ClinSampleDetermine'): button_name = 'ClinSample' SampleSource = '临检样本' # 样本来源 elif request.POST.has_key('RandDSampleDetermine'): button_name = 'RandDSample' SampleSource = '研发样本' # 样本来源 elif request.POST.has_key('submitModify'): button_name = 'submitModify' if button_name == 'ClinSample': # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber print '其他信息: ============================================= ' # DNA提取实验次数 DNA_extraction_num = request.POST.get('DNA_extraction_num') print 'DNA提取实验次数: ', DNA_extraction_num # 预文库构建实验次数 Build_Prelib_num = request.POST.get('Build_Prelib_num') print '预文库构建实验次数: ', Build_Prelib_num # 终文库构建次数 Build_finlib_num = request.POST.get('Build_finlib_num') print '终文库构建次数: ', Build_finlib_num # 上机测序实验次数 Computer_Seq_num = request.POST.get('Computer_Seq_num') print '上机测序实验次数: ', Computer_Seq_num print '数据分析信息: ============================================= ' # 数据质量 DataQquality = request.POST.get('DataQquality') print '数据质量: ', DataQquality # 有效测序深度 Effective_sequencing_depth = request.POST.get( 'Effective_sequencing_depth') print '有效测序深度: ', Effective_sequencing_depth # Sequencing file name SequencingFileName = request.POST.get('SequencingFileName') print 'Sequencing file name: ', SequencingFileName # QC result QC_Result = request.POST.get('QC_Result') print 'QC result: ', QC_Result # Path to sorted.deduped.bam Path_To_Sorted_Deduped_Bam = request.POST.get( 'Path_To_Sorted_Deduped_Bam') print 'Path to sorted.deduped.bam: ', Path_To_Sorted_Deduped_Bam # 分析人 Analyser = request.POST.get('Next_TaskProgress_Man') print '分析人: ', Analyser # 分析时间 AnalysisTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print '分析时间: ', AnalysisTime # 其它(备注) AnalysisRemarks = request.POST.get('AnalysisRemarks') print '其它(备注): ', AnalysisRemarks print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.BioinfoDataAnalysisTaskReview == '1': if not button_name == 'submitModify': temp_Task = models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num) num = len(temp_Task) # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 ExperimentNumber=ExperimentNumber, # 实验编号 # 数据分析信息 DataQquality=DataQquality, # 数据质量 Effective_sequencing_depth= Effective_sequencing_depth, # 有效测序深度 SequencingFileName= SequencingFileName, # Sequencing file name QC_Result=QC_Result, # QC result Path_To_Sorted_Deduped_Bam= Path_To_Sorted_Deduped_Bam, # Path to sorted.deduped.bam Analyser=Analyser, # 分析人 AnalysisTime=AnalysisTime, # 分析时间(系统默认) AnalysisRemarks=AnalysisRemarks, # 其它(备注) # 其他信息 DNA_extraction_num=DNA_extraction_num, # DNA提取实验次数 Build_Prelib_num=Build_Prelib_num, # 预文库构建实验次数 Build_finlib_num=Build_finlib_num, # 终文库构建实验次数 Computer_Seq_num=Computer_Seq_num, # 上机测序实验次数 SampleSource=SampleSource, # 样本来源 DataAnalysis_num=num + 1, # 数据分析次数 Report_Make_Sign=0, # 报告制作标记 BioinfoResult_Sign=0, # 生信分析结果审核标记 Medical_Examine_Sign=0, # 遗传咨询师审核标记 Operate_Examine_Sign=0, # 运营审核标记 Report_Send_Sign=0, # 报告发送标记 ) TaskReceiver = '' # 接收者 if button_name == 'ClinSample': models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Bioinfo_Sign='1') sample = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) TaskReceiver = sample[0].BioTaskAssignment elif button_name == 'RandDSample': models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( Bioinfo_Sign='1') sample = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) TaskReceiver = sample[0].BioTaskAssignment # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:样本生信分析结果审核任务' # 系统消息标题 Message = username + '分派给你一个样本生信分析结果审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 else: # 数据分析次数 DataAnalysis_num = request.POST.get('DataAnalysis_num') print '数据分析次数: ', DataAnalysis_num # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num ).update( # 数据分析信息 DataQquality=DataQquality, # 数据质量 Effective_sequencing_depth= Effective_sequencing_depth, # 有效测序深度 SequencingFileName= SequencingFileName, # Sequencing file name QC_Result=QC_Result, # QC result Path_To_Sorted_Deduped_Bam= Path_To_Sorted_Deduped_Bam, # Path to sorted.deduped.bam AnalysisTime=AnalysisTime, # 分析时间(系统默认) AnalysisRemarks=AnalysisRemarks, # 其它(备注) ) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_unfinished = models.ComputerSeqInfo.objects.filter( Bioinfo_Sign=0, ReviewResult='通过', Next_TaskProgress_Sign='1') # 临检样本 temp_RandD_unfinished = models.RandDSampleComputerSeqInfo.objects.filter( Bioinfo_Sign=0, ReviewResult='通过', Next_TaskProgress_Sign='1') # 研发样本 temp_finished = models.BioinfoDataAnalysisInfo.objects.all() return render( request, "modelspage/BioinfoTaskReview.html", { "userinfo": temp, "unfinished": temp_unfinished, "RandD_unfinished": temp_RandD_unfinished, "finished": temp_finished, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def RandDFinLibConInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 DNA_extraction_num = '' # DNA提取实验次数 PreLibCon_Build_lib_num = '' # 预文库构建实验次数 # 终文库构建信息 PreLibConName = '' # 预文库名称 PoolInternalLibNumber = '' # Pool内文库数目 FinLibConName = '' # 终文库名称 DNA_Concentration = '' # 浓度(ng/µL) DNA_volume = '' # 体积(µL) DNA_Total = '' # DNA总量(ng) Indexi5i7 = '' # Indexi5i7 Panel = '' # 捕获panel Build_lib_time = '' # 建库时间 FinLibCon_storage_location = '' # 终文库存储位置 Build_lib_man = '' # 建库人 SequencingInfo = '' # Sequencing Info Build_lib_remarks = '' # 其它(备注) button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' sam_code_num = request.POST.get('sam_code_num') # 样本条码号 print '样本条码号: ', sam_code_num DNA_extraction_num = request.POST.get('DNA_extraction_num') # DNA提取实验次数 PreLibCon_Build_lib_num = request.POST.get('PreLibCon_Build_lib_num') # 预文库构建实验次数 print '终文库构建信息: ============================================= ' PreLibConName = request.POST.get('PreLibConName') # 预文库名称 PoolInternalLibNumber = request.POST.get('PoolInternalLibNumber') # Pool内文库数目 FinLibConName = request.POST.get('FinLibConName') # 终文库名称 DNA_Concentration = request.POST.get('DNA_Concentration') # 浓度(ng/µL) DNA_volume = request.POST.get('DNA_volume') # 体积(µL) DNA_Total = request.POST.get('DNA_Total') # DNA总量(ng) Indexi5i7 = request.POST.get('Indexi5i7') # Indexi5i7 Panel = request.POST.get('Panel') # 捕获panel Build_lib_time = request.POST.get('Build_lib_time') # 建库时间 FinLibCon_storage_location = request.POST.get('FinLibCon_storage_location') # 终文库存储位置 Build_lib_man = request.POST.get('Build_lib_man') # 建库人 SequencingInfo = request.POST.get('SequencingInfo') # Sequencing Info Build_lib_remarks = request.POST.get('Build_lib_remarks') # 其它(备注) # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.RandDFinLibConInfoInputHomePage == '1': if button_name == 'Determine': temp_FinLibConTask = models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num) num = len(temp_FinLibConTask) # 添加数据到数据库 models.RandDSampleFinLibConInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 # 终文库构建信息 PreLibConName=PreLibConName, # 预文库名称 PoolInternalLibNumber=PoolInternalLibNumber, # Pool内文库数目 FinLibConName=FinLibConName, # 终文库名称 DNA_Concentration=DNA_Concentration, # 浓度(ng/µL) DNA_volume=DNA_volume, # 体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Indexi5i7=Indexi5i7, # Indexi5i7 Panel=Panel, # 捕获panel Build_lib_time=Build_lib_time, # 建库时间 FinLibCon_storage_location=FinLibCon_storage_location, # 终文库存储位置 Build_lib_man=Build_lib_man, # 建库人 SequencingInfo=SequencingInfo, # Sequencing Info Build_lib_remarks=Build_lib_remarks, # 其它(备注) # 其他信息 DNA_extraction_num=DNA_extraction_num, # DNA提取实验次数 Build_Prelib_num=PreLibCon_Build_lib_num, # 预文库构建实验次数 ExperimentTimes=num+1, # 终文库构建实验次数 ComputerSeq_Sign=0, # 上机测序任务标记 Next_TaskProgress_Sign=0 # 下一步任务分配标记 ) models.RandDSamplePreLibConInfo.objects.filter(sam_code_num=sam_code_num, Next_TaskProgress="终文库构建", ExperimentTimes=PreLibCon_Build_lib_num).update(FinalLibCon_Sign='1') # 终文库构建任务信息 # 添加系统消息 taskTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") Title = '通知:研发样本上机测序实验分派任务' # 系统消息标题 Message = username + '分派给你一个研发样本上机测序实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.RandDSampleInfo.objects.get(sam_code_num=sam_code_num) TaskReceiver = sample.TaskAssignment models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 终文库构建次数 Build_finlib_num = request.POST.get('Build_finlib_num') models.RandDSampleFinLibConInfo.objects.filter(sam_code_num=sam_code_num, ExperimentTimes=Build_finlib_num).update( # 终文库构建信息 PreLibConName=PreLibConName, # 预文库名称 PoolInternalLibNumber=PoolInternalLibNumber, # Pool内文库数目 FinLibConName=FinLibConName, # 终文库名称 DNA_Concentration=DNA_Concentration, # 浓度(ng/µL) DNA_volume=DNA_volume, # 体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Indexi5i7=Indexi5i7, # Indexi5i7 Panel=Panel, # 捕获panel Build_lib_time=Build_lib_time, # 建库时间 FinLibCon_storage_location=FinLibCon_storage_location, # 终文库存储位置 Build_lib_man=Build_lib_man, # 建库人 SequencingInfo=SequencingInfo, # Sequencing Info Build_lib_remarks=Build_lib_remarks, # 其它(备注) ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 temp_PreLibConTask = models.RandDSamplePreLibConInfo.objects.filter(Next_TaskProgress="终文库构建", Next_TaskProgress_Sign='1', FinalLibCon_Sign='0') # 终文库构建任务信息 temp_pass = models.RandDSampleFinLibConInfo.objects.all() # 预文库构建任务已完成 return render(request, "modelspage/RandDFinLibConInfoInputHomePage.html", {"userinfo": temp, "data": temp_PreLibConTask, "pass": temp_pass, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread}) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 return render(request, "modelspage/PermissionsPrompt.html", {"userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread})
def RandDComSeqInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 DNA_extraction_num = '' # DNA提取实验次数 Build_Prelib_num = '' # 预文库构建实验次数 Build_finlib_num = '' # 终文库构建实验次数 # 终文库构建信息 PreLibConName = '' # 预文库名称 FinLibConName = '' # 终文库名称 DNA_Concentration = '' # 浓度(ng/µL) DilutionMultiple = '' # 稀释倍数 qPCR = '' # qPCR测量值(pM) AverageLengthLibrary = '' # 文库平均长度(bp) LibEffConcentration = '' # 文库有效浓度(nM) QuantitativeTime = '' # 定量时间 FinLibCon_storage_location = '' # 终文库存储位置 QuantitativeHuman = '' # 定量人 SeqRemarks = '' # 其它(备注) BioTaskAssignment = '' # 接收者 button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' sam_code_num = request.POST.get('sam_code_num') # 样本条码号 print '样本条码号: ', sam_code_num DNA_extraction_num = request.POST.get( 'DNA_extraction_num') # DNA提取实验次数 Build_Prelib_num = request.POST.get('Build_Prelib_num') # 预文库构建实验次数 Build_finlib_num = request.POST.get('Build_finlib_num') # 终文库构建实验次数 print '上机测序信息: ============================================= ' PreLibConName = request.POST.get('PreLibConName') # 预文库名称 FinLibConName = request.POST.get('FinLibConName') # 终文库名称 DNA_Concentration = request.POST.get('DNA_Concentration') # 浓度(ng/µL) DilutionMultiple = request.POST.get('DilutionMultiple') # 稀释倍数 qPCR = request.POST.get('qPCR') # qPCR测量值(pM) AverageLengthLibrary = request.POST.get( 'AverageLengthLibrary') # 文库平均长度(bp) LibEffConcentration = request.POST.get( 'LibEffConcentration') # 文库有效浓度(nM) QuantitativeTime = request.POST.get('QuantitativeTime') # 定量时间 FinLibCon_storage_location = request.POST.get( 'FinLibCon_storage_location') # 终文库存储位置 QuantitativeHuman = request.POST.get('QuantitativeHuman') # 定量人 SeqRemarks = request.POST.get('SeqRemarks') # 其它(备注) BioTaskAssignment = request.POST.get('BioTaskAssignment') # 接收者 # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.RandDComSeqInfoInputHomePage == '1': if button_name == 'Determine': temp_ComSeqTask = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num) num = len(temp_ComSeqTask) # 添加数据到数据库 models.RandDSampleComputerSeqInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 # 上机测序信息 PreLibConName=PreLibConName, # 预文库名称 FinLibConName=FinLibConName, # 终文库名称 DNA_Concentration=DNA_Concentration, # 浓度(ng/µL) DilutionMultiple=DilutionMultiple, # 稀释倍数 qPCR=qPCR, # qPCR测量值(pM) AverageLengthLibrary=AverageLengthLibrary, # 文库平均长度(bp) LibEffConcentration=LibEffConcentration, # 文库有效浓度(nM) QuantitativeTime=QuantitativeTime, # 定量时间 FinLibCon_storage_location= FinLibCon_storage_location, # 终文库存储位置 QuantitativeHuman=QuantitativeHuman, # 定量人 SeqRemarks=SeqRemarks, # 其它(备注) # 其他信息 BioTaskAssignment=BioTaskAssignment, # 生信分析任务分派人 DNA_extraction_num=DNA_extraction_num, # DNA提取实验次数 Build_Prelib_num=Build_Prelib_num, # 预文库构建实验次数 Build_finlib_num=Build_finlib_num, # 终文库构建实验次数 ExperimentTimes=num + 1, # 上机测序实验次数 Bioinfo_Sign=0, # 生信任务标记 Next_TaskProgress_Sign=0, # 下一步任务分配标记 ) models.RandDSampleFinLibConInfo.objects.filter( sam_code_num=sam_code_num, Next_TaskProgress="上机测序", ExperimentTimes=Build_finlib_num).update( ComputerSeq_Sign='1') # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:研发样本生信分析分派任务' # 系统消息标题 Message = username + '分派给你一个研发样本生信分析分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=BioTaskAssignment, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(BioTaskAssignment, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 上机测序实验次数 Computer_Seq_num = request.POST.get('Computer_Seq_num') temp_data = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if not temp_data[ 0].BioTaskAssignment == BioTaskAssignment and temp_data[ 0].Next_TaskProgress_Sign == '0': # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:研发样本生信分析分派任务' # 系统消息标题 Message = username + '分派给你一个研发样本生信分析分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=BioTaskAssignment, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(BioTaskAssignment, Title, Message) # 发送邮件通知 models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( # 上机测序信息 PreLibConName=PreLibConName, # 预文库名称 FinLibConName=FinLibConName, # 终文库名称 DNA_Concentration=DNA_Concentration, # 浓度(ng/µL) DilutionMultiple=DilutionMultiple, # 稀释倍数 qPCR=qPCR, # qPCR测量值(pM) AverageLengthLibrary=AverageLengthLibrary, # 文库平均长度(bp) LibEffConcentration=LibEffConcentration, # 文库有效浓度(nM) QuantitativeTime=QuantitativeTime, # 定量时间 FinLibCon_storage_location= FinLibCon_storage_location, # 终文库存储位置 QuantitativeHuman=QuantitativeHuman, # 定量人 SeqRemarks=SeqRemarks, # 其它(备注) BioTaskAssignment=BioTaskAssignment, # 生信分析任务分派人 ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_PreLibConTask = models.RandDSampleFinLibConInfo.objects.filter( Next_TaskProgress="上机测序", Next_TaskProgress_Sign='1', ComputerSeq_Sign='0') temp_pass = models.RandDSampleComputerSeqInfo.objects.all() return render( request, "modelspage/RandDComSeqInfoInputHomePage.html", { "userinfo": temp, "data": temp_PreLibConTask, "pass": temp_pass, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def Bioinfo_Report_InfoToDataBases(request): Report_File_Name = '' # 报告文件名 # 报告制作信息录入到数据库 # 样本信息 sam_code_num = '' # 样本条码号 ExperimentNumber = '' # 实验编号 DataAnalysis_num = '' # 数据分析次数 # 报告制作信息 Report_Maker = '' # 报告制作人 Report_Make_Time = '' # 报告制作时间 Report_Remarks = '' # 报告备注 GeneticCounselor = '' # 遗传咨询师 button_name = '' if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber # 数据分析次数 DataAnalysis_num = request.POST.get('DataAnalysis_num') print '数据分析次数: ', DataAnalysis_num print '其他信息: ============================================= ' # 报告制作人 Report_Maker = request.POST.get('Report_Maker') print '报告制作人: ', Report_Maker # 报告制作时间 Report_Make_Time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print '报告制作时间: ', Report_Make_Time # 报告备注 Report_Remarks = request.POST.get('Report_Remarks') print '报告备注: ', Report_Remarks GeneticCounselor = request.POST.get('GeneticCounselor') # 遗传咨询师 # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' elif request.POST.has_key('DownloadReport'): button_name = 'DownloadReport' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.BioinfoReportTaskReview == '1': if button_name == 'Determine': # 上传文件 if request.method == "POST": # 请求方法为POST时,进行处理 myFile = request.FILES.get("myfile", None) # 获取上传的文件,如果没有文件,则默认为None if not myFile: return HttpResponse("no files for upload!") if not os.path.exists('./upload'): os.makedirs('./upload') Report_File_Name = myFile.name destination = open(os.path.join("./upload", myFile.name), 'wb+') # 打开特定的文件进行二进制的写操作 if myFile.multiple_chunks() == False: # 使用myFile.read() for read in myFile.read(): # 整个上传 destination.write(read) else: # 使用myFile.chunks() for chunk in myFile.chunks(): # 分块写入文件 destination.write(chunk) destination.close() # return HttpResponse("upload over!") # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter(sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( Report_Maker=Report_Maker, Report_Make_Time=Report_Make_Time, Report_Remarks=Report_Remarks, Report_Make_Sign='1', Report_File_Name=Report_File_Name, GeneticCounselor=GeneticCounselor, Medical_Examine_Sign=0, Operate_Examine_Sign=0, Medical_Examine_Result='', Operate_Examine_Result='', ) # 添加系统消息 Title = '通知:样本报告审核任务' # 系统消息标题 Message = username + '分派给你一个样本报告审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=GeneticCounselor, # 接收者 # 信息内容 Time=Report_Make_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(GeneticCounselor, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': temp_oldData = models.BioinfoDataAnalysisInfo.objects.filter(sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) if not temp_oldData[0].GeneticCounselor == GeneticCounselor and temp_oldData[0].Medical_Examine_Sign == '0': # 添加系统消息 Title = '通知:样本报告审核任务' # 系统消息标题 Message = username + '分派给你一个样本报告审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=GeneticCounselor, # 接收者 # 信息内容 Time=Report_Make_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(GeneticCounselor, Title, Message) # 发送邮件通知 # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter(sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( Report_Maker=Report_Maker, Report_Make_Time=Report_Make_Time, Report_Remarks=Report_Remarks, GeneticCounselor=GeneticCounselor, ) elif button_name == 'DownloadReport': # 显示在弹出对话框中的默认的下载文件名 Report_File_Name = request.POST.get('Report_File_Name') # 报告文件名 print '报告文件名: ', Report_File_Name # the_file_name='11.png' #显示在弹出对话框中的默认的下载文件名 # filename='media/uploads/11.png' # 要下载的文件路径 filename = './upload/' + Report_File_Name # 要下载的文件路径 response = StreamingHttpResponse(ReadFile(filename)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format(Report_File_Name) return response # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 temp_unfinished = models.BioinfoDataAnalysisInfo.objects.filter(Report_Make_Sign=0, BioinfoResult_Sign=1, Examine_Result='通过') temp_Make = models.BioinfoDataAnalysisInfo.objects.filter(Report_Make_Sign=1, BioinfoResult_Sign=1, Medical_Examine_Result='不通过') temp_Operate = models.BioinfoDataAnalysisInfo.objects.filter(Report_Make_Sign=1, BioinfoResult_Sign=1, Operate_Examine_Result='不通过') temp_NoPass = chain(temp_Make, temp_Operate) # 合并所有数据表数据 temp_finished = models.BioinfoDataAnalysisInfo.objects.filter(Report_Make_Sign=1, BioinfoResult_Sign=1) return render(request, "modelspage/Bioinfo_Report_Task_Review.html", {"userinfo": temp, "unfinished": temp_unfinished, "NoPass": temp_NoPass, "finished": temp_finished, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread}) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter(Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 return render(request, "modelspage/PermissionsPrompt.html", {"userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread})
def task_Examine_Operation(request): try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print(r'首页,username: '******'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.BioinfoTaskAssignment == '1': button_name = '' # 按钮名字 sam_code_num = '' Computer_Seq_num = '' # 样本任务分配信息 Next_TaskProgress_Man = '' # 任务接收者 DataPath = '' # 数据下机路径 Next_TaskProgress_Remarks = '' # 任务备注 Next_TaskProgress_Time = '' # 任务分配时间 log = 0 # 是否需要发送邮件通知的标记 if request.method == "POST": print '患者信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num').strip('HT') print '样本条码号: ', sam_code_num # 上机测序实验次数 Computer_Seq_num = request.POST.get('Computer_Seq_num') print '上机测序实验次数: ', Computer_Seq_num # 任务接收者 Next_TaskProgress_Man = request.POST.get( 'Next_TaskProgress_Man') print '任务接收者: ', Next_TaskProgress_Man # 任务备注 Next_TaskProgress_Remarks = request.POST.get( 'Next_TaskProgress_Remarks') print '任务备注: ', Next_TaskProgress_Remarks # 数据下机路径 DataPath = request.POST.get('DataPath') print '数据下机路径: ', DataPath # 任务分配时间 Next_TaskProgress_Time = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") # taskTime = getBeijinTime() print '任务分配时间: ', Next_TaskProgress_Time # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('RandDDetermine'): button_name = 'RandDDetermine' elif request.POST.has_key('Return'): button_name = 'Return' elif request.POST.has_key('RandDReturn'): button_name = 'RandDReturn' elif request.POST.has_key('Suspend'): button_name = 'Suspend' elif request.POST.has_key('RandDSuspend'): button_name = 'RandDSuspend' elif request.POST.has_key('Stop'): button_name = 'Stop' elif request.POST.has_key('RandDStop'): button_name = 'RandDStop' elif request.POST.has_key('Clin_submitModify'): log = 1 ReviewResult = request.POST.get('ReviewResult') if ReviewResult == '通过': button_name = 'Determine' elif ReviewResult == '退回': button_name = 'Return' elif ReviewResult == '暂停': button_name = 'Suspend' elif ReviewResult == '终止': button_name = 'Stop' elif request.POST.has_key('RandD_submitModify'): log = 1 ReviewResult = request.POST.get('ReviewResult') if ReviewResult == '通过': button_name = 'RandDDetermine' elif ReviewResult == '退回': button_name = 'Return' elif ReviewResult == '暂停': button_name = 'RandDSuspend' elif ReviewResult == '终止': button_name = 'RandDStop' # 修改数据库合同信息状态 if button_name == 'Determine': if log == 0: # 添加系统消息 Title = '通知:生信分析任务' # 系统消息标题 Message = username + '分派给你一个生信分析任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 elif log == 1: temp_data = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if not temp_data[ 0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[ 0].Bioinfo_Sign == 0: # 添加系统消息 Title = '通知:生信分析任务' # 系统消息标题 Message = username + '分派给你一个生信分析任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 # 任务已分配 models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( ReviewResult='通过', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'RandDDetermine': if log == 0: # 添加系统消息 Title = '通知:研发样本生信分析任务' # 系统消息标题 Message = username + '分派给你一个研发样本生信分析任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 elif log == 1: temp_data = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if not temp_data[ 0].Next_TaskProgress_Man == Next_TaskProgress_Man and temp_data[ 0].Bioinfo_Sign == 0: # 添加系统消息 Title = '通知:研发样本生信分析任务' # 系统消息标题 Message = username + '分派给你一个研发样本生信分析任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=Next_TaskProgress_Man, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(Next_TaskProgress_Man, Title, Message) # 发送邮件通知 models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num).update( ReviewResult='通过', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'Return': temp_data = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if temp_data[0].Bioinfo_Sign == '0': # 添加系统消息 Title = '通知:研发样本测序重测任务' # 系统消息标题 Message = username + '退回给你一个研发样本测序重测任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=temp_data[0].username, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(temp_data[0].username, Title, Message) # 发送邮件通知 # 任务退回 models.FinLibConInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=temp_data[0].Build_finlib_num ).update( ComputerSeq_Sign='0', Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, ) # 任务已分配 models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( ReviewResult='退回', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'RandDReturn': temp_data = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if temp_data[0].Bioinfo_Sign == '0': # 添加系统消息 Title = '通知:研发样本测序重测任务' # 系统消息标题 Message = username + '退回给你一个研发样本测序重测任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=temp_data[0].username, # 接收者 # 信息内容 Time=Next_TaskProgress_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(temp_data[0].username, Title, Message) # 发送邮件通知 # 任务退回 models.RandDSampleFinLibConInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=temp_data[0].Build_finlib_num ).update( ComputerSeq_Sign='0', Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, Next_TaskProgress_Time=Next_TaskProgress_Time, ) # 任务已分配 models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( ReviewResult='退回', Next_TaskProgress_Sign='1', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'Suspend': temp_data = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if temp_data[0].Bioinfo_Sign == '0': # 任务暂停 models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( ReviewResult='暂停', Next_TaskProgress_Sign='2', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'RandDSuspend': temp_data = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if temp_data[0].Bioinfo_Sign == '0': # 任务暂停 models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( ReviewResult='暂停', Next_TaskProgress_Sign='2', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'Stop': temp_data = models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if temp_data[0].Bioinfo_Sign == '0': # 任务暂停 models.ComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( ReviewResult='终止', Next_TaskProgress_Sign='3', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) elif button_name == 'RandDStop': temp_data = models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num) if temp_data[0].Bioinfo_Sign == '0': # 任务终止 models.RandDSampleComputerSeqInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=Computer_Seq_num ).update( ReviewResult='终止', Next_TaskProgress_Sign='3', Next_TaskProgress_Man=Next_TaskProgress_Man, DataPath=DataPath, Next_TaskProgress_Time=Next_TaskProgress_Time, Next_TaskProgress_Remarks=Next_TaskProgress_Remarks, ) # 从数据里取出某条记录 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 # 临检样本 temp_Clin_not_audited = models.ComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='0') # 上机测序任务未分派 temp_Clin_audited = models.ComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='1') # 上机测序任务已分派 temp_Clin_Suspend = models.ComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='2') # 上机测序任务已分派 temp_Clin_Stop = models.ComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='3') # 上机测序任务已分派 # 研发样本 temp_RandD_not_audited = models.RandDSampleComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='0') # 上机测序任务未分派 temp_RandD_audited = models.RandDSampleComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='1') # 上机测序任务已分派 temp_RandD_Suspend = models.RandDSampleComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='2') # 上机测序任务已分派 temp_RandD_Stop = models.RandDSampleComputerSeqInfo.objects.filter( Next_TaskProgress_Sign='3') # 上机测序任务已分派 return render( request, "modelspage/BioinfoTaskAssignment.html", { "userinfo": temp, "Clin_not_audited": temp_Clin_not_audited, "Clin_audited": temp_Clin_audited, "Clin_Suspend": temp_Clin_Suspend, "Clin_Stop": temp_Clin_Stop, "RandD_not_audited": temp_RandD_not_audited, "RandD_audited": temp_RandD_audited, "RandD_Suspend": temp_RandD_Suspend, "RandD_Stop": temp_RandD_Stop, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def RandDPretreatmentInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 # 样本预处理信息 Plasma_volume = '' # 血浆总体积(mL) Division_Tube_Number = '' # 分装管数 number_of_white_blood_cells = '' # 白细胞分离管数 isHemolysis = '' # 是否溶血 isFatBlood = '' # 是否脂血 Type_of_blood_vessel = '' # 采血管类型 Blood_sharing_time = '' # 分血时间 Pretreatment_remarks = '' # 其它(备注) button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本预处理信息: ============================================= ' Plasma_volume = request.POST.get('Plasma_volume') # 血浆总体积(mL) Division_Tube_Number = request.POST.get('Division_Tube_Number') # 分装管数 number_of_white_blood_cells = request.POST.get( 'number_of_white_blood_cells') # 白细胞分离管数 isHemolysis = request.POST.get('isHemolysis') # 是否溶血 isFatBlood = request.POST.get('isFatBlood') # 是否脂血 Type_of_blood_vessel = request.POST.get( 'Type_of_blood_vessel') # 采血管类型 Blood_sharing_time = request.POST.get('Blood_sharing_time') # 分血时间 Pretreatment_remarks = request.POST.get( 'Pretreatment_remarks') # 其它(备注) # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.RandDPretreatmentInfoInputHomePage == '1': if button_name == 'Determine': # 添加数据到数据库 models.RandDSamplePretreatmentInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 # 样本预处理信息 Plasma_volume=Plasma_volume, # 血浆总体积(mL) Division_Tube_Number=Division_Tube_Number, # 分装管数 number_of_white_blood_cells= number_of_white_blood_cells, # 白细胞分离管数 isHemolysis=isHemolysis, # 是否溶血 isFatBlood=isFatBlood, # 是否脂血 Type_of_blood_vessel=Type_of_blood_vessel, # 采血管类型 Blood_sharing_time=Blood_sharing_time, # 分血时间 Pretreatment_remarks=Pretreatment_remarks, # 其它(备注) # 其他信息 Next_TaskProgress_Sign=0, # 审核标志 Next_TaskProgress="样本预处理", # 任务进度 DNAExtract_Sign=0, # DNA提取任务标记 ) models.RandDSampleInfo.objects.filter( sam_code_num=sam_code_num).update(Pretreatment_Sign=1) # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:研发样本DNA提取实验分派任务' # 系统消息标题 Message = username + '分派给你一个研发样本DNA提取实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.RandDSampleInfo.objects.get( sam_code_num=sam_code_num) TaskReceiver = sample.TaskAssignment models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 添加数据到数据库 models.RandDSamplePretreatmentInfo.objects.filter( sam_code_num=sam_code_num).update( # 样本预处理信息 Plasma_volume=Plasma_volume, # 血浆总体积(mL) Division_Tube_Number=Division_Tube_Number, # 分装管数 number_of_white_blood_cells= number_of_white_blood_cells, # 白细胞分离管数 isHemolysis=isHemolysis, # 是否溶血 isFatBlood=isFatBlood, # 是否脂血 Type_of_blood_vessel=Type_of_blood_vessel, # 采血管类型 Blood_sharing_time=Blood_sharing_time, # 分血时间 Pretreatment_remarks=Pretreatment_remarks, # 其它(备注) ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_PretreatmentTask = models.RandDSampleInfo.objects.filter( Pretreatment_Sign=0, Next_TaskProgress_Sign='1', TissueSampleSign=0) # 样本预处理信息 Pending_audit = models.RandDSamplePretreatmentInfo.objects.all( ) # 所有已完预处理数据信息 return render( request, "modelspage/RandDPretreatmentInfoInputHomePage.html", { "userinfo": temp, "data": temp_PretreatmentTask, "Pending_audit": Pending_audit, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def DNAExtractInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本条码号 ExperimentNumber = '' # 实验编号 # DNA提取信息 DNA_Concentration = '' # DNA浓度(ng/µL) DNA_volume = '' # DNA体积(µL) DNA_Total = '' # DNA总量(ng) Quality_inspection_method = '' # 质检方法 Quality_inspection_result = '' # 质检结果 Quality_inspection_volume = '' # 质检使用体积(µL) Residual_volume = '' # 剩余体积(µL) Extraction_kit_type = '' # 提取试剂盒类型 DNA_extraction_people = '' # DNA提取人 DNA_extraction_time = '' # 提取时间 DNA_extraction_remarks = '' # 其它(备注) button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber print 'DNA提取信息: ============================================= ' # DNA浓度 DNA_Concentration = request.POST.get('DNA_Concentration') print 'DNA浓度: ', DNA_Concentration # DNA体积 DNA_volume = request.POST.get('DNA_volume') print 'DNA体积: ', DNA_volume # DNA总量 DNA_Total = request.POST.get('DNA_Total') print 'DNA总量: ', DNA_Total # 质检方法 Quality_inspection_method = request.POST.get( 'Quality_inspection_method') print '质检方法: ', Quality_inspection_method # 质检结果 Quality_inspection_result = request.POST.get( 'Quality_inspection_result') print '质检结果: ', Quality_inspection_result # 质检使用体积 Quality_inspection_volume = request.POST.get( 'Quality_inspection_volume') print '质检使用体积: ', Quality_inspection_volume # 剩余体积 Residual_volume = request.POST.get('Residual_volume') print '剩余体积: ', Residual_volume # 提取试剂盒类型 Extraction_kit_type = request.POST.get('Extraction_kit_type') print '提取试剂盒类型: ', Extraction_kit_type # DNA提取人 DNA_extraction_people = request.POST.get('DNA_extraction_people') print 'DNA提取人: ', DNA_extraction_people # 提取时间 DNA_extraction_time = request.POST.get('DNA_extraction_time') print '提取时间: ', DNA_extraction_time # 其它(备注) DNA_extraction_remarks = request.POST.get('DNA_extraction_remarks') print '其它(备注): ', DNA_extraction_remarks # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.DNAExtractTaskReview == '1': if button_name == 'Determine': temp_DNAExtractTask = models.DNAExtractInfo.objects.filter( sam_code_num=sam_code_num) # DNA提取样本信息 num = len(temp_DNAExtractTask) # 添加数据到数据库 models.DNAExtractInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 ExperimentNumber=ExperimentNumber, # 实验编号 # DNA提取信息 DNA_Concentration=DNA_Concentration, # DNA浓度(ng/µL) DNA_volume=DNA_volume, # DNA体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Quality_inspection_method=Quality_inspection_method, # 质检方法 Quality_inspection_result=Quality_inspection_result, # 质检结果 Quality_inspection_volume= Quality_inspection_volume, # 质检使用体积(µL) Residual_volume=Residual_volume, # 剩余体积(µL) Extraction_kit_type=Extraction_kit_type, # 提取试剂盒类型 DNA_extraction_people=DNA_extraction_people, # DNA提取人 DNA_extraction_time=DNA_extraction_time, # 提取时间 DNA_extraction_remarks=DNA_extraction_remarks, # 其它(备注) # 其他信息 ExperimentTimes=num + 1, # DNA提取实验次数 Next_TaskProgress_Sign=0, # 审核标志 Next_TaskProgress='DNA提取', # 任务进度 PreLibCon_Sign=0 # 预文库构建任务标记 ) models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update(DNAExtract_Sign='1') models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num).update(DNAExtract_Sign='1') # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:临检样本预文库构建实验分派任务' # 系统消息标题 Message = username + '分派给你一个临检样本预文库构建实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.clinicalSampleInfo.objects.get( sam_code_num=sam_code_num) TaskReceiver = sample.TaskAssignment models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # DNA提取实验次数 DNA_extraction_num = request.POST.get('DNA_extraction_num') models.DNAExtractInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num ).update( # DNA提取信息 DNA_Concentration=DNA_Concentration, # DNA浓度(ng/µL) DNA_volume=DNA_volume, # DNA体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) Quality_inspection_method=Quality_inspection_method, # 质检方法 Quality_inspection_result=Quality_inspection_result, # 质检结果 Quality_inspection_volume= Quality_inspection_volume, # 质检使用体积(µL) Residual_volume=Residual_volume, # 剩余体积(µL) Extraction_kit_type=Extraction_kit_type, # 提取试剂盒类型 DNA_extraction_people=DNA_extraction_people, # DNA提取人 DNA_extraction_time=DNA_extraction_time, # 提取时间 DNA_extraction_remarks=DNA_extraction_remarks, # 其它(备注) ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_not_Pretreatment = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=1, TissueSampleSign=1, DNAExtract_Sign=0) # 任务已分配信息 temp_Pretreatment = models.clinicalSamplePretreatment.objects.filter( DNAExtract_Sign=0, Next_TaskProgress_Sign=1) # 任务已分配信息 temp_DNAExtractTask = chain(temp_not_Pretreatment, temp_Pretreatment) # 合并所有数据表数据 Pending_audit = models.DNAExtractInfo.objects.all( ) # 所有已完成DNA提取数据信息 return render( request, "modelspage/DNAExtractTaskReview.html", { "userinfo": temp, "data": temp_DNAExtractTask, "Pending_audit": Pending_audit, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def Bioinfo_Report_Medical_Audit_InfoToDataBases(request): button_name = '' # 按钮名字 Report_File_Name = request.POST.get('Report_File_Name') # 报告文件名 # 判断哪个按钮提交的数据 if request.POST.has_key('download'): button_name = 'download' elif request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' # 报告制作信息录入到数据库 # 样本信息 sam_code_num = '' # 样本条码号 ExperimentNumber = '' # 实验编号 DataAnalysis_num = '' # 数据分析次数 # 遗传咨询师审核报告信息 Medical_Examine_Result = '' # 审核结果 Medical_Examine_Time = '' # 审核时间 Medical_Examine_Remarks = '' # 审核备注 Operater = '' # 运营审核人 NoPass = '' # 不通过 if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本条码号: ', sam_code_num # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber # 数据分析次数 DataAnalysis_num = request.POST.get('DataAnalysis_num') print '数据分析次数: ', DataAnalysis_num print '其他信息: ============================================= ' # 审核结果 Medical_Examine_Result = request.POST.get('Medical_Examine_Result') print '审核结果: ', Medical_Examine_Result # 审核时间 Medical_Examine_Time = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") print '审核时间: ', Medical_Examine_Time # 审核备注 Medical_Examine_Remarks = request.POST.get('Medical_Examine_Remarks') print '审核备注: ', Medical_Examine_Remarks Operater = request.POST.get('Operater') # 运营审核人 # 不通过 NoPass = request.POST.get('NoPass') print '不通过: ', NoPass print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter(username=username) # 用户信息 if button_name == 'download': print '报告文件名: ', Report_File_Name filename = './upload/' + Report_File_Name # 要下载的文件路径 response = StreamingHttpResponse(ReadFile(filename)) response['Content-Type'] = 'application/octet-stream' response[ 'Content-Disposition'] = 'attachment;filename="{0}"'.format( Report_File_Name) return response elif button_name == 'Determine': temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.BioinfoReportMedicalAuditTaskReview == '1': # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( Medical_Examine_Result=Medical_Examine_Result, Medical_Examine_Time=Medical_Examine_Time, Medical_Examine_Remarks=Medical_Examine_Remarks, Medical_Examine_Sign='1', Operater=Operater, ) if Medical_Examine_Result == '通过': # 添加系统消息 Title = '通知:生信报告审核任务' # 系统消息标题 Message = username + '分派给你一个生信报告审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 user = Operater else: # 添加系统消息 Title = '通知:生信报告重制作任务' # 系统消息标题 Message = username + '分派给你一个生信报告重制作任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.BioinfoDataAnalysisInfo.objects.get( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) user = sample.ReportMakeTask_Man models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=user, # 接收者 # 信息内容 Time=Medical_Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(user, Title, Message) # 发送邮件通知 temp_unfinished = models.BioinfoDataAnalysisInfo.objects.filter( Report_Make_Sign=1, Medical_Examine_Sign=0) temp_finished = models.BioinfoDataAnalysisInfo.objects.filter( Report_Make_Sign=1, Medical_Examine_Sign=1) return render( request, "modelspage/Bioinfo_Report_Medical_Audit_Task_Review.html", { "userinfo": temp, "unfinished": temp_unfinished, "finished": temp_finished, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) elif button_name == 'submitModify': temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.BioinfoReportMedicalAuditTaskReview == '1': temp_OldData = models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) if Medical_Examine_Result == '通过': if not temp_OldData[0].Medical_Examine_Result == Medical_Examine_Result and \ temp_OldData[0].Operate_Examine_Result == '' or not \ temp_OldData[0].Operater == Operater: # 添加系统消息 Title = '通知:生信报告审核任务' # 系统消息标题 Message = username + '分派给你一个生信报告审核任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 user = Operater models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=user, # 接收者 # 信息内容 Time=Medical_Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(user, Title, Message) # 发送邮件通知 elif Medical_Examine_Result == '不通过': if not temp_OldData[ 0].Medical_Examine_Result == Medical_Examine_Result: # 添加系统消息 Title = '通知:生信报告重制作任务' # 系统消息标题 Message = username + '分派给你一个生信报告重制作任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.BioinfoDataAnalysisInfo.objects.get( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num) user = sample.ReportMakeTask_Man models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=user, # 接收者 # 信息内容 Time=Medical_Examine_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(user, Title, Message) # 发送邮件通知 # 添加数据到数据库 models.BioinfoDataAnalysisInfo.objects.filter( sam_code_num=sam_code_num, DataAnalysis_num=DataAnalysis_num).update( Medical_Examine_Result=Medical_Examine_Result, Medical_Examine_Time=Medical_Examine_Time, Medical_Examine_Remarks=Medical_Examine_Remarks, Medical_Examine_Sign='1', Operater=Operater, ) temp_unfinished = models.BioinfoDataAnalysisInfo.objects.filter( Report_Make_Sign=1, Medical_Examine_Sign=0) temp_finished = models.BioinfoDataAnalysisInfo.objects.filter( Report_Make_Sign=1, Medical_Examine_Sign=1) return render( request, "modelspage/Bioinfo_Report_Medical_Audit_Task_Review.html", { "userinfo": temp, "unfinished": temp_unfinished, "finished": temp_finished, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def contract_Examine_Operation(request): try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print(r'首页,username: '******'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.contractReview == '1': button_name = '' # 按钮名字 sam_code_num = '' ExperimentNumber = '' # 实验编号 # 合同审核信息 Receivables = '' # 收款金额 ReceivablesDate = '' # 收款时间 contract_Time = '' # 财务审核时间 ExperimentTimes = '' # 实验次数 contractReviewReason = '' # 财务审核备注 if request.method == "POST": print '患者信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num').strip('HT') print '样本条码号: ', sam_code_num # 实验编号 ExperimentNumber = request.POST.get('ExperimentNumber') print '实验编号: ', ExperimentNumber # 收款金额 Receivables = request.POST.get('Receivables') print '收款金额: ', Receivables # 收款时间 ReceivablesDate = request.POST.get('ReceivablesDate') print '收款时间: ', ReceivablesDate # 财务审核时间 contract_Time = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") print '财务审核时间: ', contract_Time # 财务审核备注 contractReviewReason = request.POST.get('contractReviewReason') print '财务审核备注: ', contractReviewReason # 判断哪个按钮提交的数据 if request.POST.has_key('pass'): button_name = 'pass' elif request.POST.has_key('Not_pass'): button_name = 'Not_pass' elif request.POST.has_key('submitModify'): button_name = 'submitModify' if button_name == 'pass': # 通过审核 models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update(contract_review='1') # 修改数据库合同信息状态 temp_contractReview = models.contractReviewInfo.objects.filter( sam_code_num=sam_code_num) # DNA提取样本信息 num = len(temp_contractReview) # 添加数据到数据库 models.contractReviewInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 ExperimentNumber=ExperimentNumber, # 实验编号 # 合同审核信息 Receivables=Receivables, # 收款金额 ReceivablesDate=ReceivablesDate, # 收款时间 contract_Time=contract_Time, # 财务审核时间 contractReviewReason=contractReviewReason, # 财务审核备注 # 其他信息 ExperimentTimes=num + 1 # 财务审核次数 ) models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update(contract_Times=num + 1) elif button_name == 'Not_pass': # 修改数据库合同信息状态 temp_contractReview = models.contractReviewInfo.objects.filter( sam_code_num=sam_code_num) # DNA提取样本信息 num = len(temp_contractReview) # 添加数据到数据库 models.contractReviewInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本条码号 ExperimentNumber=ExperimentNumber, # 实验编号 # 合同审核信息 Receivables=Receivables, # 收款金额 ReceivablesDate=ReceivablesDate, # 收款时间 contract_Time=contract_Time, # 财务审核时间 contractReviewReason=contractReviewReason, # 财务审核备注 # 其他信息 ExperimentTimes=num + 1 # 财务审核次数 ) models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update(contract_Times=num + 1) # 不通过审核 models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update(contract_review='2') sample = models.clinicalSampleInfo.objects.get( sam_code_num=sam_code_num) user = sample.SampleAuditor # 添加系统消息 Title = '通知:临检样本合同审核不通过' # 系统消息标题 Message = username + '已经对样本编号为:‘' + sam_code_num + '’的样本合同审核完成,审核结果为不通过!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=user, # 接收者 # 信息内容 Time=contract_Time, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(user, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 实验次数 contract_Times = request.POST.get('contract_Times') print '实验次数111submitModify: ', contract_Times # 添加数据到数据库 models.contractReviewInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=contract_Times, ).update( # 合同审核信息 Receivables=Receivables, # 收款金额 ReceivablesDate=ReceivablesDate, # 收款时间 contract_Time=contract_Time, # 财务审核时间 contractReviewReason=contractReviewReason, # 财务审核备注 ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_not_audited = models.clinicalSampleInfo.objects.filter( contract_review=0) # 临床样本未审核信息 temp_pass = models.clinicalSampleInfo.objects.filter( contract_review=1) # 临床样本已通过审核信息 temp_not_pass = models.clinicalSampleInfo.objects.filter( contract_review=2) # 临床样本不通过审核信息 return render( request, "modelspage/contract_review.html", { "userinfo": temp, "data": temp_not_audited, "pass": temp_pass, "Not_pass": temp_not_pass, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def task_Examine_Operation(request): try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print(r'首页,username: '******'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.clinicalExperimentalTaskAssignment == '1': button_name = '' # 按钮名字 sam_code_num = '' # 样本任务分配信息 TaskReceiver = '' # 任务接收者 taskRemarks = '' # 任务备注 TaskProgress = '' # 任务进度 taskTime = '' # 任务分配时间 if request.method == "POST": print '患者信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num').strip('HT') print '样本条码号: ', sam_code_num # 任务接收者 TaskReceiver = request.POST.get('TaskReceiver') print '任务接收者: ', TaskReceiver # 任务备注 taskRemarks = request.POST.get('taskRemarks') print '任务备注: ', taskRemarks # 任务进度 TaskProgress = request.POST.get('TaskProgress') print '任务进度: ', TaskProgress # 任务分配时间 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") # taskTime = getBeijinTime() print '任务分配时间: ', taskTime # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('Suspend'): button_name = 'Suspend' elif request.POST.has_key('Stop'): button_name = 'Stop' elif request.POST.has_key('submitModify'): button_name = 'submitModify' temp_SamplePretreatmentInfo = models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num) # 修改数据库合同信息状态 if button_name == 'Determine': # 任务已分配 if len(temp_SamplePretreatmentInfo) == 0: models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Sign='1', Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) else: models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Sign='1', Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) # 添加系统消息 Title = '通知:临检样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个临检样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # 任务已分配 if len(temp_SamplePretreatmentInfo) == 0: temp_data = models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num) if not temp_data[ 0].Next_TaskProgress_Man == TaskReceiver and temp_data[ 0].DNAExtract_Sign == '0': # 添加系统消息 Title = '通知:临检样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个临检样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) else: temp_data = models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num) if not temp_data[ 0].Next_TaskProgress_Man == TaskReceiver and temp_data[ 0].DNAExtract_Sign == '0': # 添加系统消息 Title = '通知:临检样本DNA提取任务' # 系统消息标题 Message = username + '分派给你一个临检样本DNA提取任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) elif button_name == 'Suspend': # 任务暂停 if len(temp_SamplePretreatmentInfo) == 0: models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Sign='2', Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) else: models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Sign='2', Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) elif button_name == 'Stop': # 任务终止 if len(temp_SamplePretreatmentInfo) == 0: models.clinicalSampleInfo.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Sign='3', Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) else: models.clinicalSamplePretreatment.objects.filter( sam_code_num=sam_code_num).update( Next_TaskProgress_Sign='3', Next_TaskProgress_Man=TaskReceiver, Next_TaskProgress_Remarks=taskRemarks, Next_TaskProgress_Time=taskTime, Next_TaskProgress=TaskProgress, ) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) # 预处理任务列表 # Pretreatment_not_audited = models.clinicalSampleInfo.objects.filter(Next_TaskProgress_Sign=0) # 任务未分配信息 # Pretreatment_audited = models.clinicalSampleInfo.objects.filter(Next_TaskProgress_Sign=1) # 任务已分配信息 Pretreatment_not_audited = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=0, sample_review=1, TissueSampleSign=0) # 任务未分配信息 Pretreatment_audited = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=1, sample_review=1, TissueSampleSign=0) # 任务已分配信息 # DNA提取任务列表 # DNA_not_audited = models.clinicalSamplePretreatment.objects.filter(Next_TaskProgress_Sign=0) # 任务未分配信息 # DNA_audited = models.clinicalSamplePretreatment.objects.filter(Next_TaskProgress_Sign=1) # 任务已分配信息 temp_not_Pretreatment = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=0, sample_review=1, TissueSampleSign=1) # 任务未分配信息 temp_Pretreatment = models.clinicalSamplePretreatment.objects.filter( Next_TaskProgress_Sign=0) # 任务未分配信息 DNA_not_audited = chain(temp_not_Pretreatment, temp_Pretreatment) # 合并所有数据表数据 temp_not_Pretreatment_audited = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=1, sample_review=1, TissueSampleSign=1) # 任务已分配信息 temp_Pretreatment_audited = models.clinicalSamplePretreatment.objects.filter( Next_TaskProgress_Sign=1) # 任务已分配信息 DNA_audited = chain(temp_not_Pretreatment_audited, temp_Pretreatment_audited) # 合并所有数据表数据 # 预文库构建任务列表 temp_Fin_unaud = models.clinicalSampleInfo.objects.filter( contract_review=0, sample_review=1, ) # 财务未审核信息 temp_Fin_NoPass = models.clinicalSampleInfo.objects.filter( contract_review=2, sample_review=1) # 财务审核不通过信息 PreLibCon_not_audited = models.DNAExtractInfo.objects.filter( Next_TaskProgress_Sign=0) # 任务未分配信息 PreLibCon_audited = models.DNAExtractInfo.objects.filter( Next_TaskProgress_Sign=1) # 任务已分配信息 # 终文库构建任务列表 FinLibCon_not_audited = models.PreLibConInfo.objects.filter( Next_TaskProgress_Sign=0) # 任务未分配信息 FinLibCon_audited = models.PreLibConInfo.objects.filter( Next_TaskProgress_Sign=1) # 任务已分配信息 # 上机测序任务列表 ComputerSeq_not_audited = models.FinLibConInfo.objects.filter( Next_TaskProgress_Sign=0) # 任务未分配信息 ComputerSeq_audited = models.FinLibConInfo.objects.filter( Next_TaskProgress_Sign=1) # 任务已分配信息 # 其他信息列表 # 任务暂停信息 temp_Pretreatment = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=2, sample_review=1) # 预处理任务暂停信息 temp_DNAExtract = models.clinicalSamplePretreatment.objects.filter( Next_TaskProgress_Sign=2) # DNA提取任务暂停信息 temp_PreLibCon = models.DNAExtractInfo.objects.filter( Next_TaskProgress_Sign=2) # 预文库构建任务暂停信息 temp_FinLibCon = models.PreLibConInfo.objects.filter( Next_TaskProgress_Sign=2) # 终文库构建任务暂停信息 temp_SeqCom = models.FinLibConInfo.objects.filter( Next_TaskProgress_Sign=2) # 上机测序任务暂停信息 temp_suspend = chain(temp_Pretreatment, temp_DNAExtract, temp_PreLibCon, temp_FinLibCon, temp_SeqCom) # 合并所有数据表数据 # 任务终止信息 # temp_stop = models.clinicalSampleInfo.objects.filter(Next_TaskProgress_Sign=3) # 任务终止信息 temp_Pretreatment_stop = models.clinicalSampleInfo.objects.filter( Next_TaskProgress_Sign=3, sample_review=1) # 预处理任务终止信息 temp_DNAExtract_stop = models.clinicalSamplePretreatment.objects.filter( Next_TaskProgress_Sign=3) # DNA提取任务终止信息 temp_PreLibCon_stop = models.DNAExtractInfo.objects.filter( Next_TaskProgress_Sign=3) # 预文库构建任务终止信息 temp_FinLibCon_stop = models.PreLibConInfo.objects.filter( Next_TaskProgress_Sign=3) # 终文库构建任务终止信息 temp_SeqCom_stop = models.FinLibConInfo.objects.filter( Next_TaskProgress_Sign=3) # 上机测序任务终止信息 temp_stop = chain(temp_Pretreatment_stop, temp_DNAExtract_stop, temp_PreLibCon_stop, temp_FinLibCon_stop, temp_SeqCom_stop) # 合并所有数据表数据 return render( request, "modelspage/clinicalExperimentalTaskAssignment.html", { "userinfo": temp, "Pretreatment_not_audited": Pretreatment_not_audited, "Pretreatment_audited": Pretreatment_audited, "DNA_not_audited": DNA_not_audited, "DNA_audited": DNA_audited, "PreLibCon_not_audited": PreLibCon_not_audited, "PreLibCon_audited": PreLibCon_audited, "FinLibCon_not_audited": FinLibCon_not_audited, "FinLibCon_audited": FinLibCon_audited, "ComputerSeq_not_audited": ComputerSeq_not_audited, "ComputerSeq_audited": ComputerSeq_audited, "Fin_unaud": temp_Fin_unaud, "Fin_NoPass": temp_Fin_NoPass, "suspend": temp_suspend, "stop": temp_stop, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })
def RandDDNAExtractInfoToDataBases(request): # 样本信息 sam_code_num = '' # 样本编号 # DNA提取信息 DNASampleName = '' # DNA样品名称 PlasmaVolume = '' # 血浆体积(mL) QuantitativeMethod = '' # 定量方式 DNA_Concentration = '' # DNA浓度(ng/µL) DNA_volume = '' # DNA体积(µL) DNA_Total = '' # DNA总量(ng) A260_A280 = '' # A260/A280 A260_A230 = '' # A260/A230 Extraction_kit_type = '' # 提取试剂盒类型 DNA_extraction_time = '' # 提取时间 Quality_inspection_method = '' # 质检方式 Quality_inspection_result = '' # 质检结果 Glue_map_link = '' # 胶图链接 DNA_storage_location = '' # DNA存储位置 DNA_extraction_Operator = '' # DNA提取人 DNA_extraction_remarks = '' # 其它(备注) button_name = '' # 按钮名字 if request.method == "POST": print '样本信息: ============================================= ' # 样本条码号 sam_code_num = request.POST.get('sam_code_num') print '样本编号: ', sam_code_num print 'DNA提取信息: ============================================= ' DNASampleName = request.POST.get('DNASampleName') # DNA样品名称 PlasmaVolume = request.POST.get('PlasmaVolume') # 血浆体积(mL) QuantitativeMethod = request.POST.get('QuantitativeMethod') # 定量方式 DNA_Concentration = request.POST.get( 'DNA_Concentration') # DNA浓度(ng/µL) DNA_volume = request.POST.get('DNA_volume') # DNA体积(µL) DNA_Total = request.POST.get('DNA_Total') # DNA总量(ng) A260_A280 = request.POST.get('A260_A280') # A260/A280 A260_A230 = request.POST.get('A260_A230') # A260/A230 Extraction_kit_type = request.POST.get( 'Extraction_kit_type') # 提取试剂盒类型 DNA_extraction_time = request.POST.get('DNA_extraction_time') # 提取时间 Quality_inspection_method = request.POST.get( 'Quality_inspection_method') # 质检方式 Quality_inspection_result = request.POST.get( 'Quality_inspection_result') # 质检结果 Glue_map_link = request.POST.get('Glue_map_link') # 胶图链接 DNA_storage_location = request.POST.get( 'DNA_storage_location') # DNA存储位置 DNA_extraction_Operator = request.POST.get( 'DNA_extraction_Operator') # DNA提取人 DNA_extraction_remarks = request.POST.get( 'DNA_extraction_remarks') # 其它(备注) # 判断哪个按钮提交的数据 if request.POST.has_key('Determine'): button_name = 'Determine' elif request.POST.has_key('submitModify'): button_name = 'submitModify' print '结束: ============================================= ' # 用户信息 try: username = request.session['username'] department = request.session['department'] except Exception: return render(request, "index.html") else: print '首页,username: '******'utf-8'), username, department temp = {"username": username, "department": department} temp_UserOperationPermissionsInfo = models.UserOperationPermissionsInfo.objects.get( username=username) # 用户操作权限信息 # print 'ClinicalSampleRegistration: ', temp_UserOperationPermissionsInfo.ClinicalSampleRegistration if temp_UserOperationPermissionsInfo.RandDDNAExtractInfoInputHomePage == '1': if button_name == 'Determine': temp_DNAExtractTask = models.RandDSampleDNAExtractInfo.objects.filter( sam_code_num=sam_code_num) # DNA提取样本信息 num = len(temp_DNAExtractTask) # 添加数据到数据库 models.RandDSampleDNAExtractInfo.objects.create( # 用户信息 username=username, # 用户名 department=department, # 部门 # 样本信息 sam_code_num=sam_code_num, # 样本编号 # DNA提取信息 DNASampleName=DNASampleName, # DNA样品名称 PlasmaVolume=PlasmaVolume, # 血浆体积(mL) QuantitativeMethod=QuantitativeMethod, # 定量方式 DNA_Concentration=DNA_Concentration, # DNA浓度(ng/µL) DNA_volume=DNA_volume, # DNA体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) A260_A280=A260_A280, # A260/A280 A260_A230=A260_A230, # A260/A230 Extraction_kit_type=Extraction_kit_type, # 提取试剂盒类型 DNA_extraction_time=DNA_extraction_time, # 提取时间 Quality_inspection_method=Quality_inspection_method, # 质检方式 Quality_inspection_result=Quality_inspection_result, # 质检结果 Glue_map_link=Glue_map_link, # 胶图链接 DNA_storage_location=DNA_storage_location, # DNA存储位置 DNA_extraction_Operator=DNA_extraction_Operator, # DNA提取人 DNA_extraction_remarks=DNA_extraction_remarks, # 其它(备注) # 其他信息 ExperimentTimes=num + 1, # DNA提取实验次数 Next_TaskProgress_Sign=0, # 审核标志 Next_TaskProgress='DNA提取', # 任务进度 PreLibCon_Sign=0 # 预文库构建任务标记 ) models.RandDSampleInfo.objects.filter( sam_code_num=sam_code_num).update(DNAExtract_Sign=1) models.RandDSamplePretreatmentInfo.objects.filter( sam_code_num=sam_code_num).update(DNAExtract_Sign='1') # 添加系统消息 taskTime = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") Title = '通知:临检样本预文库构建实验分派任务' # 系统消息标题 Message = username + '分派给你一个临检样本预文库构建实验分派任务!样本编号为:' + sam_code_num + '。请尽快完成任务!' # 系统邮件正文 sample = models.RandDSampleInfo.objects.get( sam_code_num=sam_code_num) TaskReceiver = sample.TaskAssignment models.UserSystemMessage.objects.create( # 用户信息 Sender=username, # 发送者 Receiver=TaskReceiver, # 接收者 # 信息内容 Time=taskTime, # 信息生成时间 Title=Title, # 系统消息标题 Message=Message, # 系统消息正文 ReadingState='未读', # 信息阅读状态 ) sendEmail(TaskReceiver, Title, Message) # 发送邮件通知 elif button_name == 'submitModify': # DNA提取实验次数 DNA_extraction_num = request.POST.get('DNA_extraction_num') print 'submitModify' # 添加数据到数据库 models.RandDSampleDNAExtractInfo.objects.filter( sam_code_num=sam_code_num, ExperimentTimes=DNA_extraction_num ).update( # DNA提取信息 DNASampleName=DNASampleName, # DNA样品名称 PlasmaVolume=PlasmaVolume, # 血浆体积(mL) QuantitativeMethod=QuantitativeMethod, # 定量方式 DNA_Concentration=DNA_Concentration, # DNA浓度(ng/µL) DNA_volume=DNA_volume, # DNA体积(µL) DNA_Total=DNA_Total, # DNA总量(ng) A260_A280=A260_A280, # A260/A280 A260_A230=A260_A230, # A260/A230 Extraction_kit_type=Extraction_kit_type, # 提取试剂盒类型 DNA_extraction_time=DNA_extraction_time, # 提取时间 Quality_inspection_method=Quality_inspection_method, # 质检方式 Quality_inspection_result=Quality_inspection_result, # 质检结果 Glue_map_link=Glue_map_link, # 胶图链接 DNA_storage_location=DNA_storage_location, # DNA存储位置 DNA_extraction_Operator=DNA_extraction_Operator, # DNA提取人 DNA_extraction_remarks=DNA_extraction_remarks, # 其它(备注) ) # 从数据里取出所有数据 # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 temp_not_Pretreatment = models.RandDSampleInfo.objects.filter( Next_TaskProgress_Sign=1, TissueSampleSign=1, DNAExtract_Sign=0) # 任务已分配信息 temp_Pretreatment = models.RandDSamplePretreatmentInfo.objects.filter( DNAExtract_Sign=0, Next_TaskProgress_Sign=1) # 任务已分配信息 temp_DNAExtractTask = chain(temp_not_Pretreatment, temp_Pretreatment) # 合并所有数据表数据 Pending_audit = models.RandDSampleDNAExtractInfo.objects.all( ) # 所有已完成DNA提取数据信息 return render( request, "modelspage/RandDDNAExtractInfoInputHomePage.html", { "userinfo": temp, "data": temp_DNAExtractTask, "Pending_audit": Pending_audit, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread }) else: # temp_SystemMessage = models.UserSystemMessage.objects.filter(Receiver=username) # 用户信息 temp_SystemMessage_Unread = models.UserSystemMessage.objects.filter( Receiver=username, ReadingState='未读') # 用户信息 num_SystemMessage_Unread = len(temp_SystemMessage_Unread) temp_myInfo = models.UserInfo.objects.filter( username=username) # 用户信息 return render( request, "modelspage/PermissionsPrompt.html", { "userinfo": temp, "myInfo": temp_myInfo, "SystemMessage": temp_SystemMessage_Unread, "num_SystemMessage_Unread": num_SystemMessage_Unread })