Medical Imaging Interaction Toolkit  2023.04.00
Medical Imaging Interaction Toolkit
mitk::DICOMTagPath Class Reference

Class is used to identify (nested) attributes in a DICOM dataset. In contrast to the class DICOMTag, which only specifies one specific tag, the tag path can identify nested attributes (like items in a DICOM sequence). In addition you may also specify wildcards for the selection index or complete elements of the path. More...

#include <mitkDICOMTagPath.h>

Collaboration diagram for mitk::DICOMTagPath:

Classes

struct  NodeInfo
 

Public Types

typedef int ItemSelectionIndex
 
typedef std::vector< NodeInfoNodeInfoVectorType
 
typedef NodeInfoVectorType::size_type PathIndexType
 

Public Member Functions

bool IsEmpty () const
 
bool IsExplicit () const
 
bool HasItemSelectionWildcardsOnly () const
 
PathIndexType Size () const
 
PathIndexType AddNode (const NodeInfo &newNode)
 
const NodeInfoGetNode (const PathIndexType &index) const
 
NodeInfoGetNode (const PathIndexType &index)
 
NodeInfoGetFirstNode ()
 
const NodeInfoGetFirstNode () const
 
NodeInfoGetLastNode ()
 
const NodeInfoGetLastNode () const
 
const NodeInfoVectorTypeGetNodes () const
 
std::string ToStr () const
 
DICOMTagPathFromStr (const std::string &pathStr)
 
bool operator== (const DICOMTagPath &path) const
 
bool operator< (const DICOMTagPath &right) const
 
bool Equals (const DICOMTagPath &path) const
 
DICOMTagPathoperator= (const DICOMTagPath &path)
 
DICOMTagPathAddAnyElement ()
 
DICOMTagPathAddElement (unsigned int group, unsigned int element)
 
DICOMTagPathAddAnySelection (unsigned int group, unsigned int element)
 
DICOMTagPathAddSelection (unsigned int group, unsigned int element, ItemSelectionIndex index)
 
 DICOMTagPath ()
 
 DICOMTagPath (const DICOMTagPath &path)
 
 DICOMTagPath (const DICOMTag &tag)
 
 DICOMTagPath (unsigned int group, unsigned int element)
 
virtual ~DICOMTagPath ()
 
virtual void Reset ()
 

Static Protected Member Functions

static bool DICOMTagPathesMatch (const DICOMTagPath &left, const DICOMTagPath &right)
 

Protected Attributes

NodeInfoVectorType m_NodeInfos
 

Detailed Description

Class is used to identify (nested) attributes in a DICOM dataset. In contrast to the class DICOMTag, which only specifies one specific tag, the tag path can identify nested attributes (like items in a DICOM sequence). In addition you may also specify wildcards for the selection index or complete elements of the path.

Remarks
If you want to keep the DICOMTagPath compatible to the dcmtk search path format, you may not use element wild cards (this IsExplicit() or HasItemSelectionWildcardsOnly() must return true).

Definition at line 34 of file mitkDICOMTagPath.h.

Member Typedef Documentation

◆ ItemSelectionIndex

Definition at line 37 of file mitkDICOMTagPath.h.

◆ NodeInfoVectorType

Definition at line 61 of file mitkDICOMTagPath.h.

◆ PathIndexType

typedef NodeInfoVectorType::size_type mitk::DICOMTagPath::PathIndexType

Definition at line 62 of file mitkDICOMTagPath.h.

Constructor & Destructor Documentation

◆ DICOMTagPath() [1/4]

mitk::DICOMTagPath::DICOMTagPath ( )

◆ DICOMTagPath() [2/4]

mitk::DICOMTagPath::DICOMTagPath ( const DICOMTagPath path)

◆ DICOMTagPath() [3/4]

mitk::DICOMTagPath::DICOMTagPath ( const DICOMTag tag)

◆ DICOMTagPath() [4/4]

mitk::DICOMTagPath::DICOMTagPath ( unsigned int  group,
unsigned int  element 
)
explicit

◆ ~DICOMTagPath()

virtual mitk::DICOMTagPath::~DICOMTagPath ( )
virtual

Member Function Documentation

◆ AddAnyElement()

DICOMTagPath& mitk::DICOMTagPath::AddAnyElement ( )

◆ AddAnySelection()

DICOMTagPath& mitk::DICOMTagPath::AddAnySelection ( unsigned int  group,
unsigned int  element 
)

◆ AddElement()

DICOMTagPath& mitk::DICOMTagPath::AddElement ( unsigned int  group,
unsigned int  element 
)

◆ AddNode()

PathIndexType mitk::DICOMTagPath::AddNode ( const NodeInfo newNode)

Adds a new node to the end of the path.

Parameters
[in]newNodeReference to the node that should be added.
Returns
Returns the index of the newly added node.

◆ AddSelection()

DICOMTagPath& mitk::DICOMTagPath::AddSelection ( unsigned int  group,
unsigned int  element,
ItemSelectionIndex  index 
)

◆ DICOMTagPathesMatch()

static bool mitk::DICOMTagPath::DICOMTagPathesMatch ( const DICOMTagPath left,
const DICOMTagPath right 
)
staticprotected

◆ Equals()

bool mitk::DICOMTagPath::Equals ( const DICOMTagPath path) const

Checks if to DICOMTagPathes are specify the same node. Hence all wildcards will be processed.
E.G.: "item1/child1/grandChild2" == ".//item1//grandChild2" is true.

Remarks
If you want to check if two paths are "truly" equal and not only equal in terms of pointing to the same node, use the member function Equals()

◆ FromStr()

DICOMTagPath& mitk::DICOMTagPath::FromStr ( const std::string &  pathStr)

◆ GetFirstNode() [1/2]

NodeInfo& mitk::DICOMTagPath::GetFirstNode ( )

Function returns the node info of the first path node within the DICOMTagPath.

Precondition
DICOMTagPath must not be empty.
Returns
Info of the first path node. If the path is empty, an InvalidPathNode exception will be thrown.

◆ GetFirstNode() [2/2]

const NodeInfo& mitk::DICOMTagPath::GetFirstNode ( ) const

Function returns the node info of the first path node within the DICOMTagPath.

Precondition
DICOMTagPath must not be empty.
Returns
Info of the first path node. If the path is empty, an InvalidPathNode exception will be thrown.

◆ GetLastNode() [1/2]

NodeInfo& mitk::DICOMTagPath::GetLastNode ( )

Function returns the node info of the last path node within the DICOMTagPath.

Precondition
DICOMTagPath must not be empty.
Returns
Info of the first path node. If the path is empty, an InvalidPathNode exception will be thrown.

◆ GetLastNode() [2/2]

const NodeInfo& mitk::DICOMTagPath::GetLastNode ( ) const

Function returns the node info of the last path node within the DICOMTagPath.

Precondition
DICOMTagPath must not be empty.
Returns
Info of the first path node. If the path is empty, an InvalidPathNode exception will be thrown.

◆ GetNode() [1/2]

NodeInfo& mitk::DICOMTagPath::GetNode ( const PathIndexType index)

Function returns the node info of a path node specified by the index within the DICOMTagPath.

Precondition
Passed index must not be out of bound.
Parameters
[in]indexIndex of the node whose info should be retrieved.
Returns
Info of the specified path node. If the index is out of bound an InvalidPathNode exception will be thrown.

◆ GetNode() [2/2]

const NodeInfo& mitk::DICOMTagPath::GetNode ( const PathIndexType index) const

Function returns the node info of a path node specified by the index within the DICOMTagPath.

Precondition
Passed index must not be out of bound.
Parameters
[in]indexIndex of the node whose info should be retrieved.
Returns
Info of the specified path node. If the index is out of bound an InvalidPathNode exception will be thrown.

◆ GetNodes()

const NodeInfoVectorType& mitk::DICOMTagPath::GetNodes ( ) const

◆ HasItemSelectionWildcardsOnly()

bool mitk::DICOMTagPath::HasItemSelectionWildcardsOnly ( ) const

Returns if the path has any nodes with item selection wild cards ([*]).

◆ IsEmpty()

bool mitk::DICOMTagPath::IsEmpty ( ) const

Returns if the DICOMTagPath is empty.

◆ IsExplicit()

bool mitk::DICOMTagPath::IsExplicit ( ) const

Returns if the path is explicit (has no wildcards).

◆ operator<()

bool mitk::DICOMTagPath::operator< ( const DICOMTagPath right) const

Operation equals like comparing the ToStr() results with operator <.

◆ operator=()

DICOMTagPath& mitk::DICOMTagPath::operator= ( const DICOMTagPath path)

◆ operator==()

bool mitk::DICOMTagPath::operator== ( const DICOMTagPath path) const

Compares two DICOMTagPaths for real equality. So its a string compare of their string conversion

◆ Reset()

virtual void mitk::DICOMTagPath::Reset ( )
virtual

◆ Size()

PathIndexType mitk::DICOMTagPath::Size ( ) const

Number of path nodes the DICOMTagPath contains.

◆ ToStr()

std::string mitk::DICOMTagPath::ToStr ( ) const

Member Data Documentation

◆ m_NodeInfos

NodeInfoVectorType mitk::DICOMTagPath::m_NodeInfos
protected

Definition at line 150 of file mitkDICOMTagPath.h.


The documentation for this class was generated from the following file: