00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef DCMQRCBS_H
00035 #define DCMQRCBS_H
00036
00037 #include "dcmtk/config/osconfig.h"
00038 #include "dcmtk/dcmnet/dimse.h"
00039
00040 class DcmQueryRetrieveDatabaseHandle;
00041 class DcmQueryRetrieveOptions;
00042 class DcmFileFormat;
00043
00047 class DcmQueryRetrieveStoreContext
00048 {
00049 public:
00057 DcmQueryRetrieveStoreContext(
00058 DcmQueryRetrieveDatabaseHandle& handle,
00059 const DcmQueryRetrieveOptions& options,
00060 DIC_US s,
00061 DcmFileFormat *ff,
00062 OFBool correctuidpadding)
00063 : dbHandle(handle)
00064 , options_(options)
00065 , status(s)
00066 , fileName(NULL)
00067 , dcmff(ff)
00068 , correctUIDPadding(correctuidpadding)
00069 {
00070 }
00071
00075 void setStatus(DIC_US s) { status = s; }
00076
00078 DIC_US getStatus() const { return status; }
00079
00083 void setFileName(const char *fn) { fileName = fn; }
00084
00093 void callbackHandler(
00094 T_DIMSE_StoreProgress *progress,
00095 T_DIMSE_C_StoreRQ *req,
00096 char *imageFileName,
00097 DcmDataset **imageDataSet,
00098 T_DIMSE_C_StoreRSP *rsp,
00099 DcmDataset **stDetail);
00100
00101 private:
00102
00103 void updateDisplay(T_DIMSE_StoreProgress * progress);
00104
00105 void saveImageToDB(
00106 T_DIMSE_C_StoreRQ *req,
00107 const char *imageFileName,
00108
00109 T_DIMSE_C_StoreRSP *rsp,
00110 DcmDataset **stDetail);
00111
00112 void writeToFile(
00113 DcmFileFormat *ff,
00114 const char* fname,
00115 T_DIMSE_C_StoreRSP *rsp);
00116
00117 void checkRequestAgainstDataset(
00118 T_DIMSE_C_StoreRQ *req,
00119 const char* fname,
00120 DcmDataset *dataSet,
00121 T_DIMSE_C_StoreRSP *rsp,
00122 OFBool uidPadding);
00123
00125 DcmQueryRetrieveDatabaseHandle& dbHandle;
00126
00128 const DcmQueryRetrieveOptions& options_;
00129
00131 DIC_US status;
00132
00134 const char *fileName;
00135
00137 DcmFileFormat *dcmff;
00138
00140 OFBool correctUIDPadding;
00141
00142 };
00143
00144 #endif
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162