修改维护脚本
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
62352738e8
commit
facb318180
|
|
@ -18826,7 +18826,7 @@
|
||||||
<param name="inQuery"></param>
|
<param name="inQuery"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<!-- Badly formed XML comment ignored for member "M:IRaCIS.Application.Services.PatientService.TrialImageAddExtralField(System.Guid,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SCPInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomInstance},IRaCIS.Core.Application.Helper.IOSSService)" -->
|
<!-- Badly formed XML comment ignored for member "M:IRaCIS.Application.Services.PatientService.TrialImageAddExtralField(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SCPInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomInstance},IRaCIS.Core.Application.Helper.IOSSService)" -->
|
||||||
<member name="M:IRaCIS.Application.Services.PatientService.GetDownloadPatientStudyInfo(IRaCIS.Application.Contracts.PatientImageDownloadCommand,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SCPPatient},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SCPStudy},IRaCIS.Core.Application.Helper.IOSSService)">
|
<member name="M:IRaCIS.Application.Services.PatientService.GetDownloadPatientStudyInfo(IRaCIS.Application.Contracts.PatientImageDownloadCommand,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SCPPatient},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SCPStudy},IRaCIS.Core.Application.Helper.IOSSService)">
|
||||||
<summary>
|
<summary>
|
||||||
影像库 和影像下载界面批量下载原始影像 患者列表只传递 患者Id数组 检查列表,把患者Id数组 和检查Id数组都传递
|
影像库 和影像下载界面批量下载原始影像 患者列表只传递 患者Id数组 检查列表,把患者Id数组 和检查Id数组都传递
|
||||||
|
|
|
||||||
|
|
@ -3186,8 +3186,7 @@ namespace IRaCIS.Application.Services
|
||||||
/// <param name="_studyRepository"></param>
|
/// <param name="_studyRepository"></param>
|
||||||
/// <param name="_seriesRepository"></param>
|
/// <param name="_seriesRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<IResponseOutput> TrialImageAddExtralField(Guid trialId,
|
public async Task<IResponseOutput> TrialImageAddExtralField([FromServices] IRepository<SCPInstance> _scpInstanceRepository,
|
||||||
[FromServices] IRepository<SCPInstance> _scpInstanceRepository,
|
|
||||||
[FromServices] IRepository<DicomInstance> _instanceRepository,
|
[FromServices] IRepository<DicomInstance> _instanceRepository,
|
||||||
[FromServices] IOSSService _oSSService)
|
[FromServices] IOSSService _oSSService)
|
||||||
{
|
{
|
||||||
|
|
@ -3206,29 +3205,40 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
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 _scpInstanceRepository.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 _scpInstanceRepository.BatchUpdateNoTrackingAsync(t => t.SeriesId == item.SeriesId, t => new SCPInstance()
|
||||||
|
{
|
||||||
|
IsEncapsulated = syntax.IsEncapsulated,
|
||||||
|
TransferSyntaxUID = transferSyntaxUID,
|
||||||
|
MediaStorageSOPClassUID = mediaStorageSOPClassUID,
|
||||||
|
SOPClassUID = sOPClassUID,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
Console.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] SCP下载失败 SeriesId: {item.SeriesId} Path:{item.Path} Error: {ex.Message}\n" );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3241,29 +3251,39 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
foreach (var item in seriesList2)
|
foreach (var item in seriesList2)
|
||||||
{
|
{
|
||||||
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 DicomInstance()
|
|
||||||
{
|
{
|
||||||
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 DicomInstance()
|
||||||
|
{
|
||||||
|
IsEncapsulated = syntax.IsEncapsulated,
|
||||||
|
TransferSyntaxUID = transferSyntaxUID,
|
||||||
|
MediaStorageSOPClassUID = mediaStorageSOPClassUID,
|
||||||
|
SOPClassUID = sOPClassUID,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
Console.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] 下载失败 SeriesId: {item.SeriesId} Path:{item.Path} Error: {ex.Message}\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue