diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 35dbec68e..a15c6200e 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -1850,6 +1850,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool ExistsManual { get; set; } + public bool IsBaseLine { get; set; } + public ReadingCategory ReadingCategory { get; set; } public decimal VisitNum { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 19da4238b..f593346af 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -86,7 +86,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid NewSystemCriterionId { get; set; } - public bool IsCopyQuestion { get; set; } + //public bool IsCopyQuestion { get; set; } } public class EditCriterionDictionaryInDto diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs index bc7e18ec3..28ff5acdb 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs @@ -22,8 +22,9 @@ namespace IRaCIS.Core.Application.Service IRepository _clinicalDataTrialSetRepository, IRepository _clinicalDataSystemSetRepository, IRepository _dictionaryRepository, + IRepository _systemCriterionDictionaryCodeRepository, IReadingImageTaskService _iReadingImageTaskService, - IRepository _readingCriterionDictionaryRepository, + IRepository _readingSystemCriterionDictionaryRepository, IRepository _readingTableQuestionTrialRepository, IRepository _readingCriterionPageRepository, IRepository _trialRepository, @@ -939,8 +940,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task CopySystemCriterionData(CopySystemCriterionDataInDto inDto) { - if (inDto.IsCopyQuestion) - { + var newSystemQuestionList = await _readingQuestionSystemRepository.Where(x => x.ReadingQuestionCriterionSystemId == inDto.SourceSystemCriterionId) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); newSystemQuestionList.ForEach(x => @@ -993,22 +993,49 @@ namespace IRaCIS.Core.Application.Service } await _readingTableQuestionSystemRepository.BatchDeleteNoTrackingAsync(x => x.SystemCriterionId == inDto.NewSystemCriterionId); await _readingTableQuestionSystemRepository.AddRangeAsync(needAddTableDatas); - #endregion + #endregion - } - else + + #region 器官 + var organData = await _organInfoRepository.Where(x => x.SystemCriterionId == inDto.SourceSystemCriterionId).ToListAsync(); + + organData.ForEach(x => { - var organData = await _organInfoRepository.Where(x => x.SystemCriterionId == inDto.SourceSystemCriterionId).ToListAsync(); + x.Id = NewId.NextGuid(); + x.SystemCriterionId = inDto.NewSystemCriterionId; + }); + await _organInfoRepository.BatchDeleteNoTrackingAsync(x => x.SystemCriterionId == inDto.NewSystemCriterionId); + await _organInfoRepository.AddRangeAsync(organData); + #endregion + + #region 字典Code + var dictionaryCodes = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.SourceSystemCriterionId).ToListAsync(); + + dictionaryCodes.ForEach(x => + { + x.Id = NewId.NextGuid(); + x.SystemCriterionId = inDto.NewSystemCriterionId; + }); + await _systemCriterionDictionaryCodeRepository.BatchDeleteNoTrackingAsync(x => x.SystemCriterionId == inDto.NewSystemCriterionId); + await _systemCriterionDictionaryCodeRepository.AddRangeAsync(dictionaryCodes); + #endregion + + #region 字典 + + + var criterionDictionaries = await _readingSystemCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.SourceSystemCriterionId).ToListAsync(); + + criterionDictionaries.ForEach(x => + { + x.Id = NewId.NextGuid(); + x.CriterionId = inDto.NewSystemCriterionId; + }); + await _readingSystemCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.NewSystemCriterionId); + await _readingSystemCriterionDictionaryRepository.AddRangeAsync(criterionDictionaries); + + #endregion - organData.ForEach(x => - { - x.Id = NewId.NextGuid(); - x.SystemCriterionId = inDto.NewSystemCriterionId; - }); - await _organInfoRepository.BatchDeleteNoTrackingAsync(x => x.SystemCriterionId == inDto.NewSystemCriterionId); - await _organInfoRepository.AddRangeAsync(organData); - } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index d7424fc09..88e5c54d6 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -3171,6 +3171,7 @@ namespace IRaCIS.Core.Application.Service task.ExistsManual = (await GetManualList(new GetManualListInDto() { TrialId = visitTaskInfo.TrialId })).Count > 0; task.ReadingTaskState = visitTaskInfo.ReadingTaskState; task.IsShowStudyName= trialInfo.IsShowStudyName; + task.IsBaseLine = isBaseLine; task.IsExistUnprocessedFeedback = await _userFeedBackRepository.AnyAsync(x => x.VisitTaskId == task.VisitTaskId && x.State == 0); // 添加默认答案 if (inDto.VisitTaskId == null && visitTaskInfo.ReadingTaskState != ReadingTaskState.HaveSigned)