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

IRC_NewDev
he 2024-08-09 17:13:07 +08:00
commit 37d15736e2
5 changed files with 70 additions and 47 deletions

View File

@ -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>

View File

@ -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; }
}

View File

@ -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;
}

View File

@ -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;

View File

@ -45,7 +45,7 @@ namespace IRaCIS.Core.Domain.Models
public DateTime? LatestTestTime { get; set; }
public bool IsTestOK { get; set; }
public bool? IsTestOK { get; set; }
}