编辑 | blame | 历史 | 原始文档

Artis 百特透析机 HL7 通信协议解析指南 (完整版)

文档版本: SP00937 Rev. / (基于 2015-02 版)
适用设备: Gambro Artis 透析系统 (软件版本 ≥ 8.52)
通信标准: HL7 v2.5 (XML 编码)
字符编码: Unicode (UTF-16LE)


📋 目录

  1. 协议概述
  2. 网络连接配置
  3. 两种通信模式
  4. 消息结构详解
  5. 临床参数列表
  6. CRC 校验算法
  7. 错误处理机制
  8. 开发建议与数据解析策略
  9. 附录

1. 协议概述

Artis 透析系统允许外部软件通过 HL7 v2.5 标准(采用 XML 语法编码)获取临床信息。该通信通道**不能**作为远程监控的唯一数据源,也不应用于分布式报警系统。

⚠️ 重要警告

  • 获取的信息不能作为采取治疗或药物行动的**唯一依据**。
  • 用户必须遵守相关隐私法律(如欧盟 95/46/EC 指令、HIPAA 等)。
  • 医院需负责保证网络基础设施的安全性和完整性,防止未授权访问。

2. 网络连接配置

硬件连接

  • 接口类型: 标准以太网 (10/100 Mb/sec)
  • 网络拓扑: 强烈建议为 Artis 建立独立的物理和逻辑网络(VLAN),避免与医院办公网络混用。
  • 设备要求: 可使用普通交换机,但推荐使用带端口隔离功能的专用 Switch 以提升安全性。

软件连接

Artis 作为 TCP Server,固定提供两个端口:

端口号 用途 消息类型 说明
3021 主动推送模式 ORU^R31 治疗期间每 60 秒自动发送一次实时数据
3020 查询应答模式 QRY^R02 / ORF^R04 客户端发起查询,机器返回历史快照或当前状态

说明:**本仓库当前仅实现 3021 主动推送模式**;3020 查询/应答模式属于协议能力,但未在代码中使用。

关键配置参数 (在 Artis 触摸屏设置)

  1. IP Address: 静态 IP (如 192.168.1.100)
  2. Subnet Mask: 子网掩码 (如 255.255.255.0)
  3. Gateway: 网关 (如需跨网段)
  4. Firewall: 可设置允许连接的 4 个特定客户端 IP 地址。**务必将您的采集服务器 IP 加入白名单**。
  5. CCM ID: 系统唯一标识 (如 Gambro_001),在查询模式下用于寻址。

3. 两种通信模式

模式一:主动周期性数据传输 (Unsolicited Periodic Transfer)

  • 端口: 3021
  • 触发条件: 只要机器处于“治疗中”状态。
  • 频率: 固定 60 秒 一次。
  • 流程:
  1. 客户端连接 Artis:3021。
  2. Artis 接受连接并保持长连接 (Keep-Alive)。
  3. 每隔 60 秒,Artis 主动推送一条 ORU^R31 XML 消息。
  4. 客户端**不需要**回复 ACK。
  • 断连: 若网络中断或客户端断开,Artis 会停止推送,直到重新建立连接。

模式二:查询/应答数据传输 (Query/Answer Transfer)

  • 端口: 3020
  • 备注: 本仓库不使用/不实现该模式
  • 流程:
  1. 客户端连接 Artis:3020。
  2. 客户端发送 QRY^R02 请求。
  3. Artis 立即回复 ORF^R04 (包含数据) 或 ACK^R33 (报错)。
  • 超时: 若连接建立后 90 秒 内无新请求,Artis 会自动断开连接以释放资源。
  • 过滤控制 (QRD.11):
  • 100: 仅核心数据 (Core)
  • 010: 仅患者事件 (Patient)
  • 111: 全部数据 (推荐)

4. 消息结构详解

所有消息均为 XML 格式,且必须使用 UTF-16LE (Little Endian) 编码。

4.1 ORU^R31 (主动推送消息)

这是最常用的消息,包含当前的治疗参数。

```xml


<MSH.1>|</MSH.1>
<MSH.2>^~&</MSH.2>
<MSH.3>Gambro_CCM01</MSH.3>
<MSH.4>SW_8.52_SN_12345</MSH.4>
<MSH.5>HIS_System</MSH.5>
<MSH.6>Hospital_A</MSH.6>
<MSH.7>20231027103000</MSH.7>
<MSH.8>A1B2</MSH.8>
<MSH.9>ORU^R31</MSH.9>
<MSH.10>MSG_00123</MSH.10>
<MSH.11>P</MSH.11>
<MSH.12>2.5</MSH.12>
<MSH.18>UNICODE</MSH.18>


<PID.1>1</PID.1>
<PID.3>Patient_ID_99</PID.3>
<PID.5>Doe^John</PID.5>


<ORC.1>RE</ORC.1>


<OBR.1>1</OBR.1>
<OBR.2>MSG_00123</OBR.2>
<OBR.7>20231027103000</OBR.7>


<ORU_R31.OBSERVATION>

<OBX.1>1</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>6^Blood Flow^local</OBX.3>
<OBX.5>350.000000</OBX.5>
<OBX.6>ml/min</OBX.6>
<OBX.11>F</OBX.11>
<OBX.19>20231027103000</OBX.19>

</ORU_R31.OBSERVATION>