CRC 修改 Modality

Test.EIImageViewer
hang 2022-11-21 16:02:22 +08:00
parent 0e7b4b5813
commit 505eb1b33b
1 changed files with 13 additions and 61 deletions

View File

@ -594,65 +594,7 @@ namespace IRaCIS.Core.Application.Image.QA
[HttpPut("{trialId:guid}/{subjectVisitId:guid}/{studyId:guid}/{seriesId:guid}/{state:int}")] [HttpPut("{trialId:guid}/{subjectVisitId:guid}/{studyId:guid}/{seriesId:guid}/{state:int}")]
[TypeFilter(typeof(TrialResourceFilter))] [TypeFilter(typeof(TrialResourceFilter))]
[Authorize(Policy = IRaCISPolicy.IQC)] [Authorize(Policy = IRaCISPolicy.IQC)]
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
{
await VerifyIsCanQCAsync(null, subjectVisitId);
var series = (await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
if (state == 1)
{
series.IsReading = false;
}
else if (state == 2)
{
series.IsReading = true;
}
else if (state == 4)
{
series.IsDeleted = true;
var study = (await _repository.Where<DicomStudy>(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
var instanceIdList = await _repository.Where<DicomInstance>(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync();
//instanceIdList.ForEach(t =>
//{
// var path = _dicomFileStoreHelper.GetInstanceFilePath(study, seriesId, t.ToString());
// if (System.IO.File.Exists(path))
// {
// File.Delete(path);
// }
//});
study.InstanceCount = study.InstanceCount - instanceIdList.Count;
study.SeriesCount = study.SeriesCount - 1;
study.IsDeleted = study.SeriesCount == 0;
}
else if (state == 5)
{
series.IsDeleted = false;
var study = (await _repository.Where<DicomStudy>(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
var instanceIdList = await _repository.Where<DicomInstance>(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync();
study.InstanceCount = study.InstanceCount + instanceIdList.Count;
study.SeriesCount = study.SeriesCount + 1;
study.IsDeleted = study.SeriesCount == 0;
}
return ResponseOutput.Ok(await _repository.SaveChangesAsync());
}
/// <summary> /// <summary>
@ -661,11 +603,21 @@ namespace IRaCIS.Core.Application.Image.QA
/// <returns></returns> /// <returns></returns>
[HttpPost("{trialId:guid}")] [HttpPost("{trialId:guid}")]
[TypeFilter(typeof(TrialResourceFilter))] [TypeFilter(typeof(TrialResourceFilter))]
[Authorize(Policy = IRaCISPolicy.IQC)] [Authorize(Policy = IRaCISPolicy.CRC_IQC)]
public async Task<IResponseOutput> UpdateModality(UpdateModalityCommand updateModalityCommand) public async Task<IResponseOutput> UpdateModality(UpdateModalityCommand updateModalityCommand)
{ {
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC)
{
await VerifyIsCanQCAsync(null, updateModalityCommand.SubjectVisitId);
await VerifyIsCanQCAsync(null, updateModalityCommand.SubjectVisitId); }
else
{
if(await _subjectVisitRepository.AnyAsync(t=>t.Id==updateModalityCommand.SubjectVisitId && t.SubmitState == SubmitStateEnum.Submitted))
{
throw new BusinessValidationFailedException("提交之后,不允许修改!");
}
}
DateTime time = DateTime.Now.AddMilliseconds(500); DateTime time = DateTime.Now.AddMilliseconds(500);