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

Test_IRC_Net8
he 2025-07-02 15:55:08 +08:00
commit 7cf1798dd7
4 changed files with 41 additions and 25 deletions

View File

@ -5,6 +5,7 @@
//-------------------------------------------------------------------- //--------------------------------------------------------------------
using Amazon.Runtime; using Amazon.Runtime;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Helper;
@ -45,6 +46,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository, IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository,
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository, IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
IOptionsMonitor<SystemEmailSendConfig> _systemEmailSendConfig, IOptionsMonitor<SystemEmailSendConfig> _systemEmailSendConfig,
IDictionaryService _dictionaryService,
IEmailSendService _emailSendService, IEmailSendService _emailSendService,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment) : BaseService, ITrialEmailNoticeConfigService IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IWebHostEnvironment _hostEnvironment) : BaseService, ITrialEmailNoticeConfigService
{ {
@ -193,6 +195,9 @@ namespace IRaCIS.Core.Application.Service
var isEn_us = _userInfo.IsEn_Us; var isEn_us = _userInfo.IsEn_Us;
EmailBusinessScenario businessScenarioEnum = EmailBusinessScenario.None; EmailBusinessScenario businessScenarioEnum = EmailBusinessScenario.None;
var enrollReplace = "";
var PdReplace = "";
#region 任务关联的项目配置 标准信息及配置subject 信息 #region 任务关联的项目配置 标准信息及配置subject 信息
var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new var taskInfo = await _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new
{ {
@ -319,8 +324,9 @@ namespace IRaCIS.Core.Application.Service
//入组确认 根据每个标准配置的是否自动发送,发送邮件与否 //入组确认 根据每个标准配置的是否自动发送,发送邮件与否
if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed) if (businessScenarioEnum == EmailBusinessScenario.EnrollConfirmed)
{ {
var findItem = (await _dictionaryService.GetBasicDataSelect("Trial_Enroll_Report")).Where(t => t.Code == ((int)taskInfo.CriterionType).ToString()).FirstOrDefault();
enrollReplace = _userInfo.IsEn_Us ? findItem.Value : findItem.ValueCN;
//如果其他阅片人已经做了,说明发送了入组确认报告,第二个人做完就不发送了 //如果其他阅片人已经做了,说明发送了入组确认报告,第二个人做完就不发送了
@ -345,7 +351,9 @@ namespace IRaCIS.Core.Application.Service
} }
else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed) else if (businessScenarioEnum == EmailBusinessScenario.PDConfirmed)
{ {
var findItem = (await _dictionaryService.GetBasicDataSelect("Trial_PD_Report")).Where(t => t.Code == ((int)taskInfo.CriterionType).ToString()).FirstOrDefault();
PdReplace = _userInfo.IsEn_Us ? findItem.Value : findItem.ValueCN;
//有序 //有序
@ -614,6 +622,8 @@ namespace IRaCIS.Core.Application.Service
var value = new Dictionary<string, object>() var value = new Dictionary<string, object>()
{ {
["Criterion_Enroll_Replace"]= enrollReplace,
["Criterion_PD_Replace"]= PdReplace,
["SponsorName"] = taskInfo.SponsorName, ["SponsorName"] = taskInfo.SponsorName,
["ResearchProgramNo"] = taskInfo.ResearchProgramNo, ["ResearchProgramNo"] = taskInfo.ResearchProgramNo,
["TrialSiteCode"] = taskInfo.TrialSiteCode, ["TrialSiteCode"] = taskInfo.TrialSiteCode,
@ -651,10 +661,11 @@ namespace IRaCIS.Core.Application.Service
{ {
var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx"); var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx");
//using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write)) //模板写入数据先放本地才能转换为pdf
//{ using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
// wordMemoryStream.WriteTo(fileStream); {
//} wordMemoryStream.WriteTo(fileStream);
}
FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath)); FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath));
@ -695,10 +706,11 @@ namespace IRaCIS.Core.Application.Service
{ {
var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx"); var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx");
//using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write)) //模板写入数据先放本地才能转换为pdf
//{ using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
// wordMemoryStream.WriteTo(fileStream); {
//} wordMemoryStream.WriteTo(fileStream);
}
FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath)); FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath));
File.Delete(wordStoreServerPath); File.Delete(wordStoreServerPath);

View File

@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application
IRepository<SubjectVisit> _subjectVisitRepository, IRepository<SubjectVisit> _subjectVisitRepository,
IRepository<Enroll> _enrollRepository, IRepository<Enroll> _enrollRepository,
IRepository<TrialStateChange> _trialStateChangeRepository, IRepository<TrialStateChange> _trialStateChangeRepository,
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository, IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository, IRepository<TrialDicomAE> _dicomAERepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService
{ {
@ -1150,6 +1150,9 @@ namespace IRaCIS.Core.Application
trialInfo.IsPACSConnect = trialConfig.IsPACSConnect; trialInfo.IsPACSConnect = trialConfig.IsPACSConnect;
trialInfo.IsTrialPACSConfirmed = trialConfig.IsTrialPACSConfirmed; trialInfo.IsTrialPACSConfirmed = trialConfig.IsTrialPACSConfirmed;
trialInfo.UpdateTime = DateTime.Now; trialInfo.UpdateTime = DateTime.Now;
await _dicomAERepository.DeleteFromQueryAsync(t => t.TrialId == trialConfig.TrialId);
await _trialRepository.SaveChangesAsync(); await _trialRepository.SaveChangesAsync();
return ResponseOutput.Ok(); return ResponseOutput.Ok();

View File

@ -90,7 +90,7 @@ namespace IRaCIS.Core.Application.Service
// IsVerify=addOrEditDicomAE.Id==null // IsVerify=addOrEditDicomAE.Id==null
//}; //};
await _trialRepository.UpdatePartialFromQueryAsync(t => t.Id == addOrEditDicomAE.TrialId, u => new Trial() { IsPACSConnect = addOrEditDicomAE.IsPACSConnect }, true); await _trialRepository.UpdatePartialFromEFAutoAsync(addOrEditDicomAE.TrialId, u => new Trial() { IsPACSConnect = addOrEditDicomAE.IsPACSConnect }, true);
if (addOrEditDicomAE.IsPACSConnect) if (addOrEditDicomAE.IsPACSConnect)
@ -102,6 +102,7 @@ namespace IRaCIS.Core.Application.Service
} }
else else
{ {
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }

View File

@ -200,7 +200,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
break; break;
} }
var trialDicomAE =await _dbContext.TrialDicomAE.Where(t => t.TrialId == entity.Id).FirstOrDefaultAsync(); //var trialDicomAE = await _dbContext.TrialDicomAE.Where(t => t.TrialId == entity.Id).FirstOrDefaultAsync();
await InsertInspection<Trial>(item.Entity as Trial, type, x => new InspectionConvertDTO() await InsertInspection<Trial>(item.Entity as Trial, type, x => new InspectionConvertDTO()
{ {
@ -211,11 +211,10 @@ namespace IRaCIS.Core.Infra.EFCore.Common
{ {
//TrialDicList = string.Join(",", trialDics) //TrialDicList = string.Join(",", trialDics)
//CalledAE = trialDicomAE?.CalledAE,
CalledAE = trialDicomAE?.CalledAE, //IP = trialDicomAE?.IP,
IP = trialDicomAE?.IP, //Port = trialDicomAE?.Port,
Port = trialDicomAE?.Port, //IsTestOK = trialDicomAE?.IsTestOK,
IsTestOK = trialDicomAE?.IsTestOK,
ImageFormatListStr = string.Join("|", entity.ImageFormatList), ImageFormatListStr = string.Join("|", entity.ImageFormatList),
StudyNamesStr = string.Join("|", entity.StudyNameList.Where(x => x.IsChoose).Select(x => _userInfo.IsEn_Us ? x.EnName : x.Name)), StudyNamesStr = string.Join("|", entity.StudyNameList.Where(x => x.IsChoose).Select(x => _userInfo.IsEn_Us ? x.EnName : x.Name)),
@ -384,6 +383,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection<TrialDicomAE>(entity, type, x => new InspectionConvertDTO() await InsertInspection<TrialDicomAE>(entity, type, x => new InspectionConvertDTO()
{ {
IsDistinctionInterface = false
}); });
} }