访视查询条件修改提交
parent
bbba502fdd
commit
5a29212580
|
@ -19,7 +19,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public bool? IsUrgent { get; set; }
|
public bool? IsUrgent { get; set; }
|
||||||
public string SubjectInfo { get; set; } = string.Empty;
|
public string SubjectInfo { get; set; } = string.Empty;
|
||||||
public string VisitPlanInfo { get; set; } = string.Empty;
|
//public string VisitPlanInfo { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string[] VisitPlanArray { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +38,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public Guid? SubjectId { get; set; }
|
public Guid? SubjectId { get; set; }
|
||||||
|
|
||||||
public string SubjectInfo { get; set; } = String.Empty;
|
public string SubjectInfo { get; set; } = String.Empty;
|
||||||
public string VisitPlanInfo { get; set; } = String.Empty;
|
|
||||||
|
public string[] VisitPlanArray { get; set; }
|
||||||
|
//public string VisitPlanInfo { get; set; } = String.Empty;
|
||||||
|
|
||||||
public Guid? HandleUserId { get; set; }
|
public Guid? HandleUserId { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -147,7 +151,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
[NotDefault]
|
[NotDefault]
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
public string VisitPlanInfo { get; set; } = String.Empty;
|
public string[] VisitPlanArray { get; set; }
|
||||||
|
|
||||||
|
//public string VisitPlanInfo { get; set; } = String.Empty;
|
||||||
public string SubjectCode { get; set; } = String.Empty;
|
public string SubjectCode { get; set; } = String.Empty;
|
||||||
public QCChanllengeReuploadEnum? ReuploadEnum { get; set; }
|
public QCChanllengeReuploadEnum? ReuploadEnum { get; set; }
|
||||||
public bool? IsUrgent { get; set; }
|
public bool? IsUrgent { get; set; }
|
||||||
|
@ -244,7 +250,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public class CheckQuery : PageInput
|
public class CheckQuery : PageInput
|
||||||
{
|
{
|
||||||
public string SubjectInfo { get; set; } = String.Empty;
|
public string SubjectInfo { get; set; } = String.Empty;
|
||||||
public string VisitPlanInfo { get; set; } = String.Empty;
|
|
||||||
|
//public string VisitPlanInfo { get; set; } = String.Empty;
|
||||||
|
public string[] VisitPlanArray { get; set; }
|
||||||
|
|
||||||
//核查状态
|
//核查状态
|
||||||
public CheckStateEnum? CheckState { get; set; }
|
public CheckStateEnum? CheckState { get; set; }
|
||||||
|
@ -263,7 +271,10 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public Guid? SiteId { get; set; }
|
public Guid? SiteId { get; set; }
|
||||||
public string SubjectInfo { get; set; } = String.Empty;
|
public string SubjectInfo { get; set; } = String.Empty;
|
||||||
public string VisitPlanInfo { get; set; } = String.Empty;
|
|
||||||
|
public string[] VisitPlanArray { get; set; }
|
||||||
|
|
||||||
|
//public string VisitPlanInfo { get; set; } = String.Empty;
|
||||||
|
|
||||||
public ForwardStateEnum? ForwardState { get; set; }
|
public ForwardStateEnum? ForwardState { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ using IRaCIS.Core.Infrastructure.ExpressionExtend;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using IRaCIS.Core.Application.Contracts.DTO;
|
using IRaCIS.Core.Application.Contracts.DTO;
|
||||||
using IRaCIS.Core.Infra.EFCore;
|
using IRaCIS.Core.Infra.EFCore;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Image.QA
|
namespace IRaCIS.Core.Application.Image.QA
|
||||||
{
|
{
|
||||||
|
@ -18,6 +19,60 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
_subjectVisitRepository = subjectVisitRepository;
|
_subjectVisitRepository = subjectVisitRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Expression<Func<SubjectVisit, bool>> GetSubjectVisitFilter(string[]? VisitPlanArray)
|
||||||
|
{
|
||||||
|
Expression<Func<SubjectVisit, bool>> svExpression = x => true;
|
||||||
|
|
||||||
|
bool isNeedVisitSearch = VisitPlanArray != null && VisitPlanArray?.Length > 0;
|
||||||
|
|
||||||
|
if (isNeedVisitSearch)
|
||||||
|
{
|
||||||
|
var inPlanArray = VisitPlanArray.Where(t => !t.Contains('.')).Select(t => decimal.Parse(t)).ToArray();
|
||||||
|
var isSelectOutPlan = VisitPlanArray.Any(t => t.Contains('.'));
|
||||||
|
|
||||||
|
if (isSelectOutPlan)
|
||||||
|
{
|
||||||
|
svExpression = svExpression.And(t => t.InPlan == false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inPlanArray.Length > 0)
|
||||||
|
{
|
||||||
|
svExpression.Or(t => inPlanArray.Contains(t.VisitNum));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return svExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Expression<Func<QCChallenge, bool>> GetQCChallengeFilter(string[]? VisitPlanArray)
|
||||||
|
{
|
||||||
|
Expression<Func<QCChallenge, bool>> svExpression = x => true;
|
||||||
|
|
||||||
|
bool isNeedVisitSearch = VisitPlanArray != null && VisitPlanArray?.Length > 0;
|
||||||
|
|
||||||
|
if (isNeedVisitSearch)
|
||||||
|
{
|
||||||
|
var inPlanArray = VisitPlanArray.Where(t => !t.Contains('.')).Select(t => decimal.Parse(t)).ToArray();
|
||||||
|
var isSelectOutPlan = VisitPlanArray.Any(t => t.Contains('.'));
|
||||||
|
|
||||||
|
if (isSelectOutPlan)
|
||||||
|
{
|
||||||
|
svExpression = svExpression.And(t => t.SubjectVisit.InPlan == false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inPlanArray.Length > 0)
|
||||||
|
{
|
||||||
|
svExpression.Or(t => inPlanArray.Contains(t.SubjectVisit.VisitNum));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return svExpression;
|
||||||
|
}
|
||||||
|
|
||||||
#region CRC上传、质疑页面
|
#region CRC上传、质疑页面
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CRC 访视上传列表
|
/// CRC 访视上传列表
|
||||||
|
@ -27,12 +82,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IResponseOutput<PageOutput<QCCRCVisitViewModel>, TrialSubjectAndSVConfig>> GetCRCVisitList(CRCVisitSearchDTO visitSearchDTO)
|
public async Task<IResponseOutput<PageOutput<QCCRCVisitViewModel>, TrialSubjectAndSVConfig>> GetCRCVisitList(CRCVisitSearchDTO visitSearchDTO)
|
||||||
{
|
{
|
||||||
|
var svExpression= GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
|
||||||
|
|
||||||
var query = _repository.Where<SubjectVisit>(x => x.TrialId == visitSearchDTO.TrialId)
|
var query = _repository.Where<SubjectVisit>(x => x.TrialId == visitSearchDTO.TrialId)
|
||||||
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
||||||
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
||||||
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.SubjectInfo), t => t.Subject.Code.Contains(visitSearchDTO.SubjectInfo))
|
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.SubjectInfo), t => t.Subject.Code.Contains(visitSearchDTO.SubjectInfo))
|
||||||
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.VisitPlanInfo), visitSearchDTO.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(visitSearchDTO.VisitPlanInfo))
|
|
||||||
|
.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.AuditStateArray != null && visitSearchDTO.AuditStateArray?.Length > 0, t => visitSearchDTO.AuditStateArray!.Contains(t.AuditState))
|
||||||
.WhereIf(visitSearchDTO.SubmitState != null, t => t.SubmitState == visitSearchDTO.SubmitState)
|
.WhereIf(visitSearchDTO.SubmitState != null, t => t.SubmitState == visitSearchDTO.SubmitState)
|
||||||
.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
||||||
|
@ -94,6 +152,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
// };
|
// };
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
var svExpression = GetQCChallengeFilter(challengeQuery.VisitPlanArray);
|
||||||
|
|
||||||
var query2 = _repository.Where<QCChallenge>(x => x.TrialId == challengeQuery.TrialId)
|
var query2 = _repository.Where<QCChallenge>(x => x.TrialId == challengeQuery.TrialId)
|
||||||
.WhereIf(challengeQuery.ReuploadEnum != null, t => t.ReuploadEnum == challengeQuery.ReuploadEnum)
|
.WhereIf(challengeQuery.ReuploadEnum != null, t => t.ReuploadEnum == challengeQuery.ReuploadEnum)
|
||||||
|
@ -102,7 +161,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
.WhereIf(challengeQuery.SubjectId != null, t => t.SubjectVisit.SubjectId == challengeQuery.SubjectId)
|
.WhereIf(challengeQuery.SubjectId != null, t => t.SubjectVisit.SubjectId == challengeQuery.SubjectId)
|
||||||
.WhereIf(challengeQuery.CreateUserId != null, t => t.CreateUserId == challengeQuery.CreateUserId)
|
.WhereIf(challengeQuery.CreateUserId != null, t => t.CreateUserId == challengeQuery.CreateUserId)
|
||||||
.WhereIf(challengeQuery.SubjectCode != null, t => t.SubjectVisit.Subject.Code.Contains(challengeQuery.SubjectCode!))
|
.WhereIf(challengeQuery.SubjectCode != null, t => t.SubjectVisit.Subject.Code.Contains(challengeQuery.SubjectCode!))
|
||||||
.WhereIf(!string.IsNullOrEmpty(challengeQuery.VisitPlanInfo), challengeQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(challengeQuery.VisitPlanInfo))
|
.WhereIf(challengeQuery.VisitPlanArray != null && challengeQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||||
|
//.WhereIf(!string.IsNullOrEmpty(challengeQuery.VisitPlanInfo), challengeQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(challengeQuery.VisitPlanInfo))
|
||||||
.WhereIf(challengeQuery.IsOverTime != null, t => DateTime.Now > t.DeadlineTime)
|
.WhereIf(challengeQuery.IsOverTime != null, t => DateTime.Now > t.DeadlineTime)
|
||||||
.WhereIf(challengeQuery.IsUrgent != null, t => t.SubjectVisit.IsUrgent == challengeQuery.IsUrgent)
|
.WhereIf(challengeQuery.IsUrgent != null, t => t.SubjectVisit.IsUrgent == challengeQuery.IsUrgent)
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.SubjectVisit.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.SubjectVisit.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
||||||
|
@ -181,6 +241,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
// };
|
// };
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
var svExpression = GetQCChallengeFilter(challengeQuery.VisitPlanArray);
|
||||||
|
|
||||||
var query = _repository.Where<QCChallenge>(x => x.TrialId == challengeQuery.TrialId)
|
var query = _repository.Where<QCChallenge>(x => x.TrialId == challengeQuery.TrialId)
|
||||||
.WhereIf(challengeQuery.ReuploadEnum != null, t => t.ReuploadEnum == challengeQuery.ReuploadEnum)
|
.WhereIf(challengeQuery.ReuploadEnum != null, t => t.ReuploadEnum == challengeQuery.ReuploadEnum)
|
||||||
.WhereIf(challengeQuery.IsClosed != null, t => t.IsClosed == challengeQuery.IsClosed)
|
.WhereIf(challengeQuery.IsClosed != null, t => t.IsClosed == challengeQuery.IsClosed)
|
||||||
|
@ -188,7 +250,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
.WhereIf(challengeQuery.SubjectId != null, t => t.SubjectVisit.SubjectId == challengeQuery.SubjectId)
|
.WhereIf(challengeQuery.SubjectId != null, t => t.SubjectVisit.SubjectId == challengeQuery.SubjectId)
|
||||||
.WhereIf(challengeQuery.CreateUserId != null, t => t.CreateUserId == challengeQuery.CreateUserId)
|
.WhereIf(challengeQuery.CreateUserId != null, t => t.CreateUserId == challengeQuery.CreateUserId)
|
||||||
.WhereIf(!string.IsNullOrEmpty(challengeQuery.SubjectCode), t => t.SubjectVisit.Subject.Code.Contains(challengeQuery.SubjectCode))
|
.WhereIf(!string.IsNullOrEmpty(challengeQuery.SubjectCode), t => t.SubjectVisit.Subject.Code.Contains(challengeQuery.SubjectCode))
|
||||||
.WhereIf(!string.IsNullOrEmpty(challengeQuery.VisitPlanInfo), challengeQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.InPlan == false : t => t.SubjectVisit.VisitNum == decimal.Parse(challengeQuery.VisitPlanInfo))
|
.WhereIf(challengeQuery.VisitPlanArray != null && challengeQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||||
|
//.WhereIf(!string.IsNullOrEmpty(challengeQuery.VisitPlanInfo), challengeQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.InPlan == false : t => t.SubjectVisit.VisitNum == decimal.Parse(challengeQuery.VisitPlanInfo))
|
||||||
.WhereIf(challengeQuery.IsUrgent != null, t => t.SubjectVisit.IsUrgent == challengeQuery.IsUrgent)
|
.WhereIf(challengeQuery.IsUrgent != null, t => t.SubjectVisit.IsUrgent == challengeQuery.IsUrgent)
|
||||||
.WhereIf(challengeQuery.IsOverTime != null, t => DateTime.Now > t.DeadlineTime)
|
.WhereIf(challengeQuery.IsOverTime != null, t => DateTime.Now > t.DeadlineTime)
|
||||||
.ProjectTo<QCCRCChallengeViewModel>(_mapper.ConfigurationProvider);
|
.ProjectTo<QCCRCChallengeViewModel>(_mapper.ConfigurationProvider);
|
||||||
|
@ -366,11 +429,13 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
var svExpression = GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
|
||||||
var query = _subjectVisitRepository.Where(x => x.TrialId == visitSearchDTO.TrialId)
|
var query = _subjectVisitRepository.Where(x => x.TrialId == visitSearchDTO.TrialId)
|
||||||
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
||||||
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
||||||
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.SubjectInfo), t => /*t.Subject.FirstName.Contains(subjectInfo) || t.Subject.LastName.Contains(subjectInfo) ||*/ t.Subject.Code.Contains(visitSearchDTO.SubjectInfo))
|
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.SubjectInfo), t => /*t.Subject.FirstName.Contains(subjectInfo) || t.Subject.LastName.Contains(subjectInfo) ||*/ t.Subject.Code.Contains(visitSearchDTO.SubjectInfo))
|
||||||
.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.VisitPlanInfo), visitSearchDTO.VisitPlanInfo.Contains('.') ? t => t.VisitNum.ToString().Contains(".") : t => t.VisitNum == decimal.Parse(visitSearchDTO.VisitPlanInfo))
|
.WhereIf(visitSearchDTO.VisitPlanArray != null && visitSearchDTO.VisitPlanArray?.Length > 0, svExpression)
|
||||||
|
//.WhereIf(!string.IsNullOrEmpty(visitSearchDTO.VisitPlanInfo), visitSearchDTO.VisitPlanInfo.Contains('.') ? t => t.VisitNum.ToString().Contains(".") : t => t.VisitNum == decimal.Parse(visitSearchDTO.VisitPlanInfo))
|
||||||
//.WhereIf(visitSearchDTO.AuditState != null, t => t.AuditState == visitSearchDTO.AuditState)
|
//.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.AuditStateArray != null && visitSearchDTO.AuditStateArray?.Length > 0, t => visitSearchDTO.AuditStateArray!.Contains(t.AuditState))
|
||||||
|
|
||||||
|
@ -450,13 +515,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
// };
|
// };
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
var svExpression = GetSubjectVisitFilter(checkQuery.VisitPlanArray);
|
||||||
|
|
||||||
var query = _subjectVisitRepository.Where(x => x.TrialId == checkQuery.TrialId)
|
var query = _subjectVisitRepository.Where(x => x.TrialId == checkQuery.TrialId)
|
||||||
.Where(x => x.AuditState == AuditStateEnum.QCPassed) //一致性核查中的,或者还没一致性核查的
|
.Where(x => x.AuditState == AuditStateEnum.QCPassed) //一致性核查中的,或者还没一致性核查的
|
||||||
.WhereIf(checkQuery.CheckState != null, t => t.CheckState == checkQuery.CheckState)
|
.WhereIf(checkQuery.CheckState != null, t => t.CheckState == checkQuery.CheckState)
|
||||||
.WhereIf(checkQuery.SiteId != null, t => t.SiteId == checkQuery.SiteId)
|
.WhereIf(checkQuery.SiteId != null, t => t.SiteId == checkQuery.SiteId)
|
||||||
.WhereIf(!string.IsNullOrEmpty(checkQuery.SubjectInfo), t => t.Subject.Code.Contains(checkQuery.SubjectInfo))
|
.WhereIf(!string.IsNullOrEmpty(checkQuery.SubjectInfo), t => t.Subject.Code.Contains(checkQuery.SubjectInfo))
|
||||||
.WhereIf(!string.IsNullOrEmpty(checkQuery.VisitPlanInfo), checkQuery.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(checkQuery.VisitPlanInfo))
|
.WhereIf(checkQuery.VisitPlanArray != null && checkQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||||
|
//.WhereIf(!string.IsNullOrEmpty(checkQuery.VisitPlanInfo), checkQuery.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(checkQuery.VisitPlanInfo))
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))//CRC 过滤负责的site
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))//CRC 过滤负责的site
|
||||||
.ProjectTo<QCCheckViewModel>(_mapper.ConfigurationProvider);
|
.ProjectTo<QCCheckViewModel>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
@ -494,12 +561,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
{
|
{
|
||||||
//var trialConfig = _trialReposioty.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }).FirstOrDefault(t => t.TrialId == forwardQuery.TrialId);
|
//var trialConfig = _trialReposioty.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }).FirstOrDefault(t => t.TrialId == forwardQuery.TrialId);
|
||||||
|
|
||||||
|
var svExpression = GetSubjectVisitFilter(forwardQuery.VisitPlanArray);
|
||||||
|
|
||||||
var query = _subjectVisitRepository.Where(x => x.TrialId == forwardQuery.TrialId)
|
var query = _subjectVisitRepository.Where(x => x.TrialId == forwardQuery.TrialId)
|
||||||
.Where(t => t.CheckState == CheckStateEnum.CVPassed)
|
.Where(t => t.CheckState == CheckStateEnum.CVPassed)
|
||||||
.WhereIf(forwardQuery.ForwardState != null, t => t.ForwardState == forwardQuery.ForwardState)
|
.WhereIf(forwardQuery.ForwardState != null, t => t.ForwardState == forwardQuery.ForwardState)
|
||||||
.WhereIf(forwardQuery.SiteId != null, t => t.SiteId == forwardQuery.SiteId)
|
.WhereIf(forwardQuery.SiteId != null, t => t.SiteId == forwardQuery.SiteId)
|
||||||
.WhereIf(!string.IsNullOrEmpty(forwardQuery.SubjectInfo), t => t.Subject.Code.Contains(forwardQuery.SubjectInfo))
|
.WhereIf(!string.IsNullOrEmpty(forwardQuery.SubjectInfo), t => t.Subject.Code.Contains(forwardQuery.SubjectInfo))
|
||||||
.WhereIf(!string.IsNullOrEmpty(forwardQuery.VisitPlanInfo), forwardQuery.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(forwardQuery.VisitPlanInfo))
|
.WhereIf(forwardQuery.VisitPlanArray != null && forwardQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||||
|
//.WhereIf(!string.IsNullOrEmpty(forwardQuery.VisitPlanInfo), forwardQuery.VisitPlanInfo.Contains('.') ? t => t.InPlan == false : t => t.VisitNum == decimal.Parse(forwardQuery.VisitPlanInfo))
|
||||||
//.WhereIf(_userInfo.UserTypeEnumInt == (int)UserType.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))//CRC 过滤负责的site
|
//.WhereIf(_userInfo.UserTypeEnumInt == (int)UserType.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))//CRC 过滤负责的site
|
||||||
.ProjectTo<ForWardViewModel>(_mapper.ConfigurationProvider);
|
.ProjectTo<ForWardViewModel>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue