diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
index 1bf154b8a..8baae9c30 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
@@ -65,8 +65,10 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
///
public async Task SubejctRandomReadingTaskNameDeal(Guid subjectId, Guid trialReadingCriterionId)
{
- //subject 随机阅片 才处理任务编号
- if (_visitTaskRepository.Any(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.TrialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.SubjectRandom))
+ //subject 随机阅片 或者无序 有上传 才处理任务编号
+ if (_visitTaskRepository.Any(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId &&
+ (t.TrialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.SubjectRandom ||
+ (t.TrialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.Random && t.TrialReadingCriterion.ImageUploadEnum != ReadingImageUpload.None))))
{
//找到 非一致性分析,未签名,状态正常的 并且任务名称是TimePoint的 任务
var needDealTaskList = await _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsAnalysisCreate == false && t.DoctorUserId == _userInfo.Id
@@ -754,12 +756,18 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
[HttpPost]
public async Task> GetSubjectImageDownloadSelectList(IRReadingDownloadQuery inQuery)
{
+ //要根据标准阅片顺序,确定是否查询单个任务的,还是查询所有的
+
+ var criterionInfo= await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId)
+ .Select(t => new { t.IsReadingTaskViewInOrder }).FirstNotNullAsync();
+
+
var doctorUserId = _userInfo.Id;
var isAnalysisCreate = false;
//医学审核查看下载按钮,这个时候需要知道医生
- if (inQuery.VisitTaskId != null && inQuery.VisitTaskId != Guid.Empty)
+ if (inQuery.VisitTaskId != null )
{
var info = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new { t.DoctorUserId, t.IsAnalysisCreate }).FirstNotNullAsync();
@@ -769,6 +777,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
var query = _visitTaskRepository.Where(t => t.SubjectId == inQuery.SubjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId
&& t.SourceSubjectVisitId != null && t.DoctorUserId == doctorUserId && t.TaskState == TaskState.Effect)
+ //满足 有序,或者随机只看到当前任务的dicom 非dicom检查
+ .WhereIf(criterionInfo.IsReadingTaskViewInOrder!=ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null,t=>t.Id==inQuery.VisitTaskId)
.ProjectTo(_mapper.ConfigurationProvider);
//这里过滤是否是一致性分析的
@@ -838,7 +848,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
public async Task GetIRReadingDownloadStudyInfo(IRDownloadQuery inQuery)
{
var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId)
- .Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.TrialId }).FirstNotNullAsync();
+ .Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.TrialId,t.IsReadingTaskViewInOrder }).FirstNotNullAsync();
var isQueryDicom = inQuery.DicomStudyIdList.Count > 0;
var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0;
@@ -909,7 +919,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
Id = NewId.NextSequentialGuid(),
TrialId = info.TrialId,
SubjectCode = inQuery.SubjectCode,
- IP=_userInfo.IP,
+ IP = _userInfo.IP,
DownloadStartTime = DateTime.Now,
IsSuccess = false,
ImageType = imageType,
@@ -921,8 +931,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
) ?? 0
};
- await _trialImageDownloadRepository.AddAsync(preDownloadInfo,true);
- return ResponseOutput.Ok(result, preDownloadInfo.Id);
+ await _trialImageDownloadRepository.AddAsync(preDownloadInfo, true);
+
+ return ResponseOutput.Ok(result, new { PreDownloadId= preDownloadInfo.Id,info.IsReadingTaskViewInOrder } );
}
///