OFFIS DCMTK  Version 3.6.0
dvpscf.h
1 /*
2  *
3  * Copyright (C) 1998-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmpstat
15  *
16  * Author: Marco Eichelberg, Joerg Riesmeier
17  *
18  * Purpose:
19  * classes: DVConfiguration
20  *
21  * Last Update: $Author: joergr $
22  * Update Date: $Date: 2010-10-14 13:16:36 $
23  * CVS/RCS Revision: $Revision: 1.34 $
24  * Status: $State: Exp $
25  *
26  * CVS/RCS Log at end of file
27  *
28  */
29 
30 
31 #ifndef DVPSCF_H
32 #define DVPSCF_H
33 
34 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
35 #include "dcmtk/ofstd/ofstring.h" /* for class OFString */
36 #include "dcmtk/dcmdata/dctypes.h" /* for Uint32 */
37 #include "dcmtk/dcmpstat/dvpstyp.h" /* for DVPS enums */
38 #include "dcmtk/oflog/oflog.h" /* for OFLogger::LogLevel */
39 
40 class OFConfigFile;
41 
47 {
48  public:
49 
57  DVConfiguration(const char *config_file=NULL);
58 
61  virtual ~DVConfiguration();
62 
63  /* access to communication partner data */
64 
70  Uint32 getNumberOfTargets(DVPSPeerType peerType=DVPSE_storage);
71 
78  const char *getTargetID(Uint32 idx, DVPSPeerType peerType=DVPSE_storage);
79 
86  const char *getTargetDescription(const char *targetID);
87 
94  const char *getTargetHostname(const char *targetID);
95 
102  unsigned short getTargetPort(const char *targetID);
103 
110  DVPSPeerType getTargetType(const char *targetID);
111 
118  const char *getTargetAETitle(const char *targetID);
119 
126  unsigned long getTargetMaxPDU(const char *targetID);
127 
134  Sint32 getTargetTimeout(const char *targetID);
135 
142  OFBool getTargetImplicitOnly(const char *targetID);
143 
150  OFBool getTargetDisableNewVRs(const char *targetID);
151 
158  OFBool getTargetBitPreservingMode(const char *targetID);
159 
166  OFBool getTargetCorrectUIDPadding(const char *targetID);
167 
174  OFBool getTargetUseTLS(const char *targetID);
175 
182  const char *getTargetCertificate(const char *targetID);
183 
190  const char *getTargetPrivateKey(const char *targetID);
191 
198  const char *getTargetPrivateKeyPassword(const char *targetID);
199 
207  Uint32 getTargetNumberOfCipherSuites(const char *targetID);
208 
217  const char *getTargetCipherSuite(const char *targetID, Uint32 idx, OFString& value);
218 
225  DVPSCertificateVerificationType getTargetPeerAuthentication(const char *targetID);
226 
233  const char *getTargetDiffieHellmanParameters(const char *targetID);
234 
241  const char *getTargetRandomSeed(const char *targetID);
242 
249  OFBool getTargetPrinterSupportsPresentationLUT(const char *targetID);
250 
257  OFBool getTargetPrinterPresentationLUTMatchRequired(const char *targetID);
258 
265  OFBool getTargetPrinterPresentationLUTPreferSCPRendering(const char *targetID);
266 
273  OFBool getTargetPrinterPresentationLUTinFilmSession(const char *targetID);
274 
282  OFBool getTargetPrinterSupports12BitTransmission(const char *targetID);
283 
290  OFBool getTargetPrinterSupportsRequestedImageSize(const char *targetID);
291 
298  OFBool getTargetPrinterSupportsDecimateCrop(const char *targetID);
299 
306  OFBool getTargetPrinterSupportsTrim(const char *targetID);
307 
315  Uint32 getTargetPrinterNumberOfBorderDensities(const char *targetID);
316 
325  const char *getTargetPrinterBorderDensity(const char *targetID, Uint32 idx, OFString& value);
326 
334  Uint32 getTargetPrinterNumberOfMaxDensities(const char *targetID);
335 
344  const char *getTargetPrinterMaxDensity(const char *targetID, Uint32 idx, OFString& value);
345 
353  Uint32 getTargetPrinterNumberOfMinDensities(const char *targetID);
354 
363  const char *getTargetPrinterMinDensity(const char *targetID, Uint32 idx, OFString& value);
364 
372  Uint32 getTargetPrinterNumberOfPortraitDisplayFormats(const char *targetID);
373 
381  Uint32 getTargetPrinterPortraitDisplayFormatRows(const char *targetID, Uint32 idx);
382 
390  Uint32 getTargetPrinterPortraitDisplayFormatColumns(const char *targetID, Uint32 idx);
391 
399  OFBool getTargetPrinterSupportsAnnotation(const char *targetID);
400 
407  OFBool getTargetPrinterSupportsAnnotationBoxSOPClass(const char *targetID);
408 
415  OFBool getTargetPrinterSessionLabelAnnotation(const char *targetID);
416 
424  const char *getTargetPrinterAnnotationDisplayFormatID(const char *targetID, OFString& value);
425 
432  Uint16 getTargetPrinterAnnotationPosition(const char *targetID);
433 
441  Uint32 getTargetPrinterNumberOfFilmSizeIDs(const char *targetID);
442 
451  const char *getTargetPrinterFilmSizeID(const char *targetID, Uint32 idx, OFString& value);
452 
460  Uint32 getTargetPrinterNumberOfMediumTypes(const char *targetID);
461 
470  const char *getTargetPrinterMediumType(const char *targetID, Uint32 idx, OFString& value);
471 
479  Uint32 getTargetPrinterNumberOfFilmDestinations(const char *targetID);
480 
489  const char *getTargetPrinterFilmDestination(const char *targetID, Uint32 idx, OFString& value);
490 
498  Uint32 getTargetPrinterNumberOfPrinterResolutionIDs(const char *targetID);
499 
508  const char *getTargetPrinterResolutionID(const char *targetID, Uint32 idx, OFString& value);
509 
517  Uint32 getTargetPrinterNumberOfMagnificationTypes(const char *targetID);
518 
527  const char *getTargetPrinterMagnificationType(const char *targetID, Uint32 idx, OFString& value);
528 
536  Uint32 getTargetPrinterNumberOfSmoothingTypes(const char *targetID);
537 
546  const char *getTargetPrinterSmoothingType(const char *targetID, Uint32 idx, OFString& value);
547 
554  Uint32 getTargetPrinterNumberOfConfigurationSettings(const char *targetID);
555 
563  const char *getTargetPrinterConfigurationSetting(const char *targetID, Uint32 idx);
564 
572  Uint32 getTargetPrinterNumberOfEmptyImageDensities(const char *targetID);
573 
582  const char *getTargetPrinterEmptyImageDensity(const char *targetID, Uint32 idx, OFString& value);
583 
590  OFBool getTargetPrintSCPOmitSOPClassUIDFromCreateResponse(const char *targetID);
591 
592  /* general settings */
593 
599  const char *getLogFolder();
600 
606  const char *getLogFile();
607 
614 
621  unsigned short getMessagePort();
622 
629  OFBool getMessagePortKeepOpen();
630 
636  const char *getNetworkAETitle();
637 
643 
649  const char *getQueryRetrieveAETitle();
650 
655  unsigned short getQueryRetrievePort();
656 
661  unsigned long getQueryRetrieveMaxPDU();
662 
667  Sint32 getQueryRetrieveTimeout();
668 
673  unsigned long getQueryRetrieveMaxAssociations();
674 
680  const char *getDatabaseFolder();
681 
687  const char *getSpoolFolder();
688 
693  OFBool getDetailedLog();
694 
699  OFBool getBinaryLog();
700 
706  const char *getSenderName();
707 
713  const char *getReceiverName();
714 
719  const char *getQueryRetrieveServerName();
720 
726  const char *getSpoolerName();
727 
733  const char *getPrintServerName();
734 
740  const char *getDumpToolName();
741 
747  const char *getCheckToolName();
748 
753  unsigned long getSpoolerSleep();
754 
759  OFBool getSpoolerDeletePrintJobs();
760 
766 
772  const char *getMonitorCharacteristicsFile();
773 
777  double getMonitorPixelWidth();
778 
782  double getMonitorPixelHeight();
783 
788  Uint32 getMaxPreviewResolutionX();
789 
794  Uint32 getMaxPreviewResolutionY();
795 
803  const char *getGUIConfigEntry(const char *key);
804 
814  OFBool getGUIConfigEntryBool(const char *key, OFBool dfl);
815 
821  const char *getLUTFolder();
822 
828  const char *getReportFolder();
829 
830  /* Presentation Look Up Tables (LUTs) */
831 
835  Uint32 getNumberOfLUTs();
836 
842  const char *getLUTID(Uint32 idx);
843 
849  const char *getLUTDescription(const char *lutID);
850 
856  const char *getLUTFilename(const char *lutID);
857 
858  /* Structured Reporting (SR) "templates" */
859 
863  Uint32 getNumberOfReports();
864 
870  const char *getReportID(Uint32 idx);
871 
878  const char *getReportDescription(const char *reportID);
879 
886  const char *getReportFilename(const char *reportID);
887 
888  /* general print settings */
889 
894  Uint32 getMinPrintResolutionX();
895 
900  Uint32 getMinPrintResolutionY();
901 
906  Uint32 getMaxPrintResolutionX();
907 
912  Uint32 getMaxPrintResolutionY();
913 
919 
924  Uint16 getDefaultPrintReflection();
925 
926  /* VOI settings */
927 
932  Uint32 getNumberOfVOIPresets(const char *modality);
933 
939  const char *getVOIPresetDescription(const char *modality, Uint32 idx);
940 
946  double getVOIPresetWindowCenter(const char *modality, Uint32 idx);
947 
953  double getVOIPresetWindowWidth(const char *modality, Uint32 idx);
954 
955  /* TLS settings */
956 
961  const char *getTLSFolder();
962 
967  const char *getTLSCACertificateFolder();
968 
974  OFBool getTLSPEMFormat();
975 
976  /* User login settings */
977 
982  const char *getUserCertificateFolder();
983 
987  Uint32 getNumberOfUsers();
988 
994  const char *getUserID(Uint32 idx);
995 
1001  const char *getUserLogin(const char *userID);
1002 
1008  const char *getUserName(const char *userID);
1009 
1015  const char *getUserDICOMName(const char *userID);
1016 
1022  const char *getUserOrganization(const char *userID);
1023 
1029  const char *getUserCodingSchemeDesignator(const char *userID, OFString& value);
1030 
1036  const char *getUserCodingSchemeVersion(const char *userID, OFString& value);
1037 
1043  const char *getUserCodeValue(const char *userID, OFString& value);
1044 
1050  const char *getUserCodeMeaning(const char *userID, OFString& value);
1051 
1057  const char *getUserCertificate(const char *userID);
1058 
1064  const char *getUserPrivateKey(const char *userID);
1065 
1066 private:
1067 
1071 
1075 
1082  const char *getConfigEntry(const char *l2_key, const char *l1_key, const char *l0_key);
1083 
1091  OFBool getConfigBoolEntry(const char *l2_key, const char *l1_key, const char *l0_key, OFBool deflt);
1092 
1093  /* member variables */
1094 
1099 
1100 };
1101 
1102 #endif
1103 
1104 /*
1105  * CVS/RCS Log:
1106  * $Log: dvpscf.h,v $
1107  * Revision 1.34 2010-10-14 13:16:36 joergr
1108  * Updated copyright header. Added reference to COPYRIGHT file.
1109  *
1110  * Revision 1.33 2009-11-24 14:12:57 uli
1111  * Switched to logging mechanism provided by the "new" oflog module.
1112  *
1113  * Revision 1.32 2005-12-08 16:03:36 meichel
1114  * Changed include path schema for all DCMTK header files
1115  *
1116  * Revision 1.31 2003/04/29 10:13:56 meichel
1117  * Moved configuration file parser from module dcmpstat to ofstd and renamed
1118  * class to OFConfigFile. Cleaned up implementation (no more friend declarations).
1119  *
1120  * Revision 1.30 2002/11/29 13:16:31 meichel
1121  * Introduced new command line option --timeout for controlling the
1122  * connection request timeout.
1123  *
1124  * Revision 1.29 2002/11/25 18:27:39 meichel
1125  * Converted compile time option to leniently handle space padded UIDs
1126  * in the Storage Service Class into command line / config file option.
1127  *
1128  * Revision 1.28 2001/06/01 15:50:12 meichel
1129  * Updated copyright header
1130  *
1131  * Revision 1.27 2000/11/13 14:20:54 joergr
1132  * Updated comments.
1133  *
1134  * Revision 1.26 2000/11/13 11:52:41 meichel
1135  * Added support for user logins and certificates.
1136  *
1137  * Revision 1.25 2000/11/13 10:42:39 joergr
1138  * Added support for Structured Reporting "templates".
1139  *
1140  * Revision 1.24 2000/10/10 12:23:40 meichel
1141  * Added extensions for TLS encrypted communication
1142  *
1143  * Revision 1.23 2000/06/21 15:40:57 meichel
1144  * Added DICOMscope support for calling the Presentation State Checker.
1145  *
1146  * Revision 1.22 2000/06/07 14:16:21 joergr
1147  * Added configuration file entry "LogLevel" to filter log messages.
1148  *
1149  * Revision 1.21 2000/06/07 13:17:45 meichel
1150  * added binary and textual log facilities to Print SCP.
1151  *
1152  * Revision 1.20 2000/06/06 09:42:48 joergr
1153  * Moved configuration file entry "LogDirectory" from "[PRINT]" to new
1154  * (more general) section "[APPLICATION]".
1155  *
1156  * Revision 1.19 2000/06/05 16:22:27 joergr
1157  * Implemented log message methods.
1158  *
1159  * Revision 1.18 2000/06/02 16:00:43 meichel
1160  * Adapted all dcmpstat classes to use OFConsole for log and error output
1161  *
1162  * Revision 1.17 2000/06/02 13:53:54 joergr
1163  * Implemented start/terminatePrintServer methods.
1164  *
1165  * Revision 1.16 2000/06/02 12:41:51 joergr
1166  * Corrected wrong interface descriptions.
1167  *
1168  * Revision 1.15 2000/05/31 12:56:37 meichel
1169  * Added initial Print SCP support
1170  *
1171  * Revision 1.14 2000/05/30 13:40:02 joergr
1172  * Removed methods which were already marked as "retired".
1173  * Added new section to the config file describing the query/retrieve server
1174  * settings.
1175  *
1176  * Revision 1.13 2000/03/08 16:28:49 meichel
1177  * Updated copyright header.
1178  *
1179  * Revision 1.12 1999/11/03 13:05:32 meichel
1180  * Added support for transmitting annotations in the film session label.
1181  * Added support for dump tool launched from DVInterface.
1182  *
1183  * Revision 1.11 1999/10/20 10:47:14 joergr
1184  * Added support for a down-scaled preview image of the current DICOM image
1185  * (e.g. useful for online-windowing or print preview).
1186  *
1187  * Revision 1.10 1999/10/19 14:46:02 meichel
1188  * added support for the Basic Annotation Box SOP Class
1189  * as well as access methods for Max Density and Min Density.
1190  *
1191  * Revision 1.9 1999/10/13 14:11:56 meichel
1192  * Added config file entries and access methods
1193  * for user-defined VOI presets, log directory, verbatim logging
1194  * and an explicit list of image display formats for each printer.
1195  *
1196  * Revision 1.8 1999/10/07 17:21:46 meichel
1197  * Reworked management of Presentation LUTs in order to create tighter
1198  * coupling between Softcopy and Print.
1199  *
1200  * Revision 1.7 1999/10/01 13:32:36 joergr
1201  * Added new option to config file: AlwaysDeleteTerminateJobs.
1202  *
1203  * Revision 1.6 1999/09/24 15:24:29 meichel
1204  * Added support for CP 173 (Presentation LUT clarifications)
1205  *
1206  * Revision 1.5 1999/09/23 17:37:13 meichel
1207  * Added support for Basic Film Session options to dcmpstat print code.
1208  *
1209  * Revision 1.4 1999/09/15 17:43:26 meichel
1210  * Implemented print job dispatcher code for dcmpstat, adapted dcmprtsv
1211  * and dcmpsprt applications.
1212  *
1213  * Revision 1.3 1999/09/13 15:19:09 meichel
1214  * Added implementations for a number of further print API methods.
1215  *
1216  * Revision 1.2 1999/09/10 12:46:45 meichel
1217  * Added implementations for a number of print API methods.
1218  *
1219  * Revision 1.1 1999/09/08 16:42:02 meichel
1220  * Moved configuration file evaluation to separate class.
1221  *
1222  *
1223  */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2