|
|
|
|
@ -234,7 +234,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
|
|
|
|
|
var studyList = await _dicomStudyRepository.Where(t => t.TrialId == trialId && t.SubjectVisitId == sujectVisitId).IgnoreQueryFilters()
|
|
|
|
|
.Where(t => isImageFilter ? ("|" + criterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
|
|
|
|
|
.WhereIf(isReading == 1 || isQCFinished, s=> s.IsDeleted == false)
|
|
|
|
|
.WhereIf(isReading == 1 || isQCFinished, s => s.IsDeleted == false)
|
|
|
|
|
.Select(k => new VisitStudyDTO()
|
|
|
|
|
{
|
|
|
|
|
InstanceCount = k.InstanceCount,
|
|
|
|
|
@ -249,7 +249,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId)).IgnoreQueryFilters()
|
|
|
|
|
.WhereIf(isReading == 1, s => s.IsReading && s.IsDeleted == false)
|
|
|
|
|
.WhereIf(isQCFinished, t => t.IsDeleted == false)
|
|
|
|
|
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.HtmlPath, t.IsReading, t.IsDeleted }).ToListAsync();
|
|
|
|
|
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.HtmlPath, t.IsReading, t.IsDeleted, t.FileSize }).ToListAsync();
|
|
|
|
|
|
|
|
|
|
foreach (var t in studyList)
|
|
|
|
|
{
|
|
|
|
|
@ -273,6 +273,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
InstanceNumber = k.InstanceNumber,
|
|
|
|
|
IsReading = k.IsReading,
|
|
|
|
|
IsDeleted = k.IsDeleted,
|
|
|
|
|
FileSize = k.FileSize,
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
series.InstanceCount = series.InstanceInfoList.Count();
|
|
|
|
|
@ -304,7 +305,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
DicomSeriesDTO series = await _dicomSeriesRepository.Where(s => s.Id == inDto.SeriesId).ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).FirstNotNullAsync();
|
|
|
|
|
|
|
|
|
|
var instanceList = await _dicomInstanceRepository.Where(t => t.SeriesId == inDto.SeriesId)
|
|
|
|
|
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation }).ToListAsync();
|
|
|
|
|
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation, t.FileSize }).ToListAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -316,6 +317,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
HtmlPath = k.HtmlPath,
|
|
|
|
|
Path = k.Path,
|
|
|
|
|
InstanceNumber = k.InstanceNumber,
|
|
|
|
|
FileSize = k.FileSize
|
|
|
|
|
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
@ -392,7 +394,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
var seriesIds = ctseriesIds.Union(ptseriesIds).ToList(); //并集
|
|
|
|
|
|
|
|
|
|
var instanceList = await _dicomInstanceRepository.Where(t => seriesIds.Contains(t.SeriesId))
|
|
|
|
|
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath }).ToListAsync();
|
|
|
|
|
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.FileSize }).ToListAsync();
|
|
|
|
|
|
|
|
|
|
var studyIds = instanceList.Select(x => x.StudyId).Distinct().ToList();
|
|
|
|
|
|
|
|
|
|
@ -423,7 +425,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
HtmlPath = k.HtmlPath,
|
|
|
|
|
Path = k.Path,
|
|
|
|
|
InstanceNumber = k.InstanceNumber,
|
|
|
|
|
|
|
|
|
|
FileSize = k.FileSize
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -507,7 +509,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
.Select(k => new VisitStudyDTO()
|
|
|
|
|
{
|
|
|
|
|
InstanceCount = k.InstanceCount,
|
|
|
|
|
StudyName=k.StudyName,
|
|
|
|
|
StudyName = k.StudyName,
|
|
|
|
|
Modalities = k.Modalities,
|
|
|
|
|
//SeriesCount = k.SeriesCount,
|
|
|
|
|
StudyCode = k.StudyCode,
|
|
|
|
|
@ -517,7 +519,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
var studyIds = dicomStudyList.Select(t => t.StudyId).ToList();
|
|
|
|
|
|
|
|
|
|
var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId) && t.IsReading)
|
|
|
|
|
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.IsReading }).ToListAsync();
|
|
|
|
|
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.IsReading, t.FileSize }).ToListAsync();
|
|
|
|
|
|
|
|
|
|
List<DicomSeriesDTO> seriesLists = await _dicomSeriesRepository.Where(s => studyIds.Contains(s.StudyId))
|
|
|
|
|
.WhereIf(isManualGenerate == false, t => t.IsReading)
|
|
|
|
|
@ -538,6 +540,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
HtmlPath = k.HtmlPath,
|
|
|
|
|
Path = k.Path,
|
|
|
|
|
InstanceNumber = k.InstanceNumber,
|
|
|
|
|
FileSize = k.FileSize
|
|
|
|
|
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
@ -628,7 +631,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
|
|
|
|
|
var markInstanceIdList = rowInfoList.Where(y => y.InstanceId != null).OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).Select(y => y.InstanceId!.Value).Distinct().ToList();
|
|
|
|
|
|
|
|
|
|
item.InstanceInfoList = await _dicomInstanceRepository.Where(t => markInstanceIdList.Contains(t.Id)).OrderBy(s => s.DicomSerie.SeriesNumber).ThenBy(s => s.DicomSerie.SeriesTime).ThenBy(x=>x.InstanceTime).Select(k =>
|
|
|
|
|
item.InstanceInfoList = await _dicomInstanceRepository.Where(t => markInstanceIdList.Contains(t.Id)).OrderBy(s => s.DicomSerie.SeriesNumber).ThenBy(s => s.DicomSerie.SeriesTime).ThenBy(x => x.InstanceTime).Select(k =>
|
|
|
|
|
new InstanceBasicInfo()
|
|
|
|
|
{
|
|
|
|
|
Id = k.Id,
|
|
|
|
|
@ -638,6 +641,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
InstanceNumber = k.InstanceNumber,
|
|
|
|
|
StudyId = k.StudyId,
|
|
|
|
|
SeriesId = k.SeriesId,
|
|
|
|
|
FileSize = k.FileSize
|
|
|
|
|
}).ToListAsync();
|
|
|
|
|
|
|
|
|
|
item.InstanceInfoList.ForEach(x =>
|
|
|
|
|
@ -722,7 +726,7 @@ namespace IRaCIS.Core.Application.Services
|
|
|
|
|
{
|
|
|
|
|
var nodicom = noDicomList.Where(x => x.Id == item.StudyId).First();
|
|
|
|
|
|
|
|
|
|
var instanceCount = await _noneDicomStudyFileRepository.Where(t=>t.IsReading)
|
|
|
|
|
var instanceCount = await _noneDicomStudyFileRepository.Where(t => t.IsReading)
|
|
|
|
|
.WhereIf(isExistTaskNoneDicomFile, x => x.OriginNoneDicomStudyId == item.StudyId)
|
|
|
|
|
.WhereIf(isExistTaskNoneDicomFile == false, x => x.NoneDicomStudyId == item.StudyId).CountAsync();
|
|
|
|
|
|
|
|
|
|
|