Skip to content

zq779/yuhutong

Repository files navigation

语护通:养老院护理记录与交接工作台

项目简介

语护通是一套面向养老院护理场景的护理记录与交接辅助系统,主要服务于一线护理员、院方管理员和老人家属。系统围绕养老护理工作中“记录不完整、交接不清晰、家属沟通重复、隐私边界不明确”等问题,提供护理记录录入、语音快速记录、AI结构化整理、个性化异常关注、班次交接文档生成、家属端同步和安全隐私保护等功能。

项目地址

https://github.com/zq779/yuhutong

主要功能

1. 护理记录录入

护理员可以选择老人,录入体温、血压、血氧、心率、血糖、进食、睡眠、精神状态和观察备注等信息。系统会按时间线保存护理记录,便于后续查询和追溯。

2. 语音快速录入

系统支持浏览器录音上传。后端可接入 DashScope Paraformer 语音识别服务,将护理员口述内容转写为文本,减少手工填写护理文书的负担。

3. AI护理信息结构化整理

系统可接入 Qwen-plus大模型,对护理文本中的体征、症状、进食、情绪、处理措施和注意事项进行结构化抽取,形成更便于检索、统计和交接的护理记录。

未配置外部 AI 密钥时,系统仍保留本地规则兜底能力,可用于离线演示和基础功能测试。

4. 个性化异常关注

系统根据每位老人的历史护理记录和个人基线,结合最新护理内容,对血压升高、进食减少、精神状态变化、胸闷、头晕、跌倒风险等情况进行辅助判断,并生成重点关注事项。

5. 班次交接文档生成

系统可根据本班次护理记录、异常事件和备忘事项生成交接文档,帮助接班护理员快速了解老人状态、已采取措施和后续注意事项,减少单纯依赖口头交接导致的信息遗漏。

6. 家属端同步

系统提供家属端界面。家属账号只能查看绑定老人的今日状态、最新体征和经过确认的日报内容,不能查看其他老人数据,也不能直接访问护理员内部交接内容。

7. 权限隔离与操作留痕

系统区分护理员、院方管理员和家属三类角色,不同角色拥有不同访问权限。系统会记录登录、护理记录创建、报告生成、异常事件处理和试用数据清理等关键操作,便于后续追踪。

技术栈

前端: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

本地运行

1. 克隆项目

git clone https://github.com/zq779/yuhutong.git
cd yuhutong/backend

2. 创建虚拟环境

python3 -m venv .venv
source .venv/bin/activate

Windows PowerShell 可使用:

python -m venv .venv
.\.venv\Scripts\Activate.ps1

3. 安装依赖

python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt

4. 配置环境变量

cp ../.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=16000

5. 启动系统

python3 run.py

浏览器访问:

http://127.0.0.1:8000

一键启动脚本

Linux / macOS:

bash start_linux_mac.sh

Windows PowerShell:

.\start_windows.ps1

演示账号

系统启动时会自动初始化演示数据。默认账号如下:

护理员账号:nurse / 123456
管理员账号:admin / 123456
家属账号一:family_zhang / 123456
家属账号二:family_li / 123456

AI调用说明

本项目的 AI 调用代码位于:

backend/app/services/ai_provider.py

主要包括以下能力:

  1. 护理文本结构化整理;
  2. 护理风险辅助评估;
  3. 班次交接文档生成;
  4. 家属日报生成;
  5. 语音转写。

.env 中未配置 QWEN_API_KEYDASHSCOPE_API_KEY 时,系统不会调用外部 AI 服务,而是使用本地规则进行基础整理。因此,如果发现 AI 平台额度没有变化,通常是因为密钥未配置、配置文件位置不正确,或后端没有在修改 .env 后重启。

个性化本地差分隐私保护

系统实现了个性化本地差分隐私保护模块,核心代码位于:

backend/app/services/privacy_protection.py

该模块用于数据发送到外部文本整理服务前的本地保护处理,不改变院内数据库中由护理人员确认的原始记录。

主要处理方式包括:

  1. 身份替换:老人姓名、床位、联系方式等直接标识在出站请求中替换为临时编号;
  2. 类别泛化:疾病标签、风险标签和症状描述按护理业务类别进行泛化;
  3. 数值扰动:体温、血压、心率、血糖等体征数值在本地加入拉普拉斯噪声;
  4. 个性化预算:不同字段使用不同隐私预算,身份标识和健康标签保护更强,体征数据保留更高可用性;
  5. 本地还原:交接文档和家属同步内容在本地生成最终展示文本,外部服务不接收真实姓名和床位。

相关配置位于 .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

安全设计

项目包含以下安全设计:

  1. JWT 登录认证;
  2. 护理员、管理员、家属三类角色权限隔离;
  3. 家属端最小化展示,只允许访问绑定老人数据;
  4. 真实 API Key 存放在 backend/.env,不提交到公开仓库;
  5. 数据库文件、虚拟环境、上传音频和缓存文件通过 .gitignore 排除;
  6. 上传音频格式和大小限制;
  7. 安全响应头配置;
  8. 关键操作审计日志;
  9. 管理员试用数据清理功能;
  10. 外部 AI 调用前的本地隐私保护处理。

更多说明见:

SECURITY.md
docs/security_privacy_protocol.md

Docker部署

项目提供 docker-compose.yml,可用于容器化部署。

docker compose up --build

启动后访问:

http://127.0.0.1:8000

API文档

启动后可访问 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。

免责声明

本项目用于养老护理记录整理、班次交接辅助和开源学习展示,不作为医疗诊断、治疗建议或医疗决策依据。实际部署到养老机构时,应结合机构内部制度、数据合规要求、隐私保护要求和人工审核流程共同使用。

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors