3.3 KiB
3.3 KiB
01 Core - trial 表录入说明
来源:docs/requirements/01-core-data-entry-requirements.md
录入目标
trial 表示某一批试验、区域试验或年度试验,位于 program 与 study 之间。创建 trial 时选择 program,并自动带出或校验 crop。
前置依赖和下游引用
| 类型 | 内容 |
|---|---|
| 表 | trial |
| 前置依赖 | program、crop |
| 下游引用 | study、observation_unit、observation、plate、sample |
页面入口
| 页面 | 录入要求 |
|---|---|
| Trial 列表页 | 支持 crop、program、active、起止日期、关键词筛选;新增、编辑、查看详情、停用 |
| Trial 新增/编辑页 | 包含基本信息、项目作物、联系人、出版物四个区域 |
| Trial 详情页 | 展示 study 列表和 phenotyping/genotyping 入口 |
列表页表格字段:trial_name、program、crop、start_date、end_date、active。
字段录入
| 字段 | 类型 | 控件 | 录入说明 | 校验/来源 |
|---|---|---|---|---|
id |
varchar(255) | 隐藏/只读 | 试验主键 | 必填、唯一 |
auth_user_id |
varchar(255) | 隐藏 | 数据所属用户 | 登录上下文自动写入 |
active |
boolean | 开关 | 是否启用 | 默认启用 |
documentationurl |
varchar(255) | URL 输入框 | 试验文档链接 | URL 格式校验 |
end_date |
timestamp | 日期选择器 | 结束日期 | 不早于 start_date |
start_date |
timestamp | 日期选择器 | 开始日期 | 可选 |
trial_description |
varchar(255) | 多行文本 | 试验描述 | 可选 |
trial_name |
varchar(255) | 文本框 | 试验名称 | 必填 |
trialpui |
varchar(255) | 文本框 | 试验永久标识 | 可选,建议唯一 |
crop_id |
varchar(255) | 作物选择器 | 所属作物 | 必选,来源 crop.id |
program_id |
varchar(255) | 项目选择器 | 所属项目 | 必选,来源 program.id |
校验规则
trial_name必填。program_id必选且必须存在。crop_id必选且必须与program.crop_id一致。end_date不能早于start_date。documentationurl需要做 URL 格式校验。
接口能力
| 接口 | 用途 |
|---|---|
GET /trials |
trial 分页查询 |
POST /trials |
新增 trial |
GET /trials/{id} |
trial 详情 |
PUT /trials/{id} |
编辑 trial |
DELETE /trials/{id} |
删除或停用 trial,需检查 study 引用 |
GET /trials/{id}/studies |
查询 trial 下 study |
GET /selectors/trials |
trial 搜索下拉,参数 keyword、programId、cropId、active |
导入导出
- 支持通过 Core 导入流程导入
trial。 - 外键列支持填写 ID;可额外支持名称匹配,但名称重复时必须报错。
- 导入时必须校验 trial 的 crop 与 program 的 crop 一致。
- 列表页支持导出当前筛选结果,导出文件应包含 ID 和展示名称。
删除/停用
当 trial 已被 study、observation_unit、observation、plate、sample 引用时,不允许物理删除。后端需要返回引用对象类型和数量,前端展示后引导用户停用。
验收点
- 创建 trial 时,选择 program 后自动带出 crop。
- Trial 列表页支持按 crop、program、active、日期筛选。
- 已被 study 引用的 trial 不能直接删除。