comparison Framework/Loaders/DicomStructureSetLoader.cpp @ 1342:13573ff63eb6 broker

New StructuresUpdated message that is sent during individual structure set addition.
author Benjamin Golinvaux <bgo@osimis.io>
date Mon, 06 Apr 2020 08:42:40 +0200
parents 556b4bc19118
children 0d6a01ffa1dd
comparison
equal deleted inserted replaced
1341:d80a3e3cc800 1342:13573ff63eb6
27 27
28 #include <Core/Toolbox.h> 28 #include <Core/Toolbox.h>
29 29
30 #include <algorithm> 30 #include <algorithm>
31 31
32 #if 0
33 bool logbgo233 = false;
34 bool logbgo115 = false;
35 #endif
36
37 namespace OrthancStone 32 namespace OrthancStone
38 { 33 {
39 34
40 #if 0 35 #if 0
41 void DumpDicomMap(std::ostream& o, const Orthanc::DicomMap& dicomMap) 36 void DumpDicomMap(std::ostream& o, const Orthanc::DicomMap& dicomMap)
76 dicom.FromDicomAsJson(tags); 71 dicom.FromDicomAsJson(tags);
77 72
78 DicomStructureSetLoader& loader = GetLoader<DicomStructureSetLoader>(); 73 DicomStructureSetLoader& loader = GetLoader<DicomStructureSetLoader>();
79 74
80 loader.content_->AddReferencedSlice(dicom); 75 loader.content_->AddReferencedSlice(dicom);
81
82 loader.countProcessedInstances_ ++; 76 loader.countProcessedInstances_ ++;
83 assert(loader.countProcessedInstances_ <= loader.countReferencedInstances_); 77 assert(loader.countProcessedInstances_ <= loader.countReferencedInstances_);
78
79 loader.SetStructuresUpdated();
84 80
85 if (loader.countProcessedInstances_ == loader.countReferencedInstances_) 81 if (loader.countProcessedInstances_ == loader.countReferencedInstances_)
86 { 82 {
87 // All the referenced instances have been loaded, finalize the RT-STRUCT 83 // All the referenced instances have been loaded, finalize the RT-STRUCT
88 loader.content_->CheckReferencedSlices(); 84 loader.content_->CheckReferencedSlices();
159 { 155 {
160 } 156 }
161 157
162 virtual void Handle(const OrthancStone::OrthancRestApiCommand::SuccessMessage& message) 158 virtual void Handle(const OrthancStone::OrthancRestApiCommand::SuccessMessage& message)
163 { 159 {
164 #if 0
165 if (logbgo115)
166 LOG(TRACE) << "DicomStructureSetLoader::LoadStructure::Handle() (SUCCESS)";
167 #endif
168 DicomStructureSetLoader& loader = GetLoader<DicomStructureSetLoader>(); 160 DicomStructureSetLoader& loader = GetLoader<DicomStructureSetLoader>();
169 161
170 { 162 {
171 OrthancPlugins::FullOrthancDataset dicom(message.GetAnswer()); 163 OrthancPlugins::FullOrthancDataset dicom(message.GetAnswer());
172 loader.content_.reset(new OrthancStone::DicomStructureSet(dicom)); 164 loader.content_.reset(new OrthancStone::DicomStructureSet(dicom));
411 { 403 {
412 return new Slice(*content_, revision_, cuttingPlane, structureVisibility_); 404 return new Slice(*content_, revision_, cuttingPlane, structureVisibility_);
413 } 405 }
414 } 406 }
415 407
408 void DicomStructureSetLoader::SetStructuresUpdated()
409 {
410 BroadcastMessage(DicomStructureSetLoader::StructuresUpdated(*this));
411 }
412
416 void DicomStructureSetLoader::SetStructuresReady() 413 void DicomStructureSetLoader::SetStructuresReady()
417 { 414 {
418 ORTHANC_ASSERT(!structuresReady_); 415 ORTHANC_ASSERT(!structuresReady_);
419 structuresReady_ = true; 416 structuresReady_ = true;
420 BroadcastMessage(DicomStructureSetLoader::StructuresReady(*this)); 417 BroadcastMessage(DicomStructureSetLoader::StructuresReady(*this));