# 03 Genotyping - sample 表录入说明 来源:`docs/architecture/03-genotyping-data-flow.md` ## 录入目标 `sample` 是 Genotyping 流程的样本入口,表示送检样本或测序样本。它可以挂到 `plate`,也可以直接关联 `observation_unit`,并冗余保存 program/trial/study 方便查询。 ## 上下游关系 | 类型 | 内容 | | --- | --- | | 表 | `sample` | | Java 实体 | `SampleEntity` | | 前置依赖 | `plate`、`observation_unit`、`program`、`trial`、`study`,可选 `germplasm_taxon` | | 下游引用 | `callset` | | API | `/brapi/v2/samples` | ## 字段录入 | 字段 | 业务意义 | 录入方式 | 校验规则 | | --- | --- | --- | --- | | `id` | sample 主键 | 系统生成;导入时可指定 | 必填、唯一 | | `auth_user_id` | 数据所属用户 | 登录上下文自动写入 | 不允许前端手填 | | `sample_name` | 样本名称 | 用户录入/批量导入 | 建议必填 | | `sample_barcode` | 样本条码 | 扫码/手填 | 建议唯一 | | `samplepui` | 样本永久标识 | 用户录入/导入 | 可选,建议唯一 | | `sample_description` | 样本说明 | 用户录入 | 可选 | | `sample_type` | 样本类型 | 下拉/文本 | 可选 | | `tissue_type` | 组织类型 | 下拉/文本 | 可选 | | `sample_timestamp` | 取样时间 | 日期时间选择器 | 可选 | | `taken_by` | 取样人 | 文本/人员选择 | 可选 | | `sample_group_db_id` | 样本分组 ID | 文本/导入 | 可选 | | `concentration` | 样本浓度 | 文本/数值 | 可选,建议带单位 | | `volume` | 样本体积 | 文本/数值 | 可选,建议带单位 | | `plate_id` | 所在样本板 | Plate 选择器 | 可选,若填需存在 | | `plate_row` | 板行 | 文本 | 与 plate format 联动校验 | | `plate_column` | 板列 | 数字输入 | 与 plate format 联动校验 | | `well` | 孔位,如 A01 | 文本/自动生成 | 同一 plate 内建议唯一 | | `observation_unit_id` | 对应观测单元 | ObservationUnit 选择器 | 可选,若填需存在 | | `program_id` | 所属项目 | 项目选择器 | 可选,若填需存在 | | `trial_id` | 所属 trial | Trial 选择器 | 可选,若填需存在 | | `study_id` | 所属 study | Study 选择器 | 可选,若填需存在 | | `taxon_id_id` | germplasm taxon | Taxon 选择器 | 可选 | ## 页面与交互 - Sample 列表页支持按 sampleName、barcode、plate、study、trial、program、observationUnit 查询。 - 从 Study 工作台创建 sample 时默认继承 `study_id/trial_id/program_id`。 - 从 ObservationUnit 详情创建 sample 时默认带出 `observation_unit_id`。 ## 关键校验 1. `sample` 若关联 `observation_unit`,需要检查 observation unit 所属 study 与 sample 的 study 一致。 2. 同一 plate 内 `well` 不应重复。 3. 删除 sample 前必须检查是否已有 `callset`。