nikolareljin/scancontext
GitHub: nikolareljin/scancontext
这是一款注重隐私的本地化医学影像与报告查看及辅助分析工具。
Stars: 0 | Forks: 0
# 扫描上下文
**本地优先的医学影像查看器、报告组织器和AI辅助标注工具。** 完全在您自己的计算机上运行——无论是Windows、macOS还是Linux。
**快速链接:**
[⬇️ 下载](https://github.com/nikolareljin/scancontext/releases/latest) ·
[🎬 查看演示](#-see-scancontext-in-action) ·
[🐳 Docker Desktop](https://www.docker.com/products/docker-desktop/) ·
[🐞 报告问题](https://github.com/nikolareljin/scancontext/issues) ·
[☕ 捐赠](https://ko-fi.com/nikolareljin)
### 步骤 1 — 安装 Docker Desktop(免费,一次性)
ScanContext 在 Docker 中运行。请为您的系统安装 Docker Desktop:
** **
- Windows:
- macOS:
- Linux:
### 步骤 2 — 选择如何运行 ScanContext
所有下载项都在 **[发布页面](https://github.com/nikolareljin/scancontext/releases/latest)** 上。
#### 选项 A — ScanContext 应用程序(推荐,最简单)
一个小型桌面应用程序,可一键为您启动和停止 ScanContext——无需脚本,无需管理文件。下载适用于您系统的安装程序:
| 系统 | 下载文件 | 安装方式 |
|---------|----------|----------|
| Windows | `ScanContext__x64-setup.exe` | 双击运行,按照安装程序提示操作 |
| macOS | `ScanContext__.dmg` | 打开 `.dmg` 文件,将 **ScanContext** 拖到应用程序文件夹 |
| Linux | `ScanContext__amd64.AppImage` | 对文件运行 `chmod +x`,然后双击——或安装 `.deb` / `.rpm` 包 |
然后像打开其他任何应用程序一样打开 **ScanContext**。它会检查 Docker,首次运行时下载应用程序,然后启动它。当准备就绪后,点击 **打开 ScanContext** 在浏览器中启动它。您可以使用窗口——或系统托盘/菜单栏图标——随时 **启动**、**停止** 和 **打开** ScanContext。
#### 选项 B — 下载包(`.zip`)
如果您不想安装应用程序,可以下载软件包并双击启动文件:
1. 从[发布页面](https://github.com/nikolareljin/scancontext/releases/latest)下载 `ScanContext-.zip` 并解压到任意位置(桌面、文档...)。
2. 打开解压后的文件夹并启动它:
| 系统 | 操作方式 |
|---------|----------|
| Windows | 双击 **`Start ScanContext.bat`** |
| macOS | 双击 **`Start ScanContext.command`** |
| Linux | 在文件夹中运行 `sh ./start.sh` |
首次启动会下载应用程序(需要几分钟)。准备就绪后,您的浏览器将打开 **ScanContext**,并开始简短的引导向导。您可以随时通过 **"?"** 按钮重新打开帮助。
### 停止运行
- **应用程序(选项 A):** 在窗口中或系统托盘/菜单栏图标上点击 **停止**。
- **软件包(选项 B):** 双击 **`Stop ScanContext.bat`**(Windows)或运行 `sh ./stop.sh`(macOS / Linux)。
您的检查数据和数据在每次运行之间都会保留。
## 系统要求
- **Windows 10/11**、**macOS 12+** 或现代 **Linux** 桌面环境。
- 已安装并运行 **Docker Desktop**。
- 约 4 GB 可用磁盘空间用于应用程序镜像,外加存放您检查数据的空间。
- 现代浏览器(Chrome、Edge、Firefox 或 Safari)。
## 功能介绍
- 导入 DICOM 检查、图像、ZIP、PDF 和文本报告。
- 在网页查看器中查看图像和 DICOM;绘制并保存标注。
- 提取并(可选地)将非英语报告翻译为英语。
- 可选地使用 AI 总结报告并建议需要仔细检查的区域——明确标注为“候选发现,非诊断”。
- 导出一份对医生友好的摘要,以便在就诊时分享。
**您的数据始终保存在您的机器上。** 除非您在设置中明确启用云 AI 提供商,否则不会上传任何内容。AI **默认关闭**。
## 🎬 查看 ScanContext 演示
以下所有内容均来自内置的 **演示检查**——一个完全虚构的胸部 CT 扫描,包含虚构的患者详情。任何地方均未显示真实的医疗数据。
▶️ **[观看完整演示(约60秒)](docs/showcase/video/walkthrough.webm)**
### 首次运行 — 引导向导
新用户在首次打开 ScanContext 时会收到一个简短的引导向导。

### 一目了然查看您的检查
仪表板列出了您导入的每项检查,显示导入状态和当前活动的 AI 提供商。

### 查看图像
打开一项检查,在内置查看器中滚动切片、缩放以及调整窗宽/窗位。

### 标注发现
您可以自己标记区域,或接受 AI 建议的候选区域。已确认的标记显示为实心蓝色;等待您审核的 AI 建议显示为点状琥珀色。


### 阅读和翻译报告
导入的报告按原样显示,并提供可选的英语翻译和 AI 摘要。

### 可选的 AI 审阅
启用 AI 提供商并让 ScanContext 分析一项检查——它会选择最相关的切片并建议值得仔细查看的区域,始终标注为“候选发现,非诊断”。

### 导出以与医生共享
将检查导出为对医生友好的 ZIP 文件——包含可读报告和标记的图像。勾选 **匿名化** 可在文件离开您的机器之前剥离患者姓名、机构和日期。

### 随时获取帮助
内置的帮助抽屉包含指南、常见问题解答、安全摘要以及重放引导向导的按钮。

## 可选 — 连接 AI 提供商
AI **默认关闭**,完全是可选的——ScanContext 在不使用 AI 的情况下功能完全正常。启用后,它可以总结报告、翻译非英语报告,并建议图像中值得仔细检查的区域——始终标注为“候选发现,非诊断”。
您可以使用以下任何提供商:
| 提供商 | 获取密钥/安装 | 备注 |
|--------|---------------|------|
| **Google Gemini** | | 推荐——有免费层可试用,付费层用于实际使用 |
| Anthropic Claude | | 付费 API |
| OpenAI | | 付费 API |
| Ollama | | 完全本地——无需密钥,任何内容都不会离开您的计算机 |
当云提供商启用时,**您所选择检查** 的图像/报告数据可能会被发送到该提供商——ScanContext 会先剥离患者标识符。Ollama 将所有内容保留在您的机器上。
### 设置 Google Gemini(推荐)
**1. 获取 API 密钥。** 打开 ,使用 Google 帐户登录,点击 **创建 API 密钥**,然后复制它(它看起来像 `AIza…`)。请妥善保管——像对待密码一样对待它。
**2. 启用计费——对医疗隐私很重要。** 新密钥默认在免费层。打开该密钥的 Google Cloud 项目并启用计费(**付费层**):
- 最全面的模型(`gemini-2.5-pro`)和可靠的速度需要付费层。
- 您可以在 Google Cloud 中设置**预算上限**,以避免意外费用。
**3. 在 ScanContext 中添加密钥(无需编辑文件)。** 打开 ScanContext,点击顶部栏中的 **设置** 链接,然后:
- **AI 提供商**:选择 **Gemini**
- 将您的 API 密钥粘贴到 **Gemini API 密钥** 框中(它在本地存储,从不完整显示——仅显示最后4个字符)
- 将 **云 AI 已启用** 打开
- (推荐)保持 **AI 前匿名化** 开启
- 点击 **保存设置**
更改会**立即生效——无需重启**。设置页面也是您稍后切换提供商、更改模型或删除已保存密钥的地方。然后打开一项检查并使用 **分析检查**;您需要为每项检查确认使用云服务。
高级选项 — 在
对于无人值守/脚本化设置,可以将相同的值写入 `.env` 文件。编辑后,您必须**停止,然后重新启动** ScanContext 以便重新加载。
```
AI_PROVIDER=gemini
CLOUD_AI_ENABLED=true
GEMINI_API_KEY=AIza...your-key...
GEMINI_MODEL=gemini-2.5-flash
```
`.env` 文件位置:
| ScanContext 安装方式 | `.env` 文件位置 |
|----------------------|-----------------|
| 下载包(`.zip`) | 在解压后的 `ScanContext-` 文件夹内 |
| ScanContext 应用程序 — Windows | `%APPDATA%\com.nikolareljin.scancontext\.env` |
| ScanContext 应用程序 — macOS | `~/Library/Application Support/com.nikolareljin.scancontext/.env` |
| ScanContext 应用程序 — Linux | `~/.local/share/com.nikolareljin.scancontext/.env` |
如果两者都设置了,应用程序内的 **设置** 值优先。
### 选择哪个 Gemini 模型?
| 您的需求… | 设置 `GEMINI_MODEL` 为 |
|-----------|------------------------|
| 经济、快速,适合日常使用 | `gemini-2.5-flash`(默认) |
| 最全面的分析 | `gemini-2.5-pro` |
### 费用是多少?
Gemini 按使用量收费,并且 ScanContext 仅在您要求它分析检查时才会调用它。每项检查的成本**在设计上是有上限的**——无论扫描有多少切片,ScanContext 最多审查大约十几个采样图像,因此大型扫描的成本与小型扫描相同。
| 模型 | 分析一次扫描/系列的成本 |
|------|--------------------------|
| `gemini-2.5-flash` | 约 **2–3 美分** |
| `gemini-2.5-pro` | 约 **10–20 美分** |
即使大量使用——一个月内 100 次检查——使用 Flash 大约花费 **2–3 美元**,使用 Pro 大约花费 **10–20 美元**。总结或翻译文本报告的成本不到一美分。价格由 Google 制定;当前费率:。
## 故障排除
- **“Docker 未安装”/“未运行”。** 安装 Docker Desktop,打开它,等待它显示 **“正在运行”**——然后再次启动 ScanContext。
- **应用程序提示缺少 Docker 但已安装(macOS)。** 确保 Docker Desktop 至少启动过一次;ScanContext 应用程序会在标准位置查找它。
- **端口已被占用。** 打包的应用程序使用您机器上的端口 `5173` 和 `8000`(Orthanc 在内部运行,不暴露)。如果 `5173` 被占用,请在 `.env` 文件中更改 `FRONTEND_PORT` 并重新启动。`8000` 内置于应用程序中且必须保持空闲——如果被占用,请释放它而不是更改 `BACKEND_PORT`。
- **首次启动缓慢。** 首次运行会下载应用程序镜像(需要几分钟)。后续启动会很快。
- **仍然无法解决?** 提交问题:
### Windows:Docker Desktop 无法启动(未检测到虚拟化)
如果 Docker Desktop 显示 *“无法启动,因为未检测到虚拟化支持”*,这是 Windows/PC 的设置问题。有两种独立的解决方法——大多数人只需要其中一种:
**修复 A — 在 PC 的 BIOS/UEFI 中启用虚拟化。** 重新启动并按启动屏幕上显示的设置键(通常是 **Del**、**F2**、**F10** 或 **Esc**)。找到虚拟化设置——Intel:*Intel Virtualization Technology* / *VT-x*;AMD:*SVM Mode* / *AMD-V*(位于高级、CPU 配置或安全设置下)——将其设置为 **Enabled**(启用),保存并退出,然后重新打开 Docker Desktop。
**修复 B — 修复 Windows 功能和 WSL。**
1. 按 Windows 键,输入 `Windows features`,打开 **启用或关闭 Windows 功能**,**取消勾选 Hyper-V 和虚拟机平台**,点击确定并**重启**。
2. 打开 **Windows PowerShell**(搜索框 → 输入 `Windows PowerShell`)并运行 `wsl --update`。如果提示 WSL 未安装,请运行 `wsl --install`(右键 PowerShell → *以管理员身份运行*)并**重启**。
3. 打开 Docker Desktop 并点击 **重试**。
Docker 自身的指南:
## 💛 支持 ScanContext
ScanContext 是**免费**的,由一位独立开发者构建。如果它为您节省了时间或减少了担忧,一次性 **10 美元的捐赠** 有助于保持其维护和改进——任何金额都有帮助:
**☕ **
## 隐私与安全
- ScanContext 不是诊断工具,也不能替代专业医疗建议。
- 医疗文件可能包含个人健康信息。请保管好您下载的文件夹和任何导出文件。
- 云 AI 是可选加入的。启用后,图像/报告数据可能会发送到您选择的提供商;ScanContext 会先剥离患者标识符。
- 该匿名化处理仅在您使用**付费**提供商套餐时才能提供真正的隐私保护。在 Google Gemini 的**免费层**,您的匿名数据仍可能被 Google 用于改进其模型——请使用**付费层**处理真正的医疗数据,或使用 **Ollama** 将所有内容保留在您自己的机器上。
由 **Nik Reljin** 构建和维护 · [GitHub](https://github.com/nikolareljin) · [LinkedIn](https://www.linkedin.com/in/nikolareljin)
高级选项 — 在 .env 文件中设置密钥
对于无人值守/脚本化设置,可以将相同的值写入 `.env` 文件。编辑后,您必须**停止,然后重新启动** ScanContext 以便重新加载。
```
AI_PROVIDER=gemini
CLOUD_AI_ENABLED=true
GEMINI_API_KEY=AIza...your-key...
GEMINI_MODEL=gemini-2.5-flash
```
`.env` 文件位置:
| ScanContext 安装方式 | `.env` 文件位置 |
|----------------------|-----------------|
| 下载包(`.zip`) | 在解压后的 `ScanContext-标签:AI辅助, Docker, 免费软件, 医疗健康, 医疗图像, 医疗设备, 图像处理, 安全防御评估, 开源, 报告查看, 数据隐私, 本地优先, 标注工具, 桌面应用, 请求拦截