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:\LEADTOOLS22\Resources\Images";
}
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