00001 /* 00002 * 00003 * Copyright (C) 1993-2005, OFFIS 00004 * 00005 * This software and supporting documentation were developed by 00006 * 00007 * Kuratorium OFFIS e.V. 00008 * Healthcare Information and Communication Systems 00009 * Escherweg 2 00010 * D-26121 Oldenburg, Germany 00011 * 00012 * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY 00013 * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR 00014 * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR 00015 * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND 00016 * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. 00017 * 00018 * Module: dcmqrdb 00019 * 00020 * Author: Andrew Hewett, Marco Eichelberg 00021 * 00022 * Purpose: class DcmQueryRetrieveDatabaseHandle 00023 * 00024 * Last Update: $Author: onken $ 00025 * Update Date: $Date: 2005/12/16 09:12:33 $ 00026 * Source File: $Source: /share/dicom/cvs-depot/dcmtk/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h,v $ 00027 * CVS/RCS Revision: $Revision: 1.4 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef DCMQRDBA_H 00035 #define DCMQRDBA_H 00036 00037 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00038 00039 #define INCLUDE_CSTDLIB 00040 #define INCLUDE_CSTDIO 00041 #define INCLUDE_UNISTD 00042 #include "dcmtk/ofstd/ofstdinc.h" 00043 #include "dcmtk/ofstd/ofcond.h" 00044 00045 class DcmDataset; 00046 class DcmQueryRetrieveDatabaseStatus; 00047 00048 #ifndef MAXPATHLEN 00049 #define MAXPATHLEN 1024 00050 #endif 00051 00056 class DcmQueryRetrieveDatabaseHandle 00057 { 00058 public: 00059 00061 DcmQueryRetrieveDatabaseHandle() { } 00062 00067 virtual ~DcmQueryRetrieveDatabaseHandle(); 00068 00078 virtual OFCondition makeNewStoreFileName( 00079 const char *SOPClassUID, 00080 const char *SOPInstanceUID, 00081 char *newImageFileName) = 0; 00082 00094 virtual OFCondition storeRequest( 00095 const char *SOPClassUID, 00096 const char *SOPInstanceUID, 00097 const char *imageFileName, 00098 DcmQueryRetrieveDatabaseStatus *status, 00099 OFBool isNew = OFTrue ) = 0; 00100 00114 virtual OFCondition startFindRequest( 00115 const char *SOPClassUID, 00116 DcmDataset *findRequestIdentifiers, 00117 DcmQueryRetrieveDatabaseStatus *status) = 0; 00118 00130 virtual OFCondition nextFindResponse( 00131 DcmDataset **findResponseIdentifiers, 00132 DcmQueryRetrieveDatabaseStatus *status) = 0; 00133 00140 virtual OFCondition cancelFindRequest(DcmQueryRetrieveDatabaseStatus *status) = 0; 00141 00155 virtual OFCondition startMoveRequest( 00156 const char *SOPClassUID, 00157 DcmDataset *moveRequestIdentifiers, 00158 DcmQueryRetrieveDatabaseStatus *status) = 0; 00159 00179 virtual OFCondition nextMoveResponse( 00180 char *SOPClassUID, 00181 char *SOPInstanceUID, 00182 char *imageFileName, 00183 unsigned short *numberOfRemainingSubOperations, 00184 DcmQueryRetrieveDatabaseStatus *status) = 0; 00185 00192 virtual OFCondition cancelMoveRequest(DcmQueryRetrieveDatabaseStatus *status) = 0; 00193 00197 virtual OFCondition pruneInvalidRecords() = 0; 00198 00202 virtual void setDebugLevel(int debugLevel) = 0; 00203 00209 virtual void setIdentifierChecking(OFBool checkFind, OFBool checkMove) = 0; 00210 00211 }; 00212 00213 00217 class DcmQueryRetrieveDatabaseHandleFactory 00218 { 00219 public: 00228 virtual DcmQueryRetrieveDatabaseHandle *createDBHandle( 00229 const char *callingAETitle, 00230 const char *calledAETitle, 00231 OFCondition& result) const = 0; 00232 00235 virtual ~DcmQueryRetrieveDatabaseHandleFactory() {} 00236 00237 }; 00238 00239 #endif 00240 00241 /* 00242 * CVS Log 00243 * $Log: dcmqrdba.h,v $ 00244 * Revision 1.4 2005/12/16 09:12:33 onken 00245 * - Added virtual (dummy) destructor to avoid compiler warnings 00246 * 00247 * Revision 1.3 2005/12/08 16:04:21 meichel 00248 * Changed include path schema for all DCMTK header files 00249 * 00250 * Revision 1.2 2005/04/22 15:36:34 meichel 00251 * Passing calling aetitle to DcmQueryRetrieveDatabaseHandleFactory::createDBHandle 00252 * to allow configuration retrieval based on calling aetitle. 00253 * 00254 * Revision 1.1 2005/03/30 13:34:50 meichel 00255 * Initial release of module dcmqrdb that will replace module imagectn. 00256 * It provides a clear interface between the Q/R DICOM front-end and the 00257 * database back-end. The imagectn code has been re-factored into a minimal 00258 * class structure. 00259 * 00260 * 00261 */