全自动PCR仪软件设计概要

一份全自动 QPCR(聚合酶链反应)仪器的软件整体设计概要文档,涵盖需求分析、架构设计、模块划分、功能列表与开发规划。

一、需求分析

核心目标

操作全自动PCR仪器,实现三大功能的自动化:

  1. 核酸提取 —— 样本前处理
  2. PCR扩增 —— 核酸扩增
  3. 检测 —— 荧光检测与数据分析

关键特性

  • 项目文件化:单次实验过程形成项目文件,记录进展和阶段性结果,支持恢复/另存为新实验
  • 半自动兼容:核酸提取部分可作为可选模块,兼容不同仪器设备的操控命令
  • 跨平台:主目标为 Linux 平板环境,最小工作量可迁移到 Windows
  • 独立可组合:三大核心功能业务上独立可控,整体流程上可自由组合

二、三层架构设计

总体架构

┌─────────────────────────────────┐
│          UI 操作层               │  ← 用户软件 + 调试软件
├─────────────────────────────────┤
│          业务逻辑层               │  ← 项目/样本/实验/质控/数据处理
├─────────────────────────────────┤
│    硬件通讯层(CAN Server-Client)│  ← 驱动 + 调度
├─────────────────────────────────┤
│        数据存储层(数据库)        │  ← 试剂/染料/实验方案
└─────────────────────────────────┘

1. 硬件设备驱动层

  • 沿用田浩然老师的 Server-Client 监听模型
  • 核心:基于 CAN 总线通信,不断监听 CAN 内容获取反馈
  • 适配多种 CAN 卡驱动,支持 Linux 和 Windows 双平台
  • 判断执行状态和运行状态

2. 调度逻辑层

  • 将分散硬件组合为抽象的 PCR 仪对象
  • 将相关命令批量组合,形成模块化调度指令
  • 不同硬件模块组合 → 功能模块控制逻辑 → 应用功能

3. 业务逻辑层

核心模块包括:

模块功能描述
数据管理试剂/染料/样本类型等基础数据存储(数据库 + Excel 临时文件)
项目管理一组实验的完整生命周期管理(从样本扫描→提取→扩增→读数→报告),支持中断与恢复
样本管理录入、删除、修改、保存等基本操作
实验类型管理实验方案选择与管理
核酸提取实验管理整盘样本连续/批量处理,可能含临时终端
核酸扩增实验管理整盘样本批量处理,保留样本信息编辑接口
核酸数据读取管理原始数据批量处理 + 数据形式转换 + 分析展示
关键数据保存按样本/实验唯一编号存储:样本信息 + 提取结果 + 扩增历史数据
核酸提取功能根据样本参数和实验方法调用处理流程,实时监控执行
核酸扩增与读数功能温控模块控制 + 数据反馈(原始数据需二次处理)
数据处理与展示模块数据处理 → 标准输入格式转换 → 展示控件实时展示

并发设计:核酸提取和扩增模块支持同时运行,项目管理关注模块占用状态而非串行等待;扩增与读数绑定较深,采用先决条件执行。

4. UI 交互层

用户软件界面清单

  1. 开机/自检/初始化/关机流程
  2. 登录
  3. 主界面
  4. 项目文件管理(新建、打开、编辑、删除、另存)
  5. 核酸提取模块
    • 程序编辑(容积、孔位、加热模块、混合参数、吸磁参数、等待时间等)
    • 通用设置(升温/降温类型)
    • 实时数据显示(当前步骤、下一步骤、图像更新)
  6. PCR扩增与检测模块
    • 程序编辑
    • 实时数据显示
  7. 校准模块(扩增校准)
    • 校准测试、校准流程编辑、结果展示与存储
  8. 质控模块(扩增质控)
    • 质控测试、质控状态分析
  9. 结果分析与展示
  10. 系统设置(版本、时间日期、语言、调试界面、恢复出厂)
  11. 维护与运行日志
  12. 用户管理
  13. 试剂与染料管理

调试软件

  • 开放所有硬件功能,用于验证功能执行准确性
  • 单步调试组合

5. 数据存储层

  • 静态数据:染料、试剂、样本类型 → 数据库存储,开机加载更新
  • 实验方案:独立模块管理(核酸提取随试剂板变化,扩增随时间/样本编辑变化)
  • 实时数据:PCR 数据可存临时文件防崩溃,或先存内存最终一次性导出
  • 项目文件:唯一数据管理文件,记录进展和阶段性结果,可恢复/另存

三、质控与校准的独立性

  • 质控:从实验结果分析数据,管理试剂有效性
  • 校准:根据标准试剂预期结果反算校准曲线(计算函数 + 应用函数)
  • 两者都是相对独立的模块,不影响主体实验流程,但能提升结果准确性

四、UI 设计原则

  • 侧边固定按钮作为主菜单
  • 每个页面业务逻辑尽量单一、可划分
  • 数据展示模块独立存在,定义数据输入接口即可工作
  • 采集数据需经过处理后展示

五、开发规范与进度

代码规范

  • 遵循谷歌代码风格
  • 自动从注释解析代码(文档生成)

工作量预估

分为不同层次预估(硬件层、业务层、UI层)

架构取舍

  • 为尽快走向稳定开发,底层架构可能适当精简
  • 从简原则,先跑通核心流程

关联笔记