Uat_Study
			
			
		
		
							parent
							
								
									2a7280b501
								
							
						
					
					
						commit
						64a433ea10
					
				| 
						 | 
					@ -50,13 +50,7 @@ namespace IRaCIS.Core.Application.Triggers
 | 
				
			||||||
              
 | 
					              
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var cRCClinicalDatas = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == subject.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
 | 
					           
 | 
				
			||||||
              
 | 
					 | 
				
			||||||
               .Select(x =>new {
 | 
					 | 
				
			||||||
                   x.Id,
 | 
					 | 
				
			||||||
                   x.ClinicalDataLevel,
 | 
					 | 
				
			||||||
               } ).ToListAsync();
 | 
					 | 
				
			||||||
                List<ReadingClinicalData> readingClinicals = new List<ReadingClinicalData>();
 | 
					 | 
				
			||||||
                svList.ForEach(t =>
 | 
					                svList.ForEach(t =>
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    t.Subject = subject;
 | 
					                    t.Subject = subject;
 | 
				
			||||||
| 
						 | 
					@ -65,23 +59,9 @@ namespace IRaCIS.Core.Application.Triggers
 | 
				
			||||||
                    t.SiteId = subject.SiteId;
 | 
					                    t.SiteId = subject.SiteId;
 | 
				
			||||||
                    t.IsEnrollmentConfirm = t.IsBaseLine ? IsEnrollementQualificationConfirm : false;
 | 
					                    t.IsEnrollmentConfirm = t.IsBaseLine ? IsEnrollementQualificationConfirm : false;
 | 
				
			||||||
                    t.Id = NewId.NextGuid();
 | 
					                    t.Id = NewId.NextGuid();
 | 
				
			||||||
                    readingClinicals.AddRange(
 | 
					                 
 | 
				
			||||||
 | 
					 | 
				
			||||||
                        cRCClinicalDatas.WhereIf(!t.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Select(x => new ReadingClinicalData()
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            ClinicalDataTrialSetId = x.Id,
 | 
					 | 
				
			||||||
                            IsVisit = true,
 | 
					 | 
				
			||||||
                            SubjectId = subject.Id,
 | 
					 | 
				
			||||||
                            ReadingId = t.Id,
 | 
					 | 
				
			||||||
                            TrialId = subject.TrialId
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        }).ToList()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        );
 | 
					 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                await _readingClinicalDataRepository.AddRangeAsync(readingClinicals);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                await _subjectVisitRepository.AddRangeAsync(svList);
 | 
					                await _subjectVisitRepository.AddRangeAsync(svList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,20 +15,25 @@ namespace IRaCIS.Core.Application.Triggers
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private readonly IVisitTaskHelpeService _visitTaskHelpeService;
 | 
					        private readonly IVisitTaskHelpeService _visitTaskHelpeService;
 | 
				
			||||||
 | 
					     
 | 
				
			||||||
        private readonly IRepository<Subject> _subjectRepository;
 | 
					        private readonly IRepository<Subject> _subjectRepository;
 | 
				
			||||||
 | 
					        private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
 | 
				
			||||||
 | 
					        private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public SubjectVisitCheckPassedTrigger(IRepository<Subject> subjectRepository,
 | 
					        public SubjectVisitCheckPassedTrigger(IRepository<Subject> subjectRepository,
 | 
				
			||||||
          
 | 
					             IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
 | 
				
			||||||
 | 
					            IRepository<ReadingClinicalData> readingClinicalDataRepository,
 | 
				
			||||||
            IVisitTaskHelpeService visitTaskHelpeService)
 | 
					            IVisitTaskHelpeService visitTaskHelpeService)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            _subjectRepository = subjectRepository;
 | 
					            _subjectRepository = subjectRepository;
 | 
				
			||||||
 | 
					            _clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
 | 
				
			||||||
 | 
					            _readingClinicalDataRepository = readingClinicalDataRepository;
 | 
				
			||||||
 | 
					            this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
 | 
				
			||||||
            _visitTaskHelpeService = visitTaskHelpeService;
 | 
					            _visitTaskHelpeService = visitTaskHelpeService;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public async Task BeforeSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
 | 
					        public async Task BeforeSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					@ -53,6 +58,39 @@ namespace IRaCIS.Core.Application.Triggers
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            // 触发临床数据
 | 
				
			||||||
 | 
					            if (context.ChangeType == ChangeType.Added)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                var cRCClinicalDatas = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == context.Entity.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                  .Select(x => new
 | 
				
			||||||
 | 
					                  {
 | 
				
			||||||
 | 
					                      x.Id,
 | 
				
			||||||
 | 
					                      x.ClinicalDataLevel,
 | 
				
			||||||
 | 
					                  }).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                List<ReadingClinicalData> readingClinicals = new List<ReadingClinicalData>();
 | 
				
			||||||
 | 
					                readingClinicals.AddRange(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               cRCClinicalDatas.WhereIf(context.Entity.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Select(x => new ReadingClinicalData()
 | 
				
			||||||
 | 
					               {
 | 
				
			||||||
 | 
					                   ClinicalDataTrialSetId = x.Id,
 | 
				
			||||||
 | 
					                   IsVisit = true,
 | 
				
			||||||
 | 
					                   SubjectId = context.Entity.SubjectId,
 | 
				
			||||||
 | 
					                   ReadingId = context.Entity.Id,
 | 
				
			||||||
 | 
					                   TrialId = context.Entity.TrialId
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               }).ToList()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					               );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                await _readingClinicalDataRepository.AddRangeAsync(readingClinicals);
 | 
				
			||||||
 | 
					                await _readingClinicalDataRepository.SaveChangesAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue