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

透析机数据解码对照文档(基于当前 index.js

数据来源:结果全部.txt(hex 文本)

解码方式:hex -> bytes -> UTF-16LE(XML) -> OBX 参数

1. 原始数据(hex)示例

以下为文件起始片段(节选):

3C 00 3F 00 78 00 6D 00 6C 00 20 00 76 00 65 00 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 2E 00 30 00 22 00 20 00 65 00 6E 00 63 00 6F 00 64 00 69 00 6E 00 67 00 3D 00 22 00 55 00 54 00 46 00 2D 00 38 00 22 00 3F 00 3E 00
0A 00 3C 00 4F 00 52 00 55 00 5F 00 52 00 33 00 31 00 3E 00 0A 00 20 00 20 00 20 00 20 00 3C 00 4D 00 53 00 48 00 3E 00 ...

说明:
- 3C 00 对应字符 <(UTF-16LE)。
- 这类数据不能当“普通文本”发送,必须按**原始字节流**发送。

2. 解码后 XML(同一段数据)

对应的 UTF-16LE 解码结果(节选):

<ORU_R31>
    <MSH>
        <MSH.1>|</MSH.1>
        <MSH.3><HD.1>Gambro_48</HD.1></MSH.3>
        <MSH.4><HD.1>SW_8.60.02_SN_34856</HD.1></MSH.4>
        <MSH.7><TS.1>20260314111223</TS.1></MSH.7>
        <MSH.9><MSG.1>ORU</MSG.1><MSG.2>R31</MSG.2></MSH.9>
        <MSH.15>NE</MSH.15>
        <MSH.16>NE</MSH.16>
        <MSH.18>UNICODE</MSH.18>
    </MSH>

    <ORU_R31.OBSERVATION>
        <OBX>
            <OBX.3><CE.1>0</CE.1><CE.2>Operating Phase</CE.2></OBX.3>
            <OBX.5><FN.1>HDF POST</FN.1></OBX.5>
            <OBX.6><CE.1>-</CE.1></OBX.6>
        </OBX>
    </ORU_R31.OBSERVATION>
</ORU_R31>

3. 关键字段对照(原始 -> 解码)

首帧解析结果:
- 设备:SW_8.60.02_SN_34856
- 时间:20260314111223
- OBX 数量:25

原始 XML 路径 原始值(节选) index.js 解码输出
MSH.4/HD.1 SW_8.60.02_SN_34856 设备编号
MSH.7/TS.1 20260314111223 帧时间
OBX.3/CE.1=0 + OBX.5/FN.1 HDF POST 治疗阶段 = HDF POST
OBX.3/CE.1=1 + OBX.5/FN.1 2639.000000 + s 剩余时间 = 2639 s
OBX.3/CE.1=2 + OBX.5/FN.1 2.270000 + l 超滤量 = 2.270000 l
OBX.3/CE.1=3 + OBX.5/FN.1 0.700000 + l/hr 超滤率 = 0.700000 l/hr
OBX.3/CE.1=6 + OBX.5/FN.1 230.000000 + ml/min 血流速 = 230.000000 ml/min
OBX.3/CE.1=7 + OBX.5/FN.1 36.300000 + cel 温度 = 36.300000 cel
OBX.3/CE.1=12 + OBX.5/FN.1 205.000000 + mmHg TMP = 205.000000 mmHg
OBX.3/CE.1=13 + OBX.5/FN.1 150.000000 + mmHg 静脉压 = 150.000000 mmHg
OBX.3/CE.1=14 + OBX.5/FN.1 -130.000000 + mmHg 动脉压 = -130.000000 mmHg
OBX.3/CE.1=32 + OBX.5/FN.1 230.000000 + ml/min 设定血流速 = 230.000000 ml/min
OBX.3/CE.1=34 + OBX.5/FN.1 2.800000 + l 设定超滤量 = 2.800000 l
OBX.3/CE.1=61 + OBX.5/FN.1 86.000000 + pulse 心率 = 86.000000 pulse
OBX.3/CE.1=65 + OBX.5/FN.1 34.000000 + % QF/QB = 34.000000 %
OBX.3/CE.1=67 + OBX.5/FN.1 14.980000 + l Conv Vol = 14.980000 l
OBX.3/CE.1=68 + OBX.5/FN.1 4.540000 + l/hr Conv Clear = 4.540000 l/hr

4. 可复现命令

Set-Location D:\gitData\Jb-Communication
node .\index.js --decode-file .\结果全部.txt --hex --utf16le

如果要同时看每次 TCP 收包原始内容:

node .\index.js --host <设备IP> --port 3021 --print-rx --print-rx-max 2000