Files
backend/docs/04-产品功能规划.md
T
34047007@qq.com a6cd99a4ca
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
feat: initial commit - oncology literature search platform
OncoLit: a multi-tenant oncology literature search, feed, and
collaboration platform. Built with FastAPI + Vue 3 + PostgreSQL.
Includes PubMed pipeline, drug approvals, AI summaries, and
systematic review tools.
2026-07-27 07:59:18 +08:00

387 lines
26 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 产品功能规划
> 最后更新:2026-07-12 · 详见 [开发阶段与里程碑](07-开发阶段与里程碑.md) | [AI 辅助功能规划](08-AI辅助功能规划.md)
## 产品定位
> *"早上查房前 5 分钟,看完全世界今天最重要的肿瘤学进展。"*
肿瘤科文献管理 SaaS 平台。覆盖 PubMed 每日全量肿瘤学文献,自动打标、精准推送,为三甲医院肿瘤科/MDT 团队提供从文献发现到团队协作的一站式解决方案。
---
## 开发里程碑 v0.5(当前)
### 状态图例
| 标记 | 含义 |
|------|------|
| ✅ | **已实现**(生产可用) |
| 🟡 | **骨架完成**(可运行但缺深度功能) |
| 🔴 | **未实现**(无 UI / 无后端) |
| 🚧 | **建设中**(正在开发) |
### 当前验证指标(2026-07-08
- **前端类型检查**: `vue-tsc --noEmit` ✅ 零错误
- **生产构建**: `vite build` ✅ 成功
- **自动化测试**: `pytest` ✅ 867 passed / 2 pre-existing failurespayment FK — 已知预存问题)
- **代码质量**: 零 unused import / 零 TS error
### 实施阶段记录
| 阶段 | 范围 | 关键交付 | 时间 |
|------|------|----------|------|
| Phase 1-7 | 产品基础建设 | 多租户、认证、PubMed 管道、MeSH 标签、Feed 引擎、搜索、收藏、笔记、AI 摘要、导出 | 此前 |
| Phase 8 | Journal Club + MDT 协作 | 文献队列、AI 汇报提纲、MDT 病例卡/证据/决策、文献包推荐 | 此前 |
| Phase 9 | 用户核心体验增强 | 已读/未读样式、GuidelineCompare LCS diff 高亮、MLA 导出 + 一键复制引用 + 方案感知过滤 | 此前 |
| Phase 10 ✅ | 搜索体验 + 收藏管理 + AI 配置 | 中文 MeSH 自动匹配、搜索排序下拉、个人文件夹 CRUD + LibraryView 侧栏、AiProviderConfig 模型/API/UI、ai_summary DB 配置加载 | 2026-07-08 |
| Phase 11 ✅ | 4 层用户体系 | L2 微信扫码登录 + L4 Free/Pro/Team 3 档(Enterprise 并入 Team+ L3 邮箱/手机验证码验证 | 2026-07-08 |
| Phase 12 ✅ | 文献数据质量工程 | SMTP 邮件、OA 全文回填、Dashboard 数据质量面板、MeSH 标签覆盖提升(47%→48%)、PICO 抽取(497/500)、管道定时任务落地、生产部署文档完善 | 2026-07-10 |
| Phase 13 🔲 | ES 搜索迁移 | Elasticsearch 客户端 + search_service.py + 管道自动同步 + API 切换(es_enabled fallback),文献 200-300 万时启动 | 待定 |
---
## 系统架构总览
```
┌───────────────────────────────────────────────────────────┐
│ 平台端 (Super Admin) │
│ 租户管理 · 用户管理 · 订阅计费 · 数据管道 · 标签引擎配置 │
├───────────────────────────────────────────────────────────┤
│ 用户端 (Doctor) │
│ 每日速览 · 文献检索 · 个人收藏 · 笔记 · 导出 · 科室团队 │
├───────────────────────────────────────────────────────────┤
│ 科室配置层 (config/specialties/) │
│ 肿瘤科: MeSH过滤规则 · 标签树 · 期刊列表 · UI主题 │
├───────────────────────────────────────────────────────────┤
│ 数据管道层 (Pipeline) │
│ PubMed FTP → XML解析 → 配置驱动过滤 → MeSH映射 → 标签引擎 │
├───────────────────────────────────────────────────────────┤
│ 基础设施层 (Infra) │
│ 多租户RLS · JWT认证 · RBAC · Stripe计费 · ES搜索 · S3/OSS │
└───────────────────────────────────────────────────────────┘
```
---
## 一、平台端功能规划
### Phase 1 — 基础功能
| 状态 | 模块 | 功能 | 说明 | 实现文件 |
|------|------|------|------|----------|
| ✅ | **租户管理** | 租户注册 | 医院/科室自主注册,填写机构名称、科室名称 | `admin.py:create_tenant` |
| ✅ | | 租户审核 | 平台管理员审核注册申请 | `TenantsView.vue` |
| ✅ | | 租户信息 | 名称、logo、科室名称、成员数 | `admin.py:GET /tenants` |
| ✅ | | 租户状态 | 启用/停用/冻结 | `TenantsView.vue` 操作列 |
| ✅ | **用户管理** | 用户注册 | 邮箱+密码注册,或邀请链接注册 | `auth.py` |
| ✅ | | 用户登录 | JWT 认证,支持邮箱/密码 + 微信扫码登录 | `auth.py` + `wechat_auth.py` |
| ✅ | | 微信登录 | 标准 OAuth 回调流程,dev mode mock,合成邮箱 `wc_*@wechat.user` | `wechat_oauth.py` + `WeChatLoginCallback.vue` |
| ✅ | | 角色分配 | owner/admin/editor/viewer | `teams.py` |
| ✅ | | 个人信息 | 头像、姓名、职称、亚专业方向、手机号 | `SettingsView.vue` |
| ✅ | | 密码管理 | 修改密码、忘记密码重置 | `auth.py:reset_password` |
| ✅ | | 登录日志 | 登录时间、IP、设备 | `admin.py:GET /auth/logs` |
| 🟡 | **系统配置** | 基础参数 | 系统名称、默认语言、时区 | `ConfigView.vue` 可编辑 JWT,其余只读 |
| 🔴 | | 邮件配置 | SMTP 服务器、发件人、模板 | 未实现(测试用空 SMTP_HOST |
| 🔴 | | 文件存储 | S3/MinIO/本地存储切换 | 未实现(无文件上传功能) |
| 🔴 | | 系统公告 | 维护通知、版本更新公告 | 未实现 |
| ✅ | **数据管道** | 采集状态 | 查看基线导入进度、每日增量状态 | `PipelineView.vue` 运行历史表格 |
| ✅ | | 采集日志 | 每日拉取量、解析成功/失败数、耗时 | `PipelineRun` 模型记录 |
| ✅ | | 手动触发 | 手动触发全量/精搜/宽搜/引用刷新 | `PipelineView.vue` 操作卡片 + `/admin/pipeline/run` |
| 🔴 | | 异常告警 | 采集失败/延迟自动通知管理员 | 未实现(ARQ 日志无告警) |
| ✅ | | 数据统计 | 总文献量、日均新增、标签分布 | `AnalyticsView.vue` + `/admin/tags/distribution` |
| ✅ | **热搜缓存** | 首页热搜侧栏 | 近 1 年高被引文献 TOP30,每 30 分钟定时缓存刷新,支持分页 + "换一批" | `hot_articles_cache.py` + `public.py` + `worker.py` |
| ✅ | **标签引擎** | MeSH 标签树 | 从 MeSH C04 导入完整的肿瘤标签层级 | `tag_loader.py` + `seed_data.py` |
| 🟡 | | 标签管理 | 可视化编辑标签树 | `TagsView.vue` 列表,无树状编辑 UI |
| ✅ | | 标签别名 | 英文名 ↔ 中文名映射 | `GlobalTag` 模型内建 |
| ✅ | | 标签映射规则 | MeSH descriptor → 标签节点 | `pubmed_api.py` 双向映射 |
| ✅ | | 标签统计 | 每个标签下的文献数量 | `TagsView.vue` 统计列 |
### Phase 2 — 高级功能
| 状态 | 模块 | 功能 | 说明 | 实现文件 |
|------|------|------|------|----------|
| 🟡 | **订阅计费** | 方案管理 | 定义 Free/Pro/Team 三档(Enterprise 已移除,功能并入 Team | `/subscriptions/plans`, `test_payment*` FK 问题待修 |
| 🔴 | | Stripe 产品同步 | 后台配置 Stripe Product/Price ID | 未实现(无 Stripe 集成) |
| 🟡 | | 订阅记录 | 查看每个租户的订阅状态 | `TenantsView.vue` 显示 |
| 🔴 | | 升级/降级 | 手动处理升级降级、退款审批 | 未实现 |
| 🔴 | | 发票管理 | 查看/下载发票 | 未实现 |
| 🔴 | | 优惠券 | 创建折扣码 | 未实现 |
| 🔴 | | 试用管理 | 配置试用期天数、到期提醒 | 未实现 |
| 🟡 | **功能开关** | 按方案差异化 | Free 无团队功能、Team 有协作 | `core/plans.py` 功能矩阵 |
| 🔴 | | 按租户覆盖 | 为特定租户单独开关功能 | 未实现 |
| 🔴 | | 灰度发布 | 新功能先对 10% 租户开放 | 未实现 |
| 🔴 | **内容管理** | 系统公告 | 富文本编辑、定时发布 | 未实现 |
| 🔴 | | 推送通知模板 | 每日文献推送模板 | 未实现 |
| 🟡 | | 帮助文档 | 使用指南、FAQ | `HelpView.vue` + `AboutView.vue` |
| ✅ | | 用户反馈 | 反馈列表、状态跟踪 | `FeedbackView.vue` 处理/删除 |
| ✅ | **运营分析** | 平台总览 | 总租户数、DAU/MAU、总文献量 | `AnalyticsView.vue` 统计卡片 |
| ✅ | | 租户分析 | 活跃度、阅读量、协作频次 | 后端 API 存在,前端折线图待补 |
| ✅ | | 标签分析 | 热门标签、关注领域分布 | `AnalyticsView.vue` 饼图 + 分布 |
| ✅ | | 管道运行趋势 | 新增文献量 + 生成推送量柱状图 | `AnalyticsView.vue` 管道量趋势图 |
| ✅ | | 日活跃用户趋势 | 近30天 DAU 折线图 | `GET /admin/stats/dau` + `AnalyticsView.vue` DAU 折线图 |
| 🟡 | | 营收分析 | MRR/ARR、付费转化率 | 未实现(Stripe 未集成,无数据) |
### Phase 3 — 增强功能
| 状态 | 模块 | 功能 | 说明 | 实现文件 |
|------|------|------|------|----------|
| ✅ | **AI 配置** | LLM 配置 | 支持 DB 配置 + 管理 UI,无 DB 配置时回退到环境变量 | `AiProviderConfig` 模型 + `ConfigView.vue` + `ai_summary.py` DB 加载 |
| 🔴 | | AI 摘要模板 | Prompt 模板管理 | 未实现 |
| 🔴 | | AI 翻译 | 中英文互译开关 | 未实现 |
| 🔴 | | 用量监控 | 各租户 Token 消耗 | 未实现 |
| 🔴 | | 成本控制 | 每日调用上限、成本告警 | 未实现 |
| ✅ | **专科配置** | 配置编辑器 | 可视化编辑 MeSH 过滤、标签树、期刊白名单 | `oncology.yaml` 配置驱动 |
| 🔴 | | 配置版本管理 | 修改历史版本、支持回滚 | 未实现(YAML 文件层无版本) |
| 🔴 | | 配置导入/导出 | 导出为 YAML/JSON,新部署时导入 | 未实现 |
| 🔴 | | 配置校验 | 修改后预览匹配效果 | 未实现 |
| 🟡 | | 新专科部署脚本 | 选模板 → 生成配置 → Docker启动 | Docker Compose 脚本可用,专科切换需手动 |
| ✅ | **开放 API** | API Key 管理 | 生成/吊销 API Key | `ApiManagementView.vue` |
| ✅ | | API 文档 | OpenAPI/Swagger | FastAPI 自动生成 |
| ✅ | | 调用限额 | 按方案设置日调用量 | `core/plans.py` 方案矩阵 |
| 🟡 | | 调用日志 | 调用记录、错误率监控 | 后端记录,前端详情待补 |
| 🟡 | | Webhook | 文献入库回调、新文献通知 | `webhooks.py` 端点,UI 待补 |
---
## 二、用户端功能规划
### Phase 0 — 公开页面(未登录也可访问,引导转化)
> 参考 deerlit.com / arxivdaily.com 模式:先让用户看到价值,再引导注册
**U0.1 首页 (Landing Page)**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | Hero 区域 | 产品价值主张 + 统计数据(收录638万篇/127本期刊/日均62篇) | `HomeView.vue` + `/public/stats` |
| ✅ | 双 CTA | "免费注册"(主按钮)+ "浏览今日精选"(次按钮,不强制注册) | `HomeView.vue` |
| ✅ | 今日精选卡片 | 8 篇文献卡片瀑布流,展示标题+期刊+标签+AI一句话总结 | `HomeView.vue` |
| ✅ | 本周热榜 | 全平台阅读量最高的 10 篇文献,带阅读计数 | `HomeView.vue` + `/public/hot-articles` |
| 🟡 | 按癌种浏览 | 横向标签云:肺癌/乳腺癌/结直肠癌/胃癌... → 跳转对应筛选 | 有癌种标签,无跳转筛选页 |
| 🔴 | 用户证言 | 引用真实用户评价,增加信任 | 未实现(示例如: testimonial 数据源) |
| ✅ | 底部数据横幅 | 累计收录/期刊覆盖/日均更新的实时数据 | `HomeView.vue` 统计横幅 |
| ✅ | Footer | 关于我们 / 定价 / 帮助中心 / 联系方式 | `HomeView.vue` Footer |
**U0.2 每日精选页(公开全文浏览)**
| 状态 | 功能 | 说明 |
|------|------|------|
| ✅ | 文献列表 | 全部今日精选文献,分页列表,无需登录 |
| 🟡 | 快捷标签过滤 | 顶部横向标签:按癌种/标签过滤 | `HomeView.vue` 已实现标签筛选 |
| ✅ | 文献卡片 | 公开版卡片:标题+作者+期刊+日期+标签+AI一句总结 |
| 🟡 | 摘要展开 | 点击"查看摘要"原地展开 | 跳转详情页而非原地展开 |
| ✅ | PubMed 链接 | 提供原文 DOI/PubMed 跳转 |
| 🔴 | 转化 CTA 条 | 每滚动一屏插入轻量 CTA | 未实现 |
| ✅ | **功能限制** | 未登录限制 PDF/收藏/导出/AI |
**U0.3 文献详情页(公开版)**
| 状态 | 页面 | 说明 |
|------|------|------|
| ✅ | 公开版 | 标题、作者、期刊、日期、中英文摘要、AI 一句话、全部标签、PubMed/DOI 跳转 | `PublicLayout` + `LiteratureDetailView.vue` |
| ✅ | 登录版 | PDF 全文、收藏、导出、AI 详细解读、笔记、分享到科室 | `AppLayout` + `LiteratureDetailView.vue` |
**U0.4 定价页**
| 状态 | 功能 | 说明 |
|------|------|------|
| ✅ | Free/Pro/Team 对比 | 功能矩阵表格(Enterprise 已移除,功能并入 Team | `PricingView.vue` |
| ✅ | 常见 FAQ | 可以随时降级吗?团队版最少几人? | `PricingView.vue` |
| 🔴 | Enterprise 联系销售 | 联系表单/邮件触发 | 未实现 |
**U0.5 关于页 + 帮助中心**
| 状态 | 页面 | 说明 |
|------|------|------|
| ✅ | 关于页 | 产品介绍、团队背景 | `AboutView.vue` |
| ✅ | 帮助中心 | FAQ、数据来源说明、联系方式 | `HelpView.vue` |
**U0.6 SEO 优化**
| 状态 | 策略 | 实现 |
|------|------|------|
| ✅ | 每篇文献独立 URL | `/literature/:pmid` |
| ✅ | Schema.org 结构化数据 | WebApplication(全局)+ ScholarlyArticle(文献详情页 JSON-LD |
| ✅ | meta description | 路由级 + 文献详情页动态 description |
| ✅ | Open Graph 标签 | og:title + og:description 注入文献详情页 |
| 🔴 | 癌种标签页 | `/topic/lung-cancer` 聚合页(未实现) |
| 🔴 | 期刊标签页 | `/journal/NEJM` 聚合页(未实现) |
### Phase 1 — 基础功能(登录后)
**U1.1 每日文献速览(核心产品功能)**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 必读推送 | 根据关注领域+期刊偏好,每日 7:00 推送 5-20 篇必读标题 | `feed_engine.py` + ARQ `daily_pubmed_pipeline` |
| ✅ | 速览列表 | 按优先级组织、分页、标签徽章 | `FeedView.vue` |
| ✅ | 分级展示 | 🔴必读 / 🟡推荐 / ⚪相关 | `FeedView.vue` NCollapse 分组 |
| ✅ | 已读/未读 | 进入详情自动标记 + 卡片透明/左边框区分 + FeedView 后端透传 | `LiteratureCard.vue` + `mark_feed_read` API |
| ✅ | 快速操作 | 保存、批量保存、标记不感兴趣、批量忽略 | `FeedView.vue` 本批次增强 |
| 🟡 | 批量多选 | 复选框 + 全选 + 批量收藏/忽略 | ✅ 本批次新增 |
| 🟡 | 筛选 | 优先级/日期范围/搜索 | ✅ 本批次新增 |
| 🔴 | 不感兴趣学习 | 点"不感兴趣"后学习偏好、减少类似推送 | `dismiss` 仅标记忽略,无学习机制 |
**U1.2 文献详情页**
| 状态 | 功能 | 说明 |
|------|------|------|
| ✅ | 标题、全部作者及单位、DOI/PMID/期刊信息 | `LiteratureDetailView.vue` |
| ✅ | 英文摘要全文 + 自动标注的所有标签 | 点击可反向筛选 |
| ✅ | DOI 跳转出版方、PMC 免费全文链接 | PMC OA 全文已集成 |
| ✅ | 单篇导出 BibTeX / RIS / EndNote / CSV | `export_single_endpoint` |
| 🟡 | AI 摘要/一句话/解读 | 后端 `generate_ai_summary`,前端有请求按钮 |
| ✅ | 笔记 | 添加/编辑/删除笔记 |
| ✅ | 收藏 + 评分 | 1-5 星评分 |
**U1.3 用户关注领域设置(个性化引擎)**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 癌种多选 | 肺癌>NSCLC/SCLC、乳腺癌>TNBC/HR+/HER2+ 等 | `InterestSettingsView.vue` |
| ✅ | 靶点多选 | EGFR/ALK/ROS1/BRAF/KRAS 等 | `InterestSettingsView.vue` |
| ✅ | 治疗方式多选 | 靶向/免疫/化疗/放疗/手术/ADC/双抗 | `InterestSettingsView.vue` |
| 🟡 | 文献类型偏好 | 指南/RCT/Meta/真实世界/综述/病例 | 后端支持,前端待补 UI |
| 🟡 | 期刊偏好 | 四级期刊等级勾选 | 后端支持,前端待补 UI |
| 🟡 | 匹配模式 | 宽松/标准(默认)/严格 | 后端 `subscriptions/preferences`,前端待补 |
| 🔴 | 预估推送量 | "近7天有 XX 篇文献" | 未实现 |
**U1.4 个人收藏与笔记**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | Feed 一键保存 | 保存到个人库 | `LiteratureCard.vue` 收藏按钮 |
| ✅ | 收藏夹管理 | 收藏夹 CRUD、左侧栏切换、色块指示器、文献数统计 | `user_settings.py` 4 端点 + `LibraryView.vue` 双栏布局 + `literature.py` folder_id 过滤 |
| 🟡 | 阅读状态 + 评分 | 未读/阅读中/已读完 + 1-5星 | `LiteratureDetailView.vue` 评分按钮 |
| ✅ | 笔记 | Markdown + 引文 | `MyNotesView.vue` 本批次增强 |
| ✅ | 自定义个人标签 | 为文献打个性标签 | `LiteratureDetailView.vue` 标签面板 |
**U1.5 个人中心**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| 🔴 | 个人学术画像 | 收藏数、笔记数、阅读量、期刊 Top5、标签云 | **完全缺失**(有后端 API `/settings/profile`,无前端页面) |
| ✅ | 个人信息编辑 | 头像、姓名、职称、亚专业方向、手机号 | `SettingsView.vue` |
| 🟡 | 套餐查看 | 当前方案、使用量监控 | `SettingsView.vue` 简单显示 |
| ✅ | 邮箱验证 | 发送验证码到邮箱 → 6 位码验证 → `email_verified=True` | `SettingsView.vue` + `useVerification.ts` + `verification.py` |
| ✅ | 手机验证 | 输入手机号 → 发送 SMS → 6 位码验证 → `phone_verified=True` | `SettingsView.vue` + `useVerification.ts` + `sms_service.py` |
| ✅ | 账号安全 | 修改密码、登录日志、邮箱/手机验证 | `SettingsView.vue` 安全设置 |
### Phase 2 — 高级功能
**U2.1 文献搜索与高级筛选**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 全文搜索 | 标题/摘要/作者/机构 tsvector 搜索(GIN 索引 `ix_gl_search_tsv`,含作者名 + 机构名),ILIKE 仅兜底 | `SearchView.vue` + `/literature/search` |
| ✅ | 中文→英文 MeSH 匹配 | 中文关键词自动匹配 `GlobalTag.name_zh` → 注入 tag_ids 走标签递归 | `search_engine.py` 中文检测 + 标签回退 |
| 🟡 | 多条件标签过滤 | 癌种/靶点/治疗/类型/终点组合 | 搜索 API 支持 `tag_ids`,前端简化版 |
| ✅ | 年份/期刊/作者/机构 | 年份范围、期刊等级、作者搜索、机构搜索(全部走 search_tsv @@ tsvector | 搜索参数 + `_field_condition()` |
| ✅ | 排序 + 分页 + 导出 | 相关度/日期/引用次数 + 批量导出 | `SearchView.vue` |
**U2.2 科室团队功能**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 邀请成员 | 邮箱邀请(含邀请邮件通知)、角色分配、未注册用户引导注册、成员列表 | `TeamView.vue` + `teams.py` + `email_service.py` + `AcceptInviteView.vue` |
| 🟡 | 共享收藏夹 | "MDT讨论文献"、"科室晨会文献" | 后端 API 完整 (`teams/shared-folders`),前端 TeamView **缺少 UI** |
| 🟡 | 文献分享到科室 | 分享到科室空间 + 分享者点评 | 后端 API 完整 (`teams/activity`),前端 **缺少展示** |
| 🟡 | 团队活动流 | 成员动态 feed | 后端 API 完整,前端 **缺少时间线 UI** |
| 🟡 | 阅读排行 | 科主任查看全科室阅读情况 | 后端 API 完整,前端 **缺少排行 UI** |
| ✅ | 权限控制 | 角色可见范围(自己/科室/指定组) | `TeamView.vue` 角色管理 |
**U2.3 引用导出**
| 状态 | 功能 | 说明 |
|------|------|------|
| ✅ | 单篇导出 | BibTeX / RIS / EndNote / CSV / MLA | `/literature/export/{pmid}/{fmt}` |
| ✅ | 批量导出 | BibTeX / RIS / EndNote / CSV | `/literature/export/batch/{fmt}` |
| 🔴 | CSL 引擎 | 9000+ 期刊格式 | 未实现(当前用内置模板) |
| ✅ | 一键复制引用 | MLA 格式复制到剪贴板 + 方案感知格式过滤 | `useLiteratureDetail.ts` + `/literature/export/{pmid}/citation` |
| 🔴 | 定时导出 | 按周/月自动推送导出 | 未实现 |
**U2.4 期刊订阅与导航**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 期刊列表浏览 | 按影响因子排序,显示发文量 | `JournalBrowseView.vue` (公开) |
| 🟡 | 期刊详情 | 最新文献、发文趋势、热点标签 | 后端 API 存在,前端详情页待补 |
| 🔴 | 期刊订阅推送 | 有新文献时推送通知 | 未实现 |
| 🟡 | 期刊目录速览 | 四级期刊等级勾选 | 后端支持,前端 `InterestSettingsView` 待补 |
### Phase 3 — 增强功能
**U3.1 AI 智能助手** → 详见 [docs/08-AI辅助功能规划.md](docs/08-AI辅助功能规划.md)
| 状态 | 功能 | 说明 | 层级 | 实现文件 |
|------|------|------|------|----------|
| ✅ | AI 总结 | 适合快速浏览的 40 字内结论 | Tier 1 | `ai_summary.py` + `LiteratureDetailView.vue` |
| 🟡 | AI 详细摘要 | 中文重构式:背景-方法-结果-结论 | Tier 1 | 后端 `generate` 接口,前端触发按钮 |
| 🔴 | AI 解读标签页 | 结构化展示 + 关键数据表格 + 中文翻译 | Tier 1 | 详情页新增标签页,计划 Phase 1 |
| 🔴 | AI 翻译 | 标题/摘要一键中英互译 | Tier 1 | 未实现 |
| 🔴 | 知识库 RAG 问答 | 基于个人收藏/上传文件的知识库问答 | Tier 2 | 新建 knowledge_entries + ES 向量 + Q&A API,计划 Phase 2-4 |
| 🔴 | 知识图谱探索 | 收藏文献的实体共现关系可视化 | Tier 2 | 自动 NER + 关系图视图,计划 Phase 6 |
| 🔴 | 个性化 AI 解读 | 按研究方向自动适配解读角度 | Tier 3 | 研究方向配置 + prompt 模板,计划 Phase 7 |
| 🔴 | 多模型选择 | 用户可选 DeepSeek / GPT-4o / 本地模型 | Tier 3 | AiProviderConfig 扩展,计划 Phase 7 |
| ✅ | AI 关联推荐 | 引用本文的文献 + 相似标签的近期文献 | — | `GET /literature/{pmid}/related` + `LiteratureDetailView.vue` 推荐卡片 |
**U3.2 新药审批追踪**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 审批列表 | FDA/NMPA/EMA 审批记录查看 | `DrugApprovalsView.vue` |
| ✅ | 靶点时间线 | 某靶点全部获批药物时间线,垂直时间线视图 | `DrugApprovalsView.vue` 时间线标签页 |
| ✅ | 审批日历 | 按月日历网格,颜色区分监管机构 | `DrugApprovalsView.vue` 日历标签页 |
| ✅ | 靶点订阅 | 关注靶点新药获推送通知,管理已订阅靶点 | `DrugApprovalsView.vue` 订阅按钮 + 订阅管理标签页 |
| ✅ | 靶点时间线导航 | 点击列表靶点自动跳转时间线 | `DrugApprovalsView.vue` 时间线按钮 |
**U3.3 临床指南更新提醒**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 指南列表 | NCCN/CSCO/ESMO 版本列表 | `GuidelinesView.vue` |
| ✅ | 版本比对 | 查看新旧版本差异 | `GuidelineCompareView.vue` |
| ✅ | 差异高亮 | LCS word-level diff + 并排 + 变更要点 inline 高亮 | `GuidelineCompareView.vue` LCS 算法 |
| 🟡 | 版本导航 | 下拉选择版本后自动加载对比 | `GuidelineCompareView.vue` 基本版本切换 |
| ✅ | 推荐→证据引用链 | 指南推荐方案的支撑文献 | `GuidelineEvidence` 模型关联 |
| 🔴 | 治疗线数查找 | 按癌种+治疗线数快速查找标准方案 | 未实现 |
| 🔴 | 推送通知 | 指南版本更新自动推送用户 | 未实现 |
**U3.4 Journal Club 管理(科室文献汇报)**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 文献排队 | 添加文献到 JC 队列、分配汇报人 | `JournalClubView.vue` |
| 🟡 | AI 汇报提纲 | AI 自动生成:背景/方法/结果/临床意义 | 后端 `outline` API,前端一键生成按钮 |
| 🟡 | 讨论笔记 | 会议记录 + 已报告标记 | 后端已支持,前端已实现笔记编辑(本批次新增) |
| 🔴 | 日历排期 | 月度日历视图,标记已排期文献 | 未实现 |
| 🔴 | 批量添加 | 支持 PMID 逗号分隔批量入队 | 未实现 |
| 🔴 | 前置文献推荐 | "读前必读" 按钮,AI 推荐关键引用 | 未实现 |
| 🟡 | 历史归档 | 已报告文献可检索 | `JournalClubView.vue` 状态切换 |
**U3.5 MDT 肿瘤多学科团队协作**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 病例卡 | 匿名化病例创建、癌种分类 | `MdtView.vue` 新建弹窗 |
| ✅ | 角色标签 | 内科/外科/放疗/病理/影像色彩标签 | `MdtView.vue` 参与者标签 |
| ✅ | 文献证据 | 病例关联文献、自动抓取引用信息 | `MdtView.vue` 证据管理抽屉 |
| ✅ | 决策记录 | MDT 讨论结论 + 参会人员 + 日期 | `MdtView.vue` 决策弹窗 |
| ✅ | 病例文献包 | 基于癌种 + 关键词自动推荐相关文献,一键添加为证据 | `GET /mdt/cases/{cid}/literature-pack` + `MdtView.vue` 文献包抽屉 |
| ✅ | 文献包自动去重 | 已添加为证据的文献自动排除 | `literature-pack` 端点 |
**U3.6 个人学术画像**
| 状态 | 功能 | 说明 | 实现文件 |
|------|------|------|----------|
| ✅ | 个人学术画像 | 收藏数/评分/笔记/订阅/阅读量/7日活跃/阅读率 | `ProfileView.vue` |
| ✅ | 期刊 Top5 | 横向条形图 | `ProfileView.vue` |
| ✅ | 标签云 | 热度排序、彩色标签 | `ProfileView.vue` |
| ✅ | 周报下载 | 生成并下载 Markdown 周报 | `ProfileView.vue` |
| 🔴 | 知识图谱 | 关注领域的研究热点 → 详见[AI辅助功能规划](docs/08-AI辅助功能规划.md#34-知识图谱分步实施) | Phase 6 |
| 🔴 | ORCID 绑定 | 追踪自己被引用的文献 | 未实现 |
| 🔴 | AI 推荐方向 | 基于阅读水平的深入学习建议 | 未实现 |
| 🔴 | AI 辅助科研 | 趋势扫描/空白分析/证据综合/假设生成/写作辅助 → 详见[AI辅助功能规划](docs/08-AI辅助功能规划.md#七ai-辅助科研未来方向) | Phase A-E |