MeVisLab Toolbox Reference
ml::PMTFToshibaPrivateDICOMTagDecoders Class Reference

An experimental DICOM tag decoder class for private Toshiba PMTF tags. More...

#include <mlPMTFToshibaPrivateDICOMTagDecoders.h>

Inheritance diagram for ml::PMTFToshibaPrivateDICOMTagDecoders:
ml::GenericPrivateDICOMTagDecoder ml::PrivateDICOMTagDecoderPluginBase ml::Base

Public Member Functions

 PMTFToshibaPrivateDICOMTagDecoders ()
 Constructor doing nothing. More...
 
 ~PMTFToshibaPrivateDICOMTagDecoders () override
 
PrivateDICOMTagDecoderPluginBase::DecodeStates decodePrivateTag (const std::string &privateCreator, DCMTree::Const_TagPtr tagPtr, PrivateDICOMTagValueFields &resultFields) override
 If a private Toshiba PMTF header tag is passed then this routine converts its data element(s) to fields in resultFields container. More...
 

Protected Member Functions

void _decodeTagArea (const std::string &prefix, const unsigned char *&tagDataOrig, MLuint32 &tagDataSize, PrivateDICOMTagValueFields &resultFields) const
 Assume a range of DICOM tags in binary storage format used by Toshiba private tags and decode and add the tags inside of the area as human readable information to resultFields as far as possible. More...
 
void _analyzeAndDump (const unsigned char *tagData, MLuint32 tagDataSize, PrivateDICOMTagValueFields &resultFields, bool isLastSection) const
 Expects the data of a private Toshiba PMTF tag value and tries to decode it as far as possible as human readable information appended to resultFields. More...
 
bool _extractDump (const DCMTree::Value &tagVal, PrivateDICOMTagValueFields &resultFields) const
 Expects the tag value of a private Toshiba PMTF tag and tries to decode it as far as possible as human readable information appended to resultFields. More...
 
- Protected Member Functions inherited from ml::GenericPrivateDICOMTagDecoder
bool _getTagNameAndVrFromId (unsigned int groupId, unsigned int elementId, std::string &retName, std::string &retVr) const
 Determines the tag name and value representation corresponding to a tag id given by groupId and elementId and returns true, or - if it cannot be determined - it returns false. More...
 
const unsigned char * _findStr (const unsigned char *buffer, const std::string &str, size_t bufferSize) const
 Returns the pointer to the first occurrence of str in the buffer given by buffer and bufferSize. More...
 
PrivateDICOMTagDecoderPluginBase::DecodeStates _decodeSequenceTagData (const std::string &prefix, const unsigned char *&tagData, MLuint32 &tagDataSize, bool implicit, PrivateDICOMTagValueFields &resultFields, bool translateStdIdToName) const
 Extract a sequence of DICOM tag values whose value representations are given in VRs. More...
 
 GenericPrivateDICOMTagDecoder ()
 Constructor doing nothing. More...
 
 ~GenericPrivateDICOMTagDecoder () override
 
PrivateDICOMTagDecoderPluginBase::DecodeStates extractTag (const std::string &prefix, const unsigned char *&tagData, MLuint32 &tagDataSize, bool decodeImplicitSeqVR, PrivateDICOMTagValueFields &resultFields, bool translateStdIdToName) const
 Assume a DICOM tag as binary data and add human readable information to resultFields of the tag id, names, and content(s) as far as it can be decoded. More...
 
- Protected Member Functions inherited from ml::PrivateDICOMTagDecoderPluginBase
 PrivateDICOMTagDecoderPluginBase (PrivateCreatorIdMap *privateCreatorMap=nullptr)
 Default constructor implementation creating a link symbol to make this base class always linked. More...
 
 ~PrivateDICOMTagDecoderPluginBase () override
 Virtual destructor. More...
 
PrivateCreatorIdMapgetPrivateCreatorMap () const
 Returns the map which stores a set of known private creators, typically from the currently traversed DICOM tree. More...
 
void setPrivateCreatorMap (PrivateCreatorIdMap *pcm)
 Sets the map which stores a set of known private creators, typically from the currently traversed DICOM tree. More...
 
- Protected Member Functions inherited from ml::Base
virtual char * getPersistentState () const
 Returns a C string describing the object's internal state. More...
 
virtual void setPersistentState (const char *)
 Restores the object's internal state from a string that had been previously generated using getPersistentState(). More...
 
virtual void clearPersistentState (char *) const
 Disposes a string previously allocated by getPersistentState(). More...
 
 Base ()
 Constructor. More...
 
virtual ~Base ()
 Destructor. More...
 
virtual BasedeepCopy () const
 Set addStateToTree version number that can be accessed via getAddStateVersion() More...
 
bool isOfAllowedType (const std::vector< const RuntimeType * > &types) const
 Check if this object's type is equal to or derived from one of the types given in the argument. More...
 
virtual bool isRefCountedBase () const
 Returns if the instance is derived from RefCountedBase. More...
 
virtual std::string detailString () const
 Return a string describing this object. More...
 
virtual bool implementsPersistence (PersistenceInterface) const
 Override this method to declare which persistence interfaces are implemented by your derived class. More...
 
virtual std::string persistentState () const
 Returns a string describing the object's internal state. More...
 
virtual void setPersistentState (const std::string &state)
 Restores the object's internal state from a string that had been previously generated using persistentState(). More...
 
virtual void addStateToTree (TreeNode *) const
 Attaches the object state as children of the given parent node. More...
 
virtual void readStateFromTree (TreeNode *)
 Reads the object state from the children of the given parent node. More...
 
virtual void writeTo (AbstractPersistenceOutputStream *) const
 Write the objects state to the data stream object. More...
 
virtual void readFrom (AbstractPersistenceInputStream *, int)
 Read the objects state from the data stream object. More...
 

Additional Inherited Members

- Protected Types inherited from ml::PrivateDICOMTagDecoderPluginBase
enum  DecodeStates { NOT_DECODED = 0 , PARTIALLY_DECODED , FULLY_DECODED }
 Return states of decoding. More...
 
typedef std::map< DCMTree::RawTagId, std::string > PrivateCreatorIdMap
 A type storing tag group ids for strings found in private tags (tags with odd numbers and id 0x10-0xFF). More...
 
- Protected Types inherited from ml::Base
enum  PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream }
 This enum describes the different persistence interfaces available. More...
 
- Static Protected Member Functions inherited from ml::GenericPrivateDICOMTagDecoder
static std::string _dumpRange (const unsigned char *start, size_t num=16, bool showStartAddress=true, bool showHexDump=true, bool showASCII=true, size_t maxRowSize=16, char defaultNonReadableChar='.')
 Creates a string containing one row with a hexadecimal start address of the buffer, hexadecimal byte data values, and ASCII dump corresponding to the data bytes. More...
 
static void dumpHexArea (const std::string &prefix, const unsigned char *tagData, size_t tagDataSize, PrivateDICOMTagValueFields &resultFields, size_t rowSize=16)
 Add a range of bytes as a hex dump to the PrivateDICOMTagValueFields resultFields as "otherInfo" tag information with disabled "isValidTag" flag. More...
 
static bool isValidVRString (const std::string &vrStr)
 Returns true if the passed VR string is a valid known one, otherwise false. More...
 

Detailed Description

An experimental DICOM tag decoder class for private Toshiba PMTF tags.

Definition at line 20 of file mlPMTFToshibaPrivateDICOMTagDecoders.h.

Constructor & Destructor Documentation

◆ PMTFToshibaPrivateDICOMTagDecoders()

ml::PMTFToshibaPrivateDICOMTagDecoders::PMTFToshibaPrivateDICOMTagDecoders ( )

Constructor doing nothing.

◆ ~PMTFToshibaPrivateDICOMTagDecoders()

ml::PMTFToshibaPrivateDICOMTagDecoders::~PMTFToshibaPrivateDICOMTagDecoders ( )
override

Member Function Documentation

◆ _analyzeAndDump()

void ml::PMTFToshibaPrivateDICOMTagDecoders::_analyzeAndDump ( const unsigned char *  tagData,
MLuint32  tagDataSize,
PrivateDICOMTagValueFields resultFields,
bool  isLastSection 
) const
protected

Expects the data of a private Toshiba PMTF tag value and tries to decode it as far as possible as human readable information appended to resultFields.

Parameters
tagDataThe pointer to the tag value data to be decoded, may be nullptr.
tagDataSizeThe number of bytes in tagData to be dumped.
resultFieldsThe container to be extended by decoded tag information.
isLastSectionIf it is the last decoded section of the tag value then true must be passed, otherwise false.
Returns
All successfully decoded tag information is appended as additional elements to resultFields. On failure or inappropriate input data resultFields is left unchanged.

◆ _decodeTagArea()

void ml::PMTFToshibaPrivateDICOMTagDecoders::_decodeTagArea ( const std::string &  prefix,
const unsigned char *&  tagDataOrig,
MLuint32 tagDataSize,
PrivateDICOMTagValueFields resultFields 
) const
protected

Assume a range of DICOM tags in binary storage format used by Toshiba private tags and decode and add the tags inside of the area as human readable information to resultFields as far as possible.

Note that this function expects the data in reverse order as it is stored in Toshiba private PMTF tags.

Parameters
prefixString added before each entry added to resultFields.
tagDataOrigThe pointer to the tag data to be decoded, may be nullptr.
tagDataSizeThe number of bytes in tagData to be dumped.
resultFieldsThe container to be extended with extracted header, section, and tag information.
Returns
All successfully decoded tag information is appended as additional elements to resultFields. On failure or inappropriate input data resultFields is left unchanged.

◆ _extractDump()

bool ml::PMTFToshibaPrivateDICOMTagDecoders::_extractDump ( const DCMTree::Value tagVal,
PrivateDICOMTagValueFields resultFields 
) const
protected

Expects the tag value of a private Toshiba PMTF tag and tries to decode it as far as possible as human readable information appended to resultFields.

Parameters
tagValThe value of the private Toshiba PMTF tag to be decoded.
resultFieldsThe container to be extended by decoded tag information.
Returns
All successfully decoded tag information is appended as additional elements to resultFields. On failure or inappropriate input data resultFields is left unchanged.

◆ decodePrivateTag()

PrivateDICOMTagDecoderPluginBase::DecodeStates ml::PMTFToshibaPrivateDICOMTagDecoders::decodePrivateTag ( const std::string &  privateCreator,
DCMTree::Const_TagPtr  tagPtr,
PrivateDICOMTagValueFields resultFields 
)
overridevirtual

If a private Toshiba PMTF header tag is passed then this routine converts its data element(s) to fields in resultFields container.

The privateCreator must be a "PMTF INFORMATION DATA" one.

Parameters
privateCreatorA string with the name of the private creator this tags belongs to.
tagPtrThe tag whose value shall be decoded.
resultFieldsThe field container to be filled with extracted information from tagPtr or returned empty if no data could be decoded.
Returns
PrivateDICOMTagDecoderPluginBase::NOT_DECODED if the tag could not be decoded, PrivateDICOMTagDecoderPluginBase::PARTIALLY_DECODED if some of the tag value components were decoded or PrivateDICOMTagDecoderPluginBase::FULLY_DECODED if entire tag value could be decoded.

Reimplemented from ml::GenericPrivateDICOMTagDecoder.


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