修改暂存

IRC_NewDev
hang 2023-07-04 09:23:29 +08:00
parent ec3087efc4
commit e7f281a03d
1 changed files with 45 additions and 56 deletions

View File

@ -8,6 +8,7 @@ using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention;
using MathNet.Numerics;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.Linq;
using System.Linq.Dynamic.Core;
@ -872,6 +873,9 @@ namespace IRaCIS.Core.Application
CriterionName = g.Key.CriterionName,
TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
#region 不能对包含聚合或子查询的表达式执行聚合函数
#endregion
//UrgentCount = g.Where(u => u.VisitTask.IsUrgent
//&& u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.MIM).Count(),
@ -914,64 +918,49 @@ namespace IRaCIS.Core.Application
#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,
//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()
});
#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,
var subquery = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(tu => tu.UserId == _userInfo.Id))
.Where(t => !t.IsClosedDialog)
.Select(t => new
{
t.TrialId,
t.Trial.ResearchProgramNo,
t.Trial.ExperimentName,
t.Trial.TrialCode,
t.VisitTask.TrialReadingCriterionId,
t.VisitTask.TrialReadingCriterion.CriterionName,
IsIndependentReviewer = (t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).FirstOrDefault().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
IsInvalid = t.IsInvalid,
AuditState = t.AuditState
});
// UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u=>u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First())
// .Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
var query = subquery
.GroupBy(t => new
{
t.TrialId,
t.ResearchProgramNo,
t.ExperimentName,
t.TrialCode,
t.TrialReadingCriterionId,
t.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.Count(t => t.IsIndependentReviewer ),
ToBeReplyedCount = g.Count(t => t.IsIndependentReviewer),
ToBeReviewedCount = g.Count(t => !t.IsInvalid && t.AuditState != MedicalReviewAuditState.HaveSigned)
});
// 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 list = query.ToList();
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);
@ -1206,11 +1195,11 @@ namespace IRaCIS.Core.Application
.Where(t => t.IsClosedDialog == false)
.Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count() : 0,
Medical_MIM_ToBeReviewedCount=
Medical_MIM_ToBeReviewedCount =
(t.User.UserTypeEnum == UserTypeEnum.MIM) ?
t.Trial.TaskMedicalReviewList
.Where(t => t.IsClosedDialog == false)
.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count():0
.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count() : 0
});