feat(admin): Complete Phase 3.5.1-3.5.4 Prompt Management System (83%)

Summary:
- Implement Prompt management infrastructure and core services
- Build admin portal frontend with light theme
- Integrate CodeMirror 6 editor for non-technical users

Phase 3.5.1: Infrastructure Setup
- Create capability_schema for Prompt storage
- Add prompt_templates and prompt_versions tables
- Add prompt:view/edit/debug/publish permissions
- Migrate RVW prompts to database (RVW_EDITORIAL, RVW_METHODOLOGY)

Phase 3.5.2: PromptService Core
- Implement gray preview logic (DRAFT for debuggers, ACTIVE for users)
- Module-level debug control (setDebugMode)
- Handlebars template rendering
- Variable extraction and validation (extractVariables, validateVariables)
- Three-level disaster recovery (database -> cache -> hardcoded fallback)

Phase 3.5.3: Management API
- 8 RESTful endpoints (/api/admin/prompts/*)
- Permission control (PROMPT_ENGINEER can edit, SUPER_ADMIN can publish)

Phase 3.5.4: Frontend Management UI
- Build admin portal architecture (AdminLayout, OrgLayout)
- Add route system (/admin/*, /org/*)
- Implement PromptListPage (filter, search, debug switch)
- Implement PromptEditor (CodeMirror 6 simplified for clinical users)
- Implement PromptEditorPage (edit, save, publish, test, version history)

Technical Details:
- Backend: 6 files, ~2044 lines (prompt.service.ts 596 lines)
- Frontend: 9 files, ~1735 lines (PromptEditorPage.tsx 399 lines)
- CodeMirror 6: Line numbers, auto-wrap, variable highlight, search, undo/redo
- Chinese-friendly: 15px font, 1.8 line-height, system fonts

Next Step: Phase 3.5.5 - Integrate RVW module with PromptService

Tested: Backend API tests passed (8/8), Frontend pending user testing
Status: Ready for Phase 3.5.5 RVW integration
This commit is contained in:
2026-01-11 21:25:16 +08:00
parent cdfbc9927a
commit 5523ef36ea
297 changed files with 15914 additions and 1266 deletions

View File

@@ -0,0 +1,312 @@
# INST - 机构管理端
> **模块代码:** INST
> **模块名称:** 机构管理端Institution Management Portal
> **优先级:** P1重要功能
> **开发状态:** 🔴 未开始
> **负责人:** [待定]
---
## 📋 模块概述
机构管理端是为**医院客户**和**药企客户**提供的自服务管理界面,让机构管理员能够独立管理自己租户内的用户、配额、科室等资源。
### 核心价值
1. **自服务管理**:减轻运营团队压力,机构自主管理
2. **配额分配**:医院/药企内部按科室或个人分配Token额度
3. **用户管理**:机构内部用户的创建、编辑、停用
4. **数据隔离**:只能看到和管理自己租户的数据
---
## 🎯 核心功能模块
### 1. 医院管理端Hospital Admin
#### 用户管理
- 添加/编辑/停用医院内部用户
- 分配用户到科室
- 设置用户角色(科室管理员/普通用户)
#### 科室管理
- 创建/编辑/删除科室
- 支持多级科室结构(心内科 → 一病区)
- 查看科室成员列表
#### 配额管理
- 查看医院总配额和使用情况
- 按科室分配Token额度
- 按个人分配Token额度
- 配额使用统计和预警
#### 审计日志
- 查看医院内部的操作记录
- 导出审计日志
---
### 2. 药企管理端Pharma Admin
#### 用户管理
- 添加/编辑/停用药企内部用户
- 分配用户角色(项目负责人/数据分析师/普通用户)
#### 项目管理
- 查看药企参与的IIT项目列表
- 查看项目进展和数据统计
- 项目成员管理
#### 配额管理
- 查看药企总配额和使用情况
- 按项目分配Token额度
- 按用户分配Token额度
- 配额使用统计和预警
#### 审计日志(合规要求)
- 查看所有数据修改记录FDA 21 CFR Part 11
- 查看IIT模块相关操作
- 导出审计日志(支持签名验证)
---
## 🔐 角色与权限设计
### 医院端角色
| 角色 | 角色Code | 权限范围 | 说明 |
|------|---------|---------|------|
| **医院管理员** | HOSPITAL_ADMIN | 租户级管理 | 管理医院内所有资源 |
| **科室管理员** | DEPARTMENT_ADMIN | 科室级管理 | 仅管理自己科室 |
| **医生/用户** | USER | 基础功能 | 使用业务模块 |
### 药企端角色
| 角色 | 角色Code | 权限范围 | 说明 |
|------|---------|---------|------|
| **药企管理员** | PHARMA_ADMIN | 租户级管理 | 管理药企内所有资源 |
| **项目负责人** | PROJECT_MANAGER | 项目级管理 | 管理特定IIT项目 |
| **数据分析师** | DATA_ANALYST | 只读权限 | 查看项目数据和报告 |
| **普通用户** | USER | 基础功能 | 使用业务模块 |
---
## 📂 文档结构
```
INST-机构管理端/
├── README.md # 本文件
├── 00-模块当前状态与开发指南.md # 快速上手指南
├── 00-系统设计/ # 系统架构设计
├── 01-需求分析/ # PRD文档
├── 02-技术设计/ # 技术设计文档
├── 03-UI设计/ # 原型与UI设计
├── 04-开发计划/ # 开发计划与任务分解
├── 05-测试文档/ # 测试用例与测试数据
├── 06-开发记录/ # 每日开发总结
└── 07-技术债务/ # 技术债务清单
```
---
## 🗄️ 数据库Schema
### 核心表platform_schema
- `tenants` - 租户表(机构基本信息)
- `tenant_members` - 租户成员关系
- `tenant_quotas` - 租户配额
- `tenant_quota_allocations` - 配额分配(科室/个人/项目)
- `departments` - 科室表(医院专用)
- `tenant_operation_logs` - 租户级操作日志
### 关联表
- `users` - 用户表
- `iit_projects` - IIT项目表药企端
- `admin_operation_logs` - 审计日志可按module过滤
---
## 🚀 技术栈
### 后端
- **框架:** Fastify + Prisma
- **数据库:** PostgreSQL 14+
- **认证:** JWT继承运营管理端
- **权限:** RBAC继承运营管理端
### 前端
- **框架:** React 19 + TypeScript
- **UI库** Ant Design 6.0
- **状态管理:** React Context + Hooks
- **路由:** React Router v6
---
## 🎨 URL策略
### 租户专属登录
```
# 医院端登录
https://platform.example.com/t/hospital-301/login
# 药企端登录
https://platform.example.com/t/pharma-abc/login
```
### 品牌定制
- Logo租户自定义
- 背景图(租户自定义)
- 主题色(租户自定义)
- 系统名称(租户自定义)
**数据来源:** `tenants.config` (JSONB字段)
---
## 📅 开发路线图(待定)
### Phase 1: 医院管理端MVPWeek 5-6
- [ ] 用户管理界面
- [ ] 科室管理界面
- [ ] 配额分配界面
- [ ] 租户专属登录页
### Phase 2: 药企管理端MVPWeek 7-8
- [ ] 用户管理界面
- [ ] 项目管理界面
- [ ] 配额分配界面
- [ ] 审计日志查询(合规)
### Phase 3: 功能完善Week 9+
- [ ] 统计报表
- [ ] 配额预警
- [ ] 批量操作
- [ ] 数据导出
---
## 🔗 与运营管理端的关系
```
┌────────────────────────────────────────┐
│ ADMIN - 运营管理端(内部) │
│ │
│ - 创建/管理所有租户 │
│ - 分配总配额 │
│ - 全局用户管理 │
│ - Prompt管理 │
└────────────────────────────────────────┘
│ 创建租户 & 分配配额
┌────────────────────────────────────────┐
│ INST - 机构管理端(客户自服务) │
│ │
│ 🏥 医院端 │
│ - 管理医院内部用户 │
│ - 按科室/个人分配配额 │
│ - 查看医院内审计日志 │
│ │
│ 💊 药企端 │
│ - 管理药企内部用户 │
│ - 按项目/个人分配配额 │
│ - 查看IIT模块审计日志合规
└────────────────────────────────────────┘
│ 使用业务模块
┌────────────────────────────────────────┐
│ 业务模块ASL/DC/IIT等
└────────────────────────────────────────┘
```
---
## 📚 核心文档导航
### 当前阶段
由于机构管理端尚未开始开发,建议先阅读运营管理端的相关文档:
1. **架构基础**
`../ADMIN-运营管理端/00-系统设计/00-权限与角色体系梳理报告_v1.0.md`
2. **需求文档**
`../ADMIN-运营管理端/01-需求分析/02-通用能力层_07-运营与机构管理端PRD_v2.1.md`
(该文档同时包含运营端和机构端需求)
### 待创建文档
- [ ] `00-系统设计/01-机构管理端架构设计.md`
- [ ] `01-需求分析/01-医院管理端PRD.md`
- [ ] `01-需求分析/02-药企管理端PRD.md`
- [ ] `02-技术设计/01-API设计文档.md`
- [ ] `02-技术设计/02-数据库设计文档.md`
- [ ] `03-UI设计/01-医院端原型设计.html`
- [ ] `03-UI设计/02-药企端原型设计.html`
---
## ⚠️ 注意事项
### 安全性
1. **多租户隔离**
- 所有查询必须带`tenantId`过滤
- 防止跨租户数据访问
2. **权限控制**
- 科室管理员只能管理自己科室
- 项目负责人只能管理自己的项目
3. **审计日志**
- 所有操作必须记录
- 药企端需要满足FDA合规要求
### 性能优化
1. **配额计算**
- 使用数据库聚合查询
- 增加缓存层app_cache
2. **科室树查询**
- 使用递归CTE查询
- 前端缓存科室结构
---
## 📞 联系方式
- **技术负责人:** [待定]
- **产品负责人:** [待定]
---
## 🔄 开发依赖
**前置条件(必须先完成):**
- ✅ 运营管理端基础架构(认证、权限、租户管理)
- ✅ 租户专属登录页
- ✅ 品牌定制配置
**可并行开发:**
- 医院端UI设计
- 药企端UI设计
---
*最后更新2026-01-11*