2. 广东省外语艺术职业学院, 广州 510640
2. Guangdong Teachers College of Foreign Language and Arts, Guangzhou 510640, China
随着IT技术的迅速发展,很多实验室应用了实验室信息管理系统(Laboratory Information Management System,简称LIMS)[1-3],但由于计算机不可能遍及实验室的每个角落,因此,对于那些没有配备仪器工作站的检验项目,通常的做法是在现场将检验数据记录在纸上或实验记录本上,再到办公区录入LIMS中。记录的纸张或记录本如何传递给后面的审核者审阅、如何归档保存成了困扰这些实验室的难题[4]。
为改进检验服务流程,提高检验工作效率,广东省药品检验所提出了开发基于便携式平板计算机的检验数据采集系统的需求,帮助检验人员在实验室内能方便快捷地记录检验数据。
通过平板计算机上的检验数据采集系统,检验人员可在实验现场查看自己的检验任务信息,实时录入检验结果,确认无误后即可提交到LIMS中;通过该系统的文档查阅功能,检验人员还可以在实验现场查阅相关的检验标准和质量体系文件,保证实验操作的准确、规范。
1 系统总体设计 1.1 系统运行环境 1.1.1 客户端运行环境设备型号:三星Galaxy Note 8.0平板计算机;屏幕尺寸:8英寸电容式触摸屏,多点式触摸屏;操作系统:Android 4.1及更高版本;处理器核心:四核心;系统内容:2 GB;存储容量:16 GB Flash闪盘;屏幕分辨率:1280×800。
1.1.2 服务器运行环境操作系统:Windows Server 2003及更高版本;CPU:Intel Xeon 3.66GHz;内存容量:3 GB;数据库服务器:Oracle 10g;应用服务器:Apache Tomcat 6.0。
1.2 系统网络结构在原有LIMS系统的基础上,搭建一个平板系统应用服务器,用于运行检验数据采集服务端,如图 1所示。同时需要在该服务器上创建应用数据库,用于存储导入的检验标准文档信息、质量体系文件夹及其他需要缓存的信息。
基于平板计算机的检验数据采集系统主要功能包括用户身份认证、我的任务、检验标准及质量体系文件查阅和检索、我的收藏、系统设置等,其功能结构如图 2所示。
1) 身份认证:对接LIMS系统,进行用户身份校验和权限控制。
2) 我的任务:列出当前用户在LIMS中的检验任务,针对检验项目录入和提交检验数据。
3) 文档查阅:通过分类目录查看和阅读检验标准正文。
4) 文档检索:通过输入检索项查找文档,选择进行阅读。
5) 我的收藏:查看用户收藏的检验标准文档和质量体系文件清单并阅读。
1.4 客户端逻辑结构移动端(客户端)采用Native App的实现方式,包含了界面展现、业务逻辑、数据模型3个部分,通过无线网络访问服务器端的各种服务。
对于Android应用,使用Android系统的API开发界面,然后调用业务逻辑层进行功能实现。当需要展现内容数据时,如果移动设备上没有相应数据,就会使用请求参数访问服务器上的相应服务,从服务器获取内容数据,解析后再通过界面绘制出来。在这样的交互下,服务器端的服务独立性较强,其业务形态完全是由客户端控制和调度。这与C/S结构原理是一样的。由于使用了客户端的众多特性,所以客户端的表现力丰富,性能较高,用户体验也比较出色[5]。Native App架构如图 3所示。
检验数据采集系统需要对接LIMS系统,以获得身份认证以及用户关联的检验任务数据。系统可通过访问LIMS数据库(Oracle 10g)中以数据视图方式提供的任务信息,并将其以适当的形式展现在平板计算机上,后端程序再进行分解处理。数据(包括文本、数字、图片)写入LIMS时需调用LIMS提供的存储过程,数据写入失败时支持自动回滚,以确保数据完整性和一致性[6]。
2.1 我的任务用户登录系统后点击“我的任务”,查看“我的任务”列表,点击需要录入检验数据的样品编号,显示可用平板系统录入结果的分析项目,如图 4所示。
“我的任务”列表和可用平板系统录入结果的分析项目都是由LIMS系统提供的视图,其创建语句分别为“我的任务”列表视图:
CREATE OR REPLACE VIEW TESTTASK AS
SELECT folders.matcode, ordtask.ts, ordtask.eqid, ordtask.usrnam, ordno, testcode, testno, enddate, ordtask.dept, servgrp, '检验' as stype, ordtask.sp_code, ordtask.origrec, ordtask.folderno, folders.batchno
FROM ordtask, folders, folder_timelimit
WHERE ordtask.ts = 'Logged' and folders.folderno = ordtask.folderno
and nvl(ordtask.suplementtest, 'Y') = 'Y' and folders.fldsts in ('Logged', 'Active')
and ordtask.usrnam!= 'N/A' and folders.folderno = folder_timelimit.folderno
and folder_timelimit.moduleid = 'TestSample'
可用平板系统录入结果的分析项目视图:
CREATE OR REPLACE VIEW RESULTSPAD AS
SELECT results.ordno, results.testcode, results. analyte, results.s, spec_analytes.higha, spec_analytes. lowa, sp_analytes.copy, sp_analytes. profile, results.units, results.density, results.rep, results.numres, results. analtype, analytes.calcflag, sp_analytes.equipname, results.origrec
FROM results, spec_analytes, analytes, sp_ analytes, ordtask
WHERE results.origrec>0 and results.specno = spec_analytes.specno(+) and results.testcode = spec_ analytes.testcode(+) and results.analyte = spec_analytes. analyte(+)
and analytes.analyte = results.analyte and analytes. testcode = results.testcode
and (analytes.calcflag!= 'Y' or analytes.calcflag is null) and sp_analytes.equipname is null and sp_ analytes.sp_code = results.sp_code and sp_analytes. testcode = results.testcode and sp_analytes.analyte = re-sults.analyte and (results.gathertag is null or results. gathertag='平板录入') and results.ordno =ordtask. ordno and results.testcode = ordtask.testcode
and ordtask.drawno=sp_analytes.drawno and ordtask.profile= sp_analytes.profile
2.2 数据录入用户在平板系统中录入检验数据后,点击“上传到LIMS”按钮(参看图 4),应用服务器后台通过存储过程将结果提交到LIMS,提交结果的存储过程:
create or replace procedure SaveData
(vData in cus_table_type,
vUsrNam in varchar2,
vResCode out number
) as
begin
for i in 1..vData.count loop
update results set numres=vData(i).numres, gathertag='平板录入', firstuser=vUsrNam, dateenter=sysdate, timeenter=to_char(sysdate(), 'hh24:mi') where analyte=vData(i).analyte and test-code=vData(i). testcode and ordno=vData(i).ordno and origrec=vData(i). origrec;
end loop;
commit;
vResCode:=1;
exception
when others then
rollback;
vResCode:=0;
end SaveData;
2.3 数据处理检验数据提交到LIMS后,需要根据实验的要求对数值型的检验数据按LIMS的修约规则进行修约。因LIMS的修约规则很复杂,不方便在平板系统中进行处理,因此,需要在LIMS中增加对平板录入数据的处理,包括数值型数据的修约和数据结果状态的判定[7-8]。数据修约的代码片段如下:
padfinish:=SQLEXECUTE("SELECT origrec FROM results WHERE folderno=?current_folderno? and test-code=?current_testcode? and S='Logged' and gathertag='平板录入'"); /*查询出平板录入的结果;
:IF len(padfinish)>0;
K:=1;
:WHILE K < = len (padfinish);
origrec:= padfinish[K, 1];
FieldName:= 'NUMRES'; /*数值型;
ExecFunction("NUMRESVALIDATION", {FieldNa me, origrec});
/*对数值型进行修约,NUMRESVALIDATION为LIMS提供的修约函数;
K:=K+1;
:ENDWHILE
:ENDIF;
3 系统安全设计 3.1 数据传输安全性设计为保证通道安全,系统在网络通道上采用HTTPS进行安全传输;为保证内容安全,对传输的数据进行AES(Advanced Encryption Standard,高级加密标准,64位、128位、256位)加密[9]。同时,采用Gzip压缩算法对数据进行压缩,压缩后可使文本类型减少到原体积1/5大小[10]。Gzip数据压缩过程如图 5所示。
系统设计成必须登录后才能使用,闲置一定时间后自动退出,通过对接LIMS系统,校验LIMS系统账号以获得身份认证及用户关联的检验任务。
3.3 数据存储安全性设计为保证内容安全,对存储的敏感数据(如用户信息)也进行AES(64位、128位、256位)加密,此处不再赘述。此外,客户端还提供清理缓存的机制[11]。
4 结束语基于平板计算机的检验数据采集系统采用C/S架构、Native APP开发模式,发挥原生设备性能;结合移动设备便携触控的特点,实现流畅的用户操作体验;所有数据采用云端统一存储和管理,具有较高安全性;按需转码,兼容不同文档类型,转换成便于客户端阅读的内容,转换效率较高[12]。
该系统的应用,优化了原来LIMS的操作模式,减少了数据转录环节,降低了出错的可能性,使整个数据存储的过程规范、准确、实时、高效,实现了LIMS系统与现场检验过程的无缝连接[13]。该系统的推广使用,可以使得具有更好数据溯源性和文件受控性的信息化应用,同时具备纸质记录便捷性的优点,满足了检测实验室内部随时随地的办公需求,实现了更高层次的移动应用[14]。
[1] |
李健, 陈为. 药检实验室信息管理系统建设思路[J]. 中国药事, 2012, 26(10): 1083-1085. DOI:10.3969/j.issn.1002-7777.2012.10.010 |
[2] |
Christine Paszko, Elizabeth Turner. Laboratory Information Management System[M]. Second Edition. Revised and Expanded. New York: Marcel Dekker Inc, 2002.
|
[3] |
Willbe C. A LIMS for Drug Metabolism (BLIMS):the Information Technology Perspective[J]. Chemometrics & Intelligent Laboratory Systems, 1994, 26(3): 159-164. |
[4] |
柯洁明, 林伟强. 小小平板显神威[EB/OL]. (2014-08-04)[2017-05-15]. http://epaper.cnpharm.com/zgyyb/html/2014-08/04/content_60038.htm?div=-1.
|
[5] |
陈锐浩. 基于Android平台的移动课件的设计及制作[J]. 现代计算机:专业版, 2013(4): 55-58. |
[6] |
肖飞, 黄正东, 王光华, 等. JAVA存储过程在Oracle数据库中的应用研究[J]. 中国数字医学, 2014(3): 26-28. |
[7] |
林海. 国家标准《数值修约规则与极限数值的表示和判定》在车用汽油胶质含量测定中的应用[J]. 标准科学, 2014(8): 41-43. |
[8] |
郭晓敏, 伍小明, 詹希美. 基于概率神经网络的寄生虫卵显微图像识别[J]. 计算机工程与应用, 2005(15): 198-199. DOI:10.3321/j.issn:1002-8331.2005.15.058 |
[9] |
苗杰, 钱强, 高尚. 基于AES加密算法的数据库二级密钥技术[J]. 计算机系统应用, 2013, 22(4): 79-82. |
[10] |
陈鹤年, 季文天, 王成, 等. 支持Gzip压缩和编码转换的网络爬虫设计[J]. 电脑知识与技术, 2010, 6(30): 8485-8486. DOI:10.3969/j.issn.1009-3044.2010.30.027 |
[11] |
李文明, 陈哲, 李绪蓉. 缓存区溢出研究与发展[J]. 计算机应用研究, 2014, 31(9): 2561-2566. |
[12] |
李超建, 朱晓姝. 一种基于XML的中间转码模型设计与仿真[J]. 微电子学与计算机, 2013, 30(10): 161-164. |
[13] |
扶元地, 张延园, 林奕. 基于在线压缩的数据采集存储系统[J]. 计算机与现代化, 2014(7): 49-52. |
[14] |
柯洁明. 建设与药检深度融合的信息化[EB/OL]. (2014-08-11)[2017-05-18]. http://epaper.cnpharm.com/zgyyb/html/2014-08/11/content_59815.htm?div=-1.
|