影像转发提交

This commit is contained in:
2022-04-06 13:39:40 +08:00
parent 68cf8c5e42
commit 25555d92dd
5 changed files with 49 additions and 18 deletions
@@ -1725,7 +1725,7 @@ namespace IRaCIS.Core.Application.Image.QA
var info = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).ProjectTo<DicomTrialSiteSubjectInfo>(_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();
}
}
}