diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 11f14de7d..782678fea 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -5636,6 +5636,11 @@ 裁判百分比或绝对值的相差值 + + + 裁判百分比或绝对值的相差值匹配规则 + + 问题类型 @@ -5746,11 +5751,21 @@ 裁判百分比或绝对值的相差值 + + + 裁判百分比或绝对值的相差值匹配规则 + + 裁判百分比或绝对值的相差值 + + + 裁判百分比或绝对值的相差值匹配规则 + + 问题类型 @@ -5866,11 +5881,21 @@ 裁判百分比或绝对值的相差值 + + + 裁判百分比或绝对值的相差值匹配规则 + + 裁判百分比或绝对值的相差值 + + + 裁判百分比或绝对值的相差值匹配规则 + + diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs index 86729714d..d67f4501d 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs @@ -1,4 +1,6 @@ -namespace IRaCIS.Core.Application.Contracts.Dicom.DTO +using System.Text.Json.Serialization; + +namespace IRaCIS.Core.Application.Contracts.Dicom.DTO { public class DicomSeriesDTO { @@ -70,6 +72,11 @@ public int NumberOfFrames { get; set; } public int InstanceNumber { get; set; } + + [JsonIgnore] + public int ShowOrder { get; set; } + [JsonIgnore] + public decimal RowIndex { get; set; } } public class DicomSeriesWithLabelDTO : DicomSeriesDTO diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index 28d77dd7b..ca4a346a1 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -289,8 +289,8 @@ namespace IRaCIS.Core.Application.Services NumberOfFrames = k.NumberOfFrames, HtmlPath = k.HtmlPath, Path = k.Path, - InstanceNumber=k.InstanceNumber, - + InstanceNumber = k.InstanceNumber, + }).ToList(); } @@ -548,20 +548,20 @@ namespace IRaCIS.Core.Application.Services { item.SeriesInstanceUid = string.Empty; - item.InstanceList = thisRowinfo.Where(y => y.InstanceId != null).OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).Select(y => y.InstanceId!.Value).Distinct().ToList(); + var markInstanceIdList = thisRowinfo.Where(y => y.InstanceId != null).OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).Select(y => y.InstanceId!.Value).Distinct().ToList(); - var tempInstanceList = await _repository.Where(t => item.InstanceList.Contains(t.Id)).OrderBy(t => t.InstanceNumber) - .Select(t => new TempInstance - { + item.InstanceInfoList = await _repository.Where(t => markInstanceIdList.Contains(t.Id)).OrderBy(t => t.InstanceNumber).Select(k => + new InstanceBasicInfo() + { + Id = k.Id, + NumberOfFrames = k.NumberOfFrames, + HtmlPath = k.HtmlPath, + Path = k.Path, + InstanceNumber = k.InstanceNumber, - Id = t.Id, - Path = t.Path, - NumberOfFrames = t.NumberOfFrames, - InstanceNumber = t.InstanceNumber - }).ToListAsync(); + }).ToListAsync(); - - tempInstanceList.ForEach(x => + item.InstanceInfoList.ForEach(x => { var item = thisRowinfo.FirstOrDefault(y => y.InstanceId == x.Id); @@ -573,29 +573,10 @@ namespace IRaCIS.Core.Application.Services }); + item.InstanceInfoList.OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).ToList(); - item.InstancePathList = tempInstanceList.OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).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(); - - item.InstanceCount = item.InstanceList.Count; + item.InstanceCount = item.InstanceInfoList.Count; item.Description = "Key Series"; @@ -654,33 +635,16 @@ namespace IRaCIS.Core.Application.Services t.SeriesList.ForEach(series => { - series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList(); + series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => + new InstanceBasicInfo() + { + Id = k.Id, + NumberOfFrames = k.NumberOfFrames, + HtmlPath = k.HtmlPath, + Path = k.Path, + InstanceNumber = k.InstanceNumber, - - 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(); + }).ToList(); series.WindowWidth = instanceList.FirstOrDefault()!.WindowWidth; series.WindowCenter = instanceList.FirstOrDefault()!.WindowCenter; @@ -688,7 +652,7 @@ namespace IRaCIS.Core.Application.Services //设置为阅片与否 不更改数据库检查 的instance数量 和 SeriesCount 所以这里要实时统计 t.SeriesCount = t.SeriesList.Count; - t.InstanceCount = t.SeriesList.SelectMany(t => t.InstanceList).Count(); + t.InstanceCount = t.SeriesList.SelectMany(t => t.InstanceInfoList).Count(); }