修改提示

Uat_Study
hang 2022-04-26 16:05:35 +08:00
parent e395e105cb
commit 0ca89786fd
2 changed files with 54 additions and 31 deletions

View File

@ -32,6 +32,7 @@ namespace IRaCIS.Core.Application.Image.QA
private readonly DicomFileStoreHelper _dicomFileStoreHelper;
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<QCChallenge> _qcChallengeRepository;
private readonly IRepository<DicomStudy> _dicomStudyRepository;
private readonly IRepository<Dictionary> _dictionaryrepository;
private readonly IRepository<Trial> _trialRepository;
@ -43,6 +44,7 @@ namespace IRaCIS.Core.Application.Image.QA
private readonly AsyncLock _mutex = new AsyncLock();
public QCOperationService(DicomFileStoreHelper dicomFileStoreHelper, IRepository<SubjectVisit> subjectVisitRepository,
IRepository<QCChallenge> qcChallengeRepository,
IRepository<Trial> trialRepository,
IMediator mediator,
IInspectionService inspectionService,
@ -53,6 +55,7 @@ namespace IRaCIS.Core.Application.Image.QA
{
_dicomFileStoreHelper = dicomFileStoreHelper;
_subjectVisitRepository = subjectVisitRepository;
_qcChallengeRepository = qcChallengeRepository;
_dicomStudyRepository = dicomStudyRepository;
this._dictionaryrepository = dictionaryrepository;
_mediator = mediator;
@ -69,7 +72,7 @@ namespace IRaCIS.Core.Application.Image.QA
{
if (!await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType))
{
return ResponseOutput.NotOk("必须填写审核问题,并保存,否则不允许添加质疑");
return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。");
}
return ResponseOutput.Ok();
@ -91,23 +94,21 @@ namespace IRaCIS.Core.Application.Image.QA
if (qaQuestionCommand.Id == null)
{
if (await _repository.AnyAsync<QCChallenge>(t => t.IsClosed == false && t.SubjectVisitId == qaQuestionCommand.SubjectVisitId && t.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))
if (await _qcChallengeRepository.AnyAsync(t => t.IsClosed == false && t.SubjectVisitId == qaQuestionCommand.SubjectVisitId && t.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))
{
throw new BusinessValidationFailedException("当前访视有未关闭的 同意CRC上传的质疑不允许再次添加质疑");
}
var trialConfig = _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }).FirstOrDefault();
var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }).FirstOrDefaultAsync()).IfNullThrowException();
//获取编号
var code = _repository.Where<QCChallenge>(t => t.TrialId == trialId).Select(t => t.ChallengeCode).DefaultIfEmpty().Max();
if (trialConfig == null)
{
throw new BusinessValidationFailedException("项目不存在");
}
using (await _mutex.LockAsync())
{
//获取编号
var code = _qcChallengeRepository.Where(t => t.TrialId == trialId).Select(t => t.ChallengeCode).DefaultIfEmpty().Max();
var qcChallenge = _mapper.Map<QCChallenge>(qaQuestionCommand);
qcChallenge.QCProcessEnum = trialConfig.QCProcessEnum;
@ -117,7 +118,7 @@ namespace IRaCIS.Core.Application.Image.QA
qcChallenge.ChallengeCode = code + 1;
qcChallenge.UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt;
qcChallenge = await _repository.AddAsync(qcChallenge, true);
qcChallenge = await _qcChallengeRepository.AddAsync(qcChallenge, true);
return qcChallenge;
}
@ -144,19 +145,22 @@ namespace IRaCIS.Core.Application.Image.QA
/// <returns></returns>
[HttpPost("{trialId:guid}/{qcChallengeId:guid}/{subjectVisitId:guid}/{closeEnum}/{closeReason}")]
[TypeFilter(typeof(TrialResourceFilter))]
[UnitOfWork]
//[Authorize(Policy = "ImageQCPolicy")]
public async Task<IResponseOutput> CloseQCChallenge(Guid qcChallengeId, Guid subjectVisitId, [FromRoute] QCChallengeCloseEnum closeEnum, [FromRoute] string closeReason)
{
var dbQCChallenge = await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == qcChallengeId);
var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
if (dbQCChallenge == null) return Null404NotFound(dbQCChallenge);
if (dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload || dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)
{
return ResponseOutput.NotOk("CRC申请重传的/QC同意重传的质疑在CRC设置重传完成前不允许关闭质疑");
throw new BusinessValidationFailedException("CRC申请重传的/QC同意重传的质疑在CRC设置重传完成前不允许关闭质疑");
}
#region 之前
dbQCChallenge.CloseResonEnum = closeEnum;
dbQCChallenge.IsClosed = true;
@ -172,10 +176,36 @@ namespace IRaCIS.Core.Application.Image.QA
TalkContent = "关闭原因: " + closeReason
});
var success = await _repository.SaveChangesAsync();
var success = await _qcChallengeRepository.SaveChangesAsync();
#endregion
return ResponseOutput.Result(success);
#region 对话实体不会加入
//dbQCChallenge.DialogList.Add(new QCChallengeDialog()
//{
// SubjectVisitId = dbQCChallenge.SubjectVisitId,
// UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,
// QCChallengeId = dbQCChallenge.Id,
// TalkContent = "关闭原因: " + closeReason
//});
//var success = await _qcChallengeRepository.PartialUpdateAsync(dbQCChallenge, u => new QCChallenge()
//{
// CloseResonEnum = closeEnum,
// IsClosed = true,
// ClosedTime = DateTime.Now,
//}, true);
#endregion
}
@ -198,11 +228,11 @@ namespace IRaCIS.Core.Application.Image.QA
ResponseOutput.NotOk("this QC Challenge Has been replied ");
}
var qaRecord = await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == qcChallengeId);
var qaRecord = await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId);
if (qaRecord == null) return Null404NotFound(qaRecord);
await _repository.DeleteAsync(qaRecord);
await _qcChallengeRepository.DeleteAsync(qaRecord);
var success1 = await _repository.SaveChangesAsync();

View File

@ -312,15 +312,8 @@ namespace IRaCIS.Core.Infra.EFCore
_dbSet.Remove(entity);
return await SaveChangesAsync(autoSave);
if (autoSave)
{
return await SaveChangesAsync(cancellationToken);
}
else
{
return false;
}
}