AI-HealthCare-Assistant
AI 医疗助手:症状对话分析、附近医生搜索、Face ID 登录、区块链病历存证、X 光诊断的 ME
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 医疗助手:症状对话分析、附近医生搜索、Face ID 登录、区块链病历存证、X 光诊断的 ME
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:一位突感不适的患者,深夜无法就医,她打开一个网页应用,用自然语言描述自己的症状——AI 聊天机器人立即判断可能是哪类疾病,推荐最合适的专科医生,同时显示附近3公里内评分最高的那位。一键预约、Face ID 登录、医生资质经过 OCR 身份证核验、就诊记录以区块链存证。这不是科幻小说,而是 2022 年由突尼斯 5 名工程专业学生构建的开源项目 NearestDoctor 的核心能力。

图1:NearestDoctor 项目 Logo,展示 AI 医疗助手品牌标识
NearestDoctor 并非来自科技巨头的实验室,也不是某个创业公司的内部项目。它的诞生背景值得玩味——2022 年,突尼斯 Esprit 工程学院 5 名学生组成的 AlphaCoders 团队,在毕业设计框架下完成了这个项目。指导老师 Ameni Rommene 女士引导他们关注了一个真实的痛点:非洲及中东地区医疗资源分布极度不均,许多患者即便有了互联网,也不知道该找哪个科室、哪位医生。
团队花了数月做竞品分析、可行性研究和技术选型。技术方案最终确定为 MERN 架构(MongoDB + Express + React + Node.js),外加 Python/Flask 承载 AI 推理服务,Ethereum 智能合约处理病历存证。2022 年底,该项目从数十个参评项目中脱颖而出,入选了第九届 Esprit 工程学院年度最佳工程项目评选。
然而,故事并未就此完结。2026 年,项目创始人 Ahlem Laajili 以 NearestDoctor 为原型,创办了一家商业化公司,将整套方案用 Next.js + FastAPI + 云原生基础设施重写,代码闭源运营。GitHub 上这份仓库如今被标注为「V1 学术原型」,成为理解其完整演进历程的珍贵快照。
理解 NearestDoctor 的技术架构,需要把握它的四层服务分离设计:

图2:NearestDoctor 技术架构图,展示 React 前端、Node/Express API、Flask AI 微服务与 MongoDB 的交互关系
前端采用 React 18,搭配 Tailwind CSS 做样式管理,使用 ApexCharts 渲染医疗数据可视化图表。值得注意的技术选型包括:
服务端采用经典的 Express + MongoDB 架构,核心依赖包括 JWT 做身份认证、Mongoose 作为 ODM 层。服务端本身不承担 AI 计算,主要职责是:用户认证与授权(JWT + LinkedIn OAuth)、预约管理、博客文章管理、调用 Flask AI 微服务获取推理结果、区块链交互(病历写入与读取)。
这是整个项目最「硬核」的部分,承载了 4 个独立的 AI 推理模块:
| 模块 | 技术 | 功能说明 |
|---|---|---|
| 症状检测 | Dialogflow | 自然语言理解,将患者症状文本映射为疾病预测和科室推荐 |
| 人脸识别 | TensorFlow 预训练模型 | 支持 Face ID 登录,在浏览器端用 tfjs 运行 |
| X 光胸片诊断 | TensorFlow 预训练模型 | 输入 chest X-ray,输出 COVID-19、肺结核、肺炎三分类预测 |
| 身份证 OCR | Nanonets AI API | 医生注册时上传身份证,自动提取并核验身份信息 |
这些 AI 服务以独立 Flask 进程运行,通过 HTTP REST API 与 Node/Express 后端通信。这种微服务化的设计让 AI 模块可以独立迭代、不影响主业务。
区块链层是 NearestDoctor 最具创新性也最具争议的设计。医疗记录以 Ethereum 智能合约形式存储,每次新增就诊记录生成一个不可篡改的交易区块。需要指出的是,项目采用的是本地或测试网络的 Ethereum 节点,实际生产环境中区块链gas费用和性能都是需要权衡的问题。

图3:患者端角色选择界面,进入 AI 医疗体验
患者使用路径高度流畅:选择角色登录(LinkedIn OAuth、账号密码或 Face ID 三种方式)、症状对话(Dialogflow 聊天机器人接收自然语言描述,实时返回疾病预测和科室建议)、附近医生搜索(基于 Google Maps 显示附近专科医生,支持按评分、距离排序)、一键预约(聊天流程内直接完成预约,无需跳出)、心理健康自测(引导式问卷,评估心理健康状态并推送相关科普文章)、病历查看(区块链存证的完整就诊历史,患者掌控授权)。

图4:医生端 Face ID 登录,用 TensorFlow.js 在浏览器完成身份核验
医生注册流程极为严格:身份证 OCR 验证(Nanonets API 自动提取姓名、照片、证件号,与本人现场拍摄照片比对)、订阅套餐购买(通过 Stripe 完成支付,不同套餐对应不同功能权限)、就诊管理(查看当日预约、X 光胸片诊断、博客发布)、病历授权访问(患者主动授权后,医生可读取链上病历)。

图5:医生注册时的身份证 OCR 验证流程,保障医疗平台身份真实性
NearestDoctor 的 AI 模块需要分开评估——有些是扎实的工程实现,有些则是较为初级的演示性质。
X 光胸片诊断是项目中最具技术含量的模块。模型基于 TensorFlow,预训练后直接用于 COVID-19、肺结核、肺炎三分类。输入是标准 DICOM 格式胸片,输出是概率分布。对于学术项目而言,这是一个完整且可运行的医学影像 AI 推理流程。
Dialogflow 症状分类的实现也相对完整。NearestDoctor 将 Dialogflow ES 封装为一个 Flask 微服务,前端通过 Express API 调用,返回科室推荐和疾病置信度。
Face ID 则利用了 @tensorflow/tfjs 在浏览器端运行预训练人脸模型的优势,避免了图片上传服务器的隐私风险,也降低了服务器计算负担。
区块链病历存证在学术层面有意义,但在实际医疗合规场景中存在问题。项目实际采用的是本地/测试网络,更接近概念验证。心理健康自测和Paramedical E-Shop 推荐在 README 中描述较为简略,代码规模和功能深度可能与主要模块存在落差。
对于希望本地运行 NearestDoctor 的开发者而言,最大挑战在于缺乏容器化支持。
项目由 4 个独立组件构成:React 前端(Node 18+)、Node/Express 后端(Node 16+)、Flask AI 微服务(Python 3.8+)、Blockchain 节点服务(Node 3001 端口)。没有 Dockerfile,没有 docker-compose,所有依赖需要手动安装。
README 已在多处标注库版本已过时(React 无 Vite、Express 存在废弃依赖、Flask AI 服务需要版本锁定),在 2026 年的开发环境中直接运行很可能遇到兼容性问题。
2026 年初,创始人 Ahlem Laajili 宣布:该项目 V1 代码(React/Express/Node)继续开源,但整个平台已从零重写为闭源商业产品(Next.js + FastAPI + 云原生基础设施)。
这一决定折射了 AI 医疗创业领域的一个普遍困境:开源代码有助于建立社区信任和技术影响力,但核心算法和商业逻辑往往需要通过闭源来保护知识产权。NearestDoctor 的 V1 原型作为教育资源和学术贡献仍有价值,但其背后的商业化路径已与这份开源仓库无关。
| 维度 | 评分 | 说明 |
|---|---|---|
| 技术完整性 | ⭐⭐⭐⭐ | 四层微服务架构完整,AI 推理链路清晰 |
| 代码质量 | ⭐⭐⭐ | 代码可运行,但版本较旧,缺乏现代工程实践 |
| 文档质量 | ⭐⭐⭐⭐ | README 详尽,包含架构图、截图、团队介绍 |
| 部署友好度 | ⭐⭐ | 无容器化,多服务手动协调,门槛较高 |
| 学术价值 | ⭐⭐⭐⭐ | 入选年度最佳工程项目,功能覆盖面广 |
| 商业价值 | ⭐⭐ | V2 已闭源,V1 为过时学术原型 |
NearestDoctor 的核心价值在于它是一个真实的、端到端的 AI 医疗应用原型——从症状对话、科室推荐、人脸识别、到区块链病历存证,覆盖了数字医疗的主要场景。对于 AI 开发者而言,它可以作为医疗 AI 系统的参考架构;对于爱好者而言,它是了解 AI + 医疗交叉领域的良好起点。