Echoscu 失败:数据字典丢失

Echoscu Failed: Data Dictionary Missing

我是 运行 Orthanc 服务器,使用 docker-compose 文件并尝试使用 TLS connection.More 连接到 DICOM 服务器 https://groups.google.com/g/orthanc-users/c/6gNCOVwTc6c 详细信息。 我从 github 下载了 dcmtk 3.6.6 (https://github.com/DCMTK/dcmtk) 的源代码。按照构建说明进行操作,并在我的 debian 10 系统上构建了 dcmtk 3.6.6。我使用 export PATH 命令将“dcmtk-3.6.6-install/usr/local/bin/”文件夹添加到 PATH。

之后,我尝试使用命令 echoscu -v -aet ORTHANCA localhost 4242 +tls orthanc-a-server-key.pem orthanc-a-server-crt.pem +cf trusted-crt.pem 连接到 docker 容器。 我收到以下错误日志:

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

我将“dcmtk-3.6.6-install/usr/local/share/dcmtk/”添加到 PATH 并使用 echo $PATH 检查它是否已正确添加并且在该路径中存在 dicom.dic 文件。它存在,但是我收到与上述相同的错误。

在 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

我在这里遗漏了什么或做错了什么?

未找到您的 DICOM 词典,这意味着 build/installation 中可能出现了错误。

有 2 种可能包括 DICOM 字典:

  • 编译进库(Windows下默认)
  • 安装它并将环境变量DCMDICTPATH指向它的位置(默认在Posix下)

来自文档:

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.

相关信息可以在dcmdata/docs/datadict.txt下的dcmtk源中找到,还有一个online version的文件

简而言之,对于 non-Windows 系统:

要将字典编译入库:

  • 使用 autoconf,使用选项 --enable-builtin-dict--disable-external-dict
  • 使用 CMake,使用 DCMTK_ENABLE_BUILTIN_DICTIONARY

要使用单独的词典:

  • 使用默认构建选项并确保使用 install-libs 选项;在这种情况下,dicom.dic 将安装到默认位置(在 <datadir> 下)并且应该可以找到;为此,如果需要,您应该调用“make install”并在“configure”期间指定安装路径(也称为“--prefix”)

  • 如果您想使用自己的词典,或者出于某种原因想将词典移到别处,您必须将 DCMDICTPATH 设置为该词典的位置,例如:

setenv DCMDICTPATH $HOME/dicom.dic

更新: 添加了 Jörg Riesmeier 评论中的说明。