Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
commit
7b9c90b77c
|
@ -299,18 +299,74 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public int? PendingResponseCount { get; set; }
|
public int? PendingResponseCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SPM
|
||||||
|
|
||||||
|
|
||||||
|
public int? SPM_ReReadingApprovalCount { get; set; }
|
||||||
|
|
||||||
|
public int? SPM_ReviewerSelectApprovalCount { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
public bool IsIQCHaveToBeDone { get; set; }
|
#region MIM
|
||||||
public bool IsCRCHaveToBeDone { get; set; }
|
|
||||||
|
|
||||||
public bool IsMIMHaveToBeDone { get; set; }
|
public int? MIM_UrgentCount { get; set; }
|
||||||
|
|
||||||
|
public int? MIM_PendingReviewCount { get; set; }
|
||||||
|
|
||||||
|
public int? MIM_PendingResponseCount { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region CRC
|
||||||
|
|
||||||
|
public int? CRC_UrgentCount { get; set; }
|
||||||
|
|
||||||
|
public int? CRC_QCQuestionCount { get; set; }
|
||||||
|
|
||||||
|
public int? CRC_CheckQuestionCount { get; set; }
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region IQC
|
||||||
|
public int? IQC_UrgentCount { get; set; }
|
||||||
|
|
||||||
|
public int? IQC_ToBeClaimedCount { get; set; }
|
||||||
|
|
||||||
|
public int? IQC_AuditToBeDealedCount { get; set; }
|
||||||
|
|
||||||
|
public int? IQC_QuestionToBeDealedCount { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region IR
|
||||||
|
|
||||||
|
public List<string>? IR_ReadingCriterionList { get; set; }
|
||||||
|
|
||||||
|
public List<string>? IR_PMEmailList { get; set; }
|
||||||
|
|
||||||
|
public int? IR_TotalReadCount { get; set; }
|
||||||
|
|
||||||
|
public int? IR_UnReadCount { get; set; }
|
||||||
|
|
||||||
|
public int? IR_UrgentCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool IsIRHaveToBeDone { get; set; }
|
#endregion
|
||||||
|
|
||||||
public bool IsSPMOrCPMHaveToBeDone { get; set; }
|
|
||||||
|
//public bool IsIQCHaveToBeDone { get; set; }
|
||||||
|
//public bool IsCRCHaveToBeDone { get; set; }
|
||||||
|
|
||||||
|
//public bool IsMIMHaveToBeDone { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
//public bool IsIRHaveToBeDone { get; set; }
|
||||||
|
|
||||||
|
//public bool IsSPMOrCPMHaveToBeDone { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,6 +401,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public int? CRC_ImageReUploadCount { get; set; }
|
public int? CRC_ImageReUploadCount { get; set; }
|
||||||
|
|
||||||
|
public int? CRC_ClinicalDataTobeDoneCount { get; set; }
|
||||||
|
public int? CRC_ClinialDataTobeConfirmCount { get; set; }
|
||||||
|
|
||||||
public int? CRC_TrialWaitSignDocCount { get; set; }
|
public int? CRC_TrialWaitSignDocCount { get; set; }
|
||||||
|
|
||||||
public int? CRC_SysWaitSignDocCount { get; set; }
|
public int? CRC_SysWaitSignDocCount { get; set; }
|
||||||
|
|
|
@ -210,7 +210,7 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
ToBeRepliedCount = t.SubjectVisitList.Where(u => u.CheckState == CheckStateEnum.CVIng &&
|
ToBeRepliedCount = t.SubjectVisitList.Where(u => u.CheckState == CheckStateEnum.CVIng &&
|
||||||
u.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count(),
|
u.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count(),
|
||||||
}).Where(x => x.ToBeRepliedCount+x.ToBeCheckedCount > 0);
|
}).Where(x => x.ToBeRepliedCount + x.ToBeCheckedCount > 0);
|
||||||
|
|
||||||
|
|
||||||
var defalutSortArray = new string[] { nameof(CheckToBeDoneDto.UrgentCount) + " desc", nameof(CheckToBeDoneDto.ToBeCheckedCount) + " desc" };
|
var defalutSortArray = new string[] { nameof(CheckToBeDoneDto.UrgentCount) + " desc", nameof(CheckToBeDoneDto.ToBeCheckedCount) + " desc" };
|
||||||
|
@ -468,7 +468,7 @@ namespace IRaCIS.Core.Application
|
||||||
ToBeVisitCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count(),
|
ToBeVisitCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count(),
|
||||||
ToAllCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC).Count(),
|
ToAllCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC).Count(),
|
||||||
ReadModuleCount = t.ReadModuleList.Where(x => !x.IsPMConfirm).Count(),
|
ReadModuleCount = t.ReadModuleList.Where(x => !x.IsPMConfirm).Count(),
|
||||||
}).Where(x => x.ToBeDealedCount > 0);
|
}).Where(x => x.ToAllCount > 0);
|
||||||
|
|
||||||
var defalutSortArray = new string[] { nameof(ImageClinicalDataToBeDoneDto.UrgentCount) + " desc", nameof(ImageClinicalDataToBeDoneDto.ReadModuleCount) + " desc" };
|
var defalutSortArray = new string[] { nameof(ImageClinicalDataToBeDoneDto.UrgentCount) + " desc", nameof(ImageClinicalDataToBeDoneDto.ReadModuleCount) + " desc" };
|
||||||
|
|
||||||
|
@ -522,7 +522,7 @@ namespace IRaCIS.Core.Application
|
||||||
item.ReadModuleCount = (await _clinicalAnswerService.GetCRCConfirmList(new Service.Reading.Dto.GetCRCConfirmListInDto()
|
item.ReadModuleCount = (await _clinicalAnswerService.GetCRCConfirmList(new Service.Reading.Dto.GetCRCConfirmListInDto()
|
||||||
{
|
{
|
||||||
TrialId = item.TrialId,
|
TrialId = item.TrialId,
|
||||||
IsPMConfirm=false,
|
IsPMConfirm = false,
|
||||||
PageIndex = 1,
|
PageIndex = 1,
|
||||||
PageSize = 9999,
|
PageSize = 9999,
|
||||||
|
|
||||||
|
@ -769,7 +769,7 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
|
|
||||||
//待领取量
|
//待领取量
|
||||||
ToBeClaimedCount = t.SubjectVisitList.Where(t => t.SubmitState == SubmitStateEnum.Submitted && t.AuditState!=AuditStateEnum.QCPassed)
|
ToBeClaimedCount = t.SubjectVisitList.Where(t => t.SubmitState == SubmitStateEnum.Submitted && t.AuditState != AuditStateEnum.QCPassed)
|
||||||
.Where(u => u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != _userInfo.Id && u.ReviewAuditUserId == null))).Count(),
|
.Where(u => u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != _userInfo.Id && u.ReviewAuditUserId == null))).Count(),
|
||||||
|
|
||||||
//待审核通过,统计从已领取到QC提交之间的 已领取 待审核 审核中 (审核完成 领取人就会清理 所以只用查询当前领取人是自己的就好了)
|
//待审核通过,统计从已领取到QC提交之间的 已领取 待审核 审核中 (审核完成 领取人就会清理 所以只用查询当前领取人是自己的就好了)
|
||||||
|
@ -785,7 +785,7 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
|
|
||||||
var toBeClaimedCount = _subjectVisitRepository
|
var toBeClaimedCount = _subjectVisitRepository
|
||||||
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id)&& t.SubmitState == SubmitStateEnum.Submitted && t.AuditState != AuditStateEnum.QCPassed)
|
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id) && t.SubmitState == SubmitStateEnum.Submitted && t.AuditState != AuditStateEnum.QCPassed)
|
||||||
.Where(u => u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != _userInfo.Id && u.ReviewAuditUserId == null))).Count();
|
.Where(u => u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != _userInfo.Id && u.ReviewAuditUserId == null))).Count();
|
||||||
|
|
||||||
|
|
||||||
|
@ -1082,7 +1082,7 @@ namespace IRaCIS.Core.Application
|
||||||
#region 废弃不能对包含聚合或子查询的表达式执行聚合函数
|
#region 废弃不能对包含聚合或子查询的表达式执行聚合函数
|
||||||
var query = _taskMedicalReviewRepository
|
var query = _taskMedicalReviewRepository
|
||||||
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
||||||
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState==TaskState.Effect && t.IsInvalid==false && t.MedicalManagerUserId == _userInfo.Id)
|
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.Id)
|
||||||
.GroupBy(t => new
|
.GroupBy(t => new
|
||||||
{
|
{
|
||||||
t.TrialId,
|
t.TrialId,
|
||||||
|
@ -1099,11 +1099,11 @@ namespace IRaCIS.Core.Application
|
||||||
ExperimentName = g.Key.ExperimentName,
|
ExperimentName = g.Key.ExperimentName,
|
||||||
TrialCode = g.Key.TrialCode,
|
TrialCode = g.Key.TrialCode,
|
||||||
CriterionName = g.Key.CriterionName,
|
CriterionName = g.Key.CriterionName,
|
||||||
TrialReadingCriterionId=g.Key.TrialReadingCriterionId,
|
TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
|
||||||
|
|
||||||
UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer).Count(),
|
UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer).Count(),
|
||||||
|
|
||||||
ToBeReplyedCount = g.Where(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer && u.AuditState == MedicalReviewAuditState.Auditing ).Count(),
|
ToBeReplyedCount = g.Where(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer && u.AuditState == MedicalReviewAuditState.Auditing).Count(),
|
||||||
|
|
||||||
ToBeReviewedCount = g.Where(u => u.AuditState != MedicalReviewAuditState.HaveSigned && u.LatestReplyUser.UserTypeEnum != UserTypeEnum.IndependentReviewer).Count()
|
ToBeReviewedCount = g.Where(u => u.AuditState != MedicalReviewAuditState.HaveSigned && u.LatestReplyUser.UserTypeEnum != UserTypeEnum.IndependentReviewer).Count()
|
||||||
|
|
||||||
|
@ -1194,7 +1194,7 @@ namespace IRaCIS.Core.Application
|
||||||
public async Task<UserToBeDoneRecord> GetUserTobeDoneRecord([FromServices] IRepository<SubjectVisit> _subjectVisitRepository,
|
public async Task<UserToBeDoneRecord> GetUserTobeDoneRecord([FromServices] IRepository<SubjectVisit> _subjectVisitRepository,
|
||||||
[FromServices] IRepository<VisitTaskReReading> _visitTaskReReadingRepository,
|
[FromServices] IRepository<VisitTaskReReading> _visitTaskReReadingRepository,
|
||||||
[FromServices] IRepository<TaskMedicalReview> _taskMedicalReviewRepository,
|
[FromServices] IRepository<TaskMedicalReview> _taskMedicalReviewRepository,
|
||||||
[FromServices]IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository)
|
[FromServices] IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository)
|
||||||
{
|
{
|
||||||
var isPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM;
|
var isPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM;
|
||||||
var isCRC = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator;
|
var isCRC = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator;
|
||||||
|
@ -1322,6 +1322,15 @@ namespace IRaCIS.Core.Application
|
||||||
.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id))
|
.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id))
|
||||||
.Where(u => (u.SubmitState == SubmitStateEnum.ToSubmit && u.IsPMBackOrReReading) || (u.IsQCConfirmedReupload)).Count() > 0).CountAsync() : 0,
|
.Where(u => (u.SubmitState == SubmitStateEnum.ToSubmit && u.IsPMBackOrReReading) || (u.IsQCConfirmedReupload)).Count() > 0).CountAsync() : 0,
|
||||||
|
|
||||||
|
CRC_ClinicalDataTobeDoneCount = isCRC ? await _trialRepository
|
||||||
|
.Where(t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
||||||
|
.Where(t => t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC).Count() > 0).CountAsync() : 0,
|
||||||
|
|
||||||
|
CRC_ClinialDataTobeConfirmCount = isCRC ? await _trialRepository
|
||||||
|
.Where(t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
||||||
|
.Where(t => t.ReadModuleList.Where(x => !x.IsCRCConfirm).Count() > 0).CountAsync() : 0,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1435,6 +1444,7 @@ namespace IRaCIS.Core.Application
|
||||||
var isIQC = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC;
|
var isIQC = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC;
|
||||||
var isMIM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.MIM;
|
var isMIM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.MIM;
|
||||||
var isSPMOrCPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM;
|
var isSPMOrCPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM;
|
||||||
|
var isIR = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer;
|
||||||
|
|
||||||
|
|
||||||
var query = _trialRepository.AsQueryable().IgnoreQueryFilters()
|
var query = _trialRepository.AsQueryable().IgnoreQueryFilters()
|
||||||
|
@ -1461,11 +1471,68 @@ namespace IRaCIS.Core.Application
|
||||||
PendingReconciliationCount = isPM ? t.SubjectVisitList.Where(t => t.CheckState == CheckStateEnum.ToCheck).Count() : 0,
|
PendingReconciliationCount = isPM ? t.SubjectVisitList.Where(t => t.CheckState == CheckStateEnum.ToCheck).Count() : 0,
|
||||||
|
|
||||||
PendingResponseCount = isPM ? t.SubjectVisitList.Where(u => u.CheckState == CheckStateEnum.CVIng &&
|
PendingResponseCount = isPM ? t.SubjectVisitList.Where(u => u.CheckState == CheckStateEnum.CVIng &&
|
||||||
u.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count() : 0
|
u.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count() : 0,
|
||||||
|
|
||||||
|
|
||||||
|
SPM_ReReadingApprovalCount = isSPMOrCPM ? t.VisitTaskReReadingList.Where(t => t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed).Count() : 0,
|
||||||
|
|
||||||
});
|
SPM_ReviewerSelectApprovalCount = isSPMOrCPM ? t.EnrollList.Where(u => u.EnrollStatus == EnrollStatus.HasCommittedToCRO).Count() : 0,
|
||||||
|
|
||||||
|
MIM_UrgentCount = isMIM ? t.TaskMedicalReviewList.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.Id)
|
||||||
|
.Where(u=>u.VisitTask.IsUrgent &&(
|
||||||
|
u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer && u.AuditState == MedicalReviewAuditState.Auditing
|
||||||
|
|| u.AuditState != MedicalReviewAuditState.HaveSigned && u.LatestReplyUser.UserTypeEnum != UserTypeEnum.IndependentReviewer)).Count() : 0,
|
||||||
|
|
||||||
|
MIM_PendingResponseCount = isMIM ? t.TaskMedicalReviewList.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.Id)
|
||||||
|
.Where(u => u.AuditState != MedicalReviewAuditState.HaveSigned && u.LatestReplyUser.UserTypeEnum != UserTypeEnum.IndependentReviewer).Count() : 0,
|
||||||
|
|
||||||
|
MIM_PendingReviewCount = isMIM ? t.TaskMedicalReviewList.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.Id)
|
||||||
|
.Where(u=>u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IndependentReviewer && u.AuditState == MedicalReviewAuditState.Auditing).Count() : 0,
|
||||||
|
|
||||||
|
|
||||||
|
CRC_UrgentCount = isCRC? t.SubjectVisitList.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id) &&t.IsUrgent).Count() : 0,
|
||||||
|
|
||||||
|
CRC_CheckQuestionCount=isCRC? t.SubjectVisitList.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id))
|
||||||
|
.Where(u => u.CheckState == CheckStateEnum.CVIng && u.CheckChallengeState == CheckChanllengeTypeEnum.PMWaitCRCReply).Count() : 0,
|
||||||
|
|
||||||
|
CRC_QCQuestionCount=isCRC? t.SubjectVisitList.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id)).SelectMany(c => c.QCChallengeList)
|
||||||
|
.Where(u => u.IsClosed == false && (u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IQC || u.LatestReplyUserId == null)).Count() : 0,
|
||||||
|
|
||||||
|
|
||||||
|
//待审核 审核中 加急的数量
|
||||||
|
IQC_UrgentCount = isIQC ? t.SubjectVisitList.Where(u => u.CurrentActionUserId == _userInfo.Id && t.QCProcessEnum != TrialQCProcess.NotAudit && t.IsUrgent ).Count() : 0,
|
||||||
|
|
||||||
|
//审核未完成
|
||||||
|
IQC_AuditToBeDealedCount= isIQC ? t.SubjectVisitList.Where(u => u.CurrentActionUserId == _userInfo.Id && t.QCProcessEnum != TrialQCProcess.NotAudit).Count() : 0,
|
||||||
|
|
||||||
|
//质疑待处理
|
||||||
|
IQC_QuestionToBeDealedCount= isIQC ? t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
|
||||||
|
.Where(u => u.CreateUserId == _userInfo.Id && u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count() : 0,
|
||||||
|
|
||||||
|
//待领取
|
||||||
|
IQC_ToBeClaimedCount= isIQC ? t.SubjectVisitList.Where(t => t.SubmitState == SubmitStateEnum.Submitted && t.AuditState != AuditStateEnum.QCPassed)
|
||||||
|
.Where(u => u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != _userInfo.Id && u.ReviewAuditUserId == null))).Count() : 0,
|
||||||
|
|
||||||
|
|
||||||
|
IR_ReadingCriterionList =isIR ? t.ReadingQuestionCriterionTrialList.Where(t=>t.IsConfirm).Select(t=>t.CriterionName).ToList():null,
|
||||||
|
|
||||||
|
IR_PMEmailList= isIR ? t.TrialUserList.Select(t => t.User.EMail).ToList() : null,
|
||||||
|
|
||||||
|
IR_TotalReadCount= isIR ? t.VisitTaskList.Where(t=>t.DoctorUserId==_userInfo.Id && t.TaskState==TaskState.Effect && t.ReadingTaskState==ReadingTaskState.HaveSigned).Count():0,
|
||||||
|
|
||||||
|
|
||||||
|
IR_UnReadCount= isIR ?t.VisitTaskList
|
||||||
|
.Where(c => c.DoctorUserId == _userInfo.Id && c.ReadingTaskState != ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect)
|
||||||
|
// 前序 不存在 未一致性核查未通过的
|
||||||
|
.Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum))
|
||||||
|
//前序 不存在 未生成任务的访视
|
||||||
|
.Where(t => t.TrialReadingCriterion.IsAutoCreate == false ? !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(d => d.TrialReadingCriterionId == t.TrialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum) : true)
|
||||||
|
|
||||||
|
.Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)).Count() :0,
|
||||||
|
|
||||||
|
IR_UrgentCount= isIR ? t.VisitTaskList.Where(t=>t.SourceSubjectVisit.IsUrgent).Count() : 0,
|
||||||
|
|
||||||
|
}) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue