# HG changeset patch # User Sebastien Jodogne # Date 1352305281 -3600 # Node ID 81f11fb357f20ed6ccae262edcf1d01688e4eada # Parent 662af781a22712610041bd8df5b37dfd8d3feedd uid generation diff -r 662af781a227 -r 81f11fb357f2 OrthancServer/FromDcmtkBridge.cpp --- 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 #include #include +#include #include @@ -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); + } + } + } diff -r 662af781a227 -r 81f11fb357f2 OrthancServer/FromDcmtkBridge.h --- a/OrthancServer/FromDcmtkBridge.h Mon Nov 05 12:31:02 2012 +0100 +++ b/OrthancServer/FromDcmtkBridge.h Wed Nov 07 17:21:21 2012 +0100 @@ -45,6 +45,13 @@ ImageExtractionMode_UInt16 }; + enum DicomRootLevel + { + DicomRootLevel_Study, + DicomRootLevel_Series, + DicomRootLevel_Instance + }; + class FromDcmtkBridge { public: @@ -105,5 +112,7 @@ static void ToJson(Json::Value& result, const DicomMap& values); + + static std::string GenerateUniqueIdentifier(DicomRootLevel level); }; }