2. 医疗设备数据生态与标准全景
做医疗设备数据语义建模,第一步不是写模型,而是先看清“数据从哪里来、经过哪些标准、最终要变成什么语义”。医疗设备数据生态可以理解为一条从物理信号到临床语义的分层链路:最底层是设备与接口,中间层是传输与设备通信标准,上层是临床文档与资源标准,最外层是集成规范与工作流。语义建模的价值,正是在这些标准之间建立可解释的映射,而不是另起一套孤立的模型。
一、设备类型决定数据形态
不同设备产生的数据粒度差异极大。生命体征监护仪通常以周期性波形和高频参数为主,例如心电波形采样率可达 250~500 Hz,血氧、无创血压、体温等参数则以秒级或事件级更新;输液泵、呼吸机更多产生设置参数、运行状态和报警事件;影像设备(CT、MR、超声)输出的是像素矩阵与元数据;检验设备(生化、血球)输出的是样本、项目、结果值和单位。语义建模首先要区分三类数据:连续波形、离散参数/事件、影像与文档。它们的建模策略完全不同,波形关注采样率、通道、单位与时间基准,参数关注编码、单位、有效性与上下文,影像关注 SOP 类、序列与测量语义。
二、数据接口:从专有协议到标准网关
设备侧接口常见的有 RS-232 串口、USB、以太网、Wi-Fi,以及厂商私有协议。很多老设备只提供串口输出,数据帧格式由厂商定义,例如某监护仪以固定帧头加通道数据的方式输出。工程上通常不直接让上层系统解析私有协议,而是通过设备网关完成协议适配:网关采集原始帧,解析为带单位、时间戳和设备标识的中间结构,再转换为标准消息。这一步是语义建模的“入口清洗”,必须保留原始值、单位、采集时间和设备身份,否则后续语义无法追溯。
三、标准全景与各自角色
医疗信息标准并非互相替代,而是分工协作。IEEE 11073 面向设备与个人健康设备的通信,定义了设备对象模型、属性、单位和测量语义,是“设备侧语义”的核心;HL7 v2 广泛用于医院内部消息交换,如 ADT、ORU 消息承载检验结果和患者信息;DICOM 专注医学影像及其元数据,定义 SOP 类、序列、测量和影像语义;FHIR 以资源形式表达临床数据,适合跨系统、跨机构的 RESTful 交换;IHE 则不是单一数据标准,而是集成规范,通过 PCD、ITI 等框架规定设备、系统和流程如何协同。语义建模要做的,是把设备原始数据映射到这些标准的语义锚点,再统一到可计算的模型上。
四、语义建模中的映射要点
把设备数据映射到标准语义,关键在四个锚点:编码、单位、时间、上下文。编码方面,设备本地参数名如“NIBP_SYS”需要映射到标准术语,例如 IEEE 11073 的 MDC 编码或 FHIR 的 LOINC 编码;单位方面,设备可能输出 mmHg、kPa、%,必须统一到 UCUM 单位体系,否则同一血压值会出现量纲歧义;时间方面,波形数据要保留采样起始时间和采样间隔,事件数据要区分“发生时间”和“记录时间”;上下文方面,一个血氧值必须绑定患者、设备、采集部位和体位,否则语义不完整。
以监护仪无创血压为例,设备原始输出可能是 SYS=120;DIA=80;MAP=93;UNIT=mmHg;TIME=2025-03-12T08:15:30。语义建模时,应将其映射为:编码 MDC_PRESS_BLD_NONINV_SYS,单位 mm[Hg],时间采用 ISO 8601 带时区,患者上下文通过设备-患者绑定关系补全。若同一设备同时输出 kPa,则需按 1 mmHg = 0.133322 kPa 换算后再入库,并在模型中记录原始单位与换算标记,保证可追溯。
五、IHE 与工作流:让标准真正协同
单个标准解决的是“数据长什么样”,IHE 解决的是“系统怎么配合”。以 PCD 领域为例,设备网关通过 PCD-01 将数据推送到临床信息系统,DEC(设备企业通信)负责设备发现与配置,ACM(报警通信管理)负责报警分发。语义建模在这里要额外记录数据来源角色、消息类型和确认状态,否则同一参数在“实时监护”和“回顾分析”两个场景下可能被错误合并。FHIR 侧则常用 Observation 资源承载参数值,用 Device 资源标识设备,用 Patient 资源关联患者,形成可查询的语义网络。
六、一个可执行的映射检查清单
在实际项目中,可以用下面这份清单快速检查映射是否完整。它不追求覆盖所有标准,而是确保每个设备数据点都能被语义模型正确解释。
| 检查项 | 示例 | 判断依据 |
|---|---|---|
| 设备身份 | 监护仪序列号、厂商、型号 | 能否唯一关联到 Device 资源或设备台账 |
| 参数编码 | NIBP_SYS → MDC_PRESS_BLD_NONINV_SYS | 编码在标准术语集中存在且语义一致 |
| 单位 | mmHg → mm[Hg] | 符合 UCUM,换算关系明确 |
| 时间 | 2025-03-12T08:15:30+08:00 | 带时区,区分采集时间与记录时间 |
| 患者上下文 | 患者ID、住院号、床号 | 能通过绑定关系回溯到 Patient |
| 数据质量 | 报警状态、信号质量、缺失标记 | 异常值有标记,不静默丢弃 |