gdcmQueryBase.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright NumFOCUS
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef GDCMQUERYBASE_H
#define GDCMQUERYBASE_H
#include "gdcmTag.h"
#include "gdcmDataElement.h"
#include <vector>
namespace gdcm
{
enum ERootType
{
ePatientRootType,
eStudyRootType
};
class GDCM_EXPORT QueryBase
{
public:
virtual ~QueryBase() = default;
virtual std::vector<Tag> GetRequiredTags(const ERootType& inRootType) const = 0;
virtual std::vector<Tag> GetUniqueTags(const ERootType& inRootType) const = 0;
virtual std::vector<Tag> GetOptionalTags(const ERootType& inRootType) const = 0;
// C.4.1.2.1 Baseline Behavior of SCU
// All C-FIND SCUs shall be capable of generating query requests which
// meet the requirements of the Hierarchical Search.
// The Identifier contained in a C-FIND request shall contain a single
// value in the Unique Key Attribute for each level above the
// Query/Retrieve level. No Required or Optional Keys shall be
// specified which are associated with levels above the Query/Retrieve
// level.
virtual std::vector<Tag> GetHierachicalSearchTags(const ERootType& inRootType) const = 0;
std::vector<Tag> GetAllTags(const ERootType& inRootType) const;
std::vector<Tag> GetAllRequiredTags(const ERootType& inRootType) const;
virtual const char * GetName() const = 0;
virtual DataElement GetQueryLevel() const = 0;
};
}
#endif //GDCMQUERYBASE_H
gdcm::DataElement
Class to represent a Data Element either Implicit or Explicit.
Definition gdcmDataElement.h:59
gdcm::QueryBase
QueryBase.
Definition gdcmQueryBase.h:61
gdcm::QueryBase::GetRequiredTags
virtual std::vector< Tag > GetRequiredTags(const ERootType &inRootType) const =0
gdcm::QueryBase::GetUniqueTags
virtual std::vector< Tag > GetUniqueTags(const ERootType &inRootType) const =0
gdcm::QueryBase::GetHierachicalSearchTags
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).
gdcm::QueryBase::GetName
virtual const char * GetName() const =0
gdcm::QueryBase::GetAllTags
std::vector< Tag > GetAllTags(const ERootType &inRootType) const
gdcm::QueryBase::GetAllRequiredTags
std::vector< Tag > GetAllRequiredTags(const ERootType &inRootType) const
gdcm::QueryBase::GetQueryLevel
virtual DataElement GetQueryLevel() const =0
gdcm::QueryBase::~QueryBase
virtual ~QueryBase()=default
gdcm::QueryBase::GetOptionalTags
virtual std::vector< Tag > GetOptionalTags(const ERootType &inRootType) const =0
gdcmDataElement.h
gdcmTag.h
GDCM_EXPORT
#define GDCM_EXPORT
Definition gdcmWin32.h:34
gdcm
Definition gdcmASN1.h:21
gdcm::ERootType
ERootType
Definition gdcmQueryBase.h:29
gdcm::ePatientRootType
@ ePatientRootType
Definition gdcmQueryBase.h:30
gdcm::eStudyRootType
@ eStudyRootType
Definition gdcmQueryBase.h:31