BulkDataUuid Property

Summary

Gets or sets the bulk data UUID that is about to be written.

Syntax
C#
VB
C++
public string BulkDataUuid { get; set; } 
Public Property BulkDataUuid As String 
public: 
property String^ BulkDataUuid { 
   String^ get(); 
   void set (    String^ ); 
} 

Property Value

The bulk data UUID that is about to be written.

Remarks

If DicomDataSetSaveXmlFlags.BulkDataUuid is passed to SaveXml, a dummy UUID is generated for each binary data element that is about to be written, and is returned in BulkDataUuid. This can be changed to a custom UUID by setting the BulkDataUuid to the desired UUID.

Example

This example will load a sample DICOM data set, then save it in the Native DICOM Model XML format specified in PS3.19.A.1 of the DICOM specification, changing each BulkData uuid attribute to a custom UUID.

C#
VB
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 static void SaveXmlBulkDataUuidExample() 
{ 
   string dicomFileNameIn = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm"); 
   string xmlFileNameOut = Path.Combine(LEAD_VARS.ImagesDir, "test.xml"); 
 
   DicomEngine.Startup(); 
 
   DicomDataSet ds = new DicomDataSet(); 
 
   // Load an existing DICOM file 
   ds.Load(dicomFileNameIn, DicomDataSetLoadFlags.None); 
 
   // Save as NativeDicomModel 
   const DicomDataSetSaveXmlFlags xmlFlags = 
      DicomDataSetSaveXmlFlags.NativeDicomModel | 
      DicomDataSetSaveXmlFlags.TrimWhiteSpace | 
      DicomDataSetSaveXmlFlags.BulkDataUuid; 
   ds.SaveXml(xmlFileNameOut, xmlFlags, MyCustomUuidCallback); 
 
   DicomEngine.Shutdown(); 
} 
 
 
public static bool MyCustomUuidCallback(SaveXmlData d) 
{ 
   if (d.DicomElement == null) 
      return true; 
 
   DicomVRType vr = d.DicomElement.VR; 
   bool isBinary = ( 
                      vr == DicomVRType.OB || 
                      vr == DicomVRType.OD || 
                      vr == DicomVRType.OF || 
                      vr == DicomVRType.OW || 
                      vr == DicomVRType.UN 
                   ); 
   if (isBinary) 
   { 
      // Set a URI 
      d.BulkDataUri = Guid.NewGuid().ToString(); 
   } 
 
   return true; 
} 
 
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 Shared Sub SaveXmlBulkDataUuidExample() 
   Dim dicomFileNameIn As String = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm") 
   Dim xmlFileNameOut As String = Path.Combine(LEAD_VARS.ImagesDir, "test.xml") 
 
   DicomEngine.Startup() 
 
   Dim ds As New DicomDataSet() 
 
   ' Load an existing DICOM file 
   ds.Load(dicomFileNameIn, DicomDataSetLoadFlags.None) 
 
   ' Save as NativeDicomModel 
   Const xmlFlags As DicomDataSetSaveXmlFlags = DicomDataSetSaveXmlFlags.NativeDicomModel Or DicomDataSetSaveXmlFlags.TrimWhiteSpace Or DicomDataSetSaveXmlFlags.BulkDataUuid 
   ds.SaveXml(xmlFileNameOut, xmlFlags, AddressOf MyCustomUuidCallback) 
 
   DicomEngine.Shutdown() 
End Sub 
 
 
Public Shared Function MyCustomUuidCallback(ByVal d As SaveXmlData) As Boolean 
   If d.DicomElement Is Nothing Then 
      Return True 
   End If 
 
   Dim vr As DicomVRType = d.DicomElement.VR 
   Dim isBinary As Boolean = (vr = DicomVRType.OB OrElse vr = DicomVRType.OD OrElse vr = DicomVRType.OF OrElse vr = DicomVRType.OW OrElse vr = DicomVRType.UN) 
   If isBinary Then 
      ' Set a URI 
      d.BulkDataUri = Guid.NewGuid().ToString() 
   End If 
 
   Return True 
End Function 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

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

Leadtools.Dicom.Common Assembly