00001 /* 00002 * 00003 * Copyright (C) 1998-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: dcmpstat 00019 * 00020 * Author: Marco Eichelberg 00021 * 00022 * Purpose: 00023 * classes: DVPSReferencedImage_PList 00024 * 00025 * Last Update: $Author: meichel $ 00026 * Update Date: $Date: 2005/12/08 16:04:00 $ 00027 * CVS/RCS Revision: $Revision: 1.10 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef __DVPSRIL_H__ 00035 #define __DVPSRIL_H__ 00036 00037 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00038 #include "dcmtk/ofstd/oflist.h" 00039 #include "dcmtk/dcmdata/dctk.h" 00040 #include "dcmtk/dcmpstat/dvpstyp.h" /* for enum types */ 00041 00042 class DVPSReferencedImage; 00043 class DVPSReferencedSeries_PList; 00044 00051 class DVPSReferencedImage_PList 00052 { 00053 public: 00055 DVPSReferencedImage_PList(); 00056 00058 DVPSReferencedImage_PList(const DVPSReferencedImage_PList& copy); 00059 00064 DVPSReferencedImage_PList *clone() { return new DVPSReferencedImage_PList(*this); } 00065 00067 virtual ~DVPSReferencedImage_PList(); 00068 00077 OFCondition read(DcmItem &dset); 00078 00085 OFCondition write(DcmItem &dset); 00086 00091 void clear(); 00092 00099 OFBool isValid(OFString& sopclassuid); 00100 00106 DVPSReferencedImage *findImageReference(const char *sopinstanceuid); 00107 00114 void removeFrameReference(const char *sopinstanceuid, unsigned long frame, unsigned long numberOfFrames); 00115 00120 void removeImageReference(const char *sopinstanceuid); 00121 00132 OFCondition addImageReference( 00133 const char *sopclassUID, 00134 const char *instanceUID, 00135 const char *frames=NULL); 00136 00147 OFCondition addImageReference( 00148 const char *sopclassUID, 00149 const char *instanceUID, 00150 unsigned long frame, 00151 DVPSObjectApplicability applicability); 00152 00165 void removeImageReference( 00166 DVPSReferencedSeries_PList& allReferences, 00167 const char *instanceUID, 00168 unsigned long frame, 00169 unsigned long numberOfFrames, 00170 DVPSObjectApplicability applicability); 00171 00175 size_t size() const { return list_.size(); } 00176 00184 OFCondition getImageReference( 00185 size_t idx, 00186 OFString& sopclassUID, 00187 OFString& instanceUID, 00188 OFString& frames); 00189 00196 OFBool isApplicable(const char *instanceUID, unsigned long frame); 00197 00205 OFBool matchesApplicability(const char *instanceUID, unsigned long frame, DVPSObjectApplicability applicability); 00206 00212 void setLog(OFConsole *stream, OFBool verbMode, OFBool dbgMode); 00213 00214 private: 00215 00217 DVPSReferencedImage_PList& operator=(const DVPSReferencedImage_PList&); 00218 00221 OFList<DVPSReferencedImage *> list_; 00222 00225 OFConsole *logstream; 00226 00229 OFBool verboseMode; 00230 00233 OFBool debugMode; 00234 00235 }; 00236 00237 00238 #endif 00239 00240 /* 00241 * $Log: dvpsril.h,v $ 00242 * Revision 1.10 2005/12/08 16:04:00 meichel 00243 * Changed include path schema for all DCMTK header files 00244 * 00245 * Revision 1.9 2003/06/04 10:18:06 meichel 00246 * Replaced private inheritance from template with aggregation 00247 * 00248 * Revision 1.8 2001/09/26 15:36:15 meichel 00249 * Adapted dcmpstat to class OFCondition 00250 * 00251 * Revision 1.7 2001/06/01 15:50:20 meichel 00252 * Updated copyright header 00253 * 00254 * Revision 1.6 2000/06/02 16:00:50 meichel 00255 * Adapted all dcmpstat classes to use OFConsole for log and error output 00256 * 00257 * Revision 1.5 2000/03/08 16:28:55 meichel 00258 * Updated copyright header. 00259 * 00260 * Revision 1.4 1999/07/22 16:39:10 meichel 00261 * Adapted dcmpstat data structures and API to supplement 33 letter ballot text. 00262 * 00263 * Revision 1.3 1999/01/15 17:33:03 meichel 00264 * added methods to DVPresentationState allowing to access the image 00265 * references in the presentation state. Also added methods allowing to 00266 * get the width and height of the attached image. 00267 * 00268 * Revision 1.2 1998/12/14 16:10:33 meichel 00269 * Implemented Presentation State interface for graphic layers, 00270 * text and graphic annotations, presentation LUTs. 00271 * 00272 * Revision 1.1 1998/11/27 14:50:32 meichel 00273 * Initial Release. 00274 * 00275 * 00276 */ 00277