IRC_NewDev
parent
0cf5a88d63
commit
5aaa9043ff
|
@ -209,6 +209,25 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public Guid CTSeriesId { get; set; }
|
public Guid CTSeriesId { get; set; }
|
||||||
public Guid PTSeriesId { get; set; }
|
public Guid PTSeriesId { 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? CTSeries { get; set; }
|
||||||
|
|
||||||
public DicomSeriesDTO? PTSeries { get; set; }
|
public DicomSeriesDTO? PTSeries { get; set; }
|
||||||
|
|
|
@ -350,8 +350,10 @@ namespace IRaCIS.Core.Application.Services
|
||||||
x.PTSeriesId,
|
x.PTSeriesId,
|
||||||
x.CTSeriesId,
|
x.CTSeriesId,
|
||||||
x.VisitTaskId,
|
x.VisitTaskId,
|
||||||
|
x.OtherStudyId,
|
||||||
x.VisitTask.VisitTaskNum,
|
x.VisitTask.VisitTaskNum,
|
||||||
x.UpdateTime
|
x.VisitTask.TaskBlindName,
|
||||||
|
x.UpdateTime,
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
List<GetPTAndCtSeriesOutDto> result = new List<GetPTAndCtSeriesOutDto>();
|
List<GetPTAndCtSeriesOutDto> result = new List<GetPTAndCtSeriesOutDto>();
|
||||||
|
@ -368,6 +370,7 @@ namespace IRaCIS.Core.Application.Services
|
||||||
{
|
{
|
||||||
PTSeriesId = visitSeries.PTSeriesId!.Value,
|
PTSeriesId = visitSeries.PTSeriesId!.Value,
|
||||||
CTSeriesId = visitSeries.CTSeriesId!.Value,
|
CTSeriesId = visitSeries.CTSeriesId!.Value,
|
||||||
|
TaskBlindName=visitSeries.TaskBlindName,
|
||||||
});
|
});
|
||||||
|
|
||||||
seriesIds.Add(visitSeries.PTSeriesId!.Value);
|
seriesIds.Add(visitSeries.PTSeriesId!.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();
|
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))
|
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 =>
|
seriesLists.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();
|
||||||
|
@ -420,8 +432,24 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
foreach (var item in result)
|
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();
|
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;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue