检查时间,审核状态回退

This commit is contained in:
2022-04-20 17:23:28 +08:00
parent 0f9607674d
commit bf9055c80f
3 changed files with 61 additions and 21 deletions
@@ -316,8 +316,11 @@ namespace IRaCIS.Core.Application.Contracts
await _repository.AddAsync(new StudyMonitor()
{
FileCount = formCollection.Files.Count, FileSize = formCollection.Files.Sum(t => t.Length), IsDicom = false,
IsDicomReUpload = false, StudyId = noneDicomStudyId,
FileCount = formCollection.Files.Count,
FileSize = formCollection.Files.Sum(t => t.Length), IsDicom = false,
IsDicomReUpload = false,
StudyId = noneDicomStudyId,
UploadStartTime = startTime, UploadFinishedTime = DateTime.Now, IP = _userInfo.IP,
//TotalMillisecondsInterval = (DateTime.Now - startTime).TotalMilliseconds,
TrialId = sv.TrialId,
@@ -1115,6 +1115,11 @@ namespace IRaCIS.Core.Application.Image.QA
if (dbSubjectVisit == null) return Null404NotFound(dbSubjectVisit);
var trialConfig = await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
.FirstOrDefaultAsync(t => t.TrialId == trialId)
.IfNullThrowException();
if (obtaionOrCancel)
{
@@ -1131,11 +1136,6 @@ namespace IRaCIS.Core.Application.Image.QA
#region
var trialConfig = await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
.FirstOrDefaultAsync(t => t.TrialId == trialId)
.IfNullThrowException();
if (dbSubjectVisit.IsTake)
{
return ResponseOutput.NotOk("当前已被领取,不允许领取");
@@ -1143,7 +1143,7 @@ namespace IRaCIS.Core.Application.Image.QA
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
{
return ResponseOutput.NotOk("项目配置为不审,没有领取或者取消QC Task");
return ResponseOutput.NotOk("项目配置为不审,没有领取QC Task");
}
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
{
@@ -1198,7 +1198,6 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.CurrentActionUserId = _userInfo.Id;
dbSubjectVisit.CurrentActionUserExpireTime = DateTime.Now.AddHours(1);
@@ -1207,11 +1206,48 @@ namespace IRaCIS.Core.Application.Image.QA
}
else
{
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
{
return ResponseOutput.NotOk("项目配置为不审,没有取消QC Task");
}
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
{
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC)
{
dbSubjectVisit.AuditState = AuditStateEnum.ToAudit;
}
else
{
return ResponseOutput.NotOk("项目配置为单审,不满足SubmmitState:已提交 或者 AuditStateInPrimaryQC, 不允许释放");
}
}
else if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit)
{
//提交 并且初审通过 那么领取后进入 复审中
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)
{
dbSubjectVisit.AuditState = AuditStateEnum.PrimaryQCPassed;
}
else if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC)
{
dbSubjectVisit.AuditState = AuditStateEnum.ToAudit;
}
else
{
return ResponseOutput.NotOk("项目配置为复审,不满足提交状态:已提交 或者 审核状态:InPrimaryQC/InSecondaryQC, 不允许领取");
}
}
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserId = null;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
@@ -1433,10 +1469,6 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
else
{
@@ -1460,8 +1492,7 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
else if (dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)
{
@@ -1481,8 +1512,6 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.ReviewAuditTime = DateTime.Now;
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
else
@@ -1529,6 +1558,9 @@ namespace IRaCIS.Core.Application.Image.QA
}
}
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
//删除 软删除的物理文件
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)