Files
AIclinicalresearch/docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/RVW V4.0 期刊租户配置中心开发需求.md
HaHafeng 16179e16ca feat(rvw): deliver tenant portal v4 flow and config foundation
Implement RVW V4.0 tenant-aware backend/frontend flow with tenant routing, config APIs, and full portal UX updates. Sync system/RVW/deployment docs to capture verified upload-review-report workflow and next-step admin configuration work.

Made-with: Cursor
2026-03-14 22:29:40 +08:00

131 lines
7.0 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.
# **RVW V4.0 期刊租户配置中心开发需求**
**模块定位:** 依托现有 ADMIN 运营端 TenantDetailPage为每个期刊客户建立独立的配置中枢。
**核心目标:** 实现期刊 SaaS 的“千刊千面”,包括基础品牌信息定制与底层 AI 审稿 Skills 规则的动态编排。
## **🎯 一、 前端 UI 与功能分区要求**
在现有的 ADMIN 租户详情页TenantDetailPage构建两大核心配置区块可作为独立的 Tab 或折叠面板):
### **区块 1期刊基础信息与门户配置 (Basic Info & Portal)**
用于定义该期刊的对外面貌和访问入口。
| 配置项名称 | 字段类型 | UI 组件 | 功能说明 |
| :---- | :---- | :---- | :---- |
| **期刊全称** | String | 文本输入框 | 如:*Journal of Translational Internal Medicine*。显示在登录页及工作台顶部。 |
| **访问路径 (URL Slug)** | String | 文本输入框 (需正则校验) | **极重要**:用于生成 review.xunzhengyixue.com/{slug}。仅允许小写字母、数字和连字符。 |
| **期刊 Logo** | String | 图片上传组件 | 上传至 OSS 后保存 URL。用于替换默认的系统 Logo。 |
| **品牌主色调** | String | 颜色拾取器 (Color Picker) | 支持 HEX 色值(如 \#0284c7。用于动态渲染按钮和高亮文字。 |
| **专属登录页背景图** | String | 图片上传组件 | (可选) 替换登录页的默认背景,增强品牌沉浸感。 |
### **区块 2智能审稿配置 (RVW Skills Config)**
这是该模块的核心,分为 4 个独立的配置面板Panel
#### **Panel A: 稿约规范评估 (Editorial)**
* **规则列表维护**:支持增删改查。每条规则需包含 规则编号 (Code) 和 规则描述 (Description)。
* **致命错误开关 (Fatal Flag)**:每条规则后跟随一个 Switch 开关。开启后,该项缺陷将作为“一票否决”项在前端红底高亮。
#### **Panel B: 方法学评估 (Methodology) \- 【需支持动静分离与预览】**
* **专家评判标准 (Prompt)**:大文本框。供运营人员输入该期刊特有的统计学和方法学要求(大模型读取)。
* **报告展示模板 (Handlebars)**:大文本框。用于配置最终输出给责编的 Markdown 格式。
* ⚠️ **强依赖功能:测试渲染 (Test Render)****必须**在模板编辑区提供一个“预览”按钮。点击后,使用系统内置的假 JSON 数据Mock Data与当前模板进行结合在右侧弹出抽屉实时渲染出 Markdown 结果,以防止语法错误。
#### **Panel C: 数据验证 (Data Forensics)**
* **验证深度 (Level)**提供三个单选按钮Radio
* L1 算术验证:仅核对行列加总、百分比。
* L2 统计验证:包含 L1增加 CI↔P 一致性逆向验证(推荐)。
* L3 双通道核查:包含 L2增加大模型智能深度核查耗时较长
#### **Panel D: 临床专业评估 (Clinical)**
* **FINER 权重占比**:提供 5 个数字输入框(或滑块),分别对应 Feasibility, Innovation, Novelty, Ethical, Relevant。前端需实时校验总和是否等于 100%。
* **专科特色要求**:文本区,填写该期刊的专科倾向性偏好(如:心血管领域的特殊要求)。
## **💾 二、 数据库 Schema 设计 (Prisma)**
本模块涉及两部分数据的存储:基础信息存入已有的 Tenants 表,审稿配置存入新增的 TenantRvwConfig 表。
### **1\. 基础信息存储 (platform\_schema.tenants)**
利用现有的租户表。假设现有表结构已有 code (即 URL Slug) 和 name (期刊名称)。对于 Logo、颜色等品牌视觉资产建议统一存入 config JSON 字段中。
// 无需新建表,在原 Tenants 表中合理利用字段
model Tenant {
id String @id @default(uuid())
code String @unique // 对应 URL Slug如 'jtim'
name String // 期刊全称
// 品牌视觉信息存入此 JSON 字段,避免频繁改表结构
config Json? // 格式:{ logoUrl: "...", brandColor: "\#...", bgImgUrl: "..." }
rvwConfig TenantRvwConfig? // 关联 RVW 配置表
}
### **2\. RVW Skills 配置存储 (新增表)**
执行 prisma migrate dev 创建以下 1对1 扩展表:
model TenantRvwConfig {
id String @id @default(uuid())
tenantId String @unique
tenant Tenant @relation(fields: \[tenantId\], references: \[id\])
// Panel A: 稿约规范 (存为 JSON 数组)
// 结构: \[{ code: 'ED-01', desc: '摘要需控制在250字内', isFatal: true }\]
editorialRules Json?
// Panel B: 方法学评估
methodologyExpertPrompt String? @db.Text
methodologyHandlebarsTemplate String? @db.Text
// Panel C: 数据验证
dataForensicsLevel String @default("L2") // 'L1', 'L2', 'L3'
// Panel D: 临床评估 (存为 JSON)
// 结构: { f: 20, i: 20, n: 20, e: 20, r: 20 }
finerWeights Json?
clinicalExpertPrompt String? @db.Text
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("platform\_schema")
}
## **🔌 三、 后端 API 接口设计**
新增统一的租户管理与 RVW 配置接口:
### **1\. 内部 ADMIN 配置接口 (需要 ops:user-ops 权限)**
* PUT /api/admin/tenants/:id/basic-info更新期刊名称、Slug、品牌 Logo 等信息。
* GET /api/admin/tenants/:id/rvw-config获取指定期刊的 Skills 配置。
* PUT /api/admin/tenants/:id/rvw-configUPSERT (更新或创建) 期刊 Skills 配置。
### **2\. 公开业务接口 (无 Auth用于动态登录页渲染)**
* GET /api/v1/tenants/public-info/:slug
* **参数**slug (例如 'jtim')
* **返回**{ name, logoUrl, brandColor, bgImgUrl }
* **限流要求**:必须添加 Rate Limiting (防刷防爬)。
## **👥 四、 实施 SOP用户与期刊绑定无需开发**
**给开发团队的提示**:业务上,客户(责编)登录 /jtim 后能看到 JTIM 的稿件,依赖于正确的账号绑定。这部分**不需要开发新功能**,但需要通知实施团队遵循以下 SOP
1. 客户在主站注册账号(或由超管分配账号)。
2. 内部超管在 ADMIN 端的 **【用户管理 \-\> 租户成员管理】** 页面,将该用户的账号添加到目标期刊租户(如 JTIM下。
3. 确保该用户拥有 RVW 模块的使用权限。
4. **验证**:此后该用户访问 review.xunzhengyixue.com/jtim 时JWT 中会自动带上该租户身份,接口方可放行。
## **✅ 五、 验收标准 (Definition of Done)**
1. 运营人员可在后台顺滑配置 JTIM 和 CMJ 两套截然不同的方法学 Prompt 和 Handlebars 模板。
2. 在 Handlebars 编辑器中点击“预览”,能立刻看到正确渲染的 Markdown 格式报告,不报错。
3. 未登录用户访问 review.xunzhengyixue.com/jtim 时,登录页自动变更为 JTIM 的名称、Logo 和主色调。