- void Copy(gdcmDocEntry *doc);
-
-private:
- // FIXME: In fact we should be more specific and use :
- // friend gdcmDocEntry * gdcmHeader::ReadNextElement(void);
- friend class gdcmHeader;
-
- /// Sets the depth level of a Dicom Header Entry embedded in a SeQuence
- inline void SetSQDepthLevel(int depthLevel) { SQDepthLevel = depthLevel; };
+ /// \brief Tells us if the current Dicom entry was checked as ImplicitVr
+ /// @return true if the current Dicom entry was checked as ImplicitVr
+ bool IsImplicitVR() const { return ImplicitVR; }
+
+ /// \brief Tells us if the VR of the current Dicom entry is Unknown
+ /// @return true if the VR is unknown
+// bool IsVRUnknown() const { return DicomDict->IsVRUnknown(); }
+ bool IsVRUnknown() const { return VR == GDCM_VRUNKNOWN; }
+
+ /// \brief Tells us if the VM of the current Dicom entry is Unknown
+ /// @return true if the VM is unknown
+// bool IsVMUnknown() const { return DicomDict->IsVMUnknown(); }
+ bool IsVMUnknown() { return GetVM() == GDCM_UNKNOWN; }
+
+/// \brief tells us if entry is the last one of a 'no length' SequenceItem
+/// (fffe,e00d)
+ bool IsItemDelimitor()
+ {return (GetGroup() == 0xfffe && GetElement() == 0xe00d);}
+///\brief tells us if entry is the last one of a 'no length' Sequence
+/// (fffe,e0dd)
+ bool IsItemStarter(){ if (GetGroup() != 0xfffe) return false;
+ return (GetElement() == 0xe000); }
+ /// \brief tells us if entry is the last one of a 'no length' Sequence
+ /// (fffe,e0dd)
+ bool IsSequenceDelimitor() { return (GetGroup() == 0xfffe && GetElement() == 0xe0dd);}
+
+ virtual void Copy(DocEntry *doc);
+
+protected:
+ // DocEntry(DictEntry*);
+ DocEntry(uint16_t group, uint16_t elem, VRKey const &vr);
+ virtual ~DocEntry();
+
+ /// \brief pointer to the underlying Dicom dictionary element
+ DictEntry *DicomDict;