diff --git a/.gitignore b/.gitignore index 490c28f8c..2ea13e829 100644 --- a/.gitignore +++ b/.gitignore @@ -362,3 +362,4 @@ MigrationBackup/ # Fody - auto-generated XML schema FodyWeavers.xsd /UploadFile/Check +/TrialData/281bdb09-f792-4faa-de18-08da0e042672/50d0cf71-ee4d-4e54-af06-490f8be1bff1/72b8ef0b-4adc-465e-fa25-08da122bbd9c/eb53c5e2-6307-42f3-d710-08da122bbde1/Dicom diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index ac8fae56a..e719f66e0 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1025,6 +1025,15 @@ 指定资源Id,渲染Dicom序列的Jpeg预览图像 Dicom序列的Id + + + + + + isAllSiteUser true : site用户列表,false :Site调研汇总表 + + + Pannel 进去 SiteTab diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index ca39d9b2a..0673bf0ae 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1725,7 +1725,7 @@ namespace IRaCIS.Core.Application.Image.QA var info = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync(); - var targetPath = Path.Combine("/IMPORT-IMAGES", info.TrialCode + "_" + info.SubjectCode + "_" + info.VisitName); + var targetPath ="/IMPORT-IMAGES/"+info.TrialCode + "_" + info.SubjectCode + "_" + info.VisitName; var path = _dicomFileStoreHelper.GetSubjectVisitPath(info.TrialId, info.SiteId, info.SubjectId, info.SubjectVisitId); @@ -1739,49 +1739,60 @@ namespace IRaCIS.Core.Application.Image.QA HostName = "CS-690-sftp.mint-imaging.com", UserName = "zdong", Password = "Everest@2021", - //GiveUpSecurityAndAcceptAnySshHostKey = true, SshHostKeyFingerprint = @"ecdsa-sha2-nistp384 384 59gkjJ5lMwv3jsB8Wz2B35tBAIor5pSd8PcJYtoamPo=" }; using (Session session = new Session()) { + var studyFolders = (new DirectoryInfo(path)).GetDirectories(); + session.Open(sessionOptions); + if (!session.FileExists(targetPath)) { session.CreateDirectory(targetPath); } - var files = (new DirectoryInfo(path)).GetFiles(); - - foreach (var file in files) + foreach (var studyFolder in studyFolders) { - if (file.Extension.Contains("dcm")) + if (!session.FileExists(Path.Combine(targetPath,studyFolder.Name)) { - string remoteFilePath = - RemotePath.TranslateLocalPathToRemote(file.FullName, path, targetPath); + session.CreateDirectory(targetPath); + } - var result = session.PutFiles(file.FullName, remoteFilePath, false); - - if (!result.IsSuccess) + foreach (var file in studyFolder.GetFiles()) + { + if (file.Extension.Contains("dcm",StringComparison.OrdinalIgnoreCase)) { - await _subjectVisitRepository.UpdateFromQueryAsync(t => t.Id == subjectVisitId, - u => new SubjectVisit() { ForwardState = ForwardStateEnum.ForwardFailed }); + string remoteFilePath = + RemotePath.TranslateLocalPathToRemote(file.FullName, studyFolder.FullName, targetPath); - return ResponseOutput.NotOk("Forward Failed"); + var result = session.PutFiles(file.FullName, remoteFilePath, false); + + if (!result.IsSuccess) + { + await _subjectVisitRepository.UpdateFromQueryAsync(t => t.Id == subjectVisitId, + u => new SubjectVisit() { ForwardState = ForwardStateEnum.ForwardFailed }); + + return ResponseOutput.NotOk("Forward Failed" + result.Failures.ToString() + result.ToJson()); + } } } } - - + } } catch (Exception e) { + + await _subjectVisitRepository.UpdateFromQueryAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { ForwardState = ForwardStateEnum.ForwardFailed }); + } + await _subjectVisitRepository.UpdateFromQueryAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { ForwardState = ForwardStateEnum.Forwarded }); @@ -1789,5 +1800,8 @@ namespace IRaCIS.Core.Application.Image.QA return ResponseOutput.Ok(); } + + + } } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs index 170b87445..aadb71dbc 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs @@ -2,7 +2,6 @@ using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure.ExpressionExtend; using IRaCIS.Core.Application.Filter; -using IRaCIS.Core.Infra.EFCore; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.Contracts; @@ -30,7 +29,14 @@ namespace IRaCIS.Core.Application.Services } + /// + /// + /// + /// + /// isAllSiteUser true : site用户列表,false :Site调研汇总表 + /// + /// [HttpGet, Route("{trialId:guid}/{isSiteUserNotAll:bool}")] [AllowAnonymous] public async Task TrialSiteUserListExport(Guid trialId, bool isAllSiteUser, diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index e8c50a7ec..ecc0b57cb 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -1,5 +1,4 @@ using IRaCIS.Core.Infrastructure.ExpressionExtend; -using IRaCIS.Core.Infra.EFCore; using IRaCIS.Core.Application.Filter; using Microsoft.AspNetCore.Mvc; @@ -235,5 +234,7 @@ namespace IRaCIS.Core.Application.Services } + + } }