From f2f8d00e31c1137b5ad22e0f1ce0fab75dbbca6c Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 4 Aug 2025 18:03:54 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=80=80=E5=9B=9E=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=92=8C=E5=AE=9E=E9=99=85=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/VisitTaskService.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index eb467c64e..f3f8344e2 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -2643,7 +2643,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; @@ -2686,7 +2686,7 @@ public class VisitTaskService(IRepository _visitTaskRepository, } } - //(1、PM回退,PM申请重阅,SPM同意回退) + //(1、PM回退,PM申请重阅,SPM同意回退)--20250804-感觉这里没用,不用限制 else { filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB); @@ -2695,8 +2695,12 @@ public class VisitTaskService(IRepository _visitTaskRepository, } else { - //默认影响的都是该标准的任务 - filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId); + if (isReReading == true) + { + //默认影响的都是该标准的任务 + filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId); + } + } @@ -2938,8 +2942,8 @@ public class VisitTaskService(IRepository _visitTaskRepository, } #endregion - - return (list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced }); + //IsIRAppyTaskInfluenced 列表中存在IR已申请重阅的任务! + return ResponseOutput.Ok(list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced }); } From 688c1d195c370d634c43afc4a97520bc6771b277 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 5 Aug 2025 09:49:17 +0800 Subject: [PATCH 2/4] =?UTF-8?q?PM=20=E7=94=B3=E8=AF=B7=E9=87=8D=E9=98=85?= =?UTF-8?q?=20SPM=20=E5=90=8C=E6=84=8F=E5=AE=A1=E6=89=B9=EF=BC=8C=E9=99=A4?= =?UTF-8?q?=E5=BC=801.1=20=E9=99=84=E5=8A=A0=E8=AF=84=E4=BC=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/VisitTaskService.cs | 18 +++++++----- IRaCIS.Core.Application/TestService.cs | 29 +++++++++++++++++++ 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index f3f8344e2..e2b6895e0 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -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审批 回退访视,因此这里不生成访视任务 影响多个标准的任务 @@ -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任务 @@ -2695,13 +2701,11 @@ public class VisitTaskService(IRepository _visitTaskRepository, } else { - if (isReReading == true) + if (isReReading == true && isIRApplyPMApprovalProcess) { //默认影响的都是该标准的任务 filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId); } - - } 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 回退到影像上传 /// From 7f4c1b57b224b55f9b7716ce2760d1a674e8c050 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 5 Aug 2025 10:15:59 +0800 Subject: [PATCH 3/4] =?UTF-8?q?1.1=E4=BB=BB=E5=8A=A1PM=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E9=87=8D=E9=98=85=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/VisitTaskService.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index e2b6895e0..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任务 @@ -2693,11 +2693,11 @@ public class VisitTaskService(IRepository _visitTaskRepository, } //(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 || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB); - } + //} } else { From 447d0149fdb7d515db7e936ba65e87ab23040896 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 5 Aug 2025 13:58:29 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=B4=A8=E6=8E=A7=E5=A4=8D=E6=A0=B8?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E7=AD=94=E6=A1=88=E5=AF=BC=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/Common/ExcelExportService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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