ElementDataType Enumeration

Summary
Describes the type of XML element data that is being processed. When calling LoadXml and passing a LoadXmlBeforeElementCallback delegate, the LoadXmlBeforeElementCallback is called for each element in the XML input file, and a LoadXmlBeforeElementData member is returned as part of the delegate. The ElementDataType enumeration is used in the Encoding member of LoadXmlBeforeElementData. For an example, refer to SaveXmlCallback.
Syntax
C#
C++/CLI
public enum ElementDataType   
public enum class ElementDataType   
Members
ValueMemberDescription
0None The Input XML file element has an unknown value.
1String The Input XML file element is a string value.
2Base64 The Input XML file element is a Base64 encoded value
4BinHex The Input XML file element is a BinHex encoded value
5BulkData The Input XML file element is a Bulkdata encoded value
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 SaveXmlCallbackExample() 
{ 
   string dicomFileNameIn = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image3.dcm"); 
   string xmlFileNameOut = Path.Combine(LEAD_VARS.ImagesDir, "test.xml"); 
   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 file with no binary data 
   // For the demo, keep the XML output file size small by skipping the pixel data 
   // Use the SaveXmlCallback delegate to customize the XML file 
   DicomDataSetSaveXmlFlags xmlFlags = 
      DicomDataSetSaveXmlFlags.IgnoreBinaryData | 
      DicomDataSetSaveXmlFlags.TrimWhiteSpace | 
      DicomDataSetSaveXmlFlags.TagWithCommas; 
 
   ds.SaveXml(xmlFileNameOut, xmlFlags, new SaveXmlCallback(MySaveXmlCallback)); 
 
   // Use a LoadmlCallback to read the customized XML file 
   ds.LoadXml(xmlFileNameOut, DicomDataSetLoadXmlFlags.None, new LoadXmlBeforeElementCallback(MyLoadXmlBeforeElementCallback), new LoadXmlAfterElementCallback(MyLoadXmlAfterElementCallback)); 
 
   // Save the result -- there will be no pixel data 
   ds.Save(dicomFileNameOut, DicomDataSetSaveFlags.None); 
 
   DicomEngine.Shutdown(); 
} 
 
private static bool MySaveXmlCallback(SaveXmlData data) 
{ 
   //string sTag = data.attributes["tag"]; 
   //if (sTag.StartsWith("0008")) 
   //   return false; 
   if (data.NodeType == DicomXmlNodeType.Comment) 
   { 
      data.Comment = "COMMENT: customized xml file using the SaveXmlCallback"; 
      return false; 
   } 
 
   if (data.ElementName == "dataset") 
   { 
      data.Attributes.Add("new_attribute", "some_value"); 
   } 
   else if (data.ElementName == "element") 
   { 
      data.ElementName = "element_newname"; 
      string sTagValue = data.Attributes["tag"]; 
      data.Attributes.Remove("tag"); 
      data.Attributes.Add("tag_newname", sTagValue); 
   } 
   return true; 
} 
 
private static bool MyLoadXmlBeforeElementCallback(LoadXmlBeforeElementData data) 
{ 
   string sTagValue = data.Attributes["tag_newname"]; 
   long tag = 0; 
   sTagValue = sTagValue.Replace(",", string.Empty); 
   if (long.TryParse(sTagValue, System.Globalization.NumberStyles.HexNumber, null, out tag)) 
      data.Tag = tag; 
   return true; 
} 
 
private static void MyLoadXmlAfterElementCallback(LoadXmlAfterElementData 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:\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.