一个基于Flask开发的医疗病历管理平台,注重数据安全和隐私保护。
- 数据加密: 使用AES加密技术保护敏感医疗数据
- 身份认证: JWT令牌认证,确保访问安全
- 权限控制: 基于角色的访问控制系统
- 审计日志: 记录用户操作,支持安全审计
- 管理员: 完整系统管理权限
- 医生: 创建、查看、编辑病历
- 护士: 查看病历权限
- 患者: 查看个人病历
- 病历管理: 创建、查看、编辑、删除病历记录
- 搜索筛选: 支持全文搜索和多条件筛选
- 数据备份: 自动和手动备份,一键恢复
- 响应式界面: 支持桌面和移动设备
- 后端: Flask (Python)
- 前端: Bootstrap 5 + JavaScript
- 数据存储: JSON文件 + 加密存储
- 认证: JWT Token
- 加密: AES-256
- Python 3.7+
- pip包管理器
- 克隆项目
git clone <repository-url>
cd medical-platform- 使用启动脚本(推荐)
chmod +x start.sh
./start.sh- 或手动安装
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 初始化系统
python3 init_system.py
# 启动应用
python3 main.py- 访问地址: http://localhost:5000
- 默认管理员账户: admin / admin123
medical-platform/
├── main.py # 主应用文件
├── settings.py # 配置文件
├── requirements.txt # 依赖包列表
├── init_system.py # 系统初始化脚本
├── start.sh # 启动脚本
├── utils/ # 工具模块
│ ├── auth.py # 认证管理
│ ├── medical_records.py # 病历管理
│ └── backup.py # 备份管理
├── templates/ # HTML模板
│ ├── base.html # 基础模板
│ ├── index.html # 首页
│ ├── login.html # 登录页
│ ├── dashboard.html # 仪表板
│ ├── records.html # 病历管理
│ └── backup.html # 备份管理
├── static/ # 静态资源
│ └── css/
│ └── style.css # 样式文件
├── db/ # 数据目录
│ ├── users.json # 用户数据
│ ├── sessions.json # 会话数据
│ └── medical_records/ # 病历数据
└── backups/ # 备份目录
POST /api/v1/auth/login- 用户登录POST /api/v1/auth/logout- 用户登出POST /api/v1/auth/register- 用户注册
GET /api/v1/medical-records/patient/{id}- 获取患者病历GET /api/v1/medical-records/{patient}/{record}- 获取病历详情GET /api/v1/medical-records/{patient}/{record}/edit- 获取病历用于编辑POST /api/v1/medical-records- 创建病历PUT /api/v1/medical-records/{patient}/{record}- 更新病历DELETE /api/v1/medical-records/{patient}/{record}- 删除病历GET /api/v1/medical-records/search/{patient}- 搜索病历
POST /api/v1/backup/create- 创建备份GET /api/v1/backup/list- 备份列表POST /api/v1/backup/restore- 恢复备份
- 所有敏感医疗数据(诊断、症状、治疗等)采用AES-256加密存储
- 加密密钥可通过环境变量配置
- JWT令牌认证,令牌有效期24小时
- 基于角色的权限控制系统
- 患者只能访问自己的病历
- 支持手动和自动备份
- 备份文件同样加密存储
- 恢复前自动创建当前数据备份
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret
ENCRYPTION_KEY=your-encryption-key
DATABASE_URL=sqlite:///medical_platform.db系统采用模块化设计,便于扩展新功能:
- 在
utils/目录下添加新的模块 - 在
main.py中注册新的路由 - 在
templates/中添加对应的前端页面
-
生产环境部署
- 修改默认密码
- 配置环境变量
- 启用HTTPS
- 定期备份数据
-
数据安全
- 定期更换加密密钥
- 监控访问日志
- 实施最小权限原则
-
系统维护
- 定期清理过期会话
- 管理备份文件
- 更新依赖包
本项目采用MIT许可证,详见LICENSE文件。
欢迎提交Issue和Pull Request来改进项目。
如有问题,请通过以下方式联系:
- 提交GitHub Issue
- 邮件联系项目维护者
重要提醒: 本系统仅用于医疗信息管理,不能替代专业医疗设备和医疗人员的专业判断。使用前请确保符合当地医疗数据保护法规。