From d2697d5133159427e1ada038640d0f5817d65a64 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 9 Jun 2025 10:31:02 +0800
Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=83=A8=E4=BD=8D=E3=80=81?=
 =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=8A=80=E6=9C=AF=E3=80=81=E6=A3=80=E6=9F=A5?=
 =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=9C=A8=E7=A1=AE=E8=AE=A4=E6=8F=90=E4=BA=A4?=
 =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../ImageAndDoc/DownloadAndUploadService.cs   |  5 ++--
 .../TrialSiteUser/DTO/TrialConfigDTO.cs       |  6 ++++
 .../TrialSiteUser/TrialConfigService.cs       | 28 ++++++++++++++++++-
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
index b9175ac2b..5557ae305 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
@@ -1168,7 +1168,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
 
 
         #region 影像汇总页面
-
+        [HttpPost]
         public async Task<IResponseOutput<PageOutput<TrialVisitImageStatView>>> GetTrialVisitImageStatList(TrialVisitImageQuery inQuery)
         {
             var query = _subjectVisitRepository.Where(t => t.TrialId == inQuery.TrialId)
@@ -1216,7 +1216,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
         /// </summary>
         /// <param name="trialId"></param>
         /// <returns></returns>
-        public async Task<IResponseOutput> GetTrialVisitImageStatInfo(Guid trialId)
+        public async Task<IResponseOutput<TrialImageStatInfo>> GetTrialVisitImageStatInfo(Guid trialId)
         {
             var subjectImageList = _subjectVisitRepository.Where(t => t.TrialId == trialId)
                   .Where(t => t.StudyList.Sum(t => t.InstanceCount) > 0 || t.NoneDicomStudyList.Sum(t => t.FileCount) > 0)
@@ -1246,6 +1246,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
         /// </summary>
         /// <param name="inCommand"></param>
         /// <returns></returns>
+        [HttpPost]
         public async Task<IResponseOutput> GetExportSubjectVisitImageList(TrialExportImageCommand inCommand)
         {
 
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index f20d86207..ff93bdf25 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -1115,6 +1115,12 @@ namespace IRaCIS.Core.Application.Contracts
         public List<string> ClinicalDataSetNames { get; set; } = new List<string>();
 
 
+
+        public List<string> StudyUseModalityList { get; set; }
+
+        public List<string> StudyUseStudyNameList { get; set; }
+
+
         //public bool IsTrialStart { get; set; } = false;
 
 
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index b3c3b34ee..ecc94cf0f 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -1274,12 +1274,38 @@ namespace IRaCIS.Core.Application
         [HttpGet("{trialId:guid}")]
         public async Task<TrialConfigDTO> GetTrialConfigInfo(Guid trialId)
         {
-            return await _trialRepository.Where(t => t.Id == trialId).ProjectTo<TrialConfigDTO>(_mapper.ConfigurationProvider, new
+            var result= await _trialRepository.Where(t => t.Id == trialId).ProjectTo<TrialConfigDTO>(_mapper.ConfigurationProvider, new
             {
                 isEn_Us = _userInfo.IsEn_Us
 
             })
         .FirstOrDefaultAsync().IfNullThrowException();
+
+            var use = _trialRepository.Where(t => t.Id == trialId).Select(t => new
+            {
+                DicomModalityList = t.StudyList.Where(t => t.ModalityForEdit != "")
+                 .Select(c => c.ModalityForEdit)
+                 .Distinct(),
+
+                 DicomStudyNameList= t.StudyList.Where(t => t.StudyName != "")
+                 .Select(c => c.StudyName)
+                 .Distinct(),
+
+                NoneDicomStudyNameList = t.NoneDicomStudyList.Where(t => t.StudyName != "")
+                 .Select(c => c.StudyName)
+                 .Distinct(),
+
+                NoneDicomModalityList = t.NoneDicomStudyList.Where(t => t.Modality != "")
+                 .Select(c => c.Modality)
+                 .Distinct(),
+
+            }).FirstOrDefault();
+
+            result.StudyUseModalityList= use.DicomModalityList.Union(use.NoneDicomModalityList).Distinct().ToList();
+
+            result.StudyUseStudyNameList = use.DicomStudyNameList.Union(use.NoneDicomStudyNameList).Distinct().ToList();
+
+            return result;
         }
 
         [TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]