Medical Imaging Interaction Toolkit  2018.4.99-12ad79a3
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 ( )

Definition at line 361 of file mitkDICOMTagPath.cpp.

References Reset().

Referenced by DICOMTagPath(), and mitk::PropertyNameToDICOMTagPath().

◆ DICOMTagPath() [2/4]

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

Definition at line 367 of file mitkDICOMTagPath.cpp.

References DICOMTagPath().

◆ DICOMTagPath() [3/4]

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

Definition at line 373 of file mitkDICOMTagPath.cpp.

References mitk::DICOMTagPath::NodeInfo::Element, and m_NodeInfos.

◆ DICOMTagPath() [4/4]

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

Definition at line 378 of file mitkDICOMTagPath.cpp.

References m_NodeInfos, and ~DICOMTagPath().

◆ ~DICOMTagPath()

mitk::DICOMTagPath::~DICOMTagPath ( )
virtual

Definition at line 384 of file mitkDICOMTagPath.cpp.

References Reset().

Referenced by DICOMTagPath().

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 
)

Definition at line 295 of file mitkDICOMTagPath.cpp.

References mitk::DICOMTagPath::NodeInfo::Element, and m_NodeInfos.

Referenced by mitk::DICOMSegmentationConstants::ANATOMIC_REGION_CODE_MEANING_PATH(), mitk::DICOMSegmentationConstants::ANATOMIC_REGION_CODE_SCHEME_PATH(), mitk::DICOMSegmentationConstants::ANATOMIC_REGION_CODE_VALUE_PATH(), mitk::DICOMSegmentationConstants::ANATOMIC_REGION_SEQUENCE_PATH(), DcmPathToTagPath(), mitk::PropertyNameToDICOMTagPath(), mitk::DICOMSegmentationConstants::SEGMENT_ALGORITHM_TYPE_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_CATEGORY_CODE_MEANING_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_CATEGORY_CODE_SCHEME_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_CATEGORY_CODE_VALUE_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_LABEL_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_MODIFIER_CODE_MEANING_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_MODIFIER_CODE_SCHEME_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_MODIFIER_CODE_VALUE_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_NUMBER_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_SEQUENCE_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_TYPE_CODE_MEANING_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_TYPE_CODE_SCHEME_PATH(), mitk::DICOMSegmentationConstants::SEGMENT_TYPE_CODE_VALUE_PATH(), mitk::DICOMSegmentationConstants::SEGMENTED_PROPERTY_CATEGORY_SEQUENCE_PATH(), mitk::DICOMSegmentationConstants::SEGMENTED_PROPERTY_MODIFIER_SEQUENCE_PATH(), and mitk::DICOMSegmentationConstants::SEGMENTED_PROPERTY_TYPE_SEQUENCE_PATH().

◆ AddNode()

DICOMTagPath::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.

Definition at line 131 of file mitkDICOMTagPath.cpp.

References GetNode(), and m_NodeInfos.

Referenced by DcmPathToTagPath(), and Size().

◆ AddSelection()

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

◆ DICOMTagPathesMatch()

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

Definition at line 395 of file mitkDICOMTagPath.cpp.

References GetNodes().

Referenced by Equals(), and Reset().

◆ 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 to pathes are "truely" equal and not only equal in terms of pointing to the same node, use the member function Equals()

Definition at line 271 of file mitkDICOMTagPath.cpp.

References DICOMTagPathesMatch(), and operator=().

Referenced by mitk::GetPropertyByDICOMTagPath(), mitk::DICOMGenericImageFrameInfo::GetTagValueAsString(), and operator<().

◆ FromStr()

◆ 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.

Referenced by mitk::DICOMGDCMTagScanner::AddTagPath(), GetNode(), mitk::DICOMGDCMTagCache::GetTagValue(), and mitk::DICOMGDCMImageFrameInfo::GetTagValueAsString().

◆ GetFirstNode() [2/2]

const DICOMTagPath::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.

Definition at line 163 of file mitkDICOMTagPath.cpp.

References GetLastNode(), and GetNode().

◆ GetLastNode() [1/2]

DICOMTagPath::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.

Definition at line 177 of file mitkDICOMTagPath.cpp.

References GetNode(), GetNodes(), and Size().

Referenced by mitk::DICOMTagsOfInterestService::AddTagOfInterest(), DcmPathToTagPath(), GetFirstNode(), and GetLastNode().

◆ GetLastNode() [2/2]

const DICOMTagPath::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.

Definition at line 170 of file mitkDICOMTagPath.cpp.

References GetLastNode(), GetNode(), and Size().

◆ GetNode() [1/2]

const DICOMTagPath::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.

Definition at line 139 of file mitkDICOMTagPath.cpp.

References m_NodeInfos, mitkThrow, Size(), and ToStr().

Referenced by AddNode(), GetFirstNode(), and GetLastNode().

◆ GetNode() [2/2]

DICOMTagPath::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.

Definition at line 151 of file mitkDICOMTagPath.cpp.

References GetFirstNode(), m_NodeInfos, mitkThrow, Size(), and ToStr().

◆ GetNodes()

◆ HasItemSelectionWildcardsOnly()

bool mitk::DICOMTagPath::HasItemSelectionWildcardsOnly ( ) const

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

Definition at line 112 of file mitkDICOMTagPath.cpp.

References mitk::DICOMTagPath::NodeInfo::AnyElement, mitk::DICOMTagPath::NodeInfo::AnySelection, and m_NodeInfos.

Referenced by mitk::DICOMTagPathToDCMTKSearchPath(), and IsExplicit().

◆ IsEmpty()

bool mitk::DICOMTagPath::IsEmpty ( ) const

Returns if the DICOMTagPath is empty.

Definition at line 93 of file mitkDICOMTagPath.cpp.

References IsExplicit(), and m_NodeInfos.

Referenced by mitk::GetPropertyByDICOMTagPath().

◆ IsExplicit()

◆ operator<()

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

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

Definition at line 245 of file mitkDICOMTagPath.cpp.

References Equals(), and m_NodeInfos.

Referenced by operator==().

◆ operator=()

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

Definition at line 278 of file mitkDICOMTagPath.cpp.

References m_NodeInfos.

Referenced by Equals().

◆ operator==()

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

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

Definition at line 238 of file mitkDICOMTagPath.cpp.

References m_NodeInfos, and operator<().

Referenced by ToStr().

◆ Reset()

void mitk::DICOMTagPath::Reset ( )
virtual

Definition at line 388 of file mitkDICOMTagPath.cpp.

References DICOMTagPathesMatch(), and m_NodeInfos.

Referenced by DICOMTagPath(), and ~DICOMTagPath().

◆ Size()

◆ ToStr()

Member Data Documentation

◆ m_NodeInfos


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