/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2014 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef GDCMNORMALIZEDNETWORKFUNCTIONS_H #define GDCMNORMALIZEDNETWORKFUNCTIONS_H #include "gdcmDirectory.h" #include "gdcmBaseQuery.h" // EQueryLevel / EQueryType #include #include namespace gdcm { /** * \brief Normalized Network Functions * \details These functions provide a generic API to the DICOM functions implemented in * GDCM. * Advanced users can use this code as a template for building their own * versions of these functions (for instance, to provide progress bars or some * other way of handling returned query information), but for most users, these * functions should be sufficient to interface with a PACS to a local machine. * Note that these functions are not contained within a static class or some * other class-style interface, because multiple connections can be * instantiated in the same program. The DICOM standard is much more function * oriented rather than class oriented in this instance, so the design of this * API reflects that functional approach. * These functions implements the following SCU operations: * \li N-EVENT-REPORT * \li N-GET * \li N-SET * \li N-ACTION * \li N-CREATE * \li N-DELETE */ class GDCM_EXPORT NormalizedNetworkFunctions { public: static BaseQuery* ConstructQuery( const std::string & sopInstanceUID, const DataSet& queryds, ENQueryType queryType = eCreateMMPS ); static bool NEventReport( const char *remote, uint16_t portno, const BaseQuery* query, std::vector &retDataSets, const char *aetitle, const char *call ); static bool NGet( const char *remote, uint16_t portno, const BaseQuery* query, std::vector &retDataSets, const char *aetitle, const char *call ); static bool NSet( const char *remote, uint16_t portno, const BaseQuery* query, std::vector &retDataSets, const char *aetitle, const char *call ); static bool NAction( const char *remote, uint16_t portno, const BaseQuery* query, std::vector &retDataSets, const char *aetitle, const char *call ); static bool NCreate( const char *remote, uint16_t portno, BaseQuery* query, std::vector &retDataSets, const char *aetitle, const char *call ); static bool NDelete( const char *remote, uint16_t portno, const BaseQuery* query, std::vector &retDataSets, const char *aetitle, const char *call ); }; } // end namespace gdcm #endif // GDCMCOMPOSITENETWORKFUNCTIONS_H