|
|
|
@@ -42,10 +42,10 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
if (isSelectOutPlan)
|
|
|
|
|
{
|
|
|
|
|
svExpression = svExpression.Or(t => t.InPlan == false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return svExpression;
|
|
|
|
@@ -75,7 +75,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return svExpression;
|
|
|
|
@@ -93,21 +93,21 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<IResponseOutput<PageOutput<QCCRCVisitViewModel>, TrialSubjectAndSVConfig>> GetCRCVisitList(CRCVisitSearchDTO visitSearchDTO)
|
|
|
|
|
{
|
|
|
|
|
var svExpression= GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
|
|
|
|
|
var svExpression = GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
|
|
|
|
|
|
|
|
|
|
var query = _repository.Where<SubjectVisit>(x => x.TrialId == visitSearchDTO.TrialId)
|
|
|
|
|
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
|
|
|
|
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
|
|
|
|
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.SubjectInfo), t => t.Subject.Code.Contains(visitSearchDTO.SubjectInfo))
|
|
|
|
|
var query = _repository.Where<SubjectVisit>(x => x.TrialId == visitSearchDTO.TrialId)
|
|
|
|
|
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
|
|
|
|
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
|
|
|
|
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.SubjectInfo), t => t.Subject.Code.Contains(visitSearchDTO.SubjectInfo))
|
|
|
|
|
|
|
|
|
|
.WhereIf(visitSearchDTO.VisitPlanArray != null && visitSearchDTO.VisitPlanArray?.Length > 0, svExpression)
|
|
|
|
|
//.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.VisitPlanInfo), visitSearchDTO.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(visitSearchDTO.VisitPlanInfo))
|
|
|
|
|
.WhereIf(visitSearchDTO.AuditStateArray != null && visitSearchDTO.AuditStateArray?.Length > 0, t => visitSearchDTO.AuditStateArray!.Contains(t.AuditState))
|
|
|
|
|
.WhereIf(visitSearchDTO.SubmitState != null, t => t.SubmitState == visitSearchDTO.SubmitState)
|
|
|
|
|
.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
|
|
|
|
.WhereIf(visitSearchDTO.IsUrgent != null, t => t.IsUrgent == visitSearchDTO.IsUrgent)
|
|
|
|
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
|
|
|
|
.ProjectTo<QCCRCVisitViewModel>(_mapper.ConfigurationProvider);
|
|
|
|
|
.WhereIf(visitSearchDTO.VisitPlanArray != null && visitSearchDTO.VisitPlanArray?.Length > 0, svExpression)
|
|
|
|
|
//.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.VisitPlanInfo), visitSearchDTO.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(visitSearchDTO.VisitPlanInfo))
|
|
|
|
|
.WhereIf(visitSearchDTO.AuditStateArray != null && visitSearchDTO.AuditStateArray?.Length > 0, t => visitSearchDTO.AuditStateArray!.Contains(t.AuditState))
|
|
|
|
|
.WhereIf(visitSearchDTO.SubmitState != null, t => t.SubmitState == visitSearchDTO.SubmitState)
|
|
|
|
|
.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
|
|
|
|
.WhereIf(visitSearchDTO.IsUrgent != null, t => t.IsUrgent == visitSearchDTO.IsUrgent)
|
|
|
|
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
|
|
|
|
.ProjectTo<QCCRCVisitViewModel>(_mapper.ConfigurationProvider);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var pageList = await query.ToPagedListAsync(visitSearchDTO.PageIndex, visitSearchDTO.PageSize, visitSearchDTO.SortField, visitSearchDTO.Asc);
|
|
|
|
@@ -166,7 +166,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
var svExpression = GetQCChallengeFilter(challengeQuery.VisitPlanArray);
|
|
|
|
|
|
|
|
|
|
var query2 = _repository.Where<QCChallenge>(x => x.TrialId == challengeQuery.TrialId)
|
|
|
|
|
//.WhereIf(challengeQuery.ChallengeState != null, t => t.SubjectVisit.ChallengeState == challengeQuery.ChallengeState)
|
|
|
|
|
//.WhereIf(challengeQuery.ChallengeState != null, t => t.SubjectVisit.ChallengeState == challengeQuery.ChallengeState)
|
|
|
|
|
.WhereIf(challengeQuery.ReuploadEnum != null, t => t.ReuploadEnum == challengeQuery.ReuploadEnum)
|
|
|
|
|
.WhereIf(challengeQuery.IsClosed != null, t => t.IsClosed == challengeQuery.IsClosed)
|
|
|
|
|
.WhereIf(challengeQuery.SiteId != null, t => t.SubjectVisit.SiteId == challengeQuery.SiteId)
|
|
|
|
@@ -255,7 +255,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
var svExpression = GetQCChallengeFilter(challengeQuery.VisitPlanArray);
|
|
|
|
|
|
|
|
|
|
var query = _repository.Where<QCChallenge>(x => x.TrialId == challengeQuery.TrialId)
|
|
|
|
|
//.WhereIf(challengeQuery.ChallengeState != null, t => t.SubjectVisit.ChallengeState == challengeQuery.ChallengeState)
|
|
|
|
|
//.WhereIf(challengeQuery.ChallengeState != null, t => t.SubjectVisit.ChallengeState == challengeQuery.ChallengeState)
|
|
|
|
|
.WhereIf(challengeQuery.ReuploadEnum != null, t => t.ReuploadEnum == challengeQuery.ReuploadEnum)
|
|
|
|
|
.WhereIf(challengeQuery.IsClosed != null, t => t.IsClosed == challengeQuery.IsClosed)
|
|
|
|
|
.WhereIf(challengeQuery.SiteId != null, t => t.SubjectVisit.SiteId == challengeQuery.SiteId)
|
|
|
|
@@ -452,12 +452,12 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
//.WhereIf(visitSearchDTO.AuditState != null, t => t.AuditState == visitSearchDTO.AuditState)
|
|
|
|
|
.WhereIf(visitSearchDTO.AuditStateArray != null && visitSearchDTO.AuditStateArray?.Length > 0, t => visitSearchDTO.AuditStateArray!.Contains(t.AuditState))
|
|
|
|
|
|
|
|
|
|
.WhereIf(visitSearchDTO.HandleUserId != null, t => t.PreliminaryAuditUserId == visitSearchDTO.HandleUserId || t.CurrentActionUserId== visitSearchDTO.HandleUserId
|
|
|
|
|
.WhereIf(visitSearchDTO.HandleUserId != null, t => t.PreliminaryAuditUserId == visitSearchDTO.HandleUserId || t.CurrentActionUserId == visitSearchDTO.HandleUserId
|
|
|
|
|
|| t.ReviewAuditUserId == visitSearchDTO.HandleUserId
|
|
|
|
|
|| t.QCChallengeList.Any(t => t.CreateUserId == visitSearchDTO.HandleUserId)
|
|
|
|
|
|| t.QCChallengeDialogList.Any(t => t.CreateUserId == visitSearchDTO.HandleUserId))
|
|
|
|
|
.WhereIf(visitSearchDTO.IsUrgent != null, t => t.IsUrgent == visitSearchDTO.IsUrgent)
|
|
|
|
|
.Where(t=>t.SubmitState!=SubmitStateEnum.None)
|
|
|
|
|
.Where(t => t.SubmitState != SubmitStateEnum.None)
|
|
|
|
|
//.WhereIf(visitSearchDTO.SubmitState != null, t => t.SubmitState == visitSearchDTO.SubmitState)
|
|
|
|
|
//.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
|
|
|
|
.ProjectTo<QCVisitViewModel>(_mapper.ConfigurationProvider);
|
|
|
|
@@ -554,15 +554,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
///
|
|
|
|
|
|
|
|
|
|
[HttpGet("{subjectVisitId:guid}")]
|
|
|
|
|
public async Task<List<CheckChanllengeDialogDTO>> GetCheckChallengeDialogList(Guid subjectVisitId)
|
|
|
|
|
public async Task<CheckDialogDTO> GetCheckChallengeDialogList(Guid subjectVisitId)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var list = await _repository.Where<CheckChallengeDialog>(t => t.SubjectVisitId == subjectVisitId).OrderBy(t => t.CreateTime)
|
|
|
|
|
.ProjectTo<CheckChanllengeDialogDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
|
|
|
|
var sv = (await _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
|
|
|
|
|
.ProjectTo<CheckDialogDTO>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
|
|
|
|
|
|
|
|
|
list.ForEach(t => t.IsCurrentUser = _userInfo.Id == t.CreateUserId);
|
|
|
|
|
sv.DialogList.ForEach(t => t.IsCurrentUser = _userInfo.Id == t.CreateUserId);
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
return sv;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@@ -608,7 +608,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
public async Task<TrialVisitQADTO> GetVisitQCInfo(Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
|
|
|
|
{
|
|
|
|
|
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var temp = await GetVisitQCStudyAndSeriesList(subjectVisitId);
|
|
|
|
|
|
|
|
|
|
var qacheckList = await GetQCQuestionAnswerList(subjectVisitId, sv.TrialId, trialQCProcess, currentQCType);
|
|
|
|
|