namespace tree
{
+ /**
+ * \ingroup Model
+ */
//=====================================================================
- /// Descriptor of an attribute of a node of a tree (name, dicom group/element)
+ /// Descriptor of an attribute of a node of a Tree (name, dicom group/element)
class AttributeDescriptor
{
public:
/// Flags
/// The attribute is hidden (not visible to user)
- static const unsigned int HIDDEN;
- /// The attribute enters in unique identifier constitution (KEY)
- static const unsigned int KEY;
+ static const unsigned int PRIVATE;
+ /// The attribute enters in unique identifier constitution
+ static const unsigned int IDENTIFIER;
/// The attribute enters in label constitution (for printing)
static const unsigned int LABEL;
: mKey(""), mName(""), mGroup(0), mElement(0), mFlags(0)
{
}
- // Ctor with key and flags
- // If the key is of the form "0020|000E"
- // (Two hex short separated by a pipe at 5th position)
- // it is interpreted as a Dicom Tag
- // The user name is retreived from dicom dictionnary
- // and the group and elem are filled
- // Else the name is set to the key
+ /// Ctor with all explicitely
+ AttributeDescriptor(const std::string& key,
+ const std::string& name,
+ unsigned short group,
+ unsigned short element,
+ unsigned int flags)
+ : mKey(key), mName(name), mGroup(group), mElement(element),
+ mFlags(flags)
+ {
+ }
+
+ // Ctor with key, name and flags
AttributeDescriptor(const std::string& key,
+ const std::string& name,
unsigned int flags = 0);
+ // Ctor with dicom group, elem and flags
+ // The key is built as 'Dgroup_elem'
+ // The user name is retreived from dicom dictionnary
+ AttributeDescriptor(unsigned short group,
+ unsigned short element,
+ unsigned int flags = 0);
+ /// Returns the key of the attribute
+ const std::string& GetKey() const { return mKey; }
/// Returns the name of the attribute
const std::string& GetName() const { return mName; }
/// Returns the DICOM group code of the attribute
/// Returns the flags of the attribute
unsigned int GetFlags() const { return mFlags; }
+ /// Extracts group and element from a key of the form "Dgroup_elem"
+ static void GetDicomGroupElementFromKey(const std::string& key,
+ unsigned short& group,
+ unsigned short& elem);
+ /// Cleans the name:
+ /// Replace simple quote by double quotes
+ /// Cut string at NULL chars
+ void CleanName(std::string& str) const;
private:
std::string mKey;
std::string mName;
} // EO namespace creaImageIO
-/*
-//=====================================================================
-inline std::ostream& operator<<(std::ostream& s,
-const creaImageIO::tree::AttributeDescriptor& d)
-{
-s << "[" << d.key << ":" << d.name << "]";
-return s;
-}
-//=====================================================================
-*/
+
#endif // #ifndef __creaImageIOTreeAttributeDescriptor_h_INCLUDED__