dcm4che

关注
义项:医学影像开源工具集
dcm4che

dcm4che是面向医疗健康信息技术的开源应用程序与工具集,以Java语言开发,核心是DICOM标准的实现,用于医学影像数据的读写、转换与网络传输[1]。除工具包外,项目还包含名为dcm4chee的影像管理与影像归档应用,对应IHE定义的Image Manager与Image Archive角色,可提供存储、检索与工作流服务[2]。该工具集被大量商业与开源项目嵌入使用,是医学影像软件生态中被广泛采用的基础组件之一[1]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

dcm4che是一组面向医疗机构的开源应用与实用工具,用Java编写,以便兼顾运行性能与跨平台部署能力,早期版本支持在JDK 1.4及以上环境运行[3]。项目核心是DICOM标准的实现,即医学数字成像与通信标准,用于处理、存储、打印和传输医学影像相关信息[4]。

与单纯的编解码库不同,dcm4che同时提供一套命令行工具和一组可被其他程序引用的程序库,因此既可以直接使用,也可以作为第三方DICOM应用的底层组件[5]。项目还包含dcm4chee子项目,其中多出的字母e表示enterprise,即面向机构级使用[6]。

原理

dcm4che以模块化方式组织,按功能划分为多个构件,包括核心数据结构与解析模块dcm4che-core、网络通信模块dcm4che-net、影像处理模块dcm4che-image与dcm4che-imageio、HL7消息处理模块dcm4che-hl7、配置管理模块dcm4che-conf以及安全审计模块dcm4che-audit等[7]。配置数据可以存入LDAP目录服务,符合DICOM标准第15部分附录H定义的应用程序配置管理规范[5]。

在网络层面,该工具集实现DICOM的关联协商机制,客户端与服务端通过交换A-ASSOCIATE请求建立连接,并以调用方AE标题与被调用方AE标题来选择合适的网络应用实体[8]。影像压缩与解压借助本机代码库完成,该库是OpenCV的JNI封装,仅使用CPU计算路径,并按运行环境选择SIMD指令集[5]。

存储流程可概括为:影像设备通过C-STORE服务类将DICOM对象发送至归档端,归档端把对象写入文件系统并在数据库中登记索引,随后其他系统可通过C-FIND查询和C-MOVE或C-GET取回;Web环境下的存取则由DICOMweb定义的STOW-RS、QIDO-RS与WADO-RS接口承担[2]。

发展历程

项目的起点在2000年前后,当时开发人员Gunter Zeilinger在TIANI Medgraph公司使用商业版Java DICOM工具包JDT编写了JDicom实用工具集,此后决定自行开发一套DICOM工具包,dcm4che由此产生[9]。名称的构词方式借鉴了Java领域常见的以数字结尾的命名习惯,读音近似于按字母念出的形式[6]。

最初的设计目标是把这套工具包提交给Sun公司,作为标准化Java DICOM接口的Java规范请求,因此代码被划分为接口层与实现层;该规范请求最终未能立项,但工具包在Java DICOM开发者群体中逐渐普及[9]。随后出现的dcm4jboss子项目实现了IHE的影像管理与影像归档角色,多次通过IHE Connectathon测试并进入实际生产环境,后来更名为dcm4chee[6]。

2006年前后,出于性能、内存占用、灵活性与简化结构等考虑,工具包被重新架构,新版本定名为dcm4che2,其首个开源版本2.0.5发布于2006年5月31日[4]。此后的3.x系列是在2.x基础上的彻底重写,主要目标之一是压缩DICOM数据集的内存占用[10]。

TIANI Medgraph的所有权此后经由GWI转至Agfa Gevaert,开发工作未中断;2015年Gunter Zeilinger加入新成立的J4Care公司,该公司专注于dcm4che的开发[9]。项目采用MPL、GPL与LGPL三重许可,使用者可任选其一遵守[11]。

应用

工具包最常见的用法是嵌入其他软件,作为其读取、写入与处理DICOM文件的基础库,商业项目与开源项目均有采用[1]。配套的命令行工具覆盖多种转换需求,例如dcm2dcm用于按指定传输语法转码DICOM文件,dcm2jpg把影像转为JPEG等常见格式,dcm2xml与xml2dcm在XML表示与DICOM之间互转,jpg2dcm与pdf2dcm则分别把JPEG影像和PDF文档封装为DICOM对象[5]。

在网络测试与服务模拟方面,findscu、getscu、movescu、storescu与storescp等工具可分别发起查询、取回、存储请求或充当接收端,mppsscu与mppsscp处理检查步骤消息,dcmqrscp提供一个简易归档服务,modality可模拟影像设备[7]。另有deidentify工具用于对DICOM文件做去标识处理[5]。

在归档场景中,dcm4chee Archive 5提供符合IHE规范的影像管理与影像归档功能,支持多租户、审计日志、影像压缩以及通过XDS或XDSI注册库与存储库接入跨机构共享环境,也可配置为连接外部归档以实现数据共享与冗余[2]。该归档应用可与Web查看器等前端配合,用户社区还维护着dcm4che的文档站点、问题跟踪系统与邮件列表[12]。

作为基础组件,dcm4che被多个开源医学影像项目视为同类替代方案,例如其他DICOM库、归档服务器与影像查看器,其代码仓库的关注数在2026年时达到1400以上[13]。

局限

该工具集是为DICOM与HL7等医疗信息技术标准设计的开发组件,本身不提供面向临床诊断的完整成品系统,使用者需要具备对DICOM标准的理解才能正确配置与调用[14]。1.x系列已被2.x取代,2.x版本也已被标注为不再推荐,官方建议使用3.x及之后的版本,因此早期版本的文档与代码示例可能过时[14]。

对系统环境有一定依赖。构建3.x及之后版本需要Java 17或更高版本的开发工具包[5]。影像压缩所依赖的本机库在Linux上动态链接glibc,需要满足最低glibc版本,无法直接在Alpine等使用musl的发行版上运行,除非额外提供兼容层;该库仅支持CPU路径,不提供GPU或OpenCL加速;32位架构的发布包已不再提供[5]。

参见

  • DICOM —— 医学数字成像与通信标准,dcm4che所实现的核心规范。

  • HL7 —— 医疗信息交换标准,dcm4che工具集包含对应的消息处理模块。

  • IHE —— 医疗机构集成倡议,dcm4chee按其所定义的影像管理与影像归档角色实现。

  • PACS —— 影像归档与通信系统,dcm4chee属于开源实现之一。

  • LDAP —— 目录服务,dcm4che用其存放符合规范的应用配置数据。

  • DICOMweb —— 基于Web的DICOM服务规范,dcm4chee支持其中的STOW-RS、QIDO-RS与WADO-RS。

参考资料

  1. Open Source Clinical Image and Object Management [引用日期2026-10-14]
  2. dcm4chee-arc-light 5 | DCM4CHE [引用日期2026-10-14]
  3. The Project [引用日期2026-10-14]
  4. dcm4che3 [引用日期2026-10-14]
  5. dicom4che [引用日期2026-10-14]
  6. History [引用日期2026-10-14]
  7. dcm4che/dcm4che: DICOM Implementation in JAVA · GitHub [引用日期2026-10-14]
  8. /* ***** BEGIN LICENSE BLOCK ***** [引用日期2026-10-14]
  9. dcm4che History | DCM4CHE [引用日期2026-10-14]
  10. dcm4che DICOM Toolkit & Library [引用日期2026-10-14]
  11. license [引用日期2026-10-14]
  12. dcm4che.org Wiki [引用日期2026-10-14]
  13. dcm4che [引用日期2026-10-14]
  14. dcm4che2 DICOM Toolkit [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T20:35:06Z

历史版本

本条目引用的词条
DICOM HL7 IHE PACS LDAP DICOMweb