DCMTK  Version 3.6.2
OFFIS DICOM Toolkit
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
DcmDataset Class Reference

a class handling the DICOM dataset format (files without meta header) More...

+ Inheritance diagram for DcmDataset:

Public Member Functions

 DcmDataset ()
 default constructor
 
 DcmDataset (const DcmDataset &old)
 copy constructor More...
 
virtual ~DcmDataset ()
 destructor
 
DcmDatasetoperator= (const DcmDataset &obj)
 assignment operator More...
 
virtual DcmObjectclone () const
 clone method More...
 
virtual OFCondition copyFrom (const DcmObject &rhs)
 Virtual object copying. More...
 
virtual DcmEVR ident () const
 get type identifier More...
 
virtual OFCondition clear ()
 clear (remove) attribute value More...
 
virtual void removeInvalidGroups (const OFBool cmdSet=OFFalse)
 remove all elements with an invalid group number, i.e. More...
 
E_TransferSyntax getOriginalXfer () const
 return the transfer syntax in which this dataset was originally read or created. More...
 
E_TransferSyntax getCurrentXfer () const
 return the current transfer syntax, i.e. the one that was last used with chooseRepresentation() in order to select a specific representation or with write() or writeSignatureFormat() in order to create a byte stream according to the DICOM encoding rules. More...
 
virtual void updateOriginalXfer ()
 update the original transfer syntax, e.g. in case the dataset was created in memory and pixel data was added with a particular representation. 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)
 print all elements of the dataset to a stream More...
 
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 OFBool canWriteXfer (const E_TransferSyntax newXfer, const E_TransferSyntax oldXfer=EXS_Unknown)
 check if this DICOM object can be encoded in the given transfer syntax. More...
 
virtual OFCondition read (DcmInputStream &inStream, const E_TransferSyntax xfer=EXS_Unknown, const E_GrpLenEncoding glenc=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength)
 This function reads the information of all attributes which are captured in the input stream and captures this information in this->elementList. More...
 
virtual OFCondition readUntilTag (DcmInputStream &inStream, const E_TransferSyntax xfer=EXS_Unknown, const E_GrpLenEncoding glenc=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength, const DcmTagKey &stopParsingAtElement=DCM_UndefinedTagKey)
 This function reads the information of all attributes which are captured in the input stream and captures this information in this->elementList, up to the attribute tag stopParsingAtElement. More...
 
virtual OFCondition write (DcmOutputStream &outStream, const E_TransferSyntax oxfer, const E_EncodingType enctype, DcmWriteCache *wcache)
 write dataset to a stream More...
 
virtual OFCondition write (DcmOutputStream &outStream, const E_TransferSyntax oxfer, const E_EncodingType enctype, DcmWriteCache *wcache, const E_GrpLenEncoding glenc, const E_PaddingEncoding padenc=EPD_noChange, const Uint32 padlen=0, const Uint32 subPadlen=0, Uint32 instanceLength=0)
 This function writes data values which are contained in this DcmDataset object to the stream which is passed as first argument. 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 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...
 
template<typename Format >
OFCondition writeJson (STD_NAMESPACE ostream &out, Format format)
 write object in JSON format. More...
 
virtual OFCondition loadFile (const OFFilename &fileName, const E_TransferSyntax readXfer=EXS_Unknown, const E_GrpLenEncoding groupLength=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength)
 load object from a DICOM file. More...
 
virtual OFCondition loadFileUntilTag (const OFFilename &fileName, const E_TransferSyntax readXfer=EXS_Unknown, const E_GrpLenEncoding groupLength=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength, const DcmTagKey &stopParsingAtElement=DCM_UndefinedTagKey)
 load object from a DICOM file, up to the attribute tag stopParsingAtElement. More...
 
virtual OFCondition saveFile (const OFFilename &fileName, const E_TransferSyntax writeXfer=EXS_Unknown, const E_EncodingType encodingType=EET_UndefinedLength, const E_GrpLenEncoding groupLength=EGL_recalcGL, const E_PaddingEncoding padEncoding=EPD_noChange, const Uint32 padLength=0, const Uint32 subPadLength=0)
 save object to a DICOM file. More...
 
OFCondition chooseRepresentation (const E_TransferSyntax repType, const DcmRepresentationParameter *repParam)
 select a specific representation (compressed or uncompressed) of the dataset and create the representation if needed. More...
 
OFBool hasRepresentation (const E_TransferSyntax repType, const DcmRepresentationParameter *repParam)
 check if all PixelData elements in this dataset have a representation conforming to the given transfer syntax and representation parameters (see dcpixel.h for definition of "conforming"). More...
 
void removeAllButOriginalRepresentations ()
 removes all but the original representation in all pixel data elements
 
void removeAllButCurrentRepresentations ()
 removes all but the current representation and sets the original representation to current
 
virtual OFBool checkForSpecificCharacterSet () const
 mode specifying whether the SpecificCharacterSet (0008,0005) element should be checked by convertCharacterSet() or not, i.e. whether this element might be present on this dataset-level. More...
 
- Public Member Functions inherited from DcmItem
 DcmItem ()
 default constructor
 
 DcmItem (const DcmTag &tag, const Uint32 len=0)
 constructor. More...
 
 DcmItem (const DcmItem &old)
 copy constructor More...
 
DcmItemoperator= (const DcmItem &obj)
 assignment operator. More...
 
virtual int compare (const DcmItem &rhs) const
 comparison operator that compares the value of this object with a given object of the same type. More...
 
virtual ~DcmItem ()
 destructor
 
virtual unsigned long getVM ()
 get value multiplicity More...
 
virtual unsigned long card () const
 get cardinality of this item More...
 
virtual OFBool isLeaf () const
 check if this element is a leaf node in a dataset tree. More...
 
virtual OFBool isNested () const
 check if this item is nested in a sequence of items, i.e. not a top-level or stand-alone item/dataset More...
 
virtual Uint32 getLength (const E_TransferSyntax xfer=EXS_LittleEndianImplicit, const E_EncodingType enctype=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 void transferInit ()
 initialize the transfer state of this object. More...
 
virtual void transferEnd ()
 finalize the transfer state of this object. More...
 
virtual DcmItemgetParentItem ()
 get parent item of this object, i.e. the item/dataset in which the surrounding sequence element is stored. 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 at any nesting level. More...
 
virtual OFBool isAffectedBySpecificCharacterSet () const
 check if this object is affected by SpecificCharacterSet at any nesting level. More...
 
virtual OFCondition convertCharacterSet (const OFString &fromCharset, const OFString &toCharset, const size_t flags=0, const OFBool updateCharset=OFFalse)
 convert all element values that are contained in this item and that are affected by SpecificCharacterSet from the given source character set to the given destination character set. More...
 
virtual OFCondition convertCharacterSet (const OFString &toCharset, const size_t flags=0, const OFBool ignoreCharset=OFFalse)
 convert all element values that are contained in this item and that are affected by SpecificCharacterSet to the given destination character set. More...
 
virtual OFCondition convertCharacterSet (DcmSpecificCharacterSet &converter)
 convert all element values that are contained in this item and that are affected by SpecificCharacterSet from the currently selected source character set to the currently selected destination character set More...
 
virtual OFCondition convertToUTF8 ()
 convert all element values that are contained in this item and that are affected by SpecificCharacterSet to UTF-8 (Unicode). More...
 
virtual OFCondition insert (DcmElement *elem, OFBool replaceOld=OFFalse, OFBool checkInsertOrder=OFFalse)
 insert a new element into the list of elements maintained by this item. More...
 
virtual DcmElementgetElement (const unsigned long num)
 access an element from the item. 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 DcmObjectnextInContainer (const DcmObject *obj)
 this method is only used in container classes, that is, DcmItem and DcmSequenceOfItems. More...
 
virtual DcmElementremove (const unsigned long num)
 remove element from list. More...
 
virtual DcmElementremove (DcmObject *elem)
 remove element from list. More...
 
virtual DcmElementremove (const DcmTagKey &tag)
 remove element from list. More...
 
virtual OFBool isEmpty (const OFBool normalize=OFTrue)
 check if this item is empty More...
 
virtual OFCondition verify (const OFBool autocorrect=OFFalse)
 check the currently stored element value 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...
 
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 void compactElements (const Uint32 maxLength)
 iterate over all elements and remove those element values from memory which exceed a given length and which can be loaded from file when needed again. More...
 
virtual OFCondition computeGroupLengthAndPadding (const E_GrpLenEncoding glenc, const E_PaddingEncoding padenc=EPD_noChange, const E_TransferSyntax xfer=EXS_Unknown, const E_EncodingType enctype=EET_ExplicitLength, const Uint32 padlen=0, const Uint32 subPadlen=0, Uint32 instanceLength=0)
 This function takes care of group length and padding elements in the current element list according to what is specified in glenc and padenc. More...
 
OFBool tagExists (const DcmTagKey &key, OFBool searchIntoSub=OFFalse)
 check if an element with the given attribute tag exists in the dataset More...
 
OFBool tagExistsWithValue (const DcmTagKey &key, OFBool searchIntoSub=OFFalse)
 check if an element with the given attribute tag exists in the dataset and has a non-empty value More...
 
OFCondition findAndGetElement (const DcmTagKey &tagKey, DcmElement *&element, const OFBool searchIntoSub=OFFalse, const OFBool createCopy=OFFalse)
 find element and get a pointer to it (or copy it). More...
 
OFCondition findAndGetElements (const DcmTagKey &tagKey, DcmStack &resultStack)
 find all elements matching a particular tag and return references to them on a stack. More...
 
OFCondition findAndGetString (const DcmTagKey &tagKey, const char *&value, const OFBool searchIntoSub=OFFalse)
 find element and get value as a reference to a C string. More...
 
OFCondition findAndGetString (const DcmTagKey &tagKey, const char *&value, Uint32 &length, const OFBool searchIntoSub=OFFalse)
 find element and get value as a reference to a C string. More...
 
OFCondition findAndGetOFString (const DcmTagKey &tagKey, OFString &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as a C++ string (only one component). More...
 
OFCondition findAndGetOFStringArray (const DcmTagKey &tagKey, OFString &value, const OFBool searchIntoSub=OFFalse)
 find element and get value as a C++ string (all components). More...
 
OFCondition findAndGetUint8 (const DcmTagKey &tagKey, Uint8 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as an unsigned 8-bit integer. More...
 
OFCondition findAndGetUint8Array (const DcmTagKey &tagKey, const Uint8 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of unsigned 8-bit integers. More...
 
OFCondition findAndGetUint16 (const DcmTagKey &tagKey, Uint16 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as an unsigned 16-bit integer. More...
 
OFCondition findAndGetUint16Array (const DcmTagKey &tagKey, const Uint16 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of unsigned 16-bit integers. More...
 
OFCondition findAndGetSint16 (const DcmTagKey &tagKey, Sint16 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as a signed 16-bit integer. More...
 
OFCondition findAndGetSint16Array (const DcmTagKey &tagKey, const Sint16 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of signed 16-bit integers. More...
 
OFCondition findAndGetUint32 (const DcmTagKey &tagKey, Uint32 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as an unsigned 32-bit integer. More...
 
OFCondition findAndGetUint32Array (const DcmTagKey &tagKey, const Uint32 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of unsigned 32-bit integers. More...
 
OFCondition findAndGetSint32 (const DcmTagKey &tagKey, Sint32 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as a signed 32-bit integer. More...
 
OFCondition findAndGetSint32Array (const DcmTagKey &tagKey, const Sint32 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of signed 32-bit integers. More...
 
OFCondition findAndGetLongInt (const DcmTagKey &tagKey, long int &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as a (signed) long integer. More...
 
OFCondition findAndGetFloat32 (const DcmTagKey &tagKey, Float32 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as a 32-bit floating point. More...
 
OFCondition findAndGetFloat32Array (const DcmTagKey &tagKey, const Float32 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of 32-bit floating point values. More...
 
OFCondition findAndGetFloat64 (const DcmTagKey &tagKey, Float64 &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse)
 find element and get value as a 64-bit floating point. More...
 
OFCondition findAndGetFloat64Array (const DcmTagKey &tagKey, const Float64 *&value, unsigned long *count=NULL, const OFBool searchIntoSub=OFFalse)
 find element and get value as an array of 64-bit floating point values. More...
 
OFCondition findAndGetSequence (const DcmTagKey &seqTagKey, DcmSequenceOfItems *&sequence, const OFBool searchIntoSub=OFFalse, const OFBool createCopy=OFFalse)
 looks up and returns a given sequence. More...
 
OFCondition findAndGetSequenceItem (const DcmTagKey &seqTagKey, DcmItem *&item, const signed long itemNum=0, const OFBool createCopy=OFFalse)
 looks up and returns a given sequence item, if it exists. More...
 
OFCondition findOrCreateSequenceItem (const DcmTag &seqTag, DcmItem *&item, const signed long itemNum=0)
 looks up the given sequence in the current dataset and returns the given item. More...
 
OFCondition findAndInsertCopyOfElement (const DcmTagKey &tagKey, DcmItem *destItem, const OFBool replaceOld=OFTrue)
 find element, create a copy and insert it into the given destination dataset. More...
 
OFCondition findAndDeleteElement (const DcmTagKey &tagKey, const OFBool allOccurrences=OFFalse, const OFBool searchIntoSub=OFFalse)
 find element, remove it from the dataset and free the associated memory. More...
 
OFCondition findAndDeleteSequenceItem (const DcmTagKey &seqTagKey, const signed long itemNum)
 looks up the given sequence in the current dataset and deletes the given item. More...
 
OFCondition putAndInsertString (const DcmTag &tag, const char *value, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertString (const DcmTag &tag, const char *value, const Uint32 length, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertOFStringArray (const DcmTag &tag, const OFString &value, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertUint8Array (const DcmTag &tag, const Uint8 *value, const unsigned long count, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertUint16 (const DcmTag &tag, const Uint16 value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertUint16Array (const DcmTag &tag, const Uint16 *value, const unsigned long count, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertSint16 (const DcmTag &tag, const Sint16 value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertSint16Array (const DcmTag &tag, const Sint16 *value, const unsigned long count, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertUint32 (const DcmTag &tag, const Uint32 value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertUint32Array (const DcmTag &tag, const Uint32 *value, const unsigned long count, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertSint32 (const DcmTag &tag, const Sint32 value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertFloat32 (const DcmTag &tag, const Float32 value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertFloat32Array (const DcmTag &tag, const Float32 *value, const unsigned long count, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertFloat64 (const DcmTag &tag, const Float64 value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertFloat64Array (const DcmTag &tag, const Float64 *value, const unsigned long count, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition putAndInsertTagKey (const DcmTag &tag, const DcmTagKey &value, const unsigned long pos=0, const OFBool replaceOld=OFTrue)
 create a new element, put specified value to it and insert the element into the dataset/item. More...
 
OFCondition insertEmptyElement (const DcmTag &tag, const OFBool replaceOld=OFTrue)
 create a new element (with no value) and insert it into the dataset/item. More...
 
OFCondition insertSequenceItem (const DcmTag &seqTag, DcmItem *item, const signed long itemNum=-2)
 looks up the given sequence in the current dataset and inserts the given item. More...
 
- Public Member Functions inherited from DcmObject
 DcmObject (const DcmTag &tag, const Uint32 len=0)
 constructor. More...
 
 DcmObject (const DcmObject &obj)
 copy constructor More...
 
virtual ~DcmObject ()
 destructor
 
DcmObjectoperator= (const DcmObject &obj)
 copy assignment operator 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...
 
E_TransferState transferState () const
 return the current transfer (read/write) state of this object. More...
 
DcmItemgetRootItem ()
 get root dataset/item (top-level) that contains this object. More...
 
DcmObjectgetParent ()
 get parent of this object. More...
 
const DcmObjectgetParent () 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 DcmTaggetTag () 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 OFBool isSignable () const
 returns true if the current object may be included in a digital signature More...
 
Uint32 getLengthField () const
 return the current value of the Length field (which is different from the functionality of the public getLength() method). More...
 

Protected Member Functions

OFCondition doPostReadChecks ()
 perform checks after reading of the dataset is considered complete. More...
 
- Protected Member Functions inherited from DcmItem
OFCondition readTagAndLength (DcmInputStream &inStream, const E_TransferSyntax xfer, DcmTag &tag, Uint32 &length, Uint32 &bytesRead)
 This function reads tag and length information from inStream and returns this information to the caller. More...
 
OFCondition readSubElement (DcmInputStream &inStream, DcmTag &newTag, const Uint32 newLength, const E_TransferSyntax xfer, const E_GrpLenEncoding glenc, const Uint32 maxReadLength=DCM_MaxReadLength)
 This function creates a new DcmElement object on the basis of the newTag and newLength information which was passed, inserts this new element into elementList, reads the actual data value which belongs to this element (attribute) from the inStream and also assigns this information to the object which was created at the beginning. More...
 
E_TransferSyntax checkTransferSyntax (DcmInputStream &inStream)
 This function reads the first 6 bytes from the input stream and determines the transfer syntax which was used to code the information in the stream. More...
 
void checkAndUpdateVR (DcmItem &item, DcmTag &tag)
 check whether the given tag requires some special handling regarding the VR (i.e. in case it is undefined and multiple values are possible). More...
 
void updateSpecificCharacterSet (OFCondition &status, const DcmSpecificCharacterSet &converter)
 update the SpecificCharacterSet (0008,0005) element depending on the given parameters. More...
 
- Protected Member Functions inherited from DcmObject
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_TransferSyntax OriginalXfer
 original transfer syntax of the dataset
 
E_TransferSyntax CurrentXfer
 current transfer syntax of the dataset
 

Additional Inherited Members

- Static Public Member Functions inherited from DcmItem
static DcmElementnewDicomElement (const DcmTagKey &tag, const char *privateCreator=NULL)
 creates new DICOM element from given attribute tag. More...
 
static OFCondition newDicomElement (DcmElement *&newElement, const DcmTagKey &tag, const char *privateCreator=NULL)
 creates new DICOM element from given attribute tag. More...
 
static OFCondition newDicomElementWithVR (DcmElement *&newElement, const DcmTag &tag)
 creates new DICOM element from given attribute tag and VR. More...
 
- Static Protected Member Functions inherited from DcmItem
static OFCondition newDicomElement (DcmElement *&newElement, DcmTag &tag, const Uint32 length, DcmPrivateTagCache *privateCreatorCache, OFBool &readAsUN)
 creates new DICOM element from given attribute tag. More...
 
- Static Protected Member Functions inherited from DcmObject
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...
 
- Protected Attributes inherited from DcmItem
DcmListelementList
 the list of elements maintained by this object
 
OFBool lastElementComplete
 flag used during suspended I/O. More...
 
offile_off_t fStartPosition
 used during reading. More...
 
- Protected Attributes inherited from DcmObject
OFCondition errorFlag
 error flag for this object.
 

Detailed Description

a class handling the DICOM dataset format (files without meta header)

Constructor & Destructor Documentation

◆ DcmDataset()

DcmDataset::DcmDataset ( const DcmDataset old)

copy constructor

Parameters
olddataset to be copied

Member Function Documentation

◆ calcElementLength()

Uint32 DcmDataset::calcElementLength ( const E_TransferSyntax  xfer,
const E_EncodingType  enctype 
)
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.

Parameters
xfertransfer syntax for length calculation
enctypesequence encoding type for length calculation
Returns
length of DICOM element

Reimplemented from DcmItem.

◆ canWriteXfer()

virtual OFBool DcmDataset::canWriteXfer ( const E_TransferSyntax  newXfer,
const E_TransferSyntax  oldXfer = EXS_Unknown 
)
virtual

check if this DICOM object can be encoded in the given transfer syntax.

Parameters
newXfertransfer syntax in which the DICOM object is to be encoded
oldXfertransfer syntax in which the DICOM object was read or created (optional). If EXS_Unknown, the return value of getOriginalXfer() is used.
Returns
true if object can be encoded in desired transfer syntax, false otherwise.

Reimplemented from DcmItem.

◆ checkForSpecificCharacterSet()

virtual OFBool DcmDataset::checkForSpecificCharacterSet ( ) const
inlinevirtual

mode specifying whether the SpecificCharacterSet (0008,0005) element should be checked by convertCharacterSet() or not, i.e. whether this element might be present on this dataset-level.

Returns
always returns OFTrue, i.e. SpecificCharacterSet should be checked

Reimplemented from DcmItem.

◆ chooseRepresentation()

OFCondition DcmDataset::chooseRepresentation ( const E_TransferSyntax  repType,
const DcmRepresentationParameter repParam 
)

select a specific representation (compressed or uncompressed) of the dataset and create the representation if needed.

This may cause compression or decompression to be applied to the pixel data in the dataset.

Parameters
repTypedesired transfer syntax
repParamdesired representation parameter (e.g. quality factor for lossy compression)
Returns
EC_Normal upon success, an error code otherwise.

Referenced by DcmFileFormat::chooseRepresentation().

◆ clear()

virtual OFCondition DcmDataset::clear ( )
virtual

clear (remove) attribute value

Returns
EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.

◆ clone()

virtual DcmObject* DcmDataset::clone ( ) const
inlinevirtual

clone method

Returns
deep copy of this object

Reimplemented from DcmItem.

References DcmItem::clear(), DcmItem::copyFrom(), and DcmItem::ident().

◆ copyFrom()

virtual OFCondition DcmDataset::copyFrom ( const DcmObject rhs)
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.

Parameters
rhs- [in] The instance to copy from. Has to be of the same class type as "this" object
Returns
EC_Normal if copying was successful, error otherwise

Reimplemented from DcmItem.

◆ doPostReadChecks()

OFCondition DcmDataset::doPostReadChecks ( )
protected

perform checks after reading of the dataset is considered complete.

The idea is that some checks cannot be performed when reading a specific element, for different reasons, e.g. the values of other elements have to be taken into account.

Returns
status, EC_Normal if no problems are found, an error code otherwise

◆ getCurrentXfer()

E_TransferSyntax DcmDataset::getCurrentXfer ( ) const

return the current transfer syntax, i.e. the one that was last used with chooseRepresentation() in order to select a specific representation or with write() or writeSignatureFormat() in order to create a byte stream according to the DICOM encoding rules.

The default value is the transfer syntax in which this dataset was originally read (see getOriginalXfer()) or, if this dataset was created from memory, the explicit VR with local endianness. Please note that the current transfer syntax might also change after calling updateOriginalXfer().

Returns
transfer syntax in which this dataset is currently stored (see above)

◆ getOriginalXfer()

E_TransferSyntax DcmDataset::getOriginalXfer ( ) const

return the transfer syntax in which this dataset was originally read or created.

See updateOriginalXfer() on how to update this value when created in memory.

Returns
transfer syntax in which this dataset was originally read. Might be EXS_Unknown if the dataset was created in memory.

◆ hasRepresentation()

OFBool DcmDataset::hasRepresentation ( const E_TransferSyntax  repType,
const DcmRepresentationParameter repParam 
)

check if all PixelData elements in this dataset have a representation conforming to the given transfer syntax and representation parameters (see dcpixel.h for definition of "conforming").

Parameters
repTypedesired transfer syntax
repParamdesired representation parameter (e.g. quality factor for lossy compression)
Returns
true if all pixel elements have the desired representation, false otherwise

Referenced by DcmFileFormat::hasRepresentation().

◆ ident()

virtual DcmEVR DcmDataset::ident ( ) const
virtual

get type identifier

Returns
type identifier of this class (EVR_dataset)

Reimplemented from DcmItem.

◆ loadFile()

virtual OFCondition DcmDataset::loadFile ( const OFFilename fileName,
const E_TransferSyntax  readXfer = EXS_Unknown,
const E_GrpLenEncoding  groupLength = EGL_noChange,
const Uint32  maxReadLength = DCM_MaxReadLength 
)
virtual

load object from a DICOM file.

This method only supports DICOM objects stored as a dataset, i.e. without meta header. Use DcmFileFormat::loadFile() to load files with meta header.

Parameters
fileNamename of the file to load (may contain wide chars if support enabled). Since there are various constructors for the OFFilename class, a "char *", "OFString" or "wchar_t *" can also be passed directly to this parameter.
readXfertransfer syntax used to read the data (auto detection if EXS_Unknown)
groupLengthflag, specifying how to handle the group length tags
maxReadLengthmaximum number of bytes to be read for an element value. Element values with a larger size are not loaded until their value is retrieved (with getXXX()) or loadAllDataIntoMemory() is called.
Returns
status, EC_Normal if successful, an error code otherwise

◆ loadFileUntilTag()

virtual OFCondition DcmDataset::loadFileUntilTag ( const OFFilename fileName,
const E_TransferSyntax  readXfer = EXS_Unknown,
const E_GrpLenEncoding  groupLength = EGL_noChange,
const Uint32  maxReadLength = DCM_MaxReadLength,
const DcmTagKey stopParsingAtElement = DCM_UndefinedTagKey 
)
virtual

load object from a DICOM file, up to the attribute tag stopParsingAtElement.

This method only supports DICOM objects stored as a dataset, i.e. without meta header. Use DcmFileFormat::loadFile() to load files with meta header.

Parameters
fileNamename of the file to load (may contain wide chars if support enabled). Since there are various constructors for the OFFilename class, a "char *", "OFString" or "wchar_t *" can also be passed directly to this parameter.
readXfertransfer syntax used to read the data (auto detection if EXS_Unknown)
groupLengthflag, specifying how to handle the group length tags
maxReadLengthmaximum number of bytes to be read for an element value. Element values with a larger size are not loaded until their value is retrieved (with getXXX()) or loadAllDataIntoMemory() is called.
stopParsingAtElementparsing of the input stream is stopped when this tag key or any higher tag is encountered.
Returns
status, EC_Normal if successful, an error code otherwise

◆ operator=()

DcmDataset& DcmDataset::operator= ( const DcmDataset obj)

assignment operator

Parameters
objthe dataset to be copied
Returns
reference to this object

◆ print()

virtual void DcmDataset::print ( STD_NAMESPACE ostream &  out,
const size_t  flags = 0,
const int  level = 0,
const char *  pixelFileName = NULL,
size_t *  pixelCounter = NULL 
)
virtual

print all elements of the dataset to a stream

Parameters
outoutput stream
flagsoptional flag used to customize the output (see DCMTypes::PF_xxx)
levelcurrent level of nested items. Used for indentation.
pixelFileNameoptional filename used to write the raw pixel data file
pixelCounteroptional counter used for automatic pixel data filename creation

Reimplemented from DcmItem.

◆ read()

virtual OFCondition DcmDataset::read ( DcmInputStream inStream,
const E_TransferSyntax  xfer = EXS_Unknown,
const E_GrpLenEncoding  glenc = EGL_noChange,
const Uint32  maxReadLength = DCM_MaxReadLength 
)
virtual

This function reads the information of all attributes which are captured in the input stream and captures this information in this->elementList.

Each attribute is represented as an element in this list. Having read all information for this particular data set or command, this function will also take care of group length (according to what is specified in glenc) and padding elements (don't change anything).

Parameters
inStreamThe stream which contains the information.
xferThe transfer syntax which was used to encode the information in inStream.
glencEncoding type for group length; specifies what will be done with group length tags.
maxReadLengthMaximum read length for reading an attribute value.
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.

◆ readUntilTag()

virtual OFCondition DcmDataset::readUntilTag ( DcmInputStream inStream,
const E_TransferSyntax  xfer = EXS_Unknown,
const E_GrpLenEncoding  glenc = EGL_noChange,
const Uint32  maxReadLength = DCM_MaxReadLength,
const DcmTagKey stopParsingAtElement = DCM_UndefinedTagKey 
)
virtual

This function reads the information of all attributes which are captured in the input stream and captures this information in this->elementList, up to the attribute tag stopParsingAtElement.

Each attribute is represented as an element in this list. Having read all information for this particular data set or command, this function will also take care of group length (according to what is specified in glenc) and padding elements (don't change anything).

Parameters
inStreamThe stream which contains the information.
xferThe transfer syntax which was used to encode the information in inStream.
glencEncoding type for group length; specifies what will be done with group length tags.
maxReadLengthMaximum read length for reading an attribute value.
stopParsingAtElementparsing of the input stream is stopped when this tag key or any higher tag is encountered.
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.

◆ removeInvalidGroups()

virtual void DcmDataset::removeInvalidGroups ( const OFBool  cmdSet = OFFalse)
virtual

remove all elements with an invalid group number, i.e.

0x0000 to 0x0003, 0x0005, 0x0007 and 0xFFFF in case of a data set. For sequence items, also group 0x0006 is disallowed. For command sets, only group 0x0000 is allowed, i.e. the elements from all other groups are removed.

Parameters
cmdSetspecifies whether this object represents a command or data set

◆ saveFile()

virtual OFCondition DcmDataset::saveFile ( const OFFilename fileName,
const E_TransferSyntax  writeXfer = EXS_Unknown,
const E_EncodingType  encodingType = EET_UndefinedLength,
const E_GrpLenEncoding  groupLength = EGL_recalcGL,
const E_PaddingEncoding  padEncoding = EPD_noChange,
const Uint32  padLength = 0,
const Uint32  subPadLength = 0 
)
virtual

save object to a DICOM file.

This method only supports DICOM objects stored as a dataset, i.e. without meta header. Use DcmFileFormat::saveFile() to save files with meta header.

Parameters
fileNamename of the file to save (may contain wide chars if support enabled). Since there are various constructors for the OFFilename class, a "char *", "OFString" or "wchar_t *" can also be passed directly to this parameter.
writeXfertransfer syntax used to write the data (EXS_Unknown means use original)
encodingTypeflag, specifying the encoding with undefined or explicit length
groupLengthflag, specifying how to handle the group length tags
padEncodingflag, specifying how to handle the padding tags
padLengthnumber of bytes used for the dataset padding (has to be an even number)
subPadLengthnumber of bytes used for the item padding (has to be an even number)
Returns
status, EC_Normal if successful, an error code otherwise

◆ updateOriginalXfer()

virtual void DcmDataset::updateOriginalXfer ( )
virtual

update the original transfer syntax, e.g. in case the dataset was created in memory and pixel data was added with a particular representation.

Icon images and other nested pixel data elements are not checked. If previously unknown, the original transfer syntax is set to the default EXS_LittleEndianExplicit. Please note that the current transfer syntax might also be updated if its value was not in sync with the internal representation of the pixel data.

◆ write() [1/2]

virtual OFCondition DcmDataset::write ( DcmOutputStream outStream,
const E_TransferSyntax  oxfer,
const E_EncodingType  enctype,
DcmWriteCache wcache 
)
virtual

write dataset to a stream

Parameters
outStreamDICOM output stream
oxferoutput transfer syntax (EXS_Unknown means use original)
enctypeencoding types (undefined or explicit length)
wcachepointer to write cache object, may be NULL
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.

◆ write() [2/2]

virtual OFCondition DcmDataset::write ( DcmOutputStream outStream,
const E_TransferSyntax  oxfer,
const E_EncodingType  enctype,
DcmWriteCache wcache,
const E_GrpLenEncoding  glenc,
const E_PaddingEncoding  padenc = EPD_noChange,
const Uint32  padlen = 0,
const Uint32  subPadlen = 0,
Uint32  instanceLength = 0 
)
virtual

This function writes data values which are contained in this DcmDataset object to the stream which is passed as first argument.

With regard to the writing of information, the other parameters which are passed are accounted for. The function will return EC_Normal, if the information from all elements of this data set has been written to the buffer, it will return EC_StreamNotifyClient, if there is no more space in the buffer and not all elements have been written to it, and it will return some other (error) value if there was an error.

Parameters
outStreamThe stream that the information will be written to.
oxferThe transfer syntax which shall be used (EXS_Unknown means use original).
enctypeEncoding type for sequences; specifies how sequences will be handled.
wcachepointer to write cache object, may be NULL
glencEncoding type for group length; specifies what will be done with group length tags.
padencEncoding type for padding. Specifies what will be done with padding tags.
padlenThe length up to which the dataset shall be padded, if padding is desired.
subPadlenFor sequences (ie sub elements), the length up to which item shall be padded, if padding is desired.
instanceLengthNumber of extra bytes added to the item/dataset length used when computing the padding; this parameter is for instance used to pass the length of the file meta header from the DcmFileFormat to the DcmDataset object.
Returns
status, EC_Normal if successful, an error code otherwise

◆ writeJson() [1/2]

virtual OFCondition DcmDataset::writeJson ( STD_NAMESPACE ostream &  out,
DcmJsonFormat format 
)
virtual

write object in JSON format.

Parameters
outoutput stream to which the JSON document is written
formatused to format and customize the output
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.

◆ writeJson() [2/2]

template<typename Format >
OFCondition DcmDataset::writeJson ( STD_NAMESPACE ostream &  out,
Format  format 
)
inline

write object in JSON format.

Template Parameters
Formatthe formatter class, e.g. DcmJsonFormatPretty. Will be deduced automatically.
Parameters
outoutput stream to which the JSON document is written
formatused to format and customize the output
Returns
status, EC_Normal if successful, an error code otherwise

References DcmItem::writeJson().

◆ writeSignatureFormat()

virtual OFCondition DcmDataset::writeSignatureFormat ( DcmOutputStream outStream,
const E_TransferSyntax  oxfer,
const E_EncodingType  enctype,
DcmWriteCache wcache 
)
virtual

special write method for creation of digital signatures

Parameters
outStreamDICOM output stream
oxferoutput transfer syntax (EXS_Unknown means use original)
enctypeencoding types (undefined or explicit length)
wcachepointer to write cache object, may be NULL
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.

◆ writeXML()

virtual OFCondition DcmDataset::writeXML ( STD_NAMESPACE ostream &  out,
const size_t  flags = 0 
)
virtual

write object in XML format.

The XML declaration (e.g. <?xml version="1.0"?>) is not written by this function.

Parameters
outoutput stream to which the XML document is written
flagsoptional flag used to customize the output (see DCMTypes::XF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented from DcmItem.


The documentation for this class was generated from the following file:


Generated on Mon Jul 17 2017 for DCMTK Version 3.6.2 by Doxygen 1.8.13