# 送检信息功能 - 改动说明与操作手册

## 一、功能概述

新增"送检信息"模块，用于患者在审核通过后填写送检样本相关信息。该模块独立于患者资料提交流程，提交送检信息不会改变患者的审核状态。

---

## 二、业务流程

1. 患者提交基本资料（我的资料页面），包含医院名称、癌种等基础信息
2. 后台审核通过
3. 患者进入"送检信息"页面，填写送检样本类型、寄回信息、物流单号等
4. 提交送检信息，不影响审核状态

---

## 三、小程序端

### 3.1 入口位置

个人中心 → "送检信息"菜单项（位于"我的资料"下方）

> [截图占位：个人中心页面，标注送检信息入口]

### 3.2 访问权限

- 未认证用户：提示"请先完成实名认证"
- 未通过审核：提示"审核通过后可填写送检信息"
- 审核通过：正常进入

### 3.3 送检信息页面

页面分为两个区域：

**顶部只读区域 - 基本信息**

展示患者的姓名、性别、身份证（脱敏）、手机号（脱敏）、联系地址、医院、癌种。

> [截图占位：送检信息页面顶部基本信息区域]

**表单区域 - 送检信息**

| 字段 | 类型 | 必填规则 |
|------|------|----------|
| 送检样本类型 | 多选(checkbox) | 根据后台配置决定是否必选 |
| 是否需寄回 | 单选(radio) | 选择了配置为"可选需寄回"的样本类型时显示 |
| 收件人姓名 | 输入框 | 选择"需寄回"时必填 |
| 收件人电话 | 输入框 | 选择"需寄回"时必填 |
| 收件地址 | 地区选择+输入框 | 选择"需寄回"时必填 |
| 报告接收邮箱 | 输入框 | 选择了送检样本后必填 |
| 送检样本物流单号 | 输入框 | 选择了送检样本后必填 |
| 送检单照片 | 多图上传 | 选择了送检样本后必填 |

> [截图占位：送检信息表单区域]

**交互说明**

- "是否需寄回"的标签会动态显示样本名称，如"蜡块是否需寄回"
- 收件人姓名右侧有"本人接收"按钮，点击自动填充患者本人信息
- 取消所有送检样本选择时，自动清空邮箱、物流单号、照片等信息
- 底部需勾选《患者告知书》后方可提交

> [截图占位：选择蜡块后显示寄回选项]

---

## 四、管理后台

### 4.1 样本类型管理

菜单位置：侧边栏 → "样本类型"

功能：
- 新增/编辑/删除样本类型
- 设置"可选需寄回"属性（开启后，用户选择该类型时会出现寄回选项）
- 拖拽排序
- 全局开关：设置送检样本是否为必选项

> [截图占位：样本类型管理页面]

### 4.2 患者详情 - 送检信息

位置：患者详情页 → 签字材料下方

展示字段：送检样本类型、是否需寄回、收件人、收件电话、收件地址、报告邮箱、物流单号、送检单照片

> [截图占位：后台患者详情送检信息模块]

### 4.3 数据导出

导出 Excel 中包含送检相关字段：

| 列名 | 说明 |
|------|------|
| 送检样本类型 | 多个用"、"分隔 |
| 是否需寄回 | 是/否 |
| 收件人 | 寄回收件人姓名 |
| 收件电话 | 寄回收件人电话 |
| 收件地址 | 省市区+详细地址 |
| 报告接收邮箱 | 邮箱地址 |
| 送检物流单号 | 物流单号 |

---

## 五、数据库变更

执行 SQL 文件：`sql/sample_type.sql`

主要变更：
- `patient` 表新增 12 个字段（hospital、sample_types、wax_return、return_*、report_email、sample_tracking_no、sample_photos）
- 新建 `sample_type` 表（送检样本类型配置）
- `sys_config` 新增 `sample_required` 配置项

---

## 六、接口清单

| 接口 | 方法 | 说明 |
|------|------|------|
| /common/sampleTypes | GET | 获取送检样本类型列表及必选配置 |
| /api/mp/sampleInfo | GET | 获取当前患者送检信息（回显） |
| /api/mp/saveSampleInfo | POST | 保存送检信息（不改变审核状态） |
| /admin/sample_type/list | GET | 后台-样本类型列表 |
| /admin/sample_type/add | POST | 后台-新增样本类型 |
| /admin/sample_type/edit | POST | 后台-编辑样本类型 |
| /admin/sample_type/delete | POST | 后台-删除样本类型 |
| /admin/sample_type/sort | POST | 后台-排序 |
| /admin/sample_type/setRequired | POST | 后台-设置是否必选 |

---

## 七、注意事项

1. 送检信息提交不会改变患者审核状态，患者可多次修改送检信息
2. 样本类型的"可选需寄回"属性由后台配置，前端动态判断
3. "我的资料"页面中保留了医院名称和癌种字段，这两个随基本资料一起提交审核
4. 初始数据包含4种样本类型：蜡块（可寄回）、白片、血液、新鲜组织
