SEAAHC-LIMS · 动物疫病检测实验室信息管理
纯命令行 + SQLite 的实验室信息管理引擎。不需要图形界面、不需要安装数据库、不需要联网,
用一条命令就能把「委托 → 样品 → 检测任务 → 检测结果 → 检测报告 → 检测收费」整条链路跑完,
并输出可直接交付的报告文件与统计报表。
何时使用
出现下列任一意图时启用本技能:
| 用户意图 | 典型说法 |
|---|---|
| 样本/样品管理 | 「登记一批猪血清样品」「这些样品编号有没有重复」「样品到样日期记一下」 |
| 委托与合同评审 | 「新客户送来一批样品要签委托」「这条委托做合同评审」 |
| 开展检测 | 「给这批样品派检测任务」「把口蹄疫抗体检测任务分给小李」 |
| 录入结果 | 「这批样品结果出来了,阴性」「录入检测结果」 |
| 生成报告 | 「出一份检测报告」「把报告导成 Word」「报告按月份归档」 |
| 统计检测数据 | 「这个月做了多少份样品」「阳性率是多少」「按季度统计检测量」 |
| 检测收费 | 「算一下这批样品的检测费」「哪些委托还没收费」「导出计费明细」 |
不适用的场景:临床试验数据管理、人用医学检验、需要 CNAS 电子签章法定效力的签发流程
(本技能产出的报告为待签发的报告稿,签章与批准由机构按自身程序完成)。
快速开始
# 0)准备:任何目录下执行均可,技能包路径记为 <SKILL>
cd <工作目录>
# 1)初始化数据库(也可跳过,其余命令会自动建库)
python "<SKILL>/scripts/lims.py" --db data/lab_report.db init
# 2)配机构信息(报告封面/声明用;不配也能跑,默认是中性占位符)
python "<SKILL>/scripts/lims.py" --db data/lab_report.db config set lab_name "某某动物疫病检测中心"
# 3)想先看效果?生成一套合成演示数据(不含任何真实数据)
python "<SKILL>/scripts/lims.py" --db data/demo.db demo --reset
python "<SKILL>/scripts/lims.py" --db data/demo.db stats --granularity month
# 4)正式使用:登记委托 → 挂项目 → 生成任务 → 录结果 → 出报告 → 结算
python "<SKILL>/scripts/lims.py" --db data/lab_report.db entrust-add \
--client "某养殖场" --sample-name "血清(猪)" --qty 30 \
--arrival-date 2026-10-03 --address "某省某市" --phone "0000-0000000"
python "<SKILL>/scripts/lims.py" --db data/lab_report.db item-bind --id LAB-WT-2610-001 --items "布鲁氏菌病抗体,口蹄疫病毒O型抗体"
python "<SKILL>/scripts/lims.py" --db data/lab_report.db task-gen --entrust LAB-WT-2610-001 --first-no WT-A-2610-0301 --count 30
python "<SKILL>/scripts/lims.py" --db data/lab_report.db result-add --sample-id WT-A-2610-0301 --item 布鲁氏菌病抗体 --value 阴性 --tester 张三
python "<SKILL>/scripts/lims.py" --db data/lab_report.db report-build --id LAB-WT-2610-001 --format md,docx
python "<SKILL>/scripts/lims.py" --db data/lab_report.db billing-sync
python "<SKILL>/scripts/lims.py" --db data/lab_report.db billing-set --row-id 1 --unit-price 45 --charge-status 已收费
python "<SKILL>/scripts/lims.py" --db data/lab_report.db billing-export --out 计费明细.xlsx
所有命令都支持 --json,便于继续做二次加工(写报告、生成表格、喂给其他步骤)。
命令与参数全清单:python "<SKILL>/scripts/lims.py" --help。
工作方式
- 先看现状再动手:接手任何任务前先跑
overview(库里有什么)和doctor(数据有没有问题),
避免在脏数据上叠加操作。 - 用命令做事,不要手写 SQL。引擎已内建编号规则、判重规则、归档规则与计算逻辑;
绕过引擎直接改库会破坏这些不变式。 - 查询结果优先用
--json:需要把结果整理成表格、报告或图表时,先取 JSON 再组织输出。 - 交付给用户时给文件,不要给屏幕:报告用
report-build,计费明细用billing-export,
统计用stats的 JSON 自行渲染成表格或图表。 - 不确定字段含义时查
references/data-model.md,不要猜。
命令一览
| 分组 | 命令 | 作用 |
|---|---|---|
| 总览 | overview |
库位置、各表条数、计费汇总 |
doctor |
数据体检:孤立数据、编号格式、重复结果、计费异常 | |
init |
建库(建表 + 默认检测项目库 + 默认配置) | |
| 演示 | demo |
生成合成演示数据(--reset 先清空业务表) |
| 配置 | config list\|get\|set |
机构信息、编号前缀、报告声明等 |
| 项目库 | item-list / item-add |
检测项目与依据方法标准 |
| 委托 | entrust-add / entrust-list / entrust-show / entrust-status |
委托登记与查询 |
item-bind |
给委托挂检测项目 | |
| 评审 | review-add / review-list |
合同评审 |
| 样品 | sample-add / sample-list / sample-status |
样品台账(含编号分段解析) |
| 任务 | task-gen / task-list / task-pick / task-done |
检测任务生成、领取与完成 |
| 结果 | result-add / result-list |
结果录入与查询(含阳性/阴性判定) |
| 报告 | report-build / report-list |
生成/查询检测报告(md/html/docx/pdf) |
| 统计 | stats |
按 年/季/月/周/日 统计检测量、阳性率、报告数 |
| 计费 | billing-sync / billing-list / billing-set / billing-export |
检测收费核算 |
必须记住的业务规则
这五条是实验室实际业务里的硬规则,引擎已内建,不要绕过:
- 样品编号任一段不同 = 不同样品。编号形如
WT-A-2608-0126(前缀-字母段-年月段-流水号)。
判存、判重一律按完整编号整串比对;只做去空白 + 统一大写两种归一化。
详见references/business-rules.md。 - 归档位置只看编号不看时间。报告按报告编号里的年月落到
reports/模板A/YYYY-MM/,
所以补生成三个月前的报告也会落到三个月前那个目录,不会混进当前月。 - 样品编号流水号按年独立顺延,跨年允许出现相同流水号(代表不同年份的不同样品)。
- 计费按「委托 × 检测项目」拆行,总价 = 数量 × 单价,自动计算;
再次同步系统数据时只补空字段,不覆盖已填的单价/收费状态/备注。 - 日期一律以中文年月日呈现(
2026年10月03日)。这是显示层格式,不改动库里的存储值。
参考文档(按需加载,不要一次性全读)
| 文件 | 何时读 |
|---|---|
references/data-model.md |
需要确认某张表/某个字段的确切含义与取值时 |
references/business-rules.md |
编号规则、判重口径、归档规则、结果判定口径的完整说明 |
references/workflows.md |
六条业务主流程的分步操作剧本(含异常分支处理) |
references/report-spec.md |
报告版式规范:封面字段、声明条款、明细表列、签名行 |
references/billing-spec.md |
计费口径、导出字段、收费状态流转 |
references/pay-skill-onboarding.md |
要把本技能上架为付费技能(Pay Skill)并接通微信支付分账时 |
脚本
| 文件 | 用途 |
|---|---|
scripts/lims.py |
引擎 + 命令行入口(唯一业务入口,只用标准库) |
scripts/demo_data.py |
合成演示数据生成器(供试用与平台运行案例使用) |
scripts/selfcheck.py |
交付自检:语法/契约/规则/端到端/降级/安全/无污染/上架元数据 八段(105 条断言) |
自检命令(改过脚本后必跑,末行须为 SELFCHECK PASS n / FAIL 0):
python "<SKILL>/scripts/selfcheck.py"
数据与安全
- 数据库是单个 SQLite 文件,用户可自行拷贝备份;引擎不会上传任何数据、不发起任何网络请求。
- 本技能包不携带任何数据库、不携带任何真实委托/客户/检测数据;演示数据由脚本现场合成。
- 机构信息(单位名/地址/电话/邮箱)全部存在
system_config里,默认值是中性占位符,
交付给具体机构前用config set改成本机构信息。 - 报告为准出稿,签章、审核、批准由机构按自身质量体系完成;本技能不产出具有法律效力的电子签章。
想要图形界面?
本技能是无界面引擎。同一套数据契约的桌面 GUI 版本(Windows 单机、便携免安装)
用于需要在屏幕上操作台账与打印报告的场合;两者可以打开同一个 lab_report.db 文件,
在 GUI 里登记、在本技能里批量处理。数据格式完全一致,不需要做任何转换。