From dc10030a6757dd0a9244bf6e58bf79eeceaf7554 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 6 Apr 2023 11:17:42 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/appsettings.json | 43 ++++-------- .../Service/Common/SystemMonitor.cs | 66 +++++++++---------- 2 files changed, 43 insertions(+), 66 deletions(-) diff --git a/IRaCIS.Core.API/appsettings.json b/IRaCIS.Core.API/appsettings.json index c200d0770..791297540 100644 --- a/IRaCIS.Core.API/appsettings.json +++ b/IRaCIS.Core.API/appsettings.json @@ -1,16 +1,13 @@ { - "ConnectionStrings": { - "hang": "Server=ZHOU;Database=IRaCIS;User ID=sa;Password=sa123456;" - }, "JwtSetting": { - "SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", // 密钥 - "Issuer": "IRaCIS", // 颁发者 - "Audience": "ZhiZhun", // 接收者 - "TokenExpireDays": "7" // 过期时间(7day) + "SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", + "Issuer": "IRaCIS", + "Audience": "ZhiZhun", + "TokenExpireDays": "7" }, "IpRateLimiting": { - "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each - "StackBlockedRequests": false, // set to false, rejected calls are not added to the throttle counter + "EnableEndpointRateLimiting": true, + "StackBlockedRequests": false, "RealIpHeader": "X-Real-IP", "ClientIdHeader": "X-ClientId", "QuotaExceededResponse": { @@ -19,12 +16,10 @@ "StatusCode": 429 }, "HttpStatusCode": 429, - //"IpWhitelist": [ "127.0.0.1", "::1/10", "192.168.0.0/24" ], - "EndpointWhitelist": [ "post:/study/archivestudy/*" ], - //"EndpointWhitelist": [ ], - //"EndpointWhitelist": ["post:/trial/getTrialList"], //demo + "EndpointWhitelist": [ + "post:/study/archivestudy/*" + ], "IpWhitelist": [], - //"ClientWhitelist": [ "dev-id-1", "dev-id-2" ], "GeneralRules": [ { "Endpoint": "*", @@ -48,7 +43,6 @@ } ] }, - "easycaching": { "inmemory": { "MaxRdSecond": 120, @@ -63,30 +57,19 @@ } } }, - + "UpdateConfig": { + "test": "123456", + "test1": "12345678" + }, "IRaCISBasicConfig": { - "DoctorCodePrefix": "RE", - "UserCodePrefix": "U", - "QCChallengeCodePrefix": "Q", - "NoneDicomStudyCodePrefix": "NST", - "DicomStudyCodePrefix": "ST", - "SystemSiteCodePrefix": "S", - "DefaultPassword": "123456", - "DefaultInternalOrganizationName": "ExtImaging", - "ImageShareExpireDays": 10 } - - //网站根地址,为了访问文件 dicom 和上传的文档... 实测发现不用将域名拼接返回,浏览器会自动加上当前ip,避免了多环境读取环境配置文件 - - - } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/Common/SystemMonitor.cs b/IRaCIS.Core.Application/Service/Common/SystemMonitor.cs index 004aff76f..80e6973fb 100644 --- a/IRaCIS.Core.Application/Service/Common/SystemMonitor.cs +++ b/IRaCIS.Core.Application/Service/Common/SystemMonitor.cs @@ -109,9 +109,7 @@ namespace IRaCIS.Core.Application.Service.Common //jObject.WriteTo(jsonTextWriter); #endregion - - - + #region test //var json = File.ReadAllText("appsettings.json"); //var jObject = JToken.Parse(json, new JsonLoadSettings { CommentHandling = CommentHandling.Load,DuplicatePropertyNameHandling=DuplicatePropertyNameHandling.Ignore }); @@ -149,7 +147,7 @@ namespace IRaCIS.Core.Application.Service.Common //File.WriteAllText("appsettings.json", updatedJson); - // string json = @"{ + //string json = @"{ // // This is a comment // ""Name"": ""John Smith"", // ""Age"": 30, @@ -162,21 +160,19 @@ namespace IRaCIS.Core.Application.Service.Common // } //}"; - // // 使用 Json.NET 库解析 JSON 字符串 - // JObject jObject = JObject.Parse(json,new JsonLoadSettings() { CommentHandling=CommentHandling.Load}); + //// 使用 Json.NET 库解析 JSON 字符串 + //JObject jObject = JObject.Parse(json, new JsonLoadSettings() { CommentHandling = CommentHandling.Load }); - // // 修改属性 - // jObject["Name"] = "Jane Smith"; - - // // 将修改后的 JObject 对象序列化为 JSON 字符串并保留注释 - // string newJson = jObject.ToString(Formatting.Indented); - - - // // 打印修改后的 JSON 字符串 - // Console.WriteLine(newJson); + //// 修改属性 + //jObject["Name"] = "Jane Smith"; + //// 将修改后的 JObject 对象序列化为 JSON 字符串并保留注释 + //string newJson = jObject.ToString(Newtonsoft.Json.Formatting.Indented); + //// 打印修改后的 JSON 字符串 + //Console.WriteLine(newJson); + #endregion // 读取 Json 文件 @@ -184,40 +180,38 @@ namespace IRaCIS.Core.Application.Service.Common var json = File.ReadAllText("appsettings.json"); - JObject jsonObject = JObject.Parse(json, new JsonLoadSettings() { CommentHandling=CommentHandling.Load}); + JObject jsonObject = JObject.Parse(json, new JsonLoadSettings() { CommentHandling = CommentHandling.Load }); // 获取 UpdateConfig 属性所在的节点 JToken updateConfigNode = jsonObject.SelectToken("UpdateConfig"); JProperty updateConfigProperty = (JProperty)updateConfigNode.Parent; JObject updateConfigParent = (JObject)updateConfigProperty.Value; - - // 向 updateConfigParent 添加或者属性 updateConfigParent[key] = newValue; // 将更改保存回 Json 文件 - //File.WriteAllText(jsonFilePath, jsonObject.ToString()); + File.WriteAllText(jsonFilePath, jsonObject.ToString()); - using (var reader = new JsonTextReader(new StringReader(json))) - using (var writer = new JsonTextWriter(new StreamWriter("appsettings.json"))) - { - while (reader.Read()) - { - if (reader.TokenType == JsonToken.PropertyName && (string)reader.Value == key) - { - // Write the updated property value - writer.WritePropertyName(key); - writer.WriteValue(newValue); - - continue; - } + //using (var reader = new JsonTextReader(new StringReader(json))) + //using (var writer = new JsonTextWriter(new StreamWriter("appsettings.json"))) + //{ + // while (reader.Read()) + // { + // if (reader.TokenType == JsonToken.PropertyName && (string)reader.Value == key) + // { + // // Write the updated property value + // writer.WritePropertyName(key); + // writer.WriteValue(newValue); + // reader.Read(); + // continue; + // } - // Write all other tokens - writer.WriteToken(reader.TokenType, reader.Value); - } - } + // // Write all other tokens + // writer.WriteToken(reader.TokenType, reader.Value); + // } + //} From e8e1142363f8b71739f98070f621dd8d2731937d Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 6 Apr 2023 14:17:04 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Allocation/VisitTaskService.cs | 27 ++++++++++++++++++- IRaCIS.Core.Domain/Allocation/VisitTask.cs | 10 +++---- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index bf2d433ed..ca280b4f9 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1912,6 +1912,17 @@ namespace IRaCIS.Core.Application.Service.Allocation foreach (var influenceTask in influenceTaskList) { + //已签名的任务 设置转变后的标志 + if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.ReadingTaskState==ReadingTaskState.HaveSigned) + { + var isConvertedTask= _visitTaskRepository.Where(t => t.Id == influenceTask.Id).Select(t => t.IsConvertedTask).FirstOrDefault(); + + if (isConvertedTask) + { + influenceTask.IsHistoryConvertedTask = true; + } + } + //处理申请的任务 if (influenceTask.Id == origenalTask.Id) @@ -2138,7 +2149,7 @@ namespace IRaCIS.Core.Application.Service.Allocation var task = (await _visitTaskRepository.Where(t => t.Id == taskId).FirstOrDefaultAsync()).IfNullThrowException(); - var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == task.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException(); + var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == task.TrialReadingCriterionId).Select(x => new { x.ReadingTool,x.CriterionType, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException(); if (criterionConfig.IsAutoCreate == false) { @@ -2306,6 +2317,19 @@ namespace IRaCIS.Core.Application.Service.Allocation foreach (var influenceTask in influenceTaskList) { + //已签名的任务 设置转变后的标志 + if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + { + var isConvertedTask = _visitTaskRepository.Where(t => t.Id == influenceTask.Id).Select(t => t.IsConvertedTask).FirstOrDefault(); + + if (isConvertedTask) + { + influenceTask.IsHistoryConvertedTask = true; + } + } + + + //同意的访视 因为要记录具体的操作,所以废弃 if (influenceTask.Id == task.Id) { @@ -2367,6 +2391,7 @@ namespace IRaCIS.Core.Application.Service.Allocation } } + } #endregion diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index bc75a527c..37ca6af5c 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -321,10 +321,6 @@ namespace IRaCIS.Core.Domain.Models public bool IsAnalysisCreate { get; set; } - ///// - ///// 是否是转变的任务(转为IRECIST) - ///// - //public bool IsConvertedTask { get; set; } = false; /// /// 转换之前的任务Id(转化的任务才有该值) @@ -342,10 +338,14 @@ namespace IRaCIS.Core.Domain.Models && t.ArmEnum == ArmEnum) || BeforeConvertedTaskId != null ).Any(); - + /// + /// 重阅重置任务的 标注是转化之前的 还是转化之后的 + /// + public bool IsHistoryConvertedTask { get; set; } = false; + public bool? IsSelfAnalysis { get; set; } public string BlindSubjectCode { get; set; } = string.Empty; From 6e7d2888321d2e7803af20ce940ce0cce51940ae Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 6 Apr 2023 16:39:08 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=8D=E9=98=85?= =?UTF-8?q?=E5=89=8D=E5=8F=98=E6=9B=B4=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index ca280b4f9..955496151 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -2957,6 +2957,7 @@ namespace IRaCIS.Core.Application.Service.Allocation //PM退回 else { + //有序 if (criterionConfig.IsReadingTaskViewInOrder) { From 095be8aa1a34bf647d2eceb98834092c6d416d07 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 6 Apr 2023 17:16:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=87=8D=E9=98=85=20=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4=E4=B8=80=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 7 + .../Service/Allocation/VisitTaskService.cs | 912 ++++++++---------- 2 files changed, 428 insertions(+), 491 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index a0eebe9de..0a901c2db 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1443,6 +1443,13 @@ + + + 获取新靶病灶评估 + + + + diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 955496151..65bff5b7e 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -807,7 +807,7 @@ namespace IRaCIS.Core.Application.Service.Allocation //var defalutSortArray = new string[] { nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.SubjectId), nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.VisitTaskNum) }; - var defalutSortArray = new string[] { + var defalutSortArray = new string[] { nameof(ReReadingTaskView.RequestReReadingResultEnum) , nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.TaskState), @@ -1515,7 +1515,7 @@ namespace IRaCIS.Core.Application.Service.Allocation var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException(); - if ( (origenalTask.TaskState != TaskState.Effect && origenalTask.TaskState != TaskState.Freeze)) + if ((origenalTask.TaskState != TaskState.Effect && origenalTask.TaskState != TaskState.Freeze)) { //---当前申请重阅任务的状态,已被其他任务重阅已影响,不允许对该状态下的任务进行重阅同意与否操作 return ResponseOutput.NotOk(_localizer["VisitTask_ReapplyStatusConflict"]); @@ -1607,13 +1607,6 @@ namespace IRaCIS.Core.Application.Service.Allocation { ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand); - //influenceTaskList.ForEach(t => - //{ - // //记录实际影像的任务 - - // influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id }); - //}); - await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask, influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList()); await SetReReadingOrBackInfluenceAnalysisAsync(origenalTask.SubjectId); @@ -1622,47 +1615,67 @@ namespace IRaCIS.Core.Application.Service.Allocation } - //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 - if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != origenalTask.VisitTaskNum) + + if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.TaskState = TaskState.HaveReturned; + influenceTask.TaskState = TaskState.HaveReturned; - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); - } - else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) - { - influenceTask.TaskState = TaskState.Adbandon; - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); - } - else - { - influenceTask.DoctorUserId = null; - influenceTask.AllocateTime = null; - influenceTask.SuggesteFinishedTime = null; - influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; - - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign }); - } + trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); } - //当前访视 else { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.TaskState = TaskState.HaveReturned; - - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); - } - else - { - influenceTask.TaskState = TaskState.Adbandon; - - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); - } + influenceTask.TaskState = TaskState.Adbandon; + trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); } + + #region 废弃 分配 留存 + + ////申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 + //if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != origenalTask.VisitTaskNum) + //{ + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.TaskState = TaskState.HaveReturned; + + // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); + // } + // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) + // { + // influenceTask.TaskState = TaskState.Adbandon; + // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); + // } + // else + // { + // influenceTask.DoctorUserId = null; + // influenceTask.AllocateTime = null; + // influenceTask.SuggesteFinishedTime = null; + // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; + + // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign }); + // } + //} + ////当前访视 + //else + //{ + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.TaskState = TaskState.HaveReturned; + + // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); + // } + // else + // { + // influenceTask.TaskState = TaskState.Adbandon; + + // trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); + // } + + //} + + #endregion + + } #endregion } @@ -1690,12 +1703,6 @@ namespace IRaCIS.Core.Application.Service.Allocation { ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand); - //influenceTaskList.ForEach(t => - //{ - // //记录实际影像的任务 - - // influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id }); - //}); await SetReReadingOrBackInfluenceAnalysisAsync(origenalTask.SubjectId); @@ -1741,77 +1748,12 @@ namespace IRaCIS.Core.Application.Service.Allocation RequestReReadingResultEnum = RequestReReadingResult.Agree, }); - //await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == origenalTask.Id, u => new VisitTask() - //{ - // ReReadingApplyState = ReReadingApplyState.Agree - //}); + #endregion - #region 申请任务 重新生成 拷贝表单 必须放在影响的访视生成任务之前,因为会影响 IsConvertedTask 标志 - - - await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() - { - TrialId = trialId, - - ReadingCategory = GenerateTaskCategory.ReReading, - - ReReadingTask = origenalTask, - - //同步才可以 - Action = (newTask) => - { - //申请表 设置新任务Id - visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; - - ////生成的任务分配给原始医生 - newTask.DoctorUserId = origenalTask.DoctorUserId; - newTask.TaskAllocationState = TaskAllocationState.Allocated; - newTask.AllocateTime = DateTime.Now; - newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); - - - //裁判任务 需要进行特殊处理 在重阅逻辑里面处理 - - - //拷贝表单 - if (visitTaskReReadingAppply.IsCopyOrigenalForms) - { - if (origenalTask.ReadingCategory == ReadingCategory.Visit) - { - var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); - - foreach (var item in list) - { - item.Id = Guid.Empty; - item.VisitTaskId = newTask.Id; - } - - _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; - } - //else if (origenalTask.ReadingCategory == ReadingCategory.Global) - //{ - // var list = _repository.Where(t => t.GlobalTaskId == origenalTask.Id).ToList(); - - // foreach (var item in list) - // { - // item.Id = Guid.Empty; - // item.GlobalTaskId = newTask.Id; - // } - - // _ = _repository.AddRangeAsync(list).Result; - //} - - - } - - } - }); - - #endregion //有序阅片 if (criterionConfig.IsReadingTaskViewInOrder) @@ -1846,7 +1788,7 @@ namespace IRaCIS.Core.Application.Service.Allocation filterExpression = filterExpression.And(t => (t.VisitTaskNum > origenalTask.VisitTaskNum && ( - (((t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.WaitReading) || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == origenalTask.DoctorUserId) + ((t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == origenalTask.DoctorUserId) // 裁判 肿瘤学是另外的医生做 || t.ReadingCategory == ReadingCategory.Judge || t.ReadingCategory == ReadingCategory.Oncology @@ -1857,7 +1799,7 @@ namespace IRaCIS.Core.Application.Service.Allocation { filterExpression = filterExpression.And(t => t.VisitTaskNum >= origenalTask.VisitTaskNum && ( - (((t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.WaitReading) || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == origenalTask.DoctorUserId) + ((t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == origenalTask.DoctorUserId) // 裁判 肿瘤学是另外的医生做 || t.ReadingCategory == ReadingCategory.Judge || t.ReadingCategory == ReadingCategory.Oncology @@ -1913,9 +1855,9 @@ namespace IRaCIS.Core.Application.Service.Allocation foreach (var influenceTask in influenceTaskList) { //已签名的任务 设置转变后的标志 - if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.ReadingTaskState==ReadingTaskState.HaveSigned) + if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - var isConvertedTask= _visitTaskRepository.Where(t => t.Id == influenceTask.Id).Select(t => t.IsConvertedTask).FirstOrDefault(); + var isConvertedTask = _visitTaskRepository.Where(t => t.Id == influenceTask.Id).Select(t => t.IsConvertedTask).FirstOrDefault(); if (isConvertedTask) { @@ -1934,106 +1876,138 @@ namespace IRaCIS.Core.Application.Service.Allocation await InfluenceAddtioncalEvaluationCritrionAsync(origenalTask, influenceTaskList.Where(t => t.Id != origenalTask.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList(), false); + } + + + var beforeTaskState = influenceTask.TaskState; + + if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + { + influenceTask.TaskState = TaskState.HaveReturned; + trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); } - //处理其他任务 else { + influenceTask.TaskState = TaskState.Adbandon; - var beforeTaskState = influenceTask.TaskState; + trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); + } - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // 影响的任务 仅仅访视类别的才生成 + if (influenceTask.ReadingCategory == ReadingCategory.Visit) + { + + + // 影响的其他标准的附加评估的任务不立即生成 比如1.1基线 重阅 PM 同意仅仅生成1.1任务,不生成BM任务 + if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment && influenceTask.TrialReadingCriterionId != origenalTask.TrialReadingCriterionId) { - influenceTask.TaskState = TaskState.HaveReturned; - - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); - } - else - { - influenceTask.TaskState = TaskState.Adbandon; - - trakingOrigenalTask?.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); + //BM标准的不生成任务 + continue; } - // 影响的任务 仅仅访视类别的才生成 - if (influenceTask.ReadingCategory == ReadingCategory.Visit) + + //当前任务是转变任务,并且影响列表里有转变之前的任务 那么该访视任务就不生成 + if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.BeforeConvertedTaskId != null && influenceTaskList.Any(t => t.Id == influenceTask.BeforeConvertedTaskId)) { + continue; + } + #region 影响的任务生成 - // 影响的其他标准的附加评估的任务不立即生成 比如1.1基线 重阅 PM 同意仅仅生成1.1任务,不生成BM任务 - if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment && influenceTask.TrialReadingCriterionId != origenalTask.TrialReadingCriterionId) + await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() + { + TrialId = trialId, + + ReadingCategory = GenerateTaskCategory.ReReading, + + ReReadingTask = influenceTask, + + //同步才可以 + Action = (newTask) => { - //BM标准的不生成任务 - continue; - } + //申请表 设置新任务Id + visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; + + //生成的任务分配给原始医生 + newTask.DoctorUserId = origenalTask.DoctorUserId; + newTask.TaskAllocationState = TaskAllocationState.Allocated; + newTask.AllocateTime = DateTime.Now; + newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); - //当前任务是转变任务,并且影响列表里有转变之前的任务 那么该访视任务就不生成 - if (criterionConfig.CriterionType == CriterionType.IRECIST1Point1 && influenceTask.BeforeConvertedTaskId != null && influenceTaskList.Any(t => t.Id == influenceTask.BeforeConvertedTaskId)) - { - continue; - } - - - await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() - { - TrialId = trialId, - - ReadingCategory = GenerateTaskCategory.ReReading, - - ReReadingTask = influenceTask, - - //同步才可以 - Action = (newTask) => + if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id==origenalTask.Id) { - //申请表 设置新任务Id - visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; - - //生成的任务分配给原始医生 - newTask.DoctorUserId = origenalTask.DoctorUserId; - newTask.TaskAllocationState = TaskAllocationState.Allocated; - newTask.AllocateTime = DateTime.Now; - newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); - - //拷贝后续表单 - if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum) + if (origenalTask.ReadingCategory == ReadingCategory.Visit) { - if (origenalTask.ReadingCategory == ReadingCategory.Visit) + var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); + + foreach (var item in list) { - var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); - - foreach (var item in list) - { - item.Id = Guid.Empty; - item.VisitTaskId = newTask.Id; - } - - _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; + item.Id = Guid.Empty; + item.VisitTaskId = newTask.Id; } - //else if (origenalTask.ReadingCategory == ReadingCategory.Global) - //{ - // var list = _repository.Where(t => t.GlobalTaskId == origenalTask.Id).ToList(); - // foreach (var item in list) - // { - // item.Id = Guid.Empty; - // item.GlobalTaskId = newTask.Id; - // } - - // _ = _repository.AddRangeAsync(list).Result; - //} + _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; } + //else if (origenalTask.ReadingCategory == ReadingCategory.Global) + //{ + // var list = _repository.Where(t => t.GlobalTaskId == origenalTask.Id).ToList(); + + // foreach (var item in list) + // { + // item.Id = Guid.Empty; + // item.GlobalTaskId = newTask.Id; + // } + + // _ = _repository.AddRangeAsync(list).Result; + //} + } - }); + + //拷贝后续表单 + if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum) + { + if (origenalTask.ReadingCategory == ReadingCategory.Visit) + { + var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); + + foreach (var item in list) + { + item.Id = Guid.Empty; + item.VisitTaskId = newTask.Id; + } + + _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; + } + //else if (origenalTask.ReadingCategory == ReadingCategory.Global) + //{ + // var list = _repository.Where(t => t.GlobalTaskId == origenalTask.Id).ToList(); + + // foreach (var item in list) + // { + // item.Id = Guid.Empty; + // item.GlobalTaskId = newTask.Id; + // } + + // _ = _repository.AddRangeAsync(list).Result; + //} + } + + } + }); - } + #endregion + } + + } #endregion @@ -2083,6 +2057,73 @@ namespace IRaCIS.Core.Application.Service.Allocation } } + + if (influenceTask.ReadingCategory == ReadingCategory.Visit) + { + await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() + { + TrialId = trialId, + + ReadingCategory = GenerateTaskCategory.ReReading, + + ReReadingTask = origenalTask, + + //同步才可以 + Action = (newTask) => + { + //申请表 设置新任务Id + visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; + + ////生成的任务分配给原始医生 + newTask.DoctorUserId = origenalTask.DoctorUserId; + newTask.TaskAllocationState = TaskAllocationState.Allocated; + newTask.AllocateTime = DateTime.Now; + newTask.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); + + + //裁判任务 需要进行特殊处理 在重阅逻辑里面处理 + + + if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id) + { + if (origenalTask.ReadingCategory == ReadingCategory.Visit) + { + var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); + + foreach (var item in list) + { + item.Id = Guid.Empty; + item.VisitTaskId = newTask.Id; + } + + _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; + } + + } + + //拷贝后续表单 + if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum) + { + if (origenalTask.ReadingCategory == ReadingCategory.Visit) + { + var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList(); + + foreach (var item in list) + { + item.Id = Guid.Empty; + item.VisitTaskId = newTask.Id; + } + + _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result; + } + } + + + } + }); + + } + } } @@ -2149,7 +2190,7 @@ namespace IRaCIS.Core.Application.Service.Allocation var task = (await _visitTaskRepository.Where(t => t.Id == taskId).FirstOrDefaultAsync()).IfNullThrowException(); - var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == task.TrialReadingCriterionId).Select(x => new { x.ReadingTool,x.CriterionType, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException(); + var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == task.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.CriterionType, x.IsAutoCreate, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException(); if (criterionConfig.IsAutoCreate == false) { @@ -2197,6 +2238,7 @@ namespace IRaCIS.Core.Application.Service.Allocation { //Expression> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated; + filterExpression = filterExpression.And(t => t.IsAnalysisCreate == false); @@ -2209,107 +2251,6 @@ namespace IRaCIS.Core.Application.Service.Allocation - - #region 方式一 - //foreach (var influenceTask in influenceTaskList) - //{ - // //申请任务的阅片人 后续任务肯定没做, 只有访视任务,没有其他任务 取消分配 - // if (influenceTask.DoctorUserId == task.DoctorUserId) - // { - - // switch (influenceTask.ReadingCategory) - // { - // case ReadingCategory.Visit: - - // influenceTask.DoctorUserId = null; - // influenceTask.AllocateTime = null; - // influenceTask.SuggesteFinishedTime = null; - // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; - // break; - - // case ReadingCategory.Global: - // case ReadingCategory.Judge: - // case ReadingCategory.Oncology: - - // throw new BusinessValidationFailedException("不支持回退任务类型"); - // } - // } - // //另外一个阅片人 - // else - // { - // //另外一个阅片人 有序PM 申请重阅流程 - // if (otherReviewerTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // { - // switch (influenceTask.ReadingCategory) - // { - // case ReadingCategory.Visit: - - // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // { - // influenceTask.TaskState = TaskState.HaveReturned; - // } - // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) - // { - // influenceTask.TaskState = TaskState.Adbandon; - // } - // else - // { - // influenceTask.DoctorUserId = null; - // influenceTask.AllocateTime = null; - // influenceTask.SuggesteFinishedTime = null; - // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; - // } - // break; - // case ReadingCategory.Global: - // case ReadingCategory.Oncology: - - // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - // { - // influenceTask.TaskState = TaskState.HaveReturned; - // } - // else - // { - // influenceTask.TaskState = TaskState.Adbandon; - // } - - // break; - - // case ReadingCategory.Judge: - // default: - - // throw new BusinessValidationFailedException("不支持回退任务类型"); - // } - // } - // //另外一个阅片人 有序 PM 回退流程 - // else - // { - // switch (influenceTask.ReadingCategory) - // { - // case ReadingCategory.Visit: - - // influenceTask.DoctorUserId = null; - // influenceTask.AllocateTime = null; - // influenceTask.SuggesteFinishedTime = null; - // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; - // break; - - // case ReadingCategory.Global: - // case ReadingCategory.Judge: - // case ReadingCategory.Oncology: - - // throw new BusinessValidationFailedException("不支持回退任务类型"); - // } - // } - - // } - //} - - - - #endregion - - - #region 方式二 var origenalTask = influenceTaskList.Where(t => t.Id == task.Id).FirstOrDefault(); @@ -2328,17 +2269,9 @@ namespace IRaCIS.Core.Application.Service.Allocation } } - - //同意的访视 因为要记录具体的操作,所以废弃 if (influenceTask.Id == task.Id) { - //influenceTaskList.ForEach(t => - //{ - // //记录实际影像的任务 - - // influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id }); - //}); await InfluenceAddtioncalEvaluationCritrionAsync(task, influenceTaskList.Where(t => t.Id != task.Id).Where(t => t.SourceSubjectVisitId != null).Select(t => (Guid)t.SourceSubjectVisitId).Distinct().ToList()); @@ -2350,48 +2283,64 @@ namespace IRaCIS.Core.Application.Service.Allocation influenceTask.IsPMSetBack = true; } - //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 - if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != task.VisitTaskNum) + if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) { - //后续访视处理访视 - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.TaskState = TaskState.HaveReturned; - - origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); - } - else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) - { - influenceTask.TaskState = TaskState.Adbandon; - origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); - } - else - { - influenceTask.DoctorUserId = null; - influenceTask.AllocateTime = null; - influenceTask.SuggesteFinishedTime = null; - influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; - - origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign }); - } + influenceTask.TaskState = TaskState.HaveReturned; + origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); } else { - //申请的访视 全局肿瘤学 - - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.TaskState = TaskState.HaveReturned; - origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); - } - else - { - influenceTask.TaskState = TaskState.Adbandon; - origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); - } - + influenceTask.TaskState = TaskState.Adbandon; + origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); } + #region 废弃取消分配留存 + + ////申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 + //if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != task.VisitTaskNum) + //{ + // //后续访视处理访视 + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.TaskState = TaskState.HaveReturned; + + // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); + // } + // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) + // { + // influenceTask.TaskState = TaskState.Adbandon; + // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); + // } + // else + // { + // influenceTask.DoctorUserId = null; + // influenceTask.AllocateTime = null; + // influenceTask.SuggesteFinishedTime = null; + // influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate; + + // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign }); + // } + //} + //else + //{ + // //申请的访视 全局肿瘤学 + + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.TaskState = TaskState.HaveReturned; + // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return }); + // } + // else + // { + // influenceTask.TaskState = TaskState.Adbandon; + // origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); + // } + + //} + #endregion + + + } #endregion @@ -2404,25 +2353,6 @@ namespace IRaCIS.Core.Application.Service.Allocation { //无序 无序阅片没有 全局 肿瘤学 - - //// 当前任务标为失效 - //task.TaskState = TaskState.Adbandon; - - ////考虑该访视 另外一个阅片人的任务 - //var otherReviewerTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.Id != task.Id && t.TaskState == TaskState.Effect); - - - //if (otherReviewerTask.ReadingTaskState == ReadingTaskState.HaveSigned) - //{ - // //另外阅片人完成阅片了 就设置为重阅重置 - // otherReviewerTask.TaskState = TaskState.HaveReturned; - //} - //else - //{ - // otherReviewerTask.TaskState = TaskState.Adbandon; - //} - - // 申请该访视的任务 申请人失效 另外一个人重阅重置或者失效 var currentVisitList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.ReadingCategory == ReadingCategory.Visit && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.VisitTaskNum == task.VisitTaskNum, true).ToListAsync(); @@ -2447,16 +2377,6 @@ namespace IRaCIS.Core.Application.Service.Allocation origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon }); } - ////同意的访视 - //if (influenceTask.Id == task.Id) - //{ - // currentVisitList.ForEach(t => - // { - // //记录实际影像的任务 - - // influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id }); - // }); - //} } } @@ -2686,7 +2606,7 @@ namespace IRaCIS.Core.Application.Service.Allocation filterExpression = filterExpression.And(t => (t.VisitTaskNum > filterObj.VisitTaskNum && ( - (((t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.WaitReading) || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == filterObj.DoctorUserId) + ((t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == filterObj.DoctorUserId) // 裁判 肿瘤学是另外的医生做 || t.ReadingCategory == ReadingCategory.Judge || t.ReadingCategory == ReadingCategory.Oncology @@ -2697,7 +2617,7 @@ namespace IRaCIS.Core.Application.Service.Allocation { filterExpression = filterExpression.And(t => t.VisitTaskNum >= filterObj.VisitTaskNum && ( - (((t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.WaitReading) || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == filterObj.DoctorUserId) + ((t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global) && t.DoctorUserId == filterObj.DoctorUserId) // 裁判 肿瘤学是另外的医生做 || t.ReadingCategory == ReadingCategory.Judge || t.ReadingCategory == ReadingCategory.Oncology @@ -2869,138 +2789,148 @@ namespace IRaCIS.Core.Application.Service.Allocation foreach (var influenceTask in list) { + influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon; - if (isReReading) - { - if ((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId != null) || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null)) - { - //有序 - if (criterionConfig.IsReadingTaskViewInOrder) - { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - //else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) - //{ - // influenceTask.OptType = ReReadingOrBackOptType.Abandon; - //} - //else - //{ - // throw new BusinessValidationFailedException("IR 申请重阅,不会影响到后续未读的任务,当前影响列表有未读的任务,请核查"); - //} - } - else - { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - } - } - if (((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM) && applyId != null) || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId == null)) - { - //有序 - if (criterionConfig.IsReadingTaskViewInOrder) - { - //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 - if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != filterObj.VisitTaskNum) - { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.CancelAssign; - } - } - else - { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - } - } - else - { - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - } - } + #region 变更前 注释 - } - //PM退回 - else - { + //if (isReReading) + //{ - //有序 - if (criterionConfig.IsReadingTaskViewInOrder) - { - //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 - if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != filterObj.VisitTaskNum) - { - //后续访视处理访视 - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.CancelAssign; - } - } - else - { - //申请的访视 全局肿瘤学 + // if ((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId != null) || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null)) + // { + // //有序 + // if (criterionConfig.IsReadingTaskViewInOrder) + // { + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // //else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) + // //{ + // // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // //} + // //else + // //{ + // // throw new BusinessValidationFailedException("IR 申请重阅,不会影响到后续未读的任务,当前影响列表有未读的任务,请核查"); + // //} + // } + // else + // { + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // } + // } + // if (((_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM) && applyId != null) || (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && applyId == null)) + // { + // //有序 + // if (criterionConfig.IsReadingTaskViewInOrder) + // { + // //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 + // if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != filterObj.VisitTaskNum) + // { + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.CancelAssign; + // } + // } + // else + // { + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // } + // } + // else + // { + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // } + // } - if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) - { - influenceTask.OptType = ReReadingOrBackOptType.Return; - } - else - { - influenceTask.OptType = ReReadingOrBackOptType.Abandon; - } - } - } - //无序 - else - { - //重阅重置或者失效 - influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon; - } - } + //} + ////PM退回 + //else + //{ + + // //有序 + // if (criterionConfig.IsReadingTaskViewInOrder) + // { + // //申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配 + // if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != filterObj.VisitTaskNum) + // { + // //后续访视处理访视 + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.CancelAssign; + // } + // } + // else + // { + // //申请的访视 全局肿瘤学 + + // if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned) + // { + // influenceTask.OptType = ReReadingOrBackOptType.Return; + // } + // else + // { + // influenceTask.OptType = ReReadingOrBackOptType.Abandon; + // } + // } + // } + // //无序 + // else + // { + // //重阅重置或者失效 + // influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon; + // } + + + //} + + + #endregion + } #endregion