BLE 检测流程详解
首先重要的信息:
- 关注 step 类型; 为 message 是非中断流程的信息; 做提醒使用
以下将按照检测项的分类来说明功能和具体操作.
这里列举的检测项是 百合医 官方SDK 支持的所有检测项列表(在持续扩展中...);
具体的检测项支持情况; 以具体设备为准;
比如 Y916设备: 支持的检测项为 血压、血糖、尿酸、血酮;
目前 BLE 支持的检测项
点击下方可直达!
| 血压 | 血糖 | 尿酸 | 血酮 | 血脂 | 体脂 | 血氧 | 体温 | 尿常规 | 肺功能 | 心电 (动态、静态) | C反应蛋白 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 👉 血压 | 👉 血糖 | 👉 尿酸 | 👉 血酮 | 👉 血脂 | 👉 体脂 | 血氧 | 体温 | 尿常规 | 肺功能 | 心电 (动态、静态) | C反应蛋白 |
| 糖化血红蛋白 | 动态体温 | 动态血糖 | 脉诊 | 酒精 | 白细胞 | 睡眠监测 |
|---|---|---|---|---|---|---|
| 糖化血红蛋白 | 动态体温 | 动态血糖 | 👉 脉诊 | 酒精 | 白细胞 | 睡眠监测 |
血压
指令信息
具体如何获取支持的交互指令; 可查阅 👉 获取指令列表
以下序号指 SDK返回的指令列表下标
检测项支持如下交互指令:
| 序号 | 指令名称 | 作用 |
|---|---|---|
| 0 | 开始测量 | 控制设备开始测量血压 |
| 1 | 结束测量 | 测量期间中止 |
检测流程
- 通过开始测量(序号0), 控制设备开始工作
- 设备开始工作后; 会实时上报 气压值、心率、 等信息
- 测量过程中出现错误; 需要终止或者重新开启新一轮测量流程
- 测量完成之后 会返回 正确的 高压、低压、心率等数据
字段解释
| 流程 | 字段 | 含义 | 备注 |
|---|---|---|---|
| 全流程 | checkCode | 检测项ID | 16-表示为血压 |
| 全流程 | check | 检测项名称 | 血压 |
| countDown | press | 压力值 | - |
| countDown | heart | 心率值 | - |
| result | systolic | 高压 | - |
| result | diastolic | 低压 | - |
| result | pulse | 心率 | - |
| result | heartAnomaly | 是否有心率不齐 | - |
| error | code desc suggestion | 错误代码、详情、建议 | 01 - 归零超时 - (①归零时保持袖带不动
②如连续频繁出现,请返厂检查
请点击下方视频或前往“去咨询”联系客服) 02 - 周围杂讯太多干扰 - (因周围杂讯太多,无法测到设备中电压信号,请换个地方重新操作。 如还未能解决,请点击“去咨询”联系客服) 03 - 测量失败 - (臂带是否佩戴正确,若连续三次出现以上问题,请点击下方视频或前往“去咨询”联系客服) 04 - 袖带佩戴异常 - (①调整袖带,松紧度绑好后刚好可插入两根手指为宜,袖带气管口保持在手肘窝上2cm位置。 ②连续测量,请重新插臂带气嘴(排余气) 如还未能解决,请点击“去咨询”联系客服。) 05 - 测量错误 - (请休息2分钟,调整袖带,测量过程保持安静,不要移动和说话。 请点击“去咨询”联系客服。) 06 - 测量错误 - (请休息2分钟,调整袖带,测量过程保持安静,不要移动和说话。 请点击“去咨询”联系客服。) 07 - 电量不足 - (请充完电后再使用。温馨提示:使用电压为3.6V±0.2V的适配器充电。 如还未能解决,请点击“去咨询”联系客服。) 08 - 未能检测到压力值 - (请检查臂带是否紧密贴合或确认蓝牙连接状态) 11 - 测量压力超过设定保护点 - (请检查臂带是否紧密贴合. 稍后再次测量血压) |
数据事例
点我展开/折叠
血糖、尿酸、血酮
指令信息
具体如何获取支持的交互指令; 可查阅 👉 获取指令列表
以下序号指 SDK返回的指令列表下标
检测项支持如下交互指令:
| 序号 | 指令名称 | 作用 |
|---|---|---|
| 0 | 终止测量 | 测量期间中止 |
检测流程
- 通过插入试纸条; 主动出发开始测量过程
- 设备开始工作后; 会实时上报 倒计时 信息
- 测量过程中出现错误; 需要终止或者重新开启新一轮测量流程
- 测量完成之后 会返回 正确的 测量值、温度等数据
字段解释
| 流程 | 字段 | 含义 | 备注 |
|---|---|---|---|
| 全流程 | checkCode | 检测项ID | 1-表示为三合一 |
| 全流程 | check | 检测项名称 | 三合一 |
| 全流程 | strip | 检测子项ID | 0x10 - 血糖 0x40 - 尿酸 0x50 - 血酮 |
| 全流程 | stripName | 检测子项名称 | - |
| wakeup | - | 设备通电 | 不可依赖此状态;做逻辑 |
| start | - | 开始插入 | - |
| join | code | 密码 | - |
| pwd | code | 密码 | - |
| countDown | value | 倒计时 | - |
| result | heartAnomaly | 是否有心率不齐 | - |
| error | code desc suggestion | 错误代码、详情、建议 | 03 - 存储数据读取错误 - (数据传输失败。请重 新操作。
如还未能解决,请点击“去咨询”联系客服。) 04 - 存储数据上传错误 - (数据传输失败。请重新操作。 如还未能解决,请点击“去咨询”联系客服。) 23 - 使用错误试纸;①试纸不匹配;②插错插孔;③错误操作,先吸血再插的试纸。;②将未吸过血的试纸正面朝上,按箭头方向插入试纸孔。;如还未能解决,请点击“去咨询”联系客服。 - (①请核对试纸型号 ②将未吸过血的试纸正面朝上,按箭头方向插入试纸孔。 如还未能解决,请点击“去咨询”联系客服。) 24 - 试纸不匹配或已失效 - (①请核对试纸型号 ②请核对试纸保质期,更换新试纸测试。 如还未能解决,请点击“去咨询”联系客服。) 54 - 环境温度超出使用范围 - (请将仪器放置在5-40℃室温下静止20分钟,再使用。 如还未能解决,请点击“去咨询”联系客服。) 45 - 测量中操作中断 - (测试中,切勿拔出试纸。请更换试纸重新测量。 如还未能解决,请点击“去咨询”联系客服。) 62 - 储存数据出错 - (数据传输失败。请重新操作。 如还未能解决,请点击“去咨询”联系客服。) 77 - 多功能测试仪与检测助手连接不当 - (请拔掉多功能测试仪,8秒后再插入使用。 如还未能解决,请点击“去咨询”联系客服。) |
血脂
指令信息
具体如何获取支持的交互指令; 可查阅 👉 获取指令列表
以下序号指 SDK返回的指令列表下标
检测项支持如下交互指令:
| 序号 | 指令名称 | 作用 |
|---|---|---|
| 0 | 获取Code | 获取密码 |
| 1 | 切换为血清 | - |
| 2 | 切换为全血 | - |
| 3 | 终止测量 | 终止测量 |
检测流程
- 通过插入 血脂 外挂设备; SDK 会上报开始测量环节
- 设备识别完成 会上报 Code 信息
- 设备开始工作后; 会实时上报 倒计时 信息; 以及 Message、Error信息
- 测量过程中出现错误; 需要终止或者重新开启新一轮测量流程
- 测量完成之后 会返回 正确的 测量数据 高密、低密、总胆 等数据
字段解释
| 流程 | 字段 | 含义 | 备注 |
|---|---|---|---|
| 全流程 | checkCode | 检测项ID | 4-表示为血脂 |
| 全流程 | check | 检测项名称 | 血脂 |
| pwd | code | 密码 | - |
| pwd | codeIndex | 密码段 | 发生在设备需要第二段密码数据时; 收到后需要发送第二段密码给设备端 |
| success | - | - | 密码设置成功之后 |
| start | - | - | 开始进入测量阶段; 不稳定流程 不可作为业务逻辑判断 |
| countDown | value | 倒计时 | - |
| result | units | 单位信息 | 包含key(下标)、value(值)、name(名称) |
| result | hdl | 高密度脂蛋白 | 为0时; 业务系统控制展示逻辑 |
| result | tg | 甘油三酯 | 为0时; 业务系统控制展示逻辑 |
| result | tc | 总胆固醇 | 为0时; 业务系统控制展示逻辑 |
| result | tc_hdl | 动脉粥样硬化指数 | - |
| result | ldl | 低密度脂蛋白 | 为0时; 业务系统控制展示逻辑 |
| message | code desc suggestion | 过程中闪念信息 | 00 - 正在等待滴血 - (操作建议以SDK返回为准) 01 - 正在检测滴血量 - (操作建议以SDK返回为准) 02 - 滴血完成 - (操作建议以SDK返回为准) 03 - 滴血不足(血脂) - (操作建议以SDK返回为准) |
| error | code desc suggestion | 错误代码、详情、建议 | 129 - 用户中断测试 - (测试中,切勿按任何按键中断测试,请换新测试卡测试。
如还未能解决,请点击“去咨询”联系客服。) 130 - 测试完成用户拨出测试卡 - (请更换测试卡继续测量。 如还未能解决,请点击“去咨询”联系客服。) 131 - 滴血不足 - (滴血时,一定要充足,请换新测试卡测试。 请点击下方视频或前往“去咨询”联系客服) 132 - 系统计算出错 - (请更换测试卡重新测量。 如还未能解决,请点击“去咨询”联系客服。) 133 - 测试中用户拨出测试卡 - (请更换测试卡重新测量。如还未能解决,请点击“去咨询”联系客服。) 00 - 试纸不匹配 - (请插入新匹配试纸) 01 - 未检测到纸条 - (请插入试纸) 02 - 无效试纸 - (请插入新试纸) 03 - 用过的试纸 - (请插入新试纸) 04 - 代码卡与试条不符 - (请核对密码) 05 - 测试完成 - (请拔出外挂) 06 - 暂无 Code 信息 - (请插入对码卡, 或者使用百合医App扫描对码) 07 - Code 设置成功 - (请重新获取新Code) 250 - 提前结束了 - (测试完成后的提示) 251 - 测试超时完成 - (请更换测试卡继续测试) 252 - 用户中断了 - (用户中断了) 253 - 测试中用户拨出测试卡 - (请更换测试卡重新测量。如还未能解决,请点击“去咨询”联系客服。) |
算法介绍
血脂产品有如下算法释义:
- 单位转换算法
- LDL、C/H 算法
单位转换算法
按照SDK返回的单位情况;
tg: mmol/L = mg/dL / 88.57
除tg外: mmol/L = mg/dL / 38.67
LDL、C/H 算法
甘油三酯的测试结果作为计算LDL公式分段的标准:
当甘油三酯(TG)测试结果≤142mg/dL时,LDL=TC-HDL-TG/5mg/dL;
当甘油三酯(TG)测试结果>142mg/dL时,LDL=0.8*(TC-HDL)-TG/22.8mg/dL。
业务展示建议
如遇 HDL、TG、TC、LDL、C/H 为 0 情况:
主要原因为 操作滴血方式不对或者血液凝固 问题.
LDL、C/H 主要是测算而来; 因此 TC、HDL、TG 的值会影响测算结果!
以单位为 mmol/L 为例:
| 中文 | 子项 | 范围 | 范围外展示 |
|---|---|---|---|
| 高密度脂蛋白胆固醇 | HDL | [0.39, 2.59) | Hi、Lo |
| 甘油三酯 | TG | [0.51,7.34) | Hi、Lo |
| 总胆固醇 | CHOL(TC) | [2.59, 12.93) | Hi、Lo |
| 低密度脂蛋白胆固醇 | LDL | [0, 12.31] | 数值 或者 Hi、Lo展示 |
| 总胆/高密度 | C/H | > 0 | 展示数值即可 |
体脂
测量前准备
体脂设备通常不需要业务端发送“开始测量”指令。用户上秤后,设备会自动开始称重并通过 SDK 持续上报测量数据。
体脂算法依赖用户信息。开始测量前,请先通过 SDK 配置当前用户的性别、年龄、身高和体重;用户信息缺失或不准确会影响 BMI、体脂率、肌肉量等算法结果。
测量时请注意:
- 保持设备处于已连接状态。(屏幕点亮;并且蓝牙图标亮起)
- 用户赤脚站上体脂秤,并按设备要求接触全部电极。
- 测量过程中保持身体稳定,不要下秤或移动。
- 业务端可实时展示体重,但只有
isStabilized为true时才应将数据作为最终结果保存。 - 部分设备只支持体重,或未检测到有效阻抗,此时体脂、肌肉、水分等算法字段可能为
0。
ps: 点亮体脂秤的方式: 可用脚先轻轻踩一下
检测流程
示例数据中 isStabilized 为 true,表示体重已经稳定;但 imp、impendences 等阻抗数据为 0,因此多数身体成分结果也为 0。业务端不要把 0 自动解释为用户真实测量值,应结合设备能力、阻抗值和稳定状态判断该指标是否有效。
结果类型:
- 包含 身体成分结果
- 不包含 身体成分结果
两种结果; 不包含的 需要确认是否按照要求 进行测量; 可按照测量要求在此进行测量
如遇如下问题:
- 长时间 未返回结果;
- 体脂秤已熄屏
可等待体脂秤 熄屏后 再次尝试;
字段解释
通用与测量状态
| 字段 | 含义 | 单位/说明 |
|---|---|---|
checkCode | 检测项 ID | 32 表示体脂 |
check | 检测项名称 | 体脂 |
time | 测量时间 | Unix 时间戳;具体为秒或毫秒以 SDK 实际版本为准 |
userId | 参与算法计算的用户 ID | 未绑定用户时可能为 0 |
state | 设备或测量状态 | 枚举值以具体设备协议和 SDK 版本为准 |
isStabilized | 当前体重是否已经稳定 | true 时可作为最终测量结果处理 |
electrode | 电极数量 | 示例为 4,SDK 同时支持 4 电极和 8 电极设备 |
bfa_type | 体脂算法/设备类型标识 | 枚举含义以具体 SDK 版本为准 |
data_calc_type | 数据计算方式标识 | 枚举含义以具体 SDK 版本为准 |
temperature | 设备返回的温度 | 是否支持及单位以设备为准 |
isSupportHR | 设备是否支持心率 | 布尔值 |
hr | 心率 | bpm;不支持或未测得时可能为 0 |
体重与秤精度
| 字段 | 含义 | 单位/说明 |
|---|---|---|
weight_g | 体重 | g |
weight_kg | 体重 | kg |
weight_lb | 体重 | lb(磅) |
weight_st | 体重的英石整数部分 | st(英石) |
weight_st_lb | 英石制中的剩余磅数 | lb |
precision_kg | kg 显示精度 | 精度枚举/位数以设备为准 |
precision_lb | lb 显示精度 | 精度枚举/位数以设备为准 |
precision_st_lb | st:lb 显示精度 | 精度枚举/位数以设备为准 |
kg_scale_division | kg 分度值标识 | 枚举含义以设备为准 |
lb_scale_division | lb 分度值标识 | 枚举含义以设备为准 |
身体成分结果
| 字段 | 含义 | 常用单位/说明 |
|---|---|---|
bmi | 身体质量指数 | kg/m² |
bodyFatPercent | 体脂率 | % |
subcutaneousFatPercent | 皮下脂肪率 | % |
visceralFat | 内脏脂肪等级/指数 | 具体量纲以算法为准 |
bfmStandard | 标准脂肪量 | kg |
bfmControl | 脂肪控制量 | kg |
moisturePercent | 水分率 | % |
waterMassMin / waterMassMax | 水分量参考下限/上限 | kg |
proteinPercent | 蛋白质率 | % |
proteinMassMin / proteinMassMax | 蛋白质量参考下限/上限 | kg |
musclePercent | 肌肉率 | % |
muscleMassMin / muscleMassMax | 肌肉量参考下限/上限 | kg |
smPercent | 骨骼肌率 | % |
smmMin / smmStandard / smmMax | 骨骼肌量参考下限/标准值/上限 | kg |
smi | 骨骼肌指数 | kg/m²,具体计算方式以算法为准 |
boneMass | 骨量 | kg |
boneMin / boneMax | 骨量参考下限/上限 | kg |
bmr | 基础代谢率 | kcal/day |
bmrMin / bmrStandard / bmrMax | 基础代谢参考下限/标准值/上限 | kcal/day |
whr | 腰臀比 | 无量纲 |
obesityDegree | 肥胖度 | 通常为百分比,具体口径以算法为准 |
bodyType | 体型分类 | 枚举值以 SDK 算法为准 |
bodyScore | 身体评分 | 评分范围以 SDK 算法为准 |
physicalAge | 身体年龄 | 岁 |
标准值与控制目标
| 字段 | 含义 | 单位/说明 |
|---|---|---|
weightMin / weightStandard / weightMax | 体重参考下限/标准值/上限 | kg |
targetWeight | 目 标体重 | kg |
weightControl | 建议体重控制量 | kg;正负方向以 SDK 算法定义为准 |
bmiMin / bmiStandard / bmiMax | BMI 参考下限/标准值/上限 | kg/m² |
bfpMin / bfpStandard / bfpMax | 体脂率参考下限/标准值/上限 | % |
bfmMin / bfmStandard / bfmMax | 脂肪量参考下限/标准值/上限 | kg |
ffmStandard | 标准去脂体重 | kg |
ffmControl | 去脂体重控制量 | kg |
阻抗数据
| 字段 | 含义 | 说明 |
|---|---|---|
imp | 主阻抗值 | 未测得有效阻抗时可能为 0 |
imp2 ~ imp5 | 其他通道/频率阻抗值 | 字段是否有效取决于设备电极数和协议能力 |
impendences | 阻抗值集合 | 数组顺序和通道含义以具体设备协议为准 |
impendenceType | 阻抗类型 | 枚举值以具体设备协议为准 |
impendenceProperty | 阻抗属性 | 枚举值以具体设备协议为准 |
分段身体成分 extData
8 电极或支持 分段测量的设备可能返回 extData。字段不受设备支持或未测得有效阻抗时可能为 0。
| 字段 | 含义 | 常用单位 |
|---|---|---|
all_body / all_body_kg | 全身脂肪率 / 全身脂肪量 | % / kg |
left_arm / left_arm_kg | 左臂脂肪率 / 左臂脂肪量 | % / kg |
right_arm / right_arm_kg | 右臂脂肪率 / 右臂脂肪量 | % / kg |
left_leg / left_leg_kg | 左腿脂肪率 / 左腿脂肪量 | % / kg |
right_leg / right_leg_kg | 右腿脂肪率 / 右腿脂肪量 | % / kg |
all_body_muscle / all_body_muscle_kg | 全身肌肉率 / 全身肌肉量 | % / kg |
left_arm_muscle / left_arm_muscle_kg | 左臂肌肉率 / 左臂肌肉量 | % / kg |
right_arm_muscle / right_arm_muscle_kg | 右臂肌肉率 / 右臂肌肉量 | % / kg |
left_leg_muscle / left_leg_muscle_kg | 左腿肌肉率 / 左腿肌肉量 | % / kg |
right_leg_muscle / right_leg_muscle_kg | 右腿肌肉率 / 右腿肌肉量 | % / kg |
枚举定义
以下枚举参考; 不同 SDK 版本可能调整支持范围,实际使用时请以当前集成版本为准。
设备类型 ICDeviceType
| 定义 | 说明 |
|---|---|
ICDeviceTypeUnKnown | 未知设备 |
ICDeviceTypeWeightScale | 体重秤 |
ICDeviceTypeFatScale | 体脂秤 |
ICDeviceTypeFatScaleWithTemperature | 带温度显示的体脂秤 |
ICDeviceTypeBalance | 平衡秤 |
设备子类型 ICDeviceSubType
| 定义 | 说明 |
|---|---|
ICDeviceSubTypeDefault | 未知或默认类型 |
ICDeviceSubTypeEightElectrode | 八电极设备 |
ICDeviceSubTypeEightElectrode2 | 八电极设备 2 |
ICDeviceSubTypeScaleDual | 双模设备 |
ICDeviceSubTypeColor | 彩屏秤 |
ICDeviceSubTypeNewScale | 新秤 |
ICDeviceSubTypeW | W 秤 |
体脂秤显示项 ICScaleUIItem
| 定义 | 显示项 |
|---|---|
ICScaleUIItemWeight | 体重 |
ICScaleUIItemBMI | BMI |
ICScaleUIItemBodyFatPercent | 体脂率 |
ICScaleUIItemMoisturePercent | 含水率 |
ICScaleUIItemMusclePercent | 肌肉率 |
ICScaleUIItemBoneMass | 骨量 |
ICScaleUIItemHR | 心率 |
ICScaleUIItemSmPercent | 骨骼肌率 |
ICScaleUIItemVisceralFat | 内脏脂肪 |
ICScaleUIItemSubcutaneousFatPercent | 皮下脂肪率 |
ICScaleUIItemProteinPercent | 蛋白率 |
ICScaleUIItemBodyType | 体型 |
ICScaleUIItemStageMuscle | 节段肌肉分析 |
ICScaleUIItemStageFat | 节段脂肪分析 |
ICScaleUIItemWeightTrends | 体重趋势 |
ICScaleUIItemBMITrends | BMI 趋势 |
ICScaleUIItemBodyFatTrends | 体脂趋势 |
ICScaleUIItemMuscleTrends | 肌肉趋势 |
ICScaleUIItemBaby | 抱婴界面 |
ICScaleUIItemPregnant | 孕妇界面 |
ICScaleUIItemRev | 预留 |
体重单位 ICWeightUnit
| 定义 | 单位 |
|---|---|
ICWeightUnitKg | 公斤(kg) |
ICWeightUnitLb | 磅(lb) |
ICWeightUnitSt | 英石(st) |
ICWeightUnitJin | 斤 |
用户与算法配置
| 枚举 | 定义 | 说明 |
|---|---|---|
ICSexType | ICSexTypeUnknown | 未知或保密 |
ICSexType | ICSexTypeMale | 男 |
ICSexType | ICSexTypeFemal | 女;SDK 定义名称为 Femal |
ICPeopleType | ICPeopleTypeNormal | 普通人 |
ICPeopleType | ICPeopleTypeSportman | 运动员;仅部分算法支持运动员模式 |
ICBMIStandard | ICBMIStandard1 | WHO 标准 |
ICBMIStandard | ICBMIStandard2 | 亚洲标准 |
ICBMIStandard | ICBMIStandard3 | 欧洲标准 |
ICBMIStandard | ICBMIStandard4 | 中国标准 |
ICBMIStandard | ICBMIStandard5 | 中国繁体地区标准 |
ICBFAType | ICBFATypeWLA01 | WLA01 算法;正常情况下使用 SDK 默认值即可 |
测量步骤 ICMeasureStep
onReceiveMeasureStepData 回调中的 step 使用以下枚举。不同步骤对应的 data 类型不同。
| 定义 | 测量阶段与数据类型 |
|---|---|
ICMeasureStepMeasureWeightData | 测量体重,data 为 ICWeightData |
ICMeasureStepMeasureCenterData | 测量平衡,data 为 ICWeightCenterData |
ICMeasureStepAdcStart | 开始测量阻抗 |
ICMeasureStepAdcResult | 阻抗测量结束,data 为 ICWeightData |
ICMeasureStepHrStart | 开始测量心率 |
ICMeasureStepHrResult | 心率测量结束,data 为 ICWeightData |
ICMeasureStepECGStart | 开始测量 ECG |
ICMeasureStepECG | ECG 测量中,data 为 ICECGData |
ICMeasureStepECGResult | ECG 测量结束,data 为 ICECGData |
ICMeasureStepMeasureOver | 测量结束 |
身体类型 bodyType
| 枚举值 | 身体类型 |
|---|---|
0 | 消廋型 |
1 | 偏瘦型 |
2 | 肌肉苗条型 |
3 | 苗条型 |
4 | 肌肉型 |
5 | 匀称型 |
6 | 运动员 |
7 | 略显肥胖型 |
8 | 肥胖型 |
9 | 偏胖型 |
10 | 隐形肥胖型 |
数据计算方式 data_calc_type
| 枚举值 | 说明 |
|---|---|
0 | SDK 计算 |
1 | 设备计算 |
子项目范围及说明
以下范围依据《2024.1.5 算法标准》整理。表格中的 min、max、标准值及理想值应优先使用 SDK 返回结果;业务端主要负责分级与展示,不建议自行替代 SDK 的身体成分算法。
体重与 BMI
| 子项目 | 取值/公式 | 范围及展示建议 |
|---|---|---|
| 体重 | SDK 返回的当前体重 | < weightMin:偏低(浅蓝);>= weightMin 且 < weightMax:标准(绿);>= weightMax:偏高(红) |
| BMI | SDK 返回值;原表采用 WHO 标准 | < 18.5:偏瘦(浅蓝);>= 18.5 且 < 25:正常(绿);>= 25 且 < 27:超重(橙);>= 27:严重超重(红) |
原表的“肥胖分析/肥胖评估”还区分国内外 BMI 标准:国外标准范围为 [18.5, 25),国内标准范围为 [18.5, 24)。业务端应根据产品适用地区选择标准,不要与上表的 WHO 分级混用。
脂肪相关指标
| 子项目 | 取值/公式 | 范围及展示建议 |
|---|---|---|
| 体脂率(男) | SDK 返回 bodyFatPercent | < 10%:偏瘦(深绿);[10%, 20%):正常(绿);[20%, 25%):超重(橙);[25%, 35%):严重超重(红);>= 35%:警示(深红) |
| 体脂率(女) | SDK 返回 bodyFatPercent | < 18%:偏瘦(深绿);[18%, 28%):正常(绿);[28%, 33%):超重(橙);[33%, 43%):严重超重(红);>= 43%:警示(深红) |
| 脂肪量 | 体重 × 体脂率 / 100 | 分级与对应性别的体脂率范围相同;bfmMin、bfmMax 为 SDK 返回的参考变量 |
| 去脂体重 | 体重 - 脂肪量 | 无分级,直接展示具体数值 |
| 皮下脂肪率(男) | SDK 返回 subcutaneousFatPercent | < 8.6%:偏低(浅蓝);[8.6%, 16.7%):标准(绿);>= 16.7%:偏高(红) |
| 皮下脂肪率(女) | SDK 返回 subcutaneousFatPercent | < 18.5%:偏低(浅蓝);[18.5%, 26.7%):标准(绿);>= 26.7%:偏高(红) |
| 内脏脂肪等级 | SDK 返回 visceralFat | < 10:标准(绿);>= 10:偏高(红),男女规则相同 |
肌肉与骨量
| 子项目 | 取值/公式 | 范围及展示建议 |
|---|---|---|
| 肌肉量 | 体重 × musclePercent / 100 | < muscleMassMin:偏低(浅蓝);[muscleMassMin, muscleMassMax]:标准(绿);> muscleMassMax:优(深绿) |
| 肌肉率 | SDK 返回 musclePercent | 沿用肌肉量分级;min = muscleMassMin / 当前体重 × 100,max = muscleMassMax / 当前体重 × 100。原表要求使用当前体重,不使用标准体重 |
| 骨骼肌量 | SDK 返回当前骨骼肌量 | percent = 当前骨骼肌量 / smmStandard × 100;< 90%:偏低(浅蓝);[90%, 110%]:标准(绿);> 110%:偏高(红) |
| 骨骼肌率 | 骨骼肌量 / 当前体重 × 100 | 沿用骨骼肌量分级,具体分级数值不单独展示 |
| 骨量 | SDK 返回 boneMass | < boneMin:偏低(浅蓝);[boneMin, boneMax]:标准(绿);> boneMax:优(深绿) |
蛋白质与体水分
| 子项目 | 取值/公式 | 范围及展示建议 |
|---|---|---|
| 蛋白量 | 体重 × proteinPercent / 100 | < proteinMassMin:偏低(浅蓝);[proteinMassMin, proteinMassMax):标准(绿);>= proteinMassMax:优(深绿) |
| 蛋白质率 | SDK 返回 proteinPercent | min = proteinMassMin / 当前体重 × 100,max = proteinMassMax / 当前体重 × 100;< min:偏低;[min, max]:标准;> max:优 |
| 含水量 | 体重 × moisturePercent / 100 | < waterMassMin:偏低(浅蓝);[waterMassMin, waterMassMax]:标准(绿);> waterMassMax:优(深绿) |
| 体水分率 | SDK 返回 moisturePercent | 沿用含水量分级;min = waterMassMin / 当前体重 × 100,max = waterMassMax / 当前体重 × 100;< min:偏低;[min, max):标准;>= max:优。原表要求使用当前体重 |
心率与心脏指数
| 子项目 | 取值/公式 | 范围及展示建议 |
|---|---|---|
| 心率 | SDK 返回 hr | < 40 bpm:不足(深蓝);[40, 60) bpm:偏低(浅蓝);[60, 100) bpm:标准(绿);[100, 160) bpm:偏高(橙);>= 160 bpm:高(红) |
| 心脏指数 | hr × (70 / (身高(cm) × 0.0061 + 体重(kg) × 0.0128 - 0.1529)) / 1000 | < 2.5:偏低(浅蓝);[2.5, 4.2):标准(绿);>= 4.2:偏高(红) |
心率适用于支持该能力的四电极和八电极设备。设备返回心率时展示,不支持或未返回时隐藏。
其他身体指标
| 子项目 | 取值/公式 | 范围及展示建议 |
|---|---|---|
| 基础代谢 | SDK 返回 bmr | 无分级,直接展示具体数值 |
| 身体年龄 | SDK 返回 physicalAge,并与当前用户年龄比较 | 原表记录为“用户年龄 < 身体年龄:优;用户年龄 >= 身体年龄:偏高”,该规则与常见认知可能相反,应用前需与算法方确认 |
| 腰臀比(亚 洲男性) | SDK 返回 whr | < 0.81:优;[0.81, 0.9]:标准;(0.9, 0.95]:偏高;> 0.95:高 |
| 腰臀比(亚洲女性) | SDK 返回 whr | < 0.73:优;[0.73, 0.8]:标准;(0.8, 0.86]:偏高;> 0.86:高 |
| 腰臀比(欧美男性) | SDK 返回 whr | < 0.85:优;[0.85, 0.9]:标准;(0.9, 0.95]:偏高;> 0.95:高 |
| 腰臀比(欧美女性) | SDK 返回 whr | < 0.75:优;[0.75, 0.8]:标准;(0.8, 0.86]:偏高;> 0.86:高 |
| 标准体重(男) | (身高(cm) / 100)² × 22 | 作为参考值,不单独分级 |
| 标准体重(女) | (身高(cm) / 100)² × 20.6 | 作为参考值,不单独分级 |
肥胖分析与评估
| 项目 | 偏低 | 标准 | 偏高 |
|---|---|---|---|
| BMI(国外) | < 18.5 | [18.5, 25) | >= 25 |
| BMI(国内) | < 18.5 | [18.5, 24) | >= 24 |
| 体脂率(男) | < 10% | [10%, 20%) | >= 20% |
| 体脂率(女) | < 18% | [18%, 28%) | >= 28% |
体型分 类使用 bodyType 身体类型枚举;obesityDegree 是肥胖度数值,不应按枚举解析:
| 枚举值 | 体型分类 |
|---|---|
0 | 消廋型 |
1 | 偏瘦型 |
2 | 肌肉苗条型 |
3 | 苗条型 |
4 | 肌肉型 |
5 | 匀称型 |
6 | 运动员 |
7 | 略显肥胖型 |
8 | 肥胖型 |
9 | 偏胖型 |
10 | 隐形肥胖型 |
肥胖度:
| 判定依据 | 肥胖度显示 |
|---|---|
bmi<18.5 | 偏瘦 |
bmi>=18.5 && bmi<24.9 | 标准 |
bmi>=24.9 && bmi<26.9 | 偏胖 |
bmi>=26.9 && bmi<29.9 | 肥胖前期 |
bmi>=29.9 && bmi<34.5 | I度肥胖 |
bmi>=34.5 && bmi<39.9 | II度肥胖 |
bmi>39.9 | III度肥胖 |
节段分析
节段指标适用于支持八电极及分段测量的设备。以下“标准”范围为相对参考值的百分比:
| 子项目 | 部位/性别 | 标准范围 |
|---|---|---|
| 节段肌肉 | 左右上肢,男 | [80%, 115%) |
| 节段肌肉 | 左右上肢,女 | [80%, 120%) |
| 节段肌肉 | 躯干、左右下肢,不分性别 | [90%, 110%) |
| 节段脂肪 | 左右上肢、躯干、左右下肢,不分性别 | [80%, 160%) |
肌肉脂肪分析
| 子项目 | 计算方式 | 偏低 | 标准 | 偏高 |
|---|---|---|---|---|
| 体重 | 当前体重 / 理想体重 × 100 | < 85% | [85%, 115%) | >= 115% |
| 骨骼肌量 | 当前骨骼肌量 / 理想骨骼肌量 × 100 | < 90% | [90%, 110%) | >= 110% |
| 脂肪量 | 当前脂肪量 / 理想脂肪量 × 100 | < 80% | [80%, 160%) | >= 160% |
其中理想体重、理想骨骼肌量和理想脂肪量应取算法结果或 SDK 提供的标准值,不建议业务端自行估算。
结果处理建议
- 使用
checkCode == "32"或check == "体脂"识别体脂数据。 - 测量过程中可以使用
weight_kg实时更新 UI,但不要保存未稳定数据。 - 仅在
isStabilized == true时保存最终体重结果,并做好同一次测量重复回调的去重。 - 展 示身体成分前先检查设备是否取得有效阻抗;未取得阻抗时,不建议直接展示值为
0的身体成分指标。 - 体重可根据业务需要选用
weight_g、weight_kg、weight_lb或weight_st+weight_st_lb,不要在不同单位字段之间混用。 - 浮点数可能出现
75.900001525878906一类精度尾差,展示时应按产品要求格式化小数位,不要直接展示原始浮点值。
数据示例
Json 数据样例
{
"lb_scale_division": 4,
"proteinMassMin": 9.8000001907348633,
"bmr": 0,
"proteinPercent": 0,
"obesityDegree": 112,
"targetWeight": 0,
"impendenceProperty": 0,
"boneMass": 0,
"kg_scale_division": 3,
"imp3": 0,
"state": 0,
"bfa_type": 6,
"boneMax": 4.0999999046325684,
"smmStandard": 32,
"bmrMax": 1767,
"bfmStandard": 10.100000381469727,
"precision_st_lb": 1,
"moisturePercent": 0,
"weightStandard": 67.400001525878906,
"temperature": 0,
"weight_st_lb": 13.199996948242188,
"waterMassMax": 44.900001525878906,
"time": 1792567553,
"ffmStandard": 57.299999237060547,
"weight_st": 11,
"waterMassMin": 36.099998474121094,
"weightMax": 77.5,
"impendenceType": 0,
"impendences": [0],
"bmi": 24.799999237060547,
"subcutaneousFatPercent": 0,
"proteinMassMax": 12.300000190734863,
"muscleMassMax": 57.200000762939453,
"precision_lb": 1,
"bmiMin": 25,
"bodyFatPercent": 0,
"weight_kg": 75.900001525878906,
"extData": {
"all_body": 0,
"left_leg_muscle": 0,
"all_body_muscle": 0,
"right_arm_muscle": 0,
"left_leg_kg": 0,
"left_arm_muscle_kg": 0,
"left_arm_kg": 0,
"left_leg_muscle_kg": 0,
"right_arm_kg": 0,
"right_arm": 0,
"left_arm": 0,
"right_leg": 0,
"left_arm_muscle": 0,
"left_leg": 0,
"right_arm_muscle_kg": 0,
"all_body_kg": 0,
"right_leg_muscle": 0,
"right_leg_kg": 0,
"right_leg_muscle_kg": 0,
"all_body_muscle_kg": 0
},
"electrode": 4,
"bmrStandard": 1607,
"bfmMax": 16.200000762939453,
"imp5": 0,
"smPercent": 0,
"bmrMin": 1446,
"whr": 0,
"hr": 0,
"isSupportHR": false,
"bmiMax": 30,
"weight_lb": 167.19999694824219,
"muscleMassMin": 45.900001525878906,
"bodyScore": 0,
"check": "体脂",
"bfpStandard": 15,
"data_calc_type": 0,
"userId": 0,
"weight_g": 75880,
"boneMin": 3.2999999523162842,
"imp4": 0,
"bodyType": 0,
"imp2": 0,
"bfpMin": 10,
"weightMin": 57.299999237060547,
"imp": 0,
"checkCode": "32",
"smmMax": 35.200000762939453,
"weightControl": 0,
"bfpMax": 20,
"smi": 0,
"bfmControl": 0,
"physicalAge": 0,
"bfmMin": 8.1000003814697266,
"visceralFat": 0,
"musclePercent": 0,
"ffmControl": 0,
"bmiStandard": 22,
"isStabilized": true,
"smmMin": 28.799999237060547,
"precision_kg": 1
}
脉诊
指令信息
具体如何获取支持的交互指令; 可查阅 👉 获取指令列表
脉诊检测项支持如下交互指令:
- 开始测量(左)
- 开始测量(右)
- 终止测量
- 获取结果
- 复位
- 波形开关
| 指令名称 | 作用 |
|---|---|
| 波形开关 | 控制波形数据发送与否;建议根据自由业务控制; !长时间的开启会增加手机耗电 |
| 开始测量(左右手) | 控制测量左手还是右手 |
| 终止测量 | 测量期间中止、测量完成中止等行为 |
| 获取结果 | 测量完毕之后获取结果使用 |
| 复位 | 测量之前需要将设备统一复位操作 |
检测流程
Yasee 通用接口服务进行分析 👉点击查看 脉诊采集频率为 20 Hz;

API 字段解释
| 字段 | 含义 |
|---|---|
| codeIndex | 第几段加压; 左右手分别有 0~5 |
| cunG | 寸压力值 |
| guanG | 关压力值 |
| chiG | 尺压力值 |
| cun | 寸波点数据 |
| guan | 关波点数据 |
| chi | 尺波点数据 |
| code | 错误代码 |
| desc | 错误详情 |
| niu | 检测结果(已清洗) |