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

1097 lines
49 KiB
C++

/*
*
* Copyright (C) 1998-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: dcmpstat
*
* Author: Marco Eichelberg, Joerg Riesmeier
*
* Purpose:
* classes: DVConfiguration
*
*/
#ifndef DVPSCF_H
#define DVPSCF_H
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#include "dcmtk/ofstd/ofstring.h" /* for class OFString */
#include "dcmtk/oflog/oflog.h" /* for OFLogger::LogLevel */
#include "dcmtk/dcmdata/dctypes.h" /* for Uint32 */
#include "dcmtk/dcmpstat/dvpstyp.h" /* for DVPS enums */
#include "dcmtk/dcmpstat/dpdefine.h"
class OFConfigFile;
/** Configuration class for the Softcopy Presentation State viewer.
* This class manages the configuration file content used by the
* presentation state viewer.
*/
class DCMTK_DCMPSTAT_EXPORT DVConfiguration
{
public:
/** constructor.
* @param config_file filename (path) of the config file to be used.
* The caller should make sure that the config file
* really exists because the constructor cannot return an error status.
* If a non-existing filename (or NULL) is passed, an empty configuration file
* is assumed.
*/
DVConfiguration(const char *config_file=NULL);
/** destructor.
*/
virtual ~DVConfiguration();
/* access to communication partner data */
/** returns the number of communication partners (send targets)
* in the configuration file.
* @param peerType defines a filter for the peer service type. Default: handle only storage peers.
* @return number of communication partners
*/
Uint32 getNumberOfTargets(DVPSPeerType peerType=DVPSE_storage);
/** returns the target identifier of the communication partner
* with the given index. The target identifier is unique within the configuration file
* @param idx index, must be < getNumberOfTargets()
* @param peerType defines a filter for the peer service type. Default: handle only storage peers.
* @return target identifier if found, NULL otherwise.
*/
const char *getTargetID(Uint32 idx, DVPSPeerType peerType=DVPSE_storage);
/** returns the DESCRIPTION entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetDescription(const char *targetID);
/** returns the HOSTNAME entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetHostname(const char *targetID);
/** returns the PORT entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present and parsable in the config file, 0 otherwise.
*/
unsigned short getTargetPort(const char *targetID);
/** returns the TYPE entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present and parsable in the config file, DVPSE_storage otherwise.
*/
DVPSPeerType getTargetType(const char *targetID);
/** returns the AETITLE entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetAETitle(const char *targetID);
/** returns the MAXPDU entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present and parsable in the config file, 0 otherwise.
*/
unsigned long getTargetMaxPDU(const char *targetID);
/** returns the TIMEOUT entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present and parsable in the config file, -1 otherwise.
*/
Sint32 getTargetTimeout(const char *targetID);
/** returns the IMPLICITONLY entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetImplicitOnly(const char *targetID);
/** returns the DISABLENEWVRS entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetDisableNewVRs(const char *targetID);
/** returns the BITPRESERVINGMODE entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetBitPreservingMode(const char *targetID);
/** returns the CORRECTUIDPADDING entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetCorrectUIDPadding(const char *targetID);
/** returns the USETLS entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetUseTLS(const char *targetID);
/** returns the CERTIFICATE entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetCertificate(const char *targetID);
/** returns the PRIVATEKEY entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetPrivateKey(const char *targetID);
/** returns the PRIVATEKEYPASSWORD entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetPrivateKeyPassword(const char *targetID);
/** returns the number of distinct values (separated by backslash characters)
* in the CIPHERSUITES entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetNumberOfCipherSuites(const char *targetID);
/** returns one value from the CIPHERSUITES entry for the storage peer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @param idx index of the value, must be < getTargetNumberOfCipherSuites(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetCipherSuite(const char *targetID, Uint32 idx, OFString& value);
/** returns the PEERAUTHENTICATION entry for the communication partner with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present and parsable in the config file, DVPSQ_require otherwise.
*/
DVPSCertificateVerificationType getTargetPeerAuthentication(const char *targetID);
/** returns the DIFFIEHELLMANPARAMETERS entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetDiffieHellmanParameters(const char *targetID);
/** returns the RANDOMSEED entry for the storage peer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getTargetRandomSeed(const char *targetID);
/** returns the SUPPORTSPRESENTATIONLUT entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrinterSupportsPresentationLUT(const char *targetID);
/** returns the PRESENTATIONLUTMATCHREQUIRED entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFTrue otherwise.
*/
OFBool getTargetPrinterPresentationLUTMatchRequired(const char *targetID);
/** returns the PRESENTATIONLUTPREFERSCPRENDERING entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrinterPresentationLUTPreferSCPRendering(const char *targetID);
/** returns the PRESENTATIONLUTINFILMSESSION entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrinterPresentationLUTinFilmSession(const char *targetID);
/** returns the SUPPORTS12BIT entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFTrue otherwise
* (default is 12 bit supported).
*/
OFBool getTargetPrinterSupports12BitTransmission(const char *targetID);
/** returns the SUPPORTSIMAGESIZE entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrinterSupportsRequestedImageSize(const char *targetID);
/** returns the SUPPORTSDECIMATECROP entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrinterSupportsDecimateCrop(const char *targetID);
/** returns the SUPPORTSTRIM entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrinterSupportsTrim(const char *targetID);
/** returns the number of distinct values (separated by backslash characters)
* in the BORDERDENSITY entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfBorderDensities(const char *targetID);
/** returns one value from the BORDERDENSITY entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfBorderDensities(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterBorderDensity(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the MAXDENSITY entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfMaxDensities(const char *targetID);
/** returns one value from the MAXDENSITY entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfMaxDensities(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterMaxDensity(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the MINDENSITY entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfMinDensities(const char *targetID);
/** returns one value from the MINDENSITY entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfMinDensities(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterMinDensity(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the DISPLAYFORMAT entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfPortraitDisplayFormats(const char *targetID);
/** returns one row value from the DISPLAYFORMAT entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfPortraitDisplayFormats(targetID)
* @return number of rows for this display format if present, 0 otherwise
*/
Uint32 getTargetPrinterPortraitDisplayFormatRows(const char *targetID, Uint32 idx);
/** returns one columns value from the DISPLAYFORMAT entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfPortraitDisplayFormats(targetID)
* @return number of columns for this display format if present, 0 otherwise
*/
Uint32 getTargetPrinterPortraitDisplayFormatColumns(const char *targetID, Uint32 idx);
/** returns OFTrue if an ANNOTATION entry for the printer with the given
* target ID from the configuration file exists or if the
* SESSIONLABELANNOTATION flag is true for the printer.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return OFTrue if printer supports annotation, OFFalse otherwise.
*/
OFBool getTargetPrinterSupportsAnnotation(const char *targetID);
/** returns OFTrue if an ANNOTATION entry for the printer with the given
* target ID from the configuration file exists.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return OFTrue if printer supports annotation, OFFalse otherwise.
*/
OFBool getTargetPrinterSupportsAnnotationBoxSOPClass(const char *targetID);
/** returns OFTrue if an SESSIONLABELANNOTATION entry for the printer
* with the given target ID from the configuration file exists and is true.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return OFTrue if printer supports annotations in film session label, OFFalse otherwise.
*/
OFBool getTargetPrinterSessionLabelAnnotation(const char *targetID);
/** returns the second value from the ANNOTATION entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterAnnotationDisplayFormatID(const char *targetID, OFString& value);
/** returns the first value from the ANNOTATION entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return value if present, 0 otherwise.
*/
Uint16 getTargetPrinterAnnotationPosition(const char *targetID);
/** returns the number of distinct values (separated by backslash characters)
* in the FILMSIZEID entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfFilmSizeIDs(const char *targetID);
/** returns one value from the FILMSIZEID entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfFilmSizeIDs(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterFilmSizeID(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the MEDIUMTYPE entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfMediumTypes(const char *targetID);
/** returns one value from the MEDIUMTYPE entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfMediumTypes(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterMediumType(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the FILMDESTINATION entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfFilmDestinations(const char *targetID);
/** returns one value from the FILMDESTINATION entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfFilmDestinations(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterFilmDestination(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the RESOLUTIONID entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfPrinterResolutionIDs(const char *targetID);
/** returns one value from the RESOLUTIONID entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfPrinterResolutionIDs(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterResolutionID(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the MAGNIFICATIONTYPE entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfMagnificationTypes(const char *targetID);
/** returns one value from the MAGNIFICATIONTYPE entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfMagnificationTypes(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterMagnificationType(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values (separated by backslash characters)
* in the SMOOTHINGTYPE entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfSmoothingTypes(const char *targetID);
/** returns one value from the SMOOTHINGTYPE entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfSmoothingTypes(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterSmoothingType(const char *targetID, Uint32 idx, OFString& value);
/** returns the number of distinct values in the CONFIGURATION_x entries
* for the printer with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfConfigurationSettings(const char *targetID);
/** returns the value from one of the CONFIGURATION_x entries for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfConfigurationSettings(targetID)
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterConfigurationSetting(const char *targetID, Uint32 idx);
/** returns the number of distinct values (separated by backslash characters)
* in the EMPTYIMAGEDENSITY entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return number of values if entry present in the config file, 0 otherwise.
*/
Uint32 getTargetPrinterNumberOfEmptyImageDensities(const char *targetID);
/** returns one value from the EMPTYIMAGEDENSITY entry for the printer
* with the given target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @param idx index of the value, must be < getTargetPrinterNumberOfEmptyImageDensities(targetID)
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getTargetPrinterEmptyImageDensity(const char *targetID, Uint32 idx, OFString& value);
/** returns the OMITSOPCLASSUIDFROMCREATERESPONSE entry for the printer with the given
* target ID from the configuration file.
* @param targetID communication target ID, must be one of the target
* identifiers returned by getTargetID() for peer type DVPSE_printerAny.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getTargetPrintSCPOmitSOPClassUIDFromCreateResponse(const char *targetID);
/* general settings */
/** returns the directory used to store log files.
* Value is taken from the section GENERAL/APPLICATION/LOGDIRECTORY
* in the config file.
* @return log directory path, NULL if absent.
*/
const char *getLogFolder();
/** returns the name of the log file to be used for general application messages.
* Value is taken from the section GENERAL/APPLICATION/LOGFILE
* in the config file.
* @return name of the log file, NULL if absent.
*/
const char *getLogFile();
/** returns the log level / filter to be used for general application messages.
* Value is taken from the section GENERAL/APPLICATION/LOGLEVEL
* in the config file.
* @return log level, default: OFLogger::FATAL_LOG_LEVEL
*/
OFLogger::LogLevel getLogLevel();
/** returns the port on which the GUI application accepts notification
* messages from the network processes.
* Value is taken from the section GENERAL/APPLICATION/MESSAGEPORT
* in the config file.
* @return message port, default: 0 (no message exchange).
*/
unsigned short getMessagePort();
/** Indicates whether client processes are allowed to keep their notification
* message port open during the lifetime of the process.
* Value is taken from the section GENERAL/APPLICATION/KEEPMESSAGEPORTOPEN
* in the config file.
* @return message port open flag, default: false
*/
OFBool getMessagePortKeepOpen();
/** returns the AETitle with which this application should identify itself.
* The AETitle is taken from the section GENERAL/NETWORK in the
* config file. If absent, a default value is returned.
* @return AETitle for this application. Never returns NULL.
*/
const char *getNetworkAETitle();
/** returns the AUTOCREATECONFIGFILE entry for the query/retrieve server
* from the section GENERAL/QUERY_RETRIEVE in the config file.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getQueryRetrieveAutoCreateConfigFile();
/** returns the AETitle with which the Q/R server should identify itself.
* The AETitle is taken from the section GENERAL/QUERY_RETRIEVE in the
* config file. If absent, a default value is returned.
* @return AETitle for the Q/R server. Never returns NULL.
*/
const char *getQueryRetrieveAETitle();
/** returns the PORT entry for the Q/R server
* from the section GENERAL/QUERY_RETRIEVE in the config file.
* @return entry if present and parsable in the config file, 0 otherwise.
*/
unsigned short getQueryRetrievePort();
/** returns the MAXPDU entry for the Q/R server
* from the section GENERAL/QUERY_RETRIEVE in the config file.
* @return entry if present and parsable in the config file, 0 otherwise.
*/
unsigned long getQueryRetrieveMaxPDU();
/** returns the TIMEOUT entry for the the Q/R server
* from the section GENERAL/QUERY_RETRIEVE in the config file.
* @return entry if present and parsable in the config file, -1 otherwise.
*/
Sint32 getQueryRetrieveTimeout();
/** returns the MaxAssociations entry for the Q/R server
* from the section GENERAL/QUERY_RETRIEVE in the config file.
* @return entry if present and parsable in the config file, 0 otherwise.
*/
unsigned long getQueryRetrieveMaxAssociations();
/** returns the database folder to be used for sending/receiving/browsing.
* Value is taken from the section GENERAL/DATABASE/DIRECTORY
* in the config file. If absent, a default value is returned.
* @return database folder path. Never returns NULL.
*/
const char *getDatabaseFolder();
/** returns the spool folder to be used for print jobs.
* Value is taken from the section GENERAL/PRINT/DIRECTORY
* in the config file. If absent, a default value is returned.
* @return spool folder path. Never returns NULL.
*/
const char *getSpoolFolder();
/** returns the DETAILEDLOG entry
* from the section GENERAL/PRINT in the config file.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getDetailedLog();
/** returns the BINARYLOG entry
* from the section GENERAL/PRINT in the config file.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getBinaryLog();
/** returns the filename (path) of the DICOM Store SCU application used
* for sending images, as configured in section
* GENERAL/NETWORK/SENDER in the config file.
* @return send application path name or NULL if absent.
*/
const char *getSenderName();
/** returns the filename (path) of the DICOM Store SCP application used
* for receiving images, as configured in section
* GENERAL/NETWORK/RECEIVER in the config file.
* @return receive application path name or NULL if absent.
*/
const char *getReceiverName();
/** returns the filename (path) of the DICOM Query/Retrieve SCP application,
* as configured in section GENERAL/QUERY_RETRIEVE/SERVER in the config file.
* @return send application path name or NULL if absent.
*/
const char *getQueryRetrieveServerName();
/** returns the filename (path) of the DICOM Print SCU application used
* for printing images, as configured in section
* GENERAL/PRINT/SPOOLER in the config file.
* @return receive application path name or NULL if absent.
*/
const char *getSpoolerName();
/** returns the filename (path) of the DICOM Print SCU application used
* for printing images, as configured in section
* GENERAL/PRINT/Server in the config file.
* @return receive application path name or NULL if absent.
*/
const char *getPrintServerName();
/** returns the filename (path) of the application used
* for dumping DICOM objects, as configured in section
* GENERAL/DATABASE/DUMP in the config file.
* @return dump application path name or NULL if absent.
*/
const char *getDumpToolName();
/** returns the filename (path) of the application used
* for dumping DICOM objects, as configured in section
* GENERAL/DATABASE/CHECK in the config file.
* @return check application path name or NULL if absent.
*/
const char *getCheckToolName();
/** returns the sleep delay for the print spooler in seconds,
* as configured in section GENERAL/PRINT/SLEEP in the config file.
* @return sleep delay, 0 if absent.
*/
unsigned long getSpoolerSleep();
/** returns the DELETEPRINTJOBS entry for the print spooler
* from the section GENERAL/PRINT in the config file.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getSpoolerDeletePrintJobs();
/** returns the ALWAYSDELETETERMINATEJOBS entry for the print spooler
* from the section GENERAL/PRINT in the config file.
* @return entry if present in the config file, OFFalse otherwise.
*/
OFBool getSpoolerAlwaysDeleteTerminateJobs();
/** returns the filename (path) of the monitor characteristics file
* used to implement that Barten transform, as configured in section
* GENERAL/MONITOR/CHARACTERISTICS in the config file.
* @return monitor characteristics path name or NULL if absent.
*/
const char *getMonitorCharacteristicsFile();
/** returns the width (in mm) of one pixel on the current monitor
* @return pixel width, 0 if unknown
*/
double getMonitorPixelWidth();
/** returns the height (in mm) of one pixel on the current monitor
* @return pixel height, 0 if unknown
*/
double getMonitorPixelHeight();
/** returns the maximum horizontal preview image resolution, from
* GENERAL/MONITOR/PREVIEW in the config file. Default: 0.
* @return maximum horizontal preview resolution
*/
Uint32 getMaxPreviewResolutionX();
/** returns the maximum vertical preview image resolution, from
* GENERAL/MONITOR/PREVIEW in the config file. Default: 0.
* @return maximum vertical preview resolution
*/
Uint32 getMaxPreviewResolutionY();
/** returns the value of configuration file entry key=value
* in the section GENERAL/GUI of the config file.
* Specified key must be upper case.
* If the entry is absent, NULL is returned.
* @param key the entry key
* @return entry value or NULL.
*/
const char *getGUIConfigEntry(const char *key);
/** returns the value of configuration file entry key=value
* in the section GENERAL/GUI of the config file.
* Specified key must be upper case.
* If the entry is absent or cannot be parsed, the default dfl
* is returned.
* @param key the entry key
* @param dfl the default to be used if the value is absent or incorrect
* @return entry value or default.
*/
OFBool getGUIConfigEntryBool(const char *key, OFBool dfl);
/** returns the folder to be used for Print Presentation LUTs.
* Value is taken from the section GENERAL/LUT/DIRECTORY
* in the config file. If absent, a default value is returned.
* @return LUT folder path. Never returns NULL.
*/
const char *getLUTFolder();
/** returns the folder to be used for Structured Reporting "templates".
* Value is taken from the section GENERAL/REPORT/DIRECTORY
* in the config file. If absent, a default value is returned.
* @return report folder path. Never returns NULL.
*/
const char *getReportFolder();
/* Presentation Look Up Tables (LUTs) */
/** returns the number of Presentation LUTs in the configuration file.
* @return number of LUTs
*/
Uint32 getNumberOfLUTs();
/** returns the identifier of the Presentation LUT
* with the given index. The identifier is unique within the configuration file
* @param idx index, must be < getNumberOfLUTs()
* @return identifier if found, NULL otherwise.
*/
const char *getLUTID(Uint32 idx);
/** returns the DESCRIPTION entry for the LUT with the given
* ID from the configuration file.
* @param lutID LUT ID, must be one of the identifiers returned by getLUTID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getLUTDescription(const char *lutID);
/** returns the FILENAME entry for the LUT with the given
* ID from the configuration file.
* @param lutID LUT ID, must be one of the identifiers returned by getLUTID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getLUTFilename(const char *lutID);
/* Structured Reporting (SR) "templates" */
/** returns the number of SR "templates" in the configuration file.
* @return number of SR "templates"
*/
Uint32 getNumberOfReports();
/** returns the identifier of the SR "template"
* with the given index. The identifier is unique within the configuration file
* @param idx index, must be < getNumberOfReports()
* @return identifier if found, NULL otherwise.
*/
const char *getReportID(Uint32 idx);
/** returns the DESCRIPTION entry for the SR "template" with the given
* ID from the configuration file.
* @param reportID SR "template" ID, must be one of the identifiers returned by
* getReportID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getReportDescription(const char *reportID);
/** returns the FILENAME entry for the SR "template" with the given
* ID from the configuration file.
* @param reportID SR "template" ID, must be one of the identifiers returned by
* getReportID().
* @return entry if present in the config file, NULL otherwise.
*/
const char *getReportFilename(const char *reportID);
/* general print settings */
/** returns the minimum horizontal bitmap resolution for print, from
* GENERAL/PRINT/MINPRINTRESOLUTION in the config file. Default: 0.
* @return minimum horizontal bitmap resolution
*/
Uint32 getMinPrintResolutionX();
/** returns the minimum vertical bitmap resolution for print, from
* GENERAL/PRINT/MINPRINTRESOLUTION in the config file. Default: 0.
* @return minimum vertical bitmap resolution
*/
Uint32 getMinPrintResolutionY();
/** returns the maximum horizontal bitmap resolution for print, from
* GENERAL/PRINT/MAXPRINTRESOLUTION in the config file. Default: 0.
* @return maximum horizontal bitmap resolution
*/
Uint32 getMaxPrintResolutionX();
/** returns the maximum vertical bitmap resolution for print, from
* GENERAL/PRINT/MAXPRINTRESOLUTION in the config file. Default: 0.
* @return maximum vertical bitmap resolution
*/
Uint32 getMaxPrintResolutionY();
/** returns the default illumination for print, from
* GENERAL/PRINT/DEFAULTILLUMINATION in the config file. Default: 2000.
* @return default illumination for print
*/
Uint16 getDefaultPrintIllumination();
/** returns the default reflection for print, from
* GENERAL/PRINT/DEFAULTREFLECTION in the config file. Default: 10.
* @return default reflection for print
*/
Uint16 getDefaultPrintReflection();
/* VOI settings */
/** returns the number of VOI Presets defined for the given modality
* @param modality Modality, e.g. "CT", "MR", "DX" etc.
* @return number of VOI Presets
*/
Uint32 getNumberOfVOIPresets(const char *modality);
/** returns the description string for the given VOI Preset
* @param modality Modality, e.g. "CT", "MR", "DX" etc.
* @param idx index of the value, must be < getNumberOfVOIPresets(modality)
* @return description if present, NULL otherwise.
*/
const char *getVOIPresetDescription(const char *modality, Uint32 idx);
/** returns the window center for the given VOI Preset
* @param modality Modality, e.g. "CT", "MR", "DX" etc.
* @param idx index of the value, must be < getNumberOfVOIPresets(modality)
* @return window center if present, 0.0 otherwise.
*/
double getVOIPresetWindowCenter(const char *modality, Uint32 idx);
/** returns the window width for the given VOI Preset
* @param modality Modality, e.g. "CT", "MR", "DX" etc.
* @param idx index of the value, must be < getNumberOfVOIPresets(modality)
* @return window width if present, 1.0 otherwise.
*/
double getVOIPresetWindowWidth(const char *modality, Uint32 idx);
/* TLS settings */
/** returns the directory in which TLS related files (certificates, keys,
* random data, Diffie-Hellman parameters etc.) are located.
* @return TLS directory path, NULL if absent.
*/
const char *getTLSFolder();
/** returns the directory in which certificates of the trusted
* Certification Authorities are located.
* @return TLS CA Certificate directory path, NULL if absent.
*/
const char *getTLSCACertificateFolder();
/** returns the file format used for certificates, keys and Diffie-Hellman
* parameters. OFTrue for PEM ("privacy enhanced mail") format, OFFalse for
* DER ("distinguished encoding rules") format.
* @return OFTrue for PEM (default), OFFalse for DER.
*/
OFBool getTLSPEMFormat();
/* User login settings */
/** returns the directory in which user certificates and keys
* are located.
* @return User key/certificate directory path, NULL if absent.
*/
const char *getUserCertificateFolder();
/** returns the number of configured users in the USERS section.
* @return number of configured users
*/
Uint32 getNumberOfUsers();
/** returns the symbolic identifier of the user with the given index.
* The symbolic identifier is unique within the configuration file.
* @param idx index, must be < getNumberOfUsers()
* @return identifier if found, NULL otherwise.
*/
const char *getUserID(Uint32 idx);
/** returns the login for the given user. If absent in the config file,
* returns NULL.
* @param userID user ID as returned by getUserID()
* @return login for the given user
*/
const char *getUserLogin(const char *userID);
/** returns the human readable name for the given user.
* If absent in the config file, returns NULL.
* @param userID user ID as returned by getUserID()
* @return name for the given user
*/
const char *getUserName(const char *userID);
/** returns the name for the given user in DICOM Person Name (PN) format.
* If absent in the config file, returns NULL.
* @param userID user ID as returned by getUserID()
* @return DICOM PN name for the given user
*/
const char *getUserDICOMName(const char *userID);
/** returns the organization for the given user.
* If absent in the config file, returns NULL.
* @param userID user ID as returned by getUserID()
* @return organization for the given user
*/
const char *getUserOrganization(const char *userID);
/** returns the coding scheme designator of the user code for the given user if present.
* @param userID user ID as returned by getUserID()
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getUserCodingSchemeDesignator(const char *userID, OFString& value);
/** returns the coding scheme version of the user code for the given user if present.
* @param userID user ID as returned by getUserID()
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getUserCodingSchemeVersion(const char *userID, OFString& value);
/** returns the code value of the user code for the given user if present.
* @param userID user ID as returned by getUserID()
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getUserCodeValue(const char *userID, OFString& value);
/** returns the code meaning of the user code for the given user if present.
* @param userID user ID as returned by getUserID()
* @param value the result is both stored in this object and returned as return value.
* @return value if present, NULL otherwise.
*/
const char *getUserCodeMeaning(const char *userID, OFString& value);
/** returns the certificate file name for the given user.
* If absent in the config file, returns NULL.
* @param userID user ID as returned by getUserID()
* @return certificate file for the given user
*/
const char *getUserCertificate(const char *userID);
/** returns the private key file name for the given user.
* If absent in the config file, returns NULL.
* @param userID user ID as returned by getUserID()
* @return key file for the given user
*/
const char *getUserPrivateKey(const char *userID);
private:
/** private undefined copy constructor
*/
DVConfiguration(const DVConfiguration&);
/** private undefined assignment operator
*/
DVConfiguration& operator=(const DVConfiguration&);
/** returns the entry with the given keys.
* @param l2_key level 2 key
* @param l1_key level 1 key
* @param l0_key level 0 key (entry name)
* @return value assigned to the key if present, NULL otherwise.
*/
const char *getConfigEntry(const char *l2_key, const char *l1_key, const char *l0_key);
/** returns the entry with the given keys as bool.
* @param l2_key level 2 key
* @param l1_key level 1 key
* @param l0_key level 0 key (entry name)
* @param deflt default to be returned if entry is not present or syntax error.
* @return value assigned to the key if present, default otherwise.
*/
OFBool getConfigBoolEntry(const char *l2_key, const char *l1_key, const char *l0_key, OFBool deflt);
/* member variables */
/** pointer to the configuration file data if the configuration file was found.
* NULL otherwise.
*/
OFConfigFile *pConfig;
};
#endif