Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
37d15736e2
|
@ -9920,7 +9920,7 @@
|
|||
<param name="trialId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TrialDicomAEService.TestSCPServerConnect(System.Guid)">
|
||||
<member name="M:IRaCIS.Core.Application.Service.TrialDicomAEService.TestSCPServerConnect(IRaCIS.Core.Application.ViewModel.TestAECommand)">
|
||||
<summary>
|
||||
测试scp server 是否可以连接
|
||||
</summary>
|
||||
|
|
|
@ -19,7 +19,6 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public DateTime? LatestTestTime { get; set; }
|
||||
|
||||
public bool IsTestOK { get; set; }
|
||||
|
||||
//public bool IsPACSConnect { get; set; }
|
||||
|
||||
|
@ -61,6 +60,15 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
|
||||
public bool IsPACSConnect { get; set; }
|
||||
|
||||
public bool? IsTestOK { get; set; }
|
||||
}
|
||||
|
||||
public class TestAECommand
|
||||
{
|
||||
public string CalledAE { get; set; } = string.Empty;
|
||||
public string IP { get; set; } = string.Empty;
|
||||
public int Port { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ using FellowOakDicom.Network.Client;
|
|||
using FellowOakDicom.Network;
|
||||
using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using DocumentFormat.OpenXml.InkML;
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
/// <summary>
|
||||
|
@ -84,6 +85,14 @@ namespace IRaCIS.Core.Application.Service
|
|||
VerifyMsg = _localizer["TrialDicomAE_RepeatCalledAE"]
|
||||
};
|
||||
|
||||
var verifyExp3 = new EntityVerifyExp<TrialDicomAE>()
|
||||
{
|
||||
VerifyExp = u => u.TrialId == addOrEditDicomAE.TrialId,
|
||||
|
||||
//"AE名称不能与其他项目相同"
|
||||
VerifyMsg = "该项目只允许添加一条dicom AE记录(前端对接有bug时出现)"
|
||||
};
|
||||
|
||||
//var verifyExp2 = new EntityVerifyExp<TrialDicomAE>()
|
||||
//{
|
||||
// VerifyExp = u => u.TrialId == addOrEditDicomAE.TrialId,
|
||||
|
@ -98,7 +107,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
if (addOrEditDicomAE.IsPACSConnect)
|
||||
{
|
||||
// 在此处拷贝automapper 映射
|
||||
var entity = await _dicomAERepository.InsertOrUpdateAsync(addOrEditDicomAE, true, verifyExp1, verifyExp2);
|
||||
var entity = await _dicomAERepository.InsertOrUpdateAsync(addOrEditDicomAE, true, verifyExp3, verifyExp1, verifyExp2);
|
||||
|
||||
return ResponseOutput.Ok(entity.Id.ToString());
|
||||
}
|
||||
|
@ -123,54 +132,33 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// 测试scp server 是否可以连接
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{dicomAEId:guid}")]
|
||||
public async Task<bool> TestSCPServerConnect(Guid dicomAEId)
|
||||
[HttpPost]
|
||||
public async Task<bool> TestSCPServerConnect(TestAECommand inCommand)
|
||||
{
|
||||
var find = await _dicomAERepository.FirstOrDefaultAsync(t => t.Id == dicomAEId);
|
||||
|
||||
if (find == null)
|
||||
try
|
||||
{
|
||||
var client = DicomClientFactory.Create(inCommand.IP, inCommand.Port, false, "test-callingAE", inCommand.CalledAE);
|
||||
|
||||
return false;
|
||||
client.NegotiateAsyncOps();
|
||||
|
||||
await client.AddRequestAsync(new DicomCEchoRequest());
|
||||
|
||||
// 创建一个超时任务,设置超时时间为1秒
|
||||
var timeoutTask = Task.Delay(TimeSpan.FromSeconds(3));
|
||||
|
||||
// 发送 DICOM 请求
|
||||
var sendTask = client.SendAsync();
|
||||
|
||||
// 等待任务完成,若超时任务先完成则抛出超时异常
|
||||
if (await Task.WhenAny(sendTask, timeoutTask) == timeoutTask)
|
||||
{
|
||||
throw new TimeoutException("DICOM 请求超时。");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
catch (Exception ex)
|
||||
{
|
||||
find.LatestTestTime = DateTime.Now;
|
||||
|
||||
try
|
||||
{
|
||||
var client = DicomClientFactory.Create(find.IP, find.Port, false, "test-callingAE", find.CalledAE);
|
||||
|
||||
client.NegotiateAsyncOps();
|
||||
|
||||
await client.AddRequestAsync(new DicomCEchoRequest());
|
||||
|
||||
// 创建一个超时任务,设置超时时间为1秒
|
||||
var timeoutTask = Task.Delay(TimeSpan.FromSeconds(3));
|
||||
|
||||
// 发送 DICOM 请求
|
||||
var sendTask = client.SendAsync();
|
||||
|
||||
// 等待任务完成,若超时任务先完成则抛出超时异常
|
||||
if (await Task.WhenAny(sendTask, timeoutTask) == timeoutTask)
|
||||
{
|
||||
throw new TimeoutException("DICOM 请求超时。");
|
||||
}
|
||||
|
||||
|
||||
find.IsTestOK = true;
|
||||
|
||||
await _dicomAERepository.SaveChangesAsync();
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
find.IsTestOK = false;
|
||||
await _dicomAERepository.SaveChangesAsync();
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ using System.Linq.Expressions;
|
|||
using System.Reflection.Metadata;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Xceed.Words.NET;
|
||||
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
|
@ -204,6 +205,32 @@ namespace IRaCIS.Application.Services
|
|||
public async Task<string> testEmail([FromServices] IWebHostEnvironment env ,string email)
|
||||
{
|
||||
|
||||
//using (DocX document = DocX.Load("C:\\Users\\hang\\Desktop\\"))
|
||||
//{
|
||||
// // 查找书签对应的段落
|
||||
// var bookmark = document.Bookmarks.FirstOrDefault(b => b.Name == bookmarkName);
|
||||
|
||||
// if (bookmark != null)
|
||||
// {
|
||||
// // 获取书签所在的段落位置
|
||||
// int paragraphIndex = document.Paragraphs.IndexOf(bookmark.Paragraph);
|
||||
|
||||
// // 如果书签所在的段落在文档中
|
||||
// if (paragraphIndex >= 0)
|
||||
// {
|
||||
// // 删除书签所在的段落
|
||||
// document.RemoveParagraphAt(paragraphIndex);
|
||||
// }
|
||||
|
||||
// // 删除书签(只删除书签标记,不删除内容)
|
||||
// document.Bookmarks.Remove(bookmark);
|
||||
// }
|
||||
|
||||
// // 保存修改
|
||||
// document.Save();
|
||||
//}
|
||||
|
||||
|
||||
var hiddenEmail = EmailMaskHelper.MaskEmail(email);
|
||||
|
||||
return hiddenEmail;
|
||||
|
|
|
@ -45,7 +45,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public DateTime? LatestTestTime { get; set; }
|
||||
|
||||
public bool IsTestOK { get; set; }
|
||||
public bool? IsTestOK { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue