DCMTK
Version 3.6.1 20170228
OFFIS DICOM Toolkit
|
abstract base class for all DICOM elements More...
Public Member Functions | |
DcmElement (const DcmTag &tag, const Uint32 len=0) | |
constructor. More... | |
DcmElement (const DcmElement &old) | |
copy constructor More... | |
virtual | ~DcmElement () |
destructor | |
DcmElement & | operator= (const DcmElement &obj) |
assignment operator More... | |
virtual int | compare (const DcmElement &rhs) const =0 |
comparison operator that compares the normalized value of this element with a given element of the same type (e.g. More... | |
virtual OFCondition | copyFrom (const DcmObject &rhs) |
Virtual object copying. More... | |
virtual Uint32 | calcElementLength (const E_TransferSyntax xfer, const E_EncodingType enctype) |
calculate the length of this DICOM element when encoded with the given transfer syntax and the given encoding type for sequences. More... | |
virtual Uint32 | getLength (const E_TransferSyntax=EXS_LittleEndianImplicit, const E_EncodingType=EET_UndefinedLength) |
calculate the value length (without attribute tag, VR and length field) of this DICOM element when encoded with the given transfer syntax and the given encoding type for sequences. More... | |
virtual OFBool | isLeaf () const |
check if this element is a leaf node in a dataset tree. More... | |
OFBool | valueLoaded () const |
check if value of this element is loaded into main memory More... | |
virtual void | transferInit () |
initialize the transfer state of this object. More... | |
virtual OFBool | canWriteXfer (const E_TransferSyntax newXfer, const E_TransferSyntax oldXfer) |
check if this DICOM object can be encoded in the given transfer syntax. More... | |
virtual OFCondition | read (DcmInputStream &inStream, const E_TransferSyntax ixfer, const E_GrpLenEncoding glenc=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength) |
This function reads the data value of an attribute which is captured in the input stream and captures this information in this. More... | |
virtual OFCondition | write (DcmOutputStream &outStream, const E_TransferSyntax oxfer, const E_EncodingType enctype, DcmWriteCache *wcache) |
This function writes this element's value to the outstream which was passed. More... | |
virtual OFCondition | writeXML (STD_NAMESPACE ostream &out, const size_t flags=0) |
write object in XML format More... | |
virtual OFCondition | writeJson (STD_NAMESPACE ostream &out, DcmJsonFormat &format) |
write object in JSON format More... | |
virtual OFCondition | writeSignatureFormat (DcmOutputStream &outStream, const E_TransferSyntax oxfer, const E_EncodingType enctype, DcmWriteCache *wcache) |
special write method for creation of digital signatures More... | |
virtual OFCondition | clear () |
clear (remove) attribute value More... | |
virtual OFCondition | checkValue (const OFString &vm="1-n", const OFBool oldFormat=OFFalse) |
check whether stored value conforms to the VR and to the specified VM More... | |
virtual OFCondition | loadAllDataIntoMemory () |
this method loads all attribute values maintained by this object and all sub-objects (in case of a container such as DcmDataset) into memory. More... | |
virtual OFCondition | getUint8 (Uint8 &val, const unsigned long pos=0) |
retrieve a single value of type Uint8. More... | |
virtual OFCondition | getSint16 (Sint16 &val, const unsigned long pos=0) |
retrieve a single value of type Sint16. More... | |
virtual OFCondition | getUint16 (Uint16 &val, const unsigned long pos=0) |
retrieve a single value of type Uint16. More... | |
virtual OFCondition | getSint32 (Sint32 &val, const unsigned long pos=0) |
retrieve a single value of type Sint32. More... | |
virtual OFCondition | getUint32 (Uint32 &val, const unsigned long pos=0) |
retrieve a single value of type Uint32. More... | |
virtual OFCondition | getFloat32 (Float32 &val, const unsigned long pos=0) |
retrieve a single value of type Float32. More... | |
virtual OFCondition | getFloat64 (Float64 &val, const unsigned long pos=0) |
retrieve a single value of type Float64. More... | |
virtual OFCondition | getTagVal (DcmTagKey &val, const unsigned long pos=0) |
retrieve a single value of type DcmTagKey. More... | |
virtual OFCondition | getOFString (OFString &str, const unsigned long pos, OFBool normalize=OFTrue) |
retrieve a single value of type string. More... | |
virtual OFCondition | getOFStringArray (OFString &value, OFBool normalize=OFTrue) |
get entire element value as a character string. More... | |
virtual OFCondition | getString (char *&val) |
get a pointer to the element value of the current element as type string. More... | |
virtual OFCondition | getString (char *&val, Uint32 &len) |
get a pointer to the element value of the current element as type string. More... | |
virtual OFCondition | getUint8Array (Uint8 *&val) |
get a pointer to the element value of the current element as type string. More... | |
virtual OFCondition | getSint16Array (Sint16 *&val) |
get a pointer to the element value of the current element as type Sint16. More... | |
virtual OFCondition | getUint16Array (Uint16 *&val) |
get a pointer to the element value of the current element as type Uint16. More... | |
virtual OFCondition | getSint32Array (Sint32 *&val) |
get a pointer to the element value of the current element as type Sint32. More... | |
virtual OFCondition | getUint32Array (Uint32 *&val) |
get a pointer to the element value of the current element as type Uint32. More... | |
virtual OFCondition | getFloat32Array (Float32 *&val) |
get a pointer to the element value of the current element as type Float32. More... | |
virtual OFCondition | getFloat64Array (Float64 *&val) |
get a pointer to the element value of the current element as type Float64. More... | |
OFCondition | detachValueField (OFBool copy=OFFalse) |
detach the value field from the DICOM element (i.e., this object). More... | |
virtual OFCondition | putOFStringArray (const OFString &val) |
replace the element value by a copy of the given string (which is possibly multi-valued). More... | |
virtual OFCondition | putString (const char *val) |
replace the element value by a copy of the given string (which is possibly multi-valued). More... | |
virtual OFCondition | putString (const char *val, const Uint32 len) |
replace the element value by a copy of the given string (which is possibly multi-valued). More... | |
virtual OFCondition | putSint16 (const Sint16 val, const unsigned long pos=0) |
insert into the element value a copy of the given Sint16 value. More... | |
virtual OFCondition | putUint16 (const Uint16 val, const unsigned long pos=0) |
insert into the element value a copy of the given Uint16 value. More... | |
virtual OFCondition | putSint32 (const Sint32 val, const unsigned long pos=0) |
insert into the element value a copy of the given Sint32 value. More... | |
virtual OFCondition | putUint32 (const Uint32 val, const unsigned long pos=0) |
insert into the element value a copy of the given Uint32 value. More... | |
virtual OFCondition | putFloat32 (const Float32 val, const unsigned long pos=0) |
insert into the element value a copy of the given Float32 value. More... | |
virtual OFCondition | putFloat64 (const Float64 val, const unsigned long pos=0) |
insert into the element value a copy of the given Float64 value. More... | |
virtual OFCondition | putTagVal (const DcmTagKey &attrTag, const unsigned long pos=0) |
insert into the element value a copy of the given DcmTagKey value. More... | |
virtual OFCondition | putUint8Array (const Uint8 *vals, const unsigned long num) |
replace the element value by a copy of the given Uint8 array (which is possibly multi-valued). More... | |
virtual OFCondition | putSint16Array (const Sint16 *vals, const unsigned long num) |
replace the element value by a copy of the given Sint16 array (which is possibly multi-valued). More... | |
virtual OFCondition | putUint16Array (const Uint16 *vals, const unsigned long num) |
replace the element value by a copy of the given Uint16 array (which is possibly multi-valued). More... | |
virtual OFCondition | putSint32Array (const Sint32 *vals, const unsigned long num) |
replace the element value by a copy of the given Sint32 array (which is possibly multi-valued). More... | |
virtual OFCondition | putUint32Array (const Uint32 *vals, const unsigned long num) |
replace the element value by a copy of the given Uint32 array (which is possibly multi-valued). More... | |
virtual OFCondition | putFloat32Array (const Float32 *vals, const unsigned long num) |
replace the element value by a copy of the given Float32 array (which is possibly multi-valued). More... | |
virtual OFCondition | putFloat64Array (const Float64 *vals, const unsigned long num) |
replace the element value by a copy of the given Float64 array (which is possibly multi-valued). More... | |
virtual OFCondition | getPartialValue (void *targetBuffer, const Uint32 offset, Uint32 numBytes, DcmFileCache *cache=NULL, E_ByteOrder byteOrder=gLocalByteOrder) |
Copy numBytes bytes of data from the attribute value in byteOrder byte order to targetBuffer, starting at byte offset offset of the attribute value. More... | |
virtual OFCondition | createUint8Array (const Uint32 numBytes, Uint8 *&bytes) |
create an empty Uint8 array of given number of bytes and set it. More... | |
virtual OFCondition | createUint16Array (const Uint32 numWords, Uint16 *&words) |
create an empty Uint16 array of given number of words and set it. More... | |
virtual OFCondition | createValueFromTempFile (DcmInputStreamFactory *factory, const Uint32 length, const E_ByteOrder byteOrder) |
replace the attribute value with the content of the given temporary file. More... | |
virtual void | compact () |
remove the attribute value from memory if the attribute value can be loaded from file when needed again. More... | |
virtual OFCondition | getUncompressedFrameSize (DcmItem *dataset, Uint32 &frameSize) const |
compute uncompressed frame size of a single frame of this image. More... | |
virtual OFCondition | getUncompressedFrame (DcmItem *dataset, Uint32 frameNo, Uint32 &startFragment, void *buffer, Uint32 bufSize, OFString &decompressedColorModel, DcmFileCache *cache=NULL) |
access single frame without decompressing or loading a complete multi-frame object. More... | |
virtual OFCondition | getDecompressedColorModel (DcmItem *dataset, OFString &decompressedColorModel) |
determine color model of the decompressed image More... | |
![]() | |
DcmObject (const DcmTag &tag, const Uint32 len=0) | |
constructor. More... | |
DcmObject (const DcmObject &obj) | |
copy constructor More... | |
virtual | ~DcmObject () |
destructor | |
virtual DcmObject * | clone () const =0 |
clone method More... | |
DcmObject & | operator= (const DcmObject &obj) |
copy assignment operator More... | |
virtual DcmEVR | ident () const =0 |
return identifier for this class. More... | |
DcmEVR | getVR () const |
return the value representation assigned to this object. More... | |
OFBool | isaString () const |
check if this element is a string type, based on the VR. More... | |
virtual OFBool | isNested () const |
check if this element is nested in a sequence of items, i.e. not a top-level or stand-alone element More... | |
virtual void | print (STD_NAMESPACE ostream &out, const size_t flags=0, const int level=0, const char *pixelFileName=NULL, size_t *pixelCounter=NULL)=0 |
print object to a stream More... | |
E_TransferState | transferState () const |
return the current transfer (read/write) state of this object. More... | |
virtual void | transferEnd (void) |
finalize the transfer state of this object. More... | |
DcmItem * | getRootItem () |
get root dataset/item (top-level) that contains this object. More... | |
virtual DcmItem * | getParentItem () |
get parent item of this object. More... | |
DcmObject * | getParent () |
get parent of this object. More... | |
const DcmObject * | getParent () const |
get parent of this object. More... | |
void | setParent (DcmObject *parent) |
set parent of this object. More... | |
Uint16 | getGTag () const |
return the group number of the attribute tag for this object More... | |
Uint16 | getETag () const |
return the element number of the attribute tag for this object More... | |
const DcmTag & | getTag () const |
return const reference to the attribute tag for this object More... | |
void | setGTag (Uint16 gtag) |
assign group tag (but not element tag) of the attribute tag for this object. More... | |
virtual OFCondition | setVR (DcmEVR) |
assign a new Value Representation (VR) to this object. More... | |
virtual unsigned long | getVM ()=0 |
return value multiplicity of the current object More... | |
virtual OFBool | isSignable () const |
returns true if the current object may be included in a digital signature More... | |
virtual OFBool | containsUnknownVR () const |
returns true if the object contains an element with Unknown VR at any nesting level More... | |
virtual OFBool | containsExtendedCharacters (const OFBool checkAllStrings=OFFalse) |
check if this object contains non-ASCII characters More... | |
virtual OFBool | isAffectedBySpecificCharacterSet () const |
check if this object is affected by SpecificCharacterSet More... | |
virtual OFCondition | convertCharacterSet (DcmSpecificCharacterSet &converter) |
convert this object from the currently selected source character set to the currently selected destination character set (if affected by SpecificCharacterSet) More... | |
virtual OFBool | isEmpty (const OFBool normalize=OFTrue) |
check if this object is empty More... | |
virtual OFCondition | verify (const OFBool autocorrect=OFFalse)=0 |
check the currently stored element value More... | |
virtual DcmObject * | nextInContainer (const DcmObject *obj) |
this method is only used in container classes derived from this class, that is, DcmItem and DcmSequenceOfItems. More... | |
virtual OFCondition | nextObject (DcmStack &stack, const OFBool intoSub) |
this method enables a stack based, depth-first traversal of a complete hierarchical DICOM dataset (that is, classes derived from DcmItem or DcmSequenceOfItems). More... | |
virtual OFCondition | search (const DcmTagKey &xtag, DcmStack &resultStack, E_SearchMode mode=ESM_fromHere, OFBool searchIntoSub=OFTrue) |
a complex, stack-based, hierarchical search method. More... | |
Uint32 | getLengthField () const |
return the current value of the Length field (which is different from the functionality of the public getLength() method). More... | |
Static Public Member Functions | |
static int | scanValue (const OFString &value, const OFString &vr, const size_t pos=0, const size_t num=OFString_npos) |
scan string value for conformance with given value representation (VR) More... | |
static unsigned long | determineVM (const char *str, const size_t len) |
determine the number of values stored in a string, i.e. the value multiplicity (VM) More... | |
static size_t | getValueFromString (const char *str, const size_t pos, const size_t len, OFString &val) |
get the first value stored in the given string. More... | |
static OFCondition | checkVM (const unsigned long vmNum, const OFString &vmStr) |
check for correct value multiplicity (VM) More... | |
Protected Member Functions | |
void * | getValue (const E_ByteOrder newByteOrder=gLocalByteOrder) |
This function returns this element's value. More... | |
OFCondition | changeValue (const void *value, const Uint32 position, const Uint32 num) |
insert into the element value a copy of the given raw value. More... | |
OFCondition | putValue (const void *value, const Uint32 length) |
replace the element value by a copy of the given raw data block More... | |
OFCondition | createEmptyValue (const Uint32 length) |
create a new, empty value field of given size. More... | |
OFCondition | loadValue (DcmInputStream *inStream=NULL) |
This function reads the data value of an attribute and stores the information which was read in this. More... | |
virtual void | postLoadValue () |
performs clean-up functions after loading an attribute value into main memory. More... | |
virtual Uint8 * | newValueField () |
This function creates a byte array of Length bytes and returns this array. More... | |
void | swapValueField (size_t valueWidth) |
swaps the content of the value field (if loaded) from big-endian to little-endian or back More... | |
virtual void | writeXMLStartTag (STD_NAMESPACE ostream &out, const size_t flags, const char *attrText=NULL) |
write element start tag in XML format More... | |
virtual void | writeXMLEndTag (STD_NAMESPACE ostream &out, const size_t flags) |
write element end tag in XML format More... | |
virtual void | writeJsonOpener (STD_NAMESPACE ostream &out, DcmJsonFormat &format) |
write element start tag in JSON format More... | |
virtual void | writeJsonCloser (STD_NAMESPACE ostream &out, DcmJsonFormat &format) |
write element end tag in JSON format More... | |
E_ByteOrder | getByteOrder () const |
return the current byte order of the value field More... | |
void | setByteOrder (E_ByteOrder val) |
set the current byte order of the value field More... | |
![]() | |
void | printNestingLevel (STD_NAMESPACE ostream &out, const size_t flags, const int level) |
print line indentation, e.g. a couple of spaces for each nesting level. More... | |
void | printInfoLineStart (STD_NAMESPACE ostream &out, const size_t flags, const int level, DcmTag *tag=NULL) |
print beginning of the info line. More... | |
void | printInfoLineEnd (STD_NAMESPACE ostream &out, const size_t flags, const unsigned long printedLength=0xffffffff, DcmTag *tag=NULL) |
print end of the info line. More... | |
virtual void | printInfoLine (STD_NAMESPACE ostream &out, const size_t flags, const int level=0, const char *info=NULL, DcmTag *tag=NULL, const OFBool isInfo=OFTrue) |
print given text with element information. More... | |
virtual OFCondition | writeTagAndLength (DcmOutputStream &outStream, const E_TransferSyntax oxfer, Uint32 &writtenBytes) const |
write tag, VR and length field to the given output stream More... | |
virtual Uint32 | getTagAndLengthSize (const E_TransferSyntax oxfer) const |
return the number of bytes needed to serialize the tag, VR and length information of the current object using the given transfer syntax. More... | |
const char * | getTagName () |
return the DICOM attribute tag name for this object. More... | |
void | setTagVR (DcmEVR vr) |
set the VR for this attribute More... | |
E_TransferState | getTransferState () const |
return the current transfer state of this object during serialization/deserialization More... | |
void | setTransferState (E_TransferState newState) |
set the current transfer state of this object during serialization/deserialization More... | |
Uint32 | getTransferredBytes () const |
return the number of transferred bytes for this object during serialization/deserialization More... | |
void | setTransferredBytes (Uint32 val) |
set the number of transferred bytes for this object during serialization/deserialization More... | |
void | incTransferredBytes (Uint32 val) |
add to the number of transferred bytes for this object during serialization/deserialization More... | |
void | setLengthField (Uint32 val) |
set the current value of the Length field More... | |
Private Attributes | |
E_ByteOrder | fByteOrder |
current byte order of attribute value in memory | |
DcmInputStreamFactory * | fLoadValue |
required information to load value later | |
Uint8 * | fValue |
value of the element | |
Friends | |
OFBool | operator< (const DcmElement &lhs, const DcmElement &rhs) |
Checks whether left hand side element is smaller than right hand side element. More... | |
OFBool | operator> (const DcmElement &lhs, const DcmElement &rhs) |
Checks whether left hand side element is greater than right hand side element. More... | |
OFBool | operator<= (const DcmElement &lhs, const DcmElement &rhs) |
Checks whether left hand side element is smaller than or equal to right hand side element. More... | |
OFBool | operator>= (const DcmElement &lhs, const DcmElement &rhs) |
Checks whether left hand side element is greater than or equal to right hand side element. More... | |
Additional Inherited Members | |
![]() | |
static OFCondition | writeTag (DcmOutputStream &outStream, const DcmTag &tag, const E_TransferSyntax oxfer) |
static helper function that writes a given attribute tag to a binary output stream using the byte order indicated by the transfer syntax. More... | |
![]() | |
OFCondition | errorFlag |
error flag for this object. | |
abstract base class for all DICOM elements
DcmElement::DcmElement | ( | const DcmTag & | tag, |
const Uint32 | len = 0 |
||
) |
constructor.
Create new element from given tag and length.
tag | DICOM tag for the new element |
len | value length for the new element |
DcmElement::DcmElement | ( | const DcmElement & | old | ) |
copy constructor
old | element to be copied |
|
virtual |
calculate the length of this DICOM element when encoded with the given transfer syntax and the given encoding type for sequences.
For elements, the length includes the length of the tag, length field, VR field and the value itself, for items and sequences it returns the length of the complete item or sequence including delimitation tags if applicable. Never returns undefined length.
xfer | transfer syntax for length calculation |
enctype | sequence encoding type for length calculation |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, DcmFileFormat, and DcmPixelSequence.
|
virtual |
check if this DICOM object can be encoded in the given transfer syntax.
newXfer | transfer syntax in which the DICOM object is to be encoded |
oldXfer | transfer syntax in which the DICOM object was read or created. |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, DcmPixelSequence, DcmFileFormat, and DcmOtherByteOtherWord.
|
protected |
insert into the element value a copy of the given raw value.
If the attribute is multi-valued, all other values remain untouched. Only works for fixed-size VRs, not for strings.
value | new value to be inserted |
position | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
num | number of bytes for each value in the value field. |
|
virtual |
check whether stored value conforms to the VR and to the specified VM
vm | value multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.) Interpreted as cardinality (number of items) for sequence attributes. |
oldFormat | support old ACR/NEMA format for certain VRs (DA, TM, PN) if OFTrue |
Reimplemented in DcmSequenceOfItems, DcmAttributeTag, DcmOtherByteOtherWord, DcmFloatingPointDouble, DcmFloatingPointSingle, DcmSignedLong, DcmSignedShort, DcmUnsignedLong, DcmUnsignedShort, DcmOtherLong, DcmDecimalString, DcmShortString, DcmIntegerString, DcmLongString, DcmOtherDouble, DcmOtherFloat, DcmPersonName, DcmTime, DcmApplicationEntity, DcmAgeString, DcmCodeString, DcmDate, DcmDateTime, DcmUnlimitedCharacters, DcmUniversalResourceIdentifierOrLocator, DcmUniqueIdentifier, DcmUnlimitedText, DcmShortText, and DcmLongText.
|
static |
check for correct value multiplicity (VM)
vmNum | value multiplicity of the value to be checked. For empty values (vmNum=0), the status of the check is always EC_Normal (i.e. no error). |
vmStr | value multiplicity (according to the data dictionary) to be checked for. (valid values: "1", "1-2", "1-3", "1-8", "1-99", "1-n", "2", "2-n", "2-2n", "3", "3-n", "3-3n", "4", "5", "5-n", "6", "7", "7-7n", "8", "9", "16", "24", "32", "256") |
|
virtual |
clear (remove) attribute value
Implements DcmObject.
Reimplemented in DcmSequenceOfItems, DcmByteString, DcmFileFormat, and DcmUnsignedLongOffset.
|
virtual |
remove the attribute value from memory if the attribute value can be loaded from file when needed again.
Otherwise do nothing.
|
pure virtual |
comparison operator that compares the normalized value of this element with a given element of the same type (e.g.
an DcmUnsignedShort with a DcmUnsignedShort). The tag of the element is also considered as the first component that is compared, followed by the object types (VR, i.e. DCMTK'S EVR). DcmElement's default implementation does only compare the tag and EVR while the derived classes implement the value comparisons by comparing all the components that make up the value, preferably in the order declared in the object (if applicable).
rhs | the right hand side of the comparison |
Implemented in DcmByteString, DcmSequenceOfItems, DcmAttributeTag, DcmFloatingPointDouble, DcmFloatingPointSingle, DcmSignedLong, DcmUnsignedLong, DcmOtherByteOtherWord, DcmSignedShort, and DcmUnsignedShort.
|
virtual |
Virtual object copying.
This method can be used for DcmObject and derived classes to get a deep copy of an object. Internally the assignment operator is called if the given DcmObject parameter is of the same type as "this" object instance. If not, an error is returned. This function permits copying an object by value in a virtual way which therefore is different to just calling the assignment operator of DcmElement which could result in slicing the object.
rhs | - [in] The instance to copy from. Has to be of the same class type as "this" object |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmByteString, DcmSequenceOfItems, DcmAttributeTag, DcmOtherByteOtherWord, DcmFloatingPointDouble, DcmFloatingPointSingle, DcmSignedLong, DcmSignedShort, DcmUnsignedLong, DcmUnsignedShort, DcmPixelSequence, DcmFileFormat, DcmCharString, DcmPixelItem, DcmOverlayData, DcmOtherLong, DcmUnsignedLongOffset, DcmDecimalString, DcmOtherDouble, DcmOtherFloat, DcmShortString, DcmIntegerString, DcmLongString, DcmPersonName, DcmTime, DcmUniversalResourceIdentifierOrLocator, DcmApplicationEntity, DcmAgeString, DcmCodeString, DcmDate, DcmDateTime, DcmUnlimitedCharacters, DcmUnlimitedText, DcmShortText, DcmUniqueIdentifier, DcmLongText, and DcmPolymorphOBOW.
|
protected |
create a new, empty value field of given size.
length | size of new value field in bytes |
|
virtual |
create an empty Uint16 array of given number of words and set it.
All array elements are initialized with a value of 0 (using 'memzero'). This method is only applicable to OW data.
numWords | number of words (16 bit) to be created |
words | stores the pointer to the resulting buffer |
Reimplemented in DcmPixelData, DcmOtherByteOtherWord, and DcmPolymorphOBOW.
|
virtual |
create an empty Uint8 array of given number of bytes and set it.
All array elements are initialized with a value of 0 (using 'memzero'). This method is only applicable to certain VRs, e.g. OB.
numBytes | number of bytes (8 bit) to be created |
bytes | stores the pointer to the resulting buffer |
Reimplemented in DcmPixelData, DcmOtherByteOtherWord, and DcmPolymorphOBOW.
|
virtual |
replace the attribute value with the content of the given temporary file.
The temporary file is not opened/loaded until the attribute value is accessed, very much like large attributes that remain in file during a read operation.
factory | a factory object that is able to create an input stream to the temporary file at the right location. |
length | attribute value length, in bytes. Must be even length. The length is not checked against the real length of the temporary file, which might be written or completed after the call to this method. |
byteOrder | byte order in the temporary file |
Reimplemented in DcmPixelData.
OFCondition DcmElement::detachValueField | ( | OFBool | copy = OFFalse | ) |
detach the value field from the DICOM element (i.e., this object).
After detaching the calling part of the application has total control over the element value, especially the value must be deleted from the heap after use. The DICOM element remains a copy of the value if the copy parameter is OFTrue; otherwise the value is erased in the DICOM element.
copy | if true, copy value field before detaching; if false, do not retain a copy. |
|
static |
determine the number of values stored in a string, i.e. the value multiplicity (VM)
str | character string |
len | length of the string (number of characters without the trailing NULL byte) |
|
inlineprotected |
return the current byte order of the value field
|
virtual |
determine color model of the decompressed image
dataset | pointer to DICOM dataset in which this pixel data object is located. Used to access photometric interpretation. |
decompressedColorModel | upon successful return, the color model of the decompressed image (which may be different from the one used in the compressed images) is returned in this parameter |
Reimplemented in DcmPixelData.
|
virtual |
retrieve a single value of type Float32.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmFloatingPointSingle.
|
virtual |
get a pointer to the element value of the current element as type Float32.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmFloatingPointSingle.
|
virtual |
retrieve a single value of type Float64.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmFloatingPointDouble, and DcmDecimalString.
|
virtual |
get a pointer to the element value of the current element as type Float64.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmFloatingPointDouble.
|
inlinevirtual |
calculate the value length (without attribute tag, VR and length field) of this DICOM element when encoded with the given transfer syntax and the given encoding type for sequences.
Never returns undefined length.
xfer | transfer syntax for length calculation |
enctype | sequence encoding type for length calculation |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, and DcmByteString.
References DcmObject::getLengthField().
Referenced by I2DOutputPlug::checkAndInventType1Attrib().
|
virtual |
retrieve a single value of type string.
Requires element to be of corresponding VR, otherwise an error is returned.
str | value returned in this parameter upon success |
pos | position in multi-valued attribute |
normalize | true if string is to be normalized (e.g. trailing space characters to be trimmed) |
Reimplemented in DcmOtherByteOtherWord, DcmByteString, DcmAttributeTag, DcmFloatingPointDouble, DcmFloatingPointSingle, DcmSignedLong, DcmSignedShort, DcmUnsignedLong, DcmUnsignedShort, DcmDecimalString, DcmUniqueIdentifier, DcmIntegerString, DcmUniversalResourceIdentifierOrLocator, DcmUnlimitedText, DcmShortText, DcmLongText, DcmShortString, DcmLongString, DcmPersonName, DcmTime, DcmApplicationEntity, DcmCodeString, DcmDate, DcmDateTime, and DcmUnlimitedCharacters.
|
virtual |
get entire element value as a character string.
In case of VM > 1 the individual values are separated by a backslash ('\'). This method implements a general approach by concatenating the results of getOFString() for each value component. Derived class may implement more sophisticated methods.
value | variable in which the result value is stored |
normalize | normalize each element value prior to concatenation |
Reimplemented in DcmOtherByteOtherWord, DcmByteString, DcmUniversalResourceIdentifierOrLocator, DcmUnlimitedText, DcmShortText, and DcmLongText.
|
virtual |
Copy numBytes bytes of data from the attribute value in byteOrder byte order to targetBuffer, starting at byte offset offset of the attribute value.
This method does not cause the complete attribute value to be read into main memory. Subsequent calls for the same partial value may cause repeated access to file if the attribute value is kept in file.
targetBuffer | pointer to target buffer, must not be NULL. Buffer size must be at least numBytes bytes. |
offset | byte offset within the attribute value from where to start copying |
numBytes | number of bytes to copy. |
cache | file cache object that may be passed to multiple subsequent calls to this method for the same file; the file cache will then keep a file handle open, thus improving performance. Optional, may be NULL |
byteOrder | byte order desired byte order of attribute value in memory buffer. Default is the local byte order of the machine. |
Reimplemented in DcmSequenceOfItems.
Referenced by DiInputPixelTemplate< T1, T2 >::convert().
|
virtual |
retrieve a single value of type Sint16.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmSignedShort.
|
virtual |
get a pointer to the element value of the current element as type Sint16.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmSignedShort.
|
virtual |
retrieve a single value of type Sint32.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmSignedLong, and DcmIntegerString.
|
virtual |
get a pointer to the element value of the current element as type Sint32.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmSignedLong.
|
virtual |
get a pointer to the element value of the current element as type string.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmByteString.
|
virtual |
get a pointer to the element value of the current element as type string.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
len | length of the returned value (number of characters) |
Reimplemented in DcmByteString.
|
virtual |
retrieve a single value of type DcmTagKey.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmAttributeTag.
|
virtual |
retrieve a single value of type Uint16.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmOtherByteOtherWord, and DcmUnsignedShort.
|
virtual |
get a pointer to the element value of the current element as type Uint16.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmOtherByteOtherWord, DcmAttributeTag, DcmPolymorphOBOW, and DcmUnsignedShort.
|
virtual |
retrieve a single value of type Uint32.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmUnsignedLong.
|
virtual |
get a pointer to the element value of the current element as type Uint32.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmUnsignedLong.
|
virtual |
retrieve a single value of type Uint8.
Requires element to be of corresponding VR, otherwise an error is returned.
val | value returned in this parameter upon success |
pos | position in multi-valued attribute, default 0 |
Reimplemented in DcmOtherByteOtherWord.
Referenced by DcmIODUtil::copyFromUint8Array().
|
virtual |
get a pointer to the element value of the current element as type string.
Requires element to be of corresponding VR, otherwise an error is returned. This method does not copy, but returns a pointer to the element value, which remains under control of this object and is valid only until the next read, write or put operation.
val | pointer to value returned in this parameter upon success |
Reimplemented in DcmOtherByteOtherWord, and DcmPolymorphOBOW.
|
virtual |
access single frame without decompressing or loading a complete multi-frame object.
The frame is copied into the buffer passed by the caller which must be large enough to contain a complete frame.
dataset | pointer to DICOM dataset in which this pixel data object is located. Used to access rows, columns, samples per pixel etc. |
frameNo | numer of frame, starting with 0 for the first frame. |
startFragment | index of the compressed fragment that contains all or the first part of the compressed bitstream for the given frameNo. Upon successful return this parameter is updated to contain the index of the first compressed fragment of the next frame. When unknown, zero should be passed. In this case the decompression algorithm will try to determine the index by itself, which will always work if frames are decompressed in increasing order from first to last, but may fail if frames are decompressed in random order, multiple fragments per frame and multiple frames are present in the dataset, and the offset table is empty. |
buffer | pointer to buffer allocated by the caller. The buffer must be large enough for one frame of this image. |
bufSize | size of buffer, in bytes |
decompressedColorModel | upon successful return, the color model of the decompressed image (which may be different from the one used in the compressed images) is returned in this parameter. |
cache | file cache object that may be passed to multiple subsequent calls to this method for the same file; the file cache will then keep a file handle open, thus improving performance. Optional, may be NULL |
Reimplemented in DcmPixelData.
|
virtual |
compute uncompressed frame size of a single frame of this image.
Note that the value returned by this method does not include the pad byte to even size needed for a buffer into which a frame is to be loaded.
dataset | dataset in which this pixel data element is contained |
frameSize | frame size in bytes (without padding) returned in this parameter upon success |
|
protected |
This function returns this element's value.
The returned value corresponds to the byte ordering (little or big endian) that was passed.
newByteOrder | The byte ordering that shall be accounted for (little or big endian). |
|
static |
get the first value stored in the given string.
The individual values are separated by a backslash. Successive calls of this function allow for extracting all stored values.
str | character string |
pos | position of the first character in the string to search from |
len | length of the string (number of characters without the trailing NULL byte) |
val | variable in which the result is stored (empty string in case of error) |
|
inlinevirtual |
check if this element is a leaf node in a dataset tree.
All subclasses of DcmElement except for DcmSequenceOfItems are leaf nodes, while DcmSequenceOfItems, DcmItem, DcmDataset etc. are not.
Implements DcmObject.
Reimplemented in DcmSequenceOfItems.
|
virtual |
this method loads all attribute values maintained by this object and all sub-objects (in case of a container such as DcmDataset) into memory.
After a call to this method, the file from which a dataset was read may safely be deleted or replaced. For large files, this method may obviously allocate large amounts of memory.
Implements DcmObject.
Reimplemented in DcmSequenceOfItems, and DcmPixelData.
|
protected |
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.
inStream | The stream which contains the information. |
|
protectedvirtual |
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.
Reimplemented in DcmByteString.
DcmElement& DcmElement::operator= | ( | const DcmElement & | obj | ) |
assignment operator
obj | element to be assigned/copied |
|
protectedvirtual |
performs clean-up functions after loading an attribute value into main memory.
In particular, if dcmEnableAutomaticInputDataCorrection is enabled, silently fixes odd length elements.
Reimplemented in DcmOtherByteOtherWord, and DcmByteString.
|
virtual |
insert into the element value a copy of the given Float32 value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
val | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmFloatingPointSingle.
|
virtual |
replace the element value by a copy of the given Float32 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmFloatingPointSingle.
|
virtual |
insert into the element value a copy of the given Float64 value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
val | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmFloatingPointDouble.
|
virtual |
replace the element value by a copy of the given Float64 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmFloatingPointDouble.
|
virtual |
replace the element value by a copy of the given string (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
val | new attribute value |
|
virtual |
insert into the element value a copy of the given Sint16 value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
val | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmSignedShort.
|
virtual |
replace the element value by a copy of the given Sint16 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmSignedShort.
|
virtual |
insert into the element value a copy of the given Sint32 value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
val | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmSignedLong.
|
virtual |
replace the element value by a copy of the given Sint32 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmSignedLong.
|
virtual |
replace the element value by a copy of the given string (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
val | new attribute value |
Reimplemented in DcmOtherByteOtherWord, DcmByteString, DcmAttributeTag, DcmFloatingPointDouble, DcmFloatingPointSingle, DcmSignedLong, DcmSignedShort, DcmUnsignedLong, DcmUnsignedShort, and DcmUniqueIdentifier.
Referenced by I2DOutputPlug::checkAndInventType1Attrib(), and I2DOutputPlug::checkAndInventType2Attrib().
|
virtual |
replace the element value by a copy of the given string (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
val | new attribute value |
len | length of the new attribute value (number of characters) |
Reimplemented in DcmOtherByteOtherWord, DcmByteString, DcmAttributeTag, DcmFloatingPointDouble, DcmFloatingPointSingle, DcmSignedLong, DcmSignedShort, DcmUnsignedLong, DcmUnsignedShort, and DcmUniqueIdentifier.
|
virtual |
insert into the element value a copy of the given DcmTagKey value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
attrTag | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmAttributeTag.
|
virtual |
insert into the element value a copy of the given Uint16 value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
val | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmUnsignedShort.
|
virtual |
replace the element value by a copy of the given Uint16 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmPixelData, DcmOtherByteOtherWord, DcmAttributeTag, DcmPolymorphOBOW, and DcmUnsignedShort.
|
virtual |
insert into the element value a copy of the given Uint32 value.
If the attribute is multi-valued, all other values remain untouched. Requires element to be of corresponding VR, otherwise an error is returned.
val | new value to be inserted |
pos | position for insert operation. Value: pos <= getVM(), i.e. a value can be appended to the end of the current element or inserted within the existing value field. |
Reimplemented in DcmUnsignedLong.
|
virtual |
replace the element value by a copy of the given Uint32 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmUnsignedLong.
|
virtual |
replace the element value by a copy of the given Uint8 array (which is possibly multi-valued).
Requires element to be of corresponding VR, otherwise an error is returned.
vals | new attribute value |
num | number of values in array vals |
Reimplemented in DcmPixelData, DcmOtherByteOtherWord, and DcmPolymorphOBOW.
|
protected |
replace the element value by a copy of the given raw data block
value | new attribute value |
length | length of new attribute value in bytes |
|
virtual |
This function reads the data value of an attribute which is captured in the input stream and captures this information in this.
If not all information for an attribute could be read from the stream, the function returns EC_StreamNotifyClient. Note that if certain conditions are met, this function does not actually load the data value but creates and stores an object that enables us to load this information later.
inStream | The stream which contains the information. |
ixfer | The transfer syntax which was used to encode the information in inStream. |
glenc | Encoding type for group length; specifies what will be done with group length tags. |
maxReadLength | Maximum read length for reading an attribute value. |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, DcmPixelSequence, DcmFileFormat, and DcmPolymorphOBOW.
|
static |
scan string value for conformance with given value representation (VR)
value | string value to be scanned |
vr | two-character identifier of the VR to be checked (lower case) |
pos | position of the first character to be scanned in 'value' |
num | number of characters to be scanned in 'value' (default: all) |
|
inlineprotected |
set the current byte order of the value field
val | byte order of the value field |
|
protected |
swaps the content of the value field (if loaded) from big-endian to little-endian or back
valueWidth | width (in bytes) of each element value |
|
virtual |
initialize the transfer state of this object.
This method must be called before this object is written to a stream or read (parsed) from a stream.
Reimplemented from DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, and DcmPolymorphOBOW.
|
inline |
check if value of this element is loaded into main memory
References DcmObject::getLengthField().
|
virtual |
This function writes this element's value to the outstream which was passed.
When writing information, the byte ordering (little or big endian) of the transfer syntax which was passed will be accounted for. In case the outstream does not provide enough space for all bytes of the current element's value, only a certain part of the value will be written to the stream. This element's transfer state indicates if the all bytes of value have already been written to the stream (ERW_ready), if the writing is still in progress and more bytes need to be written to the stream (ERW_inWork) or if the writing of the bytes of this element's value has not even begun yet (ERW_init). The member variable fTransferredBytes indicates how many bytes (starting from byte 0) of this element's value have already been written to the stream. This function will return EC_Normal, if the entire value of this element has been written to the stream, it will return EC_StreamNotifyClient, if there is no more space in the buffer and not all bytes of this element's value have been written, and it will return some other (error) value if there was an error.
outStream | The stream the information will be written to. |
oxfer | The transfer syntax which shall be used. |
enctype | encoding types (undefined or explicit length) (actually unused) |
wcache | pointer to write cache object, may be NULL |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, DcmPixelSequence, DcmFileFormat, DcmByteString, DcmOtherByteOtherWord, and DcmPolymorphOBOW.
|
virtual |
write object in JSON format
out | output stream to which the JSON document is written |
format | used to format and customize the output |
Reimplemented from DcmObject.
Reimplemented in DcmByteString, DcmSequenceOfItems, DcmFileFormat, DcmPersonName, DcmOtherByteOtherWord, DcmAttributeTag, DcmDecimalString, DcmCharString, DcmIntegerString, DcmOtherLong, DcmOtherDouble, DcmOtherFloat, DcmShortString, and DcmLongString.
|
protectedvirtual |
write element end tag in JSON format
out | output stream to which the JSON document is written |
format | used to format the output |
|
protectedvirtual |
write element start tag in JSON format
out | output stream to which the JSON document is written |
format | used to format the output |
|
virtual |
special write method for creation of digital signatures
outStream | DICOM output stream |
oxfer | output transfer syntax |
enctype | encoding types (undefined or explicit length) |
wcache | pointer to write cache object, may be NULL |
Implements DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, DcmPixelSequence, DcmOtherByteOtherWord, DcmByteString, DcmPixelItem, and DcmPolymorphOBOW.
|
virtual |
write object in XML format
out | output stream to which the XML document is written |
flags | optional flag used to customize the output (see DCMTypes::XF_xxx) |
Reimplemented from DcmObject.
Reimplemented in DcmPixelData, DcmSequenceOfItems, DcmFileFormat, DcmPixelSequence, DcmPersonName, DcmOtherByteOtherWord, DcmAttributeTag, DcmDecimalString, DcmPixelItem, DcmOtherLong, DcmOtherDouble, and DcmOtherFloat.
|
protectedvirtual |
write element end tag in XML format
out | output stream to which the XML end tag is written |
flags | flag used to customize the output (not yet used) |
|
protectedvirtual |
write element start tag in XML format
out | output stream to which the XML start tag is written |
flags | flag used to customize the output (not yet used) |
attrText | extra attribute text to be added to the element tag |
|
friend |
Checks whether left hand side element is smaller than right hand side element.
Uses DcmElement's compare() method in order to perform the comparison. See DcmElement::compare() for details.
lhs | left hand side of the comparison |
rhs | right hand side of the comparison |
|
friend |
Checks whether left hand side element is smaller than or equal to right hand side element.
Uses DcmElement's compare() method in order to perform the comparison. See DcmElement::compare() for details.
lhs | left hand side of the comparison |
rhs | right hand side of the comparison |
|
friend |
Checks whether left hand side element is greater than right hand side element.
Uses DcmElement's compare() method in order to perform the comparison. See DcmElement::compare() for details.
lhs | left hand side of the comparison |
rhs | right hand side of the comparison |
|
friend |
Checks whether left hand side element is greater than or equal to right hand side element.
Uses DcmElement's compare() method in order to perform the comparison. See DcmElement::compare() for details.
lhs | left hand side of the comparison |
rhs | right hand side of the comparison |