diff Framework/Loaders/SeriesThumbnailsLoader.cpp @ 1476:4db187d29731

renamed SeriesMetadataLoader::SeriesLoadedMessage to SuccessMessage
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 17 Jun 2020 18:21:26 +0200
parents 9cbc6d21ae89
children 121d01aa328e
line wrap: on
line diff
--- a/Framework/Loaders/SeriesThumbnailsLoader.cpp	Tue Jun 16 10:21:43 2020 +0200
+++ b/Framework/Loaders/SeriesThumbnailsLoader.cpp	Wed Jun 17 18:21:26 2020 +0200
@@ -279,12 +279,16 @@
     virtual void HandleError()
     {
       // The DICOMweb wasn't able to generate a thumbnail, try to
-      // retrieve the SopClassUID tag using a call to "/metadata"
+      // retrieve the SopClassUID tag using QIDO-RS
 
+      std::map<std::string, std::string> arguments, headers;
+      arguments["0020000D"] = GetStudyInstanceUid();
+      arguments["0020000E"] = GetSeriesInstanceUid();
+      arguments["includefield"] = "00080016";
+      
       std::unique_ptr<IOracleCommand> command(
         GetSource().CreateDicomWebCommand(
-          "/studies/" + GetStudyInstanceUid() + "/series/" + GetSeriesInstanceUid() + "/metadata",
-          new DicomWebSopClassHandler(
+          "/instances", arguments, headers, new DicomWebSopClassHandler(
             GetLoader(), GetSource(), GetStudyInstanceUid(), GetSeriesInstanceUid())));
       GetLoader()->Schedule(command.release());
     }
@@ -548,6 +552,11 @@
                                                      const std::string& studyInstanceUid,
                                                      const std::string& seriesInstanceUid)
   {
+    if (IsScheduledSeries(seriesInstanceUid))
+    {
+      return;
+    }
+    
     if (source.IsDicomWeb())
     {
       if (!source.HasDicomWebRendered())
@@ -574,6 +583,8 @@
           uri, arguments, headers, new DicomWebThumbnailHandler(
             shared_from_this(), source, studyInstanceUid, seriesInstanceUid)));
       Schedule(command.release());
+
+      scheduledSeries_.insert(seriesInstanceUid);
     }
     else if (source.IsOrthanc())
     {
@@ -585,6 +596,8 @@
       command->AcquirePayload(new SelectOrthancInstanceHandler(
                                 shared_from_this(), source, studyInstanceUid, seriesInstanceUid));
       Schedule(command.release());
+
+      scheduledSeries_.insert(seriesInstanceUid);
     }
     else
     {