Files
AIclinicalresearch/docs/00-系统总体设计/09-总体需求文档(PRD).md
HaHafeng 66255368b7 feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1):
- Database: Add user_modules table for fine-grained module permissions
- Database: Add 4 user permissions (view/create/edit/delete) to role_permissions
- Backend: UserService (780 lines) - CRUD with tenant isolation
- Backend: UserController + UserRoutes (648 lines) - 13 API endpoints
- Backend: Batch import users from Excel
- Frontend: UserListPage (412 lines) - list/filter/search/pagination
- Frontend: UserFormPage (341 lines) - create/edit with module config
- Frontend: UserDetailPage (393 lines) - details/tenant/module management
- Frontend: 3 modal components (592 lines) - import/assign/configure
- API: GET/POST/PUT/DELETE /api/admin/users/* endpoints

Architecture Upgrade - Module Permission System:
- Backend: Add getUserModules() method in auth.service
- Backend: Login API returns modules array in user object
- Frontend: AuthContext adds hasModule() method
- Frontend: Navigation filters modules based on user.modules
- Frontend: RouteGuard checks requiredModule instead of requiredVersion
- Frontend: Remove deprecated version-based permission system
- UX: Only show accessible modules in navigation (clean UI)
- UX: Smart redirect after login (avoid 403 for regular users)

Fixes:
- Fix UTF-8 encoding corruption in ~100 docs files
- Fix pageSize type conversion in userService (String to Number)
- Fix authUser undefined error in TopNavigation
- Fix login redirect logic with role-based access check
- Update Git commit guidelines v1.2 with UTF-8 safety rules

Database Changes:
- CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled)
- ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code)
- INSERT 4 permissions + role assignments
- UPDATE PUBLIC tenant with 8 module subscriptions

Technical:
- Backend: 5 new files (~2400 lines)
- Frontend: 10 new files (~2500 lines)
- Docs: 1 development record + 2 status updates + 1 guideline update
- Total: ~4900 lines of code

Status: User management 100% complete, module permission system operational
2026-01-16 13:42:10 +08:00

112 lines
6.5 KiB
Markdown
Raw Permalink 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.
# **壹证循科技 \- AI科研产品需求文档 (PRD)**
文档版本: 1.0
日期: 2025年11月5日
致: 产品部、市场部、销售部、技术部及全体同仁
## **1\. 文档目的**
本需求文档 (Product Requirements Document, PRD) 旨在清晰定义"壹证循科技AI科研产品"的核心功能、目标用户及关键的非功能性需求。
本文档是跨部门协作的基石,用于确保技术实现、产品设计与市场策略保持高度一致,特别是应对我们复杂的商业模式和多样的客户部署需求。
## **2\. 产品愿景与目标**
产品愿景:
打造一个覆盖临床科研全生命周期、AI驱动的一站式智能科研平台。
核心目标:
赋能临床医生和科研人员通过AI与自动化工具极大地提升科研效率、数据处理质量和文献分析深度缩短从数据到洞察的周期。
## **3\. 目标用户画像 (User Personas)**
1. **临床医生/研究者**
* **画像**:三甲医院的科室主任、主治医师、研究生。
* **痛点**有科研项目如国自然、GCP、回顾性研究压力但临床工作繁忙缺乏专业统计和数据处理时间。
* **需求**:需要"开箱即用"的工具,快速处理院内数据、分析文献、完成统计、撰写论文。**极其关注患者数据隐私与安全**。
2. **医院科室/IT部门**
* **画像**:医院的科研管理科室、信息中心。
* **痛点**需要为全院提供合规、可控的科研工具希望科研数据尤其是HIS、LIS数据保留在院内。
* **需求**:采购的工具必须支持**私有化部署**,且安全、稳定、易于管理。
## **4\. 核心功能需求 (Functional Requirements)**
产品功能矩阵共分为7大核心模块共同构成科研全流程闭环。
| 模块ID | 模块名称 | 核心功能描述 |
| :---- | :---- | :---- |
| **F1** | **智能统计分析 (SSA)** | 提供3条核心分析路径队列研究、预测模型、RCT研究。实现从数据上传、质控、分析到报告导出的完整流程。 |
| **F2** | **统计分析工具 (ST)** | 提供一个包含100+种轻量化统计工具的工具箱,满足即时、小型的分析需求。 |
| **F3** | **AI智能回答 (AIA)** | 提供10+个专业AI智能体覆盖科研关键节点选题评价、PICO梳理、样本量计算、研究方案制定、文章润色与翻译等。 |
| **F4** | **AI智能文献 (ASL)** | 提供AI驱动的文献工作流智能检索、标题摘要初筛、全文复筛、信息提取并支持Meta分析、证据图谱等应用。 |
| **F5** | **个人知识库 (PKB)** | 允许用户创建私人文献库如每个库50篇并能基于库内文献进行AI问答RAG。 |
| **F6** | **数据清洗整理 (DC)** | **(核心难点)** 提供专业工具处理医院导出的海量百万行级、多表格10+张的Excel数据实现两大功能 1\. **表格ETL**:将多张散乱的流水表,按"患者ID"和"时间"重组为一张干净的分析宽表。 2\. **文本提取(NER)**从病理报告、住院小结等大段文本中自动提取结构化的关键字段如TNM分期。 |
| **F7** | **个人中心 (UAM)** | 提供账户管理、版本信息、帮助中心、订单管理等基础支撑功能。 |
## **5\. 关键非功能性需求 (Non-Functional Requirements)**
这是本产品在商业推广中**最复杂、最核心**的需求,是技术架构必须解决的关键挑战。
### **NFR-1: 部署模式灵活性 (Deployment Flexibility)**
产品必须支持以下四种部署形态,以满足不同客户(尤其是医院)对数据安全和合规性的严苛要求。
| 部署形态 | 描述 | 关键要求 |
| :---- | :---- | :---- |
| **云端SaaS版** | (默认) 产品部署在公有云,用户通过浏览器按需订阅使用。 | 必须支持多租户、高可用。 |
| **私有化部署** | (医院/机构) 将**整个平台**或**指定模块**如DC, SSA部署在客户的内网服务器上。 | 必须提供容器化Docker/K8s的一键部署方案。数据100%不出内网。 |
| **单机版** | (个人医生) 提供**可安装的桌面应用(Windows/Mac)**针对DC、SSA、ASL等核心模块。 | **数据100%本地化**。文献、病例原始文件严禁上传。必须支持离线运行如DC, SSA*(例外ASL模块可受控调用云端LLM但仅限发送"摘要"而非"原文")* |
### **NFR-2: 商业模式可配置 (Commercial Flexibility)**
产品架构必须支持销售和市场策略的灵活性。
1. **SaaS多版本 (Tiered SaaS)**
* **需求**云端SaaS版必须支持至少三个等级**专业版、高级版、旗舰版**。
* **实现**:后端需具备完善的\*\*功能开关(Feature Flag)\*\*系统能按版本限制用户可用的功能模块、使用次数、AI模型等。
2. **模块化售卖 (Modular Sales)**
* **需求**任何一个功能模块如F4: AI智能文献都**必须能**被独立打包,作为单独的产品进行售卖。
* **实现**:技术架构必须是"松耦合"的,确保模块间没有硬依赖。
3. **AI成本可控 (Configurable AI)**
* **需求**:为应对不同客户的成本敏感度,平台必须支持**动态切换**后端的大语言模型。
* **实现**例如专业版用户默认调用成本较低的DeepSeek旗舰版用户可调用更高质量的Claude或GPT。
### **NFR-3: 平台与性能 (Platform & Performance)**
1. **平台兼容性**
* Web版必须支持所有现代浏览器Chrome, Edge, Firefox, Safari
* 单机版:必须支持 **Windows 10 (64位)及以上****macOS (Intel & Apple Silicon)**
* **【重点】明确不支持**:为保证产品稳定性和数据安全,单机版**不支持**任何32位操作系统及Windows 7等已停止服务的系统。
2. **数据处理性能 (DC模块)**
* 产品尤其是单机版必须能稳定处理百万行级别的多表Excel数据**严禁**因内存溢出而导致程序崩溃。
* 产品(服务器版)在处理相同数据时,应追求极致效率,在数分钟内完成处理。
3. **文本提取质量 (DC模块)**
* 产品必须能提供高准确率的医学文本提取。
* **服务器版(最优解)**应使用SOTA业界顶尖的LLM如Claude 3以保证最高质量。
* **单机版(妥协解)**为保证数据隐私必须使用100%本地运行的NLP模型如spaCy在保护隐私的前提下尽力提高准确率。