diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index eb467c64e..17dd8b18f 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1717,12 +1717,12 @@ public class VisitTaskService(IRepository _visitTaskRepository, if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment) { // PM申请 SPM / CPM审批 - if (requestReReadingType == RequestReReadingType.TrialGroupApply) - { - filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB); - } + //if (requestReReadingType == RequestReReadingType.TrialGroupApply) + //{ + // filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB); + //} //IR 申请 PM审批 - else + if (requestReReadingType != RequestReReadingType.TrialGroupApply) { // 1.1 基线任务影响BM任务 @@ -1741,8 +1741,11 @@ public class VisitTaskService(IRepository _visitTaskRepository, } else { - //默认影响的都是该标准的任务 - filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId); + if (requestReReadingType != RequestReReadingType.TrialGroupApply) + { + //默认影响的都是该标准的任务 + filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId); + } } //PM申请 SPM / CPM审批 回退访视,因此这里不生成访视任务 影响多个标准的任务 @@ -2643,7 +2646,7 @@ public class VisitTaskService(IRepository _visitTaskRepository, /// 申请记录的Id /// [HttpGet("{taskId:guid}/{isReReading:bool}")] - public async Task<(List, object)> GetReReadingOrBackInfluenceTaskList(Guid taskId, bool isReReading, Guid? applyId) + public async Task>> GetReReadingOrBackInfluenceTaskList(Guid taskId, bool isReReading, Guid? applyId) { var isIRAppyTaskInfluenced = false; @@ -2661,13 +2664,16 @@ public class VisitTaskService(IRepository _visitTaskRepository, //IR 申请1.1 基线重阅,影响附加评估所有的任务 var isIR1Point1AdditionalAssessmentBaseline = false; + //是IR 申请 PM 审批流程 + var isIRApplyPMApprovalProcess = (IsPMOrAPm() && applyId != null && await _visitTaskReReadingRepository.AnyAsync(t => t.Id == applyId && t.CreateUserRole.UserTypeEnum == UserTypeEnum.IndependentReviewer)) + || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null); + //附加评估 IR 和PM 看到的影响列表不一样 if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment) { // IR 申请 PM 同意 - if (((IsPMOrAPm() && applyId != null && await _visitTaskReReadingRepository.AnyAsync(t => t.Id == applyId && t.CreateUserRole.UserTypeEnum == UserTypeEnum.IndependentReviewer)) - || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null))) + if (isIRApplyPMApprovalProcess) { // 1.1 基线任务影响BM任务 @@ -2686,18 +2692,20 @@ public class VisitTaskService(IRepository _visitTaskRepository, } } - //(1、PM回退,PM申请重阅,SPM同意回退) - else - { - filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB); + //(1、PM回退,PM申请重阅,SPM同意回退)--20250804-感觉这里没用,不用限制 + //else + //{ + // filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB); - } + //} } else { - //默认影响的都是该标准的任务 - filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId); - + if (isReReading == true && isIRApplyPMApprovalProcess) + { + //默认影响的都是该标准的任务 + filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId); + } } @@ -2938,8 +2946,8 @@ public class VisitTaskService(IRepository _visitTaskRepository, } #endregion - - return (list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced }); + //IsIRAppyTaskInfluenced 列表中存在IR已申请重阅的任务! + return ResponseOutput.Ok(list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced }); } diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index f0f4370d7..92ce94fec 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -88,7 +88,7 @@ namespace IRaCIS.Core.Application.Service.Common var query = from qa in _trialQCQuestionAnswerRepository.Where(t => t.SubjectVisit.TrialId == trialId && - (t.SubjectVisit.AuditState == AuditStateEnum.QCPassed || + (t.SubjectVisit.AuditState == AuditStateEnum.QCPassed && t.SecondReviewTime == null || (t.SubjectVisit.SecondReviewState == SecondReviewState.AuditPassed && t.SecondReviewTime <= t.SubjectVisit.Trial.QCQuestionConfirmedTime) || (t.SubjectVisit.SecondReviewState == SecondReviewState.WaitAudit && t.SecondReviewTime < t.SubjectVisit.Trial.QCQuestionConfirmedTime))) join u in _userRoleRepository.AsQueryable() on qa.UpdateUserId equals u.Id diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index 82afeaeff..57c3ad1a3 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -130,6 +130,35 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Ok(); } + //添加医学审核问题 + [AllowAnonymous] + public async Task AddReadingMedicineSystemQuestion([FromServices] IRepository _readingMedicineSystemQuestion) + { + if (!_readingMedicineSystemQuestion.Any(t => t.CriterionTypeEnum == CriterionType.mRECISTHCC)) + { + var list = _readingMedicineSystemQuestion.Where(t => t.CriterionTypeEnum == CriterionType.RECIST1Point1).ToList(); + + var initOrder = 500; + foreach (var item in list) + { + item.Id = NewId.NextSequentialGuid(); + + item.CriterionTypeEnum = CriterionType.mRECISTHCC; + + item.CreateTime = DateTime.Now; + item.ShowOrder = initOrder; + + initOrder = initOrder + 1; + } + + await _readingMedicineSystemQuestion.AddRangeAsync(list,true); + } + + + + return ResponseOutput.Ok(); + } + /// /// IQC 回退到影像上传 ///