comparison Framework/Toolbox/DicomStructureSet.cpp @ 792:4fe4b221a31f

deprecating MessagingToolbox
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 28 May 2019 08:49:49 +0200
parents 9f68155c75b0
children 04f518ebd132
comparison
equal deleted inserted replaced
791:907189734acd 792:4fe4b221a31f
20 20
21 21
22 #include "DicomStructureSet.h" 22 #include "DicomStructureSet.h"
23 23
24 #include "../Toolbox/GeometryToolbox.h" 24 #include "../Toolbox/GeometryToolbox.h"
25 #include "../Toolbox/MessagingToolbox.h"
26 25
27 #include <Core/Logging.h> 26 #include <Core/Logging.h>
28 #include <Core/OrthancException.h> 27 #include <Core/OrthancException.h>
29 #include <Plugins/Samples/Common/FullOrthancDataset.h> 28 #include <Plugins/Samples/Common/FullOrthancDataset.h>
30 #include <Plugins/Samples/Common/DicomDatasetReader.h> 29 #include <Plugins/Samples/Common/DicomDatasetReader.h>
676 return referencedSlices_.begin()->second.geometry_.GetNormal(); 675 return referencedSlices_.begin()->second.geometry_.GetNormal();
677 } 676 }
678 } 677 }
679 678
680 679
681 DicomStructureSet* DicomStructureSet::SynchronousLoad(OrthancPlugins::IOrthancConnection& orthanc,
682 const std::string& instanceId)
683 {
684 const std::string uri = "/instances/" + instanceId + "/tags?ignore-length=3006-0050";
685 OrthancPlugins::FullOrthancDataset dataset(orthanc, uri);
686
687 std::auto_ptr<DicomStructureSet> result(new DicomStructureSet(dataset));
688
689 std::set<std::string> instances;
690 result->GetReferencedInstances(instances);
691
692 for (std::set<std::string>::const_iterator it = instances.begin();
693 it != instances.end(); ++it)
694 {
695 Json::Value lookup;
696 MessagingToolbox::RestApiPost(lookup, orthanc, "/tools/lookup", *it);
697
698 if (lookup.type() != Json::arrayValue ||
699 lookup.size() != 1 ||
700 !lookup[0].isMember("Type") ||
701 !lookup[0].isMember("Path") ||
702 lookup[0]["Type"].type() != Json::stringValue ||
703 lookup[0]["ID"].type() != Json::stringValue ||
704 lookup[0]["Type"].asString() != "Instance")
705 {
706 throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource);
707 }
708
709 OrthancPlugins::FullOrthancDataset slice
710 (orthanc, "/instances/" + lookup[0]["ID"].asString() + "/tags");
711 Orthanc::DicomMap m;
712 MessagingToolbox::ConvertDataset(m, slice);
713 result->AddReferencedSlice(m);
714 }
715
716 result->CheckReferencedSlices();
717
718 return result.release();
719 }
720
721
722 bool DicomStructureSet::ProjectStructure(std::vector< std::vector<PolygonPoint> >& polygons, 680 bool DicomStructureSet::ProjectStructure(std::vector< std::vector<PolygonPoint> >& polygons,
723 Structure& structure, 681 Structure& structure,
724 const CoordinateSystem3D& slice) 682 const CoordinateSystem3D& slice)
725 { 683 {
726 polygons.clear(); 684 polygons.clear();