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();
}