diff OrthancFramework/Sources/DicomNetworking/DicomAssociation.cpp @ 4463:522e13a60cfc

"LocalAet" in "DicomModalities" to overwrite global "DicomAet" for SCU on a per-modality basis
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 20 Jan 2021 17:36:23 +0100
parents f4dbdb2dcba6
children c494ee5d0101
line wrap: on
line diff
--- a/OrthancFramework/Sources/DicomNetworking/DicomAssociation.cpp	Wed Jan 20 17:02:10 2021 +0100
+++ b/OrthancFramework/Sources/DicomNetworking/DicomAssociation.cpp	Wed Jan 20 17:36:23 2021 +0100
@@ -265,9 +265,15 @@
                              "No presentation context was proposed");
     }
 
+    std::string localAet = parameters.GetLocalApplicationEntityTitle();
+    if (parameters.GetRemoteModality().HasLocalAet())
+    {
+      localAet = parameters.GetRemoteModality().GetLocalAet();
+    }
+
     CLOG(INFO, DICOM) << "Opening a DICOM SCU connection "
                       << (parameters.GetRemoteModality().IsDicomTlsEnabled() ? "using DICOM TLS" : "without DICOM TLS")
-                      << " from AET \"" << parameters.GetLocalApplicationEntityTitle() 
+                      << " from AET \"" << localAet
                       << "\" to AET \"" << parameters.GetRemoteModality().GetApplicationEntityTitle()
                       << "\" on host " << parameters.GetRemoteModality().GetHost()
                       << ":" << parameters.GetRemoteModality().GetPortNumber() 
@@ -298,7 +304,7 @@
 
     // Set this application's title and the called application's title in the params
     CheckConnecting(parameters, ASC_setAPTitles(
-                      params_, parameters.GetLocalApplicationEntityTitle().c_str(),
+                      params_, localAet.c_str(),
                       parameters.GetRemoteModality().GetApplicationEntityTitle().c_str(), NULL));
 
     // Set the network addresses of the local and remote entities