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