public void LoadEnumerateSample() { string dicomFileName = LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dic"; //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(); } |