增加异常处理
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
parent
790d751c1f
commit
596c46d885
|
|
@ -30,6 +30,7 @@ using NPOI.XWPF.UserModel;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Log = Serilog.Log;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -78,6 +79,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
// DicomStudyTime = REPLACE(CONVERT(char(8), StudyTime, 108), ':', ''); --HHmmss
|
// DicomStudyTime = REPLACE(CONVERT(char(8), StudyTime, 108), ':', ''); --HHmmss
|
||||||
// where DicomStudyDate = ''
|
// where DicomStudyDate = ''
|
||||||
|
|
||||||
|
var errorCount = 0;
|
||||||
|
|
||||||
//instance 找到传输语法为空的,然后分组
|
//instance 找到传输语法为空的,然后分组
|
||||||
var seriesList = _instanceRepository.Where(t => t.TransferSyntaxUID == "")
|
var seriesList = _instanceRepository.Where(t => t.TransferSyntaxUID == "")
|
||||||
|
|
@ -88,29 +90,40 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
foreach (var item in seriesList)
|
foreach (var item in seriesList)
|
||||||
{
|
{
|
||||||
var stream = await _oSSService.GetStreamFromOSSAsync(item.Path);
|
try
|
||||||
|
|
||||||
var dicomFile = DicomFile.Open(stream);
|
|
||||||
|
|
||||||
var pixelData = DicomPixelData.Create(dicomFile.Dataset);
|
|
||||||
|
|
||||||
//获取像素是否为封装形式
|
|
||||||
var syntax = dicomFile.Dataset.InternalTransferSyntax;
|
|
||||||
|
|
||||||
//读取需要维护的值
|
|
||||||
var transferSyntaxUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.TransferSyntaxUID, string.Empty);
|
|
||||||
var mediaStorageSOPClassUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.MediaStorageSOPClassUID, string.Empty);
|
|
||||||
var mediaStorageSOPInstanceUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.MediaStorageSOPInstanceUID, string.Empty);
|
|
||||||
var sOPClassUID = dicomFile.Dataset.GetSingleValueOrDefault(DicomTag.SOPClassUID, string.Empty);
|
|
||||||
|
|
||||||
//维护序列层级四个字段 后再用sql 维护study series 时间拆分 和 MediaStorageSOPInstanceUID
|
|
||||||
await _instanceRepository.BatchUpdateNoTrackingAsync(t => t.SeriesId == item.SeriesId, t => new SCPInstance()
|
|
||||||
{
|
{
|
||||||
IsEncapsulated = syntax.IsEncapsulated,
|
var stream = await _oSSService.GetStreamFromOSSAsync(item.Path);
|
||||||
TransferSyntaxUID = transferSyntaxUID,
|
|
||||||
MediaStorageSOPClassUID = mediaStorageSOPClassUID,
|
var dicomFile = DicomFile.Open(stream);
|
||||||
SOPClassUID = sOPClassUID,
|
|
||||||
});
|
var pixelData = DicomPixelData.Create(dicomFile.Dataset);
|
||||||
|
|
||||||
|
//获取像素是否为封装形式
|
||||||
|
var syntax = dicomFile.Dataset.InternalTransferSyntax;
|
||||||
|
|
||||||
|
//读取需要维护的值
|
||||||
|
var transferSyntaxUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.TransferSyntaxUID, string.Empty);
|
||||||
|
var mediaStorageSOPClassUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.MediaStorageSOPClassUID, string.Empty);
|
||||||
|
var mediaStorageSOPInstanceUID = dicomFile.FileMetaInfo.GetSingleValueOrDefault(DicomTag.MediaStorageSOPInstanceUID, string.Empty);
|
||||||
|
var sOPClassUID = dicomFile.Dataset.GetSingleValueOrDefault(DicomTag.SOPClassUID, string.Empty);
|
||||||
|
|
||||||
|
//维护序列层级四个字段 后再用sql 维护study series 时间拆分 和 MediaStorageSOPInstanceUID
|
||||||
|
await _instanceRepository.BatchUpdateNoTrackingAsync(t => t.SeriesId == item.SeriesId, t => new SCPInstance()
|
||||||
|
{
|
||||||
|
IsEncapsulated = syntax.IsEncapsulated,
|
||||||
|
TransferSyntaxUID = transferSyntaxUID,
|
||||||
|
MediaStorageSOPClassUID = mediaStorageSOPClassUID,
|
||||||
|
SOPClassUID = sOPClassUID,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
errorCount++;
|
||||||
|
|
||||||
|
Log.Logger.Error($"错误数量:{errorCount} 路径:{item.Path}");
|
||||||
|
Log.Logger.Error(e.InnerException is null ? e.Message + e.StackTrace : e.InnerException?.Message + e.InnerException?.StackTrace);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue