00001 /* 00002 * 00003 * Copyright (C) 1998-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: dcmpstat 00015 * 00016 * Author: Marco Eichelberg 00017 * 00018 * Purpose: 00019 * classes: DVPSReferencedImage_PList 00020 * 00021 * Last Update: $Author: joergr $ 00022 * Update Date: $Date: 2010-10-14 13:16:36 $ 00023 * CVS/RCS Revision: $Revision: 1.14 $ 00024 * Status: $State: Exp $ 00025 * 00026 * CVS/RCS Log at end of file 00027 * 00028 */ 00029 00030 #ifndef DVPSRIL_H 00031 #define DVPSRIL_H 00032 00033 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00034 #include "dcmtk/dcmdata/dcitem.h" 00035 #include "dcmtk/dcmpstat/dvpstyp.h" /* for enum types */ 00036 00037 class DVPSReferencedImage; 00038 class DVPSReferencedSeries_PList; 00039 00046 class DVPSReferencedImage_PList 00047 { 00048 public: 00050 DVPSReferencedImage_PList(); 00051 00053 DVPSReferencedImage_PList(const DVPSReferencedImage_PList& copy); 00054 00059 DVPSReferencedImage_PList *clone() { return new DVPSReferencedImage_PList(*this); } 00060 00062 virtual ~DVPSReferencedImage_PList(); 00063 00072 OFCondition read(DcmItem &dset); 00073 00080 OFCondition write(DcmItem &dset); 00081 00086 void clear(); 00087 00094 OFBool isValid(OFString& sopclassuid); 00095 00101 DVPSReferencedImage *findImageReference(const char *sopinstanceuid); 00102 00109 void removeFrameReference(const char *sopinstanceuid, unsigned long frame, unsigned long numberOfFrames); 00110 00115 void removeImageReference(const char *sopinstanceuid); 00116 00127 OFCondition addImageReference( 00128 const char *sopclassUID, 00129 const char *instanceUID, 00130 const char *frames=NULL); 00131 00142 OFCondition addImageReference( 00143 const char *sopclassUID, 00144 const char *instanceUID, 00145 unsigned long frame, 00146 DVPSObjectApplicability applicability); 00147 00160 void removeImageReference( 00161 DVPSReferencedSeries_PList& allReferences, 00162 const char *instanceUID, 00163 unsigned long frame, 00164 unsigned long numberOfFrames, 00165 DVPSObjectApplicability applicability); 00166 00170 size_t size() const { return list_.size(); } 00171 00179 OFCondition getImageReference( 00180 size_t idx, 00181 OFString& sopclassUID, 00182 OFString& instanceUID, 00183 OFString& frames); 00184 00191 OFBool isApplicable(const char *instanceUID, unsigned long frame); 00192 00200 OFBool matchesApplicability(const char *instanceUID, unsigned long frame, DVPSObjectApplicability applicability); 00201 00202 private: 00203 00205 DVPSReferencedImage_PList& operator=(const DVPSReferencedImage_PList&); 00206 00209 OFList<DVPSReferencedImage *> list_; 00210 00211 }; 00212 00213 00214 #endif 00215 00216 /* 00217 * $Log: dvpsril.h,v $ 00218 * Revision 1.14 2010-10-14 13:16:36 joergr 00219 * Updated copyright header. Added reference to COPYRIGHT file. 00220 * 00221 * Revision 1.13 2010-10-07 14:31:36 joergr 00222 * Removed leading underscore characters from preprocessor symbols (reserved). 00223 * 00224 * Revision 1.12 2009-11-24 14:12:57 uli 00225 * Switched to logging mechanism provided by the "new" oflog module. 00226 * 00227 * Revision 1.11 2009-09-30 10:42:38 uli 00228 * Make dcmpstat's include headers self-sufficient by including all 00229 * needed headers directly and stop using dctk.h 00230 * 00231 * Revision 1.10 2005-12-08 16:04:00 meichel 00232 * Changed include path schema for all DCMTK header files 00233 * 00234 * Revision 1.9 2003/06/04 10:18:06 meichel 00235 * Replaced private inheritance from template with aggregation 00236 * 00237 * Revision 1.8 2001/09/26 15:36:15 meichel 00238 * Adapted dcmpstat to class OFCondition 00239 * 00240 * Revision 1.7 2001/06/01 15:50:20 meichel 00241 * Updated copyright header 00242 * 00243 * Revision 1.6 2000/06/02 16:00:50 meichel 00244 * Adapted all dcmpstat classes to use OFConsole for log and error output 00245 * 00246 * Revision 1.5 2000/03/08 16:28:55 meichel 00247 * Updated copyright header. 00248 * 00249 * Revision 1.4 1999/07/22 16:39:10 meichel 00250 * Adapted dcmpstat data structures and API to supplement 33 letter ballot text. 00251 * 00252 * Revision 1.3 1999/01/15 17:33:03 meichel 00253 * added methods to DVPresentationState allowing to access the image 00254 * references in the presentation state. Also added methods allowing to 00255 * get the width and height of the attached image. 00256 * 00257 * Revision 1.2 1998/12/14 16:10:33 meichel 00258 * Implemented Presentation State interface for graphic layers, 00259 * text and graphic annotations, presentation LUTs. 00260 * 00261 * Revision 1.1 1998/11/27 14:50:32 meichel 00262 * Initial Release. 00263 * 00264 * 00265 */