APP下载

免疫分析仪质控系统设计与实现

2017-05-31吴开霞陈雪

软件导刊 2017年5期
关键词:数据库

吴开霞 陈雪

摘要摘要:免疫分析仪是临床免疫检验学不可或缺的检测设备,实时监控免疫分析仪使用状态对提高产品质量非常重要。免疫分析仪作为独立的系统,在运行中产生大量的系统日志、样本数据、校准数据、质控数据。设计了一款质控网站,收集存储这些信息,对这些数据进行处理、统计、分析,从机器日志信息中提取机器的错误代码,统计错误代码按时间、机器的分布,统计出样本使用量随时间的分布,从质控校准数据中统计不同项目试剂批次的质控校准结果,为查找设计缺陷和质量问题,制定生产销售策略提供依据。

关键词关键词:免疫分析仪;阿里云;AngularJS;MongoDB;数据库

DOIDOI:10.11907/rjdk.171104

中图分类号:TP319

文献标识码:A文章编号文章编号:16727800(2017)005010303

0引言

在软件开发中,日志系统[1]是一个基础组件,应用十分广泛。免疫分析仪系统软件运行过程中会产生系统日志,包含机器执行的指令、用户操作的步骤、机器定标信息、样本信息、运行指令的错误代码等,这些数据存储在本地,无法使用和分析,仪器出现问题,厂家只能派售后工程师现场维修,整个过程周期长、反应慢。因此,对这些数据的存储、分析、统计对仪器生产厂家有着非常大的意义。错误代码的统计结果可以发给研发部门优化产品设计,给售后部门作为仪器质量监控,用量统计提供给市场部门做市场分析。

免疫分析仪质控系统搭建在阿里云服务器上,后端使用MongoDB 和Mysql 协同备份方案[2],前端使用最流行的AngularJS框架[3]。本文从需求分析、技术结构、数据库设计等方面阐述了免疫分析仪系统设计过程。

1需求分析

1.1用户需求

系统有用户登陆界面、功能列表、装机信息录入界面、日志查询界面、质控校准查询界面、质控校准统计结果查询界面、错误信息统计查询界面等。

1.2配套软件和数据需求

免疫分析仪质控网站产生的日志数据文件分为qualityLog.txt、qualitiSample.txt、qualityControl.txt 、qualityCailibration.txt 四类文件。 qualityLog文件记录了仪器运行时的指令名称、指令完成时间、指令错误代码。日志信息用结构语言描述[4];qualitiSample记录了免疫分析仪的样本使用信息,包括样本时间、样本容器、样本项目、试剂批号、样本结果、样本错误代码;qualityControl记录了免疫分析仪的质控结果,包括质控时间、质控项目、质控品批号、质控错误代码;qualityCailibration记录了免疫分析仪的校準结果,包括校准时间、校准品批号、校准错误码。质控系统搭建在阿里云服务器端。免疫分析仪系统软件将这4份文件分装成小包,通过自动适配3G/4G 网络的DTU发送到服务器端。

1.3数据存储需求

存储机器每天运行产生的基础数据qualityLog、qualitySample、qualityControl、qualityCailibration等,从基础数据统计出有价值的信息。数据存储要安全、稳定,数据处理要迅速流畅。

使用Mysql存储,对基础数据预处理,从日志信息中提取错误代码,样本信息中提取样本使用量,分析结果采用MongoDB存储。MongoDB集合中数据是“键-值”对格式,因此日志数据也转换为“键-值”对的格式。

1.4系统功能需求

Machine 表记录装机信息,有增删改查筛选功能。Log表存储日志信息,可以按时间、machine id查询;样本信息表存储qualitiSample.txt 信息,可以按时间、machine id查询;质控表存储qualityControl.txt,可以按时间machine id查询;校准表存储QualityCailibration.txt, 可以按时间machine id查询。

按照错误代码、时间、machine id统计错误信息;按照项目、时间、machine id统计样本使用数量;按照时间、省份统计试剂使用数量;按照项目、时间、machine id结果分布统计质控结果;按照项目、时间、machine id结果分布统计校准结果。

2关键技术分析

2.1Web前端使用AngularJS框架

AngularJS[5] 是一个为动态Web应用设计的结构框架,使用HTML作为模板语言,通过扩展HTML的语法,能更清楚、简洁地构建应用组件。它的创新点在于利用数据绑定和依赖注入,不用再写大量代码。这些都通过浏览器端的Javascript实现,这也使得它能够完美地和任何服务器端技术结合。AngularJS特点如下:

(1)数据的双向绑定。绑定时其中之一发生更改,另一方会随之变化,但不用写任何代码。

(2)依赖注入。将后端语言的设计模式赋予前端代码,意味着前端代码可以提高重用性和灵活性,未来的模式可能将大量操作放在客户端,服务端只提供数据来源和其它客户端无法完成的操作。

(3)代码模块化。每个模块的代码独立拥有自己的作用域、model、controller等。

(4)强大的directive可以将很多功能封装成HTML的tag、属性或者注释等,这大大美化了HTML结构,增强了可阅读性。

2.2MongoDB 和Mysql 协同备份方案

每台机器产生的数据时刻都在增加,为了缓解存储压力,提高数据检索效率,采用非结构化数据库MongoDB 和结构化数据裤Mysql协同备份的方案,用Mysql 存储装机信息、日志信息、检测的样本信息、试剂定标信息、机器质控信息等基础数据,用MongoDB存储样本统计、项目统计、质控统计、校准统计。

3系统设计与实现

3.1系统功能设计

本系统的核心功能就是存储机器的基础数据,统计分析这些基础数据,功能展示如图1所示。

由于文章篇幅有限,本文只举例说明统计功能的实现。基础数据部分只展现装机信息表、日志信息、质控信息。预处理部分只针对日志信息的预处理,数据统计部分只展现用量统计和校准统计

3.2前端框架设计

前端框架开发必须使用的库有:angularjs1.2.13库、bootstrap3.3.5库、css库、jquery库。js 代码设计:将通用指令写到direction.js, 将同样服务写入service.js,将路由控制写入route.js,所有js代码在index.html中加载。

3.3系统流程设计

系统分为登陆模块、功能导航模块、仪器注册功能模块、log查询模块、样本查询模块、质控查询模块、校准查询模块、试剂用量统计、错误统计、质控统计、校准统计等。

使用用户名密码登陆系统,登陆后展现给用户的是功能导航模块。根据功能导航链接,分别进入不同的功能模块。比如点击进入仪器注册模块,填写仪器注册信息,可对注册的信息进行查询、修改、删除。又比如,点击进入校准统计模块,输入时间、项目批号、machine id ,点击查询,即可展现该机器的校准结果随时间的分布图。

其它模块工作流程基本类似。

3.4数据库设计

Mysql总共设计了7张表用来存储基础数据。Machine 表用于记录装机信息;log表用于存放客户端发送来的qualityLog.txt数据;sample表用于存放qualitiSample.txt数据;Calibration表用于存放QualityCailibration.txt数据;qualitycontrol表用于存放QualityCailibration.txt数据;User表用于存放系统用户信息(见表1)。

MongoDB 旨在为Web应用提供可扩展的高性能数据存储解决方案[6]。MongoDB 将数据存储为一个文档,数据结构由键值(key→value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其它文档、数组及文档数组。Mongo支持丰富的查询表达式。查询指令使用JSON形式标记,可轻易查询文档中内嵌的对象及数组。

MongoDB总共设计4张表:①LogStatistic StatusAction 对日志信息做预处理,通过正则匹配从日志中提取用量、错误代码;②ErrorCodeStatisticCount用于存储统计出来的错误信息;③MachineStatisticCount 用于统计机器使用时间、区域;④MachineUsageCount统计机器用户量、成功率和失败率(见表2)。

3.5系统实现

软件的运行结果:进入项目统计界面,输入测试机器的机器名:测试机,机器的ID号:23,测试的项目:PCT,点击Count, 图2为23号机器PCT项目本周内的使用量分布。

校准统计。进入校准统计界面,输入统计的起始截至时间,输入统计的试剂批号,点击chart即可得到结果。图3展现了所有注册机器的001306151521(PCT)校準结果分布。

4结语

本文从需求分析、业务流程、数据设计、核心技术等方面,对免疫分析仪质控系统作了详细的分析和研究。该系统可以分析客户行为、辅助制定营销策略,查找设计缺陷和质量问题。但系统功能还不够完善,还有很多有价值的信息没有挖掘出来,后期会继续开展相关研究。

参考文献参考文献:

[1]任凯, 邓武, 俞琰. 基于大数据技术的网络日志分析系统研究[J]. 现代电子技术, 2016(2):3941.

[2]YOON J, JUNG D W, KANG C H, et al. Forensic investigation framework for the document store NoSQL DBMS: MongoDB as a case study[J]. Digital Investigation,2016(6):122125.

[3]任乐乐. 基于AngularJS框架的送签系统设计和实现 [D]: 上海:东华大学,2016.

[4]张之宣. 云计算环境下实时日志分析系统的设计与实现 [D].杭州:浙江大学,2016.

[5]FREEMAN A. Your first angularjs App: apress[EB/OL]. http://www.doc88.com/p2456832438574.html.

[6]MIRANSKYY A, HAMOULHADJ A, CIALINI E, et al. Operationallog analysis for big data systems: challenges and solutions[J]. IEEE Software. 2016,33(2):151156.

责任编辑(责任编辑:杜能钢)

猜你喜欢

数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库