Echoscu Failed: Data Dictionary Missing

686 Views Asked by At

I am running Orthanc Server using docker-compose file and attempting to connect to DICOM Server using TLS connection.More details here https://groups.google.com/g/orthanc-users/c/6gNCOVwTc6c. I downloaded the source code from github for dcmtk 3.6.6 (https://github.com/DCMTK/dcmtk). Followed the instruction for build and built dcmtk 3.6.6 on my debian 10 system. I added the "dcmtk-3.6.6-install/usr/local/bin/" folder to PATH using export PATH command.

After that I attempted to connect to the docker container using the command echoscu -v -aet ORTHANCA localhost 4242 +tls orthanc-a-server-key.pem orthanc-a-server-crt.pem +cf trusted-crt.pem. I received the following error log:

E: DcmDataDictionary: Cannot open file: /usr/local/share/dcmtk/dicom.dic
W: no data dictionary loaded, check environment variable: DCMDICTPATH
I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: Sending Echo Request (MsgID 1)
E: Echo Failed: 0006:0213 Data dictionary missing
E: Echo SCU Failed: 0006:0213 Data dictionary missing
I: Aborting Association

I added "dcmtk-3.6.6-install/usr/local/share/dcmtk/" to PATH and checked using echo $PATH that its been added correctly and in that path dicom.dic file is present. Its present however I am getting the same error as above.

In the docker terminal logs I get the following messages for the same

orthanc-a-server_1  | I0123 16:14:23.498902 CommandDispatcher.cpp:332] (dicom) Association Received from AET ORTHANCA on IP 192.168.7.1
orthanc-a-server_1  | I0123 16:14:23.499024 main.cpp:318] Incoming connection from AET ORTHANCA on IP 192.168.7.1, calling AET ANY-SCP
orthanc-a-server_1  | I0123 16:14:23.499142 CommandDispatcher.cpp:663] (dicom) Association Acknowledged (Max Send PDV: 16372) to AET ORTHANCA on IP 192.168.7.1
orthanc-a-server_1  | I0123 16:14:23.499831 CommandDispatcher.cpp:917] (dicom) Finishing association with AET ORTHANCA on IP 192.168.7.1: Peer aborted Association (or never connected)
orthanc-a-server_1  | I0123 16:14:23.499917 CommandDispatcher.cpp:930] (dicom) Association Aborted with AET ORTHANCA on IP 192.168.7.1

What am I missing here or doing wrong?

1

There are 1 best solutions below

0
On BEST ANSWER

Your DICOM dictionary is not found, meaning that probably something in the build/installation went wrong.

There are 2 possibilities to include the DICOM dictionary:

  • compile it into the library (default under Windows)
  • install it and point the environment variable DCMDICTPATH to its location (default under Posix)

From the documentation:

The built-in approach offers the advantage that a binary will not have to load any information from a separate file which may get lost or or used in an outdated version. Loading the dictionary content from a separate file, however, has the advantage that application programs need not be recompiled if additions or corrections are made to the data dictionary.

The related information can be found in the dcmtk sources under dcmdata/docs/datadict.txt, there is also an online version of the file.

In short, for non-Windows systems:

To compile the dictionary into the library:

  • with autoconf, use the options --enable-builtin-dict and --disable-external-dict
  • with CMake, use DCMTK_ENABLE_BUILTIN_DICTIONARY

To use the separate dictionary:

  • use the default build options and make sure that use the install-libs option; in this case dicom.dic will be installed into the default location (under <datadir>) and should be found; for this, you should call "make install" and specify the installation path during "configure" (aka as "--prefix") if needed

  • if you want to use your own dictionary, or for some reason want to move the dictionary elsewhere, you have to set DCMDICTPATH to the location of that dictionary, e.g.:

setenv DCMDICTPATH $HOME/dicom.dic

Update: Added instructions from comment by Jörg Riesmeier.