←Select platform

Offset Property

Summary

Gets the byte offset of the element from the beginning of the file

Syntax
C#
VB
C++
public long Offset { get; } 
Public ReadOnly Property Offset As Long 
public: 
property int64 Offset { 
   int64 get(); 
} 

Property Value

The byte offset of the element from the beginning of the file

Remarks

Depending on the transfer syntax and value representation, a DICOM Element is stored in a file as one of the following

  • Tag(4 bytes), VR(4 bytes), Value Length (4 bytes), Value
  • Tag(4 bytes), VR(2 bytes), Value Length (2 bytes), Value
  • Tag(4 bytes), Value Length (4 bytes), Value

The Offset property returns the byte offset for the DicomElement in the file. If you seek to this offset in the DICOM file, the next 4 bytes will be the Tag (group, element) of the DICOM element.

Example

This example displays information about each element in a DicomDataSet including: * Tag * Name * Offset * Value offset * Value length

C#
VB
using Leadtools; 
using Leadtools.Dicom; 
 
/// 
private void DicomDataSetOffsetTest(DicomDataSet ds) 
{ 
   DicomElement element = ds.GetFirstElement(null, false, true); 
   while (element != null) 
   { 
      DumpElementValue(element); 
      element = ds.GetNextElement(element, false, true); 
   } 
} 
 
private string GetElementString(DicomElement p) 
{ 
   if (p == null) 
      return string.Empty; 
   return string.Format("({0:X4},{1:X4})", p.Tag >> 0x10, p.Tag & 0xFFFF); 
} 
 
private string Truncate(string s, int length) 
{ 
   if (s.Length > length) 
      return s.Substring(0, length); 
   return s; 
} 
 
private void DumpElementValue(DicomElement element) 
{ 
   DicomTag tag = DicomTagTable.Instance.Find(element.Tag); 
   string name = string.Empty; 
   if (tag != null) 
   { 
      name = tag.Name; 
   } 
   Console.WriteLine(@"{0} {1,-30} 0x{2:X8} 0x{3:X8} {4}", 
      GetElementString(element), 
      Truncate(name, 30), 
      element.Offset, 
      element.ValueOffset, 
      element.ValueLength); 
} 
Imports Leadtools 
Imports Leadtools.Dicom 
 
''' 
Private Sub DicomDataSetOffsetTest(ByVal ds As DicomDataSet) 
   Dim element As DicomElement = ds.GetFirstElement(Nothing, False, True) 
   Do While element IsNot Nothing 
      DumpElementValue(element) 
      element = ds.GetNextElement(element, False, True) 
   Loop 
End Sub 
 
Private Sub DumpElementValue(ByVal element As DicomElement) 
   Dim tag As DicomTag = DicomTagTable.Instance.Find(element.Tag) 
   Dim name As String = String.Empty 
   If tag IsNot Nothing Then 
      name = tag.Name 
   End If 
   Console.WriteLine("{0} {1,-30} 0x{2:X8} 0x{3:X8} {4}", GetElementString(element), Truncate(name, 30), element.Offset, element.ValueOffset, element.ValueLength) 
End Sub 
 
Private Function GetElementString(ByVal p As DicomElement) As String 
   If p Is Nothing Then 
      Return String.Empty 
   End If 
   Return String.Format("({0:X4},{1:X4})", p.Tag >> &H10, p.Tag And &HFFFF) 
End Function 
 
Private Function Truncate(ByVal s As String, ByVal length As Integer) As String 
   If s.Length > length Then 
      Return s.Substring(0, length) 
   End If 
   Return s 
End Function 

Requirements

Target Platforms

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

Leadtools.Dicom Assembly