Skip to content

yangyongyy624-cmd/cssrs-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C-SSRS 电子评估系统

Columbia Suicide Severity Rating Scale — 基于 FastAPI 的电子化自杀风险评估工具

一个完整的自杀风险评估电子化解决方案,支持患者扫码答题、自动评分、风险分层,以及云端-本地分离架构保障数据隐私。

项目愿景

让自杀的人越来越少。

C-SSRS 是国际公认最广泛使用的自杀风险评估工具,但传统的纸质量表存在评分慢、易遗漏、数据统计困难等问题。本项目将其电子化,目标是:

  • 降低基层使用门槛:任何社区工作者、乡村医生,只需一个二维码就能开展标准化评估
  • 提高响应速度:自动评分 + 风险分层,无需专业训练即可识别高危个案
  • 数据驱动科研:结构化存储评估数据,支持流行病学研究和干预效果评估
  • 保护患者隐私:数据仅存本地,云端零感知,从架构上杜绝泄露

适用于:精神科门诊、社区心理服务、学校心理咨询、危机干预热线。

系统架构

患者手机(流量) → 云端网关(YOUR_SERVER_IP:PORT) → SSH隧道(8889) → 本地电脑(8000)
医生手机(流量) → 云端网关(YOUR_SERVER_IP:PORT) → SSH隧道(8889) → 本地电脑(8000)
组件 位置 功能
云端网关 Ubuntu 服务器 Nginx 纯转发,不存储任何评估数据
SSH 隧道 自动建立 加密传输评估数据
本地服务 Mac/PC FastAPI + SQLite,数据存储 + 评分

访问入口

入口 认证方式 功能
/ 入口页:显示医生入口和管理员入口两个卡片
/mobile 4 位医生 PIN 医生端:新建评估、查看患者列表、查看报告
/admin 4-6 位管理密码 管理后台:创建/撤销医生 PIN、查看所有患者量表、批量删除
/doctor-qr 医生入口二维码展示页(可截图打印)
/patient.html 患者扫码答题页
/code 患者手动输入访问码页

使用方式

医生端流程

  1. 手机扫描「医生入口二维码」(可在 /doctor-qr 查看或打印)
  2. 进入入口页,点击「医生入口」
  3. 输入 4 位准入码(首次需要,之后自动记住)
  4. 进入患者列表,点击「+」新建评估
  5. 输入患者信息,生成患者二维码
  6. 患者扫码答题(约 2-3 分钟)
  7. 自动跳转到报告页:显示风险等级 + 评分摘要
  8. 点击「查看完整量表内容」→ 红色高亮显示患者填写内容

权限说明:医生只能看到自己创建的评估记录,看不到其他医生的数据。

管理后台流程

  1. 手机扫描「医生入口二维码」
  2. 进入入口页,点击「管理员入口」
  3. 输入管理密码(首次启动时在控制台显示)
  4. 进入管理后台:
    • 医生管理:创建/撤销医生准入码
    • 患者量表:查看所有医生的全部评估记录,点击查看完整量表内容
    • 批量删除:多选模式批量删除评估记录
    • 修改密码:点击顶部「改密码」按钮修改管理密码

患者端流程

  1. 医生生成患者二维码
  2. 患者用手机扫码(支持微信/系统相机)
  3. 进入答题页面,逐题作答
  4. 提交后医生端自动收到通知

评分系统

5 层评分模型

层级 维度 范围 说明
筛查 自杀意念 阴性/阳性 C-SSRS 筛查问题
意念严重度 最高级别 0-5 从渴望死亡到有计划有意图
意念强度 5 维度总分 0-25 频率、持续时间、可控性、阻止因素、现实性
行为 自杀行为 5 类 实际企图、中断、中止、准备行为、非自杀性自伤
致死性 企图致死性 0-6 基于医疗干预程度

风险分层

等级 标签 条件
none 无风险 筛查阴性
low 低风险 仅渴望死亡,无计划意图
medium 中风险 有方法的主动意念
high 高风险 有计划或有意图
critical 极高风险 有计划且有意图

快速开始

环境要求

  • Python 3.10+
  • Ubuntu 22.04+ (云端)
  • macOS/Windows (本地)

安装

# 克隆仓库
git clone https://github.com/yangyongyy624-cmd/cssrs-system.git
cd cssrs-system

# 安装依赖
python3 -m venv .venv
source .venv/bin/activate
pip install -r backend/requirements.txt

本地运行

# 启动服务
bash scripts/start-local.sh

# 查看状态
bash manage.sh status

# 停止服务
bash manage.sh stop

服务启动后访问:

云端部署

  1. 配置服务器(参考 docs/deployment.md
  2. 设置防火墙(开放端口 22, PORT)
  3. 部署 Nginx 网关
  4. 建立 SSH 反向隧道
  5. 生成医生入口二维码

详细步骤见 docs/ 目录。

数据安全

  • 所有评估数据仅存储在本地
  • 云端 Nginx 仅做转发,不保留任何评估内容
  • 数据传输通过 SSH 加密隧道
  • 医生端 PIN 认证,支持随时撤销
  • 管理员密码可自由修改(4-6 位数字)
  • GitHub 仓库已脱敏(无 IP 地址、PIN 码、密码等敏感信息)

项目结构

cssrs-system/
├── backend/          # FastAPI 后端
│   ├── main.py       # 入口路由
│   ├── database.py   # 数据库操作
│   ├── scorer.py     # C-SSRS 评分逻辑
│   └── models.py     # 数据模型
├── frontend/         # H5 前端页面
│   ├── landing.html        # 入口页(双卡片)
│   ├── mobile-doctor.html  # 医生端
│   ├── admin.html          # 管理后台
│   ├── patient.html        # 患者答题页
│   ├── doctor-qr.html      # 医生入口二维码页
│   └── code.html           # 手动输入访问码页
├── docs/             # 部署和临床文档
├── scripts/          # 服务管理脚本
├── manage.sh         # 服务管理
└── deploy.sh         # 部署脚本

作者

杨勇(Yang Yong)

武汉市普仁医院精神科医生。致力于用标准化评估工具和数字化手段降低自杀风险,让每一位有自杀倾向的患者都能被及时发现、及时干预。本项目为开源作品,欢迎任何人为此添砖加瓦。

参与贡献

  1. Fork 本仓库
  2. 创建分支 git checkout -b feature/your-feature
  3. 提交更改 git commit -m 'feat: add your feature'
  4. 推送分支 git push origin feature/your-feature
  5. 提交 Pull Request

贡献者请注意

  • 不要将真实的评估数据、患者信息、服务器 IP 提交到代码库
  • 配置文件使用 .example 模板,真实配置加入 .gitignore

许可证

MIT License

致谢

基于 Columbia Lighthouse Project 的 C-SSRS 量表开发。

About

C-SSRS 电子评估系统 — 基于 FastAPI 的哥伦比亚自杀严重程度评定量表电子化工具

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors