diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs index 400cea96..e6a4afdb 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs @@ -409,8 +409,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var result = new List(); - var visitList = _repository.Where(t => t.SubjectId == verifyInfo.SubjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToList(); + var visitList = _repository.Where(t => t.SubjectId == verifyInfo.SubjectId).Select(t => new { t.VisitNum, t.Subject.VisitOverTime, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToList(); + var visitOverTime = visitList.Select(t=>t.VisitOverTime).FirstOrDefault(); verifyInfo.StudyInstanceUidList.ForEach(waitUploadItem => { @@ -418,6 +419,12 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc if (trialInfo.IsVerifyVisitImageDate) { + if(visitOverTime!= null && waitUploadItem.StudyDate != null && waitUploadItem.StudyDate> visitOverTime) + { + result.Add(new VerifyStudyUploadResult() { ErrorMesseage = $"当前检查批次检查时间{waitUploadItem.StudyDate?.ToString("yyyy-MM-dd")}不能晚于患者访视检查结束日期{visitOverTime?.ToString("yyyy-MM-dd")},请核对检查数据是否有误", StudyInstanceUid = waitUploadItem.StudyInstanceUid }); + return; + } + //小于当前检查批次 最近的最晚拍片 var before = visitList.Where(u => u.VisitNum < verifyInfo.VisitNum).Max(k => k.LatestScanDate); @@ -435,6 +442,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc result.Add(new VerifyStudyUploadResult() { ErrorMesseage = $"当前检查批次检查时间{waitUploadItem.StudyDate?.ToString("yyyy-MM-dd")}不能晚于该检查批次之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误", StudyInstanceUid = waitUploadItem.StudyInstanceUid }); return; } + + + } var temp = VerifyStudyUpload(waitUploadItem.StudyInstanceUid, verifyInfo.TrialId, verifyInfo.SubjectVisitId, verifyInfo.SubjectId); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs index c67ee88e..ff0f765c 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs @@ -160,6 +160,13 @@ namespace IRaCIS.Application.Services foreach (var item in trialUsers) { + + if(await _trialUseRepository.AnyAsync(t=>t.TrialId==item.TrialId && t.UserId == item.UserId, true)) + { + return ResponseOutput.NotOk("项目人员已存在该用户,不允许继续添加"); + } + + item.JoinTime = DateTime.Now; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs index 61da52d3..02c95aa1 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs @@ -185,7 +185,7 @@ namespace IRaCIS.Application.Services trial.QCProcessEnum = TrialQCProcess.NotAudit; trial.IsImageConsistencyVerification = false; - trial.IsVerifyVisitImageDate = false; + trial.IsVerifyVisitImageDate = true; trial.IsTrialProcessConfirmed = true; trial.IsTrialBasicLogicConfirmed = true; trial.IsTrialUrgentConfirmed = true; diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index ce45ee87..9a2d27cd 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -68,7 +68,7 @@ namespace IRaCIS.Core.Application.Services var verifyExp1 = new EntityVerifyExp() { VerifyExp = t => t.VisitNum == svCommand.VisitNum && t.SubjectId == svCommand.SubjectId, - VerifyMsg = "该患者的检查批次计划中已经包含一个具有相同检查批次号的检查批次。" + VerifyMsg = "该患者的检查批次中,在选择的上一检查后已存在计划外的的检查批次,请重新选择上一检查。" }; var verifyExp2 = new EntityVerifyExp() @@ -111,7 +111,7 @@ namespace IRaCIS.Core.Application.Services } - dbBeforeEntity = await _subjectVisitRepository.InsertFromDTOAsync(svCommand, false, verifyExp1, verifyExp2, verifyExp3); + dbBeforeEntity = await _subjectVisitRepository.InsertFromDTOAsync(svCommand, false, verifyExp2, verifyExp3,verifyExp1); //var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == svCommand.TrialId && x.UploadRole == UploadRole.IC && x.IsConfirm && x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)