IRC_NewDev
parent
0cf5a88d63
commit
5aaa9043ff
|
@ -209,7 +209,26 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
public Guid CTSeriesId { get; set; }
|
||||
public Guid PTSeriesId { get; set; }
|
||||
|
||||
public DicomSeriesDTO? CTSeries { get; set; }
|
||||
|
||||
public string TaskBlindName { get; set; } = string.Empty;
|
||||
|
||||
public StudyInfo? StudyInfo { get; set; }
|
||||
}
|
||||
|
||||
public class StudyInfo
|
||||
{
|
||||
public Guid StudyId { get; set; }
|
||||
public string StudyCode { get; set; } = String.Empty;
|
||||
public string Modalities { get; set; } = String.Empty;
|
||||
|
||||
public bool IsCriticalSequence { get; set; } = false;
|
||||
|
||||
public int SeriesCount { get; set; }
|
||||
public int InstanceCount { get; set; }
|
||||
|
||||
public bool IsDicom { get; set; } = true;
|
||||
|
||||
public DicomSeriesDTO? CTSeries { get; set; }
|
||||
|
||||
public DicomSeriesDTO? PTSeries { get; set; }
|
||||
}
|
||||
|
|
|
@ -350,8 +350,10 @@ namespace IRaCIS.Core.Application.Services
|
|||
x.PTSeriesId,
|
||||
x.CTSeriesId,
|
||||
x.VisitTaskId,
|
||||
x.OtherStudyId,
|
||||
x.VisitTask.VisitTaskNum,
|
||||
x.UpdateTime
|
||||
x.VisitTask.TaskBlindName,
|
||||
x.UpdateTime,
|
||||
}).ToListAsync();
|
||||
|
||||
List<GetPTAndCtSeriesOutDto> result = new List<GetPTAndCtSeriesOutDto>();
|
||||
|
@ -368,7 +370,8 @@ namespace IRaCIS.Core.Application.Services
|
|||
{
|
||||
PTSeriesId = visitSeries.PTSeriesId!.Value,
|
||||
CTSeriesId = visitSeries.CTSeriesId!.Value,
|
||||
});
|
||||
TaskBlindName=visitSeries.TaskBlindName,
|
||||
});
|
||||
|
||||
seriesIds.Add(visitSeries.PTSeriesId!.Value);
|
||||
seriesIds.Add(visitSeries.CTSeriesId!.Value);
|
||||
|
@ -377,12 +380,21 @@ namespace IRaCIS.Core.Application.Services
|
|||
}
|
||||
|
||||
|
||||
|
||||
List<DicomSeriesDTO> seriesLists = await _repository.Where<DicomSeries>(s => seriesIds.Contains(s.Id)).ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
var instanceList = await _repository.Where<DicomInstance>(t => seriesIds.Contains(t.SeriesId))
|
||||
.Select(t => new { t.SeriesId, 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 }).ToListAsync();
|
||||
|
||||
var studyIds = instanceList.Select(x => x.StudyId).Distinct().ToList();
|
||||
|
||||
var studyList = await _repository.Where<DicomStudy>(t => studyIds.Contains(t.Id))
|
||||
.Select(k => new StudyInfo()
|
||||
{
|
||||
InstanceCount = k.InstanceCount,
|
||||
Modalities = k.Modalities,
|
||||
SeriesCount = k.SeriesCount,
|
||||
StudyCode = k.StudyCode,
|
||||
StudyId = k.Id,
|
||||
}).ToListAsync();
|
||||
seriesLists.ForEach(series =>
|
||||
{
|
||||
series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
|
||||
|
@ -418,10 +430,26 @@ namespace IRaCIS.Core.Application.Services
|
|||
});
|
||||
|
||||
|
||||
foreach (var item in result)
|
||||
{
|
||||
item.PTSeries = seriesLists.Where(x => x.Id == item.PTSeriesId).FirstOrDefault();
|
||||
item.CTSeries = seriesLists.Where(x => x.Id == item.CTSeriesId).FirstOrDefault();
|
||||
foreach (var item in result)
|
||||
{
|
||||
|
||||
var series = seriesLists.Where(x => x.Id == item.PTSeriesId).FirstOrDefault();
|
||||
|
||||
if (series != null)
|
||||
{
|
||||
item.StudyInfo = studyList.Where(x => x.StudyId == series.StudyId).FirstOrDefault();
|
||||
if (item.StudyInfo != null)
|
||||
{
|
||||
item.StudyInfo.PTSeries = seriesLists.Where(x => x.Id == item.PTSeriesId).FirstOrDefault();
|
||||
item.StudyInfo.CTSeries = seriesLists.Where(x => x.Id == item.CTSeriesId).FirstOrDefault();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
Loading…
Reference in New Issue