修改多帧的逻辑
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
11e5448acf
commit
029a288be2
|
@ -5761,6 +5761,11 @@
|
||||||
裁判百分比或绝对值的相差值
|
裁判百分比或绝对值的相差值
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.Type">
|
||||||
|
<summary>
|
||||||
|
类型
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.JudgeDifferenceType">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialCriterionJudgeQuestionListOutDto.JudgeDifferenceType">
|
||||||
<summary>
|
<summary>
|
||||||
裁判百分比或绝对值的相差值匹配规则
|
裁判百分比或绝对值的相差值匹配规则
|
||||||
|
|
|
@ -42,22 +42,9 @@ namespace IRaCIS.Core.Application.Contracts.Dicom.DTO
|
||||||
public bool IsExistMutiFrames => InstanceInfoList.Any(t => t.NumberOfFrames > 1);
|
public bool IsExistMutiFrames => InstanceInfoList.Any(t => t.NumberOfFrames > 1);
|
||||||
|
|
||||||
|
|
||||||
#region 以后废弃
|
|
||||||
|
|
||||||
public List<Guid> InstanceList { get; set; } = new List<Guid>();
|
|
||||||
|
|
||||||
public List<string> InstancePathList { get; set; } = new List<string>();
|
|
||||||
|
|
||||||
public List<string> InstanceHtmlPathList { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//存放在instance 上面
|
//存放在instance 上面
|
||||||
public string WindowCenter { get; set; } = string.Empty;
|
public string WindowCenter { get; set; } = string.Empty;
|
||||||
public string WindowWidth { get; set; } = string.Empty;
|
public string WindowWidth { get; set; } = string.Empty;
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public string ImageResizePath { get; set; }
|
public string ImageResizePath { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,6 +192,16 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
study.SubjectId = incommand.SubjectId;
|
study.SubjectId = incommand.SubjectId;
|
||||||
study.SubjectVisitId = incommand.SubjectVisitId;
|
study.SubjectVisitId = incommand.SubjectVisitId;
|
||||||
|
|
||||||
|
//如果因为意外情况,连续点击两次,导致第一次插入了,第二次进来也会插入,在此判断一下
|
||||||
|
var findStudy = _dicomstudyRepository.FirstOrDefaultAsync(t => t.Id == study.Id);
|
||||||
|
|
||||||
|
if (findStudy != null)
|
||||||
|
{
|
||||||
|
//直接返回
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//特殊处理逻辑
|
//特殊处理逻辑
|
||||||
study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
|
study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
|
||||||
|
|
|
@ -322,33 +322,21 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
var instanceList = await _repository.Where<DicomInstance>(t => t.SeriesId == inDto.SeriesId)
|
var instanceList = await _repository.Where<DicomInstance>(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, t.SliceLocation }).ToListAsync();
|
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation }).ToListAsync();
|
||||||
series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderByDescending(t => t.SliceLocation).ThenBy(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.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k =>
|
||||||
series.InstancePathList = instanceList.Where(s => s.SeriesId == series.Id).OrderBy(t => t.InstanceNumber)
|
new InstanceBasicInfo()
|
||||||
.SelectMany(u =>
|
|
||||||
{
|
{
|
||||||
|
Id = k.Id,
|
||||||
|
NumberOfFrames = k.NumberOfFrames,
|
||||||
|
HtmlPath = k.HtmlPath,
|
||||||
|
Path = k.Path,
|
||||||
|
InstanceNumber = k.InstanceNumber,
|
||||||
|
|
||||||
if (u.NumberOfFrames > 1)
|
}).ToList();
|
||||||
{
|
|
||||||
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;
|
||||||
|
@ -442,33 +430,20 @@ namespace IRaCIS.Core.Application.Services
|
||||||
{
|
{
|
||||||
list.ForEach(series =>
|
list.ForEach(series =>
|
||||||
{
|
{
|
||||||
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.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k =>
|
||||||
|
new InstanceBasicInfo()
|
||||||
//处理多帧
|
|
||||||
series.InstancePathList = instanceList.Where(s => s.SeriesId == series.Id).OrderBy(t => t.InstanceNumber)
|
|
||||||
.SelectMany(u =>
|
|
||||||
{
|
{
|
||||||
|
Id = k.Id,
|
||||||
|
NumberOfFrames = k.NumberOfFrames,
|
||||||
|
HtmlPath = k.HtmlPath,
|
||||||
|
Path = k.Path,
|
||||||
|
InstanceNumber = k.InstanceNumber,
|
||||||
|
|
||||||
if (u.NumberOfFrames > 1)
|
}).ToList();
|
||||||
{
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue