Error processing SSI file
Leadtools.Dicom.Common

Show in webframe

BulkDataUri Property (SaveXmlData)






Gets or sets the bulk data URI that is about to be written.
Syntax
public string BulkDataUri {get; set;}
'Declaration
 
Public Property BulkDataUri As String
'Usage
 
Dim instance As SaveXmlData
Dim value As String
 
instance.BulkDataUri = value
 
value = instance.BulkDataUri
public:
property String^ BulkDataUri {
   String^ get();
   void set (    String^ value);
}

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.

Copy Code  
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

<TestMethod()> _
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
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;

[TestMethod]
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";
}
Requirements

Target Platforms

See Also

Reference

SaveXmlData Class
SaveXmlData Members

Error processing SSI file
   Leadtools.Dicom.Common requires a Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features