/usr/include/dcmtk/dcmqrdb/dcmqrdba.h is in libdcmtk-dev 3.6.2-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | /*
*
* Copyright (C) 1993-2017, 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: dcmqrdb
*
* Author: Andrew Hewett, Marco Eichelberg
*
* Purpose: class DcmQueryRetrieveDatabaseHandle
*
*/
#ifndef DCMQRDBA_H
#define DCMQRDBA_H
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#define INCLUDE_CSTDLIB
#define INCLUDE_CSTDIO
#define INCLUDE_UNISTD
#include "dcmtk/ofstd/ofstdinc.h"
#include "dcmtk/ofstd/ofcond.h"
#include "dcmtk/dcmqrdb/qrdefine.h"
class DcmDataset;
class DcmQueryRetrieveDatabaseStatus;
struct DcmQueryRetrieveCharacterSetOptions;
#ifndef MAXPATHLEN
#define MAXPATHLEN 1024
#endif
/** abstract base class for database handles. A database handle maintains
* a connection to a database and encapsulates database support for
* store, find and move/get operations.
*/
class DCMTK_DCMQRDB_EXPORT DcmQueryRetrieveDatabaseHandle
{
public:
/// default constructor
DcmQueryRetrieveDatabaseHandle() { }
/** Destructor. Destroys handle, cancels any ongoing
* request if necessary, deletes temporary files used for C-STORE and
* sub-operations of C-MOVE.
*/
virtual ~DcmQueryRetrieveDatabaseHandle();
/** create a filename under which a DICOM object that is currently
* being received through a C-STORE operation can be stored.
* @param SOPClassUID SOP class UID of DICOM instance
* @param SOPInstanceUID SOP instance UID of DICOM instance
* @param newImageFileName file name is returned in this parameter.
* Memory must be provided by the caller and should be at least MAXPATHLEN+1
* characters. The file name generated should be an absolute file name.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition makeNewStoreFileName(
const char *SOPClassUID,
const char *SOPInstanceUID,
char *newImageFileName) = 0;
/** register the given DICOM object, which has been received through a C-STORE
* operation and stored in a file, in the database.
* @param SOPClassUID SOP class UID of DICOM instance
* @param SOPInstanceUID SOP instance UID of DICOM instance
* @param imageFileName file name (full path) of DICOM instance
* @param status pointer to DB status object in which a DIMSE status code
suitable for use with the C-STORE-RSP message is set.
* @param isNew if true, the instance is marked as "new" in the database,
* if such a flag is maintained in the database.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition storeRequest(
const char *SOPClassUID,
const char *SOPInstanceUID,
const char *imageFileName,
DcmQueryRetrieveDatabaseStatus *status,
OFBool isNew = OFTrue ) = 0;
/** initiate FIND operation using the given SOP class UID (which identifies
* the query model) and DICOM dataset containing find request identifiers.
* @param SOPClassUID SOP class UID of query service, identifies Q/R model
* @param findRequestIdentifiers dataset containing request identifiers (i.e., the query)
* The caller retains responsibility for destroying the
* findRequestIdentifiers when no longer needed.
* @param status pointer to DB status object in which a DIMSE status code
* suitable for use with the C-FIND-RSP message is set. Status will be
* PENDING if any FIND responses will be generated or SUCCESS if no FIND responses will
* be generated (SUCCESS indicates the completion of a operation), or
* another status code upon failure.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition startFindRequest(
const char *SOPClassUID,
DcmDataset *findRequestIdentifiers,
DcmQueryRetrieveDatabaseStatus *status) = 0;
/** return the next available FIND response as a new DICOM dataset.
* @param findResponseIdentifiers DICOM dataset returned in this parameter.
* The caller is responsible for destroying the findResponseIdentifiers
* when no longer needed.
* @param status pointer to DB status object in which a DIMSE status code
* suitable for use with the C-FIND-RSP message is set. Status will be
* PENDING if more FIND responses will be generated or SUCCESS if no more
* FIND responses will be generated (SUCCESS indicates the completion of
* a operation), or another status code upon failure.
* @param characterSetOptions the character set options for response conversion etc.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition nextFindResponse(
DcmDataset **findResponseIdentifiers,
DcmQueryRetrieveDatabaseStatus *status,
const DcmQueryRetrieveCharacterSetOptions& characterSetOptions) = 0;
/** cancel the ongoing FIND request, stop and reset every running operation
* associated with this request, delete existing temporary files.
* @param status pointer to DB status object in which a DIMSE status code
* suitable for use with the C-FIND-RSP message is set.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition cancelFindRequest(DcmQueryRetrieveDatabaseStatus *status) = 0;
/** initiate MOVE operation using the given SOP class UID (which identifies
* the retrieve model) and DICOM dataset containing move request identifiers.
* @param SOPClassUID SOP class UID of retrieve service, identifies Q/R model
* @param moveRequestIdentifiers dataset containing request identifiers (i.e., the query)
* The caller retains responsibility for destroying the
* moveRequestIdentifiers when no longer needed.
* @param status pointer to DB status object in which a DIMSE status code
* suitable for use with the C-MOVE-RSP message is set. Status will be
* PENDING if any MOVE responses will be generated or SUCCESS if no MOVE responses will
* be generated (SUCCESS indicates the completion of a operation), or
* another status code upon failure.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition startMoveRequest(
const char *SOPClassUID,
DcmDataset *moveRequestIdentifiers,
DcmQueryRetrieveDatabaseStatus *status) = 0;
/** Constructs the information required for the next available C-MOVE
* sub-operation (the image SOP class UID, SOP Instance UID and an
* imageFileName containing the requested data).
* @param SOPClassUID pointer to string of at least 65 characters into
* which the SOP class UID for the next DICOM object to be transferred is copied.
* @param SOPInstanceUID pointer to string of at least 65 characters into
* which the SOP instance UID for the next DICOM object to be transferred is copied.
* @param imageFileName pointer to string of at least MAXPATHLEN+1 characters into
* which the file path for the next DICOM object to be transferred is copied.
* @param numberOfRemainingSubOperations On return, this parameter will contain
* the number of suboperations still remaining for the request
* (this number is needed by move responses with PENDING status).
* @param status pointer to DB status object in which a DIMSE status code
* suitable for use with the C-MOVE-RSP message is set. Status will be
* PENDING if more MOVE responses will be generated or SUCCESS if no more
* MOVE responses will be generated (SUCCESS indicates the completion of
* a operation), or another status code upon failure.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition nextMoveResponse(
char *SOPClassUID,
char *SOPInstanceUID,
char *imageFileName,
unsigned short *numberOfRemainingSubOperations,
DcmQueryRetrieveDatabaseStatus *status) = 0;
/** cancel the ongoing MOVE request, stop and reset every running operation
* associated with this request, delete existing temporary files.
* @param status pointer to DB status object in which a DIMSE status code
* suitable for use with the C-MOVE-RSP message is set.
* @return EC_Normal upon normal completion, or some other OFCondition code upon failure.
*/
virtual OFCondition cancelMoveRequest(DcmQueryRetrieveDatabaseStatus *status) = 0;
/** Prune invalid records from the database.
* Records referring to non-existant image files are invalid.
*/
virtual OFCondition pruneInvalidRecords() = 0;
/** Configure the DB module to perform (or not perform) checking
* of FIND and MOVE request identifiers. Default is no checking.
* @param checkFind checking for C-FIND parameters
* @param checkMove checking for C-MOVE parameters
*/
virtual void setIdentifierChecking(OFBool checkFind, OFBool checkMove) = 0;
};
/** abstract factory class. Instances of this class are able to create database
* handles for a given called application entity title.
*/
class DCMTK_DCMQRDB_EXPORT DcmQueryRetrieveDatabaseHandleFactory
{
public:
/** this method creates a new database handle instance on the heap and returns
* a pointer to it, along with a result that indicates if the instance was
* successfully initialized, i.e. connected to the database
* @param callingAETitle calling aetitle
* @param calledAETitle called aetitle
* @param result result returned in this variable
* @return pointer to database object, must not be NULL if result is EC_Normal.
*/
virtual DcmQueryRetrieveDatabaseHandle *createDBHandle(
const char *callingAETitle,
const char *calledAETitle,
OFCondition& result) const = 0;
/** Virtual Destructor
*/
virtual ~DcmQueryRetrieveDatabaseHandleFactory() {}
};
#endif
|