BulkDataUri Property

Summary

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

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

Property Value

The bulk data URI that is about to be written.

Remarks

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

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 URI to a custom URI.

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 SaveXmlBulkDataUriExample() 
{ 
   uriCounter = 0; 
   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.BulkDataUri; 
   ds.SaveXml(xmlFileNameOut, xmlFlags, MyCustomUriCallback); 
 
   DicomEngine.Shutdown(); 
} 
 
public static int uriCounter = 0; 
public static string MyGenerateUri() 
{ 
   uriCounter++; 
   return string.Format(@"http://MySampleUri/{0}", uriIndex); 
} 
 
public static bool MyCustomUriCallback(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 = MyGenerateUri(); 
   } 
 
   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 SaveXmlBulkDataUriExample() 
   uriCounter = 0 
   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.BulkDataUri 
   ds.SaveXml(xmlFileNameOut, xmlFlags, AddressOf MyCustomUriCallback) 
 
   DicomEngine.Shutdown() 
End Sub 
 
Public Shared uriCounter As Integer = 0 
Public Shared Function MyGenerateUri() As String 
   uriCounter += 1 
   Return String.Format("http://MySampleUri/{0}", uriIndex) 
End Function 
 
Public Shared Function MyCustomUriCallback(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 = MyGenerateUri() 
   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