diff --git a/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs index c32dbd4c6..edf8d2f66 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs @@ -1,6 +1,7 @@ using FellowOakDicom; using FellowOakDicom.Imaging; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; namespace IRaCIS.Core.API { @@ -9,12 +10,14 @@ namespace IRaCIS.Core.API public static void AddDicomSetup(this IServiceCollection services) { new DicomSetupBuilder() - .RegisterServices(s => s.AddFellowOakDicom() - .AddTranscoderManager() - .AddImageManager() + .RegisterServices(s => s.AddFellowOakDicom().AddLogging(config => config.AddConsole()) + .AddTranscoderManager() + //.AddImageManager() ) .SkipValidation() .Build(); + + } } } diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index 21bea1016..19e48f9c9 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -46,6 +46,7 @@ using FellowOakDicom.Network.Client; using FellowOakDicom.Network; using Microsoft.Extensions.Logging; using DocumentFormat.OpenXml.Wordprocessing; +using System; namespace IRaCIS.Application.Services { @@ -2838,6 +2839,32 @@ namespace IRaCIS.Application.Services request.Dataset.AddOrUpdate(new DicomTag(0x8, 0x5), "ISO_IR 100"); // add the dicom tags with empty values that should be included in the result of the QR Server + + ////病例号 + //request.Dataset.AddOrUpdate(DicomTag.PatientID, ""); + + //request.Dataset.AddOrUpdate(DicomTag.PatientName, ""); + //request.Dataset.AddOrUpdate(DicomTag.PatientSex, ""); + //request.Dataset.AddOrUpdate(DicomTag.PatientBirthDate, ""); + ////检查号 设备类型 + //request.Dataset.AddOrUpdate(DicomTag.StudyID, ""); + + //request.Dataset.AddOrUpdate(DicomTag.ModalitiesInStudy, ""); + + //request.Dataset.AddOrUpdate(DicomTag.StudyDate, ""); + //request.Dataset.AddOrUpdate(DicomTag.StudyTime, ""); + + //request.Dataset.AddOrUpdate(DicomTag.BodyPartExamined, ""); + //request.Dataset.AddOrUpdate(DicomTag.StudyDescription, ""); + + //request.Dataset.AddOrUpdate(DicomTag.StudyInstanceUID, ""); + + + + // add the dicom tags that contain the filter criterias + + //request.Dataset.AddOrUpdate(DicomTag.PatientID, "Test*"); + //病例号 request.Dataset.AddOrUpdate(DicomTag.PatientID, inQuery.PatientID.IsNullOrEmpty() ? "" : inQuery.PatientID); @@ -2857,9 +2884,6 @@ namespace IRaCIS.Application.Services request.Dataset.AddOrUpdate(DicomTag.StudyInstanceUID, inQuery.StudyInstanceUID.IsNullOrEmpty() ? "" : inQuery.StudyInstanceUID); - // add the dicom tags that contain the filter criterias - - return request; } @@ -2910,20 +2934,30 @@ namespace IRaCIS.Application.Services { //DebugStudyResponse(response, _logger); - result.Add(new SCUStudyView() + if (response.HasDataset) { - PatientID = response.Dataset?.GetSingleValue(DicomTag.PatientID), - PatientName = response.Dataset?.GetSingleValue(DicomTag.PatientName), - PatientSex = response.Dataset?.GetSingleValue(DicomTag.PatientSex), - PatientBirthDate = response.Dataset?.GetSingleValue(DicomTag.PatientBirthDate), - StudyID = response.Dataset?.GetSingleValue(DicomTag.StudyID), - ModalitiesInStudy = response.Dataset?.GetSingleValue(DicomTag.ModalitiesInStudy), - StudyDate = response.Dataset?.GetSingleValue(DicomTag.StudyDate), - StudyTime = response.Dataset?.GetSingleValue(DicomTag.StudyTime), - BodyPartExamined = response.Dataset?.GetSingleValue(DicomTag.BodyPartExamined), - StudyDescription = response.Dataset?.GetSingleValue(DicomTag.StudyDescription), - StudyInstanceUID = response.Dataset?.GetSingleValue(DicomTag.StudyInstanceUID) - }); + //var time= response.Dataset?.GetSingleValueOrDefault(DicomTag.StudyTime, "") + + var studyTime = response.Dataset.GetDateTime(DicomTag.StudyDate, DicomTag.StudyTime); + + DateOnly datePart = DateOnly.FromDateTime(studyTime); + TimeOnly timePart = TimeOnly.FromDateTime(studyTime); + + result.Add(new SCUStudyView() + { + PatientID = response.Dataset?.GetSingleValueOrDefault(DicomTag.PatientID, ""), + PatientName = response.Dataset?.GetSingleValueOrDefault(DicomTag.PatientName, ""), + PatientSex = response.Dataset?.GetSingleValueOrDefault(DicomTag.PatientSex, ""), + PatientBirthDate = response.Dataset?.GetSingleValueOrDefault(DicomTag.PatientBirthDate, ""), + StudyID = response.Dataset?.GetSingleValueOrDefault(DicomTag.StudyID, ""), + ModalitiesInStudy = response.Dataset?.GetSingleValueOrDefault(DicomTag.ModalitiesInStudy, ""), + StudyDate = datePart.ToString(), + StudyTime = timePart.ToString("HH:mm:ss"), + BodyPartExamined = response.Dataset?.GetSingleValueOrDefault(DicomTag.BodyPartExamined, ""), + StudyDescription = response.Dataset?.GetSingleValueOrDefault(DicomTag.StudyDescription, ""), + StudyInstanceUID = response.Dataset?.GetSingleValueOrDefault(DicomTag.StudyInstanceUID, "") + }); + } }; await client.AddRequestAsync(request);