Mercurial > hg > orthanc-stone
diff Framework/Toolbox/OrthancSlicesLoader.cpp @ 421:f87f28624b96 cache-in-radiography
tentative to make SmartLoader and RadiographyScene work together (not really working)
author | am@osimis.io |
---|---|
date | Tue, 20 Nov 2018 16:35:29 +0100 |
parents | aee3d7941c9b |
children |
line wrap: on
line diff
--- a/Framework/Toolbox/OrthancSlicesLoader.cpp Mon Nov 19 12:45:37 2018 +0100 +++ b/Framework/Toolbox/OrthancSlicesLoader.cpp Tue Nov 20 16:35:29 2018 +0100 @@ -189,7 +189,7 @@ } - void OrthancSlicesLoader::SortAndFinalizeSlices() + void OrthancSlicesLoader::SortAndFinalizeSlices(const OrthancPlugins::FullOrthancDataset& dicomTags) { bool ok = false; @@ -211,6 +211,7 @@ { LOG(INFO) << "Loaded a series with " << slices_.GetSliceCount() << " slice(s)"; EmitMessage(SliceGeometryReadyMessage(*this)); + EmitMessage(SliceTagsReadyMessage(*this, dicomTags)); } else { @@ -236,6 +237,12 @@ const Json::Value& series = message.GetJson(); Json::Value::Members instances = series.getMemberNames(); + if (instances.size() < 1) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentItem); + } + OrthancPlugins::FullOrthancDataset firstInstanceDataSet(series[instances[0]]); + slices_.Reserve(instances.size()); for (size_t i = 0; i < instances.size(); i++) @@ -264,8 +271,8 @@ } } } - - SortAndFinalizeSlices(); + + SortAndFinalizeSlices(firstInstanceDataSet); } void OrthancSlicesLoader::ParseInstanceGeometry(const OrthancApiClient::JsonResponseReadyMessage& message) @@ -301,7 +308,7 @@ } } - SortAndFinalizeSlices(); + SortAndFinalizeSlices(dataset); } @@ -324,6 +331,7 @@ LOG(INFO) << "Loaded instance geometry " << instanceId; slices_.AddSlice(slice.release()); EmitMessage(SliceGeometryReadyMessage(*this)); + EmitMessage(SliceTagsReadyMessage(*this, dataset)); } else {