Mercurial > hg > orthanc
diff OrthancServer/Sources/OrthancConfiguration.cpp @ 4604:2c702cfae274 db-changes
New option "DatabaseServerIdentifier" to identify the server among a pool of Orthanc servers
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 30 Mar 2021 10:39:59 +0200 |
parents | 8f9090b137f1 |
children | f75c63aa9de0 |
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancConfiguration.cpp Wed Mar 24 15:30:06 2021 +0100 +++ b/OrthancServer/Sources/OrthancConfiguration.cpp Tue Mar 30 10:39:59 2021 +0200 @@ -1014,6 +1014,51 @@ } + std::string OrthancConfiguration::GetDatabaseServerIdentifier() const + { + std::string id; + + if (LookupStringParameter(id, "DatabaseServerIdentifier")) + { + return id; + } + else + { + std::set<std::string> items; + + { + std::set<std::string> mac; + SystemToolbox::GetMacAddresses(mac); + + for (std::set<std::string>::const_iterator it = mac.begin(); it != mac.end(); ++it) + { + items.insert("mac=" + *it); + } + } + + items.insert("aet=" + GetStringParameter("DicomAet", "ORTHANC")); + items.insert("dicom-port=" + boost::lexical_cast<std::string>(GetUnsignedIntegerParameter("DicomPort", 4242))); + items.insert("http-port=" + boost::lexical_cast<std::string>(GetUnsignedIntegerParameter("HttpPort", 8042))); + + for (std::set<std::string>::const_iterator it = items.begin(); it != items.end(); ++it) + { + if (id.empty()) + { + id = *it; + } + else + { + id += ("|" + *it); + } + } + + std::string hash; + Toolbox::ComputeSHA1(hash, id); + return hash; + } + } + + void OrthancConfiguration::DefaultExtractDicomSummary(DicomMap& target, const ParsedDicomFile& dicom) {