GDCM 3.0.24
gdcmQueryBase.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 GDCMQUERYBASE_H
19#define GDCMQUERYBASE_H
20
21#include "gdcmTag.h"
22#include "gdcmDataElement.h"
23
24#include <vector>
25
26namespace gdcm
27{
33
61{
62 public:
63 virtual ~QueryBase() = default;
64
65 virtual std::vector<Tag> GetRequiredTags(const ERootType& inRootType) const = 0;
66 virtual std::vector<Tag> GetUniqueTags(const ERootType& inRootType) const = 0;
67 virtual std::vector<Tag> GetOptionalTags(const ERootType& inRootType) const = 0;
68 // C.4.1.2.1 Baseline Behavior of SCU
69 // All C-FIND SCUs shall be capable of generating query requests which
70 // meet the requirements of the Hierarchical Search.
71 // The Identifier contained in a C-FIND request shall contain a single
72 // value in the Unique Key Attribute for each level above the
73 // Query/Retrieve level. No Required or Optional Keys shall be
74 // specified which are associated with levels above the Query/Retrieve
75 // level.
77 virtual std::vector<Tag> GetHierachicalSearchTags(const ERootType& inRootType) const = 0;
78
81 std::vector<Tag> GetAllTags(const ERootType& inRootType) const;
82
85 std::vector<Tag> GetAllRequiredTags(const ERootType& inRootType) const;
86
87 virtual const char * GetName() const = 0;
88 virtual DataElement GetQueryLevel() const = 0;
89 };
90}
91
92#endif //GDCMQUERYBASE_H
Class to represent a Data Element either Implicit or Explicit.
Definition gdcmDataElement.h:59
QueryBase.
Definition gdcmQueryBase.h:61
virtual std::vector< Tag > GetRequiredTags(const ERootType &inRootType) const =0
virtual std::vector< Tag > GetUniqueTags(const ERootType &inRootType) const =0
virtual std::vector< Tag > GetHierachicalSearchTags(const ERootType &inRootType) const =0
Return all Unique Key for a particular Query Root type (from the same level and above).
virtual const char * GetName() const =0
std::vector< Tag > GetAllTags(const ERootType &inRootType) const
std::vector< Tag > GetAllRequiredTags(const ERootType &inRootType) const
virtual DataElement GetQueryLevel() const =0
virtual ~QueryBase()=default
virtual std::vector< Tag > GetOptionalTags(const ERootType &inRootType) const =0
#define GDCM_EXPORT
Definition gdcmWin32.h:34
Definition gdcmASN1.h:21
ERootType
Definition gdcmQueryBase.h:29
@ ePatientRootType
Definition gdcmQueryBase.h:30
@ eStudyRootType
Definition gdcmQueryBase.h:31