diff OrthancStone/Sources/Loaders/DicomSource.cpp @ 1725:c8d0ffb3047d

DicomSource::IsSameSource()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 01 Dec 2020 17:43:31 +0100
parents 8563ea5d8ae4
children ef2f56c0311c
line wrap: on
line diff
--- a/OrthancStone/Sources/Loaders/DicomSource.cpp	Tue Dec 01 17:07:32 2020 +0100
+++ b/OrthancStone/Sources/Loaders/DicomSource.cpp	Tue Dec 01 17:43:31 2020 +0100
@@ -68,6 +68,47 @@
   }
 
 
+  bool DicomSource::IsSameSource(const DicomSource& other) const
+  {
+    if (type_ != other.type_)
+    {
+      return false;
+    }
+    else
+    {
+      switch (type_)
+      {
+        case DicomSourceType_Orthanc:
+          return (webService_.GetUrl() == other.webService_.GetUrl() &&
+                  webService_.GetUsername() == other.webService_.GetUsername() &&
+                  webService_.GetHttpHeaders() == other.webService_.GetHttpHeaders() &&
+                  hasOrthancWebViewer1_ == other.hasOrthancWebViewer1_ &&
+                  hasOrthancAdvancedPreview_ == other.hasOrthancAdvancedPreview_);
+          
+        case DicomSourceType_DicomWeb:
+          return (webService_.GetUrl() == other.webService_.GetUrl() &&
+                  webService_.GetUsername() == other.webService_.GetUsername() &&
+                  webService_.GetHttpHeaders() == other.webService_.GetHttpHeaders() &&
+                  hasDicomWebRendered_ == other.hasDicomWebRendered_);
+          
+        case DicomSourceType_DicomWebThroughOrthanc:
+          return (webService_.GetUrl() == other.webService_.GetUrl() &&
+                  webService_.GetUsername() == other.webService_.GetUsername() &&
+                  webService_.GetHttpHeaders() == other.webService_.GetHttpHeaders() &&
+                  orthancDicomWebRoot_ == other.orthancDicomWebRoot_ &&
+                  serverName_ == other.serverName_ &&
+                  hasDicomWebRendered_ == other.hasDicomWebRendered_);
+          
+        case DicomSourceType_DicomDir:
+          return true;
+          
+        default:
+          throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
+      }
+    }
+  }
+
+
   void DicomSource::SetOrthancSource()
   {
     Orthanc::WebServiceParameters parameters;