Orthanc执行C-MOVE返回0xC000(UnableToProcess)的触发条件排查
问题背景
我使用Docker部署Orthanc作为PACS,DCMTK的movescu作为客户端,执行C-MOVE操作时遇到失败:
Orthanc配置
{ "DicomModalities": { "ORTHANC_STORE": [ "ORTHANC_STORE", "host.docker.internal", 4244 ] } }
接收端命令
storescp -v 4244 --aetitle ORTHANC_STORE
C-MOVE命令
movescu -v \ -aet NADIA_CLIENT \ -aec NADIA_PACS \ -aem ORTHANC_STORE \ 127.0.0.1 4242 \ -S \ -k 0008,0052=STUDY \ -k 0020,000D=<StudyUID>
执行结果
Failed: UnableToProcess (0xC000)
调试输出
Completed Suboperations: 0 Failed Suboperations: 0
执行移动操作期间,storescp未收到任何入站C-STORE关联。
核心问题
Orthanc中哪些条件会导致C-MOVE在启动任何C-STORE子操作前返回0xC000(UnableToProcess)?
可能的触发条件
- 目标模态配置不匹配:Orthanc的
DicomModalities里配置的AE标题、主机地址或端口与接收端不一致。比如ORTHANC_STORE的AE标题是否和storescp的--aetitle完全一致;host.docker.internal在Orthanc容器内是否能正常解析并访问到宿主机4244端口,若Docker用默认bridge网络,可能需要替换为宿主机实际IP。 - 客户端AE未被授权:如果Orthanc启用了DICOM授权机制(如
DicomAet或DicomAuthorization相关配置),客户端AENADIA_CLIENT不在允许的列表中,Orthanc会直接拒绝处理请求。 - 指定的StudyUID不存在:如果
<StudyUID>对应的研究数据未存储在Orthanc中,Orthanc因找不到需移动的资源,会直接返回无法处理状态。 - Orthanc无法连接目标模态:Orthanc尝试连接
ORTHANC_STORE时失败(如端口不通、接收端未启动、防火墙拦截),无法建立C-STORE关联,会提前终止C-MOVE操作并返回0xC000。 - DICOM请求参数错误:C-MOVE请求中的参数不符合要求,比如
0008,0052指定的检索级别(此处为STUDY)与其他查询键不匹配,或缺少必要DICOM标签,导致Orthanc无法解析请求。 - Orthanc内部异常:内存不足、数据库连接异常等内部资源问题,导致Orthanc无法处理请求,这种情况通常会在Orthanc日志中有对应记录。
内容的提问来源于stack exchange,提问作者Lamini Wahatin
相关产品推荐
相关产品推荐

