Uat_Study
			
			
		
		
							parent
							
								
									c45f3a6d0e
								
							
						
					
					
						commit
						00075df450
					
				| 
						 | 
				
			
			@ -1,4 +1,6 @@
 | 
			
		|||
using EntityFrameworkCore.Triggered;
 | 
			
		||||
using IRaCIS.Core.Application.Service;
 | 
			
		||||
using IRaCIS.Core.Application.ViewModel;
 | 
			
		||||
using IRaCIS.Core.Domain.Share;
 | 
			
		||||
using IRaCIS.Core.Infrastructure;
 | 
			
		||||
using MassTransit;
 | 
			
		||||
| 
						 | 
				
			
			@ -15,17 +17,23 @@ namespace IRaCIS.Core.Application.Triggers
 | 
			
		|||
        private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
 | 
			
		||||
        private readonly IRepository<ReadModule> _readModuleRepository;
 | 
			
		||||
        private readonly IRepository<Subject> _subjectRepository;
 | 
			
		||||
        private readonly IRepository<VisitTask> _visitTaskRepository;
 | 
			
		||||
        private readonly IVisitTaskHelpeService _ivisitTaskHelpeService;
 | 
			
		||||
        private readonly IRepository _repository;
 | 
			
		||||
 | 
			
		||||
        public SubjectVisitFinalVisitTrigger(IRepository<SubjectVisit> subjectVisitRepository,
 | 
			
		||||
 | 
			
		||||
            IRepository<ReadingPeriodSet> readingPeriodSetRepository,
 | 
			
		||||
               IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
 | 
			
		||||
                IRepository<VisitTask> visitTaskRepository,
 | 
			
		||||
                IVisitTaskHelpeService visitTaskHelpeService,
 | 
			
		||||
                 IRepository<ReadModule> readModuleRepository,
 | 
			
		||||
            IRepository<Subject> subjectRepository, IRepository repository)
 | 
			
		||||
        {
 | 
			
		||||
            _subjectVisitRepository = subjectVisitRepository;
 | 
			
		||||
            this._readingPeriodSetRepository = readingPeriodSetRepository;
 | 
			
		||||
            this._visitTaskRepository = visitTaskRepository;
 | 
			
		||||
            this._ivisitTaskHelpeService = visitTaskHelpeService;
 | 
			
		||||
            this._readingPeriodPlanRepository = readingPeriodPlanRepository;
 | 
			
		||||
            this._readModuleRepository = readModuleRepository;
 | 
			
		||||
            _subjectRepository = subjectRepository;
 | 
			
		||||
| 
						 | 
				
			
			@ -114,56 +122,85 @@ namespace IRaCIS.Core.Application.Triggers
 | 
			
		|||
                var criterionList = await _repository.Where<ReadingQuestionCriterionTrial>(x => x.TrialId == trialId && x.IsConfirm && x.IsReadingPeriod && x.IsReadingTaskViewInOrder).ToListAsync();
 | 
			
		||||
                foreach (var item in criterionList)
 | 
			
		||||
                {
 | 
			
		||||
                    ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal && x.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,
 | 
			
		||||
                    //});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    var readModule = await _readModuleRepository.Where(x => x.ReadingSetType == ReadingSetType.ImageReading && x.TrialReadingCriterionId == item.Id && x.SubjectVisitId == subjectVisitId).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
                    if (readModule == null)
 | 
			
		||||
 | 
			
		||||
                    if (readingPeriodSet == null)
 | 
			
		||||
                    {
 | 
			
		||||
                        readingPeriodSet = new ReadingPeriodSet()
 | 
			
		||||
 | 
			
		||||
                        ReadModule newReadModule = new ReadModule()
 | 
			
		||||
                        {
 | 
			
		||||
                            Id = NewId.NextGuid(),
 | 
			
		||||
                            ReadingScope = ReadingScopeEnum.All,
 | 
			
		||||
                            //ReadingPeriodSetId = readingPeriodSet.Id,
 | 
			
		||||
                            Id= NewId.NextGuid(),
 | 
			
		||||
                            IsUrgent = subjectVisit.IsUrgent,
 | 
			
		||||
                            SubjectVisitId = subjectVisitId,
 | 
			
		||||
                            ReadingStatus = ReadingStatusEnum.TaskAllocate,
 | 
			
		||||
                            SubjectId = subjectVisit.SubjectId,
 | 
			
		||||
                            ModuleName = $"G-{subjectVisit.VisitName}",// 全局阅片
 | 
			
		||||
                            ReadingSetType = ReadingSetType.ImageReading,
 | 
			
		||||
                            IsTakeEffect = ReadingPeriodStatus.TakeEffect,
 | 
			
		||||
                            ReadingPeriodName = "Global",
 | 
			
		||||
                            TrialId = trialId,
 | 
			
		||||
                            EffectOfTime = DateTime.Now,
 | 
			
		||||
                            IsGlobal = true,
 | 
			
		||||
                            ModuleType = ModuleTypeEnum.Global,
 | 
			
		||||
                            TrialId = subjectVisit.TrialId,
 | 
			
		||||
                            //VisitNum = subjectVisit.VisitNum,
 | 
			
		||||
                            TrialReadingCriterionId = item.Id,
 | 
			
		||||
                        };
 | 
			
		||||
 | 
			
		||||
                        await _readingPeriodSetRepository.AddAsync(readingPeriodSet);
 | 
			
		||||
                        await _readModuleRepository.AddAsync(newReadModule);
 | 
			
		||||
 | 
			
		||||
                        var visitTask = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == item.Id && x.SourceSubjectVisitId == subjectVisitId && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
                        if (visitTask != null)
 | 
			
		||||
                        {
 | 
			
		||||
                            await _ivisitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
 | 
			
		||||
                            {
 | 
			
		||||
                                OriginalVisitId = visitTask.Id,
 | 
			
		||||
                                ReadingCategory = GenerateTaskCategory.Global,
 | 
			
		||||
                                TrialId = subjectVisit.TrialId,
 | 
			
		||||
 | 
			
		||||
                                ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() { 
 | 
			
		||||
                                
 | 
			
		||||
                                    new ReadingGenerataTaskDTO (){ 
 | 
			
		||||
                                    IsUrgent=subjectVisit.IsUrgent,
 | 
			
		||||
                                    ReadingCategory=ReadingCategory.Global,
 | 
			
		||||
                                    ReadingName=newReadModule.ModuleName,
 | 
			
		||||
                                    ReadModuleId=newReadModule.Id,
 | 
			
		||||
                                    SubjectId=subjectVisit.SubjectId,
 | 
			
		||||
                                    VisitNum=visitTask.VisitTaskNum,
 | 
			
		||||
                                    },
 | 
			
		||||
                                
 | 
			
		||||
                                },
 | 
			
		||||
                            });
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    await _readingPeriodPlanRepository.AddAsync(new ReadingPeriodPlan()
 | 
			
		||||
                    {
 | 
			
		||||
                        SubjectVisitId = subjectVisitId,
 | 
			
		||||
                        ReadingPeriodSetId = readingPeriodSet.Id,
 | 
			
		||||
                    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.ReadingSetType == ReadingSetType.ImageReading && x.TrialReadingCriterionId == item.Id && x.SubjectVisitId == subjectVisitId, x=> new ReadModule() {
 | 
			
		||||
 | 
			
		||||
                        IsDeleted = 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();
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue