📄 dcelem.h
字号:
virtual OFCondition putTagVal(const DcmTagKey &attrTag, const unsigned long pos = 0); // num Values virtual OFCondition putUint8Array(const Uint8 *vals, const unsigned long num); virtual OFCondition putSint16Array(const Sint16 *vals, const unsigned long num); virtual OFCondition putUint16Array(const Uint16 *vals, const unsigned long num); virtual OFCondition putSint32Array(const Sint32 *vals, const unsigned long num); virtual OFCondition putUint32Array(const Uint32 *vals, const unsigned long num); virtual OFCondition putFloat32Array(const Float32 *vals, const unsigned long num); virtual OFCondition putFloat64Array(const Float64 *vals, const unsigned long num); protected: E_ByteOrder fByteOrder; /** This function returns this element's value. The returned value * corresponds to the byte ordering (little or big endian) that * was passed. * @param newByteOrder The byte ordering that shall be accounted * for (little or big endian). */ void *getValue(const E_ByteOrder newByteOrder = gLocalByteOrder); OFCondition changeValue(const void *value, // new Value const Uint32 position, // position in value array const Uint32 num); // number of new value bytes OFCondition putValue(const void *value, // new value const Uint32 length); // number of new value bytes OFCondition createEmptyValue(const Uint32 length); // number of new value bytes /** This function reads the data value of an attribute and stores the * information which was read in this. The information is either read * from the inStream or (if inStream is NULL) from a different stream * which was created earlier and which is accessible through the fLoadValue * member variable. Note that if not all information for an attribute * could be read from the stream, the function returns EC_StreamNotifyClient. * @param inStream The stream which contains the information. * @return status, EC_Normal if successful, an error code otherwise */ OFCondition loadValue(DcmInputStream *inStream = NULL); virtual void postLoadValue(); /** This function creates a byte array of Length bytes and returns this * array. In case Length is odd, an array of Length+1 bytes will be * created and Length will be increased by 1. */ virtual Uint8 *newValueField(); void swapValueField(size_t valueWidth); /** write element start tag in XML format * @param out output stream to which the XML start tag is written * @param flags flag used to customize the output (not yet used) * @param attrText extra attribute text to be added to the element tag */ virtual void writeXMLStartTag(ostream &out, const size_t flags, const char *attrText = NULL); /** write element end tag in XML format * @param out output stream to which the XML end tag is written * @param flags flag used to customize the output (not yet used) */ virtual void writeXMLEndTag(ostream &out, const size_t flags); private: /// required information to load value later DcmInputStreamFactory *fLoadValue; /// value of the element Uint8 *fValue;};#endif // DCELEM_H/*** CVS/RCS Log:** $Log: dcelem.h,v $** Revision 1.29 2005/12/08 16:28:11 meichel** Changed include path schema for all DCMTK header files**** Revision 1.28 2004/07/01 12:28:25 meichel** Introduced virtual clone method for DcmObject and derived classes.**** Revision 1.27 2003/07/04 13:25:35 meichel** Replaced forward declarations for OFString with explicit includes,** needed when compiling with HAVE_STD_STRING**** Revision 1.26 2002/12/09 09:31:14 wilkens** Modified/Added doc++ documentation.**** Revision 1.25 2002/12/06 12:49:09 joergr** Enhanced "print()" function by re-working the implementation and replacing** the boolean "showFullData" parameter by a more general integer flag.** Added doc++ documentation.** Made source code formatting more consistent with other modules/files.**** Revision 1.24 2002/08/27 16:55:31 meichel** Initial release of new DICOM I/O stream classes that add support for stream** compression (deflated little endian explicit VR transfer syntax)**** Revision 1.23 2002/04/25 10:06:09 joergr** Added/modified getOFStringArray() implementation.** Added support for XML output of DICOM objects.**** Revision 1.22 2001/09/25 17:19:25 meichel** Adapted dcmdata to class OFCondition**** Revision 1.21 2001/06/01 15:48:39 meichel** Updated copyright header**** Revision 1.20 2001/05/10 12:50:21 meichel** Added protected createEmptyValue() method in class DcmElement.**** Revision 1.19 2000/11/07 16:56:06 meichel** Initial release of dcmsign module for DICOM Digital Signatures**** Revision 1.18 2000/03/08 16:26:14 meichel** Updated copyright header.**** Revision 1.17 2000/02/02 14:31:16 joergr** Replaced 'delete' statements by 'delete[]' for objects created with 'new[]'.**** Revision 1.16 1999/03/31 09:24:37 meichel** Updated copyright header in module dcmdata**** Revision 1.15 1998/11/12 16:47:38 meichel** Implemented operator= for all classes derived from DcmObject.**** Revision 1.14 1998/07/15 15:48:47 joergr** Removed several compiler warnings reported by gcc 2.8.1 with** additional options, e.g. missing copy constructors and assignment** operators, initialization of member variables in the body of a** constructor instead of the member initialization list, hiding of** methods by use of identical names, uninitialized member variables,** missing const declaration of char pointers. Replaced tabs by spaces.**** Revision 1.13 1997/09/11 15:13:10 hewett** Modified getOFString method arguments by removing a default value** for the pos argument. By requiring the pos argument to be provided** ensures that callers realise getOFString only gets one component of** a multi-valued string.**** Revision 1.12 1997/08/29 08:32:38 andreas** - Added methods getOFString and getOFStringArray for all** string VRs. These methods are able to normalise the value, i. e.** to remove leading and trailing spaces. This will be done only if** it is described in the standard that these spaces are not relevant.** These methods do not test the strings for conformance, this means** especially that they do not delete spaces where they are not allowed!** getOFStringArray returns the string with all its parts separated by \** and getOFString returns only one value of the string.** CAUTION: Currently getString returns a string with trailing** spaces removed (if dcmEnableAutomaticInputDataCorrection == OFTrue) and** truncates the original string (since it is not copied!). If you rely on this** behaviour please change your application now.** Future changes will ensure that getString returns the original** string from the DICOM object (NULL terminated) inclusive padding.** Currently, if you call getOF... before calling getString without** normalisation, you can get the original string read from the DICOM object.**** Revision 1.11 1997/07/31 06:57:59 andreas** new protected method swapValueField for DcmElement**** Revision 1.10 1997/07/21 07:57:53 andreas** - New method DcmElement::detachValueField to give control over the** value field to the calling part (see dcelem.h)** - Replace all boolean types (BOOLEAN, CTNBOOLEAN, DICOM_BOOL, BOOL)** with one unique boolean type OFBool.**** Revision 1.9 1997/05/27 13:48:26 andreas** - Add method canWriteXfer to class DcmObject and all derived classes.** This method checks whether it is possible to convert the original** transfer syntax to an new transfer syntax. The check is used in the** dcmconv utility to prohibit the change of a compressed transfer** syntax to a uncompressed.**** Revision 1.8 1997/05/16 08:23:46 andreas** - Revised handling of GroupLength elements and support of** DataSetTrailingPadding elements. The enumeratio E_GrpLenEncoding** got additional enumeration values (for a description see dctypes.h).** addGroupLength and removeGroupLength methods are replaced by** computeGroupLengthAndPadding. To support Padding, the parameters of** element and sequence write functions changed.** - Added a new method calcElementLength to calculate the length of an** element, item or sequence. For elements it returns the length of** tag, length field, vr field, and value length, for item and** sequences it returns the length of the whole item. sequence including** the Delimitation tag (if appropriate). It can never return** UndefinedLength.**** Revision 1.7 1997/04/18 08:13:28 andreas** - The put/get-methods for all VRs did not conform to the C++-Standard** draft. Some Compilers (e.g. SUN-C++ Compiler, Metroworks** CodeWarrier, etc.) create many warnings concerning the hiding of** overloaded get methods in all derived classes of DcmElement.** So the interface of all value representation classes in the** library are changed rapidly, e.g.** OFCondition get(Uint16 & value, const unsigned long pos);** becomes** OFCondition getUint16(Uint16 & value, const unsigned long pos);** All (retired) "returntype get(...)" methods are deleted.** For more information see dcmdata/include/dcelem.h**** Revision 1.6 1996/07/17 12:38:58 andreas** new nextObject to iterate a DicomDataset, DicomFileFormat, Item, ...**** Revision 1.5 1996/04/16 16:01:36 andreas** - put methods for AttributeTag with DcmTagKey Parameter** - better support for NULL values**** Revision 1.4 1996/03/12 15:31:56 hewett** The base virtual get & put functions now support char*.**** Revision 1.3 1996/01/05 13:22:55 andreas** - changed to support new streaming facilities** - more cleanups** - merged read / write methods for block and file transfer***/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -