0

我正在使用 docker-compose 文件运行 Orthanc 服务器,并尝试使用 TLS 连接连接到 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。

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

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

我在这里错过了什么或做错了什么?

4

1 回答 1

1

找不到您的 DICOM 字典,这意味着构建/安装中可能出现了问题。

包含 DICOM 字典有两种可能性:

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

从文档中:

内置方法的优点是二进制文件不必从单独的文件中加载任何可能丢失或在过时版本中使用的信息。然而,从单独的文件加载字典内容的优点是,如果对数据字典进行了添加或更正,则无需重新编译应用程序。

相关信息可以在 dcmtk 源码中找到dcmdata/docs/datadict.txt,也有该文件的在线版本

简而言之,对于非 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 评论中的说明。

于 2022-01-25T16:24:27.290 回答