public enum ElementDataType public enum class ElementDataType | Value | Member | Description |
|---|---|---|
| 0 | None | The Input XML file element has an unknown value. |
| 1 | String | The Input XML file element is a string value. |
| 2 | Base64 | The Input XML file element is a Base64 encoded value |
| 4 | BinHex | The Input XML file element is a BinHex encoded value |
| 5 | BulkData | The Input XML file element is a Bulkdata encoded value |
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 engineDicomEngine.Startup();DicomDataSet ds = new DicomDataSet();// Load an existing DICOM fileds.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 fileDicomDataSetSaveXmlFlags xmlFlags =DicomDataSetSaveXmlFlags.IgnoreBinaryData |DicomDataSetSaveXmlFlags.TrimWhiteSpace |DicomDataSetSaveXmlFlags.TagWithCommas;ds.SaveXml(xmlFileNameOut, xmlFlags, new SaveXmlCallback(MySaveXmlCallback));// Use a LoadmlCallback to read the customized XML fileds.LoadXml(xmlFileNameOut, DicomDataSetLoadXmlFlags.None, new LoadXmlBeforeElementCallback(MyLoadXmlBeforeElementCallback), new LoadXmlAfterElementCallback(MyLoadXmlAfterElementCallback));// Save the result -- there will be no pixel datads.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";}
Leadtools.Dicom.Common.Extensions Namespace
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
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
