diff --git a/IRaCIS.Core.Application/Triggers/SubjectVisitTrigger.cs b/IRaCIS.Core.Application/Triggers/SubjectVisitTrigger.cs index 91cbc248b..8ecbcce82 100644 --- a/IRaCIS.Core.Application/Triggers/SubjectVisitTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/SubjectVisitTrigger.cs @@ -182,21 +182,25 @@ namespace IRaCIS.Core.Application.Triggers readModule = await _readModuleRepository.AddAsync(newReadModule); - if (await _readingQuestionCriterionTrialRepository.AnyAsync(x => x.Id == item.Id && x.IsOncologyReading)) + + } + + var readTumorModule = await _readModuleRepository.Where(x => x.ReadingSetType == ReadingSetType.TumorReading && x.TrialReadingCriterionId == item.Id && x.SubjectVisitId == subjectVisitId).FirstOrDefaultAsync(); + + if ((await _readingQuestionCriterionTrialRepository.AnyAsync(x => x.Id == item.Id && x.IsOncologyReading))&& readTumorModule==null) + { + await _readModuleRepository.AddAsync(new ReadModule() { - await _readModuleRepository.AddAsync(new ReadModule() - { - TrialReadingCriterionId = item.Id, - ReadingSetType = ReadingSetType.TumorReading, - SubjectVisitId = subjectVisit.Id, - ModuleName = $"O-{subjectVisit.VisitName}", - ModuleType = ModuleTypeEnum.Oncology, - ReadModuleAddTypeEnum = subjectVisit.PDState == PDStateEnum.PDProgress ? ReadModuleAddType.PDConfirmation : ReadModuleAddType.FinalVisit, - IsUrgent = subjectVisit.IsUrgent, - TrialId = subjectVisit.TrialId, - SubjectId = subjectVisit.SubjectId - }); - } + TrialReadingCriterionId = item.Id, + ReadingSetType = ReadingSetType.TumorReading, + SubjectVisitId = subjectVisit.Id, + ModuleName = $"O-{subjectVisit.VisitName}", + ModuleType = ModuleTypeEnum.Oncology, + ReadModuleAddTypeEnum = subjectVisit.PDState == PDStateEnum.PDProgress ? ReadModuleAddType.PDConfirmation : ReadModuleAddType.FinalVisit, + IsUrgent = subjectVisit.IsUrgent, + TrialId = subjectVisit.TrialId, + SubjectId = subjectVisit.SubjectId + }); } var visitTaskList = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == item.Id && x.SourceSubjectVisitId == subjectVisitId && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned).ToListAsync();