From a2cfec65536b645db1a53588dbd0f3b3ca211cb5 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 4 Dec 2024 11:37:57 +0800
Subject: [PATCH 1/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E8=A1=A8?=
=?UTF-8?q?=E6=8E=92=E5=BA=8F+=20=E5=8F=97=E8=AF=95=E8=80=85=E6=97=A0?=
=?UTF-8?q?=E9=98=85=E7=89=87=E6=9C=9F=20=E5=AD=97=E6=AE=B5=E8=AE=BE?=
=?UTF-8?q?=E7=BD=AE=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 5 ---
.../Service/Common/ExcelExportService.cs | 37 ++++++++++++++-----
.../Service/QC/DTO/QCListViewModel.cs | 2 +
.../Service/QC/_MapConfig.cs | 3 ++
4 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 73a505d69..5f91adc12 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -7095,11 +7095,6 @@
是否查询所有的一致性分析临床数据 (为否只查询PDF)
-
-
- 是否是阅片页面获取临床数据 (阅片其他访视任务需要获取受试者级别的)
-
-
获取访视列表
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index a8ca5b3b2..1d2705c0f 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -1504,17 +1504,26 @@ namespace IRaCIS.Core.Application.Service.Common
}
else
{
- //两个人都做了
- if (resultExceptJudgeList.Count(t => t.VisitTaskNum == item.VisitTaskNum && t.SubjectCode == item.SubjectCode) == 2)
+ //产生了阅片期
+ if (resultExceptJudgeList.Any(t => t.IsSubjectHaveReadingPeriod))
{
- //如果没有产生裁判,默认选择R1
- if (item.ArmEnum == Arm.DoubleReadingArm1)
+ //两个人都做了
+ if (resultExceptJudgeList.Count(t => t.VisitTaskNum == item.VisitTaskNum && t.SubjectCode == item.SubjectCode) == 2)
{
- item.IsJudgeSelect = true;
+ //如果没有产生裁判,默认选择R1
+ if (item.ArmEnum == Arm.DoubleReadingArm1)
+ {
+ item.IsJudgeSelect = true;
+ }
+ else
+ {
+ item.IsJudgeSelect = false;
+ }
}
else
{
- item.IsJudgeSelect = false;
+ item.IsJudgeSelect = null;
+ item.IsTrigerJudge = null;
}
}
else
@@ -1523,11 +1532,12 @@ namespace IRaCIS.Core.Application.Service.Common
item.IsTrigerJudge = null;
}
+
}
}
}
- if (arbitrationRule == ArbitrationRule.Reading)
+ else if (arbitrationRule == ArbitrationRule.Reading)
{
//处理访视裁判标记
foreach (var visitItem in resultExceptJudgeList.Where(t => t.ReadingCategory == ReadingCategory.Visit))
@@ -1633,6 +1643,15 @@ namespace IRaCIS.Core.Application.Service.Common
}
}
}
+ else
+ {
+ foreach (var visitItem in resultExceptJudgeList.Where(t => t.ReadingCategory == ReadingCategory.Visit))
+ {
+ visitItem.IsJudgeSelect = null;
+ visitItem.IsTrigerJudge = null;
+ }
+
+ }
return resultExceptJudgeList;
}
@@ -2094,11 +2113,11 @@ namespace IRaCIS.Core.Application.Service.Common
list = new List();
- foreach (var item in taskList)
+ foreach (var item in taskList.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum))
{
if (item.LesionList.Count > 0)
{
- foreach (var lession in item.LesionList)
+ foreach (var lession in item.LesionList.OrderBy(t => t.LessionType).ThenBy(t => t.LessionCode))
{
var firstLessionAnser = lession.LessionAnswerList.FirstOrDefault() ?? new CommonLessionQuestionAnswerInfo();
diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
index f7cce53d0..1818fdcde 100644
--- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
+++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
@@ -1159,6 +1159,8 @@ namespace IRaCIS.Core.Application.Contracts
{
public List QuestionAnswerList { get; set; }
+ public bool IsSubjectHaveReadingPeriod { get; set; }
+
public String TrialSiteCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
index c8f0760cd..728795f1e 100644
--- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
@@ -257,6 +257,9 @@ namespace IRaCIS.Core.Application.Service
false)))
.ForMember(o => o.JudgeNote, t => t.MapFrom(u => u.ReadingCategory==ReadingCategory.Judge? u.JudgeResultRemark : u.JudgeVisitTask.JudgeResultRemark))
.ForMember(o => o.VisitNote, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer))
+ .ForMember(o => o.IsSubjectHaveReadingPeriod, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Reading ?
+ u.Subject.ReadModuleList.Any(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.ReadingSetType == ReadingSetType.ImageReading) : false))
+
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
From 137f77cdc5c7a7d3d3d99dfc09239c19730578d6 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 4 Dec 2024 15:33:40 +0800
Subject: [PATCH 2/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=98=85=E7=89=87?=
=?UTF-8?q?=E6=9C=9F=E5=AF=BC=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Common/ExcelExportService.cs | 47 ++++++++++---------
1 file changed, 25 insertions(+), 22 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index 1d2705c0f..7f623e5d4 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -1504,26 +1504,18 @@ namespace IRaCIS.Core.Application.Service.Common
}
else
{
- //产生了阅片期
- if (resultExceptJudgeList.Any(t => t.IsSubjectHaveReadingPeriod))
+
+ //两个人都做了
+ if (resultExceptJudgeList.Count(t => t.VisitTaskNum == item.VisitTaskNum && t.SubjectCode == item.SubjectCode) == 2)
{
- //两个人都做了
- if (resultExceptJudgeList.Count(t => t.VisitTaskNum == item.VisitTaskNum && t.SubjectCode == item.SubjectCode) == 2)
+ //如果没有产生裁判,默认选择R1
+ if (item.ArmEnum == Arm.DoubleReadingArm1)
{
- //如果没有产生裁判,默认选择R1
- if (item.ArmEnum == Arm.DoubleReadingArm1)
- {
- item.IsJudgeSelect = true;
- }
- else
- {
- item.IsJudgeSelect = false;
- }
+ item.IsJudgeSelect = true;
}
else
{
- item.IsJudgeSelect = null;
- item.IsTrigerJudge = null;
+ item.IsJudgeSelect = false;
}
}
else
@@ -1533,6 +1525,7 @@ namespace IRaCIS.Core.Application.Service.Common
}
+
}
}
@@ -1619,18 +1612,27 @@ namespace IRaCIS.Core.Application.Service.Common
}
else
{
- //没有产生裁判 有可能一个人没做完,也有可能做完了没产生裁判
- //两个人都做了
- if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2)
+ //产生了阅片期
+ if (resultExceptJudgeList.Any(t => t.IsSubjectHaveReadingPeriod))
{
- //不存在裁判 将R1设置
- if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
+ //没有产生裁判 有可能一个人没做完,也有可能做完了没产生裁判
+ //两个人都做了
+ if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2)
{
- visitItem.IsJudgeSelect = true;
+ //不存在裁判 将R1设置
+ if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
+ {
+ visitItem.IsJudgeSelect = true;
+ }
+ else
+ {
+ visitItem.IsJudgeSelect = false;
+ }
}
else
{
- visitItem.IsJudgeSelect = false;
+ visitItem.IsJudgeSelect = null;
+ visitItem.IsTrigerJudge = null;
}
}
else
@@ -1640,6 +1642,7 @@ namespace IRaCIS.Core.Application.Service.Common
}
+
}
}
}
From 47eaed78ed1063e6b45469c60d2101dc5c8edacf Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 4 Dec 2024 17:45:06 +0800
Subject: [PATCH 3/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Common/ExcelExportService.cs | 85 ++++++++++++++-----
.../Service/QC/DTO/QCListViewModel.cs | 4 +-
.../Service/QC/_MapConfig.cs | 7 +-
3 files changed, 72 insertions(+), 24 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index 7f623e5d4..771306921 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -12,9 +12,11 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.POIFS.Properties;
+using NPOI.SS.Formula.Functions;
using NPOI.XSSF.UserModel;
using System.ComponentModel.Design;
using System.Globalization;
+using System.Linq;
using static IRaCIS.Core.Application.Service.ExcelExportHelper;
using IDictionaryService = IRaCIS.Application.Interfaces.IDictionaryService;
@@ -1612,34 +1614,77 @@ namespace IRaCIS.Core.Application.Service.Common
}
else
{
- //产生了阅片期
- if (resultExceptJudgeList.Any(t => t.IsSubjectHaveReadingPeriod))
+
+ //没有产生裁判 有可能一个人没做完,也有可能做完了没产生裁判
+ //两个人都做了(1、两个人都阅片完,确实没产生,2、两个人都阅片完,还没到阅片期,没产生裁判)
+
+ //默认都设置为null 仅仅处理 阅片期读完了没产生裁判 裁判选择标记需要设置的访视
+ visitItem.IsJudgeSelect = null;
+ visitItem.IsTrigerJudge = null;
+
+ //阅片期访视号
+ var subjectReadingPeriondVisitNumList = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode).FirstOrDefault()?.SubjectCriterionReadingPeriodVisitNumList;
+
+ if (subjectReadingPeriondVisitNumList != null)
{
- //没有产生裁判 有可能一个人没做完,也有可能做完了没产生裁判
- //两个人都做了
- if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2)
+ //两个人完成最大得任务号
+ var subjectMaxFinishedVisitTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
+ .GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).DefaultIfEmpty().Max();
+
+ var minReadingPeriodVisitNum = subjectReadingPeriondVisitNumList.Min();
+
+ var maxReadingPeriodVisitNum = subjectReadingPeriondVisitNumList.Max();
+
+ //最小阅片期 最大阅片期 完成访视号 对应存在三种情况
+
+ //有阅片期读完了 存在两种
+ //大于最大阅片期
+ if (subjectMaxFinishedVisitTaskNum > maxReadingPeriodVisitNum)
{
- //不存在裁判 将R1设置
- if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
+ //两个人都做完了 并且当前任务号小于 最大阅片期 才设置裁判 产生标记和裁判选择标记
+ if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2 && visitItem.VisitTaskNum <= maxReadingPeriodVisitNum)
{
- visitItem.IsJudgeSelect = true;
- }
- else
- {
- visitItem.IsJudgeSelect = false;
+ //不存在裁判 将R1设置
+ if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
+ {
+ visitItem.IsJudgeSelect = true;
+ visitItem.IsTrigerJudge = false;
+
+ }
+ else
+ {
+ visitItem.IsJudgeSelect = false;
+ visitItem.IsTrigerJudge = false;
+ }
}
}
- else
+ //大于最小阅片期
+ else if (subjectMaxFinishedVisitTaskNum > minReadingPeriodVisitNum)
{
- visitItem.IsJudgeSelect = null;
- visitItem.IsTrigerJudge = null;
+ //找到小于完成最大任务号最近的阅片期号
+
+ var latestFinishedReadingPeriodNum = subjectReadingPeriondVisitNumList.Where(t => t < subjectMaxFinishedVisitTaskNum).OrderBy(t => t).Max();
+
+ if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2 && visitItem.VisitTaskNum <= latestFinishedReadingPeriodNum)
+ {
+ //不存在裁判 将R1设置
+ if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
+ {
+ visitItem.IsJudgeSelect = true;
+ visitItem.IsTrigerJudge = false;
+
+ }
+ else
+ {
+ visitItem.IsJudgeSelect = false;
+ visitItem.IsTrigerJudge = false;
+ }
+ }
+
}
}
- else
- {
- visitItem.IsJudgeSelect = null;
- visitItem.IsTrigerJudge = null;
- }
+
+
diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
index 1818fdcde..61e5802ec 100644
--- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
+++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
@@ -227,7 +227,7 @@ namespace IRaCIS.Core.Application.Contracts
public string SubjectCode { get; set; } = String.Empty;
[DictionaryTranslateAttribute("Subject_Visit_Status")]
- public SubjectStatus SubjectStatus { get; set; }
+ public SubjectStatus SubjectStatus { get; set; }
public String TrialSiteCode { get; set; } = String.Empty;
@@ -1159,7 +1159,7 @@ namespace IRaCIS.Core.Application.Contracts
{
public List QuestionAnswerList { get; set; }
- public bool IsSubjectHaveReadingPeriod { get; set; }
+ public List SubjectCriterionReadingPeriodVisitNumList { get; set; }
public String TrialSiteCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
index 728795f1e..212d2ad66 100644
--- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
@@ -257,9 +257,12 @@ namespace IRaCIS.Core.Application.Service
false)))
.ForMember(o => o.JudgeNote, t => t.MapFrom(u => u.ReadingCategory==ReadingCategory.Judge? u.JudgeResultRemark : u.JudgeVisitTask.JudgeResultRemark))
.ForMember(o => o.VisitNote, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer))
- .ForMember(o => o.IsSubjectHaveReadingPeriod, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Reading ?
- u.Subject.ReadModuleList.Any(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.ReadingSetType == ReadingSetType.ImageReading) : false))
+ //.ForMember(o => o.IsSubjectHaveReadingPeriod, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Reading ?
+ //u.Subject.ReadModuleList.Any(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.ReadingSetType == ReadingSetType.ImageReading) : false))
+
+ .ForMember(o => o.SubjectCriterionReadingPeriodVisitNumList, t => t.MapFrom(u =>
+ u.Subject.ReadModuleList.Where(t=>t.TrialReadingCriterionId == trialReadingCriterionId && t.ReadingSetType == ReadingSetType.ImageReading).Select(c=>c.SubjectVisit.VisitNum)))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
From 848e33edb8ff87ad57c05c9db3d6b8532c669aee Mon Sep 17 00:00:00 2001
From: hang <87227557@qq.com>
Date: Wed, 4 Dec 2024 20:05:13 +0800
Subject: [PATCH 4/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B2=A1=E6=9C=89?=
=?UTF-8?q?=E4=BA=A7=E7=94=9F=E8=A3=81=E5=88=A4=EF=BC=8C=E8=A3=81=E5=88=A4?=
=?UTF-8?q?=E8=A7=A6=E5=8F=91=E6=A0=87=E5=BF=97=20=E5=92=8C=E8=A3=81?=
=?UTF-8?q?=E5=88=A4=E9=80=89=E6=8B=A9=E6=A0=87=E8=AE=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Common/ExcelExportService.cs | 48 ++++++-------------
1 file changed, 15 insertions(+), 33 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index 771306921..f5ef8211e 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -1627,46 +1627,25 @@ namespace IRaCIS.Core.Application.Service.Common
if (subjectReadingPeriondVisitNumList != null)
{
- //两个人完成最大得任务号
- var subjectMaxFinishedVisitTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
+ //两个人完成最大得任务号(访视+全局)
+ var subjectMaxFinishedTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
.GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).DefaultIfEmpty().Max();
- var minReadingPeriodVisitNum = subjectReadingPeriondVisitNumList.Min();
+ var minReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Min() + ReadingCommon.TaskNumDic[ReadingCategory.Global];
- var maxReadingPeriodVisitNum = subjectReadingPeriondVisitNumList.Max();
+ //最小阅片期 完成访视号
- //最小阅片期 最大阅片期 完成访视号 对应存在三种情况
+ //有阅片期读完了 肯定要读到最小阅片期号后面
- //有阅片期读完了 存在两种
- //大于最大阅片期
- if (subjectMaxFinishedVisitTaskNum > maxReadingPeriodVisitNum)
+ if (subjectMaxFinishedTaskNum >= minReadingPeriodTaskNum)
{
- //两个人都做完了 并且当前任务号小于 最大阅片期 才设置裁判 产生标记和裁判选择标记
- if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2 && visitItem.VisitTaskNum <= maxReadingPeriodVisitNum)
- {
- //不存在裁判 将R1设置
- if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
- {
- visitItem.IsJudgeSelect = true;
- visitItem.IsTrigerJudge = false;
-
- }
- else
- {
- visitItem.IsJudgeSelect = false;
- visitItem.IsTrigerJudge = false;
- }
- }
- }
- //大于最小阅片期
- else if (subjectMaxFinishedVisitTaskNum > minReadingPeriodVisitNum)
- {
- //找到小于完成最大任务号最近的阅片期号
-
- var latestFinishedReadingPeriodNum = subjectReadingPeriondVisitNumList.Where(t => t < subjectMaxFinishedVisitTaskNum).OrderBy(t => t).Max();
-
- if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2 && visitItem.VisitTaskNum <= latestFinishedReadingPeriodNum)
+ //找到<= 完成最大访视任务号最近的阅片期号
+ var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + ReadingCommon.TaskNumDic[ReadingCategory.Global]).Where(t => t <= subjectMaxFinishedTaskNum).Max();
+
+ //小于已完成的阅片期的访视 设置触发裁判标志为否 并设置默认的裁判选择标记 (两个人肯定做完了)
+ if (visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
{
+
//不存在裁判 将R1设置
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
{
@@ -1679,7 +1658,10 @@ namespace IRaCIS.Core.Application.Service.Common
visitItem.IsJudgeSelect = false;
visitItem.IsTrigerJudge = false;
}
+
+
}
+
}
}
From ba8a457688aeb18562fd92f689d0da4b3fdf69c4 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 5 Dec 2024 09:08:53 +0800
Subject: [PATCH 5/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A3=81=E5=88=A4?=
=?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=A0=87=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Common/ExcelExportService.cs | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index f5ef8211e..1ec355076 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -1475,7 +1475,7 @@ namespace IRaCIS.Core.Application.Service.Common
- public List DealJudgeMark(ArbitrationRule arbitrationRule, IEnumerable list) where T : CommonEvaluationExport
+ public List DealJudgeMark(ArbitrationRule arbitrationRule, bool isGlobalReading, IEnumerable list) where T : CommonEvaluationExport
{
//处理访视任务的裁判标记
var resultExceptJudgeList = list.Where(t => t.ReadingCategory != ReadingCategory.Judge).ToList();
@@ -1631,7 +1631,9 @@ namespace IRaCIS.Core.Application.Service.Common
var subjectMaxFinishedTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
.GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).DefaultIfEmpty().Max();
- var minReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Min() + ReadingCommon.TaskNumDic[ReadingCategory.Global];
+ var addReadingPeriodNum = isGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
+
+ var minReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Min() + addReadingPeriodNum;
//最小阅片期 完成访视号
@@ -1640,7 +1642,7 @@ namespace IRaCIS.Core.Application.Service.Common
if (subjectMaxFinishedTaskNum >= minReadingPeriodTaskNum)
{
//找到<= 完成最大访视任务号最近的阅片期号
- var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + ReadingCommon.TaskNumDic[ReadingCategory.Global]).Where(t => t <= subjectMaxFinishedTaskNum).Max();
+ var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + addReadingPeriodNum).Where(t => t <= subjectMaxFinishedTaskNum).Max();
//小于已完成的阅片期的访视 设置触发裁判标志为否 并设置默认的裁判选择标记 (两个人肯定做完了)
if (visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
@@ -1661,7 +1663,7 @@ namespace IRaCIS.Core.Application.Service.Common
}
-
+
}
}
@@ -2027,7 +2029,7 @@ namespace IRaCIS.Core.Application.Service.Common
[FromServices] IRepository _trialRepository)
{
//每次查询必须是单标准的
- var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
+ var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.IsGlobalReading, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsAnalysisCreate == false && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze))
@@ -2209,7 +2211,7 @@ namespace IRaCIS.Core.Application.Service.Common
exportInfo.CriterionName = criterion.CriterionName;
//处理裁判标记
- list = DealJudgeMark(criterion.ArbitrationRule, list);
+ list = DealJudgeMark(criterion.ArbitrationRule, criterion.IsGlobalReading, list);
#region 系统标准处理整体肿瘤评估合并
From 7cf9bd4a8106e6d9f7e0ebb7ff98f1b85cd57271 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 5 Dec 2024 10:38:21 +0800
Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD?=
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 1ec355076..c9cf90803 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -1625,7 +1625,7 @@ namespace IRaCIS.Core.Application.Service.Common
//阅片期访视号
var subjectReadingPeriondVisitNumList = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode).FirstOrDefault()?.SubjectCriterionReadingPeriodVisitNumList;
- if (subjectReadingPeriondVisitNumList != null)
+ if (subjectReadingPeriondVisitNumList != null && subjectReadingPeriondVisitNumList.Count()>0)
{
//两个人完成最大得任务号(访视+全局)
var subjectMaxFinishedTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
From 84ba0bc4a9dac3f66fe1f2890fed08943879bbe2 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 5 Dec 2024 16:11:27 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9D=9Edicom=20?=
=?UTF-8?q?=E6=8E=92=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Application/Service/QC/_MapConfig.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
index 212d2ad66..b4e4ee434 100644
--- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
@@ -699,14 +699,14 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path));
CreateMap()
- .ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? s.NoneDicomFileList.Where(t => !t.FileType.Contains(StaticData.FileType.Zip)) : s.NoneDicomFileList))
+ .ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ? s.NoneDicomFileList.Where(t => !t.FileType.Contains(StaticData.FileType.Zip)).OrderBy(t => t.FileType).ThenBy(t => t.FileName) : s.NoneDicomFileList.OrderBy(t => t.FileType).ThenBy(t => t.FileName)))
.ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode));
Guid? visiTaskId = null;
CreateMap()
.ForMember(d => d.NoneDicomStudyFileList, u => u.MapFrom(s => isFilterZip ?
- s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).Where(t => !t.FileType.Contains(StaticData.FileType.Zip))
- : s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true)))
+ s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).Where(t => !t.FileType.Contains(StaticData.FileType.Zip)).OrderBy(t => t.FileType).ThenBy(t=>t.FileName)
+ : s.TaskNoneDicomFileList.Where(t => visiTaskId != null ? t.VisitTaskId == visiTaskId : true).OrderBy(t => t.FileType).ThenBy(t => t.FileName)))
.ForMember(d => d.CodeView, u => u.MapFrom(s => s.StudyCode));
}
From effd6fee419d41bcaf2587d5ed3aa2a320739a64 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 5 Dec 2024 16:45:33 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B4=A8=E6=8E=A7?=
=?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs | 2 +-
IRaCIS.Core.Application/Service/QC/_MapConfig.cs | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs
index 7622ef5ea..fec3dc50d 100644
--- a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs
+++ b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs
@@ -199,7 +199,7 @@ namespace IRaCIS.Core.Application.Contracts.DTO
public class QCChallengeWithUser : QCChallengeCommand
{
-
+ public bool IsBaseLine { get; set; }
public string VisitName { get; set; }
public string BlindName { get; set; } = string.Empty;
public string SubjectCode { get; set; }
diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
index b4e4ee434..03ec86fa1 100644
--- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
@@ -618,6 +618,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
+ .ForMember(d => d.IsBaseLine, u => u.MapFrom(s => s.SubjectVisit.IsBaseLine))
.ForMember(d => d.BlindName, u => u.MapFrom(s => s.SubjectVisit.BlindName));
@@ -633,6 +634,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
+ .ForMember(d => d.IsBaseLine, u => u.MapFrom(s => s.SubjectVisit.IsBaseLine))
.ForMember(d => d.BlindName, u => u.MapFrom(s => s.SubjectVisit.BlindName))
;
From 6eefbb1745f724573d58d15f32501aa31a961d4b Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 5 Dec 2024 17:03:44 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Application/Service/QC/QCListService.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs
index c6964a247..7953faaca 100644
--- a/IRaCIS.Core.Application/Service/QC/QCListService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs
@@ -154,6 +154,8 @@ namespace IRaCIS.Core.Application.Image.QA
var pageList = await query.ToPagedListAsync(inQuery, new string[] { nameof(QCCRCChallengeViewModel.IsUrgent) + " desc", nameof(QCCRCChallengeViewModel.CreateTime) });
var config = await _trialRepository.Where(t => t.Id == inQuery.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync().IfNullThrowException();
+ config.IsHaveSubjectClinicalData = await _clinicalDataTrialSet.AnyAsync(x => x.TrialId == inQuery.TrialId && x.IsConfirm && (x.ClinicalDataLevel == ClinicalLevel.Subject) && x.UploadRole == UploadRole.CRC);
+ config.IsHaveVisitClinicalData = await _clinicalDataTrialSet.AnyAsync(x => x.TrialId == inQuery.TrialId && x.IsConfirm && (x.ClinicalDataLevel == ClinicalLevel.SubjectVisit) && x.UploadRole == UploadRole.CRC);
return ResponseOutput.Ok(pageList, config);
}