+/**
+ * \brief Compares two documents, according to \ref DicomDir rules
+ * \warning Does NOT work with ACR-NEMA files
+ * \todo Find a trick to solve the pb (use RET fields ?)
+ * @param document to compare with current one
+ * @return true if 'smaller'
+ */
+bool Document::operator<(Document &document)
+{
+ // Patient Name
+ std::string s1 = GetEntryValue(0x0010,0x0010);
+ std::string s2 = document.GetEntryValue(0x0010,0x0010);
+ if(s1 < s2)
+ {
+ return true;
+ }
+ else if( s1 > s2 )
+ {
+ return false;
+ }
+ else
+ {
+ // Patient ID
+ s1 = GetEntryValue(0x0010,0x0020);
+ s2 = document.GetEntryValue(0x0010,0x0020);
+ if ( s1 < s2 )
+ {
+ return true;
+ }
+ else if ( s1 > s2 )
+ {
+ return false;
+ }
+ else
+ {
+ // Study Instance UID
+ s1 = GetEntryValue(0x0020,0x000d);
+ s2 = document.GetEntryValue(0x0020,0x000d);
+ if ( s1 < s2 )
+ {
+ return true;
+ }
+ else if( s1 > s2 )
+ {
+ return false;
+ }
+ else
+ {
+ // Serie Instance UID
+ s1 = GetEntryValue(0x0020,0x000e);
+ s2 = document.GetEntryValue(0x0020,0x000e);
+ if ( s1 < s2 )
+ {
+ return true;
+ }
+ else if( s1 > s2 )
+ {
+ return false;
+ }
+ }
+ }
+ }
+ return false;
+}
+