diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 4cb37bf78..e76d0cb3b 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1355,40 +1355,40 @@ namespace IRaCIS.Core.Application.Image.QA //dbSubjectVisit.Subject.IsMissingImages = await _subjectVisitRepository.AnyAsync(t => (t.VisitNum < maxVisitNum && t.SubmitState != SubmitStateEnum.Submitted && t.IsLostVisit == false)); //项目或者Subject IsUrgent 提交时 访视也设置为紧急 - if (trialConfig.IsUrgent || dbSubjectVisit.Subject.IsUrgent || (dbSubjectVisit.PDState == PDStateEnum.PDProgress && !dbSubjectVisit.IsBaseLine) || (dbSubjectVisit.IsEnrollmentConfirm && dbSubjectVisit.IsBaseLine)) + if (trialConfig.IsUrgent || dbSubjectVisit.Subject.IsUrgent || (dbSubjectVisit.IsEnrollmentConfirm && dbSubjectVisit.IsBaseLine)) { - if (dbSubjectVisit.PDState == PDStateEnum.PDProgress) - { - await _subjectVisitRepository.BatchUpdateNoTrackingAsync(x => x.SubjectId == dbSubjectVisit.SubjectId && x.VisitNum <= dbSubjectVisit.VisitNum, x => new SubjectVisit() - { - IsUrgent = true - }); + //if (dbSubjectVisit.PDState == PDStateEnum.PDProgress) + //{ + // await _subjectVisitRepository.BatchUpdateNoTrackingAsync(x => x.SubjectId == dbSubjectVisit.SubjectId && x.VisitNum <= dbSubjectVisit.VisitNum, x => new SubjectVisit() + // { + // IsUrgent = true + // }); + // await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => trialInOrderCriterionIdList.Contains(x.TrialReadingCriterionId) && x.SubjectId == dbSubjectVisit.SubjectId && + // dbSubjectVisit.VisitNum <= x.VisitTaskNum && x.VisitTaskNum < Math.Ceiling(dbSubjectVisit.VisitNum + 0.01m) // 当前的访视 全局 裁判 及之前 全都加急 + // && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect, x => new VisitTask() + // { + // IsUrgent = true, + // TaskUrgentType = TaskUrgentType.PDProgress, + // IsCanEditUrgentState = false, + // }); - await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => trialInOrderCriterionIdList.Contains(x.TrialReadingCriterionId)&& x.SubjectId == dbSubjectVisit.SubjectId&& - dbSubjectVisit.VisitNum<= x.VisitTaskNum && x.VisitTaskNum < Math.Ceiling(dbSubjectVisit.VisitNum+0.01m) // 当前的访视 全局 裁判 及之前 全都加急 - && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect, x => new VisitTask() - { + // await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => trialInOrderCriterionIdList.Contains(x.TrialReadingCriterionId) && x.SubjectId == dbSubjectVisit.SubjectId + // && x.VisitTaskNum < dbSubjectVisit.VisitNum // 当前的访视 全局 裁判 及之前 全都加急 + // && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect, x => new VisitTask() + // { - IsUrgent = true, - TaskUrgentType = TaskUrgentType.PDProgress, - IsCanEditUrgentState=false, - }); - - await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => trialInOrderCriterionIdList.Contains(x.TrialReadingCriterionId) && x.SubjectId == dbSubjectVisit.SubjectId - && x.VisitTaskNum < dbSubjectVisit.VisitNum // 当前的访视 全局 裁判 及之前 全都加急 - && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect, x => new VisitTask() - { - - IsUrgent = true, - TaskUrgentType = TaskUrgentType.Other, - TaskUrgentRemake= "后续访视设为pd", - IsCanEditUrgentState = false, - }); - } - else if (dbSubjectVisit.IsEnrollmentConfirm) + // IsUrgent = true, + // TaskUrgentType = TaskUrgentType.Other, + // TaskUrgentRemake = "后续访视设为pd", + // IsCanEditUrgentState = false, + // }); + //} + //else + + if (dbSubjectVisit.IsEnrollmentConfirm) { await _subjectVisitRepository.BatchUpdateNoTrackingAsync(x => x.Id == dbSubjectVisit.Id, x => new SubjectVisit() { @@ -1420,14 +1420,14 @@ namespace IRaCIS.Core.Application.Image.QA dbSubjectVisit.IsUrgent = true; - //PD确认的紧急会把前面所有未QC完成的访视均标记为紧急 + ////PD确认的紧急会把前面所有未QC完成的访视均标记为紧急 - var previosSVlist = await _subjectVisitRepository.Where(t => t.SubjectId == dbSubjectVisit.SubjectId && t.VisitNum < dbSubjectVisit.VisitNum && t.IsUrgent == false && t.SubmitState == SubmitStateEnum.Submitted, true).ToListAsync(); + //var previosSVlist = await _subjectVisitRepository.Where(t => t.SubjectId == dbSubjectVisit.SubjectId && t.VisitNum < dbSubjectVisit.VisitNum && t.IsUrgent == false && t.SubmitState == SubmitStateEnum.Submitted, true).ToListAsync(); - previosSVlist.ForEach(t => - { - t.IsUrgent = true; - }); + //previosSVlist.ForEach(t => + //{ + // t.IsUrgent = true; + //}); } diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index afde027f9..a9bbd6151 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -104,7 +104,7 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.Subject.Code)) .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode)) - .ForMember(d => d.CheckDialogStr, u => u.MapFrom(t => string.Join(" | ", t.CheckChallengeDialogList.OrderBy(t => t.CreateTime).Select(c => c.CreateUser.UserName + " " + c.CreateTime.ToString("yyyy-mm-dd hh:mm:ss") + " :" + c.TalkContent)))) + .ForMember(d => d.CheckDialogStr, u => u.MapFrom(t => string.Join(" | ", t.CheckChallengeDialogList.OrderBy(t => t.CreateTime).Select(c => c.CreateUser.UserName + " " + c.CreateTime.ToString("yyyy-MM-dd HH:mm:ss") + " :" + c.TalkContent)))) .ForMember(d => d.ModalityList, c => c.MapFrom(s => (s.NoneDicomStudyList.Select(t => t.Modality) .Union(s.StudyList.Select(k => k.ModalityForEdit))).Distinct())) diff --git a/IRaCIS.Core.Application/Triggers/AddSubjectTrigger.cs b/IRaCIS.Core.Application/Triggers/AddSubjectTrigger.cs index e760e859e..3bd4f28cc 100644 --- a/IRaCIS.Core.Application/Triggers/AddSubjectTrigger.cs +++ b/IRaCIS.Core.Application/Triggers/AddSubjectTrigger.cs @@ -54,7 +54,7 @@ namespace IRaCIS.Core.Application.Triggers t.TrialId = subject.TrialId; t.SiteId = subject.SiteId; t.IsEnrollmentConfirm = t.IsBaseLine ? triconfig.IsEnrollementQualificationConfirm : false; - t.PDState = PDStateEnum.None; + t.PDState = t.IsBaseLine == false && triconfig.IsPDProgressView ? PDStateEnum.PDProgress : PDStateEnum.None; t.Id = NewId.NextGuid(); }); diff --git a/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs b/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs index 5603cb53f..f8eb807b4 100644 --- a/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs +++ b/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs @@ -191,6 +191,8 @@ namespace IRaCIS.Core.Application.MediatR.Handlers dbSV.CheckState = CheckStateEnum.CVPassed; dbSV.CheckUserId = _userInfo.Id; dbSV.CheckPassedTime = DateTime.Now; + dbSV.CheckChallengeState = CheckChanllengeTypeEnum.Closed; + //---核对EDC数据,完全一致 dbSV.CheckResult = _localizer["ConsistencyVerification_EDCB"]; //---自动核查通过