3. 设备接入总体架构设计
数字临床试验的设备接入不是“把设备连上网”这么简单。一个可审计、可追溯、可扩展的接入体系,通常要跨越五个层次:端侧采集层、边缘网关层、云平台层、数据湖层,以及最终消费数据的临床试验系统层。这五层各自承担不同的职责,也各自有明确的边界与接口约定。理解这套分层架构,是后续做设备选型、协议适配、数据建模和合规验证的基础。
五层架构的职责划分
端侧采集层是数据的源头,包含可穿戴传感器、电子血压计、血糖仪、肺功能仪、心电贴、智能药盒等真实设备。这一层的核心任务是产生原始信号并完成最小化的本地处理,例如采样、滤波、单位换算、时间戳打点。端侧设备通常算力有限、网络不稳定,因此不应承担复杂的协议转换或业务逻辑。
边缘网关层是接入工程中最关键的一层。它部署在受试者家中、临床中心或病房内,负责把多种异构设备的协议统一收敛。例如,某网关同时接入蓝牙低功耗(BLE)血压计、Zigbee 体重秤和串口肺功能仪,需要分别完成 GATT 特征值读取、Zigbee 簇解析和串口帧解析,再统一封装为内部标准消息。网关还承担断网缓存、时钟同步、设备身份绑定和本地脱敏等职责。
云平台层提供设备管理、消息接入、规则引擎和数据服务。它接收来自网关的上行数据,完成设备注册、会话管理、数据校验、告警触发和 API 输出。云平台通常采用 MQTT 或 HTTPS 作为接入协议,并以主题或资源路径区分不同设备类型和试验项目。
数据湖层负责长期、低成本、原始粒度地保存数据。临床试验对原始数据留存有严格要求,数据湖通常按“原始层—清洗层—聚合层”组织,保留设备原始报文、网关标准化消息和最终分析数据集,支持回溯与稽查。
临床试验系统层是数据的最终消费方,包括电子数据采集系统(EDC)、临床数据管理系统(CDMS)、随机化与试验物资管理系统(RTSM)以及统计编程环境。这一层不直接接触设备,而是通过标准接口获取已经过校验和映射的数据。
层间接口与数据流方向
这套架构的数据流方向是自下而上的:端侧产生原始测量,网关完成协议收敛与标准化,云平台做接入与校验,数据湖做留存与加工,临床试验系统做最终消费。反向的控制流同样存在,例如云平台向网关下发配置更新、固件升级指令或采集计划调整,网关再转发给端侧设备。
层与层之间的接口需要明确约定。端侧到网关通常使用设备原生协议,如 BLE GATT、Zigbee 应用层簇、串口 Modbus 或厂商私有协议。网关到云平台建议统一为 MQTT,主题设计可参考 clinical/{trialId}/{siteId}/{deviceType}/{deviceId}/measurement 这样的层级结构,便于按试验、中心、设备类型做权限隔离和路由。云平台到数据湖可采用流式写入加定时批量归档的方式。数据湖到临床试验系统则通过标准 API 或受控导出文件完成,避免临床试验系统直接暴露给设备侧。
一个具体的接入示例
假设某高血压试验需要受试者每日早晚各测量一次血压,设备为某型号 BLE 电子血压计,网关部署在受试者家中。端侧血压计在测量完成后通过 BLE 广播包含收缩压、舒张压、脉搏和测量时间的记录。网关扫描到广播后建立连接,读取 GATT 特征值,解析出原始字节,例如收缩压字段为两个字节的小端整数,单位 mmHg。
网关随后做三件事:第一,将设备 MAC 地址映射为试验设备编号,例如 DEV-0031;第二,根据本地缓存的受试者绑定表,附加受试者编号 SUBJ-0187;第三,生成标准化 JSON 消息并写入本地队列。若此时网络中断,消息保留在队列中,待恢复后按时间顺序补传,并保留原始测量时间而非补传时间。
{
"trialId": "HTN-2024-01",
"siteId": "SITE-03",
"subjectId": "SUBJ-0187",
"deviceId": "DEV-0031",
"deviceType": "BP_MONITOR",
"measureTime": "2024-06-12T07:32:15+08:00",
"payload": {
"systolic": 138,
"diastolic": 86,
"pulse": 72,
"unit": "mmHg"
},
"quality": "valid",
"gatewayId": "GW-HOME-0092"
}
云平台收到消息后,先做设备注册状态检查,确认 DEV-0031 属于 HTN-2024-01 且处于启用状态;再做范围校验,例如收缩压是否在 60~250 mmHg 之间;然后写入数据湖原始层,并触发规则引擎判断是否超过预设告警阈值。数据湖清洗层随后将消息映射为 EDC 所需的变量格式,例如将 systolic 映射为 VS_SYS,并附加访视编号和表单标识。
分层设计带来的工程收益
分层最直接的价值是隔离变化。设备型号更换时,只需调整网关中的协议适配器,云平台和数据湖不受影响;临床试验系统更换时,只需调整数据湖到系统的映射接口,设备侧无需改动。其次,分层让合规边界更清晰:原始数据在数据湖中不可篡改地留存,稽查时可从 EDC 中的一条记录回溯到网关消息、再到设备原始报文。最后,分层支持横向扩展,网关可以按中心或家庭批量部署,云平台可以按试验项目做租户隔离,数据湖可以按存储成本分层。
deviceType 和 payload 字段,而不必改动整条链路。常见设计误区
第一个误区是让端侧设备直接连接云平台。这会导致设备厂商各自实现一套接入逻辑,协议、安全、时钟和身份管理难以统一,后期维护成本极高。第二个误区是网关只做透传、不做标准化。透传意味着云平台要理解每一种设备协议,违背了分层收敛的初衷。第三个误区是数据湖只存聚合结果、不存原始报文。临床试验稽查往往需要原始粒度数据,聚合结果无法替代原始记录。第四个误区是临床试验系统直接读取数据湖中的原始层数据,绕过清洗和映射,容易引入未校验数据,影响统计分析的可靠性。
因此,合理的做法是:端侧保持简单,网关承担协议收敛与标准化,云平台负责接入与校验,数据湖保留原始与加工后的多版本数据,临床试验系统只消费经过映射和校验的数据集。每一层只做自己该做的事,层间通过稳定接口通信,这样整套设备接入体系才能既满足临床试验的合规要求,又具备工程上的可维护性和扩展性。