Mercurial > hg > orthanc-stone
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;