From de0cb6788ed82bd2965c557789b0292797486b0d Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 23 Mar 2026 16:43:20 +0800
Subject: [PATCH 1/4] =?UTF-8?q?IRC=20=E4=BF=AE=E6=94=B9=E8=B6=85=E6=97=B6?=
=?UTF-8?q?=E6=97=B6=E9=97=B4=E8=AE=BE=E7=BD=AE=E4=B8=BA90s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs | 4 ++--
IRaCIS.Core.Application/IRaCIS.Core.Application.xml | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs
index 8dde1dfb0..e9a80c846 100644
--- a/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs
+++ b/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs
@@ -40,12 +40,12 @@ namespace IRaCIS.Core.API
var dbType = configuration.GetSection("ConnectionStrings:Db_Type").Value;
if (!string.IsNullOrWhiteSpace(dbType) && dbType == "pgsql")
{
- options.UseNpgsql(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure());
+ options.UseNpgsql(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure().CommandTimeout(90));
}
else
{
- options.UseSqlServer(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure()/*.CommandTimeout(60)*/);
+ options.UseSqlServer(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure().CommandTimeout(90));
}
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index dca9b5f27..fc1d9b733 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -17039,17 +17039,17 @@
- ����
+ 质疑
- һ���Ժ˲�
+ 一致性核查
- ����
+ 复制
From 4e20a86155b613aea6430b6cc365a035b81740f0 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 23 Mar 2026 17:02:01 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=95=B0=E5=AD=97?=
=?UTF-8?q?=E6=8D=A2=E6=88=90=E5=88=86=E7=BB=84=E7=BB=9F=E8=AE=A1=E5=AD=90?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WorkLoad/DTO/DoctorWorkLoadViewModel.cs | 33 +++++++++++++++----
.../Service/WorkLoad/DoctorWorkloadService.cs | 22 ++++++++-----
2 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs
index 577491ac9..48ea5892f 100644
--- a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs
+++ b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs
@@ -289,7 +289,7 @@ namespace IRaCIS.Application.Contracts
public List CriterionReadingCategoryList { get; set; }
//任务阅片状态
- public List ReadingTaskStateList { get; set; } = new List();
+ public List ReadingTaskStateList { get; set; } = new List();
public List CriterionFileList { get; set; } = new List();
@@ -299,11 +299,17 @@ namespace IRaCIS.Application.Contracts
new CriterionReadingCategory()
{
EnrollId = EnrollId,
- PendingCount = ReadingTaskStateList.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
+ //PendingCount = ReadingTaskStateList.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
- ComplectedCount = ReadingTaskStateList.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
+ //ComplectedCount = ReadingTaskStateList.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
- TotalCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
+ //TotalCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).Count(),
+
+ PendingCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).FirstOrDefault()?.PendingCount,
+
+ ComplectedCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).FirstOrDefault()?.ComplectedCount,
+
+ TotalCount = ReadingTaskStateList.Where(x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).FirstOrDefault()?.TotalCount,
StatementCriterionFileList = CriterionFileList.Where(x => x.CriterionType == t.CriterionType && x.FileType == CriterionFileType.Statement)
.WhereIf(t.CriterionType == CriterionType.SelfDefine, x => x.TrialReadingCriterionId == t.TrialReadingCriterionId).ToList(),
@@ -348,6 +354,19 @@ namespace IRaCIS.Application.Contracts
public Guid TrialReadingCriterionId { get; set; }
}
+ public class DoctorTaskStat
+ {
+ public CriterionType? CriterionType { get; set; }
+
+ public Guid TrialReadingCriterionId { get; set; }
+
+ public int PendingCount { get; set; }
+
+ public int ComplectedCount { get; set; }
+
+ public int TotalCount { get; set; }
+ }
+
public class TrialReadingCriterionDto
{
public ReadingOrder IsReadingTaskViewInOrder { get; set; }
@@ -435,11 +454,11 @@ namespace IRaCIS.Application.Contracts
///
/// 待办数量
///
- public int PendingCount { get; set; }
+ public int? PendingCount { get; set; }
- public int ComplectedCount { get; set; }
+ public int? ComplectedCount { get; set; }
- public int TotalCount { get; set; }
+ public int? TotalCount { get; set; }
public List StatementCriterionFileList { get; set; }
diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
index 9fdd77cae..f6da4fdbe 100644
--- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
+++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
@@ -118,7 +118,7 @@ namespace IRaCIS.Core.Application.Service
///
///
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
- [TrialGlobalLimit( "AfterStopCannNotOpt" )]
+ [TrialGlobalLimit("AfterStopCannNotOpt")]
public async Task SetEnrollReadingCategory(SetEnrollReadingCategoryInDto inDto)
{
@@ -167,7 +167,7 @@ namespace IRaCIS.Core.Application.Service
///
///
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
- [TrialGlobalLimit( "AfterStopCannNotOpt" )]
+ [TrialGlobalLimit("AfterStopCannNotOpt")]
public async Task UpdateTrialReviewerState(SetEnrollEnableCommand inCommand)
{
await _taskAllocationRuleRepository.UpdatePartialFromQueryAsync(t => t.TrialId == inCommand.TrialId && t.EnrollId == inCommand.EnrollId, u => new TaskAllocationRule() { IsEnable = inCommand.IsEnable }, true);
@@ -181,7 +181,7 @@ namespace IRaCIS.Core.Application.Service
///
///
[HttpPost("{trialId}/{doctorId}/{type}")]
- [TrialGlobalLimit( "AfterStopCannNotOpt" )]
+ [TrialGlobalLimit("AfterStopCannNotOpt")]
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
public async Task UpdateReviewerReadingType(Guid trialId, Guid doctorId, int type)
{
@@ -218,7 +218,7 @@ namespace IRaCIS.Core.Application.Service
TrialReadingCriterionList = intoGroup.Trial.TrialReadingCriterionList.Where(t => t.IsConfirm).Select(t => new TrialReadingCriterionDto() { TrialReadingCriterionId = t.Id, TrialReadingCriterionName = t.CriterionName, CriterionType = t.CriterionType, IsOncologyReading = t.IsOncologyReading, IsArbitrationReading = t.IsArbitrationReading, IsGlobalReading = t.IsGlobalReading, ReadingInfoSignTime = t.ReadingInfoSignTime, ReadingType = t.ReadingType }).ToList(),
- DoctorCriterionStatusList = intoGroup.EnrollReadingCriteriaList.Where(t=>t.TrialReadingCriterion.IsConfirm).Select(t => new DoctorCriterionStatus()
+ DoctorCriterionStatusList = intoGroup.EnrollReadingCriteriaList.Where(t => t.TrialReadingCriterion.IsConfirm).Select(t => new DoctorCriterionStatus()
{
EnrollId = t.Id,
Id = t.Id,
@@ -230,7 +230,7 @@ namespace IRaCIS.Core.Application.Service
CriterionReadingCategoryList = intoGroup.EnrollReadingCategoryList.Where(t => t.TrialReadingCriterion.IsConfirm).Select(t => new TrialCriterionReadingCategory() { EnrollId = t.EnrollId, ReadingCategory = t.ReadingCategory, TrialReadingCriterionId = t.TrialReadingCriterionId }).ToList(),
- CriterionFileList = doctor.CriterionFileList.Where(t => t.TrialReadingCriterion.IsConfirm || t.TrialReadingCriterionId==null).Where(x => x.IsEnable && (x.TrialId == null || x.TrialId == trialId)).Select(x => new CriterionFile()
+ CriterionFileList = doctor.CriterionFileList.Where(t => t.TrialReadingCriterion.IsConfirm || t.TrialReadingCriterionId == null).Where(x => x.IsEnable && (x.TrialId == null || x.TrialId == trialId)).Select(x => new CriterionFile()
{
CriterionType = x.CriterionType,
DoctorId = x.DoctorId,
@@ -242,11 +242,15 @@ namespace IRaCIS.Core.Application.Service
Id = x.Id
}).ToList(),
- ReadingTaskStateList = intoGroup.DoctorUser.VisitTaskList.Where(t => t.TrialReadingCriterion.IsConfirm).Where(x => x.TaskState == TaskState.Effect && x.TrialId == trialId).Select(x => new DoctorUserTask()
+ ReadingTaskStateList = intoGroup.DoctorUser.VisitTaskList.Where(t => t.TrialReadingCriterion.IsConfirm).Where(x => x.TaskState == TaskState.Effect && x.TrialId == trialId).GroupBy(x => new { x.TrialReadingCriterionId, x.TrialReadingCriterion.CriterionType }).Select(g => new DoctorTaskStat()
{
- ReadingTaskState = x.ReadingTaskState,
- TrialReadingCriterionId = x.TrialReadingCriterionId,
- CriterionType = x.TrialReadingCriterion.CriterionType,
+
+
+ PendingCount = g.Count(x => x.ReadingTaskState != ReadingTaskState.HaveSigned),
+ TotalCount = g.Count(),
+ ComplectedCount = g.Count(x => x.ReadingTaskState == ReadingTaskState.HaveSigned),
+ TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
+ CriterionType = g.Key.CriterionType,
}).ToList(),
From 2d521020142bc8cd91285079dabd9179762fb56c Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 23 Mar 2026 17:37:34 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=8D=E8=BF=9B=E8=A1=8C=E7=BB=9F?=
=?UTF-8?q?=E8=AE=A1=E8=BF=9B=E8=A1=8C=E8=BF=94=E5=9B=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/WorkLoad/DoctorWorkloadService.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
index f6da4fdbe..36909a675 100644
--- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
+++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
@@ -246,9 +246,9 @@ namespace IRaCIS.Core.Application.Service
{
- PendingCount = g.Count(x => x.ReadingTaskState != ReadingTaskState.HaveSigned),
- TotalCount = g.Count(),
- ComplectedCount = g.Count(x => x.ReadingTaskState == ReadingTaskState.HaveSigned),
+ //PendingCount = g.Count(x => x.ReadingTaskState != ReadingTaskState.HaveSigned),
+ //TotalCount = g.Count(),
+ //ComplectedCount = g.Count(x => x.ReadingTaskState == ReadingTaskState.HaveSigned),
TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
CriterionType = g.Key.CriterionType,
From 77b2d7bed40521ac6c28e0f2d384a30d42211185 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 23 Mar 2026 19:03:12 +0800
Subject: [PATCH 4/4] =?UTF-8?q?=E5=B1=8F=E8=94=BD=E5=88=97=E8=A1=A8-?=
=?UTF-8?q?=E7=BB=A7=E7=BB=AD=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/WorkLoad/DoctorWorkloadService.cs | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
index 36909a675..3858fad57 100644
--- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
+++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs
@@ -242,17 +242,17 @@ namespace IRaCIS.Core.Application.Service
Id = x.Id
}).ToList(),
- ReadingTaskStateList = intoGroup.DoctorUser.VisitTaskList.Where(t => t.TrialReadingCriterion.IsConfirm).Where(x => x.TaskState == TaskState.Effect && x.TrialId == trialId).GroupBy(x => new { x.TrialReadingCriterionId, x.TrialReadingCriterion.CriterionType }).Select(g => new DoctorTaskStat()
- {
+ //ReadingTaskStateList = intoGroup.DoctorUser.VisitTaskList.Where(t => t.TrialReadingCriterion.IsConfirm).Where(x => x.TaskState == TaskState.Effect && x.TrialId == trialId).GroupBy(x => new { x.TrialReadingCriterionId, x.TrialReadingCriterion.CriterionType }).Select(g => new DoctorTaskStat()
+ //{
- //PendingCount = g.Count(x => x.ReadingTaskState != ReadingTaskState.HaveSigned),
- //TotalCount = g.Count(),
- //ComplectedCount = g.Count(x => x.ReadingTaskState == ReadingTaskState.HaveSigned),
- TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
- CriterionType = g.Key.CriterionType,
+ // PendingCount = g.Count(x => x.ReadingTaskState != ReadingTaskState.HaveSigned),
+ // TotalCount = g.Count(),
+ // ComplectedCount = g.Count(x => x.ReadingTaskState == ReadingTaskState.HaveSigned),
+ // TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
+ // CriterionType = g.Key.CriterionType,
- }).ToList(),
+ //}).ToList(),
DoctorId = doctor.Id,
Code = doctor.ReviewerCode,