diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index cd0358230..f00c10d6d 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -11593,6 +11593,13 @@
+
+
+ 获取Series信息
+
+
+
+
获取PTAndCtSeries
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 63ab8a26a..2427928c1 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -208,7 +208,7 @@ namespace IRaCIS.Application.Services
}
- return result;
+ return result.Where(x=>x.PicturePath!=string.Empty).ToList();
}
///
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 022557e76..4777364ae 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2075,7 +2075,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
return "NA";
}
-
+ if (TaskAnswer.Count() == 0)
+ {
+ return "0";
+ }
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault();
return (presentSpd - lowSplenoncus).ToString();
@@ -2099,7 +2102,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
return "NA";
}
-
+ if (taskAnswer.Count() == 0)
+ {
+ return "NA";
+ }
var lowSplenoncus = taskAnswer.OrderBy(x => x.SpleenLength).FirstOrDefault();
return lowSplenoncus.BlindName;
diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs
index bfe3e47db..5e08a5994 100644
--- a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs
@@ -209,10 +209,13 @@ namespace IRaCIS.Core.Application.Contracts
public Guid CTSeriesId { get; set; }
public Guid PTSeriesId { get; set; }
+
+ public Guid StudyId { get; set; }
+
public Guid? SubjectVisitId { get; set; }
- public bool IsBaseLine { get; set; }
+ public bool IsBaseLineTask { get; set; }
public string TaskBlindName { get; set; } = string.Empty;
@@ -239,7 +242,13 @@ namespace IRaCIS.Core.Application.Contracts
public List PTSeriesList { get; set; }
}
- public class GetPTAndCtSeriesInDto
+ public class GetDicomSeriesInfoInDto
+ {
+ public Guid SeriesId { get; set; }
+ }
+
+
+ public class GetPTAndCtSeriesInDto
{
public Guid VisitTaskId { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
index 3cf925bbe..d0e1a04eb 100644
--- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
@@ -328,11 +328,58 @@ namespace IRaCIS.Core.Application.Services
}
///
- /// 获取PTAndCtSeries
+ /// 获取Series信息
///
///
///
[HttpPost]
+ public async Task GetDicomSeriesInfo(GetDicomSeriesInfoInDto inDto)
+ {
+ DicomSeriesDTO series = await _repository.Where(s =>s.Id==inDto.SeriesId).ProjectTo(_mapper.ConfigurationProvider).FirstNotNullAsync();
+
+ var instanceList = await _repository.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 }).ToListAsync();
+ series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
+
+
+ series.InstanceHtmlPathList = instanceList.Where(t => t.SeriesId == series.Id && t.HtmlPath != string.Empty).OrderBy(t => t.InstanceNumber).Select(k => k.HtmlPath).ToList();
+
+ //处理多帧
+ series.InstancePathList = instanceList.Where(s => s.SeriesId == series.Id).OrderBy(t => t.InstanceNumber)
+ .SelectMany(u =>
+ {
+
+ if (u.NumberOfFrames > 1)
+ {
+ var pathList = new List();
+
+ for (int i = 1; i <= u.NumberOfFrames; i++)
+ {
+ pathList.Add(u.Path + "?frame=" + (i - 1));
+ }
+ return pathList;
+ }
+ else
+ {
+ return new List { u.Path };
+
+ }
+ })
+ .ToList();
+
+ series.WindowWidth = instanceList.FirstOrDefault()!.WindowWidth;
+ series.WindowCenter = instanceList.FirstOrDefault()!.WindowCenter;
+
+ return series;
+ }
+
+
+ ///
+ /// 获取PTAndCtSeries
+ ///
+ ///
+ ///
+ [HttpPost]
public async Task> GetPTAndCtSeries(GetPTAndCtSeriesInDto inDto)
{
@@ -376,7 +423,7 @@ namespace IRaCIS.Core.Application.Services
TaskBlindName=visitSeries.TaskBlindName,
VisitTaskId= item,
SubjectVisitId= visitSeries.SourceSubjectVisitId!.Value,
- IsBaseLine=visitSeries.IsBaseLine,
+ IsBaseLineTask=visitSeries.IsBaseLine,
});
@@ -451,7 +498,9 @@ namespace IRaCIS.Core.Application.Services
foreach (var item in result)
{
- item.StudyInfoList = studyList.Where(x => x.SubjectVisitId == item.SubjectVisitId).ToList();
+ item.StudyId = ptseriesLists.Where(x => x.Id == item.PTSeriesId).Select(x => x.StudyId).FirstOrDefault();
+
+ item.StudyInfoList = studyList.Where(x => x.SubjectVisitId == item.SubjectVisitId).ToList();
foreach (var study in item.StudyInfoList)
{