语护通是一套面向养老院护理场景的护理记录与交接辅助系统,主要服务于一线护理员、院方管理员和老人家属。系统围绕养老护理工作中“记录不完整、交接不清晰、家属沟通重复、隐私边界不明确”等问题,提供护理记录录入、语音快速记录、AI结构化整理、个性化异常关注、班次交接文档生成、家属端同步和安全隐私保护等功能。
https://github.com/zq779/yuhutong
护理员可以选择老人,录入体温、血压、血氧、心率、血糖、进食、睡眠、精神状态和观察备注等信息。系统会按时间线保存护理记录,便于后续查询和追溯。
系统支持浏览器录音上传。后端可接入 DashScope Paraformer 语音识别服务,将护理员口述内容转写为文本,减少手工填写护理文书的负担。
系统可接入 Qwen-plus大模型,对护理文本中的体征、症状、进食、情绪、处理措施和注意事项进行结构化抽取,形成更便于检索、统计和交接的护理记录。
未配置外部 AI 密钥时,系统仍保留本地规则兜底能力,可用于离线演示和基础功能测试。
系统根据每位老人的历史护理记录和个人基线,结合最新护理内容,对血压升高、进食减少、精神状态变化、胸闷、头晕、跌倒风险等情况进行辅助判断,并生成重点关注事项。
系统可根据本班次护理记录、异常事件和备忘事项生成交接文档,帮助接班护理员快速了解老人状态、已采取措施和后续注意事项,减少单纯依赖口头交接导致的信息遗漏。
系统提供家属端界面。家属账号只能查看绑定老人的今日状态、最新体征和经过确认的日报内容,不能查看其他老人数据,也不能直接访问护理员内部交接内容。
系统区分护理员、院方管理员和家属三类角色,不同角色拥有不同访问权限。系统会记录登录、护理记录创建、报告生成、异常事件处理和试用数据清理等关键操作,便于后续追踪。
前端:HTML + CSS + JavaScript
后端:FastAPI
数据库:SQLite,支持扩展为 PostgreSQL
认证:JWT
AI能力:Qwen 文本模型、DashScope Paraformer 语音识别
部署方式:本地运行 / Docker Compose / Nginx 反向代理
yuhutong/
├── backend/
│ ├── app/
│ │ ├── api/ # 后端接口路由
│ │ ├── core/ # 配置、安全认证、安全响应头
│ │ ├── db/ # 数据库连接
│ │ ├── services/ # 业务服务、AI调用、隐私保护
│ │ ├── static/ # 前端页面、样式和交互脚本
│ │ ├── uploads/ # 上传文件目录
│ │ ├── main.py # FastAPI应用入口
│ │ ├── models.py # 数据库模型
│ │ └── schemas.py # 接口数据结构
│ ├── requirements.txt # Python依赖
│ ├── run.py # 后端启动入口
│ └── Dockerfile
├── docs/
│ ├── api_design.md # API设计说明
│ ├── database_design.md # 数据库设计说明
│ └── security_privacy_protocol.md #个性化本地差分隐私保护
├── .env.example # 环境变量模板
├── .gitignore
├── docker-compose.yml
├── start_linux_mac.sh
├── start_windows.ps1
├── SECURITY.md
├── LICENSE
└── README.md
git clone https://github.com/zq779/yuhutong.git
cd yuhutong/backendpython3 -m venv .venv
source .venv/bin/activateWindows PowerShell 可使用:
python -m venv .venv
.\.venv\Scripts\Activate.ps1python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txtcp ../.env.example .env
nano .env如果只是本地演示,可以先不填写 AI 密钥,系统会使用基础本地规则兜底。
如果需要调用 Qwen 和 DashScope,请在 .env 中填写:
AI_PROVIDER=qwen
QWEN_API_KEY=你的API_KEY
DASHSCOPE_API_KEY=你的API_KEY
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
QWEN_TEXT_MODEL=qwen-plus
DASHSCOPE_ASR_MODEL=paraformer-realtime-v2
DASHSCOPE_ASR_SAMPLE_RATE=16000python3 run.py浏览器访问:
http://127.0.0.1:8000
Linux / macOS:
bash start_linux_mac.shWindows PowerShell:
.\start_windows.ps1系统启动时会自动初始化演示数据。默认账号如下:
护理员账号:nurse / 123456
管理员账号:admin / 123456
家属账号一:family_zhang / 123456
家属账号二:family_li / 123456
本项目的 AI 调用代码位于:
backend/app/services/ai_provider.py
主要包括以下能力:
- 护理文本结构化整理;
- 护理风险辅助评估;
- 班次交接文档生成;
- 家属日报生成;
- 语音转写。
当 .env 中未配置 QWEN_API_KEY 或 DASHSCOPE_API_KEY 时,系统不会调用外部 AI 服务,而是使用本地规则进行基础整理。因此,如果发现 AI 平台额度没有变化,通常是因为密钥未配置、配置文件位置不正确,或后端没有在修改 .env 后重启。
系统实现了个性化本地差分隐私保护模块,核心代码位于:
backend/app/services/privacy_protection.py
该模块用于数据发送到外部文本整理服务前的本地保护处理,不改变院内数据库中由护理人员确认的原始记录。
主要处理方式包括:
- 身份替换:老人姓名、床位、联系方式等直接标识在出站请求中替换为临时编号;
- 类别泛化:疾病标签、风险标签和症状描述按护理业务类别进行泛化;
- 数值扰动:体温、血压、心率、血糖等体征数值在本地加入拉普拉斯噪声;
- 个性化预算:不同字段使用不同隐私预算,身份标识和健康标签保护更强,体征数据保留更高可用性;
- 本地还原:交接文档和家属同步内容在本地生成最终展示文本,外部服务不接收真实姓名和床位。
相关配置位于 .env.example:
PERSONALIZED_LDP_ENABLED=true
LDP_EPSILON_IDENTIFIER=0.8
LDP_EPSILON_HEALTH_TAG=1.0
LDP_EPSILON_VITAL=3.0
LDP_EPSILON_TEXT=2.0
LDP_EPSILON_REPORT=2.5项目包含以下安全设计:
- JWT 登录认证;
- 护理员、管理员、家属三类角色权限隔离;
- 家属端最小化展示,只允许访问绑定老人数据;
- 真实 API Key 存放在
backend/.env,不提交到公开仓库; - 数据库文件、虚拟环境、上传音频和缓存文件通过
.gitignore排除; - 上传音频格式和大小限制;
- 安全响应头配置;
- 关键操作审计日志;
- 管理员试用数据清理功能;
- 外部 AI 调用前的本地隐私保护处理。
更多说明见:
SECURITY.md
docs/security_privacy_protocol.md
项目提供 docker-compose.yml,可用于容器化部署。
docker compose up --build启动后访问:
http://127.0.0.1:8000
启动后可访问 FastAPI 自动生成的接口文档:
http://127.0.0.1:8000/docs
主要接口包括:
/api/auth/login 用户登录
/api/auth/me 获取当前用户信息
/api/residents 老人信息管理
/api/records/text 提交文本护理记录
/api/records/audio 上传音频护理记录
/api/abnormal 异常事件查询与处理
/api/reports 交接报告和家属日报
/api/dashboard 试用概况统计
/api/security-center 安全中心与隐私配置
本项目采用 MIT License。
本项目用于养老护理记录整理、班次交接辅助和开源学习展示,不作为医疗诊断、治疗建议或医疗决策依据。实际部署到养老机构时,应结合机构内部制度、数据合规要求、隐私保护要求和人工审核流程共同使用。