🏥
病历 QR 传输系统 · MedQR
把手机 / iPad 上的病历、处方、问诊文本,通过 QR 码序列 + USB 扫码枪, 单向传到内网无外网无 USB 的电脑。
使用场景:医院科室常见约束 —— 手机 / iPad 能跑外网大模型生成结构化病历,但内网工作电脑不连外网、禁用 USB 存储、禁用蓝牙。唯一可控的 I/O 通道是 USB 扫码枪(HID 模式,当键盘用)。传统方案是手打抄写,慢且易错;本系统让手机渲染 QR 序列 → 扫码枪逐张扫 → 内网页面拼回原文 → 一键复制或下载。
📱
手机端 PWA
加主屏幕后离线可用
🔒
不联网不存盘
浏览器内存处理,零上传
🎯
单向传输
USB 扫码枪 HID 模式
🛡️
SHA256 校验
全部收齐自动校验拼接
🗺️数据流向(单向 · 不联网 · 不存盘)
┌───────────────────┐ ┌───────────────────────────────┐ │ 手机 / iPad │ │ 内网 PC(无外网 / 无 USB) │ │ │ │ │ │ 粘贴病历文本 │ │ 浏览器打开 接收端 HTML │ │ │ │ 扫 QR 码 │ ▲ │ │ ▼ │ ────────────────▶ │ │ │ │ MEDQR 分片 + QR │ USB 扫码枪 HID │ 接收、拼接、SHA256 校验 │ │ 发送端 PWA │ │ 复制 / 下载 / 排障导出 │ └───────────────────┘ └───────────────────────────────┘
通信协议:MEDQR v1(MEDQR|v=1|s=|i=|n=|h=|d=),Base64 文本分片 + 片序号 + 会话 ID + SHA256 前 4 字节校验。
📱
手机发送端(PWA)
医生手机用 Safari / Chrome 打开后「添加到主屏幕」,以后点图标完全离线使用。 粘贴文本 → 生成 QR → 自动播放。
🚀打开发送端提示:手机屏幕亮度调到最大,对准内网电脑扫码枪即可。
📋使用步骤
- 1手机打开发送端(建议加到主屏幕),粘贴病历文本,点「生成二维码」。
- 2屏幕亮度拉满,自动播放 QR 序列。
- 3内网电脑浏览器打开接收端,光标留在输入区。
- 4USB 扫码枪对准手机屏幕,逐张扫过去。
- 5实时显示「已收 X/N 片」,绿格=已收、灰格=待补、黄闪=重复片。
- 6全部收齐自动 SHA256 校验 → 完整文本出现 → 「复制全文」或「下载 .txt」。
🔐 设计约束
- ✓纯静态、零依赖构建(内网端不能 npm install)
- ✓离线可用,QR 生成库本地回退
- ✓不联网、不存盘、不写 IndexedDB
- ✓协议向前兼容:v1 解析器能跳过 v2/v3 新字段
📡 MEDQR v1 协议片段
MEDQR|v=1|s=<sid>|i=<idx>|n=<total>|h=<sha256>|d=<base64> v 协议版本(1) s 会话 ID(8 字节随机) i 片序号(从 0 开始) n 总片数 h 原文 SHA256 前 4 字节 d Base64 编码的分片数据