Loads a stream containing a DICOM-encoded XML file.
[ExtensionAttribute()]
public static void LoadXml(
Leadtools.Dicom.DicomDataSet ds,
Stream stream,
Leadtools.Dicom.Common.Extensions.DicomDataSetLoadXmlFlags xmlFlags,
Leadtools.Dicom.Common.Extensions.LoadXmlBeforeElementCallback cbBefore,
Leadtools.Dicom.Common.Extensions.LoadXmlAfterElementCallback cbAfter
)
<ExtensionAttribute()>
Public Overloads Shared Sub LoadXml( _
ByVal ds As Leadtools.Dicom.DicomDataSet, _
ByVal stream As Stream, _
ByVal xmlFlags As Leadtools.Dicom.Common.Extensions.DicomDataSetLoadXmlFlags, _
ByVal cbBefore As Leadtools.Dicom.Common.Extensions.LoadXmlBeforeElementCallback, _
ByVal cbAfter As Leadtools.Dicom.Common.Extensions.LoadXmlAfterElementCallback _
)
[ExtensionAttribute()]
public:
static void LoadXml(
Leadtools.Dicom.DicomDataSet^ ds,
Stream^ stream,
Leadtools.Dicom.Common.Extensions.DicomDataSetLoadXmlFlags xmlFlags,
Leadtools.Dicom.Common.Extensions.LoadXmlBeforeElementCallback^ cbBefore,
Leadtools.Dicom.Common.Extensions.LoadXmlAfterElementCallback^ cbAfter
)
ds
The Data Set that will be created and populated with the contents of the DICOM XML input file.
stream
The name of the input XML file.
xmlFlags
Flags that affect whether to ignore binary or all data from the DICOM XML input file.
cbBefore
Optional callback that allows you to modify how the input XML file elements, attributes, 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 XML file. The DICOM XML file can be created using SaveXml By default, all binary data is read from the DICOM input XML file, but this behavior can be modified by passing appropriate DicomDataSetLoadXmlFlags
The way that this method processes the input XML file elements, attributes, and element values can be customized by passing the optional LoadXmlBeforeElementCallback delegate. For more information on this, see the documentation and example for LoadXmlBeforeElementCallback. The DicomElement themselves can be modified after they have been added to the DicomDataSet by passing the optional LoadXmlAfterElementCallback delegate. For more information on this, see the documentation and example for LoadXmlAfterElementCallback.
This example loads a sample DICOM data set, saves it as XML to a memory stream (with no binary data), displays the memory stream, reloads the XML 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 LoadXmlExample2()
{
string dicomFileNameIn = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm");
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 XML to a stream with no binary data
// For the demo, keep the XML output file size small by skipping the pixel data
DicomDataSetSaveXmlFlags xmlFlags =
DicomDataSetSaveXmlFlags.IgnoreBinaryData |
DicomDataSetSaveXmlFlags.TrimWhiteSpace |
DicomDataSetSaveXmlFlags.TagWithCommas;
Stream stream = new MemoryStream();
ds.SaveXml(stream, xmlFlags);
// Display contents of stream
stream.Flush();
stream.Position = 0;
StreamReader sr = new StreamReader(stream);
string xmlString = sr.ReadToEnd();
MessageBox.Show(xmlString, "xml version of " + dicomFileNameIn);
// Now reload the XML file from the stream.
// Note that there will not be an image because we skipped the pixel data in the save
stream.Seek(0, SeekOrigin.Begin);
//stream.Position = 0;
ds.LoadXml(stream, DicomDataSetLoadXmlFlags.None);
ds.Save(dicomFileNameOut, DicomDataSetSaveFlags.None);
DicomEngine.Shutdown();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Imports Leadtools.Dicom
Imports Leadtools.Dicom.Common
Imports Leadtools.Dicom.Common.Extensions
Imports Leadtools.Dicom.Common.Linq
Imports Leadtools.Dicom.Common.Linq.BasicDirectory
Imports Leadtools
Imports Leadtools.Dicom.Common.DataTypes
Public Sub LoadXmlExample2()
Dim dicomFileNameIn As String = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")
Dim xmlFileNameOut As String = Path.Combine(LEAD_VARS.ImagesDir, "test.xml")
' Initialize DICOM engine
DicomEngine.Startup()
Dim ds As DicomDataSet = New DicomDataSet()
' Load an existing DICOM file
ds.Load(dicomFileNameIn, DicomDataSetLoadFlags.None)
' Save as XML with no binary data
' For the demo, keep the XML output file size small by skipping the pixel data
Dim xmlFlags As DicomDataSetSaveXmlFlags = DicomDataSetSaveXmlFlags.IgnoreBinaryData Or DicomDataSetSaveXmlFlags.TrimWhiteSpace Or DicomDataSetSaveXmlFlags.TagWithCommas
ds.SaveXml(xmlFileNameOut, xmlFlags)
' Now reload the XML file.
' Note that there will not be an image because we skipped the pixel data in the save
ds.LoadXml(xmlFileNameOut, DicomDataSetLoadXmlFlags.None)
DicomEngine.Shutdown()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
LoadXml(DicomDataSet,String,DicomDataSetLoadXmlFlags) Method
LoadXml(DicomDataSet,Stream,DicomDataSetLoadXmlFlags) Method
SaveXml(DicomDataSet,String,DicomDataSetSaveXmlFlags,SaveXmlCallback) Method
SaveXml(DicomDataSet,Stream,DicomDataSetSaveXmlFlags,SaveXmlCallback) Method
SaveXml(DicomDataSet,String,DicomDataSetSaveXmlFlags) Method
SaveXml(DicomDataSet,Stream,DicomDataSetSaveXmlFlags) Method
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.