From a5ef0fc902f91a9b7acee819b25be062fcbc4bbc Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 3 Sep 2024 13:02:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9oss=20=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ExtraController.cs | 32 +++--------- IRaCIS.Core.API/appsettings.Test_IRC.json | 9 ++-- IRaCIS.Core.Application/Helper/OSSService.cs | 7 ++- .../ImageAndDoc/DTO/DownloadAndUploadDTO.cs | 8 ++- .../ImageAndDoc/DTO/UnionStudyViewDodel.cs | 2 +- .../ImageAndDoc/DownloadAndUploadService.cs | 50 +++++++++++++++++-- .../Inspection/FrontAuditConfigService.cs | 8 +-- IRaCIS.Core.Application/TestService.cs | 4 +- 8 files changed, 79 insertions(+), 41 deletions(-) diff --git a/IRaCIS.Core.API/Controllers/ExtraController.cs b/IRaCIS.Core.API/Controllers/ExtraController.cs index 271483412..02829720b 100644 --- a/IRaCIS.Core.API/Controllers/ExtraController.cs +++ b/IRaCIS.Core.API/Controllers/ExtraController.cs @@ -304,10 +304,10 @@ namespace IRaCIS.Api.Controllers var client = new Client(new AlibabaCloud.OpenApiClient.Models.Config() { - //AccessKeyId = ossOptions.accessKeyId, - //AccessKeySecret = ossOptions.accessKeySecret, - AccessKeyId = "LTAI5tJV76pYX5yPg1N9QVE8", - AccessKeySecret = "roRNLa9YG1of4pYruJGCNKBXEWTAWa", + AccessKeyId = ossOptions.accessKeyId, + AccessKeySecret = ossOptions.accessKeySecret, + //AccessKeyId = "LTAI5tJV76pYX5yPg1N9QVE8", + //AccessKeySecret = "roRNLa9YG1of4pYruJGCNKBXEWTAWa", Endpoint = "sts.cn-hangzhou.aliyuncs.com" }); @@ -316,9 +316,9 @@ namespace IRaCIS.Api.Controllers // 将设置为自定义的会话名称,例如oss-role-session。 assumeRoleRequest.RoleSessionName = $"session-name-{NewId.NextGuid()}"; // 将替换为拥有上传文件到指定OSS Bucket权限的RAM角色的ARN。 - //assumeRoleRequest.RoleArn = ossOptions.roleArn; - assumeRoleRequest.RoleArn = "acs:ram::1899121822495495:role/webdirect"; - assumeRoleRequest.DurationSeconds = 7200; + assumeRoleRequest.RoleArn = ossOptions.roleArn; + //assumeRoleRequest.RoleArn = "acs:ram::1899121822495495:role/webdirect"; + assumeRoleRequest.DurationSeconds = ossOptions.durationSeconds; var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); var response = client.AssumeRoleWithOptions(assumeRoleRequest, runtime); var credentials = response.Body.Credentials; @@ -338,7 +338,7 @@ namespace IRaCIS.Api.Controllers }; - return ResponseOutput.Ok(new ObjectStoreDTO() { ObjectStoreUse = serviceOption.ObjectStoreUse, AliyunOSS = serviceOption.AliyunOSS, AliyunOSSTemp= tempToken }); + return ResponseOutput.Ok(new ObjectStoreDTO() { ObjectStoreUse = serviceOption.ObjectStoreUse, AliyunOSS = tempToken }); } @@ -352,23 +352,7 @@ namespace IRaCIS.Api.Controllers } } - [HttpGet("user/getUploadTempToken")] - public IResponseOutput GetUploadTempToken([FromServices] IOptionsMonitor options) - { - var serviceOption = options.CurrentValue; - if (Enum.TryParse(serviceOption.ObjectStoreUse, out var parsedEnum) && parsedEnum == ObjectStoreUse.AliyunOSS) - { - var ossOptions = serviceOption.AliyunOSS; - - - - } - - return ResponseOutput.Ok(); - - - } #region aliyun-net-sdk-sts 之前 diff --git a/IRaCIS.Core.API/appsettings.Test_IRC.json b/IRaCIS.Core.API/appsettings.Test_IRC.json index 938cbb330..9e640b82a 100644 --- a/IRaCIS.Core.API/appsettings.Test_IRC.json +++ b/IRaCIS.Core.API/appsettings.Test_IRC.json @@ -19,12 +19,13 @@ "regionId": "cn-shanghai", "internalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", "endPoint": "https://oss-cn-shanghai.aliyuncs.com", - "accessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ", - "accessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio", + "accessKeyId": "LTAI5tJV76pYX5yPg1N9QVE8", + "accessKeySecret": "roRNLa9YG1of4pYruJGCNKBXEWTAWa", "bucketName": "zy-irc-test-store", - "roleArn": "acs:ram::1899121822495495:role/oss-upload", + "roleArn": "acs:ram::1899121822495495:role/webdirect", "viewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com", - "region": "oss-cn-shanghai" + "region": "oss-cn-shanghai", + "durationSeconds": 7200 }, "MinIO": { "endPoint": "hir-oss.test.extimaging.com", diff --git a/IRaCIS.Core.Application/Helper/OSSService.cs b/IRaCIS.Core.Application/Helper/OSSService.cs index 5ed2eb864..db0c0a98d 100644 --- a/IRaCIS.Core.Application/Helper/OSSService.cs +++ b/IRaCIS.Core.Application/Helper/OSSService.cs @@ -55,6 +55,10 @@ namespace IRaCIS.Core.Application.Helper public string viewEndpoint { get; set; } + public int durationSeconds { get; set; } + + + } public class ObjectStoreServiceOptions @@ -74,9 +78,8 @@ namespace IRaCIS.Core.Application.Helper { public string ObjectStoreUse { get; set; } - public AliyunOSSOptions AliyunOSS { get; set; } - public AliyunOSSTempToken AliyunOSSTemp { get; set; } + public AliyunOSSTempToken AliyunOSS { get; set; } public MinIOOptions MinIO { get; set; } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs index 5f04db49f..f1a47922a 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs @@ -62,6 +62,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc.DTO } + public class SubjectCRCImageUploadedStudyDto: SubjectCRCImageUploadedDto + { + public bool IsDicom => DicomStudyList.Count() > 0; + } + public class SubjectCRCImageUploadedDto { public Guid VisitTaskId { get; set; } @@ -79,6 +84,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc.DTO public Guid? SourceSubjectVisitId { get; set; } + public List DicomStudyList { get; set; } public List NoneDicomStudyList { get; set; } @@ -125,7 +131,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc.DTO public string Description { get; set; } = string.Empty; - + } } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs index 4be018953..e46526418 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs @@ -415,7 +415,7 @@ namespace IRaCIS.Core.Application.Contracts public List NoneDicomStudyIdList { get; set; } } - public class IRReadingDownloadQuery + public class IRReadingDownloadQuery:SortInput { [NotDefault] public Guid SubjectId { get; set; } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index 033b465de..3472c6714 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -1,4 +1,5 @@ -using FellowOakDicom; +using DocumentFormat.OpenXml.Office2010.Ink; +using FellowOakDicom; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Helper; @@ -895,7 +896,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc } /// - /// IR 影像上传任务列表 + /// IR 影像上传任务列表 --old 20240903 界面调整,现在先废弃 /// /// /// @@ -1049,7 +1050,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc /// /// [HttpPost] - public async Task> GetSubjectImageDownloadSelectList(IRReadingDownloadQuery inQuery) + public async Task> GetSubjectImageDownloadSelectList(IRReadingDownloadQuery inQuery) { var query = _visitTaskRepository.Where(t => t.SubjectId == inQuery.SubjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId @@ -1059,12 +1060,53 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var list = await query.Where(t => t.SubjectCode == inQuery.SubjectCode).ToListAsync(); - return list; + #region 将任务级别转为检查级别 + + var result = new List(); + + var dicomStudyList = list.Where(item => item.DicomStudyList.Count > 0) + .Select(item => new SubjectCRCImageUploadedStudyDto + { + VisitTaskId = item.VisitTaskId, + SubjectId = item.SubjectId, + SubjectCode = item.SubjectCode, + TaskBlindName = item.TaskBlindName, + TaskName = item.TaskName, + IsImageFilter = item.IsImageFilter, + CriterionModalitys = item.CriterionModalitys, + SourceSubjectVisitId = item.SourceSubjectVisitId, + //取dicom + DicomStudyList = item.DicomStudyList, + }).ToList(); + + var noneStudyList = list.Where(item => item.NoneDicomStudyList.Count > 0) + .Select(item => new SubjectCRCImageUploadedStudyDto + { + VisitTaskId = item.VisitTaskId, + SubjectId = item.SubjectId, + SubjectCode = item.SubjectCode, + TaskBlindName = item.TaskBlindName, + TaskName = item.TaskName, + IsImageFilter = item.IsImageFilter, + CriterionModalitys = item.CriterionModalitys, + SourceSubjectVisitId = item.SourceSubjectVisitId, + //非dicom + NoneDicomStudyList = item.NoneDicomStudyList, + }).ToList(); + + + result.AddRange(dicomStudyList); + result.AddRange(noneStudyList); + #endregion + + + return result; } /// /// IR 阅片页面获取下载检查的信息 会根据标准进行过滤检查,(后端要考虑到一致性分析 subjectCode的问题) + /// 检查在访视下面,所以需要传递下载的访视Id,另外下载访视下面那些检查,就把访视下的对应的检查Id 丢到数组里就好 /// /// /// diff --git a/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs b/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs index ea40e39ee..7b24066a1 100644 --- a/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs +++ b/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs @@ -576,7 +576,7 @@ namespace IRaCIS.Core.Application.Service else { para = $"{JsonData["item"].ToString()}"; - ForeignKeyText = 1.ToString(); + ForeignKeyText = "UserName"; if (_frontAuditConfigRepository._dbContext.Database.IsSqlServer()) { @@ -586,7 +586,7 @@ namespace IRaCIS.Core.Application.Service } else if (_frontAuditConfigRepository._dbContext.Database.IsNpgsql()) { - //sql = $"select {ForeignKeyText} Text from \"{Table}\" where \"{ForeignKeyValue}\" = @para"; + sql = $"select \"{ForeignKeyText}\" Text from \"{Table}\" where \"{ForeignKeyValue}\" = @para"; } else { @@ -608,8 +608,8 @@ namespace IRaCIS.Core.Application.Service else if (_frontAuditConfigRepository._dbContext.Database.IsNpgsql()) { - //jsonDataValueDic[item.Key] = string.Join(",", _frontAuditConfigRepository._dbContext.Database.SqlQueryRaw - // (sql, new NpgsqlParameter("@para", Guid.Parse(para))).ToList()); + jsonDataValueDic[item.Key] = string.Join(",", _frontAuditConfigRepository._dbContext.Database.SqlQueryRaw + (sql, new NpgsqlParameter("@para",para)).ToList()); } else { diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index d7ca0db8c..4123731b5 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -109,7 +109,9 @@ namespace IRaCIS.Application.Services { var timeSpan= HolidayHelper.GetChinaWorkTimeSpan(startdate, endDate); - return $"{timeSpan.Days}天,{timeSpan.Hours}小时{timeSpan.Minutes}分钟{timeSpan.Seconds}"; + _userRepository.Where(t => t.Id == _userInfo.Id).Select(t => t.FullName).FirstOrDefault(); + + return $"{timeSpan.Days}天,{timeSpan.Hours}小时{timeSpan.Minutes}分钟{timeSpan.Seconds}秒"; } public async Task TestEFcore8()