From 04422cd7957432642409270a593de17b99526bf4 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 23 Jun 2025 14:13:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E8=AE=B0=E7=9A=84=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ImageAndDoc/DTO/DicomSeriesModel.cs | 4 ++++ .../Service/Visit/SubjectVisitService.cs | 17 +++++++++++++++-- .../ReadingTaskQuestionMark.cs | 4 ++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs index 6eb13813a..f0d944125 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs @@ -68,6 +68,10 @@ namespace IRaCIS.Core.Application.Contracts.Dicom.DTO public int? NumberOfFrames { get; set; } public DateTime CreateTime { get; set; } + + public int? QuestionSort { get; set; } + + public int? RowSort { get; set; } } public class InstanceBasicInfo { diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index 17be4e3ba..d0c67454b 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -20,6 +20,7 @@ namespace IRaCIS.Core.Application.Services IRepository _visitTaskRepository, IRepository _readingTableAnswerRowInfoRepository, IRepository _readingCustomTagRepository, + IRepository _readingTaskQuestionMark, IRepository _noneDicomStudyFileRepository, IRepository _subjectRepository, IRepository _dicomInstanceRepository, @@ -570,6 +571,7 @@ namespace IRaCIS.Core.Application.Services InstanceId = x.InstanceId, NumberOfFrames = x.NumberOfFrames, CreateTime=x.CreateTime, + }).ToListAsync(); @@ -584,9 +586,20 @@ namespace IRaCIS.Core.Application.Services NumberOfFrames = x.NumberOfFrames, CreateTime = x.CreateTime, }).ToListAsync(); - rowInfoList.AddRange(customoList); + var questionMarkList = await _readingTaskQuestionMark.Where(x => x.VisitTaskId == indto.VisitTaskId && x.StudyId != null).Select(x => new StudyInstanceInfo() + { + ShowOrder = x.ReadingQuestionTrial==null?0: x.ReadingQuestionTrial.ShowOrder, + RowIndex = 0m, + SeriesId = x.SeriesId, + StudyId = x.StudyId, + InstanceId = x.InstanceId, + NumberOfFrames = x.NumberOfFrames, + CreateTime = x.CreateTime, + }).ToListAsync(); + rowInfoList.AddRange(questionMarkList); + var thisStudyIds = rowInfoList.OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).Select(x => x.StudyId).Distinct().ToList(); var thisSeriesIdIds = rowInfoList.Where(x => x.SeriesId != null).OrderBy(x => x.ShowOrder).ThenBy(x => x.RowIndex).Select(x => x.SeriesId).Distinct().ToList(); if (rowInfoList.Count > 0) @@ -646,7 +659,7 @@ namespace IRaCIS.Core.Application.Services }); - item.InstanceInfoList = item.InstanceInfoList.OrderBy(x => x.RowDate).ToList(); + item.InstanceInfoList = item.InstanceInfoList.OrderBy(x => x.ShowOrder).ThenBy(x=>x.RowIndex).ThenBy(x=>x.RowDate).ToList(); item.InstanceCount = item.InstanceInfoList.Count; diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs index 72d489d1b..28d2f37f6 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTaskQuestionMark.cs @@ -8,7 +8,7 @@ public class ReadingTaskQuestionMark : BaseAddAuditEntity #region 导航属性 [JsonIgnore] [ForeignKey("QuestionId")] - public ReadingQuestionTrial ReadingQuestionTrial { get; set; } + public ReadingQuestionTrial? ReadingQuestionTrial { get; set; } [JsonIgnore] [ForeignKey("VisitTaskId")] @@ -16,7 +16,7 @@ public class ReadingTaskQuestionMark : BaseAddAuditEntity #endregion public Guid VisitTaskId { get; set; } - public Guid QuestionId { get; set; } + public Guid? QuestionId { get; set; } public Guid? InstanceId { get; set; }