Beckman Coulter LH Series Workstation 主机传输规范
文档类型:血液分析仪 LIS 主机接口规范 厂商:Beckman Coulter, Inc.(贝克曼库尔特) 产品:COULTER® LH Series Workstation(LH 750 / LH 500 血液分析仪) 文档编号:PN 4277303C(September 2003,Revision C,Software Version 2B) 来源规范:STKS 1G.1 + Retics 格式 + LH 750 Workstation 扩展格式
一、概述
本规范定义了 Beckman Coulter LH 系列血液分析仪工作站与 LIS/HIS 主机计算机之间的双向通信协议。支持两种高层协议格式:
- STKS 1G.1 + Retics 格式 — 兼容 STKS™ 和 MAXM™ 既有接口,用于已有系统升级
- LH 750 Workstation 格式 — 扩展格式,支持 CBC、DIFF(分类)、网织红细胞(Retic)参数,以及质控、图形数据传输等
支持仪器型号:LH 750、LH 500
二、硬件接口
- 物理接口:EIA RS-232-C,25-pin D-sub(LH 500 配 9→25 针转接头)
- 设备类型:DTE(Data Terminal Equipment)
- 使用信号:
| 引脚 | 信号 | 方向 |
|---|---|---|
| 2 | TXD(发送数据) | 工作站 → 主机 |
| 3 | RXD(接收数据) | 主机 → 工作站 |
| 4 | RTS(请求发送) | 工作站 → 主机 |
| 5 | CTS(清除发送) | 主机 → 工作站 |
| 6 | DSR(数据装置就绪) | 主机 → 工作站 |
| 7 | SG(信号地) | — |
| 20 | DTR(数据终端就绪) | 工作站 → 主机 |
- 硬件握手:CTS 流控。主机拉高 CTS 允许发送,拉低暂停发送。CTS 必须在超时周期内重新拉高,否则传输超时重置
- 无硬件握手时:需短接 pin4→pin5,pin20→pin6
- DTE 主机需用 NULL MODEM 线
三、通信参数
| 参数 | 可选值 | 默认 |
|---|---|---|
| 波特率 | 2400 / 4800 / 9600 / 19200 / 38400 | — |
| 数据位 | 7 / 8 bit | — |
| 校验位 | Odd / Even / None | Odd |
| 停止位 | None / 1 / 2 | 2 |
| 超时 | 30 / 60 / 90 秒 | 90 秒 |
| 块大小 | 128 / 256 字节 | 256 字节 |
| 握手 | Full Software / No Handshake | — |
| 图形传输 | RBC / PLT / WBC Threshold / DIFF / Retic DataPlot | 可选 |
注意:非图形传输最低推荐 2400 baud,图形传输最低推荐 9600 baud。
四、工作站 → 主机(结果上传)
4.1 数据链路层(Low Level Protocol)
一次样本传输由一个或多个数据块组成,最多 255 块。
传输流程(全软件握手):
工作站 (发) 主机 (收)
SYN(就绪) ------->
<------- SYN(可以发)
块计数(2B) ------->
<------- ACK(准备接收) / NAK(中止)
[循环每块]
数据块 ------->
<------- ACK(接收成功) / NAK(重传本块) / SYN(从第1块重传)
SYN(全部完成) ------>
<------- ACK(接受传输)
No Handshake 模式:忽略所有软硬件握手响应,不发 SYN 前缀。CTS 仅表示主机在线。
4.2 数据块结构
┌─────┬──────────┬────────────┬──────┬─────┐
│ STX │ BLK NBR │ DATA │ CRC │ ETX │
│ 1B │ 2B(ASCII)│ 128/256B │ 4B │ 1B │
└─────┴──────────┴────────────┴──────┴─────┘
- STX = 0x02(Start of Text)
- BLK NBR:块序号,ASCII 十六进制,首块为 “01”
- DATA:128 或 256 字节,不足补空格(0x20)
- CRC:4 字节 ASCII 十六进制,MSB在前,LSB在后
- ETX = 0x03(End of Text)
- 校验算法:修改版 CCITT CRC-16,仅计算数据部分
4.3 表示层(消息结构)
数据块拼接后形成完整消息,结构为:
PREAMBLE → GROUP 1 → GROUP 2 → ... → GROUP n → POSTAMBLE
- 前导码(Preamble):10 组 “CLRF”(CR/LF 对),表示消息开始
- 后导码(Postamble):DC1 + CR/LF,表示消息结束
组(Group)结构:
DC1 (0x11) → 字段计数(2B ASCII Hex) → 字段1 → 字段2 → ... → 字段N
每个字段以 CR/LF 结尾。字段格式:Tag + 空格 + 数据。
⚠️ 重要:组内字段顺序不固定,不能用位置识别,必须用 Tag 识别。字段可能被省略。不要假设固定偏移量。
4.4 数据类型
| 类型 | 含义 | 字符范围 |
|---|---|---|
| A | Alpha | a-z, A-Z, 空格 |
| N | Numeric | 0-9, +, -, . |
| X | 可打印字符 | 0x20 - 0x7E |
| SP | 空格 | 0x20 |
4.5 组定义总览
| 组号 | 组名 | 1G.1+Retics | LH 750 |
|---|---|---|---|
| 1 | General Information(基本信息) | ✓ | ✓ |
| 2 | CBC Parameters(CBC 参数) | ✓ | ✓ |
| 3 | DIFF Count Parameters(分类计数) | ✓ | ✓ |
| 4 | DIFF Percent Parameters(分类百分比) | ✓ | ✓ |
| 5 | Comment(注释) | ✓ | ✓ |
| 6 | Flags(标志)/ Definitive Flags | ✓(Flags) | ✓ |
| 7 | Suspect Flags(可疑标志) | — | ✓ |
| 8 | Conditional Flags(条件标志) | — | ✓ |
| 9 | Other Flags(其他标志) | — | ✓ |
| 10 | Demographics(人口统计) | ✓(组7) | ✓ |
| 11 | RBC Histogram(红细胞直方图) | ✓(组11) | ✓(组14) |
| 12 | PLT Histogram(血小板直方图) | ✓(组12) | ✓(组15) |
| 13/16 | RETIC Parameters(网织红细胞参数) | ✓(组13) | ✓(组16) |
| 26 | WBC Threshold(白细胞阈值) | — | ✓ |
| 27 | WBC Threshold Full Histogram | — | ✓ |
| 31 | DIFF Latex Parameters | — | ✓ |
| 32 | RETIC Latex Parameters | — | ✓ |
| 34 | Control Information(质控信息) | — | ✓ |
| 35 | Control CBC Parameters(质控CBC) | — | ✓ |
| 36 | Control DIFF Count(质控分类计数) | — | ✓ |
| 37 | Control DIFF Percent(质控分类百分比) | — | ✓ |
| 38 | Control RETIC Parameters(质控网织红) | — | ✓ |
| 50 | DIFF Graphics(分类散点图) | — | ✓ |
| 51 | Retic Graphics(网织红散点图) | — | ✓ |
4.6 基本信息组(Group 1)关键字段
| Tag | 字段 | 格式 | 长度 |
|---|---|---|---|
| DATE | 运行日期 | MM/DD/YY | 9B |
| TIME | 运行时间 | HH:MM:SS | 12B |
| ID1 | 样本ID | X | 16B |
| ID2 | 患者姓名 | X | 16B(姓, 名) |
| CASS/POS | cassette/位置号 | XXXX/XX | 8B |
| SEQUENCE | 序号 | X | 7B |
| 1EC/P | 1E cassette/位置 | AXXXXXX | 8B |
| ID1STATUS | ID1状态 | A | 2B(P/E/N/空格) |
| C/PSTATUS | cass/pos状态 | A | 2B |
| WLSTATUS | ToDo列表状态 | AAAAAAAA | 9B |
ID状态优先级:E(编辑)> N(自动编号)> P(阳性ID)> 空格
4.7 CBC 参数组(Group 2)
参数列表:WBC, RBC, HGB, HCT, MCV, MCH, MCHC, RDW, PLT, PCT, MPV, PDW(部分)
每个参数字段包含:数值 + 标志位。标志位表示异常方向(高/低)、线性异常、结果不可用等。
4.8 LH 750 质控数据(Groups 34-38)
LH 750 格式新增质控组:
- Group 34:Control Information(质控信息)
- Group 35:Control CBC Parameters(质控CBC参数)
- Group 36:Control DIFF Count(质控分类计数)
- Group 37:Control DIFF Percent(质控分类百分比)
- Group 38:Control RETIC Parameters(质控网织红参数)
4.9 图形数据传输
LH 750 格式支持传输:
- RBC / PLT / WBC Threshold 直方图(Group 14/15/27)
- DIFF DataPlot(散点图,Group 50)
- Retic DataPlot(散点图,Group 51)
DataPlot 格式包含:数据头 + 数据块 + 渲染信息块(调色板、位图库、Dataplot 头),第 8 章详述重建方法。
五、主机 → 工作站(ToDo List 下载)
5.1 数据链路层
与工作站→主机类似,但用 ENQ 替换 SYN 作为起始字符。工作站必须使用全握手。
主机 (发) 工作站 (收)
ENQ(就绪) ------->
<------- ENQ(可以发) / SYN(忙)
块计数(2B) ------->
<------- ACK(准备接收) / NAK(中止)
[循环每块]
数据块 ------->
<------- ACK / NAK(重传本块) / ENQ(从第1块重传)
ENQ(全部完成) ------>
<------- ACK(接受) / NAK(拒绝) + DLE响应码
错误处理:同一块连续 NAK 3 次,工作站中止并等待下次传输。
5.2 表示层(消息结构)
PREAMBLE → INTRO → FIELD 1 → FIELD 2 → ... → FIELD N
前导码(Preamble):
SOH (0x01) + 字段数(2B ASCII Hex) + CR/LF
字段数 = intro字段数 + 所有数据字段数
Intro 字段:
记录类型(2B) + 操作码(2B) + CR/LF
- 记录类型:
WL= ToDo List - 操作码:
| 操作码 | 含义 |
|---|---|
| AD | Add or Update(添加或更新) |
| UN | Unique(唯一,患者ID不能重复) |
| RU | Reuse(重用,已存在则清除人口学信息) |
| DE | Delete(删除) |
5.3 DLE 响应码(表示层)
数据链路成功后,工作站返回 DLE + 一个字符表示接受/拒绝:
| 响应码 | 含义 |
|---|---|
| DLE A | 接受,可继续发送 |
| DLE B | 接受,但不要继续发 |
| DLE C | 拒绝,重试 |
| DLE D | 拒绝,放弃 |
| DLE E | 拒绝,至少有一个重复的待检测试请求 |
| DLE F | 拒绝,患者ID已存在于数据库 |
注意:可配置将 DLE E 替换为 DLE C(向后兼容)。
Delete 专属响应码:
- DLE G:患者ID字段格式错误
- DLE H:测试字段格式错误
- DLE I:ToDo列表项未删除
5.4 消息字段定义
| Tag | 字段 | 长度 | 依赖 |
|---|---|---|---|
| ID | Patient ID(患者ID) | 16B | — |
| PL | Patient Last Name(姓) | 16B | ID |
| PF | Patient First Name(名) | 16B | ID |
| SN | Sequence Number(序号) | 6B | Test |
| BD | Birth Date(出生日期) | 10B (MM/DD/YYYY) | ID |
| SX | Sex(性别) | 1B | ID |
| LOC | Location(位置) | 16B | Test |
| PHL | Physician Last Name(医生姓) | 16B | Test |
| PHF | Physician First Name(医生名) | 16B | Test |
| UF1/UF2/UF3 | 用户字段1/2/3 | 16B×3 | Test |
| COM | Comments(注释) | 40B | Test |
| RP | Report Profile(报告模板) | 8B | Test |
| SDD | Sample Drawn Date(采样日期) | 10B | Test |
| SDT | Sample Drawn Time(采样时间) | 8B | Test |
| TST | Test(测试请求) | 可变 | — |
| SLR | Slide Request(玻片请求) | 可变 | Test |
⚠️ 字段不能有前导或尾随空格,否则消息将被拒绝。
5.5 AD / UN / RU 操作对比
| 场景 | AD(Add/Update) | UN(Unique) | RU(Reuse) |
|---|---|---|---|
| ID 都不存在 | 添加 | 添加 | 添加 |
| 患者ID存在但样本ID不在ToDo | 添加+更新所有同患者人口学信息 | 拒绝(DLE F) | 添加+清除所有同患者人口学信息 |
| 样本ID已在ToDo | 拒绝(DLE E/C)+更新人口学信息 | 拒绝(DLE F) | 拒绝(DLE E/C)+清除人口学信息 |
| 格式错误 | 拒绝(DLE C/D) | 拒绝(DLE C/D) | 拒绝(DLE C/D) |
5.6 测试请求(Test 字段)
支持的测试类型:
- C = CBC
- CD = CBC + DIFF
- CDR = CBC + DIFF + RETIC
- CR = CBC + RETIC
- R = RETIC
- D = DIFF
可组合多测试请求,详见 Table 5.3。
六、CRC 算法
- 算法:修改版 CCITT CRC-16
- 计算范围:仅数据部分(不含 STX、块号、CRC、ETX)
- 结果长度:16-bit,传输为 4 个 ASCII 十六进制字符(MSB 在前)
- 第 7 章提供了 ASM86 和 C 语言实现示例
七、其他功能
7.1 Spooler(假脱机)
传输结果自动缓存到 Spooler,直到主机确认接收。主机离线时所有传输排队等待。可手动清空 Spooler。
7.2 主机通信禁用
可在系统设置中禁用自动上传(不影响手动传输和主机下发)。
7.3 验证码
启用后,各测试组的验证状态(AutoValidation)会在条件标志组中传输。仅 LH 750 格式适用。
7.4 Collate ToDo List
ToDo List 生成基于任务预分配,通过预分配测试面板确定哪些数据需要合并到最终报告中。
八、版本历史
| 版本 | 日期 | 软件版本 | 主要变更 |
|---|---|---|---|
| Initial Issue | 7/01 | 1A | 初始版本 |
| Revision B | 4/02 | 2A | 更新稀释因子说明;删除 “Subset” 引用;新增 WBC Threshold Full Histogram 组;新增 3.18 Collate ToDo List;通用信息组从 29 组减至 24 组 |
| Revision C | 9/03 | 2B | 新增 3.19 节(Replace V and v Flags with R);更新多表格 |
关联笔记
- Sysmex XE-5000血液分析仪数据通信规范 — Sysmex 血液分析仪 LIS 接口(自定义协议 + ASTM)
- Beckman Coulter UniCel DxH 800 血液分析仪主机接口传输手册 — 贝克曼库尔特高端血液分析仪(CLSI LIS1-A/LIS2-A 标准)
- 迈瑞BC-5300系列血液分析仪 — 迈瑞血液分析仪
- IS1200控制台软件与LIS系统通信协议 — 生化分析仪 ASTM 协议参考
- 雅培 ARCHITECT 系统 RS-232 标准接口手册 — 免疫分析仪 CLSI 标准协议参考