示例#1
0
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})
示例#2
0
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
                })
示例#3
0
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})
示例#5
0
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
                })
示例#7
0
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})
示例#9
0
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
                })
示例#10
0
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
                })
示例#12
0
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
                })
示例#13
0
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
                })
示例#14
0
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
                })