摘" 要:实验室样品管理是一项比较烦琐且重要的工作,设计和开发基于微信小程序实验室样品管理系统,旨在提升实验室样品管理的效率、准确性,并及时向客户呈现检测结果信息,搭建客户与实验室之间的桥梁。系统集成了用户权限控制、样品信息管理、样品出入库与实验室样品分配、检测状态跟踪、数据报表生成等功能。通过微信小程序的前端交互和云开发平台的后端支持,实现了样品从入库到出库的全生命周期管理。研究结果表明,系统有效降低了人工管理成本,提高了样品管理效率,并为实验室工作的顺利进行提供了有力支持。
关键词:微信小程序;样品管理;云开发;权限控制
中图分类号:TP311" 文献标识码:A" 文章编号:2096-4706(2024)24-0100-05
Design and Implementation of Laboratory Sample Management System Based on WeChat Mini Program
WEI Yuying, YE Chengliang, JIANG Lei
(Shenzhen Angel Drinking Water Industrial Group Co., Ltd., Shenzhen" 518108, China)
Abstract: Laboratory sample management is a tedious but important task. The design and development of the laboratory sample management system based on WeChat mini program aims to improve the efficiency and accuracy of laboratory sample management, timely present testing result information to customers, and build a bridge between customers and laboratories. The system integrates functions such as user permission control, sample information management, sample storage and delivery and laboratory sample allocation, testing status tracking, and data report generation. Through the front-end interaction of WeChat mini program and the back-end support of cloud development platform, the full lifecycle management of samples from storage to delivery has been achieved. The research results indicate that the system can effectively reduce manual management costs, improve sample management efficiency, and provide strong support for the smooth progress of laboratory work.
Keywords: WeChat Mini Program; sample management; cloud development; permission control
0" 引" 言
随着移动互联网技术与通信技术的飞速进步,手机、平板等移动终端设备迎来了前所未有的广泛应用时代,推动了国内移动互联网用户数在2024年上半年激增至惊人的15.45亿,这一庞大的用户基数为移动应用的发展注入了强劲动力。在此背景下,移动程序行业在各行各业中均实现了显著增长与深刻变革。其中,微信凭借其强大的用户基础与独特的平台优势,成功吸引了高达13.59亿的月度活跃用户,成为移动互联网领域的佼佼者。近年来,基于微信平台的小程序更是异军突起,凭借其无须安装、不占用设备内存、即点即用等诸多便捷特性,迅速赢得了广大用户的青睐与关注。鉴于小程序所展现出的巨大潜力和广泛适用性,将各类需要协同使用的工具或服务整合至微信小程序平台,已成为一个极具价值与意义的研究与实践方向。这不仅能够促进资源的高效整合与共享,提升用户体验的连贯性与便捷性,还有望推动更多创新服务模式的诞生,进一步拓宽移动互联网的应用边界与市场空间。因此,积极探索与实践如何将多样化的功能工具转化为微信小程序,对于推动移动互联网行业的持续发展与社会进步具有不可估量的重要性。
实验室样品管理是实验室检测的关键工作,也是实验室管理水平的重要体现[1]。在实验室样品管理过程中,关键控制点包括检测委托单的受理、样品的识别、检测任务的下发与执行、样品的保管、样品的处理[2]。传统的人工管理方式存在效率低下、易出错、信息更新不及时等问题,难以满足现代检测的需求;部分实验室已建立了LIMS管理系统,实现了委托信息录入流转数据录入及报告审批的电子化[3],然而,尽管寄生于LIMS(实验室信息管理系统)中的样品管理模块拥有其固有的优势,如数据集成度高、管理规范等,但它却较为依赖于传统的电脑终端,这在很大程度上限制了其使用的灵活性与便捷性。在当今追求高效、即时响应的工作环境中,这样的局限性显得尤为突出。鉴于此,将微信小程序这一前沿技术与实验室样品管理相结合,开发一款高效、便捷且智能化的新型管理系统,无疑具有极高的实用价值。
1" 系统关键设计
微信小程序是基于MINA框架的一种无须下载安装,即可在微信环境中使用的轻应用[4]。在代码编辑、调试、预览、发布等上可采用微信小程序开发工具,该工具是微信官方提供用于开发小程序的集成开发环境(IDE),提供了详尽的开发文档,大量可调用API,以及各种组件[5]。其拥有自己的前端代码文件,其中.wxml为视图文件、.wxss为样式文件、JS为交互文件[6]。WXML、WXSS与JS是构成开发微信小程序的核心语言组合,各自扮演着不可或缺的角色。其中WXML语言是用于构建微信小程序基础页面,同时也可以用作构建小程序页面组件结构;WXSS语言是用来修饰小程序页面整体样式的语言,跟普通网页一样,小程序还可以采用 JavaScirpt语言来增加页面多样化和灵动性,以提高用户在使用时交互感与便捷程度。此外,微信小程序还通过集成丰富API接口,进一步扩展了其功能边界。这些API接口不仅支持获取微信用户信息(如wx.getUserInfo)、二维码扫描等常用功能,还涵盖了蓝牙通信、定位服务等高级特性,为小程序开发者提供了强大的后端支持与数据交互能力。通过这些接口,小程序能够紧密集成微信生态体系,实现与微信公众号等其他微信服务的无缝对接,为用户提供更加流畅、便捷的使用体验。
根据系统功能需求,结合小程序自身框架体系,本系统采用前后端分离的设计模式,前端为微信小程序,提供用户交互界面;后端采用微信小程序云开发平台,负责业务逻辑处理、数据存储与接口服务。数据库选择MySQL,用于存储用户信息、样品数据、操作日志等。系统小程序采用3层架构[7],如图1所示,包括视图层(View)、逻辑层(APP Service)和数据层(Data)。视图层部分主要由Vue.js的HTML、CSS部分组成,当用户在视图层进行操作时,视图层将数据和操作发送到逻辑层,逻辑层通过JavaScript和云函数从数据存储层中获取数据,并返回到视图层进行渲染[8]。
2" 系统设计
2.1" 功能需求分析
一般实验室样品管理的流程大致为接收(确认)、标识(入库)、领样、流转、储存、退样(清理)6个关键环节[9]。样品管理员在接收(确认)时,根据委托人的要求,查看样品基本信息(样品名称、包装、数量、型号、规格、性状供应商、生产批号、生产日期等)与委托单的一致性、所提供的资料的完整适宜性[2]。核对信息后建立样品台账,登记样品相关信息;在完成信息登记后进行样品标签的打印,并分发至各检测室并做好交接登记;样品在检测实验室中进行测试并记录测试结果;测试完成后,样品重新归还样品管理员并做好交接记录;样品管理员接收到归还样品后,做好样品状态记录,并进行入库登记;样品在库中储存,后续可能需要重新分样复测,归还客户或销毁等操作。在样品流转过程,客户可能需要查询样品信息,如测试进度,测试结果等,这时样品管理员需要查找样品所在测试室,并了解情况后向客户汇报。根据需求,大致可把系统分为:
1)用户登录与权限。实现用户注册、登录功能,根据用户角色分配不同权限,如客户查询与自身相关的内容权限,样品管理员需要样品信息登记修改、数据查询、数据处理、样品分配、下载数据表分析等权限,检测人员需要确认样品接收、结果登记等权限。
2)样品信息登记。支持样品的添加、编辑、删除,包含基本信息如样品编号、名称、类型、数量、描述等。
3)样品入库与出库。记录样品出入库的时间、数量、位置等信息,支持扫描二维码快速操作。
4)样品流转状态追踪。实时更新样品状态,待测、在检、检毕、销毁等。
5)检测试结果录入。呈现实验室已检项目的结果情况以及当天测试最新情况。
6)数据报表生成。根据用户需求生成各类统计报表。
2.2" 功能结构设计
结合样品管理需求,分析程序业务流程,为小程序系统结构做出了详细业务流程,如图2所示。
2.3" 数据库设计
数据库是按照一定的数据结构,存储在一起并具有相关联性的数据集合,主要包括表和表的关系或者联系,其设计决定程序开发的好坏优劣,是系统开发的关键因素之一。本文为方便用户界面的管理,把页面设置参数以数据库的形式实现前端动态管理,结合云打印、样品管理、用户数据的需要,将数据部署在云服务器上,并采用MySQL数据库来创建数据库。数据库包括:页面设置参数(pagesetting)、打印机参数(print)、样品信息(samples)、用户(user),其中样品信息(samples)包括样品基本信息各种流转需要的字段共50多个,部分数据库字段如表1所示。
3" 系统部分功能实现
3.1" 系统功能架构概览
本系统基于详尽的功能需求分析,明确划分为两大核心模块:前台展示模块与后台管理模块,二者协同工作,共同支撑起整个系统的运作:
1)前台展示模块。该模块旨在提供一个无须身份验证的公开访问界面,任何用户(包括非实验室成员)均可通过微信平台轻松浏览系统发布的信息。具体而言,系统设计了两个主要样品状态清单展示区域,直观呈现已完成测试样品与当前正运行(涵盖待测及测试中)样品的详细列表,如图3(a)所示。此外,为提升用户体验,系统特别为非实验室用户开放了个性化查询功能,允许他们通过登录后,依据系统数据库中标记的送检人信息快速获取个人送检样品的简要概览。更进一步,用户还可利用实验室专属的样品编号或二维码作为检索关键词,实现样品的精准定位与查询,极大提升了信息获取的便捷性与准确性。
2)后台管理模块。作为系统管理的中枢,后台数据模块严格遵循权限管理机制,确保样品管理员及检测人员能够基于预设的关键字权限安全、有效地访问与操作数据库。在此模块中,管理人员不仅能够录入新样品信息、更新现有数据,还能根据实际需求对数据库进行灵活管理。图3(c)展示了样品管理员所使用的一个典型管理界面,通过直观易用的操作界面,管理人员可以高效完成数据的录入、修改等维护工作,为前台展示模块提供坚实的数据支撑。这一设计不仅强化了系统内部的数据管理效率,也确保了数据的准确性与安全性[10]。
3.2" 关键代码设计
3.2.1" 角色权限控制
通过比对用户数据库(user)中存储的信息与当前登录人员的凭证,系统精确地鉴定出登录者的角色。随后,基于角色识别的结果,系统采用wx.navigateTo方法动态地导航至与该角色权限相匹配的可操作界面,从而确保每位用户仅能访问其被授权的资源:
if(user.departmentadmin==\"否\"){
if(user.department!=\"综合室\"){
wx.navigateTo({
url: /pages/testadmin/index, })}
else{
wx.navigateTo({
url: /pages/sampleadmin/index, })
}
3.2.2" 通过扫码实现样品检索
当用户在前端页面点击特定按钮时,小程序逻辑层将响应此操作,调用内置的wx.scanCode接口来激活系统相机,实现二维码的扫描功能。扫描完成后,获取到的二维码内容将被设置为一个全局变量,以便在不同的页面间灵活地传递和使用这个扫描结果。以这种方式确保了数据在不同页面间的无缝流通,通过其他页面的逻辑程序达到精准查询样品功能:
inputScanCode:function(){
wx.scanCode({ //扫描API
success(res) { //扫描成功
console.log(res) //输出返回信息
that.setData({
searchno: res.result});
wx.showToast({
title: 成功,
duration: 2000});
app.searchno=res.result}})
}
3.2.3" 利用云函数进行数据集合管理
通过小程序云开发的机制,利用API接口(wx.cloud.callFunction)远程调用云端定义的函数,实现对数据库集合(Collection)的精细操作。在云端函数中,我们灵活运用Collection提供的where、remove以及更新方法(如update),实现对特定数据的精确查找、安全删除以及高效更新,从而实现对数据库内数据的全面管理和灵活操作。这种操作模式不仅增强了数据的处理能力和安全性,还优化了客户端与服务器之间的交互效率:
const cloud=require(wx-server-sdk)
cloud.init({
env:cloud.DYNAMIC_CURRENT_ENV})
const db=cloud.database()
exports.main=async(event,context)=gt;{
let{type, name }=event
try{
const_=db.command
return await db.collection(samples).where({name:name}).remove()
}catch(e){
console.error(e)}
}
3.2.4" 标签打印模块
在微信小程序中,利用专门设计用于发起网络请求的API,通过POST方法这一强大且灵活的数据传输方式,与云打印机实现无缝对接。这一集成方案使得样品标签的打印过程变得前所未有的高效与便捷。用户只需在小程序界面上执行简单的操作,即可触发标签打印任务,而所有复杂的网络通信和数据传输工作则由后台自动完成,最终通过云打印机精确、快速地输出高质量的样品标签:
wx.request({
url: \"\"//云打印机地址及校验数据,
data: {//打印内容及打印参数},
method:POST,
success (res) {console.log(res.data)}
})
4" 结" 论
微信小程序具有无须下载、即用即走、连接线上线下、依赖流量等优势,自上线以来,保持着强劲的发展势头,不断释放创新活力,对移动流转的样品管理有着重要作用。本文基于微信小程序平台设计根据所需功能,利用WXML、WXS、JS前台和JavaScript后台相结合编写相应的代码,再配合MySQL数据库调用数据进行开发,实现了实验室样品管理系统,有效提升了样品管理的效率和准确性。系统集成了用户登录与权限控制、样品信息管理、样品入库与出库、状态追踪、库存查询与盘点、数据报表生成以及系统设置与维护等功能模块,为实验室检测工作的顺利进行提供了有力支持。未来,将继续优化系统功能,增加更多智能化、自动化的功能,如智能推荐样品存储位置、自动提醒样品到期时间等。同时,加强与实验室其他管理系统的集成,实现数据共享与流程协同,进一步提升实验室管理的整体水平。
参考文献:
[1] 张若尘,王亚辉,张烨,等.基于LIMS车辆零部件检测实验室的样品管理流程 [J].北京汽车,2023(6):31-34.
[2] 陈珊珊,林丽.浅谈实验室样品管理过程控制 [J].食品安全质量检测学报,2020,11(23):8615-8620.
[3] 李鹏举,张平萍.检测全过程样品的电子编码应用 [J].中国检验检测,2020,28(4):55-57+73.
[4] 王伟东.基于微信小程序的智能出入登记系统的设计与实现 [J].现代信息科技,2024,8(10):96-100+106.
[5] 付炳豪.基于迁移学习的工业装备部件剩余使用寿命预测模型的研究与应用 [D].北京:北京邮电大学,2021.
[6] 张洪忠,朱蕗鋆.微博、微信对传统媒体内容使用的影响 [J].新闻记者,2013(12):64-68.
[7] 田颖.微信小程序在突发事件信息采集中的应用 [J].测绘与空间地理信息,2020,43(4):25-27.
[8] 梁粟钧,宁贵,查敏,等.“农创乐”微信小程序的设计与开发 [J].现代信息科技,2024,8(8):20-23.
[9] 罗小蓉,张登.电子电器实验室的样品管理 [J].质量与认证,2021(S1):103-105.
[10] 陈勇,姚燕珠.微信小程序在档案移动服务中的应用研究 [J].档案与建设,2023(1):70-72.
作者简介:韦宇颖(1983—),男,汉族,广东茂名人,工程师,本科,研究方向:实验室自动化建设、虚拟仿真。