Mercurial > hg > orthanc-stone
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)); |