目录
探索 dcm4che。
dcm4che 作为医疗保健信息技术应用程序和实用程序的开源集合,可用于深入医学成像世界。它具备高效、可扩展及互操作等特性,是您轻松管理 DICOM 图像和数据的重要门户。即刻发现开源在医疗保健领域的强大力量!
dcm4che和dcm4chee的演变
dcm4chee 5 Archive
它是符合IHE标准的图像管理器和图像存档。它为在医疗保健环境中管理、存储和检索DICOM图像和相关信息提供了全面的解决方案。
dcm4chee Archive 5是一个先进的开源图片存档和通信系统(PACS)和供应商中立存档(VNA),旨在促进医学成像数据的高效存储、检索和管理。这种多功能存档系统利用强大的dcm4che库并建立在Java技术的基础上,支持广泛的医学成像格式和DICOM通信协议,确保与现有医疗保健信息技术基础设施的无缝集成,并促进卓越的互操作性。
除了其核心PACS功能之外,dcm4chee Archive 5作为VNA表现出色,它为医学图像和文档提供了一个标准化的、与格式无关的存储库,无论其原始系统如何。这种功能允许医疗保健组织将来自多个来源的成像数据整合到一个单一的、可访问的和安全的存储解决方案中,增强数据可移植性并促进全面的患者记录管理。
dcm4chee Archive 5具有先进的存储解决方案、符合DICOM和HL7标准以及适应基于云的部署的可扩展架构等功能,可确保数据安全、患者隐私和遵守法规要求。其直观的界面和详细的留档使其成为放射科医生、信息技术专业人员和医疗保健管理人员的重要系统,旨在简化医疗成像流程并提升患者护理服务。
dcm4chee Archive 5开源应用程序作为高度符合IHE的图像管理器和图像存档脱颖而出。它为医疗保健环境中的存储、检索和工作流提供基本服务。
功能概述:
-
DICOM存储:作为存档,dcm4chee可以在标准文件系统上存储各种类型的DICOM对象,如果需要,可以选择压缩。
-
DICOM查询/检索:它允许查询DICOM对象的存档并有效地检索它们。
-
模态工作列表管理:与工作列表管理的模态集成,通过将患者和检查详细信息直接发送到成像设备来简化成像工作流程。
-
DICOMWeb支持:实施DICOMweb标准,包括STOW-RS、QIDO-RS和WADO-RS,促进对DICOM对象的基于Web的访问。此外,通过Web访问DICOM对象(WADO)促进了对存档内容的Web访问
-
其他DICOM服务:支持MPPS、UPS、存储承诺、实例可用性通知等
-
HL7服务器:dcm4chee集成了能够处理ADT、ORM、OMG和ORU消息类型的HL7服务器
-
基于Web的管理:提供用户友好的Web界面,用于配置和管理存档,简化管理任务
-
多租户:支持多个租户,使不同部门或附属机构能够在单个实例中单独管理他们的数据
-
审计日志记录:全面记录与系统的所有交互,以实现安全性、合规性和操作监控
-
安全特性:实施各种安全措施,包括身份验证、授权、加密和安全数据传输协议
-
图像压缩:支持动态图像压缩和解压缩,优化存储使用和网络带宽
-
IHE合规性:dcm4chee可以通过与XDS/XDSI注册表和存储库集成,在支持IHE的环境中无缝运行。支持各种集成医疗保健企业(IHE)配置文件,增强与其他医疗保健IT系统的互操作性
-
外部存档连接:可配置为与外部存档连接以实现数据共享和冗余
-
高可用性配置:旨在支持高可用性设置,以确保持续访问医学成像数据
dcm4che 5工具包和库
它是一个基于Java的库和一组用于处理DICOM文件的工具。它提供了读取、写入和操作DICOM数据的功能,使其成为从事医学成像工作的开发人员和研究人员的宝贵资源。
注意保证JDK为17
其开源协议为;
dcm4che库是一个先进的开源框架,旨在根据DICOM标准高效管理、操作和传输医学成像数据。利用Java技术,它为DICOM通信协议(如C-FIND、C-GET、C-MOVE、C-STORE)、图像处理和数据转换提供了一套强大的工具。
这使得它成为寻求简化操作和增强医疗保健IT系统内数据互操作性的医学成像专业人员不可或缺的资产。dcm4che采用全面的医疗保健标准方法,包括与HL7的集成,支持开发能够在复杂医疗保健环境中运行的多功能应用程序。促进了可扩展和可互操作医学成像解决方案的创建。
dcm4che库使Java开发人员能够构建与DICOM医学成像世界交互的应用程序。它提供了一套强大的工具,用于以编程方式管理、操作和交换DICOM数据。
-
DICOM解析和操作:该库允许您读取DICOM文件并访问其中的编码信息。这包括患者数据、图像像素数据和其他与医学图像相关的元数据。您还可以通过编辑数据结构中的特定属性来修改DICOM文件。
-
面向对象的方法:该库提供了DICOM数据的面向对象表示。这使得开发人员更容易在他们的Java代码中使用DICOM对象。您可以通过定义明确的方法访问特定元素,如患者姓名、图像模态(例如x光、CT扫描)。
-
网络通信:该库促进DICOM网络通信。您可以开发可以通过网络发送和接收DICOM对象的应用程序,从而实现与其他启用DICOM的设备或服务器的通信。
-
编码和解码:库根据DICOM标准处理DICOM数据的编码和解码。这确保数据被其他符合DICOM的系统理解。
-
灵活性:该库为处理DICOM数据提供了广泛的功能。您可以执行向图像添加注释、匿名化患者数据以及将DICOM文件转换为其他格式(使用其他工具)等任务
依赖模块
以 dcm4che 5.31.0 为例。下面我将逐个解释它们的作用,并指出它们的主要依赖关系和用途。请注意,完整的依赖关系可以通过查看每个模块的 pom.xml
文件来获得,这里我只给出关键的依赖和功能描述。
核心模块和基础功能
- dcm4che-core: DICOM 对象模型、解析、编码/解码等核心功能。依赖于 SLF4j (日志)。所有其他模块都或多或少依赖于此模块。
- dcm4che-net: DICOM 网络通信 (C-STORE, C-FIND, C-MOVE 等)。依赖于 Netty (网络框架)、dcm4che-core。
- dcm4che-imageio: DICOM 图像的读取和写入。依赖于 Java Image I/O、dcm4che-core。
- dcm4che-dict: DICOM 数据字典,包含 DICOM 属性的定义。被 dcm4che-core 等模块使用。
- dcm4che-dict-priv: 私有 DICOM 属性字典。
- dcm4che-mime: MIME 类型处理,用于 DICOM 消息的封装。
- dcm4che-json: JSON 处理,用于 DICOM 数据的 JSON 表示。
- dcm4che-js-dict: JavaScript 版本的 DICOM 字典,用于 Web 应用。
配置和管理
- dcm4che-conf: 配置管理模块,提供加载和管理 dcm4che 配置的功能。
- dcm4che-conf-api: 配置 API 接口。
- dcm4che-conf-api-hl7: HL7 相关的配置 API。
- dcm4che-conf-json: 基于 JSON 的配置实现。
- dcm4che-conf-json-schema: JSON 配置的 Schema 定义。
- dcm4che-conf-ldap: 基于 LDAP 的配置实现,用于从 LDAP 服务器加载配置。
- dcm4che-conf-ldap-audit: LDAP 配置的审计功能。
- dcm4che-conf-ldap-hl7: LDAP 配置中 HL7 相关的配置。
- dcm4che-conf-ldap-imageio: LDAP 配置中图像 I/O 相关的配置。
- dcm4che-conf-ldap-schema: LDAP 配置的 Schema 定义。
扩展功能
- dcm4che-audit: 审计日志记录功能。
- dcm4che-audit-keycloak: 使用 Keycloak 进行审计的集成。
- dcm4che-dcmr: DICOM 元数据存储库 (DICOM Metadata Repository)。
- dcm4che-deident: DICOM 数据去标识化工具。
- dcm4che-emf: Eclipse Modeling Framework (EMF) 集成,用于 DICOM 模型的处理。
- dcm4che-hl7: HL7 消息处理。
- dcm4che-image: 图像处理相关的工具和算法。
- dcm4che-imageio-opencv: 使用 OpenCV 库进行图像处理的扩展。依赖于 OpenCV 的 Java 绑定。
- dcm4che-imageio-rle: RLE 压缩图像的编解码器。
- dcm4che-net-audit: 网络通信的审计功能。
- dcm4che-net-hl7: 网络通信中 HL7 相关的处理。
- dcm4che-net-imageio: 网络通信中图像 I/O 相关的处理。
- dcm4che-soundex: Soundex 算法的实现,用于相似性搜索。
- dcm4che-ws-rs: RESTful Web 服务支持。
- dcm4che-xdsi: XDS-I (Cross-Enterprise Document Sharing for Imaging) 支持。
部署和依赖管理
- dcm4che-jboss-modules: 用于 JBoss Modules 的集成,允许在 JBoss AS 或 WildFly 等应用服务器中部署 dcm4che。
关键依赖关系总结
- SLF4j: 日志记录,几乎所有模块都依赖。
- Netty: 网络通信,dcm4che-net 及其相关模块依赖。
- Java Image I/O: 图像处理,dcm4che-imageio 及其相关模块依赖。
- Apache Commons: 一些通用工具库,多个模块可能依赖。
- JBoss Modules: 用于在 JBoss 环境中部署。
dcm4che-tools简述
dcm4che-tool
模块包含了一系列命令行工具,用于各种 DICOM 操作。相关详细讲解可参考源代码下相关工具模块的Readme.md讲解。下面将详细分类并解释你提供的工具列表:
转换工具
- agfa2dcm: 从 Agfa BLOB 文件中提取 DICOM 文件。用于处理旧的 Agfa 影像数据。
- agfa2sr: 提取连接的 XML Agfa 报告并将其转换为 DICOM SR 文档。处理 Agfa 报告并将其转换为标准 DICOM 格式。
- dcm2dcm: 根据指定的传输语法转换 DICOM 文件。例如,将隐式 VR 转换为显式 VR,或压缩/解压缩图像。
- dcm2jpg: 将 DICOM 图像转换为 JPEG 或其他图像格式。常用的图像转换工具。
- dcm2json: 将 DICOM 文件转换为 JSON 表示。方便在 Web 应用或与其他系统集成中使用。
- dcm2pdf: 从 DICOM 文件中提取封装的 PDF、CDA 或 STL。用于提取报告或其他嵌入式文档。
- dcm2str: 将属性格式模式应用于 DICOM 文件或命令行参数。用于格式化 DICOM 属性的输出。
- dcm2xml: 将 DICOM 文件转换为 XML 表示。方便 XML 处理和转换。
- emf2sf: 将 DICOM 增强多帧图像转换为传统的 DICOM 单帧图像。用于兼容不支持多帧图像的旧系统。
- jpg2dcm: 将 JPEG 图像或 MPEG 视频转换为 DICOM 文件。用于将非 DICOM 图像转换为 DICOM 格式。
- json2dcm: 将 JSON 文件转换为 DICOM 文件。与
dcm2json
相反的操作。 - pdf2dcm: 将 PDF 文件转换为 DICOM 文件。将 PDF 文档封装在 DICOM 对象中。
- tpl2xml: 将模板文件中的私有字典转换为 XML 文件。用于处理私有 DICOM 属性。
- xml2dcm: 从 XML 表示创建/更新 DICOM 文件。与
dcm2xml
相反的操作。 - xml2hl7: 从 XML 表示创建 HL7 v2.x 消息。
网络通信工具
- findscu: 调用 DICOM C-FIND 查询请求。用于在 PACS 服务器上查询 DICOM 实例。
- getscu: 调用 DICOM C-GET 检索请求。用于从 PACS 服务器检索 DICOM 实例。
- ianscp: DICOM 实例可用性通知接收器。
- ianscu: 发送 DICOM 实例可用性通知。
- movescu: 调用 DICOM C-MOVE 检索请求。用于将 DICOM 实例移动到另一个 AE。
- mppsscp: DICOM 模态执行程序步骤接收器。
- mppsscu: 发送 DICOM 模态执行程序步骤。用于跟踪检查的执行状态。
- storescp: DICOM 复合对象接收器(存储服务器)。用于接收 DICOM 图像。
- storescu: 发送 DICOM 复合对象(存储客户端)。用于发送 DICOM 图像。
- stowrs: 通过 Web 发送 DICOM 复合对象或大容量数据文件。使用 STOW-RS 协议。
- stowrsd: STOW-RS 服务器。
- upsscu: 调用统一程序步骤服务类的服务。用于管理工作流程。
- wadors: WADO-RS 客户端模拟器。用于访问 WADO-RS 服务。
- wadows: WADO-WS 客户端模拟器。用于访问 WADO-WS 服务。
其他工具
- dcmbenchmark: 重复解析 DICOM 文件,测量时间和使用的内存。用于性能测试。
- dcmdir: 转储、创建或更新 DICOMDIR 文件。用于管理 DICOM 目录。
- dcmdump: 以文本形式转储 DICOM 文件。用于查看 DICOM 文件的内容。
- dcmldap: 在 LDAP 服务器中插入/删除网络 AE 的配置条目。用于集中管理 DICOM 网络配置。
- dcmqrscp: 简单的 DICOM 归档。提供基本的存储和查询功能。
- dcmvalidate: 根据指定的 Information Object Definition 验证 DICOM 对象。用于验证 DICOM 文件的合规性。
- deidentify: 去标识一个或多个 DICOM 文件。用于保护患者隐私。
- fixlo2un: 修复从隐式 VR 转换为显式 VR 传输语法时截断为 2 字节的私有标签的长度。
- hl72xml: 将 HL7 v2.x 消息转换为 XML 表示。
- hl7pdq: 查询 HL7 v2.x 患者人口统计信息提供程序。
- hl7pix: 查询 HL7 v2.x PIX 管理器。
- hl7rcv: HL7 v2.x 接收器。
- hl7snd: 发送 HL7 v2.x 消息。
- json2index: 从 JSON Schema 文件为 UI 配置创建搜索索引。
- json2props: 将归档配置 Schema JSON 文件转换为键/值属性文件,反之亦然。
- json2rst: 从归档配置 Schema JSON 文件生成 ReStructuredText 文件。
- maskpxdata: 屏蔽刻录到像素数据中的信息。
- mkkos: 创建 DICOM 关键对象选择文档。
- modality: 模拟 DICOM 模态。用于测试和开发。
- planarconfig: 检测具有光度解释 RGB 或 YBR_FULL 的彩色图像的未压缩像素数据的实际平面配置,并可选择更正图像的属性 Planar Configuration 的不匹配值。
- qstar: QStar SOAP 客户端,用于预取/检索或获取指定文件的文件信息。
- stgcmtscu: 调用 DICOM 存储承诺请求。
- swappxdata: 交换 DICOM 文件中未压缩像素数据的字节。
- syslog: 通过 TCP/TLS 或 UDP 将 Syslog 消息发送到 Syslog 接收器。
- syslogd: 通过 TCP/TLS 或 UDP 接收 RFC 5424 Syslog 消息。
- xroad: XRoad SOAP 客户端,用于查询爱沙尼亚国家患者登记处的患者人口统计信息。
这些工具覆盖了 DICOM 数据的各种操作,从转换、网络通信到验证、去标识等。它们是 dcm4che 工具包的重要组成部分,为 PACS 系统开发和维护提供了强大的支持。