public static DicomUID Generate()
{
lock (GenerateUidLock) {
long ticks = DateTime.UtcNow.Subtract(Y2K).Ticks;
while (ticks == LastTicks) {
Thread.Sleep(1);
ticks = DateTime.UtcNow.Subtract(Y2K).Ticks;
}
LastTicks = ticks;
string str = ticks.ToString();
if (str.EndsWith("0000"))
str = str.Substring(0, str.Length - 4);
StringBuilder uid = new StringBuilder();
uid.Append(InstanceRootUID.UID).Append('.').Append(str);
return new DicomUID(uid.ToString(), "SOP Instance UID", DicomUidType.SOPInstance);
}
}