diff --git a/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs b/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs index 0000de1b..03d05005 100644 --- a/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/SubjectVisitFinalVisitTrigger.cs @@ -104,59 +104,64 @@ namespace IRaCIS.Core.Application.Triggers var trial = await _repository.Where(x => x.Id == trialId).FirstNotNullAsync(); - var criterionList = await _repository.Where(x => x.TrialId == trialId && x.IsConfirm && x.IsGlobalReading && x.IsReadingTaskViewInOrder).ToListAsync(); + - foreach (var item in criterionList) + if (!subjectVisit.IsBaseLine) { - ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal&&x.TrialReadingCriterionId==item.Id); - - if (readingPeriodSet == null) + var criterionList = await _repository.Where(x => x.TrialId == trialId && x.IsConfirm && x.IsGlobalReading && x.IsReadingTaskViewInOrder).ToListAsync(); + foreach (var item in criterionList) { - readingPeriodSet = new ReadingPeriodSet() - { - Id = NewId.NextGuid(), - ReadingScope = ReadingScopeEnum.All, - ReadingSetType = ReadingSetType.ImageReading, - IsTakeEffect = ReadingPeriodStatus.TakeEffect, - ReadingPeriodName = "Global", - TrialId = trialId, - EffectOfTime = DateTime.Now, - IsGlobal = true, - TrialReadingCriterionId=item.Id, - }; + ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal && x.TrialReadingCriterionId == item.Id); + + if (readingPeriodSet == null) + { + readingPeriodSet = new ReadingPeriodSet() + { + Id = NewId.NextGuid(), + ReadingScope = ReadingScopeEnum.All, + ReadingSetType = ReadingSetType.ImageReading, + IsTakeEffect = ReadingPeriodStatus.TakeEffect, + ReadingPeriodName = "Global", + TrialId = trialId, + EffectOfTime = DateTime.Now, + IsGlobal = true, + TrialReadingCriterionId = item.Id, + }; + + await _readingPeriodSetRepository.AddAsync(readingPeriodSet); + + } + + await _readingPeriodPlanRepository.AddAsync(new ReadingPeriodPlan() + { + SubjectVisitId = subjectVisitId, + ReadingPeriodSetId = readingPeriodSet.Id, + }); + + + await _readModuleRepository.DeleteFromQueryAsync(x => x.ReadingSetType == ReadingSetType.ImageReading && x.TrialReadingCriterionId == item.Id && x.SubjectVisitId == subjectVisitId, true); + + await _readModuleRepository.AddAsync(new ReadModule() + { + ReadingPeriodSetId = readingPeriodSet.Id, + IsUrgent = subjectVisit.IsUrgent, + SubjectVisitId = subjectVisitId, + ReadingStatus = ReadingStatusEnum.TaskAllocate, + SubjectId = subjectVisit.SubjectId, + ModuleName = "Global",// 全局阅片 + ReadingSetType = ReadingSetType.ImageReading, + ModuleType = ModuleTypeEnum.Global, + TrialId = subjectVisit.TrialId, + VisitNum = subjectVisit.VisitNum, + TrialReadingCriterionId = item.Id, + }); + - await _readingPeriodSetRepository.AddAsync(readingPeriodSet); } - - await _readingPeriodPlanRepository.AddAsync(new ReadingPeriodPlan() - { - SubjectVisitId = subjectVisitId, - ReadingPeriodSetId = readingPeriodSet.Id, - }); - - - await _readModuleRepository.DeleteFromQueryAsync(x => x.ReadingSetType == ReadingSetType.ImageReading&&x.TrialReadingCriterionId==item.Id && x.SubjectVisitId == subjectVisitId, true); - - await _readModuleRepository.AddAsync(new ReadModule() - { - ReadingPeriodSetId = readingPeriodSet.Id, - IsUrgent = subjectVisit.IsUrgent, - SubjectVisitId = subjectVisitId, - ReadingStatus = ReadingStatusEnum.TaskAllocate, - SubjectId = subjectVisit.SubjectId, - ModuleName = "Global",// 全局阅片 - ReadingSetType = ReadingSetType.ImageReading, - ModuleType = ModuleTypeEnum.Global, - TrialId = subjectVisit.TrialId, - VisitNum = subjectVisit.VisitNum, - TrialReadingCriterionId=item.Id, - }); - - - + await _readModuleRepository.SaveChangesAsync(); } - await _readModuleRepository.SaveChangesAsync(); + }