diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 9484ed445..c2ebcf57e 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -2536,11 +2536,47 @@
+
+
+ CRC 确认临床数据
+
+
+
+
+
+
+ CRC 取消确认
+
+
+
+
+
+
+ PM确认临床数据
+
+
+
+
+
临床数据问题
+
+
+ 获取问题计算关系
+
+
+
+
+
+
+ 获取计算问题
+
+
+
+
获取系统临床数据预览
@@ -2682,11 +2718,16 @@
-
+
临床级别
+
+
+ 受试者ID
+
+
最晚拍片日期
@@ -2922,6 +2963,46 @@
是否启用
+
+
+ 项目临床数据Id
+
+
+
+
+ 问题名称
+
+
+
+
+ 自定义计算标记
+
+
+
+
+ 数值类型
+
+
+
+
+ 单位
+
+
+
+
+ 自定义单位
+
+
+
+
+ 项目临床数据Id
+
+
+
+
+ 临床问题类型(分组,单选。)
+
+
系统临床数据Id
@@ -2947,6 +3028,11 @@
子问题
+
+
+ 关联问题
+
+
表格问题
@@ -3067,6 +3153,16 @@
单位
+
+
+ 自定义计算标记
+
+
+
+
+ 自定义计算问题
+
+
查询临床数据基类
@@ -3097,16 +3193,6 @@
项目临床数据Id
-
-
- 自定义计算标记
-
-
-
-
- 自定义计算问题
-
-
获取系统临床数据
@@ -10576,9 +10662,9 @@
vvv
-
+
- 重阅审批
+ SPM 重阅审批
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs
index 61a9dcec5..cc5a8696e 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs
@@ -871,6 +871,7 @@ namespace IRaCIS.Core.Application
TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName,
TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
+
UrgentCount = g.Where(u => u.VisitTask.IsUrgent
&& u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.MIM).Count(),
@@ -906,38 +907,70 @@ namespace IRaCIS.Core.Application
///
[HttpPost]
public async Task>> GetMIMMedicalCommentsToBeDoneList(MedicalCommentsToBeDoneQuery inQuery,
- [FromServices] IRepository _taskMedicalReviewRepository)
+ [FromServices] IRepository _taskMedicalReviewRepository,
+ [FromServices] IRepository _trialReadingCriterionRepository)
{
+
+ #region 废弃不能对包含聚合或子查询的表达式执行聚合函数
+
var query = _taskMedicalReviewRepository
- .Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
- .Where(t => t.IsClosedDialog == false)
- .GroupBy(t => new
- {
- t.TrialId,
- t.Trial.ResearchProgramNo,
- t.Trial.ExperimentName,
- t.Trial.TrialCode,
- t.VisitTask.TrialReadingCriterionId,
- t.VisitTask.TrialReadingCriterion.CriterionName
- })
- .Select(g => new MedicalCommentsToBeDoneDto()
- {
- TrialId = g.Key.TrialId,
- ResearchProgramNo = g.Key.ResearchProgramNo,
- ExperimentName = g.Key.ExperimentName,
- TrialCode = g.Key.TrialCode,
- CriterionName = g.Key.CriterionName,
+ .Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
+ .Where(t => t.IsClosedDialog == false)
+ .GroupBy(t => new
+ {
+ t.TrialId,
+ t.Trial.ResearchProgramNo,
+ t.Trial.ExperimentName,
+ t.Trial.TrialCode,
+ t.VisitTask.TrialReadingCriterionId,
+ t.VisitTask.TrialReadingCriterion.CriterionName
+ })
+ .Select(g => new MedicalCommentsToBeDoneDto()
+ {
+ TrialId = g.Key.TrialId,
+ ResearchProgramNo = g.Key.ResearchProgramNo,
+ ExperimentName = g.Key.ExperimentName,
+ TrialCode = g.Key.TrialCode,
+ CriterionName = g.Key.CriterionName,
- UrgentCount = g.Where(u => u.VisitTask.IsUrgent
- && u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(),
+ UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First())
+ .Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
- ToBeReplyedCount = g.Where(u =>
- u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(),
+ ToBeReplyedCount = g.Select(t => t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
- ToBeReviewedCount=g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
+ ToBeReviewedCount = g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
- });
+ });
+ #endregion
+ //var query = _trialReadingCriterionRepository
+ // .Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
+ // //.Where(t => t.IsClosedDialog == false)
+ // .GroupBy(t => new
+ // {
+ // t.TrialId,
+ // t.Trial.ResearchProgramNo,
+ // t.Trial.ExperimentName,
+ // t.Trial.TrialCode,
+ // t.VisitTask.TrialReadingCriterionId,
+ // t.VisitTask.TrialReadingCriterion.CriterionName
+ // })
+ // .Select(g => new MedicalCommentsToBeDoneDto()
+ // {
+ // TrialId = g.Key.TrialId,
+ // ResearchProgramNo = g.Key.ResearchProgramNo,
+ // ExperimentName = g.Key.ExperimentName,
+ // TrialCode = g.Key.TrialCode,
+ // CriterionName = g.Key.CriterionName,
+
+ // UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u=>u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First())
+ // .Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
+
+ // ToBeReplyedCount = g.Select(t=>t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
+
+ // ToBeReviewedCount=g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
+
+ // });
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);