141 lines
4.4 KiB
C++
141 lines
4.4 KiB
C++
/*
|
|
*
|
|
* Copyright (C) 1998-2012, OFFIS e.V.
|
|
* All rights reserved. See COPYRIGHT file for details.
|
|
*
|
|
* This software and supporting documentation were developed by
|
|
*
|
|
* OFFIS e.V.
|
|
* R&D Division Health
|
|
* Escherweg 2
|
|
* D-26121 Oldenburg, Germany
|
|
*
|
|
*
|
|
* Module: dcmpstat
|
|
*
|
|
* Author: Marco Eichelberg
|
|
*
|
|
* Purpose:
|
|
* classes: DVPSGraphicObject
|
|
*
|
|
*/
|
|
|
|
#ifndef DVPSGR_H
|
|
#define DVPSGR_H
|
|
|
|
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
|
|
#include "dcmtk/dcmdata/dctk.h"
|
|
#include "dcmtk/dcmpstat/dvpstyp.h"
|
|
#include "dcmtk/dcmpstat/dpdefine.h"
|
|
|
|
/** an item of the graphic object sequence in a presentation state (internal use only).
|
|
* This class manages the data structures comprising one item
|
|
* of the Graphic Object Sequence which is contained
|
|
* in the Graphic Annotation Sequence in a Presentation State object.
|
|
*/
|
|
|
|
class DCMTK_DCMPSTAT_EXPORT DVPSGraphicObject
|
|
{
|
|
public:
|
|
/// default constructor
|
|
DVPSGraphicObject();
|
|
|
|
/// copy constructor
|
|
DVPSGraphicObject(const DVPSGraphicObject& copy);
|
|
|
|
/** clone method.
|
|
* @return a pointer to a new DVPSGraphicObject object containing
|
|
* a copy of this object.
|
|
*/
|
|
DVPSGraphicObject *clone() { return new DVPSGraphicObject(*this); }
|
|
|
|
/// destructor
|
|
virtual ~DVPSGraphicObject();
|
|
|
|
/** reads a graphic object from a DICOM dataset.
|
|
* The DICOM elements of the Graphic Object item are copied
|
|
* from the dataset to this object.
|
|
* The completeness of the item (presence of all required elements,
|
|
* value multiplicity) is checked.
|
|
* If this method returns an error code, the object is in undefined state afterwards.
|
|
* @param dset the item of the GraphicObjectSequence from which the data is to be read
|
|
* @return EC_Normal if successful, an error code otherwise.
|
|
*/
|
|
OFCondition read(DcmItem &dset);
|
|
|
|
/** writes the graphic object managed by this object to a DICOM dataset.
|
|
* Copies of the DICOM element managed by this object are inserted into
|
|
* the DICOM dataset.
|
|
* @param dset the the item of the GraphicObjectSequence to which the data is written
|
|
* @return EC_Normal if successful, an error code otherwise.
|
|
*/
|
|
OFCondition write(DcmItem &dset);
|
|
|
|
/** gets the graphic annotation units.
|
|
* @return annotation units
|
|
*/
|
|
DVPSannotationUnit getAnnotationUnits();
|
|
|
|
/** gets the number of graphic points.
|
|
* @return number of graphic points
|
|
*/
|
|
size_t getNumberOfPoints();
|
|
|
|
/** gets one point from the graphic data.
|
|
* @param idx index of the graphic point, must be < getNumberOfPoints();
|
|
* @param x upon success the x value of the point is returned in this parameter
|
|
* @param y upon success the y value of the point is returned in this parameter
|
|
* @return EC_Normal if successful, an error code otherwise.
|
|
*/
|
|
OFCondition getPoint(size_t idx, Float32& x, Float32& y);
|
|
|
|
/** gets the graphic type of this graphic object.
|
|
* @return graphic type
|
|
*/
|
|
DVPSGraphicType getGraphicType();
|
|
|
|
/** checks if the graphic is filled
|
|
* @return OFTrue if graphic is filled.
|
|
*/
|
|
OFBool isFilled();
|
|
|
|
/** sets the graphic data for this graphic object.
|
|
* @param number number of graphic points in parameter "data"
|
|
* @param data pointer to an array of Float32 values with a size of (at least)
|
|
* 2*number. The values are copied into the graphic object.
|
|
* @param unit the graphic annotation units for this data.
|
|
* @return EC_Normal if successful, an error code otherwise.
|
|
*/
|
|
OFCondition setData(size_t number, const Float32 *data, DVPSannotationUnit unit);
|
|
|
|
/** sets the graphic type for the graphic object
|
|
* @param gtype the graphic type
|
|
* @return EC_Normal if successful, an error code otherwise.
|
|
*/
|
|
OFCondition setGraphicType(DVPSGraphicType gtype);
|
|
|
|
/** sets the graphic filled status for the graphic object
|
|
* @param isFilled OFTrue if graphic is filled, OFFalse otherwise.
|
|
* @return EC_Normal if successful, an error code otherwise.
|
|
*/
|
|
OFCondition setFilled(OFBool filled);
|
|
|
|
private:
|
|
|
|
/// private undefined assignment operator
|
|
DVPSGraphicObject& operator=(const DVPSGraphicObject&);
|
|
|
|
/// VR=CS, VM=1, Type 1
|
|
DcmCodeString graphicAnnotationUnits;
|
|
/// VR=US, VM=1, Type 1
|
|
DcmUnsignedShort numberOfGraphicPoints;
|
|
/// VR=FL, VM=2-n, Type 1
|
|
DcmFloatingPointSingle graphicData;
|
|
/// VR=CS, VM=1, Type 1
|
|
DcmCodeString graphicType;
|
|
/// VR=CS, VM=1, Type 1c
|
|
DcmCodeString graphicFilled;
|
|
};
|
|
|
|
#endif
|