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
00035 #ifndef DSRNUMVL_H
00036 #define DSRNUMVL_H
00037
00038 #include "osconfig.h"
00039
00040 #include "dsrcodvl.h"
00041
00042 #include "ofstring.h"
00043
00044
00045
00046
00047
00048
00051 class DSRNumericMeasurementValue
00052 {
00053
00054 friend class DSRContentItem;
00055
00056 public:
00057
00060 DSRNumericMeasurementValue();
00061
00068 DSRNumericMeasurementValue(const OFString &numericValue,
00069 const DSRCodedEntryValue &measurementUnit);
00070
00078 DSRNumericMeasurementValue(const OFString &numericValue,
00079 const DSRCodedEntryValue &measurementUnit,
00080 const DSRCodedEntryValue &valueQualifier);
00081
00085 DSRNumericMeasurementValue(const DSRNumericMeasurementValue &numericMeasurement);
00086
00089 virtual ~DSRNumericMeasurementValue();
00090
00095 DSRNumericMeasurementValue &operator=(const DSRNumericMeasurementValue &numericMeasurement);
00096
00100 virtual void clear();
00101
00107 virtual OFBool isValid() const;
00108
00113 virtual OFBool isEmpty() const;
00114
00123 virtual OFCondition print(ostream &stream,
00124 const size_t flags) const;
00125
00131 virtual OFCondition readXML(const DSRXMLDocument &doc,
00132 DSRXMLCursor cursor);
00133
00140 virtual OFCondition writeXML(ostream &stream,
00141 const size_t flags,
00142 OFConsole *logStream) const;
00143
00152 virtual OFCondition readSequence(DcmItem &dataset,
00153 OFConsole *logStream);
00154
00162 virtual OFCondition writeSequence(DcmItem &dataset,
00163 OFConsole *logStream) const;
00164
00174 virtual OFCondition renderHTML(ostream &docStream,
00175 ostream &annexStream,
00176 size_t &annexNumber,
00177 const size_t flags,
00178 OFConsole *logStream) const;
00179
00183 inline const DSRNumericMeasurementValue &getValue() const
00184 {
00185 return *this;
00186 }
00187
00192 OFCondition getValue(DSRNumericMeasurementValue &numericMeasurement) const;
00193
00197 inline const OFString &getNumericValue() const
00198 {
00199 return NumericValue;
00200 }
00201
00205 inline const DSRCodedEntryValue &getMeasurementUnit() const
00206 {
00207 return MeasurementUnit;
00208 }
00209
00213 inline const DSRCodedEntryValue &getNumericValueQualifier() const
00214 {
00215 return ValueQualifier;
00216 }
00217
00222 OFCondition getMeasurementUnit(DSRCodedEntryValue &measurementUnit) const;
00223
00230 OFCondition setValue(const DSRNumericMeasurementValue &numericMeasurement);
00231
00239 OFCondition setValue(const OFString &numericValue,
00240 const DSRCodedEntryValue &measurementUnit);
00241
00251 OFCondition setValue(const OFString &numericValue,
00252 const DSRCodedEntryValue &measurementUnit,
00253 const DSRCodedEntryValue &valueQualifier);
00254
00261 OFCondition setNumericValue(const OFString &numericValue);
00262
00269 OFCondition setMeasurementUnit(const DSRCodedEntryValue &measurementUnit);
00270
00279 OFCondition setNumericValueQualifier(const DSRCodedEntryValue &valueQualifier);
00280
00281
00282 protected:
00283
00287 inline DSRNumericMeasurementValue *getValuePtr()
00288 {
00289 return this;
00290 }
00291
00297 virtual OFCondition readItem(DcmItem &dataset,
00298 OFConsole *logStream);
00299
00305 virtual OFCondition writeItem(DcmItem &dataset,
00306 OFConsole *logStream) const;
00307
00314 virtual OFBool checkNumericValue(const OFString &numericValue) const;
00315
00321 virtual OFBool checkMeasurementUnit(const DSRCodedEntryValue &measurementUnit) const;
00322
00330 virtual OFBool checkNumericValueQualifier(const DSRCodedEntryValue &valueQualifier) const;
00331
00332
00333 private:
00334
00336 OFString NumericValue;
00338 DSRCodedEntryValue MeasurementUnit;
00340 DSRCodedEntryValue ValueQualifier;
00341 };
00342
00343
00344 #endif
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379