Mercurial > hg > orthanc
diff Plugins/Samples/ModalityWorklists/Plugin.cpp @ 2958:bb7a66efbeb1
OrthancPlugins::SetGlobalContext() in OrthancPluginCppWrapper
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 04 Dec 2018 16:31:29 +0100 |
parents | d4fd4614f275 |
children | 4e43e67f8ecf |
line wrap: on
line diff
--- a/Plugins/Samples/ModalityWorklists/Plugin.cpp Mon Dec 03 17:14:55 2018 +0100 +++ b/Plugins/Samples/ModalityWorklists/Plugin.cpp Tue Dec 04 16:31:29 2018 +0100 @@ -28,7 +28,6 @@ #include <iostream> #include <algorithm> -static OrthancPluginContext* context_ = NULL; static std::string folder_; static bool filterIssuerAet_ = false; @@ -40,18 +39,18 @@ const OrthancPlugins::FindMatcher& matcher, const std::string& path) { - OrthancPlugins::MemoryBuffer dicom(context_); + OrthancPlugins::MemoryBuffer dicom; dicom.ReadFile(path); if (matcher.IsMatch(dicom)) { // This DICOM file matches the worklist query, add it to the answers OrthancPluginErrorCode code = OrthancPluginWorklistAddAnswer - (context_, answers, query, dicom.GetData(), dicom.GetSize()); + (OrthancPlugins::GetGlobalContext(), answers, query, dicom.GetData(), dicom.GetSize()); if (code != OrthancPluginErrorCode_Success) { - OrthancPlugins::LogError(context_, "Error while adding an answer to a worklist request"); + OrthancPlugins::LogError("Error while adding an answer to a worklist request"); ORTHANC_PLUGINS_THROW_PLUGIN_ERROR_CODE(code); } @@ -66,7 +65,7 @@ const char* issuerAet) { // Extract the DICOM instance underlying the C-Find query - OrthancPlugins::MemoryBuffer dicom(context_); + OrthancPlugins::MemoryBuffer dicom; dicom.GetDicomQuery(query); // Convert the DICOM as JSON, and dump it to the user in "--verbose" mode @@ -74,12 +73,12 @@ dicom.DicomToJson(json, OrthancPluginDicomToJsonFormat_Short, static_cast<OrthancPluginDicomToJsonFlags>(0), 0); - OrthancPlugins::LogInfo(context_, "Received worklist query from remote modality " + + OrthancPlugins::LogInfo("Received worklist query from remote modality " + std::string(issuerAet) + ":\n" + json.toStyledString()); if (!filterIssuerAet_) { - return new OrthancPlugins::FindMatcher(context_, query); + return new OrthancPlugins::FindMatcher(query); } else { @@ -126,9 +125,10 @@ } // Encode the modified JSON as a DICOM instance, then convert it to a C-Find matcher - OrthancPlugins::MemoryBuffer modified(context_); + OrthancPlugins::MemoryBuffer modified; modified.CreateDicom(json, OrthancPluginCreateDicomFlags_None); - return new OrthancPlugins::FindMatcher(context_, modified); + + return new OrthancPlugins::FindMatcher(modified); } } @@ -170,7 +170,7 @@ // We found a worklist (i.e. a DICOM find with extension ".wl"), match it against the query if (MatchWorklist(answers, query, *matcher, it->path().string())) { - OrthancPlugins::LogInfo(context_, "Worklist matched: " + it->path().string()); + OrthancPlugins::LogInfo("Worklist matched: " + it->path().string()); matchedWorklistCount++; } } @@ -179,17 +179,17 @@ std::ostringstream message; message << "Worklist C-Find: parsed " << parsedFilesCount << " files, found " << matchedWorklistCount << " match(es)"; - OrthancPlugins::LogInfo(context_, message.str()); + OrthancPlugins::LogInfo(message.str()); } catch (fs::filesystem_error&) { - OrthancPlugins::LogError(context_, "Inexistent folder while scanning for worklists: " + source.string()); + OrthancPlugins::LogError("Inexistent folder while scanning for worklists: " + source.string()); return OrthancPluginErrorCode_DirectoryExpected; } // Uncomment the following line if too many answers are to be returned - // OrthancPluginMarkWorklistAnswersIncomplete(context_, answers); + // OrthancPluginMarkWorklistAnswersIncomplete(OrthancPlugins::GetGlobalContext(), answers); return OrthancPluginErrorCode_Success; } @@ -204,22 +204,21 @@ { ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c) { - context_ = c; + OrthancPlugins::SetGlobalContext(c); /* Check the version of the Orthanc core */ if (OrthancPluginCheckVersion(c) == 0) { - OrthancPlugins::ReportMinimalOrthancVersion(context_, - ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER, + OrthancPlugins::ReportMinimalOrthancVersion(ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER, ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER, ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER); return -1; } - OrthancPlugins::LogWarning(context_, "Sample worklist plugin is initializing"); - OrthancPluginSetDescription(context_, "Serve DICOM modality worklists from a folder with Orthanc."); + OrthancPlugins::LogWarning("Sample worklist plugin is initializing"); + OrthancPluginSetDescription(c, "Serve DICOM modality worklists from a folder with Orthanc."); - OrthancPlugins::OrthancConfiguration configuration(context_); + OrthancPlugins::OrthancConfiguration configuration; OrthancPlugins::OrthancConfiguration worklists; configuration.GetSection(worklists, "Worklists"); @@ -229,12 +228,12 @@ { if (worklists.LookupStringValue(folder_, "Database")) { - OrthancPlugins::LogWarning(context_, "The database of worklists will be read from folder: " + folder_); - OrthancPluginRegisterWorklistCallback(context_, Callback); + OrthancPlugins::LogWarning("The database of worklists will be read from folder: " + folder_); + OrthancPluginRegisterWorklistCallback(OrthancPlugins::GetGlobalContext(), Callback); } else { - OrthancPlugins::LogError(context_, "The configuration option \"Worklists.Database\" must contain a path"); + OrthancPlugins::LogError("The configuration option \"Worklists.Database\" must contain a path"); return -1; } @@ -242,7 +241,7 @@ } else { - OrthancPlugins::LogWarning(context_, "Worklist server is disabled by the configuration file"); + OrthancPlugins::LogWarning("Worklist server is disabled by the configuration file"); } return 0; @@ -251,7 +250,7 @@ ORTHANC_PLUGINS_API void OrthancPluginFinalize() { - OrthancPluginLogWarning(context_, "Sample worklist plugin is finalizing"); + OrthancPlugins::LogWarning("Sample worklist plugin is finalizing"); }