# 实验室检测 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 实验室检测 | | 目标 | 登记、查询、维护实验室检测台账,记录样本来源、检测量与阳性结果,并自动计算检出率,支撑疾病监测统计 | | 关联系统 | 业务后台;**检疫点**数据来源于「检疫站管理」,仅可选**运营状态为正常**的检疫站;与「疫情上报」等业务模块的数据衔接由产品统一规划,**本模块不强制**自动回写疫情上报 | | 修订依据 | 同目录 `实验室检测-草稿.md` | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求体字段命名及技术栈选型。 --- ## 2. 术语与枚举 ### 2.1 样本来源(单选) 表示检测样本的**业务来源**,新增/修改时必选其一: | 取值 | 说明 | | --- | --- | | 场地抽检 | 在养殖场地、圈舍等现场采集的抽检样本 | | 疫情上报送检 | 因疫情上报流程送交实验室的样本 | | 调运检疫 | 调运、流通环节检疫送检样本 | | 日常检测 | 常规监测、计划内检测等其它来源 | ### 2.2 数量单位 - **检测量**、**阳性检出数**均以 **「份」** 为计量单位,界面展示时须带单位(如「份」),避免与重量、头数等混淆。 ### 2.3 检出率(派生指标,非手工录入) | 项 | 说明 | | --- | --- | | 含义 | 本次检测中阳性样本占比 | | 计算 | **检出率 = 阳性检出数 ÷ 检测量** | | 展示 | 建议以**百分比**展示(小数位数与项目全局一致,如保留 **2** 位小数);新增/编辑表单中**只读**,随检测量、阳性检出数变化实时刷新 | | 检测量为 0 | 仅当 **检测量 = 0** 且 **阳性检出数 = 0** 时合法;此时检出率展示为 **0%** 或 **「—」**(产品择一,全文统一);**不允许**检测量为 0 而阳性检出数大于 0 | --- ## 3. 功能范围 - 实验室检测的新增、修改、删除、分页列表查询、详情查看 - 检测日期、样本来源、检测量、阳性检出数、检出率的录入与校验 - 按样本来源、**检疫点**的列表筛选 - 面向使用方的业务错误与校验提示(见第 **8** 章) **不在本模块范围(除非后续单独立项):** 检测原始报告附件上传、实验室 LIMS 对接、与疫情上报单自动关联编号、地图与预警等。 --- ## 4. 业务流程概览 ```mermaid flowchart TD A[新增实验室检测] --> B[列表查询/按样本来源筛选] B --> C[查看详情] B --> D[修改] B --> E[删除] D --> B E --> B C --> B ``` 1. **登记**:录入检测日期、样本来源、检测量、阳性检出数 → 系统计算检出率 → 形成一条可查询记录。 2. **查询**:按样本来源精确筛选,分页浏览;默认按检测日期或创建时间倒序。 3. **维护**:任意记录均可修改全部业务字段(须重新通过校验)。 4. **删除**:具备权限时删除记录;删除后不再参与列表与统计。 5. **查阅**:任意记录可查看详情(只读展示,含检出率)。 > 本模块**无**「解除 / 发布 / 下架」等状态机;草稿中「均可修改、均可查看」理解为**不区分业务状态**,与疫情上报的「未解除 / 已解除」不同。 --- ## 5. 详细功能需求 ### 5.1 新增实验室检测 | 字段 | 规则 | | --- | --- | | 检测日期 | **必填**;格式 **YYYY-MM-DD**;表示本次检测业务归属日 | | 检疫点 | **必填**;下拉单选;选项来自「检疫站管理」中**运营状态为正常**的检疫站;保存为检疫站主键 | | 样本来源 | **必填**;单选,取值限定为 **§2.1** | | 检测量 | **必填**;非负**整数**;单位:份;表示本次检测样本份数 | | 阳性检出数 | **必填**;非负**整数**;单位:份;表示阳性样本份数 | | 检出率 | **系统计算**;规则见 **§2.3**;用户**不可手工修改** | **必填字段汇总:** 检测日期、检疫点、样本来源、检测量、阳性检出数。 **校验:** | 规则 | 说明 | | --- | --- | | 日期格式 | 检测日期非法时拒绝保存 | | 整数与非负 | 检测量、阳性检出数须为整数且 ≥ 0;出现小数、负数或非数字时拒绝保存 | | 数量关系 | **阳性检出数 ≤ 检测量**;违反时拒绝保存并提示(如「阳性检出数不能大于检测量」) | | 零检测量 | 检测量为 0 时,阳性检出数必须为 0 | | 枚举 | 样本来源须为 **§2.1** 约定取值之一 | | 检疫点 | 须选择已存在且**运营状态为正常**的检疫站;停业、注销或已删除的检疫站不可选、不可保存 | **保存结果:** 生成一条完整检测记录(含系统计算的检出率),可被列表查询、修改、删除、查看。 --- ### 5.2 查询实验室检测列表 - **样本来源:** **精确**匹配筛选;未选择时不过滤。 - **检疫点:** **精确**匹配筛选(按检疫站 ID);未选择时不过滤;下拉选项与新增表单一致(仅正常运营检疫站)。 - **分页:** 支持分页;默认 **每页 20 条**,默认首页为第一页;单页条数上限与项目列表通用规范一致(若有)。 - **排序:** 默认按 **检测日期倒序**(最近检测在前);相同时按 **创建时间倒序**(若有)。 **列表宜展示:** 检测日期、**检疫点(检疫站名称)**、样本来源、检测量(份)、阳性检出数(份)、检出率、创建时间,以及操作列。 **操作列(与 §6 矩阵一致):** | 记录状态 | 操作 | | --- | --- | | 任意有效记录 | 查看、编辑、删除 | --- ### 5.3 修改实验室检测 - **状态约束:** **所有**已存在记录均允许修改(无「已结案不可改」类限制)。 - **可修改项:** 检测日期、检疫点、样本来源、检测量、阳性检出数(检出率随保存前校验重新计算)。 - **保存约束:** 提交时须重新满足 **§5.1** 全部校验;必填字段不得为空。 - **检出率:** 修改检测量或阳性检出数后,表单内检出率应**实时重算**;保存后以最新数量为准持久化展示值。 --- ### 5.4 删除实验室检测 - **允许删除:** 任意记录在具备删除权限时均可删除(是否支持批量删除与项目列表惯例一致)。 - **删除后果:** 删除后该条不再出现在列表与统计中。 - **确认:** 删除前宜弹出确认提示;批量删除时宜提示选中条数。 --- ### 5.5 查看实验室检测详情 - **展示内容:** 检测日期、样本来源、检测量、阳性检出数、检出率、创建人/创建时间、修改人/修改时间(若系统有审计字段)。 - **交互:** 详情为只读展示;具备编辑权限时,可提供「编辑」入口跳转至编辑(与列表「编辑」等价)。 - **检出率:** 详情页展示与列表一致的计算结果,不单独维护第二套口径。 --- ## 6. 操作权限矩阵(汇总) 在**已授权**前提下(菜单与按钮级权限按项目角色配置): | 能力 | 查看 | 新增 | 修改 | 删除 | | --- | --- | --- | --- | --- | | 任意有效记录 | ✓ | — | ✓ | ✓ | | 列表/global | — | ✓ | — | — | **说明:** - 「新增」为列表页或工具栏独立入口,不依赖行状态。 - 与草稿一致:**查看、修改、删除**对全部记录开放;无额外状态分支。 --- ## 7. 列表筛选与业务约束补充 | 约束 | 说明 | | --- | --- | | 枚举展示 | 样本来源在列表/详情中展示为中文标签,与 **§2.1** 一致 | | 检出率口径 | 统计报表、大屏若引用本模块检出率,须与 **§2.3** 公式一致;跨模块汇总时避免重复计数同一份样本(若后续与送检单关联,另文约定) | | 检测量为 0 | 仅用于「当日无样本但需占位登记」等少数场景;若产品禁止 0 检测量,可在实现前将规则收紧为「检测量 ≥ 1」并同步修订本文档 | | 并发 | 同一条记录连续保存时,以后提交的检测量、阳性检出数为准;宜防重复提交(前端禁用或后端幂等,实现阶段约定) | --- ## 8. 错误与提示约定 面向使用方的提示宜**语义明确、可区分**,例如: | 场景 | 提示方向(示例) | | --- | --- | | 必填项缺失 | 标明缺失项(如「请选择检测日期」) | | 日期格式错误 | 「检测日期格式不正确」 | | 非整数或负数 | 「检测量须为非负整数」「阳性检出数须为非负整数」 | | 阳性大于检测量 | 「阳性检出数不能大于检测量」 | | 检测量为 0 但阳性大于 0 | 「检测量为 0 时阳性检出数须为 0」 | | 样本来源非法 | 「样本来源不在可选范围内」 | | 删除确认取消 | 不执行删除,无成功提示 | 本文档**不约定** HTTP 状态码、错误码字段名及接口报文结构。 --- ## 9. 非功能需求(建议) | 类别 | 建议 | | --- | --- | | 权限 | 查询、新增、修改、删除是否分角色(如仅实验室人员可新增) | | 审计 | 新增、修改、删除记操作日志 | | 统计 | 按样本来源、时间区间汇总检测量、阳性数、加权或简单平均检出率时,口径在报表需求中单独定义 | | 双语 | 后台字段标签与提示与项目 i18n 规范一致(汉语 + 藏文,若适用) | --- ## 10. 修订说明(相对草稿) | 草稿条目 | 优化处理 | | --- | --- | | 检出率「必填」易误解为手填 | 明确为 **§2.3 系统计算、只读** | | 检测量/阳性仅写「非负数」 | 补充 **整数**、**阳性 ≤ 检测量**、**零检测量** 规则 | | 列表写「分页列疫情上报列表」 | 更正为 **实验室检测分页列表**;筛选仅 **样本来源** | | 「所有均可修改」 | 保留,并写入 **§5.3**;与疫情上报「仅未解除可改」区分 | | 第 6、7 条接口与技术栈 | **移出**本文档 | | 无流程与矩阵 | 增补 **§4 流程图**、**§6 操作矩阵** | | 样本来源四项 | 固化为 **§2.1** 枚举表 | --- ## 11. 与相关文档关系 | 文档 | 关系 | | --- | --- | | `实验室检测-草稿.md` | 初稿功能列表 | | 《实验室检测技术方案》 | 库表、接口、权限标识 | | 《实验室检测管理测试用例》 | 用例与本文档章节对应 | | 《实验室检测前端技术方案》 | 前端页面、API、i18n | | 《疫情上报功能需求》 | 同属「疾病检测与上报」;样本来源含「疫情上报送检」,业务关联规则可后续统一 |