修改多帧接口
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
1fbf635582
commit
ca96c67e96
|
@ -5636,6 +5636,11 @@
|
||||||
裁判百分比或绝对值的相差值
|
裁判百分比或绝对值的相差值
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GlobalQuestionInfo.JudgeDifferenceType">
|
||||||
|
<summary>
|
||||||
|
裁判百分比或绝对值的相差值匹配规则
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GlobalQuestionInfo.QuestionType">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GlobalQuestionInfo.QuestionType">
|
||||||
<summary>
|
<summary>
|
||||||
问题类型
|
问题类型
|
||||||
|
@ -5746,11 +5751,21 @@
|
||||||
裁判百分比或绝对值的相差值
|
裁判百分比或绝对值的相差值
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.SetTrialCriterionJudgeQuestionAnswerGroupInDto.JudgeDifferenceType">
|
||||||
|
<summary>
|
||||||
|
裁判百分比或绝对值的相差值匹配规则
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.JudgeDifferenceValue">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.JudgeDifferenceValue">
|
||||||
<summary>
|
<summary>
|
||||||
裁判百分比或绝对值的相差值
|
裁判百分比或绝对值的相差值
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.JudgeDifferenceType">
|
||||||
|
<summary>
|
||||||
|
裁判百分比或绝对值的相差值匹配规则
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.QuestionGenre">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.QuestionGenre">
|
||||||
<summary>
|
<summary>
|
||||||
问题类型
|
问题类型
|
||||||
|
@ -5866,11 +5881,21 @@
|
||||||
裁判百分比或绝对值的相差值
|
裁判百分比或绝对值的相差值
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GroupTaskAnswerDto.JudgeDifferenceType">
|
||||||
|
<summary>
|
||||||
|
裁判百分比或绝对值的相差值匹配规则
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TaskAnswerDto.JudgeDifferenceValue">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TaskAnswerDto.JudgeDifferenceValue">
|
||||||
<summary>
|
<summary>
|
||||||
裁判百分比或绝对值的相差值
|
裁判百分比或绝对值的相差值
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TaskAnswerDto.JudgeDifferenceType">
|
||||||
|
<summary>
|
||||||
|
裁判百分比或绝对值的相差值匹配规则
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TableQuestionDataInfo.Id">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TableQuestionDataInfo.Id">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
|
|
|
@ -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
|
public class DicomSeriesDTO
|
||||||
{
|
{
|
||||||
|
@ -70,6 +72,11 @@
|
||||||
public int NumberOfFrames { get; set; }
|
public int NumberOfFrames { get; set; }
|
||||||
|
|
||||||
public int InstanceNumber { get; set; }
|
public int InstanceNumber { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public int ShowOrder { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public decimal RowIndex { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DicomSeriesWithLabelDTO : DicomSeriesDTO
|
public class DicomSeriesWithLabelDTO : DicomSeriesDTO
|
||||||
|
|
|
@ -289,8 +289,8 @@ namespace IRaCIS.Core.Application.Services
|
||||||
NumberOfFrames = k.NumberOfFrames,
|
NumberOfFrames = k.NumberOfFrames,
|
||||||
HtmlPath = k.HtmlPath,
|
HtmlPath = k.HtmlPath,
|
||||||
Path = k.Path,
|
Path = k.Path,
|
||||||
InstanceNumber=k.InstanceNumber,
|
InstanceNumber = k.InstanceNumber,
|
||||||
|
|
||||||
}).ToList();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -548,20 +548,20 @@ namespace IRaCIS.Core.Application.Services
|
||||||
{
|
{
|
||||||
item.SeriesInstanceUid = string.Empty;
|
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<DicomInstance>(t => item.InstanceList.Contains(t.Id)).OrderBy(t => t.InstanceNumber)
|
item.InstanceInfoList = await _repository.Where<DicomInstance>(t => markInstanceIdList.Contains(t.Id)).OrderBy(t => t.InstanceNumber).Select(k =>
|
||||||
.Select(t => new TempInstance
|
new InstanceBasicInfo()
|
||||||
{
|
{
|
||||||
|
Id = k.Id,
|
||||||
|
NumberOfFrames = k.NumberOfFrames,
|
||||||
|
HtmlPath = k.HtmlPath,
|
||||||
|
Path = k.Path,
|
||||||
|
InstanceNumber = k.InstanceNumber,
|
||||||
|
|
||||||
Id = t.Id,
|
}).ToListAsync();
|
||||||
Path = t.Path,
|
|
||||||
NumberOfFrames = t.NumberOfFrames,
|
|
||||||
InstanceNumber = t.InstanceNumber
|
|
||||||
}).ToListAsync();
|
|
||||||
|
|
||||||
|
item.InstanceInfoList.ForEach(x =>
|
||||||
tempInstanceList.ForEach(x =>
|
|
||||||
{
|
{
|
||||||
|
|
||||||
var item = thisRowinfo.FirstOrDefault(y => y.InstanceId == x.Id);
|
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)
|
item.InstanceCount = item.InstanceInfoList.Count;
|
||||||
{
|
|
||||||
var pathList = new List<string>();
|
|
||||||
|
|
||||||
for (int i = 1; i <= u.NumberOfFrames; i++)
|
|
||||||
{
|
|
||||||
pathList.Add(u.Path + "?frame=" + (i - 1));
|
|
||||||
}
|
|
||||||
return pathList;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new List<string> { u.Path };
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
item.InstanceCount = item.InstanceList.Count;
|
|
||||||
|
|
||||||
item.Description = "Key Series";
|
item.Description = "Key Series";
|
||||||
|
|
||||||
|
@ -654,33 +635,16 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
t.SeriesList.ForEach(series =>
|
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,
|
||||||
|
|
||||||
|
}).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<string>();
|
|
||||||
|
|
||||||
for (int i = 1; i <= u.NumberOfFrames; i++)
|
|
||||||
{
|
|
||||||
pathList.Add(u.Path + "?frame=" + (i - 1));
|
|
||||||
}
|
|
||||||
return pathList;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new List<string> { u.Path };
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
series.WindowWidth = instanceList.FirstOrDefault()!.WindowWidth;
|
series.WindowWidth = instanceList.FirstOrDefault()!.WindowWidth;
|
||||||
series.WindowCenter = instanceList.FirstOrDefault()!.WindowCenter;
|
series.WindowCenter = instanceList.FirstOrDefault()!.WindowCenter;
|
||||||
|
@ -688,7 +652,7 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
//设置为阅片与否 不更改数据库检查 的instance数量 和 SeriesCount 所以这里要实时统计
|
//设置为阅片与否 不更改数据库检查 的instance数量 和 SeriesCount 所以这里要实时统计
|
||||||
t.SeriesCount = t.SeriesList.Count;
|
t.SeriesCount = t.SeriesList.Count;
|
||||||
t.InstanceCount = t.SeriesList.SelectMany(t => t.InstanceList).Count();
|
t.InstanceCount = t.SeriesList.SelectMany(t => t.InstanceInfoList).Count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue