diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index 1fd4b224e..a620f9913 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -253,11 +253,14 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc public async Task> VerifyIRStudyAllowUpload(TaskStudyAchivePreConfirmCommand inCommand, [FromServices] IRepository _dicomStudyRepository) { + var currentUploadSubjectVisitId = inCommand.VisitTaskId == null ? null : _visitTaskRepository.Where(t => t.Id == inCommand.VisitTaskId).Select(t => t.SourceSubjectVisitId).FirstOrDefault(); + //重阅任务排除 var notAllowedUidList1 = _taskStudyRepository.Where(t => t.TrialId == inCommand.TrialId && t.VisitTask.TaskState == TaskState.Effect && inCommand.StudyInstanceUidList.Contains(t.StudyInstanceUid)).Select(t => new { t.StudyInstanceUid, t.SubjectId, + SubjectVisitId = t.VisitTask.SourceSubjectVisitId, SubejectCode = t.VisitTask.IsAnalysisCreate ? t.VisitTask.BlindSubjectCode : t.Subject.Code, VisitTaskId = (Guid?)t.VisitTaskId }).ToList(); @@ -266,6 +269,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc { t.StudyInstanceUid, t.SubjectId, + SubjectVisitId = (Guid?)t.SubjectVisitId, SubejectCode = t.Subject.Code, VisitTaskId = (Guid?)null }).ToList(); @@ -283,12 +287,13 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //同一个subject 同一份影响 if (findStudy.SubejectCode == inCommand.SubjectCode && findStudy.SubjectId == inCommand.SubjectId) { + //上传给后处理其他访视了 if (inCommand.VisitTaskId != null && findStudy.VisitTaskId != null && findStudy.VisitTaskId != inCommand.VisitTaskId) { result.Add(new TaskStudyArchiveConfirmResult() { StudyInstanceUid = studyUid, IsAllowReUpload = false, IsAllowUpload = false }); } - //在原始crc 里面上传了 - else if (inCommand.VisitTaskId != null && findStudy.VisitTaskId == null) + //在原始crc 里面上传了,并且不是当前访视 + else if (inCommand.VisitTaskId != null && findStudy.VisitTaskId == null && findStudy.SubjectVisitId!= currentUploadSubjectVisitId) { result.Add(new TaskStudyArchiveConfirmResult() { StudyInstanceUid = studyUid, IsAllowReUpload = false, IsAllowUpload = false }); }