00001 /* 00002 * 00003 * Copyright (C) 1993-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * 00014 * Module: dcmqrdb 00015 * 00016 * Author: Andrew Hewett, Marco Eichelberg 00017 * 00018 * Purpose: class DcmQueryRetrieveDatabaseHandle 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:16:41 $ 00022 * CVS/RCS Revision: $Revision: 1.7 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 #ifndef DCMQRDBA_H 00030 #define DCMQRDBA_H 00031 00032 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00033 00034 #define INCLUDE_CSTDLIB 00035 #define INCLUDE_CSTDIO 00036 #define INCLUDE_UNISTD 00037 #include "dcmtk/ofstd/ofstdinc.h" 00038 #include "dcmtk/ofstd/ofcond.h" 00039 00040 class DcmDataset; 00041 class DcmQueryRetrieveDatabaseStatus; 00042 00043 #ifndef MAXPATHLEN 00044 #define MAXPATHLEN 1024 00045 #endif 00046 00051 class DcmQueryRetrieveDatabaseHandle 00052 { 00053 public: 00054 00056 DcmQueryRetrieveDatabaseHandle() { } 00057 00062 virtual ~DcmQueryRetrieveDatabaseHandle(); 00063 00073 virtual OFCondition makeNewStoreFileName( 00074 const char *SOPClassUID, 00075 const char *SOPInstanceUID, 00076 char *newImageFileName) = 0; 00077 00089 virtual OFCondition storeRequest( 00090 const char *SOPClassUID, 00091 const char *SOPInstanceUID, 00092 const char *imageFileName, 00093 DcmQueryRetrieveDatabaseStatus *status, 00094 OFBool isNew = OFTrue ) = 0; 00095 00109 virtual OFCondition startFindRequest( 00110 const char *SOPClassUID, 00111 DcmDataset *findRequestIdentifiers, 00112 DcmQueryRetrieveDatabaseStatus *status) = 0; 00113 00125 virtual OFCondition nextFindResponse( 00126 DcmDataset **findResponseIdentifiers, 00127 DcmQueryRetrieveDatabaseStatus *status) = 0; 00128 00135 virtual OFCondition cancelFindRequest(DcmQueryRetrieveDatabaseStatus *status) = 0; 00136 00150 virtual OFCondition startMoveRequest( 00151 const char *SOPClassUID, 00152 DcmDataset *moveRequestIdentifiers, 00153 DcmQueryRetrieveDatabaseStatus *status) = 0; 00154 00174 virtual OFCondition nextMoveResponse( 00175 char *SOPClassUID, 00176 char *SOPInstanceUID, 00177 char *imageFileName, 00178 unsigned short *numberOfRemainingSubOperations, 00179 DcmQueryRetrieveDatabaseStatus *status) = 0; 00180 00187 virtual OFCondition cancelMoveRequest(DcmQueryRetrieveDatabaseStatus *status) = 0; 00188 00192 virtual OFCondition pruneInvalidRecords() = 0; 00193 00199 virtual void setIdentifierChecking(OFBool checkFind, OFBool checkMove) = 0; 00200 00201 }; 00202 00203 00207 class DcmQueryRetrieveDatabaseHandleFactory 00208 { 00209 public: 00218 virtual DcmQueryRetrieveDatabaseHandle *createDBHandle( 00219 const char *callingAETitle, 00220 const char *calledAETitle, 00221 OFCondition& result) const = 0; 00222 00225 virtual ~DcmQueryRetrieveDatabaseHandleFactory() {} 00226 00227 }; 00228 00229 #endif 00230 00231 /* 00232 * CVS Log 00233 * $Log: dcmqrdba.h,v $ 00234 * Revision 1.7 2010-10-14 13:16:41 joergr 00235 * Updated copyright header. Added reference to COPYRIGHT file. 00236 * 00237 * Revision 1.6 2009-11-24 10:10:42 uli 00238 * Switched to logging mechanism provided by the "new" oflog module. 00239 * 00240 * Revision 1.5 2009-08-21 09:50:07 joergr 00241 * Replaced tabs by spaces and updated copyright date. 00242 * 00243 * Revision 1.4 2005/12/16 09:12:33 onken 00244 * - Added virtual (dummy) destructor to avoid compiler warnings 00245 * 00246 * Revision 1.3 2005/12/08 16:04:21 meichel 00247 * Changed include path schema for all DCMTK header files 00248 * 00249 * Revision 1.2 2005/04/22 15:36:34 meichel 00250 * Passing calling aetitle to DcmQueryRetrieveDatabaseHandleFactory::createDBHandle 00251 * to allow configuration retrieval based on calling aetitle. 00252 * 00253 * Revision 1.1 2005/03/30 13:34:50 meichel 00254 * Initial release of module dcmqrdb that will replace module imagectn. 00255 * It provides a clear interface between the Q/R DICOM front-end and the 00256 * database back-end. The imagectn code has been re-factored into a minimal 00257 * class structure. 00258 * 00259 * 00260 */