医学审核修改,暂时不让报错,需要修改之前的接口,待定

IRC_NewDev
hang 2023-07-04 13:25:09 +08:00
parent faafc8fdfc
commit 1e5edd1c4c
1 changed files with 26 additions and 39 deletions

View File

@ -917,50 +917,37 @@ 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 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
});
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)
});
var list = query.ToList();
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);