SaveXml(DicomDataSet,Stream,DicomDataSetSaveXmlFlags,SaveXmlCallback) Method

Summary
Saves the contents of the Data Set as an XML output stream.
Syntax
C#
C++/CLI
public static void SaveXml( 
   this DicomDataSet ds, 
   Stream stream, 
   DicomDataSetSaveXmlFlags xmlFlags, 
   SaveXmlCallback cb 
) 
[ExtensionAttribute()] 
public: 
static void SaveXml(  
   DicomDataSet^ ds, 
   Stream^ stream, 
   DicomDataSetSaveXmlFlags xmlFlags, 
   SaveXmlCallback^ cb 
)  

Parameters

ds
The Data Set being saved

stream
The stream where the output XML file is written

xmlFlags
Flags that affect how binary data and other information is saved in the XML output file

cb
Optional callback that allows you to change the element names, attributes, and values of the XML output file

Remarks

Use this method to export a DicomDataSet as an XML stream. By default, all binary data is written using Base64 encoding, but this behavior can be modified by passing appropriate DicomDataSetSaveXmlFlags

Pass the DicomDataSetSaveXmlFlags.NativeDicomModel flag to save to the 'Native DICOM Model' XML format described in PS3.19.A.1 of the DICOM Specification. One of the following flags can be used, together with the DicomDataSetSaveXmlFlags.NativeDicomModel flag to control how binary data is written. If DicomDataSetSaveXmlFlags.NativeDicomModel, is not also included, all of the following flags are ignored. Callers should only pass one of the three flags. If more than one of the flags is passed, precedence is given in the order that they appear below.

  • InlineBinary
  • BulkDataUri
  • BulkDataUuid

If none of these three flags are passed, the default behavior is BulkDataUuid. The output XML file can be customized by passing the optional SaveXmlCallback delegate. For more information on this, see the documentation and example for SaveXmlCallback.

Example
C#
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 LoadXmlExample2() 
{ 
   string dicomFileNameIn = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "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(); 
   Console.WriteLine(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:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.1.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom.Common Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.