dcmsr/include/dsrsoprf.h

00001 /* 00002 * 00003 * Copyright (C) 2002-2003, 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: DSRSOPInstanceReferenceList 00024 * - InstanceStruct, SeriesStruct, StudyStruct 00025 * 00026 * Last Update: $Author: joergr $ 00027 * Update Date: $Date: 2003/08/07 18:01:42 $ 00028 * CVS/RCS Revision: $Revision: 1.6 $ 00029 * Status: $State: Exp $ 00030 * 00031 * CVS/RCS Log at end of file 00032 * 00033 */ 00034 00035 00036 #ifndef DSRSOPRF_H 00037 #define DSRSOPRF_H 00038 00039 #include "osconfig.h" /* make sure OS specific configuration is included first */ 00040 00041 #include "oflist.h" 00042 #include "ofstring.h" 00043 #include "ofconsol.h" 00044 #include "ofcond.h" 00045 00046 #include "dcitem.h" 00047 #include "dctagkey.h" 00048 00049 #include "dsrtypes.h" 00050 00051 00052 /*---------------------* 00053 * class declaration * 00054 *---------------------*/ 00055 00058 class DSRSOPInstanceReferenceList 00059 : public DSRTypes 00060 { 00061 00062 public: 00063 00066 struct InstanceStruct 00067 { 00072 InstanceStruct(const OFString &sopClassUID, 00073 const OFString &instanceUID); 00074 00076 const OFString SOPClassUID; 00078 const OFString InstanceUID; 00079 }; 00080 00083 struct SeriesStruct 00084 { 00088 SeriesStruct(const OFString &seriesUID); 00089 00092 ~SeriesStruct(); 00093 00097 size_t getNumberOfInstances() const; 00098 00104 OFCondition read(DcmItem &dataset, 00105 OFConsole *logStream); 00106 00112 OFCondition write(DcmItem &dataset, 00113 OFConsole *logStream) const; 00114 00120 OFCondition readXML(const DSRXMLDocument &doc, 00121 DSRXMLCursor cursor); 00122 00128 OFCondition writeXML(ostream &stream, 00129 const size_t flags = 0) const; 00130 00135 InstanceStruct *gotoInstance(const OFString &instanceUID); 00136 00141 OFCondition gotoFirstItem(); 00142 00147 OFCondition gotoNextItem(); 00148 00155 OFCondition addItem(const OFString &sopClassUID, 00156 const OFString &instanceUID); 00157 00162 OFCondition removeItem(); 00163 00165 const OFString SeriesUID; 00167 OFString RetrieveAETitle; 00169 OFString StorageMediaFileSetID; 00171 OFString StorageMediaFileSetUID; 00172 00174 OFList<InstanceStruct *> InstanceList; 00176 OFListIterator(InstanceStruct *) Iterator; 00177 }; 00178 00181 struct StudyStruct 00182 { 00186 StudyStruct(const OFString &studyUID); 00187 00190 ~StudyStruct(); 00191 00195 size_t getNumberOfInstances() const; 00196 00202 OFCondition read(DcmItem &dataset, 00203 OFConsole *logStream); 00204 00210 OFCondition write(DcmItem &dataset, 00211 OFConsole *logStream) const; 00212 00218 OFCondition readXML(const DSRXMLDocument &doc, 00219 DSRXMLCursor cursor); 00220 00226 OFCondition writeXML(ostream &stream, 00227 const size_t flags = 0) const; 00228 00233 SeriesStruct *gotoSeries(const OFString &seriesUID); 00234 00239 InstanceStruct *gotoInstance(const OFString &instanceUID); 00240 00245 OFCondition gotoFirstItem(); 00246 00252 OFCondition gotoNextItem(); 00253 00261 OFCondition addItem(const OFString &seriesUID, 00262 const OFString &sopClassUID, 00263 const OFString &instanceUID); 00264 00269 OFCondition removeItem(); 00270 00275 void removeIncompleteItems(); 00276 00278 const OFString StudyUID; 00279 00281 OFList<SeriesStruct *> SeriesList; 00283 OFListIterator(SeriesStruct *) Iterator; 00284 }; 00285 00286 00290 DSRSOPInstanceReferenceList(const DcmTagKey &sequence); 00291 00294 ~DSRSOPInstanceReferenceList(); 00295 00298 void clear(); 00299 00303 OFBool empty() const; 00304 00308 size_t getNumberOfInstances() const; 00309 00319 OFCondition read(DcmItem &dataset, 00320 OFConsole *logStream); 00321 00328 OFCondition write(DcmItem &dataset, 00329 OFConsole *logStream) const; 00330 00341 OFCondition readXML(const DSRXMLDocument &doc, 00342 DSRXMLCursor cursor, 00343 const size_t flags); 00344 00350 OFCondition writeXML(ostream &stream, 00351 const size_t flags = 0) const; 00352 00363 OFCondition addItem(const OFString &studyUID, 00364 const OFString &seriesUID, 00365 const OFString &sopClassUID, 00366 const OFString &instanceUID); 00367 00372 OFCondition removeItem(); 00373 00380 OFCondition removeItem(const OFString &sopClassUID, 00381 const OFString &instanceUID); 00382 00390 OFCondition removeItem(const OFString &studyUID, 00391 const OFString &seriesUID, 00392 const OFString &instanceUID); 00393 00399 OFCondition gotoItem(const OFString &sopClassUID, 00400 const OFString &instanceUID); 00401 00408 OFCondition gotoItem(const OFString &studyUID, 00409 const OFString &seriesUID, 00410 const OFString &instanceUID); 00411 00418 OFCondition gotoFirstItem(); 00419 00428 OFCondition gotoNextItem(); 00429 00434 const OFString &getStudyInstanceUID(OFString &stringValue) const; 00435 00440 const OFString &getSeriesInstanceUID(OFString &stringValue) const; 00441 00446 const OFString &getSOPInstanceUID(OFString &stringValue) const; 00447 00452 const OFString &getSOPClassUID(OFString &stringValue) const; 00453 00459 const OFString &getRetrieveAETitle(OFString &stringValue) const; 00460 00465 const OFString &getStorageMediaFileSetID(OFString &stringValue) const; 00466 00471 const OFString &getStorageMediaFileSetUID(OFString &stringValue) const; 00472 00478 OFCondition setRetrieveAETitle(const OFString &value); 00479 00484 OFCondition setStorageMediaFileSetID(const OFString &value); 00485 00490 OFCondition setStorageMediaFileSetUID(const OFString &value); 00491 00492 00493 protected: 00494 00499 StudyStruct *gotoStudy(const OFString &studyUID); 00500 00504 StudyStruct *getCurrentStudy() const; 00505 00509 SeriesStruct *getCurrentSeries() const; 00510 00514 InstanceStruct *getCurrentInstance() const; 00515 00520 void removeIncompleteItems(); 00521 00522 00523 private: 00524 00526 const DcmTagKey SequenceTag; 00527 00529 OFList<StudyStruct *> StudyList; 00531 OFListIterator(StudyStruct *) Iterator; 00532 00533 // default constructor - not implemented! 00534 DSRSOPInstanceReferenceList(); 00535 // copy constructor - not implemented! 00536 DSRSOPInstanceReferenceList(const DSRSOPInstanceReferenceList &); 00537 // assignment operator - not implemented! 00538 DSRSOPInstanceReferenceList &operator=(const DSRSOPInstanceReferenceList &); 00539 }; 00540 00541 00542 #endif 00543 00544 00545 /* 00546 * CVS/RCS Log: 00547 * $Log: dsrsoprf.h,v $ 00548 * Revision 1.6 2003/08/07 18:01:42 joergr 00549 * Removed libxml dependency from header files. 00550 * 00551 * Revision 1.5 2003/08/07 12:50:12 joergr 00552 * Added readXML functionality. 00553 * Renamed parameters/variables "string" to avoid name clash with STL class. 00554 * Enhanced class DSRSOPInstanceReferenceList: empty/incomplete items (e.g. 00555 * series with no instances or studies with no series) are automatically 00556 * removed from the list. 00557 * 00558 * Revision 1.4 2002/08/30 14:16:59 joergr 00559 * Removed "friend" statements from class declaration and moved sub-classes to 00560 * the "public" section (required for Sun CC 6). 00561 * 00562 * Revision 1.3 2002/05/14 08:16:07 joergr 00563 * Added removeItem() methods. 00564 * 00565 * Revision 1.2 2002/05/07 14:04:44 joergr 00566 * Added "friend" statements to class declaration (required for MSVC). 00567 * 00568 * Revision 1.1 2002/05/07 12:49:31 joergr 00569 * Added support for the Current Requested Procedure Evidence Sequence and the 00570 * Pertinent Other Evidence Sequence to the dcmsr module. 00571 * 00572 * 00573 */


Generated on 4 Nov 2004 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.3.8