+/**
+ * \ingroup Util
+ * \brief Creates a new UID. As stipulate in the DICOM ref
+ * each time a DICOM image is create it should have
+ * a unique identifier (URI)
+ */
+std::string Util::CreateUniqueUID(const std::string& root)
+{
+ // The code works as follow:
+ // echo "gdcm" | od -b
+ // 0000000 147 144 143 155 012
+ // Therefore we return
+ // radical + 147.144.143.155 + IP + time()
+ std::string radical = root;
+ if( !root.size() ) //anything better ?
+ {
+ radical = "0.0."; // Is this really usefull ?
+ }
+ // else
+ // A root was specified use it to forge our new UID:
+ radical += "147.144.143.155"; // gdcm
+ radical += ".";
+ radical += Util::GetIPAddress();
+ radical += ".";
+ radical += Util::GetCurrentDate();
+ radical += ".";
+ radical += Util::GetCurrentTime();