From 30ba4e8776d97b97bd595b9297a323f89b55c614 Mon Sep 17 00:00:00 2001 From: helongjun Date: Thu, 19 May 2022 13:27:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/QC/QCOperationService.cs | 86 +++++++++---------- .../Service/QC/TrialQCQuestionService.cs | 4 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index b6ef700ec..60bb83e64 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -74,7 +74,7 @@ namespace IRaCIS.Core.Application.Image.QA if (!await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType)) { - return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。"); + return ResponseOutput.NotOk("请先核查图像,并保存审核问题,然后再发质疑。"); } return ResponseOutput.Ok(); @@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (await _qcChallengeRepository.AnyAsync(t => t.IsClosed == false && t.SubjectVisitId == qaQuestionCommand.SubjectVisitId && t.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)) { - throw new BusinessValidationFailedException("当前访视有未关闭的 同意CRC重传的质疑,不允许再次添加质疑"); + throw new BusinessValidationFailedException("当前访视未关闭的质疑已设置了同意CRC重传影像。请在CRC完成影像重传后,先关闭原质疑,再添加新的质疑。"); } @@ -165,7 +165,7 @@ namespace IRaCIS.Core.Application.Image.QA if (dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload || dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload) { - throw new BusinessValidationFailedException("CRC申请重传的|QC同意重传的质疑,在CRC设置重传完成前不允许关闭质疑"); + throw new BusinessValidationFailedException("CRC已申请重传或者QC同意重传,不允许关闭该质疑。请在QC拒绝重传申请或者CRC设置重传影像后,再关闭质疑。"); } @@ -209,7 +209,7 @@ namespace IRaCIS.Core.Application.Image.QA if (await _repository.AnyAsync(t => t.QCChallengeId == qcChallengeId)) { - ResponseOutput.NotOk("this QC Challenge Has been replied "); + ResponseOutput.NotOk("该QC质疑已经回复。"); } var qaRecord = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException(); @@ -290,7 +290,7 @@ namespace IRaCIS.Core.Application.Image.QA } else { - throw new BusinessValidationFailedException("一致性核查对话操作用户 只允许 CRC/PM"); + throw new BusinessValidationFailedException("您不是CRC或PM/APM,不允许回复一致性核查对话。"); } var success = await _repository.SaveChangesAsync(); @@ -311,7 +311,7 @@ namespace IRaCIS.Core.Application.Image.QA if ( sv.RequestBackState == RequestBackStateEnum.CRC_RequestBack) { - ResponseOutput.NotOk("CRC申请回退状态时, 不允许关闭质疑!"); + ResponseOutput.NotOk("CRC已申请回退状态, 不允许关闭质疑。"); } @@ -341,7 +341,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (_userInfo.UserTypeEnumInt != (int)UserTypeEnum.ProjectManager) { - ResponseOutput.NotOk("只允许PM 手动设置一致性核查通过"); + ResponseOutput.NotOk("您不是PM/APM,不允许设置一致性核查通过"); } var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == data.Id)).IfNullThrowException(); @@ -349,12 +349,12 @@ namespace IRaCIS.Core.Application.Image.QA if (sv.RequestBackState == RequestBackStateEnum.PM_AgressBack) { - ResponseOutput.NotOk("当前是PM同意回退,不允许设置一致性核查通过"); + ResponseOutput.NotOk("PM/APM已同意该访视回退,不允许设置一致性核查通过"); } if (sv.CheckChallengeState != CheckChanllengeTypeEnum.Closed && sv.AuditState == AuditStateEnum.QCPassed) { - ResponseOutput.NotOk("一致性核查质疑未关闭|审核状态不是通过,不允许设置一致性核查通过"); + ResponseOutput.NotOk("一致性核查质疑未关闭,不允许设置一致性核查通过"); } sv.CheckState = CheckStateEnum.CVPassed; @@ -384,7 +384,7 @@ namespace IRaCIS.Core.Application.Image.QA if (sv.CheckState == CheckStateEnum.CVPassed) { - return ResponseOutput.NotOk("核查通过的数据不允许申请回退"); + return ResponseOutput.NotOk("该访视已通过一致性核查,不允许申请回退"); } var QCChallengeId = await _qcChallengeRepository.Where(x => x.SubjectVisitId == subjectVisitId).Select(x => x.Id).FirstOrDefaultAsync(); @@ -393,7 +393,7 @@ namespace IRaCIS.Core.Application.Image.QA { SubjectVisitId = subjectVisitId, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, - TalkContent = "CRC 请求回退" + TalkContent = "CRC申请回退" }); @@ -419,7 +419,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (_userInfo.UserTypeEnumInt != (int)UserTypeEnum.ProjectManager) { - return ResponseOutput.NotOk(" 只允许PM 操作!"); + return ResponseOutput.NotOk(" 只有PM/APM具有操作权限!"); } var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException(); @@ -428,7 +428,7 @@ namespace IRaCIS.Core.Application.Image.QA { sv.RequestBackState = RequestBackStateEnum.PM_NotAgree; - await _repository.AddAsync(new CheckChallengeDialog() { SubjectVisitId = subjectVisitId, TalkContent = "PM拒绝一致性核查回退", UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); + await _repository.AddAsync(new CheckChallengeDialog() { SubjectVisitId = subjectVisitId, TalkContent = "PM/APM拒绝一致性核查回退", UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); await _subjectVisitRepository.SaveChangesAsync(); @@ -436,7 +436,7 @@ namespace IRaCIS.Core.Application.Image.QA } else { - return ResponseOutput.NotOk(" 只允许PM 操作!"); + return ResponseOutput.NotOk("只有PM/APM具有操作权限!"); } } @@ -451,7 +451,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (_userInfo.UserTypeEnumInt != (int)UserTypeEnum.ProjectManager) { - return ResponseOutput.NotOk(" 只允许PM 回退!"); + return ResponseOutput.NotOk("只有PM/APM具有操作权限!"); } var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException(); @@ -459,7 +459,7 @@ namespace IRaCIS.Core.Application.Image.QA if (sv.CheckState == CheckStateEnum.CVPassed || sv.CheckState == CheckStateEnum.ToCheck) { - return ResponseOutput.NotOk("待核查/核查通过的数据不允许回退"); + return ResponseOutput.NotOk("该访视还未进行核查或者核查已通过,不允许设置回退。"); } //sv.CheckChallengeState = (int)CheckChanllengeTypeEnum.None; @@ -496,7 +496,7 @@ namespace IRaCIS.Core.Application.Image.QA //_qcChallengeRepository.Delete(t => t.SubjectVisitId == subjectVisitId); //_qcChallengeDialogRepository.Delete(t => t.SubjectVisitId == subjectVisitId); //_checkChallengeDialogRepository.Delete(t => t.SubjectVisitId == subjectVisitId); - await _repository.AddAsync(new CheckChallengeDialog() { SubjectVisitId = subjectVisitId, TalkContent = "PM执行了一致性核查回退", UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); + await _repository.AddAsync(new CheckChallengeDialog() { SubjectVisitId = subjectVisitId, TalkContent = "PM/APM同意一致性核查回退", UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt }); await _repository.BatchDeleteAsync(t => t.SubjectVisitId == subjectVisitId); @@ -523,7 +523,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (_userInfo.UserTypeEnumInt != (int)UserTypeEnum.ProjectManager) { - return ResponseOutput.NotOk("只允许PM 操作"); + return ResponseOutput.NotOk("只有PM/APM具有操作权限!"); } var rootPath = Directory.GetParent(_hostEnvironment.ContentRootPath.TrimEnd('\\')).IfNullThrowException().FullName; @@ -531,7 +531,7 @@ namespace IRaCIS.Core.Application.Image.QA var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.ToString().Trim('"').ToLower(); if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".csv") && !fileName.EndsWith(".xls")) { - return ResponseOutput.NotOk("只允许Excel、 CSV!"); + return ResponseOutput.NotOk("文字格式只支持:.xlsx、.xls、.csv。"); } //上传根路径 @@ -674,7 +674,7 @@ namespace IRaCIS.Core.Application.Image.QA if (etcCheckList == null || etcCheckList.Count == 0) { - return ResponseOutput.NotOk("请上传规定格式的Excel文件,保证有有效数据!"); + return ResponseOutput.NotOk("请保证上传数据符合模板文件中的样式,保证有有效数据!"); } else { @@ -694,7 +694,7 @@ namespace IRaCIS.Core.Application.Image.QA if (etcCheckList.Count == 0) { - return ResponseOutput.NotOk("请上传规定格式的Excel文件,保证有有效数据!"); + return ResponseOutput.NotOk("请保证上传数据符合模板文件中的样式,保证有有效数据!"); } } @@ -926,7 +926,7 @@ namespace IRaCIS.Core.Application.Image.QA if (await _subjectVisitRepository.AnyAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted && (!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)))) { - return ResponseOutput.NotOk("CRC Has Submited Image,can not delete"); + return ResponseOutput.NotOk("CRC已经提交,不允许删除。"); } var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id)).ToListAsync(); @@ -1064,13 +1064,13 @@ namespace IRaCIS.Core.Application.Image.QA { //throw new BusinessValidationFailedException("当前访视已被领取,不允许领取"); - return ResponseOutput.NotOk("当前访视已被领取,不允许领取", ApiResponseCodeEnum.NeedTips); + return ResponseOutput.NotOk("当前访视的影像质控任务已被其他QC领取,不允许领取", ApiResponseCodeEnum.NeedTips); } if (await _subjectVisitRepository.AnyAsync(t => t.Trial.QCQuestionConfirmedUserId == null && t.Id == subjectVisitId)) { - return ResponseOutput.NotOk("QC问题未确认,不允许领取任务", ApiResponseCodeEnum.NeedTips); + return ResponseOutput.NotOk("请先配置影像质控审核问题,再领取影像质控任务", ApiResponseCodeEnum.NeedTips); } @@ -1159,7 +1159,7 @@ namespace IRaCIS.Core.Application.Image.QA if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit) { - return ResponseOutput.NotOk("项目配置为不审,没有取消QC Task"); + return ResponseOutput.NotOk("项目配置影像质控为不审,不需要取消任务功能"); } else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit) { @@ -1171,7 +1171,7 @@ namespace IRaCIS.Core.Application.Image.QA else { - return ResponseOutput.NotOk("项目配置为单审,不满足SubmmitState:已提交 或者 AuditState:InPrimaryQC, 不允许释放"); + return ResponseOutput.NotOk("当前访视影像质控任务没有当前领取人,不能释放。"); } } else if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit) @@ -1190,7 +1190,7 @@ namespace IRaCIS.Core.Application.Image.QA else { - return ResponseOutput.NotOk("项目配置为双审,不满足提交状态:已提交 或者 审核状态:InPrimaryQC|InSecondaryQC, 不允许释放"); + return ResponseOutput.NotOk("当前访视影像质控任务没有当前领取人, 不能释放"); } } @@ -1260,7 +1260,7 @@ namespace IRaCIS.Core.Application.Image.QA if (dbSubjectVisitList.Any(t => t.SubmitState == SubmitStateEnum.None)) { - return ResponseOutput.NotOk("有访视未上传任何Dicom/非Dicom数据 不允许提交"); + return ResponseOutput.NotOk("有访视未上传任何Dicom/非Dicom数据,不允许提交"); } @@ -1270,7 +1270,7 @@ namespace IRaCIS.Core.Application.Image.QA //基线不验证 if (trialConfig.IsHaveFirstGiveMedicineDate && !dbSubjectVisit.IsBaseLine && dbSubjectVisit.Subject.FirstGiveMedicineTime == null) { - return ResponseOutput.NotOk("项目配置了需要填写访视基准日期 但是受试者没有填写访视基准日期,不允许提交"); + return ResponseOutput.NotOk("项目配置了需要填写访视基准日期。但是受试者没有填写访视基准日期,不允许提交"); } //基线 且配置了临床数据 @@ -1379,13 +1379,13 @@ namespace IRaCIS.Core.Application.Image.QA if (!await _repository.AnyAsync(t => t.TrialId == trialId && t.UserId == _userInfo.Id)) { - return ResponseOutput.NotOk("您已经被移出项目,不允许该操作"); + return ResponseOutput.NotOk("您已经被移出项目,没有操作权限。"); } //判断质疑是否都关闭了 if (await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false)) { - return ResponseOutput.NotOk("有质疑未关闭,不允许该操作"); + return ResponseOutput.NotOk("当前访视有影像质控质疑未关闭,不能进行此操作。"); } @@ -1406,7 +1406,7 @@ namespace IRaCIS.Core.Application.Image.QA if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit) { - return ResponseOutput.NotOk("不审状态下,不允许设置为QC Passed"); + return ResponseOutput.NotOk("项目配置影像质控为不审,不需要设置为QC Passed。"); } else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit) @@ -1415,7 +1415,7 @@ namespace IRaCIS.Core.Application.Image.QA { if (!await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == CurrentQC.First)) { - return ResponseOutput.NotOk("必须填写审核问题,并保存,否则不允许提交"); + return ResponseOutput.NotOk("影像质控审核问题没有保存,不能进行此操作。"); } // 单审 @@ -1428,7 +1428,7 @@ namespace IRaCIS.Core.Application.Image.QA } else { - return ResponseOutput.NotOk("项目配置为单审 当前审核状态不为 InPrimaryQC,不能变更到 QCPassed"); + return ResponseOutput.NotOk("项目配置影像质控为单审,当前访视影像质控任务不能从当前审核状态变更到 审核通过。"); } } @@ -1441,7 +1441,7 @@ namespace IRaCIS.Core.Application.Image.QA if (!await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == CurrentQC.First)) { - return ResponseOutput.NotOk("必须填写审核问题,并保存,否则不允许提交"); + return ResponseOutput.NotOk("影像质控审核问题没有保存,不能进行此操作。"); } dbSubjectVisit.AuditState = AuditStateEnum.PrimaryQCPassed; @@ -1455,7 +1455,7 @@ namespace IRaCIS.Core.Application.Image.QA if (!await _repository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == CurrentQC.Second)) { - return ResponseOutput.NotOk("必须填写审核问题,并保存,否则不允许提交"); + return ResponseOutput.NotOk("影像质控审核问题没有保存,不能进行此操作。"); } dbSubjectVisit.AuditState = AuditStateEnum.QCPassed; @@ -1472,7 +1472,7 @@ namespace IRaCIS.Core.Application.Image.QA } else { - return ResponseOutput.NotOk($"项目配置为双审 当前审核状态为 {dbSubjectVisit.AuditState},不能变更到 QCPassed"); + return ResponseOutput.NotOk($"项目配置影像质控为双审。当前审核状态为 {dbSubjectVisit.AuditState},不能变更到 审核通过。"); } } } @@ -1483,7 +1483,7 @@ namespace IRaCIS.Core.Application.Image.QA if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit) { - return ResponseOutput.NotOk("不审状态下,不允许设置为QC Failed"); + return ResponseOutput.NotOk("项目配置影像质控为不审,不允许设置为QC Failed"); } else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit) { @@ -1495,7 +1495,7 @@ namespace IRaCIS.Core.Application.Image.QA } else { - return ResponseOutput.NotOk("项目配置为单审 当前审核状态不为 ToAudit,不能变更到 QCFailed"); + return ResponseOutput.NotOk("项目配置影像质控为单审,当前审核状态不为 ToAudit,不能变更到 审核终止"); } } else if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit) @@ -1507,7 +1507,7 @@ namespace IRaCIS.Core.Application.Image.QA } else { - return ResponseOutput.NotOk($"项目配置为双审 当前审核状态为 {dbSubjectVisit.AuditState},不能变更到 QCFailed"); + return ResponseOutput.NotOk($"项目配置影像质控为双审,当前审核状态为 {dbSubjectVisit.AuditState},不能变更到 审核终止"); } @@ -1828,7 +1828,7 @@ namespace IRaCIS.Core.Application.Image.QA if (await _subjectVisitRepository.Where(t => t.Id == command.SubjectVisitId) .AnyAsync(t => t.IsEnrollmentConfirm != command.IsEnrollmentConfirm && t.RequestBackState == RequestBackStateEnum.PM_AgressBack)) { - return ResponseOutput.NotOk("回退的访视,不允许修改PD确认状态"); + return ResponseOutput.NotOk("该访视为回退访视,不允许修改PD确认状态"); } dbSubjectVisit.IsEnrollmentConfirm = command.IsEnrollmentConfirm.Value; @@ -1931,7 +1931,7 @@ namespace IRaCIS.Core.Application.Image.QA u => new SubjectVisit() { ForwardState = ForwardStateEnum.ForwardFailed }); - return ResponseOutput.NotOk("转发失败 " + e.Message); + return ResponseOutput.NotOk("转发影像失败: " + e.Message); } @@ -1941,7 +1941,7 @@ namespace IRaCIS.Core.Application.Image.QA await _subjectVisitRepository.SaveChangesAsync(); - return isSuccess ? ResponseOutput.Ok() : ResponseOutput.NotOk("转发失败"); + return isSuccess ? ResponseOutput.Ok() : ResponseOutput.NotOk("转发失败。"); } diff --git a/IRaCIS.Core.Application/Service/QC/TrialQCQuestionService.cs b/IRaCIS.Core.Application/Service/QC/TrialQCQuestionService.cs index c817e0e8e..ce1ba0230 100644 --- a/IRaCIS.Core.Application/Service/QC/TrialQCQuestionService.cs +++ b/IRaCIS.Core.Application/Service/QC/TrialQCQuestionService.cs @@ -144,7 +144,7 @@ namespace IRaCIS.Core.Application.Contracts if (await _trialQcQuestionRepository.AnyAsync(t => t.ParentId == trialQCQuestionConfigureId)) { - return ResponseOutput.NotOk("清除子问题 才允许删除父问题"); + return ResponseOutput.NotOk("请先清除子问题 再删除父问题"); } if (!await _trialQcQuestionRepository.AnyAsync(t => t.Id == trialQCQuestionConfigureId && t.Trial.QCQuestionConfirmedUserId == null)) @@ -154,7 +154,7 @@ namespace IRaCIS.Core.Application.Contracts if (await _repository.AnyAsync(t => t.TrialQCQuestionConfigureId == trialQCQuestionConfigureId)) { - return ResponseOutput.NotOk("已有QC审核记录,不允许删除问题项"); + return ResponseOutput.NotOk("已有QC审核记录,不允许删除该问题项"); } var success = await _trialQcQuestionRepository.DeleteFromQueryAsync(t => t.Id == trialQCQuestionConfigureId,true);