public void Load(
IntPtr buffer,
long bufferSize,
DicomDataSetFlags flags
)
public:
void Load(
IntPtr buffer,
int64 bufferSize,
DicomDataSetFlags flags
)
buffer
Pointer to a buffer that contains the Data Set to be loaded.
bufferSize
Size of the buffer, in bytes.
flags
Meta-header flags and Transfer Syntax flags that indicate the Data Set characteristics to use when loading the Data Set.
Unless you pass the DicomDataSetLoadFlags.LoadAndClose flag, This method DOES NOT make a copy of the memory pointed to by [buffer](" id="bufferparameterlink" class="popuplink.html). Therefore, DO NOT free this memory as long as you are using the Data Set referenced by this instance of the class, or until you have reset the Data Set by calling Reset. Once you have called Reset, you can repopulate the Data Set by calling Initialize, Load, or Load.
If you know certain characteristics of the Data Set in memory, you can set those in flags. Any characteristic that you do not set will be automatically determined. For example, if you know that the Meta-header is present, but you do not know the byte order, or whether the Value Representation is Implicit or Explicit, you can set only DicomDataSetFlags.MetaHeaderPresent in flags. During loading, LEADTOOLS will determine the byte order and whether the byte order is Implicit or Explicit.
If you do not know any of the characteristics of the Data Set in memory, set flags to DicomDataSetFlags.None and LEADTOOLS will automatically determine all the Data Set characteristics and load the Data Set accordingly.
using Leadtools;
using Leadtools.Dicom;
public void LoadEnumerateSample()
{
string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image3.dcm");
//Make sure to initialize the DICOM engine, this needs to be done only once
//In the whole application
DicomEngine.Startup();
using (DicomDataSet ds = new DicomDataSet())
{
//Load DICOM File
ds.Load(dicomFileName, DicomDataSetLoadFlags.None);
//Insert patient name element, if it doesn't already exist
DicomElement element = ds.FindFirstElement(null, DicomTag.PatientName, false);
if (element == null)
{
element = ds.InsertElement(null, false, DicomTag.PatientName, DicomVRType.PN, false, 0);
}
//The dataset should include the patient name element or an error occurred
element = ds.FindLastElement(null, DicomTag.PatientName, false);
Debug.Assert(element != null);
//There can be only one patient element in the root level
element = ds.FindPreviousElement(null, false);
Debug.Assert(element == null);
element = ds.FindNextElement(null, false);
Debug.Assert(element == null);
element = ds.FindFirstElement(null, DicomTag.PatientName, false);
//Since the patient name element is in the root level,
//GetRootElement will return the same element.
DicomElement element1 = ds.GetRootElement(element);
Debug.Assert((element1.Tag == element.Tag), "GetRootElement should return same element");
//Since the patient name element has no parent then GetParentElement will return null
element1 = ds.GetParentElement(element);
Debug.Assert(element1 == null, "GetParentElement should return null");
//Since the patient name element has no children then GetChildElement will return null
element1 = ds.GetChildElement(element, false);
Debug.Assert(element1 == null, "GetChildElement should return null");
element1 = ds.GetFirstElement(element, false, false);
Debug.Assert(element1 != null, "GetFirstElement Can't return null in this case");
element1 = ds.GetLastElement(element, false, false);
Debug.Assert(element1 != null, "GetLastElement Can't return null in this case");
element1 = ds.GetPreviousElement(element, false, true);
DicomElement element2 = ds.GetNextElement(element, false, true);
Debug.Assert(ds.GetElementLevel(element) == 0);
Debug.Assert(ds.ExistsElement(element));
Debug.Assert(ds.IsVolatileElement(element) == false);
//Patient Name is not the only element in this level
Debug.Assert((element1 != null) && (element2 != null));
//Delete the patient name element
ds.DeleteElement(element);
}
DicomEngine.Shutdown();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
Load(String,DicomDataSetLoadFlags) 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