Mercurial > hg > orthanc
diff OrthancServer/OrthancInitialization.cpp @ 617:a24b0161b171 find-move-scp
lookup using aet
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 25 Oct 2013 11:28:02 +0200 |
parents | 60d90e48e809 |
children | 08eca5d86aad |
line wrap: on
line diff
--- a/OrthancServer/OrthancInitialization.cpp Fri Oct 25 11:06:10 2013 +0200 +++ b/OrthancServer/OrthancInitialization.cpp Fri Oct 25 11:28:02 2013 +0200 @@ -227,11 +227,11 @@ - void GetDicomModality(const std::string& name, - std::string& aet, - std::string& address, - int& port, - ModalityManufacturer& manufacturer) + void GetDicomModalityUsingSymbolicName(const std::string& name, + std::string& aet, + std::string& address, + int& port, + ModalityManufacturer& manufacturer) { boost::mutex::scoped_lock lock(globalMutex_); @@ -472,7 +472,7 @@ std::string aet, address; int port; ModalityManufacturer manufacturer; - GetDicomModality(name, aet, address, port, manufacturer); + GetDicomModalityUsingSymbolicName(name, aet, address, port, manufacturer); LOG(WARNING) << "Connecting to remote DICOM modality: AET=" << aet << ", address=" << address << ", port=" << port; @@ -485,29 +485,26 @@ } - void ConnectToModalityUsingAETitle(DicomUserConnection& connection, - const std::string& aet) + bool LookupDicomModalityUsingAETitle(const std::string& aet, + std::string& symbolicName, + std::string& address, + int& port, + ModalityManufacturer& manufacturer) { std::set<std::string> modalities; GetListOfDicomModalities(modalities); - std::string address; - int port; - ModalityManufacturer manufacturer; - bool found = false; - for (std::set<std::string>::const_iterator it = modalities.begin(); it != modalities.end(); it++) { try { std::string thisAet; - GetDicomModality(*it, thisAet, address, port, manufacturer); + GetDicomModalityUsingSymbolicName(*it, thisAet, address, port, manufacturer); if (aet == thisAet) { - found = true; - break; + return true; } } catch (OrthancException&) @@ -515,7 +512,28 @@ } } - if (!found) + return false; + } + + + bool IsKnownAETitle(const std::string& aet) + { + std::string symbolicName, address; + int port; + ModalityManufacturer manufacturer; + + return LookupDicomModalityUsingAETitle(aet, symbolicName, address, port, manufacturer); + } + + + void ConnectToModalityUsingAETitle(DicomUserConnection& connection, + const std::string& aet) + { + std::string symbolicName, address; + int port; + ModalityManufacturer manufacturer; + + if (!LookupDicomModalityUsingAETitle(aet, symbolicName, address, port, manufacturer)) { throw OrthancException("Unknown modality: " + aet); }