X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDictEntry.h;h=f729d9b7c7888d659721082ce706b0e0a4f56aea;hb=d441f6f81784ccb09ce382c2eb574bc2b737cc6e;hp=682803fb6877d3387b6f06ebd9b0fb4f2e73efc3;hpb=15d7b1b38f5ddb59d395e0e4e3f9b0250eb90eec;p=gdcm.git diff --git a/src/gdcmDictEntry.h b/src/gdcmDictEntry.h index 682803fb..f729d9b7 100644 --- a/src/gdcmDictEntry.h +++ b/src/gdcmDictEntry.h @@ -1,11 +1,14 @@ // gdcmDictEntry.h - +//----------------------------------------------------------------------------- #ifndef GDCMDICTENTRY_H #define GDCMDICTENTRY_H #include "gdcmCommon.h" +//----------------------------------------------------------------------------- /* + * \defgroup gdcmDictEntry + * \brief * the gdcmDictEntry in an element contained by the gdcmDict. * It contains : * - the key referenced by the DICOM norm or the constructor (for private keys) @@ -13,22 +16,95 @@ * - the owner group * - etc. */ -class GDCM_EXPORT gdcmDictEntry { +class GDCM_EXPORT gdcmDictEntry +{ +public: + gdcmDictEntry(guint16 group, + guint16 element, + std::string vr = "Unknown", + std::string fourth = "Unknown", + std::string name = "Unknown"); + + static TagKey TranslateToKey(guint16 group, guint16 element); + + void SetVR(std::string); + + /** + * \ingroup gdcmDictEntry + * \brief tells if the V(alue) R(epresentation) is known (?!) + * + * @return + */ + inline bool IsVRUnknown() {return vr == "Unknown"; } + + /** + * \ingroup gdcmDictEntry + * \brief returns the Dicom Group Number of the current gdcmDictEntry + * return the Dicom Group Number + */ + inline guint16 GetGroup(void) { return group; } + + /** + * \ingroup gdcmDictEntry + * \brief returns the Dicom Element Number of the current gdcmDictEntry + * return the Dicom Element Number + */ + inline guint16 GetElement(void) { return element; } + + /** + * \ingroup gdcmDictEntry + * \brief returns the Dicom Value Representation of the current gdcmDictEntry + * return the Dicom Value Representation + */ + inline std::string GetVR(void) { return vr; } + + /** + * \ingroup gdcmDictEntry + * \brief sets the key of the current gdcmDictEntry + * @param k New key to be set. + */ + inline void SetKey(std::string k) { key = k; } + + /** + * \ingroup gdcmDictEntry + * \brief returns the Fourth field of the current gdcmDictEntry + * \warning NOT part of the Dicom Standard + * \ May be REMOVED an any time + * \ NEVER use it + * return the Fourth field + */ + inline std::string GetFourth(void) { return fourth; } + + /** + * \ingroup gdcmDictEntry + * \brief returns the Dicom Name of the current gdcmDictEntry + * \ e.g. "Patient Name" for Dicom Tag (0x0010, 0x0010) + * return the Dicom Name + */ + inline std::string GetName(void) { return name; } + + /** + * \ingroup gdcmDictEntry + * \brief Gets the key of the current gdcmDictEntry + * @return the key . + */ + inline std::string GetKey(void) { return key; } + private: // FIXME : were are the group and element used except from building up // a TagKey. If the answer is nowhere then there is no need // to store the group and element independently. - guint16 group; // e.g. 0x0010 - guint16 element; // e.g. 0x0103 - std::string vr; // Value Representation i.e. some clue about the nature + guint16 group; // e.g. 0x0010 + guint16 element; // e.g. 0x0103 + std::string vr; // Value Representation i.e. some clue about the nature // of the data represented e.g. "FD" short for // "Floating Point Double" // CLEANME: find the official dicom name for this field ! - std::string fourth; // Fourth field containing some semantics. - //(Group Name abbr.) - std::string name; // e.g. "Patient_Name" - TagKey key; // Redundant with (group, element) but we add it - // on efficiency purposes. + std::string fourth; // Fourth field containing some semantics. + //(Group Name abbr.) + std::string name; // e.g. "Patient_Name" + TagKey key; // Redundant with (group, element) but we add it + // on efficiency purposes. // DCMTK has many fields for handling a DictEntry (see below). What are the // relevant ones for gdcmlib ? @@ -43,31 +119,7 @@ private: // DcmDictRangeRestriction groupRestriction; // DcmDictRangeRestriction elementRestriction; // }; -public: - gdcmDictEntry(guint16 group, - guint16 element, - std::string vr = "Unknown", - std::string fourth = "Unknown", - std::string name = "Unknown"); - - // fabrique une 'clé' par concaténation du numGroupe et du numElement - - // Pourquoi fait-elle partie de DictEntry? - // elle pourrait etre utilisée egalement ailleurs, hors tout Dictionnaire - - // Pourquoi 'static'? - - static TagKey TranslateToKey(guint16 group, guint16 element); - - guint16 GetGroup(void) {return group; }; - guint16 GetElement(void){return element;}; - std::string GetVR(void) {return vr; }; - void SetVR(std::string); - void SetKey(std::string k){ key = k; }; - bool IsVrUnknown(void); - std::string GetFourth(void) {return fourth;}; - std::string GetName(void) {return name; }; - std::string GetKey(void) {return key; }; }; +//----------------------------------------------------------------------------- #endif