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
7cf1798dd7
|
@ -5,6 +5,7 @@
|
|||
//--------------------------------------------------------------------
|
||||
|
||||
using Amazon.Runtime;
|
||||
using IRaCIS.Application.Interfaces;
|
||||
using IRaCIS.Core.Application.Contracts;
|
||||
using IRaCIS.Core.Application.Filter;
|
||||
using IRaCIS.Core.Application.Helper;
|
||||
|
@ -45,6 +46,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
|
||||
IOptionsMonitor<SystemEmailSendConfig> _systemEmailSendConfig,
|
||||
IDictionaryService _dictionaryService,
|
||||
IEmailSendService _emailSendService,
|
||||
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;
|
||||
EmailBusinessScenario businessScenarioEnum = EmailBusinessScenario.None;
|
||||
|
||||
var enrollReplace = "";
|
||||
var PdReplace = "";
|
||||
|
||||
#region 任务关联的项目配置 标准信息及配置,subject 信息
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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>()
|
||||
{
|
||||
["Criterion_Enroll_Replace"]= enrollReplace,
|
||||
["Criterion_PD_Replace"]= PdReplace,
|
||||
["SponsorName"] = taskInfo.SponsorName,
|
||||
["ResearchProgramNo"] = taskInfo.ResearchProgramNo,
|
||||
["TrialSiteCode"] = taskInfo.TrialSiteCode,
|
||||
|
@ -651,10 +661,11 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx");
|
||||
|
||||
//using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
|
||||
//{
|
||||
// wordMemoryStream.WriteTo(fileStream);
|
||||
//}
|
||||
//模板写入数据先放本地才能转换为pdf
|
||||
using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
|
||||
{
|
||||
wordMemoryStream.WriteTo(fileStream);
|
||||
}
|
||||
|
||||
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");
|
||||
|
||||
//using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
|
||||
//{
|
||||
// wordMemoryStream.WriteTo(fileStream);
|
||||
//}
|
||||
//模板写入数据先放本地才能转换为pdf
|
||||
using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
|
||||
{
|
||||
wordMemoryStream.WriteTo(fileStream);
|
||||
}
|
||||
FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath));
|
||||
|
||||
File.Delete(wordStoreServerPath);
|
||||
|
|
|
@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application
|
|||
IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
IRepository<Enroll> _enrollRepository,
|
||||
IRepository<TrialStateChange> _trialStateChangeRepository,
|
||||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository, IRepository<TrialDicomAE> _dicomAERepository,
|
||||
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService
|
||||
{
|
||||
|
||||
|
@ -1150,6 +1150,9 @@ namespace IRaCIS.Core.Application
|
|||
trialInfo.IsPACSConnect = trialConfig.IsPACSConnect;
|
||||
trialInfo.IsTrialPACSConfirmed = trialConfig.IsTrialPACSConfirmed;
|
||||
trialInfo.UpdateTime = DateTime.Now;
|
||||
|
||||
await _dicomAERepository.DeleteFromQueryAsync(t => t.TrialId == trialConfig.TrialId);
|
||||
|
||||
await _trialRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
|
|
@ -90,7 +90,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
// 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)
|
||||
|
@ -102,6 +102,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
}
|
||||
else
|
||||
{
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
/// <param name="unitDataList">单位字典</param>
|
||||
/// <param name="answer">答案</param>
|
||||
/// <returns></returns>
|
||||
public string Translationunit(string answerType, ValueUnit? unit, string customUnit, List<UnitData> unitDataList,string? answer)
|
||||
public string Translationunit(string answerType, ValueUnit? unit, string customUnit, List<UnitData> unitDataList, string? answer)
|
||||
{
|
||||
if (answerType == "upload")
|
||||
{
|
||||
|
@ -104,7 +104,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
return answer + string.Empty + customUnit;
|
||||
}
|
||||
|
||||
return answer +string.Empty + unitDataList.Where(y => y.Unit == unit).Select(x => x.UnitName).FirstIsNullReturnEmpty();
|
||||
return answer + string.Empty + unitDataList.Where(y => y.Unit == unit).Select(x => x.UnitName).FirstIsNullReturnEmpty();
|
||||
}
|
||||
public string GetEntityAuditOpt(EntityEntry entityEntry)
|
||||
{
|
||||
|
@ -200,22 +200,21 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
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()
|
||||
{
|
||||
TrialId = x.Id,
|
||||
|
||||
|
||||
ExtraIndentification = extraIdentification,
|
||||
}, new
|
||||
{
|
||||
//TrialDicList = string.Join(",", trialDics)
|
||||
|
||||
|
||||
CalledAE = trialDicomAE?.CalledAE,
|
||||
IP = trialDicomAE?.IP,
|
||||
Port = trialDicomAE?.Port,
|
||||
IsTestOK = trialDicomAE?.IsTestOK,
|
||||
//CalledAE = trialDicomAE?.CalledAE,
|
||||
//IP = trialDicomAE?.IP,
|
||||
//Port = trialDicomAE?.Port,
|
||||
//IsTestOK = trialDicomAE?.IsTestOK,
|
||||
ImageFormatListStr = string.Join("|", entity.ImageFormatList),
|
||||
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()
|
||||
{
|
||||
IsDistinctionInterface = false
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -3139,7 +3139,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
(t, u) =>
|
||||
new
|
||||
{
|
||||
Answer = Translationunit(u.AnswerType, u.Unit,u.CustomUnit, unitDataList, t.Answer),
|
||||
Answer = Translationunit(u.AnswerType, u.Unit, u.CustomUnit, unitDataList, t.Answer),
|
||||
u.DictionaryCode,
|
||||
u.QuestionName,
|
||||
u.QuestionEnName,
|
||||
|
@ -3247,12 +3247,12 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
|
||||
string extraIdentification = string.Empty;
|
||||
|
||||
var readingQuestion = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == entity.QuestionId).Include(x=>x.ReadingQuestionCriterionTrial).FirstNotNullAsync();
|
||||
var readingQuestion = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == entity.QuestionId).Include(x => x.ReadingQuestionCriterionTrial).FirstNotNullAsync();
|
||||
if (readingQuestion.ReadingQuestionCriterionTrial.CriterionGroup == CriterionGroup.Nontumorous)
|
||||
{
|
||||
extraIdentification = "/Nontumorous";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
await InsertInspection<ReadingTableAnswerRowInfo>(entity, type, x => new InspectionConvertDTO()
|
||||
|
@ -3676,9 +3676,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
}
|
||||
}
|
||||
|
||||
if(entity.TaskBlindName.Contains("Timepoint Ran"))
|
||||
if (entity.TaskBlindName.Contains("Timepoint Ran"))
|
||||
{
|
||||
if(_dbContext.VisitTask.Where(t => t.Id == entity.Id).Any(t => !t.TaskBlindName.Contains("Timepoint Ran")))
|
||||
if (_dbContext.VisitTask.Where(t => t.Id == entity.Id).Any(t => !t.TaskBlindName.Contains("Timepoint Ran")))
|
||||
{
|
||||
isDistinctionInterface = false;
|
||||
extraIdentification = "/TriggerSystemBlindingName";
|
||||
|
|
Loading…
Reference in New Issue