bool Configuration::LookupDicomModalityUsingAETitle(RemoteModalityParameters& modality, const std::string& aet) { std::set<std::string> modalities; GetListOfDicomModalities(modalities); for (std::set<std::string>::const_iterator it = modalities.begin(); it != modalities.end(); ++it) { try { GetDicomModalityUsingSymbolicName(modality, *it); if (IsSameAETitle(aet, modality.GetApplicationEntityTitle())) { return true; } } catch (OrthancException&) { } } return false; }
ReusableDicomUserConnection::Locker::Locker(ReusableDicomUserConnection& that, const RemoteModalityParameters& remote) : ::Orthanc::Locker(that) { that.Open(remote.GetApplicationEntityTitle(), remote.GetHost(), remote.GetPort(), remote.GetManufacturer()); connection_ = that.connection_; }
void ReusableDicomUserConnection::Open(const std::string& localAet, const RemoteModalityParameters& remote) { if (connection_ != NULL && connection_->GetLocalApplicationEntityTitle() == localAet && connection_->GetRemoteApplicationEntityTitle() == remote.GetApplicationEntityTitle() && connection_->GetRemoteHost() == remote.GetHost() && connection_->GetRemotePort() == remote.GetPort() && connection_->GetRemoteManufacturer() == remote.GetManufacturer()) { // The current connection can be reused LOG(INFO) << "Reusing the previous SCU connection"; return; } Close(); connection_ = new DicomUserConnection(); connection_->SetLocalApplicationEntityTitle(localAet); connection_->SetRemoteModality(remote); connection_->Open(); }