dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h

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  */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1