dcmsr/include/dcmtk/dcmsr/dsrcitem.h

00001 /*
00002  *
00003  *  Copyright (C) 2000-2010, OFFIS e.V.
00004  *  All rights reserved.  See COPYRIGHT file for details.
00005  *
00006  *  This software and supporting documentation were developed by
00007  *
00008  *    OFFIS e.V.
00009  *    R&D Division Health
00010  *    Escherweg 2
00011  *    D-26121 Oldenburg, Germany
00012  *
00013  *
00014  *  Module: dcmsr
00015  *
00016  *  Author: Joerg Riesmeier
00017  *
00018  *  Purpose:
00019  *    classes: DSRContentItem
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:16:32 $
00023  *  CVS/RCS Revision: $Revision: 1.19 $
00024  *  Status:           $State: Exp $
00025  *
00026  *  CVS/RCS Log at end of file
00027  *
00028  */
00029 
00030 
00031 #ifndef DSRCITEM_H
00032 #define DSRCITEM_H
00033 
00034 #include "dcmtk/config/osconfig.h"   /* make sure OS specific configuration is included first */
00035 
00036 #include "dcmtk/dcmsr/dsrtypes.h"
00037 #include "dcmtk/dcmsr/dsrdoctn.h"
00038 #include "dcmtk/dcmsr/dsrcodvl.h"
00039 #include "dcmtk/dcmsr/dsrnumvl.h"
00040 #include "dcmtk/dcmsr/dsrscovl.h"
00041 #include "dcmtk/dcmsr/dsrtcovl.h"
00042 #include "dcmtk/dcmsr/dsrcomvl.h"
00043 #include "dcmtk/dcmsr/dsrimgvl.h"
00044 #include "dcmtk/dcmsr/dsrwavvl.h"
00045 
00046 #include "dcmtk/ofstd/ofstring.h"
00047 
00048 
00049 /*---------------------*
00050  *  class declaration  *
00051  *---------------------*/
00052 
00056 class DSRContentItem
00057   : protected DSRTypes
00058 {
00059     // allow DSRDocumentTree to access protected method setTreeNode()
00060     friend class DSRDocumentTree;
00061 
00062   public:
00063 
00066     virtual ~DSRContentItem();
00067 
00072     OFBool isValid() const;
00073 
00078     OFBool isMarked() const;
00079 
00084     void setMark(const OFBool flag);
00085 
00090     E_ValueType getValueType() const;
00091 
00096     E_RelationshipType getRelationshipType() const;
00097 
00102     size_t getReferencedNodeID() const;
00103 
00108     const OFString &getStringValue() const;
00109 
00116     OFCondition setStringValue(const OFString &stringValue);
00117 
00122     DSRCodedEntryValue *getCodeValuePtr();
00123 
00128     const DSRCodedEntryValue &getCodeValue() const;
00129 
00135     OFCondition getCodeValue(DSRCodedEntryValue &codeValue) const;
00136 
00142     OFCondition setCodeValue(const DSRCodedEntryValue &codeValue);
00143 
00148     DSRNumericMeasurementValue *getNumericValuePtr();
00149 
00154     const DSRNumericMeasurementValue &getNumericValue() const;
00155 
00161     OFCondition getNumericValue(DSRNumericMeasurementValue &numericValue) const;
00162 
00168     OFCondition setNumericValue(const DSRNumericMeasurementValue &numericValue);
00169 
00174     DSRSpatialCoordinatesValue *getSpatialCoordinatesPtr();
00175 
00180     const DSRSpatialCoordinatesValue &getSpatialCoordinates() const;
00181 
00187     OFCondition getSpatialCoordinates(DSRSpatialCoordinatesValue &coordinatesValue) const;
00188 
00194     OFCondition setSpatialCoordinates(const DSRSpatialCoordinatesValue &coordinatesValue);
00195 
00200     DSRTemporalCoordinatesValue *getTemporalCoordinatesPtr();
00201 
00206     const DSRTemporalCoordinatesValue &getTemporalCoordinates() const;
00207 
00213     OFCondition getTemporalCoordinates(DSRTemporalCoordinatesValue &coordinatesValue) const;
00214 
00220     OFCondition setTemporalCoordinates(const DSRTemporalCoordinatesValue &coordinatesValue);
00221 
00226     DSRCompositeReferenceValue *getCompositeReferencePtr();
00227 
00232     const DSRCompositeReferenceValue &getCompositeReference() const;
00233 
00239     OFCondition getCompositeReference(DSRCompositeReferenceValue &referenceValue) const;
00240 
00246     OFCondition setCompositeReference(const DSRCompositeReferenceValue &referenceValue);
00247 
00252     DSRImageReferenceValue *getImageReferencePtr();
00253 
00258     const DSRImageReferenceValue &getImageReference() const;
00259 
00265     OFCondition getImageReference(DSRImageReferenceValue &referenceValue) const;
00266 
00272     OFCondition setImageReference(const DSRImageReferenceValue &referenceValue);
00273 
00278     DSRWaveformReferenceValue *getWaveformReferencePtr();
00279 
00284     const DSRWaveformReferenceValue &getWaveformReference() const;
00285 
00291     OFCondition getWaveformReference(DSRWaveformReferenceValue &referenceValue) const;
00292 
00298     OFCondition setWaveformReference(const DSRWaveformReferenceValue &referenceValue);
00299 
00306     E_ContinuityOfContent getContinuityOfContent() const;
00307 
00315     OFCondition setContinuityOfContent(const E_ContinuityOfContent continuityOfContent);
00316 
00323     DSRCodedEntryValue *getConceptNamePtr();
00324 
00331     const DSRCodedEntryValue &getConceptName() const;
00332 
00340     OFCondition getConceptName(DSRCodedEntryValue &conceptName) const;
00341 
00349     OFCondition setConceptName(const DSRCodedEntryValue &conceptName);
00350 
00357     const OFString &getObservationDateTime() const;
00358 
00367     OFCondition setObservationDateTime(const OFString &observationDateTime);
00368 
00382     OFCondition getTemplateIdentification(OFString &templateIdentifier,
00383                                           OFString &mappingResource) const;
00384 
00393     OFCondition setTemplateIdentification(const OFString &templateIdentifier,
00394                                           const OFString &mappingResource);
00395 
00396 
00397   protected:
00398 
00401     DSRContentItem();
00402 
00406     inline void setTreeNode(DSRDocumentTreeNode *node)
00407     {
00408         TreeNode = node;
00409     }
00410 
00411 
00412   private:
00413 
00415     DSRDocumentTreeNode *TreeNode;
00416 
00418     static const OFString                    EmptyString;
00420     static const DSRCodedEntryValue          EmptyCodedEntry;
00422     static const DSRNumericMeasurementValue  EmptyNumericMeasurement;
00424     static const DSRSpatialCoordinatesValue  EmptySpatialCoordinates;
00426     static const DSRTemporalCoordinatesValue EmptyTemporalCoordinates;
00428     static const DSRCompositeReferenceValue  EmptyCompositeReference;
00430     static const DSRImageReferenceValue      EmptyImageReference;
00432     static const DSRWaveformReferenceValue   EmptyWaveformReference;
00433 
00434 
00435  // --- declaration of copy constructor and assignment operator
00436 
00437     DSRContentItem(const DSRContentItem &);
00438     DSRContentItem &operator=(const DSRContentItem &);
00439 };
00440 
00441 
00442 #endif
00443 
00444 
00445 /*
00446  *  CVS/RCS Log:
00447  *  $Log: dsrcitem.h,v $
00448  *  Revision 1.19  2010-10-14 13:16:32  joergr
00449  *  Updated copyright header. Added reference to COPYRIGHT file.
00450  *
00451  *  Revision 1.18  2005-12-08 16:04:50  meichel
00452  *  Changed include path schema for all DCMTK header files
00453  *
00454  *  Revision 1.17  2003/12/16 15:57:51  joergr
00455  *  Added note that the condition for the Content Template Sequence is currently
00456  *  not checked.
00457  *
00458  *  Revision 1.16  2003/10/30 17:54:09  joergr
00459  *  Added full support for the ContentTemplateSequence (read/write, get/set
00460  *  template identification). Template constraints are not checked yet.
00461  *
00462  *  Revision 1.15  2003/08/07 12:18:57  joergr
00463  *  Updated documentation to get rid of doxygen warnings.
00464  *
00465  *  Revision 1.14  2001/09/26 13:04:04  meichel
00466  *  Adapted dcmsr to class OFCondition
00467  *
00468  *  Revision 1.13  2001/05/07 16:13:23  joergr
00469  *  Updated CVS header.
00470  *
00471  *  Revision 1.12  2001/01/18 15:53:32  joergr
00472  *  Added support for digital signatures.
00473  *
00474  *  Revision 1.11  2000/11/13 14:19:05  joergr
00475  *  Updated comments.
00476  *
00477  *  Revision 1.10  2000/11/07 18:11:29  joergr
00478  *  Enhanced support for by-reference relationships.
00479  *
00480  *  Revision 1.9  2000/11/01 16:11:26  joergr
00481  *  Now derive "protected" from base class DSRTypes instead of "public".
00482  *
00483  *  Revision 1.8  2000/10/26 14:16:18  joergr
00484  *  Added support for "Comprehensive SR".
00485  *  Added support for TCOORD content item.
00486  *
00487  *  Revision 1.7  2000/10/23 15:06:37  joergr
00488  *  Added/updated doc++ comments.
00489  *
00490  *  Revision 1.6  2000/10/20 10:15:42  joergr
00491  *  Renamed class DSRReferenceValue to DSRCompositeReferenceValue.
00492  *
00493  *  Revision 1.5  2000/10/18 16:58:27  joergr
00494  *  Added methods allowing direct access to certain content item values.
00495  *
00496  *  Revision 1.4  2000/10/17 12:34:31  joergr
00497  *  Added method checking content item for validity/completeness.
00498  *  Renamed methods for composite objects.
00499  *
00500  *  Revision 1.3  2000/10/16 16:29:36  joergr
00501  *  Updated comments.
00502  *
00503  *  Revision 1.2  2000/10/16 11:55:40  joergr
00504  *  Added doc++ comments.
00505  *  Added methods allowing direct access to certain content item values.
00506  *
00507  *  Revision 1.1  2000/10/13 07:49:23  joergr
00508  *  Added new module 'dcmsr' providing access to DICOM structured reporting
00509  *  documents (supplement 23).  Doc++ documentation not yet completed.
00510  *
00511  *
00512  */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1