减少压缩包访视层级,同时处理单个非dicom 特殊情况压缩包处理
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
0c94ef86b0
commit
b77d2d9160
|
@ -502,6 +502,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
|
|
||||||
var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
||||||
|
|
||||||
|
var sujectCode = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => t.Subject.Code).FirstOrDefaultAsync();
|
||||||
|
|
||||||
var packState = isDicom ? subjectVisit.PackState : subjectVisit.NoDicomPackState;
|
var packState = isDicom ? subjectVisit.PackState : subjectVisit.NoDicomPackState;
|
||||||
|
|
||||||
if (packState == PackState.WaitPack)
|
if (packState == PackState.WaitPack)
|
||||||
|
@ -522,10 +524,10 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
|
|
||||||
|
|
||||||
await _subjectVisitRepository.SaveChangesAsync();
|
await _subjectVisitRepository.SaveChangesAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseOutput.Ok(isDicom ? subjectVisit.VisitImageZipPath : subjectVisit.VisitNoDicomImageZipPath);
|
return ResponseOutput.Ok(isDicom ? subjectVisit.VisitImageZipPath : subjectVisit.VisitNoDicomImageZipPath,
|
||||||
|
new { FileName = $"{sujectCode}_{subjectVisit.VisitName}_ImageStudy_{(isDicom ? "Dicom" : "NoneDicom")}.zip" });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -650,7 +652,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
// 遍历 Series
|
// 遍历 Series
|
||||||
foreach (var seriesInfo in studyInfo.SeriesList)
|
foreach (var seriesInfo in studyInfo.SeriesList)
|
||||||
{
|
{
|
||||||
string studyDicomFolderPath = Path.Combine(tempFolderPath, "Dicom", $"{info.SubjectCode}_{info.VisitName}", $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{seriesInfo.Modality}");
|
string studyDicomFolderPath = Path.Combine(tempFolderPath, "Dicom",/* $"{info.SubjectCode}_{info.VisitName}",*/ $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{seriesInfo.Modality}");
|
||||||
|
|
||||||
// 创建 影像 文件夹
|
// 创建 影像 文件夹
|
||||||
Directory.CreateDirectory(studyDicomFolderPath);
|
Directory.CreateDirectory(studyDicomFolderPath);
|
||||||
|
@ -740,12 +742,20 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
File.Delete(zipDicomPath);
|
File.Delete(zipDicomPath);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
var relativeNoneDicomPath = string.Empty;
|
||||||
|
|
||||||
|
if (info.NoneDicomStudyList.Count() == 1 && info.NoneDicomStudyList.SelectMany(t => t.FileList).Count() == 1)
|
||||||
|
{
|
||||||
|
relativeNoneDicomPath = info.NoneDicomStudyList.First().FileList.First().Path;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
//非dicom 处理
|
//非dicom 处理
|
||||||
|
|
||||||
foreach (var noneDicomStudy in info.NoneDicomStudyList)
|
foreach (var noneDicomStudy in info.NoneDicomStudyList)
|
||||||
{
|
{
|
||||||
string studyNoneDicomFolderPath = Path.Combine(tempFolderPath, "NoneDicom", $"{info.SubjectCode}_{info.VisitName}", $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}");
|
string studyNoneDicomFolderPath = Path.Combine(tempFolderPath, "NoneDicom", /*$"{info.SubjectCode}_{info.VisitName}",*/ $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}");
|
||||||
|
|
||||||
Directory.CreateDirectory(studyNoneDicomFolderPath);
|
Directory.CreateDirectory(studyNoneDicomFolderPath);
|
||||||
|
|
||||||
|
@ -758,12 +768,12 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var zipNoneDicomPath = Path.Combine(Directory.GetCurrentDirectory(), $"{info.SubjectCode}_{info.VisitName}_ImageStudy_NoneDicom.zip");
|
var zipNoneDicomPath = Path.Combine(Directory.GetCurrentDirectory(), $"{info.SubjectCode}_{info.VisitName}_ImageStudy_NoneDicom.zip");
|
||||||
ZipFile.CreateFromDirectory(Path.Combine(tempFolderPath, "NoneDicom"), zipNoneDicomPath);
|
ZipFile.CreateFromDirectory(Path.Combine(tempFolderPath, "NoneDicom"), zipNoneDicomPath);
|
||||||
var relativeNoneDicomPath = await _oSSService.UploadToOSSAsync(zipNoneDicomPath, $"download_zip", false);
|
relativeNoneDicomPath = await _oSSService.UploadToOSSAsync(zipNoneDicomPath, $"download_zip", false);
|
||||||
|
|
||||||
File.Delete(zipNoneDicomPath);
|
File.Delete(zipNoneDicomPath);
|
||||||
|
}
|
||||||
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitNoDicomImageZipPath = relativeNoneDicomPath });
|
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitNoDicomImageZipPath = relativeNoneDicomPath });
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue