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 __DVPSSV_H__
00035
#define __DVPSSV_H__
00036
00037
#include "osconfig.h"
00038
#include "ofstring.h"
00039
#include "dctk.h"
00040
#include "dvpsril.h"
00041
#include "dvpstyp.h"
00042
00043
class DVPSReferencedSeries_PList;
00044
00048 class DVPSSoftcopyVOI
00049 {
00050
public:
00052
DVPSSoftcopyVOI();
00053
00055
DVPSSoftcopyVOI(
const DVPSSoftcopyVOI& copy);
00056
00061 DVPSSoftcopyVOI *
clone() {
return new DVPSSoftcopyVOI(*
this); }
00062
00064
virtual ~DVPSSoftcopyVOI();
00065
00075
OFCondition read(
DcmItem &dset);
00076
00083
OFCondition write(
DcmItem &dset);
00084
00090 OFBool
isApplicable(
const char *instanceUID,
unsigned long frame);
00091
00098 OFBool
matchesApplicability(
const char *instanceUID,
unsigned long frame, DVPSObjectApplicability applicability);
00099
00110
OFCondition addImageReference(
00111
const char *sopclassUID,
00112
const char *instanceUID,
00113
unsigned long frame,
00114 DVPSObjectApplicability applicability);
00115
00130
void removeImageReference(
00131
DVPSReferencedSeries_PList& allReferences,
00132
const char *instanceUID,
00133
unsigned long frame,
00134
unsigned long numberOfFrames,
00135 DVPSObjectApplicability applicability);
00136
00139 void clearImageReferences() {
referencedImageList.
clear(); }
00140
00144 OFBool
imageReferencesEmpty() {
if (
referencedImageList.
size()==0)
return OFTrue;
else return OFFalse; }
00145
00149 OFBool
haveLUT() {
return useLUT; }
00150
00155
const char *
getCurrentVOIDescription();
00156
00162
OFCondition getCurrentWindowWidth(
double &w);
00163
00169
OFCondition getCurrentWindowCenter(
double &c);
00170
00175 DcmUnsignedShort&
getLUTDescriptor() {
return voiLUTDescriptor; }
00176
00181 DcmUnsignedShort&
getLUTData() {
return voiLUTData; }
00182
00189
OFCondition setVOIWindow(
double wCenter,
double wWidth,
const char *description=NULL);
00190
00198
OFCondition setVOILUT(
00199
DcmUnsignedShort& lutDescriptor,
00200
DcmUnsignedShort& lutData,
00201
DcmLongString& lutExplanation);
00202
00208
void setLog(
OFConsole *stream, OFBool verbMode, OFBool dbgMode);
00209
00210
private:
00212
DVPSSoftcopyVOI&
operator=(
const DVPSSoftcopyVOI&);
00213
00214
00215
00216
00217
00218
00220 DVPSReferencedImage_PList referencedImageList;
00222 OFBool
useLUT;
00224 DcmUnsignedShort voiLUTDescriptor;
00226 DcmLongString voiLUTExplanation;
00228 DcmUnsignedShort voiLUTData;
00230 DcmDecimalString windowCenter;
00232 DcmDecimalString windowWidth;
00234 DcmLongString windowCenterWidthExplanation;
00235
00238 OFConsole *
logstream;
00239
00242 OFBool
verboseMode;
00243
00246 OFBool
debugMode;
00247
00248
00249 };
00250
00251
#endif
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272