19#include <mlFMEPrivateDICOMTagDecoder.h>
26:
public FMEPrivateDICOMTagDecoderPluginBase {
67 const unsigned char *tagData,
93 const unsigned char *&tagData,
95 bool decodeImplicitSeqVR,
97 bool translateStdIdToName)
const;
112 unsigned int elementId,
113 std::string &retName,
114 std::string &retVr)
const;
122 const unsigned char *
_findStr(
const unsigned char *buffer,
123 const std::string &str,
124 size_t bufferSize)
const;
147 bool showStartAddress =
true,
148 bool showHexDump =
true,
149 bool showASCII =
true,
150 size_t maxRowSize = 16,
151 char defaultNonReadableChar =
'.');
167 const unsigned char *&tagData,
171 bool translateStdIdToName)
const;
190 void _decodeATTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
194 void _decodeDLTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
198 void _decodeFDTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
202 void _decodeFLTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
206 void _decodeOXTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
211 const std::string &VRstr)
const;
214 void _decodeSQTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
216 bool decodeImplicitSeqVR,
217 bool translateStdIdToName)
const;
220 void _decodeSLTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
224 void _decodeSSTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
228 void _decodeULTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
232 void _decodeUSTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
239 void _decodeUNTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
243 void _decodeStrLikeTagData(
const std::string &prefix,
bool useImplicitVR,
const unsigned char *tagData,
248 std::string &strValue)
const;
264 bool _decodeVrTagData(
const std::string &prefix,
266 const unsigned char *tagData,
271 bool decodeImplicitSeqVR,
272 const std::string &vr,
273 std::string &strValue,
274 bool translateStdIdToName)
const;
static void dumpHexArea(const std::string &prefix, const unsigned char *tagData, size_t tagDataSize, PrivateDICOMTagValueFields &resultFields, size_t rowSize=16, size_t maxBytesToDump=ML_SIZE_T_MAX)
GenericPrivateDICOMTagDecoder(const GenericPrivateDICOMTagDecoder &)=default
Default copy constructor.
GenericPrivateDICOMTagDecoder & operator=(const GenericPrivateDICOMTagDecoder &)=default
Default assignment operator.
GenericPrivateDICOMTagDecoder()=default
Constructor doing nothing.
PrivateDICOMTagDecoderPluginBase::DecodeStates extractTag(const std::string &prefix, const unsigned char *&tagData, MLuint32 &tagDataSize, bool decodeImplicitSeqVR, PrivateDICOMTagValueFields &resultFields, bool translateStdIdToName) const
~GenericPrivateDICOMTagDecoder() override
Destructor.
PrivateDICOMTagDecoderPluginBase::DecodeStates _decodeSequenceTagData(const std::string &prefix, const unsigned char *&tagData, MLuint32 &tagDataSize, bool implicit, PrivateDICOMTagValueFields &resultFields, bool translateStdIdToName) const
PrivateDICOMTagDecoderPluginBase::DecodeStates decodePrivateTag(const std::string &privateCreator, DCMTree::Const_TagPtr tagPtr, PrivateDICOMTagValueFields &resultFields) override
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='.')
bool _getTagNameAndVrFromId(unsigned int groupId, unsigned int elementId, std::string &retName, std::string &retVr) const
static bool isValidVRString(const std::string &vrStr)
Returns true if the passed VR string is a valid known one, otherwise false.
const unsigned char * _findStr(const unsigned char *buffer, const std::string &str, size_t bufferSize) const
DecodeStates
Return states of decoding.
#define ML_CLASS_HEADER(className)
#define ML_SIZE_T_MAX
For convenience, the maximum value of size_t without "U", which is probably more in line of the expec...
boost::shared_ptr< const Tag > Const_TagPtr