Test.EIImageViewer
{872297557@qq.com} 2022-12-08 14:09:20 +08:00
parent 748f8e34fd
commit cd0093b8d8
1 changed files with 29 additions and 7 deletions

View File

@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Services
throw new BusinessValidationFailedException("设置末次评估后,不允许添加计划外访视。"); throw new BusinessValidationFailedException("设置末次评估后,不允许添加计划外访视。");
} }
if (await _repository.AnyAsync<VisitTask>(t=>t.SubjectId==svCommand.SubjectId && t.TaskState==TaskState.Effect && t.VisitTaskNum > svCommand.VisitNum && t.SignTime != null && t.TrialReadingCriterion.IsReadingTaskViewInOrder)) if (await _repository.AnyAsync<VisitTask>(t => t.SubjectId == svCommand.SubjectId && t.TaskState == TaskState.Effect && t.VisitTaskNum > svCommand.VisitNum && t.SignTime != null && t.TrialReadingCriterion.IsReadingTaskViewInOrder))
{ {
throw new BusinessValidationFailedException("该受试者后续访视已有任务完成阅片(有序阅片标准),不允许在此添加,如果确实需要,请回退"); throw new BusinessValidationFailedException("该受试者后续访视已有任务完成阅片(有序阅片标准),不允许在此添加,如果确实需要,请回退");
} }
@ -216,7 +216,7 @@ namespace IRaCIS.Core.Application.Services
var studyIds = studyList.Select(t => t.StudyId).ToList(); var studyIds = studyList.Select(t => t.StudyId).ToList();
var instanceList = await _repository.Where<DicomInstance>(t => studyIds.Contains(t.StudyId)) var instanceList = await _repository.Where<DicomInstance>(t => studyIds.Contains(t.StudyId))
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber,t.Path,t.NumberOfFrames }).ToListAsync(); .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames }).ToListAsync();
foreach (var t in studyList) foreach (var t in studyList)
{ {
@ -315,15 +315,36 @@ namespace IRaCIS.Core.Application.Services
if (item != null) if (item != null)
{ {
item.SeriesInstanceUid = string.Empty; item.SeriesInstanceUid = string.Empty;
item.InstanceList = thisRowinfo.Where(y => y.InstanceId != null).Select(y => y.InstanceId.Value).Distinct().ToList(); item.InstanceList = thisRowinfo.Where(y => y.InstanceId != null).Select(y => y.InstanceId.Value).Distinct().ToList();
item.InstancePathList = await _dicomInstanceRepository.Where(x => item.InstanceList.Contains(x.Id)).Select(x => x.Path).ToListAsync();
var tempInstanceList = await _dicomInstanceRepository.Where(x => item.InstanceList.Contains(x.Id)).OrderBy(t => t.InstanceNumber).Select(x => new { x.Path, x.NumberOfFrames }).ToListAsync();
item.InstancePathList = tempInstanceList.SelectMany(u =>
{
if (u.NumberOfFrames == 1)
{
return new List<string> { u.Path };
}
else
{
var pathList = new List<string>();
for (int i = 1; i <= u.NumberOfFrames; i++)
{
pathList.Add(u.Path + "?frame=" + (i - 1));
}
return pathList;
}
})
.ToList();
item.InstanceCount = item.InstanceList.Count(); item.InstanceCount = item.InstanceList.Count();
thisVisitTaskStudy.SeriesList.Add(item); thisVisitTaskStudy.SeriesList.Add(item);
thisVisitTaskStudy.SeriesCount = thisVisitTaskStudy.SeriesList.Count(); thisVisitTaskStudy.SeriesCount = thisVisitTaskStudy.SeriesList.Count();
} }
@ -347,7 +368,7 @@ namespace IRaCIS.Core.Application.Services
var studyIds = studyList.Select(t => t.StudyId).ToList(); var studyIds = studyList.Select(t => t.StudyId).ToList();
var instanceList = await _repository.Where<DicomInstance>(t => studyIds.Contains(t.StudyId)) var instanceList = await _repository.Where<DicomInstance>(t => studyIds.Contains(t.StudyId))
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber,t.Path,t.NumberOfFrames }).ToListAsync(); .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames }).ToListAsync();
@ -359,7 +380,8 @@ namespace IRaCIS.Core.Application.Services
t.SeriesList = seriesLists.Where(s => s.StudyId == t.StudyId).OrderBy(s => s.SeriesNumber). t.SeriesList = seriesLists.Where(s => s.StudyId == t.StudyId).OrderBy(s => s.SeriesNumber).
ThenBy(s => s.SeriesTime).ToList(); ThenBy(s => s.SeriesTime).ToList();
t.SeriesList.ForEach(series => { t.SeriesList.ForEach(series =>
{
series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList(); series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();