Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | Related Pages

dsrcsidl.h

00001 /*
00002  *
00003  *  Copyright (C) 2003-2004, 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: DSRCodingSchemeIdentificationList
00024  *
00025  *  Last Update:      $Author: joergr $
00026  *  Update Date:      $Date: 2004/04/07 12:02:53 $
00027  *  CVS/RCS Revision: $Revision: 1.4 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 
00035 #ifndef DSRCSIDL_H
00036 #define DSRCSIDL_H
00037 
00038 #include "osconfig.h"   /* make sure OS specific configuration is included first */
00039 
00040 #include "dsrtypes.h"
00041 
00042 #include "oflist.h"
00043 #include "ofconsol.h"
00044 
00045 
00046 /*---------------------*
00047  *  class declaration  *
00048  *---------------------*/
00049 
00054 class DSRCodingSchemeIdentificationList
00055   : public DSRTypes
00056 {
00057 
00058   public:
00059 
00062     struct ItemStruct
00063     {
00067         ItemStruct(const OFString &codingSchemeDesignator)
00068           : CodingSchemeDesignator(codingSchemeDesignator),
00069             CodingSchemeRegistry(),
00070             CodingSchemeUID(),
00071             CodingSchemeExternalID(),
00072             CodingSchemeName(),
00073             CodingSchemeVersion(),
00074             ResponsibleOrganization()
00075         {}
00076 
00079         void clear()
00080         {
00081             CodingSchemeRegistry.clear();
00082             CodingSchemeUID.clear();
00083             CodingSchemeExternalID.clear();
00084             CodingSchemeName.clear();
00085             CodingSchemeVersion.clear();
00086             ResponsibleOrganization.clear();
00087         }
00088 
00090         const OFString CodingSchemeDesignator;
00092         OFString CodingSchemeRegistry;
00094         OFString CodingSchemeUID;
00096         OFString CodingSchemeExternalID;
00098         OFString CodingSchemeName;
00100         OFString CodingSchemeVersion;
00102         OFString ResponsibleOrganization;
00103     };
00104 
00107     DSRCodingSchemeIdentificationList();
00108 
00111     ~DSRCodingSchemeIdentificationList();
00112 
00115     void clear();
00116 
00120     OFBool empty() const;
00121 
00125     size_t getNumberOfItems() const;
00126 
00132     OFCondition read(DcmItem &dataset,
00133                      OFConsole *logStream);
00134 
00141     OFCondition write(DcmItem &dataset,
00142                       OFConsole *logStream) const;
00143 
00150     OFCondition readXML(const DSRXMLDocument &doc,
00151                         DSRXMLCursor cursor,
00152                         const size_t flags);
00153 
00159     OFCondition writeXML(ostream &stream,
00160                          const size_t flags = 0) const;
00161 
00167     OFCondition addPrivateDcmtkCodingScheme();
00168 
00178     OFCondition addItem(const OFString &codingSchemeDesignator);
00179 
00184     OFCondition removeItem();
00185 
00191     OFCondition removeItem(const OFString &codingSchemeDesignator);
00192 
00197     OFCondition gotoItem(const OFString &codingSchemeDesignator);
00198 
00203     OFCondition gotoFirstItem();
00204 
00209     OFCondition gotoNextItem();
00210 
00217     const OFString &getCodingSchemeDesignator(OFString &stringValue) const;
00218 
00223     const OFString &getCodingSchemeRegistry(OFString &stringValue) const;
00224 
00229     const OFString &getCodingSchemeUID(OFString &stringValue) const;
00230 
00235     const OFString &getCodingSchemeExternalID(OFString &stringValue) const;
00236 
00241     const OFString &getCodingSchemeName(OFString &stringValue) const;
00242 
00247     const OFString &getCodingSchemeVersion(OFString &stringValue) const;
00248 
00253     const OFString &getResponsibleOrganization(OFString &stringValue) const;
00254 
00260     OFCondition setCodingSchemeRegistry(const OFString &value);
00261 
00267     OFCondition setCodingSchemeUID(const OFString &value);
00268 
00274     OFCondition setCodingSchemeExternalID(const OFString &value);
00275 
00281     OFCondition setCodingSchemeName(const OFString &value);
00282 
00288     OFCondition setCodingSchemeVersion(const OFString &value);
00289 
00295     OFCondition setResponsibleOrganization(const OFString &value);
00296 
00297 
00298   protected:
00299 
00306     OFCondition addItem(const OFString &codingSchemeDesignator,
00307                         ItemStruct *&item,
00308                         OFConsole *logStream = NULL);
00309 
00313     ItemStruct *getCurrentItem() const;
00314 
00315 
00316   private:
00317 
00319     OFList<ItemStruct *> ItemList;
00321     OFListIterator(ItemStruct *) Iterator;
00322 
00323     // copy constructor - not implemented!
00324     DSRCodingSchemeIdentificationList(const DSRCodingSchemeIdentificationList &);
00325     // assignment operator - not implemented!
00326     DSRCodingSchemeIdentificationList &operator=(const DSRCodingSchemeIdentificationList &);
00327 };
00328 
00329 
00330 #endif
00331 
00332 
00333 /*
00334  *  CVS/RCS Log:
00335  *  $Log: dsrcsidl.h,v $
00336  *  Revision 1.4  2004/04/07 12:02:53  joergr
00337  *  Added missing member variables to constructor's member initialization list
00338  *  to avoid warnings reported by gcc.
00339  *
00340  *  Revision 1.3  2004/01/16 09:57:33  joergr
00341  *  Added clear() method to struct ItemStruct.
00342  *
00343  *  Revision 1.2  2003/12/16 16:18:35  joergr
00344  *  Added note on coding scheme identfication and private coding schemes.
00345  *
00346  *  Revision 1.1  2003/09/10 13:16:13  joergr
00347  *  Replaced PrivateCodingSchemeUID by new CodingSchemeIdenticationSequence as
00348  *  required by CP 324.
00349  *
00350  *
00351  */


Generated on 26 Apr 2005 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.4.2