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: DSRTemporalCoordinatesValue 00020 * 00021 * Last Update: $Author: joergr $ 00022 * Update Date: $Date: 2010-10-14 13:16:33 $ 00023 * CVS/RCS Revision: $Revision: 1.12 $ 00024 * Status: $State: Exp $ 00025 * 00026 * CVS/RCS Log at end of file 00027 * 00028 */ 00029 00030 00031 #ifndef DSRTCOVL_H 00032 #define DSRTCOVL_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/dsrtcodt.h" 00038 #include "dcmtk/dcmsr/dsrtcosp.h" 00039 #include "dcmtk/dcmsr/dsrtcoto.h" 00040 00041 00042 /*---------------------* 00043 * class declaration * 00044 *---------------------*/ 00045 00048 class DSRTemporalCoordinatesValue 00049 { 00050 // allow access to getValuePtr() 00051 friend class DSRContentItem; 00052 00053 public: 00054 00057 DSRTemporalCoordinatesValue(); 00058 00062 DSRTemporalCoordinatesValue(const DSRTypes::E_TemporalRangeType temporalRangeType); 00063 00067 DSRTemporalCoordinatesValue(const DSRTemporalCoordinatesValue &coordinatesValue); 00068 00071 virtual ~DSRTemporalCoordinatesValue(); 00072 00078 DSRTemporalCoordinatesValue &operator=(const DSRTemporalCoordinatesValue &coordinatesValue); 00079 00084 virtual void clear(); 00085 00091 virtual OFBool isValid() const; 00092 00099 virtual OFBool isShort(const size_t flags) const; 00100 00108 virtual OFCondition print(STD_NAMESPACE ostream &stream, 00109 const size_t flags) const; 00110 00116 virtual OFCondition readXML(const DSRXMLDocument &doc, 00117 DSRXMLCursor cursor); 00118 00124 virtual OFCondition writeXML(STD_NAMESPACE ostream &stream, 00125 const size_t flags) const; 00126 00135 virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream, 00136 STD_NAMESPACE ostream &annexStream, 00137 size_t &annexNumber, 00138 const size_t flags) const; 00139 00143 inline const DSRTemporalCoordinatesValue &getValue() const 00144 { 00145 return *this; 00146 } 00147 00152 OFCondition getValue(DSRTemporalCoordinatesValue &coordinatesValue) const; 00153 00161 OFCondition setValue(const DSRTemporalCoordinatesValue &coordinatesValue); 00162 00167 inline DSRTypes::E_TemporalRangeType getTemporalRangeType() const 00168 { 00169 return TemporalRangeType; 00170 } 00171 00177 OFCondition setTemporalRangeType(const DSRTypes::E_TemporalRangeType temporalRangeType); 00178 00182 inline DSRReferencedDatetimeList &getDatetimeList() 00183 { 00184 return DatetimeList; 00185 } 00186 00190 inline DSRReferencedSamplePositionList &getSamplePositionList() 00191 { 00192 return SamplePositionList; 00193 } 00194 00198 inline DSRReferencedTimeOffsetList &getTimeOffsetList() 00199 { 00200 return TimeOffsetList; 00201 } 00202 00203 00204 protected: 00205 00209 inline DSRTemporalCoordinatesValue *getValuePtr() 00210 { 00211 return this; 00212 } 00213 00220 virtual OFCondition read(DcmItem &dataset); 00221 00227 virtual OFCondition write(DcmItem &dataset) const; 00228 00239 OFBool checkData(const DSRTypes::E_TemporalRangeType temporalRangeType, 00240 const DSRReferencedSamplePositionList &samplePositionList, 00241 const DSRReferencedTimeOffsetList &timeOffsetList, 00242 const DSRReferencedDatetimeList &datetimeList) const; 00243 00244 private: 00245 00247 DSRTypes::E_TemporalRangeType TemporalRangeType; 00248 00250 DSRReferencedSamplePositionList SamplePositionList; 00252 DSRReferencedTimeOffsetList TimeOffsetList; 00254 DSRReferencedDatetimeList DatetimeList; 00255 }; 00256 00257 00258 #endif 00259 00260 00261 /* 00262 * CVS/RCS Log: 00263 * $Log: dsrtcovl.h,v $ 00264 * Revision 1.12 2010-10-14 13:16:33 joergr 00265 * Updated copyright header. Added reference to COPYRIGHT file. 00266 * 00267 * Revision 1.11 2009-10-13 14:57:50 uli 00268 * Switched to logging mechanism provided by the "new" oflog module. 00269 * 00270 * Revision 1.10 2007-11-15 16:33:30 joergr 00271 * Added support for output in XHTML 1.1 format. 00272 * 00273 * Revision 1.9 2006/08/15 16:40:03 meichel 00274 * Updated the code in module dcmsr to correctly compile when 00275 * all standard C++ classes remain in namespace std. 00276 * 00277 * Revision 1.8 2005/12/08 16:05:24 meichel 00278 * Changed include path schema for all DCMTK header files 00279 * 00280 * Revision 1.7 2003/08/07 18:01:42 joergr 00281 * Removed libxml dependency from header files. 00282 * 00283 * Revision 1.6 2003/08/07 12:53:13 joergr 00284 * Added readXML functionality. 00285 * 00286 * Revision 1.5 2001/09/26 13:04:12 meichel 00287 * Adapted dcmsr to class OFCondition 00288 * 00289 * Revision 1.4 2001/06/01 15:51:05 meichel 00290 * Updated copyright header 00291 * 00292 * Revision 1.3 2000/11/06 11:20:32 joergr 00293 * Moved some protected methods to public part. 00294 * 00295 * Revision 1.2 2000/11/01 16:23:26 joergr 00296 * Added support for conversion to XML. 00297 * 00298 * Revision 1.1 2000/10/26 14:23:26 joergr 00299 * Added support for TCOORD content item. 00300 * 00301 * 00302 */