DICOM/HL7/QUE互操作性MCP服务器

唯一一个将DICOM、HL7 v2和Contoso整合在一个软件包中的MCP服务器,具有可选的PACS连接功能。
由一位拥有19年PACS、RIS和集成经验的医疗IT工程师构建。这不是FHIR API或DICOM标签字典的包装,而是需要数年时间才能构建的互操作性知识,以及连接到真实PACS系统的能力。
是什么让这与众不同
| 功能 | 此服务器 | 仅DICOM服务器 | 仅Contoso服务器 |
|---|---|---|---|
| DICOM标签查找+供应商怪癖 | 是 | 是 | 否 |
| HL7 v2消息解析 | 是 | 否 | 否 |
| GetLR4资源映射 | 是 | 否 | 是 |
| 医学数字成像与通信↔ HL7v2映射 | 是 | 否 | 否 |
| HL7v2→ ➤转换 | 是 | 否 | 否 |
| Mirth Connect频道生成 | 是 | 否 | 否 |
| PACS连接(C-FIND/C-MOVE) | 是 | 一些 | 没有 |
| DICOMweb(QIDO-RS/WADO-RS) | 是 | 否 | 否 |
| 查询PACS+自动映射到HL7 | 是 | 否 | 否 |
| 供应商私有标签解码(通用电气、西门子、飞利浦) | 是 | 部分 | 否 |
| 集成模式知识(IHE SWF、ADT流) | 是 | 否 | 否 |
工具
参考工具(免费)
| 工具 | 它做什么 |
|---|---|
lookup_dicom_tag | 按数字或关键字查找任何DICOM标签 |
explain_dicom_tag | 详细的标签解释,包括供应商的怪癖和陷阱 |
parse_hl7_message | 将HL7 v2.x消息解析为人类可读的格式 |
explain_hl7_segment | 解释分段字段、数据类型和用法 |
lookup_hl7_table | 查找HL7表值(行政性别、患者类别等) |
映射和生成工具(高级)
| 工具 | 它做什么 |
|---|---|
map_dicom_to_hl7 | 使用转换注释将DICOM标签映射到HL7 v2字段 |
map_hl7_to_fhir | 将HL7 v2字段映射到kubectl R4资源 |
generate_mirth_channel | 生成Mirth Connect通道配置 |
validate_hl7_message | 根据标准验证HL7消息 |
explain_integration_pattern | 用流程图解释医疗保健集成模式 |
decode_private_tags | 解码供应商私有DICOM标签(GE、西门子、飞利浦等) |
generate_sample_message | 生成用于测试的真实示例HL7消息 |
PACS连接工具(高级版)
| 工具 | 它做什么 |
|---|---|
pacs_echo | 验证PACS连接(C-ECHO或DICOMweb ping) |
pacs_query | 按患者、日期、方式、加入搜索研究/系列 |
pacs_get_metadata | 从PACS检索详细的研究/系列元数据 |
pacs_retrieve | 将C-MOVE图像转换为目标AE标题 |
pacs_study_summary | 通过DICOM查询研究+自动标测图→HL7→使用生成的ORM的kubectl |
安装
仅供参考工具 (无PACS连接):
pip install dicom-hl7-mcp通过PACS连接 (添加pynetdicom+httpx):
pip install dicom-hl7-mcp[pacs]配置
基本(仅限参考工具)
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["dicom-hl7-mcp"]
}
}
}使用高级许可证
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["dicom-hl7-mcp"],
"env": {
"DICOM_HL7_LICENSE_KEY": "your-license-key-here"
}
}
}
}具有PACS连接(传统DICOM)
使用C-FIND/C-MOVE/C-ECHO连接到PACS:
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["--with", "dicom-hl7-mcp[pacs]", "dicom-hl7-mcp"],
"env": {
"DICOM_HL7_LICENSE_KEY": "your-license-key-here",
"DICOM_HL7_PACS_AE_TITLE": "YOUR_PACS",
"DICOM_HL7_PACS_HOST": "pacs.hospital.org",
"DICOM_HL7_PACS_PORT": "4242",
"DICOM_HL7_LOCAL_AE_TITLE": "CLAUDE_MCP"
}
}
}
}通过PACS连接(DICOMweb)
连接到支持DICOMweb的PACS(QIDO-RS/WADO-RS):
{
"mcpServers": {
"dicom-hl7-assistant": {
"command": "uvx",
"args": ["--with", "dicom-hl7-mcp[pacs]", "dicom-hl7-mcp"],
"env": {
"DICOM_HL7_LICENSE_KEY": "your-license-key-here",
"DICOM_HL7_DICOMWEB_URL": "https://pacs.hospital.org/dicom-web",
"DICOM_HL7_DICOMWEB_AUTH": "bearer",
"DICOM_HL7_DICOMWEB_TOKEN": "your-auth-token"
}
}
}
}环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
DICOM_HL7_LICENSE_KEY | 用于高级 | -- | 高级许可证密钥 |
DICOM_HL7_LOG_LEVEL | 没有 | INFO | 日志记录级别 |
| 传统DICOM | |||
DICOM_HL7_PACS_AE_TITLE | 用于DIMSE | -- | 远程PACS AE标题 |
DICOM_HL7_PACS_HOST | 对于DIMSE | -- | 远程PACS主机名/IP |
DICOM_HL7_PACS_PORT | 用于DIMSE | -- | 远程PACS端口 |
DICOM_HL7_LOCAL_AE_TITLE | 没有 | DICOM_HL7_MCP | 此服务器的AE标题 |
| DICOM网站 | |||
DICOM_HL7_DICOMWEB_URL | 对于DICOMweb | -- | DICOMweb基本URL |
DICOM_HL7_DICOMWEB_AUTH | 没有 | none | 身份验证类型: none, bearer, basic |
DICOM_HL7_DICOMWEB_TOKEN | 不记名 | -- | 不记名代币 |
DICOM_HL7_DICOMWEB_USERNAME | 对于基本 | -- | 基本身份验证用户名 |
DICOM_HL7_DICOMWEB_PASSWORD | 用于基本 | -- | 基本身份验证密码 |
| 安全 | |||
DICOM_HL7_PACS_PROTOCOL | 没有 | auto | 协议: auto, dimse, dicomweb |
DICOM_HL7_PACS_ALLOW_RETRIEVE | 没有 | false | 启用C-MOVE(true 启用) |
DICOM_HL7_PHI_REDACT | 没有 | false | 在输出中修改患者姓名/ID |
PHI安全
当连接到真实的PACS时,查询结果包含受保护的健康信息(PHI)。
- 日志编辑:PHI字段会自动从所有日志输出中删除
- 结果警告:每个PACS查询结果都包含一个PHI警告横幅
- 可选编辑:设置
DICOM_HL7_PHI_REDACT=true将患者姓名/ID替换为[REDACTED]刀具输出中 - 无磁盘缓存:PACS查询结果从不写入磁盘
- 默认情况下,C-MOVE处于禁用状态:必须明确设置
DICOM_HL7_PACS_ALLOW_RETRIEVE=true
重要提示: 除非贵组织的政策允许将PHI发送给该LLM提供商,否则不要将PACS连接与云托管的LLM一起使用。对于本地部署或本地LLM设置,这不是问题。
真实世界的例子
“什么是DICOM标签(00080050)?”
AccessionNumber-SH-RIS生成的标识订单的编号。将RIS订单与PACS研究相匹配的关键领域。
解析HL7消息
“解析此HL7消息:” `` MSH|^~\&|RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1 PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000 OBX|1|FT|&GDT^Report||FINDINGS: Normal CT.||||||F ``返回用字段名、值、表查找和上下文解释解析的每个段。
查询PACS+自动映射到HL7/kubectl(高级版)
“在PACS中查找登录号ACC12345,并向我展示HL7/QUE映射”
返回完整的互操作性摘要:
- 来自PACS的研究元数据(患者、日期、模式、描述)
- DICOM→每个关键字段的HL7字段映射
- HL7→GetLR4资源映射
- 预填充的HL7 ORM^O01消息骨架
- 集成模式上下文(IHE SWF工作流)
映射DICOM→ HL7(高级)
“DICOM登录号映射到哪个HL7字段?”
退货:OBR-3/ORC-3(填充订单号),带数据类型转换说明(SH→ EI)和绘图陷阱。
生成欢乐频道(高级)
“生成一个Mirth通道,用于接收ADT消息并将其写入Contoso服务器”
返回:完成通道配置,包括MLLP源、GetLHTTP目标、转换器步骤、事件过滤和实现说明。
知识库
标准覆盖范围
- DICOM: 约200个最常见的标签、SOP类、传输语法、7个供应商的私有标签范围
- HL7 v2.x: 15个段,20多个表,消息类型(ADT、ORM、ORU、MDM、SIU、DFT、BAR),版本2.3-2.9
- R4 文件: 患者、就诊、服务请求、诊断报告、观察、过敏耐受、病情、相关人员、保险范围的映射
- 集成模式: ADT馈送、从订单到结果、放射工作流程(IHE SWF)、实验室界面、报告分发、患者合并、费用过账
知识从何而来
标签、段和映射来自已发布的标准(DICOM PS3.6、HL7 v2.5.1、kubectl R4、HL7 v2到kubectl IG)。供应商的怪癖、集成技巧和“注意这一点”笔记来自19年来在生产医疗环境中构建PACS/RIS/HIS接口的经验。
高级许可证
免费层为您提供DICOM标签查找、HL7解析和段解释,这些都是您每天使用的工具。
Premium解锁了跨标准映射、Mirth生成、验证、PACS连接以及需要数年时间才能构建的深度集成知识。
获取许可证: nyxtools.gumroad.com
常见问题解答
我需要免费工具的许可证吗? 否。请立即安装并使用5个免费工具。没有账号,就没有注册。
我需要PACS连接吗? 不需要。参考和映射工具无需任何PACS连接即可工作。PACS连接是可选的--随安装 pip install dicom-hl7-mcp[pacs] 仅当您想查询真实的PACS系统时。
支持哪些HL7版本? v2.3至v2.9,重点是v2.5.1(美国医疗保健中部署最广泛的版本)。
这符合HIPAA标准吗? 参考工具处理标准元数据,而不是患者数据。PACS连接工具可以访问真实的患者数据——内置了PHI安全措施(日志编辑、可选输出编辑、默认禁用C-OVE),但您有责任确保使用符合您组织的政策。
支持哪些PACS系统? 任何支持DICOM C-FIND/C-ECHO(几乎所有)或DICOMweb(QIDO-RS/WADO-RS)的PACS。使用Orthanc、RamSoft和DCM4CHE进行测试。
发展
git clone https://github.com/NyxToolsDev/dicom-hl7-mcp-server.git
cd dicom-hl7-mcp-server
pip install -e ".[dev]"
pytest许可证
MIT许可证。看 许可证.
______________________________________________________________________
由...建造 NyxTools
