dcmsr/include/dcmtk/dcmsr/dsrcsidl.h

00001 /*
00002  *
00003  *  Copyright (C) 2003-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: DSRCodingSchemeIdentificationList
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:16:32 $
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 DSRCSIDL_H
00032 #define DSRCSIDL_H
00033 
00034 #include "dcmtk/config/osconfig.h"   /* make sure OS specific configuration is included first */
00035 
00036 #include "dcmtk/dcmsr/dsrtypes.h"
00037 
00038 #include "dcmtk/ofstd/oflist.h"
00039 
00040 
00041 /*---------------------*
00042  *  class declaration  *
00043  *---------------------*/
00044 
00049 class DSRCodingSchemeIdentificationList
00050   : public DSRTypes
00051 {
00052 
00053   public:
00054 
00057     struct ItemStruct
00058     {
00062         ItemStruct(const OFString &codingSchemeDesignator)
00063           : CodingSchemeDesignator(codingSchemeDesignator),
00064             CodingSchemeRegistry(),
00065             CodingSchemeUID(),
00066             CodingSchemeExternalID(),
00067             CodingSchemeName(),
00068             CodingSchemeVersion(),
00069             ResponsibleOrganization()
00070         {}
00071 
00074         void clear()
00075         {
00076             CodingSchemeRegistry.clear();
00077             CodingSchemeUID.clear();
00078             CodingSchemeExternalID.clear();
00079             CodingSchemeName.clear();
00080             CodingSchemeVersion.clear();
00081             ResponsibleOrganization.clear();
00082         }
00083 
00085         const OFString CodingSchemeDesignator;
00087         OFString CodingSchemeRegistry;
00089         OFString CodingSchemeUID;
00091         OFString CodingSchemeExternalID;
00093         OFString CodingSchemeName;
00095         OFString CodingSchemeVersion;
00097         OFString ResponsibleOrganization;
00098     };
00099 
00102     DSRCodingSchemeIdentificationList();
00103 
00106     ~DSRCodingSchemeIdentificationList();
00107 
00110     void clear();
00111 
00115     OFBool empty() const;
00116 
00120     size_t getNumberOfItems() const;
00121 
00126     OFCondition read(DcmItem &dataset);
00127 
00133     OFCondition write(DcmItem &dataset) const;
00134 
00141     OFCondition readXML(const DSRXMLDocument &doc,
00142                         DSRXMLCursor cursor,
00143                         const size_t flags);
00144 
00150     OFCondition writeXML(STD_NAMESPACE ostream &stream,
00151                          const size_t flags = 0) const;
00152 
00158     OFCondition addPrivateDcmtkCodingScheme();
00159 
00169     OFCondition addItem(const OFString &codingSchemeDesignator);
00170 
00175     OFCondition removeItem();
00176 
00182     OFCondition removeItem(const OFString &codingSchemeDesignator);
00183 
00188     OFCondition gotoItem(const OFString &codingSchemeDesignator);
00189 
00194     OFCondition gotoFirstItem();
00195 
00200     OFCondition gotoNextItem();
00201 
00208     const OFString &getCodingSchemeDesignator(OFString &stringValue) const;
00209 
00214     const OFString &getCodingSchemeRegistry(OFString &stringValue) const;
00215 
00220     const OFString &getCodingSchemeUID(OFString &stringValue) const;
00221 
00226     const OFString &getCodingSchemeExternalID(OFString &stringValue) const;
00227 
00232     const OFString &getCodingSchemeName(OFString &stringValue) const;
00233 
00238     const OFString &getCodingSchemeVersion(OFString &stringValue) const;
00239 
00244     const OFString &getResponsibleOrganization(OFString &stringValue) const;
00245 
00251     OFCondition setCodingSchemeRegistry(const OFString &value);
00252 
00258     OFCondition setCodingSchemeUID(const OFString &value);
00259 
00265     OFCondition setCodingSchemeExternalID(const OFString &value);
00266 
00272     OFCondition setCodingSchemeName(const OFString &value);
00273 
00279     OFCondition setCodingSchemeVersion(const OFString &value);
00280 
00286     OFCondition setResponsibleOrganization(const OFString &value);
00287 
00288 
00289   protected:
00290 
00296     OFCondition addItem(const OFString &codingSchemeDesignator,
00297                         ItemStruct *&item);
00298 
00302     ItemStruct *getCurrentItem() const;
00303 
00304 
00305   private:
00306 
00308     OFList<ItemStruct *> ItemList;
00310     OFListIterator(ItemStruct *) Iterator;
00311 
00312     // copy constructor - not implemented!
00313     DSRCodingSchemeIdentificationList(const DSRCodingSchemeIdentificationList &);
00314     // assignment operator - not implemented!
00315     DSRCodingSchemeIdentificationList &operator=(const DSRCodingSchemeIdentificationList &);
00316 };
00317 
00318 
00319 #endif
00320 
00321 
00322 /*
00323  *  CVS/RCS Log:
00324  *  $Log: dsrcsidl.h,v $
00325  *  Revision 1.12  2010-10-14 13:16:32  joergr
00326  *  Updated copyright header. Added reference to COPYRIGHT file.
00327  *
00328  *  Revision 1.11  2010-02-22 11:39:55  uli
00329  *  Remove some unneeded includes.
00330  *
00331  *  Revision 1.10  2009-10-13 14:57:50  uli
00332  *  Switched to logging mechanism provided by the "new" oflog module.
00333  *
00334  *  Revision 1.9  2007-11-15 16:33:19  joergr
00335  *  Fixed coding style to be more consistent.
00336  *
00337  *  Revision 1.8  2006/08/15 16:40:03  meichel
00338  *  Updated the code in module dcmsr to correctly compile when
00339  *    all standard C++ classes remain in namespace std.
00340  *
00341  *  Revision 1.7  2006/05/11 09:18:21  joergr
00342  *  Moved containsExtendedCharacters() from dcmsr to dcmdata module.
00343  *
00344  *  Revision 1.6  2005/12/08 16:04:57  meichel
00345  *  Changed include path schema for all DCMTK header files
00346  *
00347  *  Revision 1.5  2004/11/22 16:39:09  meichel
00348  *  Added method that checks if the SR document contains non-ASCII characters
00349  *    in any of the strings affected by SpecificCharacterSet.
00350  *
00351  *  Revision 1.4  2004/04/07 12:02:53  joergr
00352  *  Added missing member variables to constructor's member initialization list
00353  *  to avoid warnings reported by gcc.
00354  *
00355  *  Revision 1.3  2004/01/16 09:57:33  joergr
00356  *  Added clear() method to struct ItemStruct.
00357  *
00358  *  Revision 1.2  2003/12/16 16:18:35  joergr
00359  *  Added note on coding scheme identfication and private coding schemes.
00360  *
00361  *  Revision 1.1  2003/09/10 13:16:13  joergr
00362  *  Replaced PrivateCodingSchemeUID by new CodingSchemeIdenticationSequence as
00363  *  required by CP 324.
00364  *
00365  *
00366  */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1