APP下载

基于Qt/Embedded的病房管理系统界面的设计

2013-02-28强,张

网络安全与数据管理 2013年3期
关键词:嵌入式客户端界面

张 强,张 伟

(湖北大学 物理学与电子技术学院,湖北 武汉 430062)

将先进的计算机技术、通信技术、传感器技术等运用在医院中,能有效地减轻医护人员工作强度、提高医护效率和医疗质量、可尽量减少误差以避免医疗事故和医疗差错,为公众提供优质便捷的医疗服务,使医院更加高效、可靠地运营。病房管理系统是数字化医院的重要组成部分,良好的界面设计则是系统可用和易用的关键。本文利用嵌入式技术和Qt界面开发技术,完成了一种简洁实用的病房管理系统界面设计,成功实现了前台界面和后台数据库的连接,为病患查询相关信息、与医护人员交互提供了友好的平台。

1 系统界面功能需求及开发平台

1.1 系统界面功能需求

根据项目需求分析,所设计的病房管理系统图形界面如图1所示,其主要功能[1]包括病人信息、治疗信息、病情信息、短消息、医嘱、费用、呼叫、调试页等。

图1 系统功能结构图

1.2 系统界面开发平台

本系统在以S3C6410A微处理器芯片为核心的嵌入式终端系统硬件平台上,利用Qt作为图形界面开发工具。Qt是一个跨平台的C++开发工具,不但拥有完善的C++图形库,还集成了数据库、OpenGL库、多媒体库、网络库、脚本库、XML库、WebKit库等,而其内核库还加入了进程间通信、多线程等模块,极大地丰富了Qt开发大规模复杂跨平台应用程序的能力。

Qt/Embedded是图形化界面开发工具Qt的嵌入式版本,它通过 QtAPI与 Linux I/O以及 Framebuffer[2]直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好的体系架构和编程模式。

2 系统界面的开发过程

在GUI用户界面中,当用户操作一个窗口部件时,需要其他窗口部件的响应或者能够激活其他的操作。而在程序开发中,经常使用回调机制来实现。但Qt提供的信号和槽机制不同于回调函数机制,其信号是一个特定的标识;而槽机制是一个槽就是一个函数,与一般的函数不同,槽函数既能够与信号关联,也能够像普通函数一样直接调用。当某个事件出现时,通过发送信号,可以将与之相关联的槽函数激活,即执行槽函数代码。在程序中,使用 QObject::connect()函数来将某个信号和某个槽进行关联,而信号和槽之间的真正关联是由Qt的信号和槽机制来实现的。

系统界面的开发主要分4个部分:(1)软件平台的移植;(2)系统图形界面的设计;(3)系统界面功能的实现,主要通过TCP访问服务器并接收其发出的数据;(4)系统界面的移植。

2.1 Qt/Embedded的移植

实现Qt/Embedded的移植[3]需要下载 qt-everywhereopensource-src-4.7.3软件包。由于完整的Qt/Embedded图形库对于嵌入式设备资源的要求很高,因此,应根据项目需求在安装过程中利用参数进行配置和剪裁。主要参数配置如下:

利用make进行编译,然后利用make install把安装文件打包下载到ARM板上,这样即完成了Qt/Embedded的移植。

2.2 系统图形界面的设计

2.2.1 网页界面的设计

根据项目需求,利用Qt creator设计整体的操作界面。首先创建一个主窗口,在这个窗口上放置一个QTabWidget窗口部件,并在其顶部可以编辑系统的一些功能,如:ui->tabWidget->setTabText(0,tr("病人信息")),定义该窗口标签为病人信息;然后在这一窗口部件上放置一个QWebView子窗口部件。QWebView类是Qt webkit模块中最常用到的类之一,它用来创建一个可以view和edit文档的widget,也就是说可以通过QWebView来查看和编辑网页,即通过QWebView类可以实现病人信息的查看。其系统的网页界面(ui)的设计如图2所示。

2.2.2 呼叫界面的设计

首先建立一个主窗口,在这个主窗口上放置一个行编辑框用来输入病床号、若干个数字按钮、一个呼叫按钮和一个挂断按钮。输入要呼叫的病床号,当按下呼叫按钮时,发出信号 signal(),将与之相关联的槽函数 slot()激活,执行槽函数代码。实现代码为connect(ui->StartCall,SIGNAL (clicked ()),this,SLOT (startCall()))。其系统的呼叫界面的设计如图3所示。

2.3 系统界面的功能实现

本系统的功能实现采用C/S[4]模式,即首先启动服务器,稍后的某个时刻启动客户端,客户端与此服务器经过3次握手后建立连接。此后的一段时间内,客户端向服务器发送一个请求,服务器处理这个请求后,给客户端发回一个响应。TCP客户端与服务器间的交互时序如图4所示。

图4 TCP客户端与服务器间的交互时序

Qt提供了 QTcpSocket类[5]和 QTcpServer类,用于编写TCP客户端和服务器的应用程序。QTcpSocket类提供了TCP协议的通用接口,采用异步工作方式,依靠Qt事件循环发现外来数据和向外发送的数据,并以信号的方式报告状态改变或产生的错误。而QTcpServer类则在服务器端处理外来的TCP客户连接,其功能实现的主要代码如下:

一旦连接建立成功,QTcpSocket类将发出connected()消息,继而调用 manualUpdateConnectSuccess()槽函数。manualUpdateConnectSuccess()函数则进行数据更新,当发出数据时,QTcpSocket类将会产生 readyRead()信号,继而调用manualUpdateReceiveData()槽函数,接收更新后的新数据。如果连接或数据传输过程中的某次操作发生错误,QTcpSocket类会发出 error()信号,并触发错误处理函数displayError(),关闭连接。其功能实现代码如下:

当有客户端连接请求到来时,QTcpSocket类将会发出 newConnection()信号,从而触发 acceptConnection()函数。QTcpServer类在接收了外来TCP连接请求后,可以通过 nextPendingConnection()函数获取一个新的已建立连接的子套接字,并返回QTcpSocket类指针将返回值保存在clientConnection变量中;当建立的连接有新的可供读取的数据时,QTcpSocket类会发出 readyRead()信号,从而触发 tcpServerReceiveData()函数,该函数完成数据的接收;而当新连接中产生错误时则会发出error()信号。

2.4 图形界面的移植

完成Qt应用程序在PC端的Linux下的仿真运行、对源程序进行交叉编译、将生成的可执行文件和相关的库文件拷贝到开发板上,即可实现移植,在开发板上将显示出如图5所示的图形界面。

在Linux操作系统下,采用Qt/Embedded作为图形界面开发工具,利用其高效性和跨平台性,实现了病房管理系统界面的设计,并进行移植,使其稳定地在ARM11开发板上运行。保证了应用系统的快速高效,极大地提高了护士、医生的工作效率,同时给医院和病人带来很大的方便。

[1]马锡坤,徐旭东,胡敏.病房医生工作站信息系统的功能与应用[J].医疗设备信息,2007(1).

[2]丁林松,黄丽琴.Qt4图形设计与嵌入式开发[M].北京:人民邮电出版社,2009.

[3]赵辛晨,吴仲光,唐建兵.基于 Qt/Embedded的数码一体机图形界面设计与实现[J].微型机与应用,2011,30(7).

[4]SCAGLIA S.嵌入式Internet TCP/IP基础、实现及应用[M].潘琢金,徐蕾,拱长青,译.北京:北京航空航天大学出版社,2008.

[5]蔡志明,卢传富,李立夏.精通 Qt4编程[M].北京:电子工业出版社,2008.

猜你喜欢

嵌入式客户端界面
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
国企党委前置研究的“四个界面”
如何看待传统媒体新闻客户端的“断舍离”?
TS系列红外传感器在嵌入式控制系统中的应用
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
搭建基于Qt的嵌入式开发平台
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
人机交互界面发展趋势研究