- name
- The name of the file that contains the Data Set to be loaded.
- flags
- Meta-header flags and Transfer Syntax flags that indicate the file characteristics to use when loading the file.
Visual Basic (Declaration) | |
---|---|
Overloads Public Overridable Sub Load( _ ByVal name As String, _ ByVal flags As DicomDataSetLoadFlags _ ) |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As DicomDataSet Dim name As String Dim flags As DicomDataSetLoadFlags instance.Load(name, flags) |
C# | |
---|---|
public virtual void Load( string name, DicomDataSetLoadFlags flags ) |
C++/CLI | |
---|---|
public: virtual void Load( String^ name, DicomDataSetLoadFlags flags ) |
Parameters
- name
- The name of the file that contains the Data Set to be loaded.
- flags
- Meta-header flags and Transfer Syntax flags that indicate the file characteristics to use when loading the file.
This example will load a DICOM Dataset and enumerate all its elements.
Visual Basic | Copy Code |
---|---|
Public Sub LoadEnumerateSample() Dim dicomFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm" 'Make sure to initialize the DICOM engine, this needs to be done only once 'In the whole application DicomEngine.Startup() Dim ds As DicomDataSet = New DicomDataSet() Using (ds) 'Load DICOM File ds.Load(dicomFileName, DicomDataSetLoadFlags.None) 'Insert patient name element, if it doesn't already exist Dim element As DicomElement = ds.FindFirstElement(Nothing, DicomTag.PatientName, False) If element Is Nothing Then element = ds.InsertElement(Nothing, False, DicomTag.PatientName, DicomVRType.PN, False, 0) End If 'The dataset should include the patient name element or an error occurred element = ds.FindLastElement(Nothing, DicomTag.PatientName, False) Debug.Assert(Not element Is Nothing) 'There can be only one patient element in the root level element = ds.FindPreviousElement(Nothing, False) Debug.Assert(element Is Nothing) element = ds.FindNextElement(Nothing, False) Debug.Assert(element Is Nothing) element = ds.FindFirstElement(Nothing, DicomTag.PatientName, False) 'Since the patient name element is in the root level, 'GetRootElement will return the same element. Dim element1 As DicomElement = 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 Is Nothing, "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 Is Nothing, "GetChildElement should return null") element1 = ds.GetFirstElement(element, False, False) Debug.Assert(Not element1 Is Nothing, "GetFirstElement Can't return null in this case") element1 = ds.GetLastElement(element, False, False) Debug.Assert(Not element1 Is Nothing, "GetLastElement Can't return null in this case") element1 = ds.GetPreviousElement(element, False, True) Dim element2 As DicomElement = 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((Not element1 Is Nothing) AndAlso (Not element2 Is Nothing)) 'Delete the patient name element ds.DeleteElement(element) End Using DicomEngine.Shutdown() End Sub |
C# | Copy Code |
---|---|
public void LoadEnumerateSample() { string dicomFileName = LeadtoolsExamples.Common.ImagesPath.Path + "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(); } |
SilverlightCSharp | Copy Code |
---|---|
public void LoadEnumerateSample(Stream dicomStream) { //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(dicomStream, 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(); } |
SilverlightVB | Copy Code |
---|---|
Public Sub LoadEnumerateSample(ByVal dicomStream As Stream) 'Make sure to initialize the DICOM engine, this needs to be done only once 'In the whole application DicomEngine.Startup() Using ds As DicomDataSet = New DicomDataSet() 'Load DICOM File ds.Load(dicomStream, DicomDataSetLoadFlags.None) 'Insert patient name element, if it doesn't already exist Dim element As DicomElement = ds.FindFirstElement(Nothing, DicomTag.PatientName, False) If element Is Nothing Then element = ds.InsertElement(Nothing, False, DicomTag.PatientName, DicomVRType.PN, False, 0) End If 'The dataset should include the patient name element or an error occurred element = ds.FindLastElement(Nothing, DicomTag.PatientName, False) Debug.Assert(Not element Is Nothing) 'There can be only one patient element in the root level element = ds.FindPreviousElement(Nothing, False) Debug.Assert(element Is Nothing) element = ds.FindNextElement(Nothing, False) Debug.Assert(element Is Nothing) element = ds.FindFirstElement(Nothing, DicomTag.PatientName, False) 'Since the patient name element is in the root level, 'GetRootElement will return the same element. Dim element1 As DicomElement = 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 Is Nothing, "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 Is Nothing, "GetChildElement should return null") element1 = ds.GetFirstElement(element, False, False) Debug.Assert(Not element1 Is Nothing, "GetFirstElement Can't return null in this case") element1 = ds.GetLastElement(element, False, False) Debug.Assert(Not element1 Is Nothing, "GetLastElement Can't return null in this case") element1 = ds.GetPreviousElement(element, False, True) Dim element2 As DicomElement = 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((Not element1 Is Nothing) AndAlso (Not element2 Is Nothing)) 'Delete the patient name element ds.DeleteElement(element) End Using DicomEngine.Shutdown() End Sub |
If you do not know any of the characteristics of the file, set flags to DicomDataSetLoadFlags.None and LEADTOOLS will automatically determine all the file characteristics and load the file accordingly.
If DicomDataSetLoadFlags.LoadAndClose is not included in flags, the file will remain open until the object is destructed, or one of the following methods is called: Leadtools.Dicom.DicomDataSet.Reset, Leadtools.Dicom.DicomDataSet.Initialize, or Load(String,DicomDataSetLoadFlags) (again). If LoadAndClose is used, for large images, this mage slow performance, however, the file handle will be released. If set to None, large images will load quickly, and image travers can begin immediately. However, until the file handle is released, nothing can be done to the image.
To load a Data Set from memory, call Load(IntPtr,Int64,DicomDataSetFlags).
Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)