Gets or sets the bulk data URI that is about to be written.
public string BulkDataUri {get; set;}
Public Property BulkDataUri As String
The bulk data URI that is about to be written.
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.
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.
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
Products |
Support |
Feedback: BulkDataUri Property (SaveXmlData) - Leadtools.Dicom.Common |
Introduction |
Help Version 19.0.2017.6.23
|
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.