From 0f0c670ec80fa0a931a68e8e88257b325eee4f3c Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 26 May 2026 13:34:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=88=A4=E6=96=AD=EF=BC=8C=E6=98=AF=E5=90=A6=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E9=98=85=E7=89=87=E5=BD=B1=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ImageAndDoc/DTO/UnionStudyViewDodel.cs | 3 +++ .../ImageAndDoc/DownloadAndUploadService.cs | 15 +++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs index 9edf88c4b..26fbd7752 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs @@ -776,6 +776,9 @@ namespace IRaCIS.Core.Application.Contracts public List DicomStudyIdList { get; set; } public List NoneDicomStudyIdList { get; set; } + + // true 导出阅片,null 就是所有影像 + public bool? IsExportReading { get; set; } } public class IRReadingDownloadQuery : SortInput diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index db29531ad..eff2a5aed 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -1141,6 +1141,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var isQueryDicom = inQuery.DicomStudyIdList.Count > 0; var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0; + var isExportReading = inQuery.IsExportReading == true; + var imageType = (isQueryDicom && isQueryNoneDicom) ? ImageType.DicomAndNoneDicom : (isQueryDicom ? ImageType.Dicom : ImageType.NoneDicom); var dirDic = new Dictionary(); @@ -1150,11 +1152,12 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //有传输语法值的导出 才生成DIR //if (_subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList)).All(c => c.TransferSytaxUID != string.Empty)) - if (!_instanceRepository.Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) + if (!_instanceRepository.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true) + .Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) { var list = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) - .SelectMany(t => t.InstanceList) + .SelectMany(t => t.InstanceList.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true)) .Select(t => new StudyDIRInfo() { @@ -1235,11 +1238,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc StudyInstanceUid = u.StudyInstanceUid, StudyDIRPath = u.StudyDIRPath, - SeriesList = u.SeriesList.Select(z => new DownloadDicomSeriesDto() + SeriesList = u.SeriesList.Where(t => isExportReading ? t.IsReading : true).Select(z => new DownloadDicomSeriesDto() { Modality = z.Modality, - InstanceList = z.DicomInstanceList.Select(k => new DownloadDicomInstanceDto() + InstanceList = z.DicomInstanceList.Where(t => isExportReading ? t.IsReading : true).Select(k => new DownloadDicomInstanceDto() { IsEncapsulated = k.IsEncapsulated, InstanceId = k.Id, @@ -1251,7 +1254,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc }).ToList(), - NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) + NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => isExportReading ? t.IsReading : true).Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) .Select(nd => new DownloadNoneDicomStudyDto() { @@ -1259,7 +1262,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc StudyCode = nd.StudyCode, ImageDate = nd.ImageDate, - FileList = nd.NoneDicomFileList.Select(file => new DownloadNoneDicomFileDto() + FileList = nd.NoneDicomFileList.Where(t => isExportReading ? t.IsReading : true).Select(file => new DownloadNoneDicomFileDto() { FileName = file.FileName, Path = file.Path, From 104f46c9dbbaa8b3d2c80f5a6843fb8494ce2caf Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 26 May 2026 13:56:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9oss=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRC.Core.SCP/appsettings.Uat_IRC_SCP.json | 31 ++++++++++++++++--- IRaCIS.Core.API/appsettings.Uat_IRC.json | 6 ++-- .../IRaCIS.Core.Application.xml | 6 ++-- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json b/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json index 73491155e..d42722a6d 100644 --- a/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json +++ b/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json @@ -32,13 +32,34 @@ "RegionId": "cn-shanghai", "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", "EndPoint": "https://oss-cn-shanghai.aliyuncs.com", - "AccessKeyId": "LTAI5tFUCCmz5TwghZHsj45Y", - "AccessKeySecret": "8evrBy1fVfzJG25i67Jm0xqn9Xcw2T", - "RoleArn": "acs:ram::1078130221702011:role/uat-oss-access", - "BucketName": "tl-med-irc-uat-store", - "ViewEndpoint": "https://tl-med-irc-uat-store.oss-cn-shanghai.aliyuncs.com", + "AccessKeyId": "LTAI5tRRZehUp2V9pyTPtAJm", + "AccessKeySecret": "FLizxkHsMm4CGYHtkV8E3PNJJZU7oV", + "RoleArn": "acs:ram::1899121822495495:role/dev-oss-access", + "BucketName": "zy-irc-test-store", + "ViewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com", "Region": "oss-cn-shanghai", "DurationSeconds": 7200 + }, + // AWS S3 对象存储服务的配置 + "AWS": { + // AWS S3 的Region + "Region": "us-east-1", + // AWS S3 的内部访问端点 + "EndPoint": "s3.us-east-1.amazonaws.com", + // 是否使用 SSL + "UseSSL": true, + // AWS S3 的角色 ARN + "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access", + // AWS S3 的访问密钥 ID + "AccessKeyId": "AKIAW3MEAFJX7IPXISP4", + // AWS S3 的访问密钥 Secret + "SecretAccessKey": "Pgrg3le5jPxZQ7MR1yYNS30J0XRyJeKVyIIjElXc", + // AWS S3 的Bucket名称 + "BucketName": "ei-med-s3-lili-uat-store", + // AWS S3 的访问端点 + "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com", + // AWS S3 的持续数秒 + "DurationSeconds": 7200 } }, "ConnectionStrings": { diff --git a/IRaCIS.Core.API/appsettings.Uat_IRC.json b/IRaCIS.Core.API/appsettings.Uat_IRC.json index 7d7226ba2..2186b76d6 100644 --- a/IRaCIS.Core.API/appsettings.Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.Uat_IRC.json @@ -70,9 +70,9 @@ "Region": "us-east-1", "EndPoint": "s3.us-east-1.amazonaws.com", "UseSSL": true, - "RoleArn": "arn:aws:iam::471112624751:role/sts_s3_upload", - "AccessKeyId": "AKIAW3MEAFJXWRCGSX5Z", - "SecretAccessKey": "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", + "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access", + "AccessKeyId": "AKIAW3MEAFJX7IPXISP4", + "SecretAccessKey": "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", "BucketName": "ei-med-s3-lili-uat-store", "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com/", "DurationSeconds": 7200 diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index a95f694c0..22d7b2d86 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -17479,17 +17479,17 @@ - ���� + 质疑 - һ���Ժ˲� + 一致性核查 - ���� + 复制