读者:医院 PM / 护士 / 项目运营人员。 患者本人请看
医院交付使用指南.md。
本手册说明如何把一只新的 Veepoo 兼容手表绑定到智能随访数据链路。每位新患者入组前按此手册走一遍即可。
✅ 适用:
❌ 不适用:
| 项 | 要求 |
|---|---|
| 设备型号 | 设备名以 VP- / S101 / VPR
开头(白名单写在
code/demo/WeiXinSDKTSDemo/miniprogram/services/env.ts:19) |
| 电量 | ≥ 50%,建议先充电 30 分钟 |
| BLE 占用 | 没被其他 APP(HBand / G band / 厂家配套 APP)连着 |
| 工作距离 | 患者使用时手表与手机 ≤ 10 米;扫描时建议 ≤ 3 米(RSSI 阈值 -75 dBm) |
为什么只支持 Veepoo 兼容机型:本项目使用 Veepoo 私有 BLE 协议(GATT UUID、密钥认证、字节解码全套都是 Veepoo 定义的)。其他厂家手表协议不通,无法用同一份代码接入。详见 §7。
这一节只做一次,新患者入组不需要重复做。如果医院 PM 是第一次接手项目,先和工程师确认下面三项是否已就绪。
| # | 项 | 责任方 | 验证方式 |
|---|---|---|---|
| 3.1 | 微信公众平台 → 开发设置 → request 合法域名加
https://dc.ncrc.org.cn |
工程师 | mp.weixin.qq.com 后台搜索域名能搜到 |
| 3.2 | 体验版已上传 + 选为体验版 | 工程师 | 公众平台 → 版本管理 → 体验版 标签页有版本号 |
| 3.3 | 体验版二维码 PNG 已导出 | 工程师 | 二维码图片在工程师本地 / 工作群 |
详细操作步骤:见 4.25plan.md 的 Step
10.1(加合法域名)/ 10.4-10.5(上传 + 设体验版)/
10.7(导出二维码)。
让患者在微信里告诉你他自己的微信号(不是手机号、不是姓名):
💡 微信号是字母+数字组成的(如
wxid_a1b2c3或lisi_2025)。不是 8 个数字的微信号 = 那是手机号,不能用。
收集模板(医院 PM 在 Excel 维护):
| 姓名 | 角色 | 科室 | 微信号 | 入组日期 | 设备 sign | 备注 |
|---|---|---|---|---|---|---|
| 张三 | 患者 | 心内科 | wxid_xxxxxxx | 2026-04-28 | (Step 4 后填) | — |
| 李四 | 患者 | 心内科 | lisi_2025 | 2026-04-28 | (Step 4 后填) | iOS 用户 |
| 王医生 | 医生 | 心内科 | wangdr | 2026-04-28 | — | 测试用 |
⚠️ 这一步只能由 AppID
wxbc5453a4c53dbee8主体的管理员做(普通医院员工没权限)。
完成后:被加的人微信里会收到一条"被添加为体验成员"的消息。
⚠️ 100 人天花板:体验成员(含开发者)总和 ≤ 100。逼近上限时联系工程师评估走正式版。
发给患者三样东西:
医院交付使用指南.md
的 PDF 版(已嵌入二维码)患者按 医院交付使用指南.md
操作:
期望结果:小程序自动调
POST /api/device/register → 六元 MySQL 的
wearable_device 表新增一行 → 拿到
deviceId。这一切对患者透明。
如果患者卡住 → 看 §6 故障排查。
患者首次连接成功后,告诉六元/医生端该患者的:
2026-001)wearable_device
表查最新的一行,或工程师 vConsole 里看)这一步不归本仓代码,由六元产品方在
patients表手工 INSERT 一行(绑定关系)。详见4.25plan.md「不在本次范围」段。
接入完成后,让患者测一组心率,预期:
| 检查 | 期望 | 失败定位 |
|---|---|---|
| 患者 UI 显示心率值(如 72 bpm) | ✅ | BLE 通讯问题,看 §6.连不上 |
工程师 vConsole 看到
[DataStorage] 设备解析成功: deviceId=N |
✅ | register API 没通,看 §6.数据没传 |
工程师 vConsole 看到
HTTP同步heartRate成功 (deviceId=N) |
✅ | HTTPS 链路问题 |
在公司服务器跑
bash scripts/watch-production-data.sh |
看到该 deviceId 新增心率 | 服务端没写库 |
任何一条不过都不算成功接入。在 §6 自助排查;解决不了找工程师。
原因:微信号没加白名单,或加错了。 解决:
0 / O 看错)逐项排查:
VP- / S101 /
VPR 开头vConsole 排查(让工程师远程看):
register 调用失败 → 服务端
dc.ncrc.org.cn 不通(看 §6.4)register 返回无 deviceId → 服务端
wearable_device 表写入失败,工程师介入HTTP同步...失败入队待补传 → 患者侧网络问题,让他换
WiFi 或 4G
重试;数据已在本地缓存,不会丢,下次有网自动补传request:fail url not in domain list原因:合法域名没配置(§3.1 漏了)
解决:工程师按 §3.1 / 4.25plan.md Step 10.1
配置后,让患者重新扫码进入
当前数量:mp.weixin 后台 → 成员管理 → 体验成员 → 列表底部显示总数 逼近上限的处理:
整个数据链路从 BLE 协议层就是Veepoo 私有的:
| 环节 | 谁定的 | 换厂家行不行 |
|---|---|---|
| BLE GATT 服务/特征 UUID | Veepoo 私有 | ❌ Apple/华为各家完全不同 |
密钥认证(veepooBlePasswordCheckManager) |
Veepoo 私有 | ❌ 别家算法不同 |
| 心率/血压/血氧的字节码(如 type=51 是心率) | Veepoo 私有 | ❌ 字节布局完全不通用 |
| ECG 波形采样格式 | Veepoo 私有 | ❌ |
| 整套 vp_sdk(5,600+ 行) | Veepoo 提供 | ❌ 换厂家要换整套 SDK |
S101 之所以能用,是因为它不是 Veepoo 自牌但运行 Veepoo 兼容固件——这种兼容机型可以直接接。
通知工程师改 services/env.ts 一行即可:
SUPPORTED_DEVICE_PREFIXES: ['VP-', 'S101', 'VPR', 'VPS'], // ← 加新前缀其他代码、API、数据库都不变。约 30 分钟工作量。
工程师评估约 3-6 周工作量:
miniprogram/miniprogram_dist/ SDK 部分dataStorage 字段映射TYPE_TO_CHINESE / toChineseRecord
适配新字节格式不是一两行代码改完的事,预算评估请提前 1 个月报。
| 角色 | 联系人 | 微信 / 手机 | 工作时间 |
|---|---|---|---|
| 工程师(小程序 + 服务端) | [填工程师姓名] | [填] | 工作日 9:00-18:00 |
| 医院 PM | [填] | [填] | — |
| 六元产品(受试者绑定) | [填] | [填] | — |
| 紧急(数据丢失风险) | 工程师 | 优先微信 | 24h 内响应 |
医院交付使用指南.md
— 给患者本人看的(怎么扫码、连蓝牙、故障排查)4.25plan.md —
完整开发交付规划,含 Step 10 微信发布 SOP 全套真机测试checklist.md — 17
步真机端到端验证(工程师用)code/demo/WeiXinSDKTSDemo/miniprogram/services/env.ts —
体验版/正式版开关 + 设备白名单单一来源code/demo/WeiXinSDKTSDemo/miniprogram/services/dataStorage.ts
— 数据上传 + 断网重传 + 动态 deviceId 解析本手册由开发团队维护。本文档版本:v1(2026-04-26)。如发现错误或不清楚的地方请反馈给工程师。