comparison RenderingPlugin/Sources/Plugin.cpp @ 1916:bd527bbc34df

cppcheck
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sun, 20 Mar 2022 18:23:39 +0100
parents 14c8f339d480
children a601b8abc1cb
comparison
equal deleted inserted replaced
1915:0d1235ca4abc 1916:bd527bbc34df
38 #include <Toolbox.h> 38 #include <Toolbox.h>
39 39
40 #include <boost/math/constants/constants.hpp> 40 #include <boost/math/constants/constants.hpp>
41 41
42 42
43 static const char* const INSTANCES = "Instances";
44 static const char* const RT_STRUCT_IOD = "1.2.840.10008.5.1.4.1.1.481.3";
45 static const char* const SOP_CLASS_UID = "0008,0016";
46 static const char* const STRUCTURES = "Structures";
47
48
43 class DicomStructureCache : public boost::noncopyable 49 class DicomStructureCache : public boost::noncopyable
44 { 50 {
45 private: 51 private:
46 boost::mutex mutex_; 52 boost::mutex mutex_;
47 std::string instanceId_; 53 std::string instanceId_;
526 } 532 }
527 533
528 534
529 static bool IsRtStruct(const std::string& instanceId) 535 static bool IsRtStruct(const std::string& instanceId)
530 { 536 {
531 static const char* SOP_CLASS_UID = "0008,0016";
532 static const char* RT_STRUCT_IOD = "1.2.840.10008.5.1.4.1.1.481.3";
533
534 std::string s; 537 std::string s;
535 if (OrthancPlugins::RestApiGetString(s, "/instances/" + instanceId + "/content/" + SOP_CLASS_UID, false) && 538 if (OrthancPlugins::RestApiGetString(s, "/instances/" + instanceId + "/content/" + SOP_CLASS_UID, false) &&
536 !s.empty()) 539 !s.empty())
537 { 540 {
538 if (s[s.size() - 1] == '\0') // Deal with DICOM padding 541 if (s[s.size() - 1] == '\0') // Deal with DICOM padding
554 const OrthancPluginHttpRequest* request) 557 const OrthancPluginHttpRequest* request)
555 { 558 {
556 // This is a quick version of "/tools/find" on "SOPClassUID" (the 559 // This is a quick version of "/tools/find" on "SOPClassUID" (the
557 // latter would load all the DICOM files from disk) 560 // latter would load all the DICOM files from disk)
558 561
559 static const char* INSTANCES = "Instances";
560
561 Json::Value series; 562 Json::Value series;
562 OrthancPlugins::RestApiGet(series, "/series?expand", false); 563 OrthancPlugins::RestApiGet(series, "/series?expand", false);
563 564
564 if (series.type() != Json::arrayValue) 565 if (series.type() != Json::arrayValue)
565 { 566 {
604 605
605 static void GetRtStruct(OrthancPluginRestOutput* output, 606 static void GetRtStruct(OrthancPluginRestOutput* output,
606 const char* url, 607 const char* url,
607 const OrthancPluginHttpRequest* request) 608 const OrthancPluginHttpRequest* request)
608 { 609 {
609 static const char* STRUCTURES = "Structures";
610 static const char* INSTANCES = "Instances";
611
612 DicomStructureCache::Accessor accessor(DicomStructureCache::GetSingleton(), request->groups[0]); 610 DicomStructureCache::Accessor accessor(DicomStructureCache::GetSingleton(), request->groups[0]);
613 611
614 if (!accessor.IsValid()) 612 if (!accessor.IsValid())
615 { 613 {
616 throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentItem); 614 throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentItem);