uat-标注-17
parent
eb18021988
commit
888ad8897e
|
|
@ -824,39 +824,68 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||
|
||||
|
||||
[HttpDelete]
|
||||
public async Task<IResponseOutput> DeleteTaskStudy(Guid visitTaskId, bool isDicom, Guid? dicomStudyId, Guid? noneDicomStudyId)
|
||||
public async Task<IResponseOutput> DeleteTaskStudy(Guid visitTaskId, Guid? subjectVisitId, bool isDicom, Guid? dicomStudyId, Guid? noneDicomStudyId)
|
||||
{
|
||||
if (isDicom)
|
||||
{
|
||||
if (dicomStudyId == null)
|
||||
//靶段标注删除访视影像
|
||||
if (visitTaskId == Guid.Empty && subjectVisitId != null && subjectVisitId != Guid.Empty)
|
||||
{
|
||||
var deleteStudyPathList = await _taskInstanceRepository.Where(t => t.VisitTaskId == visitTaskId).GroupBy(t => t.StudyId).Select(g => g.First().Path).ToListAsync();
|
||||
|
||||
foreach (var fisrtPath in deleteStudyPathList)
|
||||
{
|
||||
var prefix = fisrtPath.Substring(1, fisrtPath.LastIndexOf('/') - 1);
|
||||
await _oSSService.DeleteFromPrefix(prefix, true);
|
||||
}
|
||||
|
||||
|
||||
await _taskStudyRepository.DeleteFromQueryAsync(t => t.VisitTaskId == visitTaskId);
|
||||
await _taskSeriesRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId);
|
||||
await _taskInstanceRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId);
|
||||
}
|
||||
else
|
||||
{
|
||||
var fisrtPath = await _taskInstanceRepository.Where(t => t.VisitTaskId == visitTaskId && t.StudyId == dicomStudyId).Select(t => t.Path).FirstOrDefaultAsync();
|
||||
var fisrtPath = await _taskInstanceRepository.Where(t => t.SubjectVisitId == subjectVisitId && t.StudyId == dicomStudyId).Select(t => t.Path).FirstOrDefaultAsync();
|
||||
var prefix = fisrtPath.Substring(1, fisrtPath.LastIndexOf('/') - 1);
|
||||
await _oSSService.DeleteFromPrefix(prefix, true);
|
||||
|
||||
await _taskStudyRepository.DeleteFromQueryAsync(t => t.VisitTaskId == visitTaskId && t.Id == dicomStudyId);
|
||||
await _taskSeriesRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId && t.Id == dicomStudyId);
|
||||
await _taskInstanceRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId && t.Id == dicomStudyId);
|
||||
await _taskStudyRepository.DeleteFromQueryAsync(t => t.SubjectVisitId == subjectVisitId && t.Id == dicomStudyId);
|
||||
await _taskSeriesRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisitId == subjectVisitId && t.Id == dicomStudyId);
|
||||
await _taskInstanceRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisitId == subjectVisitId && t.Id == dicomStudyId);
|
||||
}
|
||||
|
||||
if (visitTaskId != Guid.Empty)
|
||||
{
|
||||
if (dicomStudyId == null)
|
||||
{
|
||||
var deleteStudyPathList = await _taskInstanceRepository.Where(t => t.VisitTaskId == visitTaskId).GroupBy(t => t.StudyId).Select(g => g.First().Path).ToListAsync();
|
||||
|
||||
foreach (var fisrtPath in deleteStudyPathList)
|
||||
{
|
||||
var prefix = fisrtPath.Substring(1, fisrtPath.LastIndexOf('/') - 1);
|
||||
await _oSSService.DeleteFromPrefix(prefix, true);
|
||||
}
|
||||
|
||||
|
||||
await _taskStudyRepository.DeleteFromQueryAsync(t => t.VisitTaskId == visitTaskId);
|
||||
await _taskSeriesRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId);
|
||||
await _taskInstanceRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId);
|
||||
}
|
||||
else
|
||||
{
|
||||
var fisrtPath = await _taskInstanceRepository.Where(t => t.VisitTaskId == visitTaskId && t.StudyId == dicomStudyId).Select(t => t.Path).FirstOrDefaultAsync();
|
||||
var prefix = fisrtPath.Substring(1, fisrtPath.LastIndexOf('/') - 1);
|
||||
await _oSSService.DeleteFromPrefix(prefix, true);
|
||||
|
||||
await _taskStudyRepository.DeleteFromQueryAsync(t => t.VisitTaskId == visitTaskId && t.Id == dicomStudyId);
|
||||
await _taskSeriesRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId && t.Id == dicomStudyId);
|
||||
await _taskInstanceRepository.BatchDeleteNoTrackingAsync(t => t.VisitTaskId == visitTaskId && t.Id == dicomStudyId);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await _noneDicomStudyFileReposiotry.DeleteFromQueryAsync(t => t.VisitTaskId == visitTaskId && t.OriginNoneDicomStudyId == noneDicomStudyId);
|
||||
if (visitTaskId == Guid.Empty)
|
||||
{
|
||||
|
||||
//删除靶段标注非dicom
|
||||
await _noneDicomStudyFileReposiotry.DeleteFromQueryAsync(t => t.ImageLabelNoneDicomStudyId == noneDicomStudyId);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//删除后处理非dicom
|
||||
await _noneDicomStudyFileReposiotry.DeleteFromQueryAsync(t => t.VisitTaskId == visitTaskId && t.OriginNoneDicomStudyId == noneDicomStudyId);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
await _noneDicomStudyFileReposiotry.SaveChangesAsync();
|
||||
|
|
|
|||
Loading…
Reference in New Issue