|
|
|
@@ -778,7 +778,9 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var newQuery = _trialReadingCriterionRepository.Where(t => t.IsSigned && t.IsConfirm && t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
var newQuery = _trialReadingCriterionRepository
|
|
|
|
|
.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.IsSigned && t.IsConfirm && t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Select(c => new IRImageReadingToBeDoneDto()
|
|
|
|
|
{
|
|
|
|
|
TrialId = c.TrialId,
|
|
|
|
@@ -1197,16 +1199,16 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
PM_SiteSurveryCount = isPM ? siteSurveyCount : 0,
|
|
|
|
|
|
|
|
|
|
PM_CheckCount = isPM ? await _trialRepository
|
|
|
|
|
PM_CheckCount = isPM ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(u => u.SubjectVisitList.Any(t => t.CheckState == CheckStateEnum.ToCheck || (t.CheckState == CheckStateEnum.CVIng &&
|
|
|
|
|
t.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator))).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
PM_ReviewerSelectCount = isPM ? await _trialRepository
|
|
|
|
|
PM_ReviewerSelectCount = isPM ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.EnrollList.Where(u => u.EnrollStatus == EnrollStatus.InviteIntoGroup).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
PM_ReReadingApprovalCount = isPM ? await _visitTaskReReadingRepository
|
|
|
|
|
PM_ReReadingApprovalCount = isPM ? await _visitTaskReReadingRepository.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.OriginalReReadingTask.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed)
|
|
|
|
|
.GroupBy(t => t.OriginalReReadingTask.TrialId)
|
|
|
|
@@ -1217,7 +1219,7 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
}).Where(x => x.ToBeApprovalCount > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
PM_ClinicalDataCount = isPM ? await _trialRepository
|
|
|
|
|
PM_ClinicalDataCount = isPM ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.ReadModuleList.Where(u => u.IsCRCConfirm && !u.IsPMConfirm).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
@@ -1225,34 +1227,34 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
#region CRC
|
|
|
|
|
|
|
|
|
|
CRC_ImageSubmitCount = isCRC ? await _trialRepository
|
|
|
|
|
CRC_ImageSubmitCount = isCRC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)) && (t.IsUrgent || t.IsSubjectExpeditedView || t.IsEnrollementQualificationConfirm || t.IsPDProgressView))
|
|
|
|
|
.Where(t => t.SubjectVisitList.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.UserRoleId)).Where(u => u.SubmitState == SubmitStateEnum.ToSubmit).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CRC_ImageQuestionCount = isCRC ? await _trialRepository
|
|
|
|
|
CRC_ImageQuestionCount = isCRC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.SubjectVisitList.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.UserRoleId)).SelectMany(c => c.QCChallengeList)
|
|
|
|
|
.Where(u => u.IsClosed == false && (u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IQC || u.LatestReplyUserId == null)).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CRC_CheckQuestionCount = isCRC ? await _trialRepository
|
|
|
|
|
CRC_CheckQuestionCount = isCRC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.SubjectVisitList.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.UserRoleId))
|
|
|
|
|
.Where(u => u.CheckState == CheckStateEnum.CVIng && u.CheckChallengeState == CheckChanllengeTypeEnum.PMWaitCRCReply).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
CRC_ImageReUploadCount = isCRC ? await _trialRepository
|
|
|
|
|
CRC_ImageReUploadCount = isCRC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.SubjectVisitList
|
|
|
|
|
.Where(c => c.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.UserRoleId))
|
|
|
|
|
.Where(u => (u.SubmitState == SubmitStateEnum.ToSubmit && u.IsPMBackOrReReading) || (u.IsQCConfirmedReupload)).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
CRC_ClinicalDataTobeDoneCount = isCRC ? await _trialRepository
|
|
|
|
|
CRC_ClinicalDataTobeDoneCount = isCRC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
CRC_ClinialDataTobeConfirmCount = isCRC ? await _trialRepository
|
|
|
|
|
CRC_ClinialDataTobeConfirmCount = isCRC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.ReadModuleList.Where(x => !x.IsCRCConfirm).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
@@ -1266,11 +1268,11 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
SPM_SiteSurveryCount = isSPMOrCPM ? siteSurveyCount : 0,
|
|
|
|
|
|
|
|
|
|
SPM_ReviewerApprovalCount = isSPMOrCPM ? await _trialRepository
|
|
|
|
|
SPM_ReviewerApprovalCount = isSPMOrCPM ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.EnrollList.Where(u => u.EnrollStatus == EnrollStatus.HasCommittedToCRO).Count() > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
SPM_ReReadingApprovalCount = isSPMOrCPM ? await _visitTaskReReadingRepository
|
|
|
|
|
SPM_ReReadingApprovalCount = isSPMOrCPM ? await _visitTaskReReadingRepository.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.OriginalReReadingTask.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
|
|
|
|
.GroupBy(t => t.OriginalReReadingTask.TrialId)
|
|
|
|
@@ -1287,7 +1289,7 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
#region IQC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IQC_IamgeQCCount = isIQC ? await _trialRepository
|
|
|
|
|
IQC_IamgeQCCount = isIQC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.QCProcessEnum != TrialQCProcess.NotAudit)
|
|
|
|
|
.Select(t => new
|
|
|
|
@@ -1301,7 +1303,7 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
}).Where(x => x.ToBeClaimedCount + x.ToBeReviewedCount > 0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
IQC_QCQuestionCount = isIQC ? await _trialRepository
|
|
|
|
|
IQC_QCQuestionCount = isIQC ? await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
|
|
|
|
|
.Where(u => u.CreateUserId == _userInfo.UserRoleId && u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count() > 0).CountAsync() : 0,
|
|
|
|
@@ -1326,7 +1328,9 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
// .Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)).Count()>0).CountAsync() : 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _trialReadingCriterionRepository.Where(t => t.IsSigned == true && t.IsConfirm == true && t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
await _trialReadingCriterionRepository
|
|
|
|
|
.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.IsSigned == true && t.IsConfirm == true && t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(c => c.VisitTaskList.Where(t => t.DoctorUserId == _userInfo.UserRoleId && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect)
|
|
|
|
|
// 前序 不存在 未一致性核查未通过的
|
|
|
|
|
.Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum))
|
|
|
|
@@ -1339,7 +1343,9 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
: 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IR_MedicalReviewCount = isIR ? await _taskMedicalReviewRepository.Where(t => t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
IR_MedicalReviewCount = isIR ? await _taskMedicalReviewRepository
|
|
|
|
|
.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.VisitTask.DoctorUserId == _userInfo.UserRoleId)
|
|
|
|
|
.GroupBy(t => new { t.TrialId, t.VisitTask.TrialReadingCriterionId })
|
|
|
|
|
.Where(g => g.Where(u => u.LatestReplyUser.UserTypeEnum == UserTypeEnum.MIM && u.AuditState == MedicalReviewAuditState.Auditing).Count() > 0).CountAsync() : 0,
|
|
|
|
@@ -1350,7 +1356,8 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
#region MIM
|
|
|
|
|
|
|
|
|
|
MIM_MedicalReviewCount = isMIM ? await _taskMedicalReviewRepository
|
|
|
|
|
.Where(t => t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing)
|
|
|
|
|
.Where(t => t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId)))
|
|
|
|
|
.Where(t => t.IsClosedDialog == false && t.VisitTask.TaskState == TaskState.Effect && t.IsInvalid == false && t.MedicalManagerUserId == _userInfo.UserRoleId)
|
|
|
|
|
.GroupBy(t => new { t.TrialId, t.VisitTask.TrialReadingCriterionId })
|
|
|
|
|
.Select(g => new
|
|
|
|
|