changeset 2207:02cee9f4c147 dicom-sr

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 22 Apr 2025 14:03:14 +0200
parents efaf25d1f131
children b36f7b6eec39
files Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp
diffstat 1 files changed, 18 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp	Tue Apr 22 13:44:56 2025 +0200
+++ b/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp	Tue Apr 22 14:03:14 2025 +0200
@@ -1282,11 +1282,8 @@
     }
   }
 
-  IFramesCollection* GetSeriesFrames(FramesCollectionType& type,
-                                     const std::string& seriesInstanceUid) const
-  {
-    type = FramesCollectionType_None;
-
+  IFramesCollection* GetSeriesFrames(const std::string& seriesInstanceUid) const
+  {
     OrthancStone::SeriesMetadataLoader::Accessor accessor(*metadataLoader_, seriesInstanceUid);
     
     if (accessor.IsComplete())
@@ -1295,7 +1292,6 @@
       if (sr != structuredReports_.end())
       {
         assert(sr->second != NULL);
-        type = FramesCollectionType_DicomSR;
 
         try
         {
@@ -4597,8 +4593,7 @@
     {
       it->second->ClearPendingSeriesInstanceUid();
 
-      FramesCollectionType type;
-      std::unique_ptr<IFramesCollection> frames(GetResourcesLoader().GetSeriesFrames(type, seriesInstanceUid));
+      std::unique_ptr<IFramesCollection> frames(GetResourcesLoader().GetSeriesFrames(seriesInstanceUid));
 
       if (frames.get() != NULL)
       {
@@ -4904,20 +4899,27 @@
   {
     try
     {
-      FramesCollectionType type;
-      std::unique_ptr<IFramesCollection> frames(GetResourcesLoader().GetSeriesFrames(type, seriesInstanceUid));
+      std::unique_ptr<IFramesCollection> frames(GetResourcesLoader().GetSeriesFrames(seriesInstanceUid));
 
       if (frames.get() != NULL)
       {
-        GetViewport(canvas)->ClearPendingSeriesInstanceUid();
+        switch (frames->GetType())
+        {
+          case FramesCollectionType_None:
+            GetViewport(canvas)->ClearPendingSeriesInstanceUid();
+            break;
+
+          case FramesCollectionType_DicomSR:
+            GetViewport(canvas)->SetPendingSeriesInstanceUid(seriesInstanceUid);
+            break;
+
+          default:
+            throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
+        }
+
         GetViewport(canvas)->SetFrames(frames.release());
         return 1;
       }
-      else if (type == FramesCollectionType_DicomSR)
-      {
-        GetViewport(canvas)->SetPendingSeriesInstanceUid(seriesInstanceUid);
-        return 0;
-      }
       else
       {
         GetViewport(canvas)->ClearPendingSeriesInstanceUid();