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 @@ - ���� + 质疑 - һ���Ժ˲� + 一致性核查 - ���� + 复制 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..3858fad57 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,13 +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).Select(x => new DoctorUserTask() - { - ReadingTaskState = x.ReadingTaskState, - TrialReadingCriterionId = x.TrialReadingCriterionId, - CriterionType = x.TrialReadingCriterion.CriterionType, + //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() + //{ - }).ToList(), + + // 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(), DoctorId = doctor.Id, Code = doctor.ReviewerCode,