Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkDICOMSortByTag.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkDICOMSortByTag_h
14 #define mitkDICOMSortByTag_h
15 
16 #include "mitkDICOMSortCriterion.h"
17 
18 namespace mitk
19 {
20 
34 {
35  public:
36 
39  mitkNewMacro2Param( DICOMSortByTag, const DICOMTag&, DICOMSortCriterion::Pointer );
40 
41  DICOMTagList GetTagsOfInterest() const override;
42  bool IsLeftBeforeRight(const mitk::DICOMDatasetAccess* left, const mitk::DICOMDatasetAccess* right) const override;
43 
44  double NumericDistance(const mitk::DICOMDatasetAccess* from, const mitk::DICOMDatasetAccess* to) const override;
45 
46  void Print(std::ostream& os) const override;
47 
48  bool operator==(const DICOMSortCriterion& other) const override;
49 
50  protected:
51 
52  DICOMSortByTag( const DICOMTag& tag, DICOMSortCriterion::Pointer secondaryCriterion = nullptr );
53  ~DICOMSortByTag() override;
54 
57 
58  bool StringCompare(const mitk::DICOMDatasetAccess* left, const mitk::DICOMDatasetAccess* right, const DICOMTag& tag) const;
59  bool NumericCompare(const mitk::DICOMDatasetAccess* left, const mitk::DICOMDatasetAccess* right, const DICOMTag& tag) const;
60 
61  private:
62 
63  DICOMTag m_Tag;
64 };
65 
66 }
67 
68 #endif
#define MITKDICOM_EXPORT
Interface to datasets that is presented to sorting classes such as DICOMDatasetSorter.
Compare two datasets by the value of a single tag (for use in DICOMTagBasedSorter).
mitkNewMacro2Param(DICOMSortByTag, const DICOMTag &, DICOMSortCriterion::Pointer)
double NumericDistance(const mitk::DICOMDatasetAccess *from, const mitk::DICOMDatasetAccess *to) const override
Calculate a distance between two datasets. This answers the question of consecutive datasets.
void Print(std::ostream &os) const override
brief describe this class in given stream.
DICOMSortByTag(const DICOMSortByTag &other)
bool NumericCompare(const mitk::DICOMDatasetAccess *left, const mitk::DICOMDatasetAccess *right, const DICOMTag &tag) const
bool StringCompare(const mitk::DICOMDatasetAccess *left, const mitk::DICOMDatasetAccess *right, const DICOMTag &tag) const
bool IsLeftBeforeRight(const mitk::DICOMDatasetAccess *left, const mitk::DICOMDatasetAccess *right) const override
Answer the sorting question.
DICOMTagList GetTagsOfInterest() const override
Tags used for comparison.
mitkClassMacro(DICOMSortByTag, DICOMSortCriterion)
mitkNewMacro1Param(DICOMSortByTag, const DICOMTag &)
~DICOMSortByTag() override
DICOMSortByTag(const DICOMTag &tag, DICOMSortCriterion::Pointer secondaryCriterion=nullptr)
DICOMSortByTag & operator=(const DICOMSortByTag &other)
bool operator==(const DICOMSortCriterion &other) const override
A tag based sorting criterion for use in DICOMTagBasedSorter.
Representation of a DICOM tag.
Definition: mitkDICOMTag.h:33
Find image slices visible on a given plane.
std::vector< DICOMTag > DICOMTagList
Definition: mitkDICOMTag.h:59