修改医学审核统计,需要迁移01

IRC_NewDev
hang 2023-12-08 10:15:42 +08:00
parent ea9a5fa3a0
commit 0df5e56dee
3 changed files with 11 additions and 15 deletions

View File

@ -115,7 +115,7 @@ namespace IRaCIS.Core.Application.ViewModel
public bool? IsUrgent { get; set; }
public Guid? DoctorUserId { get; set; }
public bool? IsInvalid { get; set; }
public TaskState? TaskState { get; set; }
public MedicalReviewAuditState? AuditState { get; set; }

View File

@ -200,6 +200,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId)
.WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory)
.WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState)
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);

View File

@ -1061,7 +1061,7 @@ namespace IRaCIS.Core.Application
#region 废弃不能对包含聚合或子查询的表达式执行聚合函数
var query = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(t => t.IsClosedDialog == false)
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState==TaskState.Effect && t.IsInvalid==false && t.MedicalManagerUserId == _userInfo.Id)
.GroupBy(t => new
{
t.TrialId,
@ -1078,18 +1078,15 @@ namespace IRaCIS.Core.Application
ExperimentName = g.Key.ExperimentName,
TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName,
TrialReadingCriterionId=g.Key.TrialReadingCriterionId,
UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.VisitTask.IsUrgent && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer).Count(),
UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer).Count(),
ToBeReplyedCount = g.Select(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer).Count(),
ToBeReplyedCount = g.Where(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer && u.AuditState == MedicalReviewAuditState.Auditing ).Count(),
//UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
ToBeReviewedCount = g.Where(u => u.AuditState != MedicalReviewAuditState.HaveSigned ).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()
}).Where(t => t.ToBeReplyedCount > 0);
}).Where(t => t.ToBeReviewedCount > 0);
#endregion
@ -1102,19 +1099,17 @@ namespace IRaCIS.Core.Application
var toBeReplyedQuery = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(t => t.IsClosedDialog == false)
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.Id)
.Where(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer);
//.Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer);
var toBeReplyedCount = toBeReplyedQuery.Count();
var tobeReviewedCount = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(t => t.IsClosedDialog == false)
.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count();
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.Id)
.Where(u => u.AuditState != MedicalReviewAuditState.HaveSigned).Count();
//var firstToBeDone = toBeDealedQuery.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider).FirstOrDefault();
return ResponseOutput.Ok(result, new { TotalToBeReplyedCount = toBeReplyedCount, TotalTobeReviewedCount = tobeReviewedCount });