00001 /* 00002 * 00003 * Copyright (C) 1994-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: dcmdata 00015 * 00016 * Author: Andreas Barth 00017 * 00018 * Purpose: Interface of class DcmCharString 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:15:40 $ 00022 * CVS/RCS Revision: $Revision: 1.16 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 00030 #ifndef DCCHRSTR_H 00031 #define DCCHRSTR_H 00032 00033 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00034 00035 // 00036 // This implementation does not support 16 bit character sets. Since 8 bit 00037 // character sets are supported by the class DcmByteString the class 00038 // DcmCharString is derived from DcmByteString without any extensions. 00039 // 00040 // If the extension for 16 bit character sets will be implemented this class 00041 // must be derived directly from DcmElement. This class is designed to support 00042 // the value representations (LO, LT, PN, SH, ST, UT). They are a problem because 00043 // their value width (1, 2, .. Bytes) is specified by the element 00044 // SpecificCharacterSet (0008, 0005) and an implementation must support 00045 // different value widths that cannot be derived from the value representation. 00046 // 00047 00048 #include "dcmtk/dcmdata/dcbytstr.h" 00049 00050 00053 class DcmCharString 00054 : public DcmByteString 00055 { 00056 00057 public: 00058 00064 DcmCharString(const DcmTag &tag, 00065 const Uint32 len); 00066 00070 DcmCharString(const DcmCharString &old); 00071 00074 virtual ~DcmCharString(); 00075 00080 DcmCharString &operator=(const DcmCharString &obj); 00081 00085 virtual DcmObject *clone() const 00086 { 00087 return new DcmCharString(*this); 00088 } 00089 00102 virtual OFCondition copyFrom(const DcmObject& rhs); 00103 00108 virtual OFBool containsExtendedCharacters(const OFBool checkAllStrings = OFFalse); 00109 00113 virtual OFBool isAffectedBySpecificCharacterSet() const; 00114 }; 00115 00116 00117 #endif // DCCHRSTR_H 00118 00119 00120 /* 00121 * CVS/RCS Log: 00122 * $Log: dcchrstr.h,v $ 00123 * Revision 1.16 2010-10-14 13:15:40 joergr 00124 * Updated copyright header. Added reference to COPYRIGHT file. 00125 * 00126 * Revision 1.15 2008-07-17 11:19:48 onken 00127 * Updated copyFrom() documentation. 00128 * 00129 * Revision 1.14 2008-07-17 10:30:22 onken 00130 * Implemented copyFrom() method for complete DcmObject class hierarchy, which 00131 * permits setting an instance's value from an existing object. Implemented 00132 * assignment operator where necessary. 00133 * 00134 * Revision 1.13 2006-12-15 14:18:07 joergr 00135 * Added new method that checks whether a DICOM object or element is affected 00136 * by SpecificCharacterSet (0008,0005). 00137 * 00138 * Revision 1.12 2006/12/13 13:58:15 joergr 00139 * Added new optional parameter "checkAllStrings" to method containsExtended 00140 * Characters(). 00141 * 00142 * Revision 1.11 2006/05/11 08:52:09 joergr 00143 * Moved checkForNonASCIICharacters() from application to library. 00144 * 00145 * Revision 1.10 2005/12/08 16:28:00 meichel 00146 * Changed include path schema for all DCMTK header files 00147 * 00148 * Revision 1.9 2004/07/01 12:28:25 meichel 00149 * Introduced virtual clone method for DcmObject and derived classes. 00150 * 00151 * Revision 1.8 2002/12/06 12:49:08 joergr 00152 * Enhanced "print()" function by re-working the implementation and replacing 00153 * the boolean "showFullData" parameter by a more general integer flag. 00154 * Added doc++ documentation. 00155 * Made source code formatting more consistent with other modules/files. 00156 * 00157 * Revision 1.7 2001/06/01 15:48:33 meichel 00158 * Updated copyright header 00159 * 00160 * Revision 1.6 2000/03/08 16:26:11 meichel 00161 * Updated copyright header. 00162 * 00163 * Revision 1.5 1999/03/31 09:24:30 meichel 00164 * Updated copyright header in module dcmdata 00165 * 00166 * 00167 */