Mercurial > hg > orthanc
comparison OrthancServer/ServerEnumerations.cpp @ 435:28ba73274919
registration of user-defined metadata
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 15 May 2013 15:57:05 +0200 |
parents | ccf3a0a43dac |
children | d51186bf7602 |
comparison
equal
deleted
inserted
replaced
434:ccf3a0a43dac | 435:28ba73274919 |
---|---|
30 **/ | 30 **/ |
31 | 31 |
32 #include "ServerEnumerations.h" | 32 #include "ServerEnumerations.h" |
33 | 33 |
34 #include "../Core/OrthancException.h" | 34 #include "../Core/OrthancException.h" |
35 #include "../Core/EnumerationDictionary.h" | |
36 | |
37 #include <boost/thread.hpp> | |
35 | 38 |
36 namespace Orthanc | 39 namespace Orthanc |
37 { | 40 { |
41 static boost::mutex enumerationsMutex_; | |
42 static Toolbox::EnumerationDictionary<MetadataType> dictMetadataType_; | |
43 | |
44 void InitializeServerEnumerations() | |
45 { | |
46 boost::mutex::scoped_lock lock(enumerationsMutex_); | |
47 | |
48 dictMetadataType_.Add(MetadataType_Instance_IndexInSeries, "IndexInSeries"); | |
49 dictMetadataType_.Add(MetadataType_Instance_ReceptionDate, "ReceptionDate"); | |
50 dictMetadataType_.Add(MetadataType_Instance_RemoteAet, "RemoteAET"); | |
51 dictMetadataType_.Add(MetadataType_Series_ExpectedNumberOfInstances, "ExpectedNumberOfInstances"); | |
52 dictMetadataType_.Add(MetadataType_ModifiedFrom, "ModifiedFrom"); | |
53 dictMetadataType_.Add(MetadataType_AnonymizedFrom, "AnonymizedFrom"); | |
54 dictMetadataType_.Add(MetadataType_LastUpdate, "LastUpdate"); | |
55 } | |
56 | |
57 void RegisterUserMetadata(int metadata, | |
58 const std::string name) | |
59 { | |
60 boost::mutex::scoped_lock lock(enumerationsMutex_); | |
61 | |
62 if (metadata < static_cast<int>(MetadataType_StartUser) || | |
63 metadata > static_cast<int>(MetadataType_EndUser)) | |
64 { | |
65 throw OrthancException(ErrorCode_ParameterOutOfRange); | |
66 } | |
67 | |
68 dictMetadataType_.Add(static_cast<MetadataType>(metadata), name); | |
69 } | |
70 | |
71 const char* EnumerationToString(MetadataType type) | |
72 { | |
73 boost::mutex::scoped_lock lock(enumerationsMutex_); | |
74 return dictMetadataType_.Translate(type).c_str(); | |
75 } | |
76 | |
77 MetadataType StringToMetadata(const std::string& str) | |
78 { | |
79 boost::mutex::scoped_lock lock(enumerationsMutex_); | |
80 return dictMetadataType_.Translate(str); | |
81 } | |
82 | |
38 const char* EnumerationToString(ResourceType type) | 83 const char* EnumerationToString(ResourceType type) |
39 { | 84 { |
40 switch (type) | 85 switch (type) |
41 { | 86 { |
42 case ResourceType_Patient: | 87 case ResourceType_Patient: |