diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 02e3ffaf4..22b0ddb56 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -782,6 +782,12 @@ namespace IRaCIS.Core.Application.Contracts public bool IsSign { get; set; } } + public class AsyncTrialCriterionDictionaryInDto + { + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + } + public class SetGlobalReadingInfoInDto { [NotDefault] diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 860c967bc..b7dde28a9 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -149,6 +149,35 @@ namespace IRaCIS.Core.Application return trialInfo; } + /// + /// 同步项目标准字典信息 + /// + /// + /// + [HttpPost] + public async Task AsyncTrialCriterionDictionary(AsyncTrialCriterionDictionaryInDto inDto) + { + var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); + + if (trialCriterion.ReadingQuestionCriterionSystemId != null) + { + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id); + var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) + .ToListAsync(); + criterionDictionaryList.ForEach(x => { + x.Id = NewId.NextGuid(); + x.Dictionary = null; + x.IsSystemCriterion = false; + x.CriterionId = inDto.TrialReadingCriterionId; + }); + + await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList); + await _readingCriterionDictionaryRepository.SaveChangesAsync(); + } + + return ResponseOutput.Ok(true); + } + /// /// 修改全局阅片配置信息 /// @@ -187,22 +216,6 @@ namespace IRaCIS.Core.Application { var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); - - if (trialCriterion.ReadingQuestionCriterionSystemId != null) - { - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id); - var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) - .ToListAsync(); - criterionDictionaryList.ForEach(x => { - x.Id = NewId.NextGuid(); - x.Dictionary = null; - x.IsSystemCriterion = false; - x.CriterionId = inDto.TrialReadingCriterionId; - }); - - await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList); - await _readingCriterionDictionaryRepository.SaveChangesAsync(); - } GetGlobalReadingOutDto result = new GetGlobalReadingOutDto() { IsGlobalReading = trialCriterion.IsGlobalReading, @@ -239,24 +252,6 @@ namespace IRaCIS.Core.Application { var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); - - if (trialCriterion.ReadingQuestionCriterionSystemId != null) - { - await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id); - var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) - .ToListAsync(); - criterionDictionaryList.ForEach(x => { - x.Id = NewId.NextGuid(); - x.Dictionary = null; - x.IsSystemCriterion = false; - x.CriterionId = inDto.TrialReadingCriterionId; - }); - - await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList); - await _readingCriterionDictionaryRepository.SaveChangesAsync(); - } - - return new GetOncologySetOutDto { EvaluationReason = trialCriterion.EvaluationReason.IsNullOrEmpty()? ReadingCommon.EvaluationReason : trialCriterion.EvaluationReason,