Imports Leadtools
Imports Leadtools.Dicom
Public Sub DicomDIRSample()
'Make sure to initialize the DICOM engine, this needs to be done only once
DicomEngine.Startup()
Dim dicomDIR As DicomDataSet = New DicomDataSet()
Using (dicomDIR)
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 Or DicomDataSetFlags.LittleEndian Or DicomDataSetFlags.MetaHeaderPresent))
'Insert a patient level key
Dim patientKey As DicomElement = dicomDIR.InsertKey(Nothing, DicomDirKeyType.Patient, True)
'Insert a study key under the patient key
Dim studyKey As DicomElement = dicomDIR.InsertKey(patientKey, DicomDirKeyType.Study, True)
'Now insert three series keys under the study key
Dim seriesKey As DicomElement = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, True)
seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, True)
seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, True)
Dim key As DicomElement = dicomDIR.GetRootKey(seriesKey)
'Get the key value, You can also call GetKeyValuePtr
Dim keyValue As DicomDirKeyType = 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(Nothing, DicomDirKeyType.Series, False)
Debug.Assert(key Is Nothing)
key = dicomDIR.FindLastKey(Nothing, DicomDirKeyType.Series, False)
Debug.Assert(key Is Nothing)
key = dicomDIR.FindPreviousKey(Nothing, False)
Debug.Assert(key Is Nothing)
key = dicomDIR.FindNextKey(Nothing, False)
Debug.Assert(key Is Nothing)
End Using
DicomEngine.Shutdown()
End Sub
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();
}
using Leadtools.Dicom.Constants;
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();
}