GDCM 3.0.24
gdcmBaseRootQuery.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef GDCMBASEROOTQUERY_H
19#define GDCMBASEROOTQUERY_H
20
21#include "gdcmDataSet.h"
22#include "gdcmUIDs.h"
23#include "gdcmBaseQuery.h"
24#include "gdcmQueryPatient.h"
25#include "gdcmQueryStudy.h"
26#include "gdcmQuerySeries.h"
27#include "gdcmQueryImage.h"
28
29namespace gdcm
30{
31 class QueryFactory;
32 class DictEntry;
33
35 {
36 // -1 is reserved do not use
38 eStudy = 1,
40 eImage = 3
41 };
48
67{
68 //these four classes contain the required, unique, and optional tags from the standard.
69 //used both to list the tags as well as to validate a dataset, if ever we were to do so.
70protected:
75
76 friend class QueryFactory;
78
79 ERootType mRootType; //set in construction, and it's something else in the study root type
80 std::string mHelpDescription; //used when generating the help output
81
82public:
83 ~BaseRootQuery() override = default;
84
88 virtual std::vector<Tag> GetTagListByLevel(const EQueryLevel& inQueryLevel) = 0;
89
93 virtual void InitializeDataSet(const EQueryLevel& inQueryLevel) = 0;
94
108 bool ValidateQuery( bool inStrict = true ) const override = 0;
109
110 static const char *GetQueryLevelString( EQueryLevel ql );
111 static int GetQueryLevelFromString( const char * str );
112
113 static QueryBase * Construct(ERootType inRootType, EQueryLevel qlevel);
115};
116
117} // end namespace gdcm
118
119#endif //GDCMBASEROOTQUERY_H
BaseQuery.
Definition gdcmBaseQuery.h:42
BaseRootQuery.
Definition gdcmBaseRootQuery.h:67
ERootType mRootType
Definition gdcmBaseRootQuery.h:79
QueryImage mImage
Definition gdcmBaseRootQuery.h:74
virtual std::vector< Tag > GetTagListByLevel(const EQueryLevel &inQueryLevel)=0
static QueryBase * Construct(ERootType inRootType, EQueryLevel qlevel)
QueryStudy mStudy
Definition gdcmBaseRootQuery.h:72
QuerySeries mSeries
Definition gdcmBaseRootQuery.h:73
~BaseRootQuery() override=default
std::string mHelpDescription
Definition gdcmBaseRootQuery.h:80
virtual void InitializeDataSet(const EQueryLevel &inQueryLevel)=0
EQueryLevel GetQueryLevelFromQueryRoot(ERootType roottype)
QueryPatient mPatient
Definition gdcmBaseRootQuery.h:71
static const char * GetQueryLevelString(EQueryLevel ql)
static int GetQueryLevelFromString(const char *str)
bool ValidateQuery(bool inStrict=true) const override=0
QueryBase.
Definition gdcmQueryBase.h:61
QueryFactory.h.
Definition gdcmQueryFactory.h:58
QueryImage.
Definition gdcmQueryImage.h:31
QueryPatient.
Definition gdcmQueryPatient.h:30
QuerySeries.
Definition gdcmQuerySeries.h:30
QueryStudy.h.
Definition gdcmQueryStudy.h:30
#define GDCM_EXPORT
Definition gdcmWin32.h:34
Definition gdcmASN1.h:21
ERootType
Definition gdcmQueryBase.h:29
EQueryType
Definition gdcmBaseRootQuery.h:43
@ eFind
Definition gdcmBaseRootQuery.h:44
@ eMove
Definition gdcmBaseRootQuery.h:45
@ eWLMFind
Definition gdcmBaseRootQuery.h:46
EQueryLevel
Definition gdcmBaseRootQuery.h:35
@ eImage
Definition gdcmBaseRootQuery.h:40
@ ePatient
Definition gdcmBaseRootQuery.h:37
@ eSeries
Definition gdcmBaseRootQuery.h:39
@ eStudy
Definition gdcmBaseRootQuery.h:38