# 03 Genotyping - callset 表录入说明

来源：`docs/architecture/03-genotyping-data-flow.md`

## 录入目标

`callset` 表示某个 sample 的一组 genotype calls，通常对应一个样本在一个或多个 variantset 上的调用集合。

## 上下游关系

| 类型 | 内容 |
| --- | --- |
| 表 | `callset` |
| Java 实体 | `CallSetEntity` |
| 前置依赖 | `sample` |
| 下游引用 | `allele_call`、`callset_variant_sets` |
| API | `/brapi/v2/callsets` |

## 字段录入

| 字段 | 业务意义 | 录入方式 | 校验规则 |
| --- | --- | --- | --- |
| `id` | callset 主键 | 系统生成；导入时可指定 | 必填、唯一 |
| `auth_user_id` | 数据所属用户 | 登录上下文自动写入 | 不允许前端手填 |
| `call_set_name` | 调用集合名称 | 用户录入/导入 | 建议必填，同一 sample 下建议唯一 |
| `sample_id` | 所属 sample | Sample 选择器/导入 | 必选，必须存在 |
| `created` | 创建时间 | 系统写入/导入 | 可选 |
| `updated` | 更新时间 | 系统写入/导入 | 可选 |

## 页面与交互

- CallSet 列表页支持按 sample、variantSet、callSetName 查询。
- 从 Sample 详情创建时默认带出 `sample_id`。
- 需要通过 `callset_variant_sets` 绑定参与的 variantset。

## 关键校验

1. `sample_id` 必须存在。
2. 删除 callset 前检查 `allele_call` 和 `callset_variant_sets`。
3. 如果 callset 绑定多个 variantset，查询和导出时要明确当前 variantset 范围。

---

**状态：已完成**
