+/**
+ * \brief Checks if the multiplicity of the value follows Dictionary VM
+ */
+bool DataEntry::IsValueCountValid() const
+{
+ bool valid;
+ uint32_t vm;
+ const std::string &strVM = GetVM();
+ uint32_t vc = GetValueCount();
+
+ // FIXME : what shall we do with VM = "2-n", "3-n", etc
+
+ if( strVM == "1-n" )
+ {
+ // make sure it is at least one ??? FIXME
+ valid = vc >= 1 || vc == 0;
+ }
+ else
+ {
+ std::istringstream os;
+ os.str( strVM );
+ os >> vm;
+ // Two cases:
+ // vm respect the one from the dict
+ // vm is 0 (we need to check if this element is allowed to be empty) FIXME
+
+ // note (JPR)
+ // ----
+ // Entries whose type is 1 are mandatory, with a mandatory value.
+ // Entries whose type is 1c are mandatory-inside-a-Sequence,
+ // with a mandatory value.
+ // Entries whose type is 2 are mandatory, with an optional value.
+ // Entries whose type is 2c are mandatory-inside-a-Sequence,
+ // with an optional value.
+ // Entries whose type is 3 are optional.
+
+ // case vc == 0 is only applicable for 'type 2' entries.
+ // Problem : entry type may depend on the modality and/or the Sequence
+ // it's embedded in !
+ // (Get the information in the 'Conformance Statements' ...)
+ valid = vc == vm || vc == 0;
+ }
+ return valid;
+}
+
+/**
+ * \brief returns the number of elementary values
+ */
+uint32_t DataEntry::GetValueCount( ) const