public delegate void LoadJsonAfterElementCallback(
LoadJsonAfterElementData data
)
public delegate void LoadJsonAfterElementCallback(
LoadJsonAfterElementData^ data
)
data
An instance of the LoadJsonAfterElementData class containing the progress callback data.
This delegate is called once for each DICOM element, after it has been added to the DicomDataSet. If you pass this delegate with the LoadJson methods, you can change the value of the DicomElement by calling one of the DicomDataSet SetValue methods. For details, see the documentation for LoadJsonBeforeElementData
using Leadtools.Dicom;
using Leadtools.Dicom.Common;
using Leadtools.Dicom.Common.Extensions;
using Leadtools;
using Leadtools.Dicom.Common.Linq.BasicDirectory;
using Leadtools.Dicom.Common.DataTypes;
using Leadtools.Codecs;
public void LoadJsonCallbackExample()
{
string dicomFileNameIn = Path.Combine(LEAD_VARS.ImagesDir,"DICOM", "image2.dcm");
string jsonFileNameOut = Path.Combine(LEAD_VARS.ImagesDir, "test.json");
string dicomFileNameOut = Path.Combine(LEAD_VARS.ImagesDir, "test.dcm");
// Initialize DICOM engine
DicomEngine.Startup();
DicomDataSet ds = new DicomDataSet();
// Load an existing DICOM file
ds.Load(dicomFileNameIn, DicomDataSetLoadFlags.None);
// Save as JSON to a file with no binary data
// For the demo, keep the json output file size small by skipping the pixel data
// Use the SaveJsonCallback delegate to customize the json file
DicomDataSetSaveJsonFlags jsonFlags =
DicomDataSetSaveJsonFlags.IgnoreBinaryData |
DicomDataSetSaveJsonFlags.TrimWhiteSpace;
ds.SaveJson(jsonFileNameOut, jsonFlags);
// Use a LoadmlCallback to read the customized json file
ds.LoadJson(jsonFileNameOut, DicomDataSetLoadJsonFlags.None, MyLoadJsonBeforeElementCallback, MyLoadJsonAfterElementCallback);
// Save the result -- there will be no pixel data
ds.Save(dicomFileNameOut, DicomDataSetSaveFlags.None);
DicomEngine.Shutdown();
}
private static bool MyLoadJsonBeforeElementCallback(LoadJsonBeforeElementData data)
{
// Remove Patient Birth Date
if (data.Tag == DicomTag.PatientBirthDate)
{
return false;
}
// Change the patient name
if (data.Tag == DicomTag.PatientName)
{
data.ElementValue = "NewLast^NewFirst";
}
// Write the elements to the consolee that have child elements
if (data.HasChildElements)
{
Console.WriteLine("Element {0} has child elements.", data.Tag);
}
return true;
}
private static void MyLoadJsonAfterElementCallback(LoadJsonAfterElementData data)
{
if (data.DicomElement.Tag == DicomTag.PixelData)
{
// here you could call one of the following to set the pixel data
// data.DicomDataSet.SetBinaryValue
// data.DicomDataSet.SetImage()
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
LoadJsonAfterElementCallback Members
Leadtools.Dicom.Common.Extensions Namespace
LoadJson(DicomDataSet,String,DicomDataSetLoadJsonFlags) Method
LoadJson(DicomDataSet,Stream,DicomDataSetLoadJsonFlags) Method
SaveJson(DicomDataSet,String,DicomDataSetSaveJsonFlags,SaveJsonCallback) Method
SaveJson(DicomDataSet,Stream,DicomDataSetSaveJsonFlags,SaveJsonCallback) Method
SaveJson(DicomDataSet,String,DicomDataSetSaveJsonFlags) Method
SaveJson(DicomDataSet,Stream,DicomDataSetSaveJsonFlags) Method
LoadJsonBeforeElementCallback Delegate
LoadJsonAfterElementCallback Delegate
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document