简体   繁体   English

Echoscu 失败:缺少数据字典

[英]Echoscu Failed: Data Dictionary Missing

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 .我正在使用 docker-compose 文件运行 Orthanc 服务器,并尝试使用 TLS 连接连接到 DICOM 服务器。这里有更多详细信息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 ).我从 github 下载了 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.按照构建说明在我的 debian 10 系统上构建 dcmtk 3.6.6。 I added the "dcmtk-3.6.6-install/usr/local/bin/" folder to PATH using export PATH command.我使用 export PATH 命令将“dcmtk-3.6.6-install/usr/local/bin/”文件夹添加到 PATH。

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 .之后,我尝试使用命令echoscu -v -aet ORTHANCA localhost 4242 +tls orthanc-a-server-key.pem orthanc-a-server-crt.pem +cf trusted-crt.pem连接到 docker 容器。 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.我将“dcmtk-3.6.6-install/usr/local/share/dcmtk/”添加到 PATH 并使用echo $PATH检查它是否已正确添加,并且该路径中存在 dicom.dic 文件。 Its present however I am getting the same error as above.它存在但是我得到与上面相同的错误。

In the docker terminal logs I get the following messages for the same在 docker 终端日志中,我收到相同的以下消息

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?我在这里错过了什么或做错了什么?

You DICOM dictionary is not found, meaning that probably something in the build/installation went wrong.找不到您的 DICOM 字典,这意味着构建/安装中可能出现了问题。

There are 2 possibilities to include the DICOM dictionary:包含 DICOM 字典有两种可能性:

  • compile it into the library (default under Windows)编译到库中(Windows下默认)
  • install it and point the environment variable DCMDICTPATH to its location (default under Posix)安装它并将环境变量DCMDICTPATH指向它的位置(默认在 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.相关信息可以在dcmdata/docs/datadict.txt下的 dcmtk 源中找到,该文件也有在线版本

In short, for non-Windows systems:简而言之,对于非 Windows 系统:

To compile the dictionary into the library:要将字典编译到库中:

  • with autoconf, use the options --enable-builtin-dict and --disable-external-dict使用 autoconf,使用选项--enable-builtin-dict--disable-external-dict
  • with CMake, use DCMTK_ENABLE_BUILTIN_DICTIONARY对于 CMake,使用DCMTK_ENABLE_BUILTIN_DICTIONARY

To use the separate dictionary:要使用单独的字典:

  • use the default build options and make sure that use the install-libs option;使用默认构建选项并确保使用install-libs选项; in this case dicom.dic will be installed into the default location (under ) and should be found在这种情况下dicom.dic将安装到默认位置(在 下)并且应该可以找到

  • 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, eg:如果您想使用自己的字典,或者出于某种原因想要将字典移到其他地方,则必须将DCMDICTPATH设置为该字典的位置,例如:

setenv DCMDICTPATH $HOME/dicom.dic

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM