Loads a stream containing a DICOM-encoded JSON file.
public static void LoadJson(this DicomDataSet ds,Stream stream,DicomDataSetLoadJsonFlags jsonFlags,LoadJsonBeforeElementCallback cbBefore,LoadJsonAfterElementCallback cbAfter)
<ExtensionAttribute()>Public Overloads Shared Sub LoadJson( _ByVal ds As DicomDataSet, _ByVal stream As Stream, _ByVal jsonFlags As DicomDataSetLoadJsonFlags, _ByVal cbBefore As LoadJsonBeforeElementCallback, _ByVal cbAfter As LoadJsonAfterElementCallback _)
[ExtensionAttribute()]public:static void LoadJson(DicomDataSet^ ds,Stream^ stream,DicomDataSetLoadJsonFlags jsonFlags,LoadJsonBeforeElementCallback^ cbBefore,LoadJsonAfterElementCallback^ cbAfter)
ds
The Data Set that will be created and populated with the contents of the DICOM JSON input file.
stream
The name of the input JSON file.
jsonFlags
Flags that affect whether to ignore binary or all data from the DICOM JSON input file.
cbBefore
Optional callback that allows you to modify how the input JSON file elements and values are used.
cbAfter
Optional callback that allows you to change the DicomElement after it has been added to the DicomDataSet.
Use this method to read the contents of a DICOM JSON file. The DICOM JSON file can be created using SaveJson By default, all binary data is read from the DICOM input JSON file, but this behavior can be modified by passing appropriate DicomDataSetLoadJsonFlags
The way that this method processes the input JSON file elements and element values can be customized by passing the optional LoadJsonBeforeElementCallback delegate. For more information on this, see the documentation and example for LoadJsonBeforeElementCallback. The DicomElement themselves can be modified after they have been added to the DicomDataSet by passing the optional LoadJsonAfterElementCallback delegate. For more information on this, see the documentation and example for LoadJsonAfterElementCallback.
This example loads a sample DICOM data set, saves it as JSON to a memory stream (with no binary data), displays the memory stream, reloads the JSON stream into a DicomDataSet object, and saves the DicomDataSet object as a DICOM file
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;public void LoadJsonExample2(){string dicomFileNameIn = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm");string dicomFileNameOut = Path.Combine(LEAD_VARS.ImagesDir, "test.dcm");// Initialize DICOM engineDicomEngine.Startup();DicomDataSet ds = new DicomDataSet();// Load an existing DICOM fileds.Load(dicomFileNameIn, DicomDataSetLoadFlags.None);// Save as JSON to a stream with no binary data// For the demo, keep the json output file size small by skipping the pixel dataconst DicomDataSetSaveJsonFlags jsonFlags = DicomDataSetSaveJsonFlags.IgnoreBinaryData | DicomDataSetSaveJsonFlags.None | DicomDataSetSaveJsonFlags.TrimWhiteSpace;Stream stream = new MemoryStream();ds.SaveJson(stream, jsonFlags);// Display contents of streamstream.Flush();stream.Position = 0;StreamReader sr = new StreamReader(stream);string jsonString = sr.ReadToEnd();MessageBox.Show(jsonString, "json version of " + dicomFileNameIn);// Now reload the json file from the stream.// Note that there will not be an image because we skipped the pixel data in the savestream.Seek(0, SeekOrigin.Begin);//stream.Position = 0;ds.LoadJson(stream, DicomDataSetLoadJsonFlags.None);ds.Save(dicomFileNameOut, DicomDataSetSaveFlags.None);DicomEngine.Shutdown();}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports Leadtools.DicomImports Leadtools.Dicom.CommonImports Leadtools.Dicom.Common.ExtensionsImports Leadtools.Dicom.Common.LinqImports Leadtools.Dicom.Common.Linq.BasicDirectoryImports LeadtoolsImports Leadtools.Dicom.Common.DataTypesPublic Sub LoadJsonExample2()Dim dicomFileNameIn As String = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")Dim dicomFileNameOut As String = Path.Combine(LEAD_VARS.ImagesDir, "test.dcm")' Initialize DICOM engineDicomEngine.Startup()Dim ds As New DicomDataSet()' Load an existing DICOM fileds.Load(dicomFileNameIn, DicomDataSetLoadFlags.None)' Save as JSON to a stream with no binary data' For the demo, keep the json output file size small by skipping the pixel dataConst jsonFlags As DicomDataSetSaveJsonFlags = DicomDataSetSaveJsonFlags.IgnoreBinaryData Or DicomDataSetSaveJsonFlags.None Or DicomDataSetSaveJsonFlags.TrimWhiteSpaceDim stream As Stream = New MemoryStream()ds.SaveJson(stream, jsonFlags)' Display contents of streamstream.Flush()stream.Position = 0Dim sr As New StreamReader(stream)Dim jsonString As String = sr.ReadToEnd()MessageBox.Show(jsonString, "json version of " & dicomFileNameIn)' Now reload the json file from the stream.' Note that there will not be an image because we skipped the pixel data in the savestream.Seek(0, SeekOrigin.Begin)'stream.Position = 0;ds.LoadJson(stream, DicomDataSetLoadJsonFlags.None)ds.Save(dicomFileNameOut, DicomDataSetSaveFlags.None)DicomEngine.Shutdown()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
[LoadJson(DicomDataSet,Stream,DicomDataSetLoadJsonFlags,LoadJsonBeforeElementCallback,LoadJsonAfterElementCallback)Method
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
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
