Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package orthanc-dicomweb for 
openSUSE:Factory checked in at 2021-09-02 23:20:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/orthanc-dicomweb (Old)
 and      /work/SRC/openSUSE:Factory/.orthanc-dicomweb.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "orthanc-dicomweb"

Thu Sep  2 23:20:26 2021 rev:8 rq:915796 version:1.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/orthanc-dicomweb/orthanc-dicomweb.changes        
2021-05-11 23:04:03.284986592 +0200
+++ 
/work/SRC/openSUSE:Factory/.orthanc-dicomweb.new.1899/orthanc-dicomweb.changes  
    2021-09-02 23:20:50.408592779 +0200
@@ -1,0 +2,6 @@
+Wed Sep  1 07:40:10 UTC 2021 - Axel Braun <axel.br...@gmx.de>
+
+- Version 1.7 
+* Detection of windowing and rescale in ".../rendered" for Philips multiframe 
images
+
+-------------------------------------------------------------------

Old:
----
  OrthancDicomWeb-1.6.tar.gz

New:
----
  OrthancDicomWeb-1.7.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ orthanc-dicomweb.spec ++++++
--- /var/tmp/diff_new_pack.pZCOBl/_old  2021-09-02 23:20:51.088593626 +0200
+++ /var/tmp/diff_new_pack.pZCOBl/_new  2021-09-02 23:20:51.092593631 +0200
@@ -21,7 +21,7 @@
 Summary:        WebViewer plugin for Orthanc
 License:        AGPL-3.0-or-later
 Group:          Productivity/Graphics/Viewers
-Version:        1.6
+Version:        1.7
 Release:        0
 URL:            https://orthanc-server.com
 Source0:        
https://www.orthanc-server.com/downloads/get.php?path=/plugin-dicom-web/OrthancDicomWeb-%{version}.tar.gz

++++++ OrthancDicomWeb-1.6.tar.gz -> OrthancDicomWeb-1.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/OrthancDicomWeb-1.6/.hg_archival.txt 
new/OrthancDicomWeb-1.7/.hg_archival.txt
--- old/OrthancDicomWeb-1.6/.hg_archival.txt    2021-05-07 13:31:18.000000000 
+0200
+++ new/OrthancDicomWeb-1.7/.hg_archival.txt    2021-08-31 15:32:10.000000000 
+0200
@@ -1,6 +1,6 @@
 repo: d5f45924411123cfd02d035fd50b8e37536eadef
-node: 01bae1ba951d3c66e55aba6129bcba0ef825d081
-branch: OrthancDicomWeb-1.6
+node: f5b64f680bfbea760169e72602498b946c58c234
+branch: OrthancDicomWeb-1.7
 latesttag: null
-latesttagdistance: 462
-changessincelatesttag: 491
+latesttagdistance: 469
+changessincelatesttag: 498
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/OrthancDicomWeb-1.6/CMakeLists.txt 
new/OrthancDicomWeb-1.7/CMakeLists.txt
--- old/OrthancDicomWeb-1.6/CMakeLists.txt      2021-05-07 13:31:18.000000000 
+0200
+++ new/OrthancDicomWeb-1.7/CMakeLists.txt      2021-08-31 15:32:10.000000000 
+0200
@@ -21,13 +21,13 @@
 
 project(OrthancDicomWeb)
 
-set(ORTHANC_DICOM_WEB_VERSION "1.6")
+set(ORTHANC_DICOM_WEB_VERSION "1.7")
 
 if (ORTHANC_DICOM_WEB_VERSION STREQUAL "mainline")
   set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline")
   set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg")
 else()
-  set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.9.3")
+  set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.9.7")
   set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web")
 endif()
 
@@ -57,11 +57,20 @@
 # Download and setup the Orthanc framework
 
include(${CMAKE_SOURCE_DIR}/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake)
 
-include_directories(${ORTHANC_FRAMEWORK_ROOT})
-
 if (ORTHANC_FRAMEWORK_SOURCE STREQUAL "system")
-  link_libraries(${ORTHANC_FRAMEWORK_LIBRARIES})
+  if (ORTHANC_FRAMEWORK_USE_SHARED)
+    include(FindBoost)
+    find_package(Boost COMPONENTS regex thread)
+    
+    if (NOT Boost_FOUND)
+      message(FATAL_ERROR "Unable to locate Boost on this system")
+    endif()
+    
+    link_libraries(${Boost_LIBRARIES} jsoncpp)
+  endif()
 
+  link_libraries(${ORTHANC_FRAMEWORK_LIBRARIES})
+  
   set(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google 
Test")
   set(USE_GOOGLE_TEST_DEBIAN_PACKAGE OFF CACHE BOOL "Use the sources of Google 
Test shipped with libgtest-dev (Debian only)")
   mark_as_advanced(USE_GOOGLE_TEST_DEBIAN_PACKAGE)
@@ -77,6 +86,7 @@
   set(USE_BOOST_ICONV ON)
   
   
include(${ORTHANC_FRAMEWORK_ROOT}/../Resources/CMake/OrthancFrameworkConfiguration.cmake)
+  include_directories(${ORTHANC_FRAMEWORK_ROOT})
 endif()
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/OrthancDicomWeb-1.6/NEWS new/OrthancDicomWeb-1.7/NEWS
--- old/OrthancDicomWeb-1.6/NEWS        2021-05-07 13:31:18.000000000 +0200
+++ new/OrthancDicomWeb-1.7/NEWS        2021-08-31 15:32:10.000000000 +0200
@@ -2,6 +2,12 @@
 ===============================
 
 
+Version 1.7 (2021-08-31)
+========================
+
+* Detection of windowing and rescale in ".../rendered" for Philips multiframe 
images
+
+
 Version 1.6 (2021-05-07)
 ========================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/OrthancDicomWeb-1.6/Plugin/WadoRsRetrieveRendered.cpp 
new/OrthancDicomWeb-1.7/Plugin/WadoRsRetrieveRendered.cpp
--- old/OrthancDicomWeb-1.6/Plugin/WadoRsRetrieveRendered.cpp   2021-05-07 
13:31:18.000000000 +0200
+++ new/OrthancDicomWeb-1.7/Plugin/WadoRsRetrieveRendered.cpp   2021-08-31 
15:32:10.000000000 +0200
@@ -28,10 +28,68 @@
 #include <Logging.h>
 #include <Toolbox.h>
 
+#if ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 9, 7)
+#  include <SerializationToolbox.h>
+#else
+#  include <boost/lexical_cast.hpp>
+#endif
+
 #include <boost/algorithm/string/predicate.hpp>
 #include <boost/math/special_functions/round.hpp>
 
 
+static bool ParseFloat(float& target,
+                       const std::string& source)
+{
+#if ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 9, 7)
+  return Orthanc::SerializationToolbox::ParseFloat(target, source);
+
+#else
+  // Emulation for older versions of the Orthanc framework
+  std::string s = Orthanc::Toolbox::StripSpaces(source);
+  
+  if (s.empty())
+  {
+    return false;
+  }
+  else
+  {
+    try
+    {
+      target = boost::lexical_cast<float>(s);
+      return true;
+    }
+    catch (boost::bad_lexical_cast&)
+    {
+      return false;
+    }
+  }
+#endif
+}
+
+
+static bool ParseFirstFloat(float& target,
+                            const std::string& source)
+{
+#if ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 9, 7)
+  return Orthanc::SerializationToolbox::ParseFirstFloat(target, source);
+
+#else
+  // Emulation for older versions of the Orthanc framework
+  std::vector<std::string> tokens;
+  Orthanc::Toolbox::TokenizeString(tokens, source, '\\');
+  if (tokens.empty())
+  {
+    return false;
+  }
+  else
+  {
+    return ParseFloat(target, tokens[0]);
+  }
+#endif
+}
+
+
 namespace
 {
   enum WindowingMode
@@ -271,11 +329,6 @@
     }
 
 
-    bool HasCustomization() const
-    {
-      return (hasViewport_ || hasQuality_ || hasWindowing_);
-    }
-
     unsigned int GetTargetWidth(unsigned int sourceWidth) const
     {
       if (hasVW_)
@@ -347,11 +400,19 @@
       return quality_;
     }
 
-    bool IsWindowing() const
+    bool HasWindowing() const
     {
       return hasWindowing_;
     }
 
+    void SetWindow(float center,
+                   float width)
+    {
+      hasWindowing_ = true;
+      windowCenter_ = center;
+      windowWidth_ = width;
+    }
+
     float GetWindowCenter() const
     {
       return windowCenter_;
@@ -704,15 +765,68 @@
 }
 
 
+static bool ReadRescale(RenderingParameters& parameters,
+                        const Json::Value& tags)
+{
+  static const char* const RESCALE_INTERCEPT = "0028,1052";
+  static const char* const RESCALE_SLOPE = "0028,1053";
+
+  if (tags.type() == Json::objectValue &&
+      tags.isMember(RESCALE_SLOPE) &&
+      tags.isMember(RESCALE_INTERCEPT) &&
+      tags[RESCALE_SLOPE].type() == Json::stringValue &&
+      tags[RESCALE_INTERCEPT].type() == Json::stringValue)
+  {
+    float s, i;
+
+    if (ParseFloat(s, tags[RESCALE_SLOPE].asString()) &&
+        ParseFloat(i, tags[RESCALE_INTERCEPT].asString()))
+    {
+      parameters.SetRescaleSlope(s);
+      parameters.SetRescaleIntercept(i);
+      return true;
+    }
+  }
+
+  return false;
+}
+
+
+static bool ReadDefaultWindow(RenderingParameters& parameters,
+                              const Json::Value& tags)
+{
+  static const char* const WINDOW_CENTER = "0028,1050";
+  static const char* const WINDOW_WIDTH = "0028,1051";
+
+  if (tags.type() == Json::objectValue &&
+      tags.isMember(WINDOW_CENTER) &&
+      tags.isMember(WINDOW_WIDTH) &&
+      tags[WINDOW_CENTER].type() == Json::stringValue &&
+      tags[WINDOW_WIDTH].type() == Json::stringValue)
+  {
+    float wc, ww;
+
+    if (ParseFirstFloat(wc, tags[WINDOW_CENTER].asString()) &&
+        ParseFirstFloat(ww, tags[WINDOW_WIDTH].asString()))
+    {
+      parameters.SetWindow(wc, ww);
+      return true;
+    }
+  }
+
+  return false;
+}
+
 
 static void AnswerFrameRendered(OrthancPluginRestOutput* output,
                                 std::string instanceId,
                                 int frame,
                                 const OrthancPluginHttpRequest* request)
 {
-  static const char* const RESCALE_INTERCEPT = "0028,1052";
-  static const char* const RESCALE_SLOPE = "0028,1053";
   static const char* const PHOTOMETRIC_INTERPRETATION = "0028,0004";
+  static const char* const PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE = "5200,9230";
+  static const char* const PIXEL_VALUE_TRANSFORMATION_SEQUENCE = "0028,9145";
+  static const char* const FRAME_VOI_LUT_SEQUENCE = "0028,9132";
 
   Orthanc::MimeType mime = Orthanc::MimeType_Jpeg;  // This is the default in 
DICOMweb
       
@@ -744,142 +858,108 @@
   RenderingParameters parameters(request);
       
   OrthancPlugins::MemoryBuffer buffer;
-  bool badFrameError = false;
-
 
-  if (parameters.HasCustomization())
+  if (frame <= 0)
+  {
+    throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange,
+                                    "Inexistent frame index in this image: " + 
boost::lexical_cast<std::string>(frame));
+  }
+  else
   {
-    if (frame <= 0)
+    buffer.GetDicomInstance(instanceId);
+
+    Json::Value tags;
+    buffer.DicomToJson(tags, OrthancPluginDicomToJsonFormat_Short, 
OrthancPluginDicomToJsonFlags_None, 255);
+
+    const unsigned int f = static_cast<unsigned int>(frame - 1);
+    
+    if (ReadRescale(parameters, tags))
     {
-      badFrameError = true;
     }
-    else
+    else if (tags.isMember(PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE) &&
+             tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE].type() == 
Json::arrayValue &&
+             static_cast<Json::Value::ArrayIndex>(f) < 
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE].size() &&
+             tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f].type() == 
Json::objectValue &&
+             
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f].isMember(PIXEL_VALUE_TRANSFORMATION_SEQUENCE)
 &&
+             
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f][PIXEL_VALUE_TRANSFORMATION_SEQUENCE].type()
 == Json::arrayValue &&
+             
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f][PIXEL_VALUE_TRANSFORMATION_SEQUENCE].size()
 == 1)
     {
-      buffer.GetDicomInstance(instanceId);
+      ReadRescale(parameters, 
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f][PIXEL_VALUE_TRANSFORMATION_SEQUENCE][0]);
+    }
 
-      Json::Value tags;
-      buffer.DicomToJson(tags, OrthancPluginDicomToJsonFormat_Short, 
OrthancPluginDicomToJsonFlags_None, 255);
-          
-      if (tags.isMember(RESCALE_SLOPE) &&
-          tags[RESCALE_SLOPE].type() == Json::stringValue)
+    if (!parameters.HasWindowing())
+    {
+      if (ReadDefaultWindow(parameters, tags))
       {
-        try
-        {
-          parameters.SetRescaleSlope
-            (boost::lexical_cast<float>
-             (Orthanc::Toolbox::StripSpaces(tags[RESCALE_SLOPE].asString())));
-        }
-        catch (boost::bad_lexical_cast&)
-        {
-        }
       }
-
-      if (tags.isMember(RESCALE_INTERCEPT) &&
-          tags[RESCALE_INTERCEPT].type() == Json::stringValue)
+      else if (tags.isMember(PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE) &&
+               tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE].type() == 
Json::arrayValue &&
+               static_cast<Json::Value::ArrayIndex>(f) < 
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE].size() &&
+               tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f].type() == 
Json::objectValue &&
+               
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f].isMember(FRAME_VOI_LUT_SEQUENCE) 
&&
+               
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f][FRAME_VOI_LUT_SEQUENCE].type() == 
Json::arrayValue &&
+               
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f][FRAME_VOI_LUT_SEQUENCE].size() == 
1)
       {
-        try
-        {
-          parameters.SetRescaleIntercept
-            (boost::lexical_cast<float>
-             
(Orthanc::Toolbox::StripSpaces(tags[RESCALE_INTERCEPT].asString())));
-        }
-        catch (boost::bad_lexical_cast&)
-        {
-        }
+        ReadDefaultWindow(parameters, 
tags[PER_FRAME_FUNCTIONAL_GROUPS_SEQUENCE][f][FRAME_VOI_LUT_SEQUENCE][0]);
       }
+    }
 
-      OrthancPlugins::OrthancImage dicom;
-      dicom.DecodeDicomImage(buffer.GetData(), buffer.GetSize(), 
static_cast<unsigned int>(frame - 1));
+    OrthancPlugins::OrthancImage dicom;
+    dicom.DecodeDicomImage(buffer.GetData(), buffer.GetSize(), f);
 
-      Orthanc::PixelFormat targetFormat;
-      OrthancPluginPixelFormat sdkFormat;
-      if (dicom.GetPixelFormat() == OrthancPluginPixelFormat_RGB24)
-      {
-        targetFormat = Orthanc::PixelFormat_RGB24;
-        sdkFormat = OrthancPluginPixelFormat_RGB24;
-      }
-      else
-      {
-        targetFormat = Orthanc::PixelFormat_Grayscale8;
-        sdkFormat = OrthancPluginPixelFormat_Grayscale8;
-      }
+    Orthanc::PixelFormat targetFormat;
+    OrthancPluginPixelFormat sdkFormat;
+    if (dicom.GetPixelFormat() == OrthancPluginPixelFormat_RGB24)
+    {
+      targetFormat = Orthanc::PixelFormat_RGB24;
+      sdkFormat = OrthancPluginPixelFormat_RGB24;
+    }
+    else
+    {
+      targetFormat = Orthanc::PixelFormat_Grayscale8;
+      sdkFormat = OrthancPluginPixelFormat_Grayscale8;
+    }
 
-      Orthanc::ImageAccessor source;
-      source.AssignReadOnly(Convert(dicom.GetPixelFormat()),
-                            dicom.GetWidth(), dicom.GetHeight(), 
dicom.GetPitch(), dicom.GetBuffer());
+    Orthanc::ImageAccessor source;
+    source.AssignReadOnly(Convert(dicom.GetPixelFormat()),
+                          dicom.GetWidth(), dicom.GetHeight(), 
dicom.GetPitch(), dicom.GetBuffer());
           
-      Orthanc::Image target(targetFormat, 
parameters.GetTargetWidth(source.GetWidth()),
-                            parameters.GetTargetHeight(source.GetHeight()), 
false);
+    Orthanc::Image target(targetFormat, 
parameters.GetTargetWidth(source.GetWidth()),
+                          parameters.GetTargetHeight(source.GetHeight()), 
false);
 
-      // New in 1.3: Fix for MONOCHROME1 images
-      bool invert = false;
-      if (target.GetFormat() == Orthanc::PixelFormat_Grayscale8 &&
-          tags.isMember(PHOTOMETRIC_INTERPRETATION) &&
-          tags[PHOTOMETRIC_INTERPRETATION].type() == Json::stringValue)
-      {
-        std::string s = tags[PHOTOMETRIC_INTERPRETATION].asString();
-        Orthanc::Toolbox::StripSpaces(s);
-        if (s == "MONOCHROME1")
-        {
-          invert = true;
-        }
+    // New in 1.3: Fix for MONOCHROME1 images
+    bool invert = false;
+    if (target.GetFormat() == Orthanc::PixelFormat_Grayscale8 &&
+        tags.isMember(PHOTOMETRIC_INTERPRETATION) &&
+        tags[PHOTOMETRIC_INTERPRETATION].type() == Json::stringValue)
+    {
+      std::string s = tags[PHOTOMETRIC_INTERPRETATION].asString();
+      Orthanc::Toolbox::StripSpaces(s);
+      if (s == "MONOCHROME1")
+      {
+        invert = true;
       }
+    }
       
-      ApplyRendering(target, source, parameters, invert);
+    ApplyRendering(target, source, parameters, invert);
 
-      switch (mime)
-      {
-        case Orthanc::MimeType_Png:
-          
OrthancPluginCompressAndAnswerPngImage(OrthancPlugins::GetGlobalContext(), 
output, sdkFormat,
-                                                 target.GetWidth(), 
target.GetHeight(), target.GetPitch(), target.GetBuffer());
-          break;
+    switch (mime)
+    {
+      case Orthanc::MimeType_Png:
+        
OrthancPluginCompressAndAnswerPngImage(OrthancPlugins::GetGlobalContext(), 
output, sdkFormat,
+                                               target.GetWidth(), 
target.GetHeight(), target.GetPitch(), target.GetBuffer());
+        break;
               
-        case Orthanc::MimeType_Jpeg:
-          
OrthancPluginCompressAndAnswerJpegImage(OrthancPlugins::GetGlobalContext(), 
output, sdkFormat,
-                                                  target.GetWidth(), 
target.GetHeight(), target.GetPitch(), target.GetBuffer(),
-                                                  parameters.GetQuality());
-          break;
+      case Orthanc::MimeType_Jpeg:
+        
OrthancPluginCompressAndAnswerJpegImage(OrthancPlugins::GetGlobalContext(), 
output, sdkFormat,
+                                                target.GetWidth(), 
target.GetHeight(), target.GetPitch(), target.GetBuffer(),
+                                                parameters.GetQuality());
+        break;
 
-        default:
-          throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
-      }
-    }
-  }
-  else
-  {
-    // No customization of the rendering. Return the default
-    // preview of Orthanc.
-    std::map<std::string, std::string> headers;
-    headers["Accept"] = Orthanc::EnumerationToString(mime);
-
-    /**
-     * (1) In DICOMweb, the "frame" parameter is in the range [1..N],
-     * whereas Orthanc uses range [0..N-1], hence the "-1" below.
-     * 
-     * (2) We can use "/rendered" that was introduced in the REST API
-     * of Orthanc 1.6.0, as since release 1.2 of the DICOMweb plugin,
-     * the minimal SDK version is Orthanc 1.7.0 (in order to be able
-     * to use transcoding primitives). In releases <= 1.2, "/preview"
-     * was used, which caused one issue:
-     * https://groups.google.com/d/msg/orthanc-users/mKgr2QAKTCU/R7u4I1LvBAAJ
-     **/
-    if (buffer.RestApiGet("/instances/" + instanceId + "/frames/" +
-                          boost::lexical_cast<std::string>(frame - 1) + 
"/rendered", headers, false))
-    {
-      OrthancPluginAnswerBuffer(OrthancPlugins::GetGlobalContext(), output, 
buffer.GetData(),
-                                buffer.GetSize(), 
Orthanc::EnumerationToString(mime));
-    }
-    else
-    {
-      badFrameError = true;
+      default:
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
     }
   }
-
-  if (badFrameError)
-  {
-    throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange,
-                                    "Inexistent frame index in this image: " + 
boost::lexical_cast<std::string>(frame));
-  }
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/OrthancDicomWeb-1.6/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake 
new/OrthancDicomWeb-1.7/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake
--- 
old/OrthancDicomWeb-1.6/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake  
    2021-05-07 13:31:18.000000000 +0200
+++ 
new/OrthancDicomWeb-1.7/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake  
    2021-08-31 15:32:10.000000000 +0200
@@ -130,6 +130,14 @@
         set(ORTHANC_FRAMEWORK_MD5 "3ea66c09f64aca990016683b6375734e")
       elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.3")
         set(ORTHANC_FRAMEWORK_MD5 "9b86e6f00e03278293cd15643cc0233f")
+      elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.4")
+        set(ORTHANC_FRAMEWORK_MD5 "6d5ca4a73ac7d42445041ca79de1624d")
+      elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.5")
+        set(ORTHANC_FRAMEWORK_MD5 "10fc64de1254a095e5d3ed3931f0cfbb")
+      elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.6")
+        set(ORTHANC_FRAMEWORK_MD5 "4b5d05683d747c29b2860ad79d11e62e")
+      elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.7")
+        set(ORTHANC_FRAMEWORK_MD5 "c912bbb860d640d3ae3003b5c9698205")
 
       # Below this point are development snapshots that were used to
       # release some plugin, before an official release of the Orthanc

Reply via email to