增加 替换领取人 和释放领取人,修改提交访视紧急状态修改
parent
4f69b6067a
commit
d096461fda
|
@ -85,7 +85,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
[HttpPost("{trialId:guid}/{trialQCProcess:int}/{currentQCType:int}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[Authorize(Policy = "ImageQCPolicy")]
|
||||
public async Task<IResponseOutput> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
||||
public async Task<IResponseOutput> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
||||
{
|
||||
await VerifyIsCanQCAsync(null, qaQuestionCommand.SubjectVisitId);
|
||||
|
||||
|
@ -124,7 +124,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
else
|
||||
{
|
||||
|
||||
await _repository.UpdateFromDTOAsync<QCChallenge, QCChallengeCommand>(qaQuestionCommand, true);
|
||||
await _repository.UpdateFromDTOAsync<QCChallenge, QCChallengeCommand>(qaQuestionCommand, true);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
|
@ -375,7 +375,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
return ResponseOutput.NotOk("核查通过的数据不允许申请回退");
|
||||
}
|
||||
|
||||
await _subjectVisitRepository.UpdatePartialFromQueryAsync( subjectVisitId, u => new SubjectVisit() { RequestBackState = RequestBackStateEnum.CRC_RequestBack },true);
|
||||
await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { RequestBackState = RequestBackStateEnum.CRC_RequestBack }, true);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
|
@ -729,7 +729,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
var series = (await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
|
||||
|
||||
if (state == 1)
|
||||
{
|
||||
series.IsReading = false;
|
||||
|
@ -794,7 +794,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
await VerifyIsCanQCAsync(null, updateModalityCommand.SubjectVisitId);
|
||||
|
||||
|
||||
|
||||
DateTime time = DateTime.Now.AddMilliseconds(500);
|
||||
if (updateModalityCommand.Type == 1)
|
||||
{
|
||||
|
@ -861,7 +861,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
//提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除
|
||||
if (await _subjectVisitRepository.AnyAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted &&
|
||||
(!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))) )
|
||||
(!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))))
|
||||
{
|
||||
return ResponseOutput.NotOk("CRC Has Submited Image,can not delete");
|
||||
}
|
||||
|
@ -894,7 +894,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
|
||||
|
||||
var success3 = await _dicomSeriesrepository.DeleteFromQueryAsync(t => t.StudyId == id,true);
|
||||
var success3 = await _dicomSeriesrepository.DeleteFromQueryAsync(t => t.StudyId == id, true);
|
||||
var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
|
||||
|
||||
//删除 物理文件
|
||||
|
@ -946,6 +946,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
{
|
||||
var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||
|
||||
await VerifyIsCanQCAsync(dbSubjectVisit);
|
||||
|
||||
|
||||
dbSubjectVisit.IsTake = true;
|
||||
|
||||
dbSubjectVisit.CurrentActionUserId = _userInfo.Id;
|
||||
|
@ -970,7 +973,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
public async Task<IResponseOutput> ObtainOrCancelQCTask(Guid trialId, Guid subjectVisitId, bool obtaionOrCancel)
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||
|
||||
|
@ -982,11 +985,11 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
if (obtaionOrCancel)
|
||||
{
|
||||
if (await _subjectVisitRepository.AnyAsync(t => t.CurrentActionUserId != null && t.IsTake && t.Id == subjectVisitId))
|
||||
if (dbSubjectVisit.CurrentActionUserId != null && dbSubjectVisit.IsTake )
|
||||
{
|
||||
//throw new BusinessValidationFailedException("当前访视已被领取,不允许领取");
|
||||
|
||||
return ResponseOutput.NotOk("当前访视已被领取,不允许领取",ApiResponseCodeEnum.NeedTips);
|
||||
return ResponseOutput.NotOk("当前访视已被领取,不允许领取", ApiResponseCodeEnum.NeedTips);
|
||||
|
||||
}
|
||||
|
||||
|
@ -1003,7 +1006,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
// ))
|
||||
//{
|
||||
|
||||
|
||||
// return ResponseOutput.NotOk("您已经领取了其他受试者,完成后才允许领取新的受试者");
|
||||
//}
|
||||
|
||||
|
@ -1074,6 +1076,11 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
}
|
||||
else
|
||||
{
|
||||
if (dbSubjectVisit!.CurrentActionUserId != _userInfo.Id)
|
||||
{
|
||||
ResponseOutput.NotOk("您不是该质控任务当前领取人,没有操作权限!", ApiResponseCodeEnum.NeedTips);
|
||||
}
|
||||
|
||||
|
||||
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
|
||||
{
|
||||
|
@ -1108,7 +1115,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
else
|
||||
{
|
||||
return ResponseOutput.NotOk("项目配置为复审,不满足提交状态:已提交 或者 审核状态:InPrimaryQC/InSecondaryQC, 不允许释放");
|
||||
return ResponseOutput.NotOk("项目配置为双审,不满足提交状态:已提交 或者 审核状态:InPrimaryQC|InSecondaryQC, 不允许释放");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1135,7 +1142,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
{
|
||||
var sv = dbSubjectVisitList[0];
|
||||
|
||||
var nameList = await _subjectVisitRepository.Where(t => t.SubjectId == sv.SubjectId && t.SubmitState != SubmitStateEnum.Submitted && t.VisitNum < sv.VisitNum).Select(t => t.VisitName).ToListAsync() ?? new List<string>();
|
||||
var nameList = await _subjectVisitRepository.Where(t => t.SubjectId == sv.SubjectId && t.SubmitState != SubmitStateEnum.Submitted && t.VisitNum < sv.VisitNum && t.IsLostVisit ==false).Select(t => t.VisitName).ToListAsync() ?? new List<string>();
|
||||
|
||||
if (sv.PDState == PDStateEnum.PDProgress)
|
||||
{
|
||||
|
@ -1228,6 +1235,17 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
if (trialConfig.IsUrgent || dbSubjectVisit.Subject.IsUrgent || (dbSubjectVisit.PDState == PDStateEnum.PDProgress && !dbSubjectVisit.IsBaseLine) || (dbSubjectVisit.IsEnrollmentConfirm && dbSubjectVisit.IsBaseLine))
|
||||
{
|
||||
dbSubjectVisit.IsUrgent = true;
|
||||
|
||||
|
||||
//PD确认的紧急会把前面所有未QC完成的访视均标记为紧急
|
||||
|
||||
var previosSVlist = await _subjectVisitRepository.Where(t => t.SubjectId == dbSubjectVisit.SubjectId && t.VisitNum < dbSubjectVisit.VisitNum && t.IsUrgent == false && t.SubmitState == SubmitStateEnum.Submitted, true).ToListAsync();
|
||||
|
||||
previosSVlist.ForEach(t =>
|
||||
{
|
||||
t.IsUrgent = true;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -1755,15 +1773,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
{
|
||||
|
||||
bool isSuccess = false;
|
||||
|
||||
|
||||
|
||||
foreach (var subjectVisitId in subjectVisitIdList)
|
||||
{
|
||||
|
||||
|
||||
var info = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).ProjectTo<DicomTrialSiteSubjectInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
|
||||
|
||||
var targetPath = "/IMPORT-IMAGES/" + info.TrialCode + "_" + info.SubjectCode + "_" + info.VisitName;
|
||||
|
||||
var path = _dicomFileStoreHelper.GetSubjectVisitPath(info.TrialId, info.SiteId, info.SubjectId, info.SubjectVisitId);
|
||||
|
@ -1826,14 +1844,14 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
u => new SubjectVisit() { ForwardState = ForwardStateEnum.Forwarded, ForwardUserId = _userInfo.Id, ForwardTime = DateTime.Now });
|
||||
|
||||
isSuccess = true;
|
||||
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
await _subjectVisitRepository.UpdatePartialFromQueryAsync(t => t.Id == subjectVisitId,
|
||||
u => new SubjectVisit() { ForwardState = ForwardStateEnum.ForwardFailed });
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.NotOk("转发失败 " + e.Message);
|
||||
}
|
||||
|
@ -1841,7 +1859,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
await _subjectVisitRepository.SaveChangesAsync();
|
||||
|
||||
|
|
Loading…
Reference in New Issue