IRC_NewDev
he 2024-03-19 14:56:52 +08:00
parent 0cf5a88d63
commit 5aaa9043ff
2 changed files with 57 additions and 10 deletions

View File

@ -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; }
}

View File

@ -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;