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 #ifndef DVPSSV_H
00031 #define DVPSSV_H
00032
00033 #include "dcmtk/config/osconfig.h"
00034 #include "dcmtk/dcmdata/dcvrus.h"
00035 #include "dcmtk/dcmdata/dcvrds.h"
00036 #include "dcmtk/dcmdata/dcvrlo.h"
00037 #include "dcmtk/dcmpstat/dvpsril.h"
00038 #include "dcmtk/dcmpstat/dvpstyp.h"
00039
00040 class DVPSReferencedSeries_PList;
00041
00045 class DVPSSoftcopyVOI
00046 {
00047 public:
00049 DVPSSoftcopyVOI();
00050
00052 DVPSSoftcopyVOI(const DVPSSoftcopyVOI& copy);
00053
00058 DVPSSoftcopyVOI *clone() { return new DVPSSoftcopyVOI(*this); }
00059
00061 virtual ~DVPSSoftcopyVOI();
00062
00072 OFCondition read(DcmItem &dset);
00073
00080 OFCondition write(DcmItem &dset);
00081
00087 OFBool isApplicable(const char *instanceUID, unsigned long frame);
00088
00095 OFBool matchesApplicability(const char *instanceUID, unsigned long frame, DVPSObjectApplicability applicability);
00096
00107 OFCondition addImageReference(
00108 const char *sopclassUID,
00109 const char *instanceUID,
00110 unsigned long frame,
00111 DVPSObjectApplicability applicability);
00112
00127 void removeImageReference(
00128 DVPSReferencedSeries_PList& allReferences,
00129 const char *instanceUID,
00130 unsigned long frame,
00131 unsigned long numberOfFrames,
00132 DVPSObjectApplicability applicability);
00133
00136 void clearImageReferences() { referencedImageList.clear(); }
00137
00141 OFBool imageReferencesEmpty() { if (referencedImageList.size()==0) return OFTrue; else return OFFalse; }
00142
00146 OFBool haveLUT() { return useLUT; }
00147
00152 const char *getCurrentVOIDescription();
00153
00159 OFCondition getCurrentWindowWidth(double &w);
00160
00166 OFCondition getCurrentWindowCenter(double &c);
00167
00172 DcmUnsignedShort& getLUTDescriptor() { return voiLUTDescriptor; }
00173
00178 DcmUnsignedShort& getLUTData() { return voiLUTData; }
00179
00186 OFCondition setVOIWindow(double wCenter, double wWidth, const char *description=NULL);
00187
00195 OFCondition setVOILUT(
00196 DcmUnsignedShort& lutDescriptor,
00197 DcmUnsignedShort& lutData,
00198 DcmLongString& lutExplanation);
00199
00200 private:
00202 DVPSSoftcopyVOI& operator=(const DVPSSoftcopyVOI&);
00203
00204
00205
00206
00207
00208
00210 DVPSReferencedImage_PList referencedImageList;
00212 OFBool useLUT;
00214 DcmUnsignedShort voiLUTDescriptor;
00216 DcmLongString voiLUTExplanation;
00218 DcmUnsignedShort voiLUTData;
00220 DcmDecimalString windowCenter;
00222 DcmDecimalString windowWidth;
00224 DcmLongString windowCenterWidthExplanation;
00225
00226 };
00227
00228 #endif
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264