DYT/Tool/3rdParty_x64/include/dcmtk/dcmqrdb/dcmqropt.h
2024-11-22 23:19:31 +08:00

167 lines
4.6 KiB
C++

/*
*
* Copyright (C) 1993-2012, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmqrdb
*
* Author: Andrew Hewett
*
* Purpose: class DcmQueryRetrieveOptions
*
*/
#ifndef DCMQROPT_H
#define DCMQROPT_H
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#include "dcmtk/dcmdata/dcxfer.h"
#include "dcmtk/dcmnet/dicom.h"
#include "dcmtk/dcmnet/cond.h"
#include "dcmtk/dcmnet/assoc.h"
#include "dcmtk/dcmqrdb/dcmqrcnf.h"
#include "dcmtk/ofstd/ofconapp.h"
#include "dcmtk/dcmnet/dimse.h"
/// invalid peer for move operation
extern DCMTK_DCMQRDB_EXPORT const OFConditionConst QR_EC_InvalidPeer;
extern DCMTK_DCMQRDB_EXPORT const OFConditionConst QR_EC_IndexDatabaseError;
/** this class encapsulates all the various options that affect the
* operation of the SCP, in addition to those defined in the config file
*/
class DCMTK_DCMQRDB_EXPORT DcmQueryRetrieveOptions
{
private:
/// private undefined copy constructor
DcmQueryRetrieveOptions(const DcmQueryRetrieveOptions& other);
/// private undefined assignment operator
DcmQueryRetrieveOptions& operator=(const DcmQueryRetrieveOptions& other);
public:
/// default constructor
DcmQueryRetrieveOptions();
/// destructor
~DcmQueryRetrieveOptions();
// these member variables should be private but are public for now
/// enable negotiation of private shutdown SOP class
OFBool allowShutdown_;
/// bit preserving mode for incoming storage requests.
OFBool bitPreserving_;
/// silently correct space-padded UIDs
OFBool correctUIDPadding_;
/// enable/disable C-GET support
OFBool disableGetSupport_;
/// block size for file padding, pad DICOM files to multiple of this value
OFCmdUnsignedInt filepad_;
/// group length encoding when writing DICOM files
E_GrpLenEncoding groupLength_;
/// ignore incoming data, receive but do not store (for debugging)
OFBool ignoreStoreData_;
/// block size for item padding, pad DICOM files to multiple of this value
OFCmdUnsignedInt itempad_;
/// maximum number of parallel associations accepted
int maxAssociations_;
/// maximum PDU size
OFCmdUnsignedInt maxPDU_;
/// pointer to network structure used for requesting C-STORE sub-associations
T_ASC_Network * net_;
/// preferred transfer syntax for incoming associations
E_TransferSyntax networkTransferSyntax_;
#ifndef DISABLE_COMPRESSION_EXTENSION
/// preferred transfer syntax for outgoing associations
E_TransferSyntax networkTransferSyntaxOut_;
#endif
/// padding algorithm for writing DICOM files
E_PaddingEncoding paddingType_;
/* refuse storage presentation contexts in incoming associations
* if a storage presentation context for the application entity already exists
*/
OFBool refuseMultipleStorageAssociations_;
/// refuse all incoming associations
OFBool refuse_;
/// reject associations if implementatino class UID is missing
OFBool rejectWhenNoImplementationClassUID_;
/// refuse MOVE context if no corresponding FIND context is present
OFBool requireFindForMove_;
/// restrict MOVE operations to same Application Entity
OFBool restrictMoveToSameAE_;
/// restrict MOVE operations to same host
OFBool restrictMoveToSameHost_;
/// restrict MOVE operations to same vendor according to vendor table
OFBool restrictMoveToSameVendor_;
/// sequence encoding when writing DICOM files
E_EncodingType sequenceType_;
/// single process mode
OFBool singleProcess_;
/// support for patient root q/r model
OFBool supportPatientRoot_;
/// support for patient/study only q/r model
OFBool supportPatientStudyOnly_;
/// support for study root q/r model
OFBool supportStudyRoot_;
/// write DICOM files with DICOM metaheader
OFBool useMetaheader_;
/** keep DB handle open for the complete lifetime of an association.
* If false, the DB handle is created and released for each incoming
* DIMSE message that is processed.
*/
OFBool keepDBHandleDuringAssociation_;
/// transfer syntax for writing
E_TransferSyntax writeTransferSyntax_;
/// blocking mode for DIMSE operations
T_DIMSE_BlockingMode blockMode_;
/// timeout for DIMSE operations
int dimse_timeout_;
/// timeout for ACSE operations
int acse_timeout_;
};
#endif