comparison Sources/Plugin.cpp @ 2:cbc4be362700

added configuration option "RouterBasename"
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 15 Jun 2023 16:37:05 +0200
parents 39585ba26f20
children fdb8c6c420d0
comparison
equal deleted inserted replaced
1:cc0e9401b027 2:cbc4be362700
24 24
25 #include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" 25 #include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h"
26 26
27 #include <Logging.h> 27 #include <Logging.h>
28 #include <SystemToolbox.h> 28 #include <SystemToolbox.h>
29 #include <Toolbox.h>
29 30
30 #include <EmbeddedResources.h> 31 #include <EmbeddedResources.h>
31 32
32 #include <boost/thread/shared_mutex.hpp> 33 #include <boost/thread/shared_mutex.hpp>
33 34
97 } 98 }
98 }; 99 };
99 100
100 101
101 static ResourcesCache cache_; 102 static ResourcesCache cache_;
103 static std::string routerBasename_;
102 104
103 void ServeFile(OrthancPluginRestOutput* output, 105 void ServeFile(OrthancPluginRestOutput* output,
104 const char* url, 106 const char* url,
105 const OrthancPluginHttpRequest* request) 107 const OrthancPluginHttpRequest* request)
106 { 108 {
118 { 120 {
119 std::string system, user; 121 std::string system, user;
120 Orthanc::EmbeddedResources::GetFileResource(system, Orthanc::EmbeddedResources::APP_CONFIG_SYSTEM); 122 Orthanc::EmbeddedResources::GetFileResource(system, Orthanc::EmbeddedResources::APP_CONFIG_SYSTEM);
121 Orthanc::EmbeddedResources::GetFileResource(user, Orthanc::EmbeddedResources::APP_CONFIG_USER); 123 Orthanc::EmbeddedResources::GetFileResource(user, Orthanc::EmbeddedResources::APP_CONFIG_USER);
122 124
125 std::map<std::string, std::string> dictionary;
126 dictionary["ROUTER_BASENAME"] = routerBasename_;
127
128 system = Orthanc::Toolbox::SubstituteVariables(system, dictionary);
129
123 std::string s = (user + "\n" + system); 130 std::string s = (user + "\n" + system);
124 OrthancPluginAnswerBuffer(context, output, s.c_str(), s.size(), "application/json"); 131 OrthancPluginAnswerBuffer(context, output, s.c_str(), s.size(), "application/json");
125 } 132 }
126 else if (uri == "viewer") 133 else if (uri == "viewer")
127 { 134 {
195 Orthanc::Logging::InitializePluginContext(context); 202 Orthanc::Logging::InitializePluginContext(context);
196 #else 203 #else
197 Orthanc::Logging::Initialize(context); 204 Orthanc::Logging::Initialize(context);
198 #endif 205 #endif
199 206
207 OrthancPlugins::OrthancConfiguration configuration;
208
209 {
210 OrthancPlugins::OrthancConfiguration globalConfiguration;
211 globalConfiguration.GetSection(configuration, "OHIF");
212 }
213
214 routerBasename_ = configuration.GetStringValue("RouterBasename", "/ohif");
215
200 OrthancPluginSetDescription(context, "OHIF plugin for Orthanc."); 216 OrthancPluginSetDescription(context, "OHIF plugin for Orthanc.");
201 217
202 OrthancPlugins::RegisterRestCallback<ServeFile>("/ohif/(.*)", true); 218 OrthancPlugins::RegisterRestCallback<ServeFile>("/ohif/(.*)", true);
203 219
204 OrthancPluginRegisterOnChangeCallback(context, OnChangeCallback); 220 OrthancPluginRegisterOnChangeCallback(context, OnChangeCallback);
205 221
206 // Extend the default Orthanc Explorer with custom JavaScript for OHIF 222 // Extend the default Orthanc Explorer with custom JavaScript for OHIF
207 std::string explorer; 223 std::string explorer;
208 Orthanc::EmbeddedResources::GetFileResource(explorer, Orthanc::EmbeddedResources::ORTHANC_EXPLORER); 224 Orthanc::EmbeddedResources::GetFileResource(explorer, Orthanc::EmbeddedResources::ORTHANC_EXPLORER);
209 OrthancPluginExtendOrthancExplorer(context, explorer.c_str()); 225 OrthancPluginExtendOrthancExplorer(context, explorer.c_str());
210 226