diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
index f50e8e922..eb6d0cd0b 100644
--- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
@@ -928,9 +928,13 @@ namespace IRaCIS.Core.Application.Image.QA
return new GetNextIQCQualityOutDto() { };
break;
case TrialQCProcess.SingleAudit:
- visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId!= _userInfo.Id&&(x.CurrentActionUserId == _userInfo.Id || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake))).Include(x => x.Subject).ToListAsync();
+ visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted
+ && x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId!= _userInfo.Id&&(x.CurrentActionUserId == _userInfo.Id || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake))).Include(x => x.Subject).ToListAsync();
- subjectVisit = visitList.Where(x => x.SubjectId == inDto.SubjectId).OrderBy(x=>x.VisitNum).FirstOrDefault();
+ subjectVisit = visitList.Where(x => x.SubjectId == inDto.SubjectId)
+ .Where(x=>x.QCChallengeDialogList.Count() > 0 && x.QCChallengeDialogList.OrderByDescending(x => x.CreateTime).FirstOrDefault().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator)
+
+ .OrderBy(x=>x.VisitNum).FirstOrDefault();
if(subjectVisit!=null)
{
return new GetNextIQCQualityOutDto() {
@@ -957,7 +961,9 @@ namespace IRaCIS.Core.Application.Image.QA
visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.TrialId == inDto.TrialId &&
((x.CurrentActionUserId == _userInfo.Id)||(!x.IsTake&& x.AuditState != AuditStateEnum.QCPassed&& (x.PreliminaryAuditUserId != _userInfo.Id)))
- ).Include(x => x.Subject).ToListAsync();
+ )
+ .Where(x => x.QCChallengeDialogList.Count() > 0 && x.QCChallengeDialogList.OrderByDescending(x => x.CreateTime).FirstOrDefault().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator)
+ .Include(x => x.Subject).ToListAsync();
if (subjectVisit != null)
{
return new GetNextIQCQualityOutDto()
diff --git a/IRaCIS.Core.Domain.Share/QC/AuditStateEnum.cs b/IRaCIS.Core.Domain.Share/QC/AuditStateEnum.cs
index 3e32a2761..35f4dc763 100644
--- a/IRaCIS.Core.Domain.Share/QC/AuditStateEnum.cs
+++ b/IRaCIS.Core.Domain.Share/QC/AuditStateEnum.cs
@@ -14,6 +14,9 @@ namespace IRaCIS.Core.Domain.Share
//1st QC进行了操作
InPrimaryQC = 4,
+ ///
+ /// 单审通过
+ ///
PrimaryQCPassed = 5,
//2nd QC进行操作
diff --git a/IRaCIS.Core.Domain/Visit/SubjectVisit.cs b/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
index e5e6edaca..1073f3b12 100644
--- a/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
+++ b/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
@@ -84,7 +84,9 @@ namespace IRaCIS.Core.Domain.Models
public Guid? ForwardUserId { get; set; }
public DateTime? ForwardTime { get; set; }
- // 质控领取人
+ ///
+ /// 当前质控领取人
+ ///
public Guid? CurrentActionUserId { get; set; }
public DateTime? CurrentActionUserExpireTime { get; set; }