dsrcitem.h

00001 /*
00002  *
00003  *  Copyright (C) 2000-2005, OFFIS
00004  *
00005  *  This software and supporting documentation were developed by
00006  *
00007  *    Kuratorium OFFIS e.V.
00008  *    Healthcare Information and Communication Systems
00009  *    Escherweg 2
00010  *    D-26121 Oldenburg, Germany
00011  *
00012  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
00013  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
00014  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
00015  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
00016  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
00017  *
00018  *  Module: dcmsr
00019  *
00020  *  Author: Joerg Riesmeier
00021  *
00022  *  Purpose:
00023  *    classes: DSRContentItem
00024  *
00025  *  Last Update:      $Author: meichel $
00026  *  Update Date:      $Date: 2005/12/08 16:04:50 $
00027  *  CVS/RCS Revision: $Revision: 1.18 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 
00035 #ifndef DSRCITEM_H
00036 #define DSRCITEM_H
00037 
00038 #include "dcmtk/config/osconfig.h"   /* make sure OS specific configuration is included first */
00039 
00040 #include "dcmtk/dcmsr/dsrtypes.h"
00041 #include "dcmtk/dcmsr/dsrdoctn.h"
00042 #include "dcmtk/dcmsr/dsrcodvl.h"
00043 #include "dcmtk/dcmsr/dsrnumvl.h"
00044 #include "dcmtk/dcmsr/dsrscovl.h"
00045 #include "dcmtk/dcmsr/dsrtcovl.h"
00046 #include "dcmtk/dcmsr/dsrcomvl.h"
00047 #include "dcmtk/dcmsr/dsrimgvl.h"
00048 #include "dcmtk/dcmsr/dsrwavvl.h"
00049 
00050 #include "dcmtk/ofstd/ofstring.h"
00051 
00052 
00053 /*---------------------*
00054  *  class declaration  *
00055  *---------------------*/
00056 
00060 class DSRContentItem
00061   : protected DSRTypes
00062 {
00063     // allow DSRDocumentTree to access protected method setTreeNode()
00064     friend class DSRDocumentTree;
00065 
00066   public:
00067 
00070     virtual ~DSRContentItem();
00071 
00076     OFBool isValid() const;
00077 
00082     OFBool isMarked() const;
00083 
00088     void setMark(const OFBool flag);
00089 
00094     E_ValueType getValueType() const;
00095 
00100     E_RelationshipType getRelationshipType() const;
00101 
00106     size_t getReferencedNodeID() const;
00107 
00112     const OFString &getStringValue() const;
00113 
00120     OFCondition setStringValue(const OFString &stringValue);
00121 
00126     DSRCodedEntryValue *getCodeValuePtr();
00127 
00132     const DSRCodedEntryValue &getCodeValue() const;
00133 
00139     OFCondition getCodeValue(DSRCodedEntryValue &codeValue) const;
00140 
00146     OFCondition setCodeValue(const DSRCodedEntryValue &codeValue);
00147 
00152     DSRNumericMeasurementValue *getNumericValuePtr();
00153 
00158     const DSRNumericMeasurementValue &getNumericValue() const;
00159 
00165     OFCondition getNumericValue(DSRNumericMeasurementValue &numericValue) const;
00166 
00172     OFCondition setNumericValue(const DSRNumericMeasurementValue &numericValue);
00173 
00178     DSRSpatialCoordinatesValue *getSpatialCoordinatesPtr();
00179 
00184     const DSRSpatialCoordinatesValue &getSpatialCoordinates() const;
00185 
00191     OFCondition getSpatialCoordinates(DSRSpatialCoordinatesValue &coordinatesValue) const;
00192 
00198     OFCondition setSpatialCoordinates(const DSRSpatialCoordinatesValue &coordinatesValue);
00199 
00204     DSRTemporalCoordinatesValue *getTemporalCoordinatesPtr();
00205 
00210     const DSRTemporalCoordinatesValue &getTemporalCoordinates() const;
00211 
00217     OFCondition getTemporalCoordinates(DSRTemporalCoordinatesValue &coordinatesValue) const;
00218 
00224     OFCondition setTemporalCoordinates(const DSRTemporalCoordinatesValue &coordinatesValue);
00225 
00230     DSRCompositeReferenceValue *getCompositeReferencePtr();
00231 
00236     const DSRCompositeReferenceValue &getCompositeReference() const;
00237 
00243     OFCondition getCompositeReference(DSRCompositeReferenceValue &referenceValue) const;
00244 
00250     OFCondition setCompositeReference(const DSRCompositeReferenceValue &referenceValue);
00251 
00256     DSRImageReferenceValue *getImageReferencePtr();
00257 
00262     const DSRImageReferenceValue &getImageReference() const;
00263 
00269     OFCondition getImageReference(DSRImageReferenceValue &referenceValue) const;
00270 
00276     OFCondition setImageReference(const DSRImageReferenceValue &referenceValue);
00277 
00282     DSRWaveformReferenceValue *getWaveformReferencePtr();
00283 
00288     const DSRWaveformReferenceValue &getWaveformReference() const;
00289 
00295     OFCondition getWaveformReference(DSRWaveformReferenceValue &referenceValue) const;
00296 
00302     OFCondition setWaveformReference(const DSRWaveformReferenceValue &referenceValue);
00303 
00310     E_ContinuityOfContent getContinuityOfContent() const;
00311 
00319     OFCondition setContinuityOfContent(const E_ContinuityOfContent continuityOfContent);
00320 
00327     DSRCodedEntryValue *getConceptNamePtr();
00328 
00335     const DSRCodedEntryValue &getConceptName() const;
00336 
00344     OFCondition getConceptName(DSRCodedEntryValue &conceptName) const;
00345 
00353     OFCondition setConceptName(const DSRCodedEntryValue &conceptName);
00354 
00361     const OFString &getObservationDateTime() const;
00362 
00371     OFCondition setObservationDateTime(const OFString &observationDateTime);
00372 
00386     OFCondition getTemplateIdentification(OFString &templateIdentifier,
00387                                           OFString &mappingResource) const;
00388 
00397     OFCondition setTemplateIdentification(const OFString &templateIdentifier,
00398                                           const OFString &mappingResource);
00399 
00400 
00401   protected:
00402 
00405     DSRContentItem();
00406 
00410     inline void setTreeNode(DSRDocumentTreeNode *node)
00411     {
00412         TreeNode = node;
00413     }
00414 
00415 
00416   private:
00417 
00419     DSRDocumentTreeNode *TreeNode;
00420 
00422     static const OFString                    EmptyString;
00424     static const DSRCodedEntryValue          EmptyCodedEntry;
00426     static const DSRNumericMeasurementValue  EmptyNumericMeasurement;
00428     static const DSRSpatialCoordinatesValue  EmptySpatialCoordinates;
00430     static const DSRTemporalCoordinatesValue EmptyTemporalCoordinates;
00432     static const DSRCompositeReferenceValue  EmptyCompositeReference;
00434     static const DSRImageReferenceValue      EmptyImageReference;
00436     static const DSRWaveformReferenceValue   EmptyWaveformReference;
00437 
00438 
00439  // --- declaration of copy constructor and assignment operator
00440 
00441     DSRContentItem(const DSRContentItem &);
00442     DSRContentItem &operator=(const DSRContentItem &);
00443 };
00444 
00445 
00446 #endif
00447 
00448 
00449 /*
00450  *  CVS/RCS Log:
00451  *  $Log: dsrcitem.h,v $
00452  *  Revision 1.18  2005/12/08 16:04:50  meichel
00453  *  Changed include path schema for all DCMTK header files
00454  *
00455  *  Revision 1.17  2003/12/16 15:57:51  joergr
00456  *  Added note that the condition for the Content Template Sequence is currently
00457  *  not checked.
00458  *
00459  *  Revision 1.16  2003/10/30 17:54:09  joergr
00460  *  Added full support for the ContentTemplateSequence (read/write, get/set
00461  *  template identification). Template constraints are not checked yet.
00462  *
00463  *  Revision 1.15  2003/08/07 12:18:57  joergr
00464  *  Updated documentation to get rid of doxygen warnings.
00465  *
00466  *  Revision 1.14  2001/09/26 13:04:04  meichel
00467  *  Adapted dcmsr to class OFCondition
00468  *
00469  *  Revision 1.13  2001/05/07 16:13:23  joergr
00470  *  Updated CVS header.
00471  *
00472  *  Revision 1.12  2001/01/18 15:53:32  joergr
00473  *  Added support for digital signatures.
00474  *
00475  *  Revision 1.11  2000/11/13 14:19:05  joergr
00476  *  Updated comments.
00477  *
00478  *  Revision 1.10  2000/11/07 18:11:29  joergr
00479  *  Enhanced support for by-reference relationships.
00480  *
00481  *  Revision 1.9  2000/11/01 16:11:26  joergr
00482  *  Now derive "protected" from base class DSRTypes instead of "public".
00483  *
00484  *  Revision 1.8  2000/10/26 14:16:18  joergr
00485  *  Added support for "Comprehensive SR".
00486  *  Added support for TCOORD content item.
00487  *
00488  *  Revision 1.7  2000/10/23 15:06:37  joergr
00489  *  Added/updated doc++ comments.
00490  *
00491  *  Revision 1.6  2000/10/20 10:15:42  joergr
00492  *  Renamed class DSRReferenceValue to DSRCompositeReferenceValue.
00493  *
00494  *  Revision 1.5  2000/10/18 16:58:27  joergr
00495  *  Added methods allowing direct access to certain content item values.
00496  *
00497  *  Revision 1.4  2000/10/17 12:34:31  joergr
00498  *  Added method checking content item for validity/completeness.
00499  *  Renamed methods for composite objects.
00500  *
00501  *  Revision 1.3  2000/10/16 16:29:36  joergr
00502  *  Updated comments.
00503  *
00504  *  Revision 1.2  2000/10/16 11:55:40  joergr
00505  *  Added doc++ comments.
00506  *  Added methods allowing direct access to certain content item values.
00507  *
00508  *  Revision 1.1  2000/10/13 07:49:23  joergr
00509  *  Added new module 'dcmsr' providing access to DICOM structured reporting
00510  *  documents (supplement 23).  Doc++ documentation not yet completed.
00511  *
00512  *
00513  */


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5