←Select platform

InsertKey(DicomElement,string,bool) Method

Summary
Inserts a new key element in the Dicom Dir Data Set.
Syntax
C#
Objective-C
C++/CLI
Java
public DicomElement InsertKey( 
   DicomElement parent, 
   string key, 
   bool optional 
) 
- (nullable LTDicomElement *)insertKey:(LTDicomElement *)parent stringKey:(NSString *)key optional:(BOOL)optional; 
public DicomElement insertKey(DicomElement parent, String key, boolean optional) 
public: 
DicomElement^ InsertKey(  
   DicomElement^ parent, 
   String^ key, 
   bool optional 
)  

Parameters

parent
A key element in the Data Set. The new key element will be inserted as a child of this key element.

key
The type of key element to insert.

optional
true to insert all parts of the specified key element; false to insert only the mandatory parts of the specified key element.

Return Value

The newly inserted item.

Remarks

The newly inserted key element is inserted as a child of parent.

Example
C#
using Leadtools; 
using Leadtools.Dicom; 
 
 
public void DicomDIRSample() 
{ 
   //Make sure to initialize the DICOM engine, this needs to be done only once  
   DicomEngine.Startup(); 
   using (DicomDataSet dicomDIR = new DicomDataSet()) 
   { 
      dicomDIR.Reset(); 
      //Initialize the dataset as a DICOMDIR class 
      dicomDIR.Initialize(DicomClassType.BasicDirectory, DicomDataSetInitializeType.ExplicitVRLittleEndian); 
      Debug.Assert(dicomDIR.InformationClass == DicomClassType.BasicDirectory); 
      Debug.Assert(dicomDIR.InformationFlags == (DicomDataSetFlags.ExplicitVR | DicomDataSetFlags.LittleEndian | DicomDataSetFlags.MetaHeaderPresent)); 
      //Insert a patient level key 
      DicomElement patientKey = dicomDIR.InsertKey(null, DicomDirKeyType.Patient, true); 
      //Insert a study key under the patient key 
      DicomElement studyKey = dicomDIR.InsertKey(patientKey, DicomDirKeyType.Study, true); 
      //Now insert three series keys under the study key 
      DicomElement seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, true); 
      seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, true); 
      seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, true); 
      DicomElement key = dicomDIR.GetRootKey(seriesKey); 
      //Get the key value, You can also call GetKeyValuePtr 
      DicomDirKeyType keyValue = dicomDIR.GetKeyValue(key); 
      //The root key for the series key should be patient 
      Debug.Assert(keyValue == DicomDirKeyType.Patient, "The root key for the series key should be patient in this case"); 
      //Get the parent key for the series, it should be study 
      key = dicomDIR.GetParentKey(seriesKey); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Study, "The parent key for the series key should be study in this case"); 
      //The child for the study key should be series 
      key = dicomDIR.GetChildKey(studyKey); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Series, "The child for the study key should be series"); 
      //The first key should be patient, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetFirstKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Patient); 
      //The last key should be series, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetLastKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Series); 
      //The key before the study key should be patient, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetPreviousKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Patient); 
      //The key after the study key should be series, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetNextKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Series); 
      //If we delete the study key, the series keys under it will get deleted too 
      dicomDIR.DeleteKey(studyKey); 
      key = dicomDIR.FindFirstKey(null, DicomDirKeyType.Series, false); 
      Debug.Assert(key == null); 
      key = dicomDIR.FindLastKey(null, DicomDirKeyType.Series, false); 
      Debug.Assert(key == null); 
      key = dicomDIR.FindPreviousKey(null, false); 
      Debug.Assert(key == null); 
      key = dicomDIR.FindNextKey(null, false); 
      Debug.Assert(key == null); 
   } 
   DicomEngine.Shutdown(); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.8.20
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.