修复bug
parent
febc651f61
commit
caab71f1a3
|
@ -73,7 +73,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
[TypeFilter(typeof(TrialResourceFilter))]
|
[TypeFilter(typeof(TrialResourceFilter))]
|
||||||
public async Task<IResponseOutput> VerifyQCCanAddChallenge(Guid subjectVisitId, [FromRoute] CurrentQC currentQCType)
|
public async Task<IResponseOutput> VerifyQCCanAddChallenge(Guid subjectVisitId, [FromRoute] CurrentQC currentQCType)
|
||||||
{
|
{
|
||||||
VerifyIsCanQC(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
if (!await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType))
|
if (!await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType))
|
||||||
{
|
{
|
||||||
return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。");
|
return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。");
|
||||||
|
@ -95,7 +95,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
[Authorize(Policy = "ImageQCPolicy")]
|
[Authorize(Policy = "ImageQCPolicy")]
|
||||||
public async Task<QCChallenge> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
public async Task<QCChallenge> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
||||||
{
|
{
|
||||||
VerifyIsCanQC(null, qaQuestionCommand.SubjectVisitId);
|
await VerifyIsCanQCAsync(null, qaQuestionCommand.SubjectVisitId);
|
||||||
|
|
||||||
if (qaQuestionCommand.Id == null)
|
if (qaQuestionCommand.Id == null)
|
||||||
{
|
{
|
||||||
|
@ -156,7 +156,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC)
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC)
|
||||||
{
|
{
|
||||||
VerifyIsCanQC(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
}
|
}
|
||||||
|
|
||||||
var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
|
var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
|
||||||
|
@ -692,7 +692,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
public async Task<IResponseOutput> AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
public async Task<IResponseOutput> AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
||||||
{
|
{
|
||||||
//验证是否能操作
|
//验证是否能操作
|
||||||
VerifyIsCanQC(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
|
|
||||||
//更新
|
//更新
|
||||||
if (qcQuestionAnswerCommands.Any(t => t.Id != null))
|
if (qcQuestionAnswerCommands.Any(t => t.Id != null))
|
||||||
|
@ -762,7 +762,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
public async Task<IResponseOutput> SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state)
|
public async Task<IResponseOutput> SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state)
|
||||||
{
|
{
|
||||||
|
|
||||||
VerifyIsCanQC(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
|
|
||||||
|
|
||||||
var series = await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync();
|
var series = await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync();
|
||||||
|
@ -838,7 +838,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
public async Task<IResponseOutput> UpdateModality(Guid id, Guid subjectVisitId, int type, [FromQuery] string modality, [FromQuery] string bodyPart)
|
public async Task<IResponseOutput> UpdateModality(Guid id, Guid subjectVisitId, int type, [FromQuery] string modality, [FromQuery] string bodyPart)
|
||||||
{
|
{
|
||||||
|
|
||||||
VerifyIsCanQC(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
|
|
||||||
var DicomSeriesdata = await _repository.GetQueryable<DicomSeries>().Where(x => x.StudyId == id).ToListAsync();
|
var DicomSeriesdata = await _repository.GetQueryable<DicomSeries>().Where(x => x.StudyId == id).ToListAsync();
|
||||||
var study = await _repository.FirstOrDefaultAsync<DicomStudy>(t => t.Id == id);
|
var study = await _repository.FirstOrDefaultAsync<DicomStudy>(t => t.Id == id);
|
||||||
|
@ -931,7 +931,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
[HttpGet("{subjectVisitId:guid}")]
|
[HttpGet("{subjectVisitId:guid}")]
|
||||||
public async Task<IResponseOutput> VerifyCanQCPassedOrFailed(Guid subjectVisitId)
|
public async Task<IResponseOutput> VerifyCanQCPassedOrFailed(Guid subjectVisitId)
|
||||||
{
|
{
|
||||||
VerifyIsCanQC(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
|
|
||||||
if (await _repository.AnyAsync<QCChallenge>(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
if (await _repository.AnyAsync<QCChallenge>(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
||||||
{
|
{
|
||||||
|
@ -965,13 +965,13 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
}
|
}
|
||||||
var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id)).ToListAsync();
|
var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id)).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var study in waitDeleteStudyList)
|
foreach (var study in waitDeleteStudyList)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -997,7 +997,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var success3 = await _repository.BatchDeleteAsync<DicomSeries>(t => t.StudyId == id);
|
var success3 = await _repository.BatchDeleteAsync<DicomSeries>(t => t.StudyId == id);
|
||||||
var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
|
var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
|
||||||
|
@ -1029,7 +1029,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
public async void VerifyIsCanQC(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
|
public async Task VerifyIsCanQCAsync(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
|
||||||
{
|
{
|
||||||
if (sujectVisitId != null)
|
if (sujectVisitId != null)
|
||||||
{
|
{
|
||||||
|
@ -1406,7 +1406,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||||
|
|
||||||
VerifyIsCanQC(dbSubjectVisit);
|
await VerifyIsCanQCAsync(dbSubjectVisit);
|
||||||
|
|
||||||
//有人QC Passed
|
//有人QC Passed
|
||||||
if (auditState == AuditStateEnum.QCPassed)
|
if (auditState == AuditStateEnum.QCPassed)
|
||||||
|
@ -1534,7 +1534,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
|
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
|
||||||
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
|
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
instanceIdList.ForEach(t =>
|
instanceIdList.ForEach(t =>
|
||||||
{
|
{
|
||||||
var path = _dicomFileStoreHelper.GetInstanceFilePath(new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId }, t.SeriesId, t.InstanceId.ToString());
|
var path = _dicomFileStoreHelper.GetInstanceFilePath(new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId }, t.SeriesId, t.InstanceId.ToString());
|
||||||
|
|
|
@ -104,11 +104,7 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[HttpDelete("{id:guid}/{trialId:guid}")]
|
[HttpDelete("{id:guid}/{trialId:guid}")]
|
||||||
|
|
||||||
[TrialAudit(AuditType.SubjectAudit, AuditOptType.DeleteSubject)]
|
[TrialAudit(AuditType.SubjectAudit, AuditOptType.DeleteSubject)]
|
||||||
[TypeFilter(typeof(TrialResourceFilter))]
|
[TypeFilter(typeof(TrialResourceFilter))]
|
||||||
public async Task<IResponseOutput> DeleteSubject(Guid id)
|
public async Task<IResponseOutput> DeleteSubject(Guid id)
|
||||||
|
|
Loading…
Reference in New Issue