Mercurial > hg > orthanc
diff OrthancServer/FromDcmtkBridge.cpp @ 176:81f11fb357f2
uid generation
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 07 Nov 2012 17:21:21 +0100 |
parents | fe180eae201d |
children | 4031f73fe0e4 |
line wrap: on
line diff
--- a/OrthancServer/FromDcmtkBridge.cpp Mon Nov 05 12:31:02 2012 +0100 +++ b/OrthancServer/FromDcmtkBridge.cpp Wed Nov 07 17:21:21 2012 +0100 @@ -57,6 +57,7 @@ #include <dcmtk/dcmdata/dcvrss.h> #include <dcmtk/dcmdata/dcvrul.h> #include <dcmtk/dcmdata/dcvrus.h> +#include <dcmtk/dcmdata/dcuid.h> #include <boost/math/special_functions/round.hpp> @@ -614,4 +615,26 @@ result[GetName(it->first)] = it->second->AsString(); } } + + + std::string FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel level) + { + char uid[100]; + + switch (level) + { + case DicomRootLevel_Instance: + return dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT); + + case DicomRootLevel_Series: + return dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT); + + case DicomRootLevel_Study: + return dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT); + + default: + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + } + }