HTML正文: MedPort:本地离线读化验单,一页档案给医生 MedPort:本地离线读化验单,一页档案给医生
一袋来自三家不同医院的化验单,手机相册里一堆糊成马赛克的PDF,医生翻着页找去年的糖化血红蛋白。这个场景在每个有老人的家庭里反复上演,而MedPort想做的事只有一件:把这一堆纸变成一页纸。
![]()
做法很直接。把化验报告和出院小结丢进去,一个跑在你自己笔记本上的小体量开放权重模型把它们读成一份医生三十秒能扫完的档案:过敏史、既往症、当前用药、超标指标,以及把不同医院、不同年份的同一项检查对齐到一条线上的趋势图。
报告不出机器。没有账号,没有云端,没有API密钥。这句话在这里不是隐私政策里的承诺,而是一个可以靠关掉Wi-Fi来验证的事实——整个演示全程离线跑完。
它只读,不解释
MedPort的功能清单里有一条边界划得很清楚:只提取纸面上印着的东西——检验值、诊断、用药、过敏——从不做解读,也不给建议。这个克制不是产品姿态,是工程约束倒逼出来的。
小模型偶尔会凭空造出一个数值。所以每一个模型返回的数字和名称,都要回到页面原文里做匹配,找不到的一律丢弃。规则解析器同时并行跑一遍,模型漏掉的行由它补回来。用户还要在复核界面上把每个值和原件并排看一遍,确认之前,任何未核对的内容都标着“未复核”。
跨医院的指标对齐靠一张约40项常见检查的映射表,每项对应一个统一名称和LOINC编码。于是“SGPT”“ALT (SGPT)”“丙氨酸氨基转移酶”会汇成同一条趋势线。超标标记则取自每份报告自带的参考范围,不另设标准。
在i5、16GB、无GPU的笔记本上跑
作者用的是一台i5、16GB内存、没有独立显卡的机器。Gemma 4和Qwen3属于“会思考”的模型,把思考关掉之后,CPU上的提取速度大约快了3倍,而在这个窄任务上没有精度损失。
长报告分块送入,读取在后台进行,界面实时显示“第2页,共5页”。每页有超时限制,每份报告有时间预算。某一页超时,规则解析器接手,报告不会卡死在那里。
完全不开模型也能用。Ollama关掉时,规则解析器处理常见的化验单版式;之后再点一次读取,模型重新跑一遍。
分享有三种出口:可打印的PDF、用口令锁住的文件(任何浏览器都能打开)、以及同一Wi-Fi下医生扫码即看的二维码。
医院里没有笔记本,只有手机
手机伴侣应用解决的是另一个现场问题。运行 py -m medport --lan,通过家庭Wi-Fi向手机提供一个可安装的网页应用。手机只允许离线应用和HTTPS下的浏览器内加密,所以MedPort自建了一个微型证书机构,用X.509名称约束限定在私有地址段,这意味着它无法被用来冒充任何公网网站。
手机用一次性验证码配对,保存一份AES-256-GCM加密副本,密钥由你的PIN派生(PBKDF2,31万轮)。在手机上可以展示档案、打印,或者点“发送给医生”——加密文件在手机本地生成,直接调起分享面板走WhatsApp或邮件。
真正难修的是一张印度医院的报告
作者提到一个现实世界的bug:第一份真实报告来自一家印度医院的检验室,长检验名在表格单元格里换行,把数值挤到了单独一行,模型和解析器双双丢掉了这一行。修好这个问题——并把一份匿名化副本留作测试样本——比任何提示词调整都更重要。
这个细节说明了这类产品的真实成本分布:不是模型不够聪明,是纸面排版千奇百怪。
为什么必须是开放模型
对MedPort来说,开放权重不是省钱的选项,而是产品能成立的前提。
- 隐私就是产品本身。健康记录是人最不愿放在别人服务器上的数据。用闭源API,“你的报告保持私密”是一家你从未谋面的公司给出的政策承诺;用本地开放权重模型,它是你能亲手验证的事实。
- 它能在问题发生的地方工作。医院Wi-Fi很差,也没法让病人在候诊室注册云服务。笔记本无网读报告,手机无网看报告。
- 每份报告边际成本为零。一位照护者第一周可能上传50份报告,用付费API每份都是钱,光覆盖推理就得做订阅制。本地跑,一次性定价才成立。
- 换模型只改一个设置。
MEDPORT_MODEL可在Gemma 4、Qwen2.5、Llama 3.2和MedGemma之间切换。更好的小模型出来,用户ollama pull一下就能拿到,也没有谁能从底下把模型下架。 - 留了微调的空间。用户在复核界面做的每一次修正都是一个带标签的样本。提取任务足够窄,一个10亿到30亿参数的模型在这些修正上微调后,理应打得过通用大模型——而闭源API永远不会允许把这种东西部署到用户自己的笔记本上。
- 没有锁定。没有会泄露的API密钥,没有能中断某人病史的涨价或封号。
作者也承认闭源会在哪里赢:前沿API开箱读取杂乱扫描件更准,而且他本可以省掉那套原文比对校验。但校验加复核界面这套设计,事后看反而是对的——再完美的模型,也不该在病人没确认之前,把一个检验值摆到医生面前。
安装
安装方式有两种:从最新release下载Windows压缩包,解压双击 MedPort.exe,浏览器自动打开(尚未代码签名,SmartScreen拦截时选“更多信息→仍要运行”);或者从源码跑,装好依赖、拉一个小模型,执行 python -m medport。数据留在 %USERPROFILE%\.medport,什么都不上传。项目MIT协议开源。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.