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: DSRDocument 00020 * 00021 * Last Update: $Author: joergr $ 00022 * Update Date: $Date: 2010-10-14 13:16:32 $ 00023 * CVS/RCS Revision: $Revision: 1.53 $ 00024 * Status: $State: Exp $ 00025 * 00026 * CVS/RCS Log at end of file 00027 * 00028 */ 00029 00030 00031 #ifndef DSRDOC_H 00032 #define DSRDOC_H 00033 00034 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00035 00036 #include "dcmtk/dcmsr/dsrdoctr.h" 00037 #include "dcmtk/dcmsr/dsrsoprf.h" 00038 #include "dcmtk/dcmsr/dsrcsidl.h" 00039 00040 #include "dcmtk/ofstd/ofstream.h" 00041 00042 00043 /*---------------------* 00044 * class declaration * 00045 *---------------------*/ 00046 00052 class DSRDocument 00053 : protected DSRTypes 00054 { 00055 00056 public: 00057 00058 // --- constructors and destructor --- 00059 00064 DSRDocument(const E_DocumentType documentType = DT_BasicTextSR); 00065 00068 virtual ~DSRDocument(); 00069 00070 00071 // --- misc routines --- 00072 00075 void clear(); 00076 00082 OFBool isValid(); 00083 00091 OFBool isFinalized() const; 00092 00093 00094 // --- input and output --- 00095 00102 OFCondition print(STD_NAMESPACE ostream &stream, 00103 const size_t flags = 0); 00104 00123 OFCondition read(DcmItem &dataset, 00124 const size_t flags = 0); 00125 00139 OFCondition write(DcmItem &dataset, 00140 DcmStack *markedItems = NULL); 00141 00152 OFCondition readXML(const OFString &filename, 00153 const size_t flags = 0); 00154 00162 OFCondition writeXML(STD_NAMESPACE ostream &stream, 00163 const size_t flags = 0); 00164 00172 OFCondition renderHTML(STD_NAMESPACE ostream &stream, 00173 const size_t flags = 0, 00174 const char *styleSheet = NULL); 00175 00176 00177 // --- get/set misc attributes --- 00178 00182 E_DocumentType getDocumentType() const; 00183 00187 inline DSRDocumentTree &getTree() 00188 { 00189 return DocumentTree; 00190 } 00191 00199 E_CharacterSet getSpecificCharacterSetType() const; 00200 00205 OFCondition setSpecificCharacterSetType(const E_CharacterSet characterSet); 00206 00211 E_PreliminaryFlag getPreliminaryFlag() const; 00212 00217 E_CompletionFlag getCompletionFlag() const; 00218 00223 const char *getCompletionFlagDescription() const; 00224 00230 const OFString &getCompletionFlagDescription(OFString &description) const; 00231 00236 E_VerificationFlag getVerificationFlag() const; 00237 00245 size_t getNumberOfVerifyingObservers(); 00246 00261 OFCondition getVerifyingObserver(const size_t idx, 00262 OFString &dateTime, 00263 OFString &observerName, 00264 OFString &organization); 00265 00282 OFCondition getVerifyingObserver(const size_t idx, 00283 OFString &dateTime, 00284 OFString &observerName, 00285 DSRCodedEntryValue &observerCode, 00286 OFString &organization); 00287 00300 DSRSOPInstanceReferenceList &getPredecessorDocuments(); 00301 00315 DSRSOPInstanceReferenceList &getIdenticalDocuments(); 00316 00331 DSRSOPInstanceReferenceList &getCurrentRequestedProcedureEvidence(); 00332 00341 DSRSOPInstanceReferenceList &getPertinentOtherEvidence(); 00342 00348 DSRCodingSchemeIdentificationList &getCodingSchemeIdentification(); 00349 00350 00351 // --- get DICOM string attributes (C string) --- 00352 // --- (these functions return the whole string value, 00353 // --- i.e. all components of multi-valued attributes) 00354 00358 const char *getModality() const; 00359 00363 const char *getSOPClassUID() const; 00364 00368 const char *getStudyInstanceUID() const; 00369 00373 const char *getSeriesInstanceUID() const; 00374 00378 const char *getSOPInstanceUID() const; 00379 00383 const char *getInstanceCreatorUID() const; 00384 00388 const char *getSpecificCharacterSet() const; 00389 00393 const char *getPatientName() const; 00394 00398 const char *getPatientBirthDate() const; 00399 00403 const char *getPatientSex() const; 00404 00408 const char *getReferringPhysicianName() const; 00409 00413 const char *getStudyDescription() const; 00414 00418 const char *getSeriesDescription() const; 00419 00423 const char *getManufacturer() const; 00424 00428 const char *getManufacturerModelName() const; 00429 00433 const char *getDeviceSerialNumber() const; 00434 00438 const char *getSoftwareVersions() const; 00439 00443 const char *getStudyDate() const; 00444 00448 const char *getStudyTime() const; 00449 00453 const char *getInstanceCreationDate() const; 00454 00458 const char *getInstanceCreationTime() const; 00459 00463 const char *getContentDate() const; 00464 00468 const char *getContentTime() const; 00469 00473 const char *getStudyID() const; 00474 00478 const char *getPatientID() const; 00479 00483 const char *getSeriesNumber() const; 00484 00488 const char *getInstanceNumber() const; 00489 00493 const char *getAccessionNumber() const; 00494 00495 00496 // --- get DICOM string attributes (C++ string) --- 00497 // --- (these functions return only the first 00498 // --- component of multi-valued attributes) 00499 00504 const OFString &getModality(OFString &value) const; 00505 00510 const OFString &getSOPClassUID(OFString &value) const; 00511 00516 const OFString &getStudyInstanceUID(OFString &value) const; 00517 00522 const OFString &getSeriesInstanceUID(OFString &value) const; 00523 00528 const OFString &getSOPInstanceUID(OFString &value) const; 00529 00534 const OFString &getInstanceCreatorUID(OFString &value) const; 00535 00540 const OFString &getSpecificCharacterSet(OFString &value) const; 00541 00546 const OFString &getPatientName(OFString &value) const; 00547 00552 const OFString &getPatientBirthDate(OFString &value) const; 00553 00558 const OFString &getPatientSex(OFString &value) const; 00559 00564 const OFString &getReferringPhysicianName(OFString &value) const; 00565 00570 const OFString &getStudyDescription(OFString &value) const; 00571 00576 const OFString &getSeriesDescription(OFString &value) const; 00577 00582 const OFString &getManufacturer(OFString &value) const; 00583 00588 const OFString &getManufacturerModelName(OFString &value) const; 00589 00594 const OFString &getDeviceSerialNumber(OFString &value) const; 00595 00600 const OFString &getSoftwareVersions(OFString &value) const; 00601 00606 const OFString &getStudyDate(OFString &value) const; 00607 00612 const OFString &getStudyTime(OFString &value) const; 00613 00618 const OFString &getInstanceCreationDate(OFString &value) const; 00619 00624 const OFString &getInstanceCreationTime(OFString &value) const; 00625 00630 const OFString &getContentDate(OFString &value) const; 00631 00636 const OFString &getContentTime(OFString &value) const; 00637 00642 const OFString &getStudyID(OFString &value) const; 00643 00648 const OFString &getPatientID(OFString &value) const; 00649 00654 const OFString &getSeriesNumber(OFString &value) const; 00655 00660 const OFString &getInstanceNumber(OFString &value) const; 00661 00666 const OFString &getAccessionNumber(OFString &value) const; 00667 00668 00669 // --- set DICOM string attributes --- 00670 00677 OFCondition setSpecificCharacterSet(const OFString &value); 00678 00685 OFCondition setPreliminaryFlag(const E_PreliminaryFlag flag); 00686 00693 OFCondition setCompletionFlagDescription(const OFString &value); 00694 00700 OFCondition setPatientName(const OFString &value); 00701 00707 OFCondition setPatientBirthDate(const OFString &value); 00708 00714 OFCondition setPatientSex(const OFString &value); 00715 00721 OFCondition setReferringPhysicianName(const OFString &value); 00722 00728 OFCondition setStudyDescription(const OFString &value); 00729 00735 OFCondition setSeriesDescription(const OFString &value); 00736 00742 OFCondition setManufacturer(const OFString &value); 00743 00749 OFCondition setManufacturerModelName(const OFString &value); 00750 00756 OFCondition setDeviceSerialNumber(const OFString &value); 00757 00763 OFCondition setSoftwareVersions(const OFString &value); 00764 00772 OFCondition setContentDate(const OFString &value); 00773 00781 OFCondition setContentTime(const OFString &value); 00782 00788 OFCondition setStudyID(const OFString &value); 00789 00795 OFCondition setPatientID(const OFString &value); 00796 00804 OFCondition setSeriesNumber(const OFString &value); 00805 00813 OFCondition setInstanceNumber(const OFString &value); 00814 00820 OFCondition setAccessionNumber(const OFString &value); 00821 00822 00823 // --- document management functions --- 00824 00830 void createNewStudy(); 00831 00837 void createNewSeries(); 00838 00846 OFCondition createNewSeriesInStudy(const OFString &studyUID); 00847 00859 void createNewSOPInstance(); 00860 00866 OFCondition createNewDocument(); 00867 00874 OFCondition createNewDocument(const E_DocumentType documentType); 00875 00893 OFCondition createRevisedVersion(const OFBool clearList = OFTrue); 00894 00902 OFCondition completeDocument(); 00903 00913 OFCondition completeDocument(const OFString &description); 00914 00927 OFCondition verifyDocument(const OFString &observerName, 00928 const OFString &organization); 00929 00940 OFCondition verifyDocument(const OFString &observerName, 00941 const OFString &organization, 00942 const OFString &dateTime /*= ""*/); 00943 00957 OFCondition verifyDocument(const OFString &observerName, 00958 const DSRCodedEntryValue &observerCode, 00959 const OFString &organization); 00960 00972 OFCondition verifyDocument(const OFString &observerName, 00973 const DSRCodedEntryValue &observerCode, 00974 const OFString &organization, 00975 const OFString &dateTime /*= ""*/); 00976 00984 void removeVerification(); 00985 00999 OFCondition finalizeDocument(); 01000 01001 01002 protected: 01003 01010 OFCondition readXMLDocumentHeader(DSRXMLDocument &doc, 01011 DSRXMLCursor cursor, 01012 const size_t flags); 01013 01020 OFCondition readXMLPatientData(const DSRXMLDocument &doc, 01021 DSRXMLCursor cursor, 01022 const size_t flags); 01023 01030 OFCondition readXMLStudyData(const DSRXMLDocument &doc, 01031 DSRXMLCursor cursor, 01032 const size_t flags); 01033 01040 OFCondition readXMLSeriesData(const DSRXMLDocument &doc, 01041 DSRXMLCursor cursor, 01042 const size_t flags); 01043 01050 OFCondition readXMLInstanceData(const DSRXMLDocument &doc, 01051 DSRXMLCursor cursor, 01052 const size_t flags); 01053 01060 OFCondition readXMLDocumentData(const DSRXMLDocument &doc, 01061 DSRXMLCursor cursor, 01062 const size_t flags); 01063 01070 OFCondition readXMLVerifyingObserverData(const DSRXMLDocument &doc, 01071 DSRXMLCursor cursor, 01072 const size_t flags); 01073 01078 void renderHTMLPatientData(STD_NAMESPACE ostream &stream, 01079 const size_t flags); 01080 01086 void renderHTMLReferenceList(STD_NAMESPACE ostream &stream, 01087 DSRSOPInstanceReferenceList &refList, 01088 const size_t flags); 01089 01098 OFCondition checkDatasetForReading(DcmItem &dataset, 01099 E_DocumentType &documentType); 01100 01106 void updateAttributes(const OFBool updateAll = OFTrue); 01107 01108 01109 private: 01110 01112 DSRDocumentTree DocumentTree; 01113 01115 OFBool FinalizedFlag; 01117 E_PreliminaryFlag PreliminaryFlagEnum; 01119 E_CompletionFlag CompletionFlagEnum; 01121 E_VerificationFlag VerificationFlagEnum; 01123 E_CharacterSet SpecificCharacterSetEnum; 01124 01125 // DICOM attributes are listed ordered by module. 01126 // The comments for each attribute describe "Name: (VR, VM, Type)". 01127 // Please note that for particular SR documents (e.g. Key Object Selection) 01128 // other rules might apply. See DICOM standard for further reference. 01129 01130 // --- SOP Common Module (M) --- 01131 // (see SR Document General Module) 01132 01134 DcmUniqueIdentifier SOPClassUID; 01136 DcmUniqueIdentifier SOPInstanceUID; 01138 DcmCodeString SpecificCharacterSet; 01140 DcmDate InstanceCreationDate; 01142 DcmTime InstanceCreationTime; 01144 DcmUniqueIdentifier InstanceCreatorUID; 01146 DSRCodingSchemeIdentificationList CodingSchemeIdentification; 01147 01148 // --- General Study Module (M) --- 01149 01151 DcmUniqueIdentifier StudyInstanceUID; 01153 DcmDate StudyDate; 01155 DcmTime StudyTime; 01157 DcmPersonName ReferringPhysicianName; 01159 DcmShortString StudyID; 01161 DcmShortString AccessionNumber; 01163 DcmLongString StudyDescription; 01164 01165 // --- Patient Module (M) --- 01166 01168 DcmPersonName PatientName; 01170 DcmLongString PatientID; 01172 DcmDate PatientBirthDate; 01174 DcmCodeString PatientSex; 01175 01176 // --- General Equipment Module (M) --- 01177 01179 DcmLongString Manufacturer; 01181 DcmLongString ManufacturerModelName; 01183 DcmLongString DeviceSerialNumber; 01185 DcmLongString SoftwareVersions; 01186 01187 // --- Enhanced General Equipment Module (M - for some IODs) --- 01188 01189 // Manufacturer: (LO, 1, 1) 01190 // - see 'General Equipment Module' 01192 // - see 'General Equipment Module' 01194 // - see 'General Equipment Module' 01196 // - see 'General Equipment Module' 01197 01198 // --- Frame of Reference (C) --- 01199 01200 // tbd: conditional module for X-Ray Radiation Dose SR not yet supported 01201 01202 // --- SR Document Series Module (M) --- 01203 01205 DcmCodeString Modality; 01207 DcmUniqueIdentifier SeriesInstanceUID; 01209 DcmIntegerString SeriesNumber; 01211 DcmLongString SeriesDescription; 01213 DcmSequenceOfItems ReferencedPerformedProcedureStep; 01214 01215 // --- SR Document General Module (M) --- 01216 01218 DcmIntegerString InstanceNumber; 01220 DcmCodeString PreliminaryFlag; 01222 DcmCodeString CompletionFlag; 01224 DcmLongString CompletionFlagDescription; 01226 DcmCodeString VerificationFlag; 01228 DcmDate ContentDate; 01230 DcmTime ContentTime; 01232 DcmSequenceOfItems VerifyingObserver; 01234 DSRSOPInstanceReferenceList PredecessorDocuments; 01236 DSRSOPInstanceReferenceList IdenticalDocuments; 01237 // Referenced Request Sequence: (SQ, 1, 1C) 01238 // -- not yet supported -- 01240 DcmSequenceOfItems PerformedProcedureCode; 01242 DSRSOPInstanceReferenceList CurrentRequestedProcedureEvidence; 01244 DSRSOPInstanceReferenceList PertinentOtherEvidence; 01245 01246 // --- declaration of copy constructor and assignment operator --- 01247 01248 DSRDocument(const DSRDocument &); 01249 DSRDocument &operator=(const DSRDocument &); 01250 }; 01251 01252 01253 #endif 01254 01255 01256 /* 01257 * CVS/RCS Log: 01258 * $Log: dsrdoc.h,v $ 01259 * Revision 1.53 2010-10-14 13:16:32 joergr 01260 * Updated copyright header. Added reference to COPYRIGHT file. 01261 * 01262 * Revision 1.52 2010-09-30 08:49:40 joergr 01263 * Fixed incomplete comment. 01264 * 01265 * Revision 1.51 2010-09-29 15:07:06 joergr 01266 * Enhanced comments on attributes from Enhanced General Equipment Module. 01267 * 01268 * Revision 1.50 2010-09-29 10:07:12 joergr 01269 * Added support for the recently introduced, optional PreliminaryFlag. 01270 * 01271 * Revision 1.49 2010-09-28 16:26:43 joergr 01272 * Added support for Enhanced General Equipment Module which is required for 01273 * both X-Ray Radiation Dose SR and Colon CAD SR. 01274 * 01275 * Revision 1.48 2010-08-09 13:26:25 joergr 01276 * Updated data dictionary to 2009 edition of the DICOM standard. From now on, 01277 * the official "keyword" is used for the attribute name which results in a 01278 * number of minor changes (e.g. "PatientsName" is now called "PatientName"). 01279 * 01280 * Revision 1.47 2010-07-01 13:40:33 joergr 01281 * Moved SeriesDescription (0008,103E) from General Series to SR Document Series 01282 * Module (according to CP 703). 01283 * 01284 * Revision 1.46 2009-10-13 14:57:50 uli 01285 * Switched to logging mechanism provided by the "new" oflog module. 01286 * 01287 * Revision 1.45 2009-04-21 08:32:38 joergr 01288 * Fixed typo. 01289 * 01290 * Revision 1.44 2007/11/15 16:33:30 joergr 01291 * Added support for output in XHTML 1.1 format. 01292 * 01293 * Revision 1.43 2006/12/06 11:50:42 joergr 01294 * Updated various citations according to the latest version of the DICOM 01295 * standard (incl. CP 584). Removed references to a particular edition of the 01296 * standard. 01297 * 01298 * Revision 1.42 2006/08/15 16:40:03 meichel 01299 * Updated the code in module dcmsr to correctly compile when 01300 * all standard C++ classes remain in namespace std. 01301 * 01302 * Revision 1.41 2006/07/25 13:19:53 joergr 01303 * Renamed member variable "ReferencedPerformedProcedureStepSequence" to 01304 * "ReferencedPerformedProcedureStep" for consistency reasons. 01305 * 01306 * Revision 1.40 2006/06/01 15:23:14 joergr 01307 * Removed explicit reference to a particular edition of the DICOM standard. 01308 * 01309 * Revision 1.39 2006/05/11 09:18:21 joergr 01310 * Moved containsExtendedCharacters() from dcmsr to dcmdata module. 01311 * 01312 * Revision 1.38 2005/12/08 16:04:59 meichel 01313 * Changed include path schema for all DCMTK header files 01314 * 01315 * Revision 1.37 2005/11/30 12:00:24 joergr 01316 * Added support for X-Ray Radiation Dose SR documents. 01317 * 01318 * Revision 1.36 2005/07/27 16:41:55 joergr 01319 * Updated reference to DICOM standard edition. 01320 * 01321 * Revision 1.35 2004/11/22 16:39:09 meichel 01322 * Added method that checks if the SR document contains non-ASCII characters 01323 * in any of the strings affected by SpecificCharacterSet. 01324 * 01325 * Revision 1.34 2004/04/16 13:24:07 joergr 01326 * Restructured code to avoid default parameter values for "complex types" like 01327 * OFString. Required for Sun CC 2.0.1. 01328 * 01329 * Revision 1.33 2004/01/05 14:36:02 joergr 01330 * Removed acknowledgements with e-mail addresses from CVS log. 01331 * 01332 * Revision 1.32 2003/10/30 17:53:23 joergr 01333 * Added full support for the ContentTemplateSequence (read/write, get/set 01334 * template identification). Template constraints are not checked yet. 01335 * 01336 * Revision 1.31 2003/10/09 13:18:16 joergr 01337 * Added text from Supplement 66 to getCurrentRequestedProcedureEvidence() API 01338 * comment. 01339 * 01340 * Revision 1.30 2003/09/10 13:16:13 joergr 01341 * Replaced PrivateCodingSchemeUID by new CodingSchemeIdentificationSequence as 01342 * required by CP 324. 01343 * 01344 * Revision 1.29 2003/08/07 18:01:42 joergr 01345 * Removed libxml dependency from header files. 01346 * 01347 * Revision 1.28 2003/08/07 12:31:46 joergr 01348 * Added readXML functionality. 01349 * Updated documentation to get rid of doxygen warnings. 01350 * Made method isFinalized() const. 01351 * Added new option to createRevisedVersion() which allows to keep the current 01352 * list of predecessor documents. 01353 * Changed interface to access the list of predecessor documents. Now using the 01354 * existing class DSRSOPInstanceReferenceList. 01355 * Added preliminary support for the Identical Documents Sequence. 01356 * Renamed parameters/variables "string" to avoid name clash with STL class. 01357 * 01358 * Revision 1.27 2002/05/14 08:15:24 joergr 01359 * Updated comments. 01360 * 01361 * Revision 1.26 2002/05/07 12:49:31 joergr 01362 * Added support for the Current Requested Procedure Evidence Sequence and the 01363 * Pertinent Other Evidence Sequence to the dcmsr module. 01364 * 01365 * Revision 1.25 2002/04/16 13:50:52 joergr 01366 * Added configurable support for C++ ANSI standard includes (e.g. streams). 01367 * 01368 * Revision 1.24 2001/11/09 16:10:48 joergr 01369 * Added preliminary support for Mammography CAD SR. 01370 * 01371 * Revision 1.23 2001/09/26 13:04:06 meichel 01372 * Adapted dcmsr to class OFCondition 01373 * 01374 * Revision 1.22 2001/04/03 08:24:01 joergr 01375 * Added new command line option: ignore relationship content constraints 01376 * specified for each SR document class. 01377 * 01378 * Revision 1.21 2001/01/29 17:37:14 joergr 01379 * Added methods to support a new state of finalized and unfinalized documents. 01380 * 01381 * Revision 1.20 2001/01/25 11:48:43 joergr 01382 * Corrected typos / enhanced comments. 01383 * 01384 * Revision 1.19 2001/01/18 15:53:33 joergr 01385 * Added support for digital signatures. 01386 * 01387 * Revision 1.18 2000/12/08 13:42:40 joergr 01388 * Renamed createNewSeries(studyUID) to createNewSeriesInStudy(studyUID). 01389 * 01390 * Revision 1.17 2000/11/16 13:31:27 joergr 01391 * Corrected behaviour of updateDicomAttributes(). 01392 * 01393 * Revision 1.16 2000/11/14 17:27:25 joergr 01394 * Added method to remove verification information. 01395 * 01396 * Revision 1.15 2000/11/14 16:36:21 joergr 01397 * Added methods to set the content date/time. 01398 * 01399 * Revision 1.14 2000/11/14 11:45:50 joergr 01400 * Corrected behaviour of method createRevisedVersion(). 01401 * 01402 * Revision 1.13 2000/11/13 14:19:06 joergr 01403 * Updated comments. 01404 * 01405 * Revision 1.12 2000/11/13 10:26:21 joergr 01406 * Added output of optional observation datetime to rendered HTML page. 01407 * 01408 * Revision 1.11 2000/11/10 18:10:20 joergr 01409 * Corrected behaviour of createNewSOPInstance() and createRevisedDocument(). 01410 * 01411 * Revision 1.10 2000/11/10 17:44:49 joergr 01412 * Added new methods to set the completion flag description, create new study/ 01413 * series UIDs. Added missing type 2 sequence to dataset. Corrected wrong format 01414 * of predecessor documents sequence. Changed behaviour of completion/verification 01415 * flags. Improved HTML and print/dump output. 01416 * 01417 * Revision 1.9 2000/11/09 20:32:07 joergr 01418 * Added support for non-ASCII characters in HTML 3.2 (use numeric value). 01419 * 01420 * Revision 1.8 2000/11/07 18:12:25 joergr 01421 * Enhanced rendered HTML output of date, time, datetime and pname. 01422 * 01423 * Revision 1.7 2000/11/01 16:16:33 joergr 01424 * Added support for conversion to XML. 01425 * Added support for Cascading Style Sheet (CSS) used optionally for HTML 01426 * rendering. 01427 * Enhanced support for specific character sets. 01428 * 01429 * Revision 1.6 2000/10/26 14:17:06 joergr 01430 * Added support for "Comprehensive SR". 01431 * 01432 * Revision 1.5 2000/10/18 17:01:47 joergr 01433 * Made some functions inline. 01434 * 01435 * Revision 1.4 2000/10/17 12:35:05 joergr 01436 * Added methods to retrieve information on predecessor documents and 01437 * verifying observers. 01438 * 01439 * Revision 1.3 2000/10/16 16:30:23 joergr 01440 * Added missing get/setSeriesDescription() methods. 01441 * Updated comments. 01442 * 01443 * Revision 1.2 2000/10/16 11:59:04 joergr 01444 * Made method creating a new SOP instance public. Added check for correct SOP 01445 * instance UID and SOP class UID to validity check. 01446 * 01447 * Revision 1.1 2000/10/13 07:49:25 joergr 01448 * Added new module 'dcmsr' providing access to DICOM structured reporting 01449 * documents (supplement 23). Doc++ documentation not yet completed. 01450 * 01451 * 01452 */