Sie sind auf Seite 1von 6

Development of HCI Management Software for

Automatic Medical Analyzers


Wei Huang, Fang Fang, Xudong Ma

Ziquan Dong, Xin Xu

Key Laboratory of Measurement and Control of CSE


Ministry of Education
(School of Automation, Southeast University)
Nanjing 210096, Jiangsu, P. R. China
ffang@seu.edu.cn

SINNOWA Medical Science & Technology Co., LTD


Nanjing 211135, Jiangsu, P. R. China
dzq@sinnowa.com

AbstractAutomatic medical analyzer (AMA) systems such as


Bio-chemical analyzer and Hematology analyzer are generally
composed of management software and control systems, as in
layered or distributed framework, which simplifies the design
process and makes them more convenient to be maintained and
operated. Users interact with the analyzer through the
management software system and a user friendly
human-computer interface, for human-computer interaction
(HCI). In this paper, the development of management software
for AMAs is presented, including functional requirements,
platforms for development and operation, as well as method for
development and application design. Two typical software
systems developed respectively for PC/Windows and Embedded
systems under embedded operating system (Embedded OS) are
given in detail for demonstration. The former OS is suitable for
software that acquires a plenty of graphics processing tasks and
comes to excellent visual effects, with latter Embedded OS for
compact, simple interface with better real-time and stability in
instrumentation systems. In addition, graphic user interface
(GUI) toolkits are introduced to promote development efficiency
of the management software. In the end, two specific developing
methods are proposed for actual cases: one using MFC on
PC/Windows, the other utilizing MiniGUI on Embedded OS.

interfaces (GUIs) are prevalently used for desktop


applications, internet browsers and handheld computers.
Besides, speech recognition and synthesizing systems make
use of voice user interfaces (VUIs).

KeywordsAutomatic medical analyzer, HCI management


software, GUI toolkits, PC/Windows, Embedded operating
system

Management software for automatic medical analyzers is


generally a desktop or instrumentation application, running on
either a PC with where-see-where-get graphic interface as
MS-Windows, or embedded system with or without an
operating system. Therefore, the interaction between operators
and analyzers are generally accomplished by GUI. For
instance, hematology analyzer XT-2000i of Sysmex is
equipped with a management software based on PC/Windows,
and the software of ABX PENTRA 60, another automatic
hematology analyzer, is based on embedded operating system
(Embedded OS) [3][4].
In this paper, the schematic development of management
software for AMAs is presented, including functional
requirements, platforms for development and operation, as
well as method for development and application design. It is
organized as follows. The functions for AMAs management
software are discussed in Section 2, and key considerations
for the development process is given in section 3, followed by
which two specific developing approaches are proposed in
section 4 and section 5 respectively, with the conclusions
finally given in section 6.

I. INTRODUCTION

Automatic medical analyzers (AMAs) are becoming


common place in todays invitro diagnosis and health care
market, ranging from hematology analyzer, to bio-chemical
analyzer, even in an assembly system. Many medical devices
have been used successfully to provide better patient care,
often with costs savings [1].

II. FUNCTIONAL REQUIREMENTS


For different instruments, the functions of Analyzer
management applications are different. But there are still
several common basic functions, just as shown in Fig. 1.
Management
of Data

Users generally interact with the analyzer through


management software system and user friendly
human-computer interfaces, which is sometimes called
Human-Computer Interaction (HCI). The Association for
Computing Machinery defines human-computer interaction as
a discipline concerned with the design, evaluation and
implementation of interactive computing systems for human
use and with the study of major phenomena surrounding
them [2]. Humans interact with computers in many ways.
The interface between humans and the computers which they
use is crucial to facilitating this interaction. Graphical user

c
978-1-4799-8389-6/15/$31.00 2015
IEEE

System
Parameter Setup
Communication
with LIS

Quality
Control
Management
Software

Real-time Monitoring
of Instruments Status

Calibration
Device
Maintenance
Communication
with Control System

Figure 1. Basic functions of management software for AMA

2030

A. Management of measured data and processing


This is the core function of the software, including data
processing, user information input, curve and figure
displaying, report printing, storing and retransmission of the
sample data received from the control system, as well as
quality control results.
B. Quality control & Calibration
After a long period of use, some errors would be found in
the analyzer, which might lead to unreliable analysis results
[5]. In order to ensure the accuracy and stability of the
instrument, quality control and calibration are indispensable.
C. Device Maintenance
This function is designed to help operators maintain the
analyzer and debug when it does not function normally. It is
mostly composed of two parts: some functional checks, to test
the operation of each important component of the device, and
various maintenance programs like rinse treatment, emptying
deal and adding reagent, etc.
D. Communication with control system
Automatic medical analyzer systems are generally
composed of management software and control systems,
which makes them easier to design, maintain and manage. The
former is responsible for HCI and data processing. The signal
acquisition and mechanical drive are controlled by the latter
[6].
For a complex AMA system, the control system might
even consist of multiple sub-systems, which are controlled by
independent micro-processors. Through communication
network such as CAN bus, USB, etc. the management
software interconnect with all these subsystems in a
distributed way. Fig. 2 is a schematic plot of this
communication topology. However, sometimes the
communication between management software and control
system can be simplified internallysuch an interface as SPI
bus is used in place of CAN bus, as Fig. 3 indicated.

E. Communication with LIS


A laboratory information system (LIS) is a software-based
laboratory and information management system that offers a
set of key features supporting a modern laboratorys
operations. It helps to promote the efficiency and
effectiveness of clinic tests. The management software mostly
communicates with LIS using Ethernet.
III. MANAGEMENT SOFTWARE DEVELOPMENT
When developing software for an automatic medical
analyzer, the following aspects should be taken into account.
A. Platform for development
PC/Windows and Embedded systems under Embedded OS
are two prominent operation platforms for AMA management
software nowadays. These two platforms, however, lead to
completely different developing process. It is so easy for a
application software developed and running for PC/Windows
environment with a compiler. However, on embedded system
with OS, more work need to be done before application
design, as given in Fig. 4. On the one hand, Embedded OS is a
more complex platform for application development. On the
other hand, it is also referred to as real-time operating system,
which means that it has a much better real-time performance
than in PC/Windows [7]. Some features are illustrated in
TABLE I for HCI software development on these two
platforms.
In a word, with abundant system resource, PC/Windows is
more suitable for developing superb software with range of
functions. Otherwise, if the analyzer system has a strict
real-time requirement, and need not to be gorgeous, it is
proper to choose Embedded OS as the development platform.
Transplant of Compiler

Transplant of Bootload

Management software

Transplant of Kernel

CAN bus

Subsystem
1

Subsystem
2

Hardware

...

Subsystem
n

Subsystem
n+1

Design of File System

...

Hardware

Hardware

Design of Drivers

Figure 2. Schematic plot of distributed connection

Design of Application
Management
software

SPI bus

Control
system

Hardware

Figure 4. Development process on embedded operating system

Figure 3. Simplified connection way

2015 IEEE 10th Conference on Industrial Electronics and Applications (ICIEA)

2031

TABLE I.

FEATURES OF HCI SOFTWARE DEVELOPMENT ON PC/WINDOWS & EMBEDDED OERATING SYSTEM

Platform

Software Features
1.Gorgeous interface;
2.Rich and complex functions
1.Simple interface style;
2.Less resource-intensive
3.more strong for safety

PC/Windows
Embedded OS

TABLE II.

Linux
frame
buffer

GNOME(libs)

GTK+

KDE(libs)
MFC

Microwindows

MiniGUI

MS Win
95/98

MS Win
NT/2000/
XP/Vista

MacOS

OpenGUI
Qt
VCF
WxWidgets

B. Operating system
Development of an instrumented Analyzer employs
embedded system and Embedded OS as fundamental
technology. At present, there are so many different kinds of
embedded operating systems, and each has its own
characteristics and application scope. Examples of popular
modern Embedded OS include Android, iOS, Embedded
Linux, C/OS-II, Windows CE and VxWorks, etc.
C. Integrated Development Environment and Cross Complier
An integrated development environment (IDE) is a
software application that provides comprehensive facilities to
computer programmers for software development. An IDE
normally consists of a source code editor, a compiler, a
debugger and GUI toolkits, such as Microsoft Visual Studio
and Borland C++ Builder. One aim of the IDE is to reduce the
configuration complexity by piecing together multiple
development utilities, and providing the same set of
capabilities as a cohesive unit. Tighter integration of all
development tasks has the potential to improve overall
productivity. For example, program codes can be continuously
parsed while it is being edited, providing instant feedback
when syntax errors found.
When it comes to Embedded OS development, IDEs are
not enough. Involved in the application development for
Embedded OS, a cross complier is one capable of creating
executable codes for a different platform from the one on
which the compiler is running. For example, a PC/Windows
cross compiler can generate program codes that runs on
Embedded Linux. The fundamental use of a cross compiler is
to separate the build environment from target environment.

2032

Focus of development
1.Design of interface;
2.Functional optimization
1.Transplant of system,
GUI toolkit and application;
2.design of structure of the software

PLATFORMS FOR SOME COMMON GUI TOOLKITS


Unix
X11

Name

Development Features
Using a variety of tools to achieve better
design effect
Narrow down the size of the kernel and
application, and improve the efficiency
of the software

Other
platforms
BeOS,
DirectFB,

MS-DOS,
RTEMS,
Linux SVGAlib
Linux SVGlib
and libCGI
MS-DOS,QNX,
Linux console
Andriod, iOS, QNX,
VxWorks,etc
MGL, OS/2 PM,
MacOS X

GCC, a free software collection of compilers, can be set up to


cross compiler. It supports many platforms and programming
languages.
D. Graphical user interface (GUI) toolkits
Generally speaking, there are two methods to develop a
HCI application. One is totally manual, building system
framework with basic programming language like C or JAVA.
This way is more flexible and targeted on the one hand,
however, more complex and taking far more time on the other
hand. Naturally, there comes out a more convenient and
effective manner: making use of existing tools. Since GUI is
mostly applied as the connector of interactions between
human and machine, GUI toolkits are the appropriate tools in
HCI software development.
A GUI toolkit encapsulates a program library for the
interface realization of basic graphics like line and rectangle,
which reduces the application developers work. For example,
the function Create() is enough when it is wanted to create a
button or an edit box for an application based on MiniGUI,
instead of calling lower-level functions to artificially draw it.
As a consequence, the development efficiency of GUI
application can be greatly promoted.
Each of the toolkits only works on the right platforms.
TABLE II lists the platforms that some common toolkits
support [8].
E. Developing application
Computers with GUI manage the display of applications
on the screen by windows graphic system [9]. The structure of
a GUI system is shown in Fig. 5.

2015 IEEE 10th Conference on Industrial Electronics and Applications (ICIEA)

Application
Toolkit
Windowing System

Operating System

Figure 5. Structure of a GUI system

Windows graphic system is a software system, which


helps users manage and control different display environments
by dividing the screen into distinct sections. Windowing
system provides a window-based operating mode. Each
window is a rectangular area on the screen. Operators can see
several work items and conveniently switch between them on
one screen. Because the shortcoming of character mode on
old-fashioned terminalone screen only for one workwas
overcome by windowing system [9].
Under different development environments, application
design is vastly unlike, but still somewhat common places.
What be listed following are some important concepts relating
to GUI application development.
1) Window
A window is the primary structural element of GUI
application. A window is an area on the screen that displays
information, with its contents being displayed independently
from the rest of the screen through which an application
displays outputs or receives inputs from the user.
2) Controls
In general, complex GUI toolkits contain a predefined set
of controls. Controls are the main elements of HCI. They can
be treated as child windows of the main window (or common
window). The behavior of these sub-windows is similar to
main window, except for that all of their activities are
restricted in the main window. Button, Edit box, Menu and
Combo box are some common controls.
3) Message
Message is generated by system, responding to input and
other events from the application, or sometimes by
applications, to support the communication among its
windows. There are plenty of system predefined messages,
such
as
MSG_INITDIALOG,
MSG_PAINT
and
MSG_COMMAND of MiniGUI. Users can also customize
messages if necessary. Calling of function SendMessage () or
PostMessage () is the primary way to apply message in
applications.
4) Event-driven
Event-driven (also called message-driven) mechanism is
generally employed in popular GUI programming. It means

that programs will be always in a state of cycle for


concurrency, rather than a serial execution route with only one
entrance and several exits. In this cycle, Apps continually get
events from external or internal, such as key down or the
moving of mouse, then response to these events and
accomplish the corresponding function, until receive a certain
message.
IV.EXAMPLE1: PC SOFTWARE FOR AUTOMATIC
BIO-CHEMICAL ANALYZERS
There are certain automatic bio-chemical analyzers being
typical AMAs operated under Microsoft Windows on PC,
connecting with the instruments through serial port. All types
of these devices share one piece of management software,
which selects operation environment according to
configuration files.
The software is developed under Microsoft Visual C++ 6.0
with MFC, which is a library that wraps portions of the
Windows API (Application Programming Interface) in C++
classes, including functionality that enables them to use a
default application framework. MFC provides three
application frameworks: Single Document, Multiple
Document and Dialog based framework, of which the first one
is applied as the main framework of the software, which is
displayed in Fig. 6. Actually, this structure can be generated
from basic controls of MFC. In order to optimize the interface,
making the screen more artistic, BCGControlbar, an extension
library, takes the place of basic controls, involved in the
design of main frame.
As mentioned above, MFC not only encapsulates a lot of
Windows API, but also contains many wrapper classes of
Windows handles and controls. There is a hierarchical
structure among these classes. Fig. 7 gives the relationship of
the major classes utilized in the software design. The
application is mainly developed in four classes among them:
CABAApp, CMainFrame, CABAView and CABADoc.
Whats more, as an HCI software, this application supports
multiple languages. There are mainly three modes of realizing
multi-language support:
z

Generating an application for each kind of language.


This is the most inefficient one.
Title Bar
Tool Bar

Navigation
Bar

ScrollView

Status Bar
Figure 6. Structure of main framework

2015 IEEE 10th Conference on Industrial Electronics and Applications (ICIEA)

2033

CBCGPOutlookBar

Cobject

CBCGPDockingControlBar
CCmdTarget
CWinThread

CDaoRecordset

CWnd

CDocument

CWinApp

CDialog

CFrameWnd

Cview

CABAApp

CpropertyPage

CMainFrame

CScrollView

CABADoc

CABAView

CFormView

CBCGPControlBar
CBCGPToolBar

CDaoRecordView

Figure 7. Relationship of the major classes of software for bio-chemical


analyzers

Reading information from resource files according to


current language. This way is much more convenient
than the first one, but it still greatly increases the
amount of programming codes.

Making use of external language pack. Although it


has to include some additional header files when
compiled, the program is much easier to accomplish
and maintain.

LocWise, a small tool that works under Visual C++, is


applied here to create external language pack.
V. EXAMPLE2: EMBEDDED SOFTWARE FOR
AUTOMATIC HEMATOLOGY ANALYZERS
Here gives a kind of latest 5-differential hematology
analyzer and its management software, which is based on OS
of embedded Linux and Samsung S3C2440 embedded
processor. It is composed of three sections: system layer,
mid-layer and application layer [10]. As illustrated in Fig. 8,
system layer includes system startup boot, embedded Linux
kernel and device drivers; the items in mid-layer are resources
and libraries serving for the application; the application layer
is made up of several functional modules.
SPI
Communication

Print

UART

Data Management

HCI

Application
Layer

API Interface
Embedded Database
SQLite

MiniGUI

Development of software with MiniGUI is focused on the


window system, which is explained above, and graphic
interface. Its programming style is very similar to WIN32.
Nextgives the two significant points of MiniGUI application
development on embedded operating system.
A. IAL transplant of MiniGUI
In order to be better transplanted into the embedded
platform, the concept of graphic and input abstraction layer
(GAL & IAL) is introduced for MiniGUI. The relation
between MiniGUI and system is displayed in Fig. 9. GAL and
IAL define a set of interfaces independent on the hardware.
Thus all top-level graphics operations and input processing
are built on the abstract interface. For distinct display devices
and input devices, the only thing need to be done is designing
new GAL and IAL according to the interface of abstraction
layer. System can directly use MiniGUIs fbcon graphics
engine, for framebuffer, which is a portion of RAM
containing a bitmap that is driven to a video display from a
memory buffer containing a complete frame of data, is
transplanted into the target board of S3C2440. What is shown
in Fig. 10 is the construction of IAL system for whole
software, the data structure INPUT representing the input
engine.
Setting option ial_gal = IAL2440 in the configuration
file of MiniGUI, programmer can appoint the input engine
interfacethe global parameter inputsto point to INPUT
defined by himself/herself. The Init2440Input and
Term2440Input are two functions that create INPUT. The
former starts the underlying driver module and establishes a
connection between function pointers of INPUT and
performance functions. The latter is responsible for closing
the drivers when the IAL is unloaded.
B. Cross-compiling
When developing application with MiniGUI on Embedded
OS, the programming is often fulfilled on PC, and then
transplanted to target system along with MiniGUI.
Cross-compiling is an important step involved in this process.
It is commonly illustrated elsewhere how to cross compile
application on embedded operating platform. Therefore, only
the method of cross-compiling MiniGUI is stated here.

Mid-Layer

MiniGUI API

System Call
System
Call

MiniGUI Core

Device Drivers
System Layer

GAL

Embedded Linux Kernel

IAL

Uboot

Device Drives
Hardware

Physical layer

System
Call
Linux
Kernel

S3C2440
Figure 8. Structure of management software for 5-differential hematology
analyzer

Figure 9. Relation between MiniGUI and system for the embedded system

The realization of the HCI module relies on MiniGUI,


which has become a cross-operating-system GUI system,
supporting Linux/uClinux, eCos, VxWorks, pSOS, ThreadX
and Nucleus. It is based on a mature graphics engine.

2034

2015 IEEE 10th Conference on Industrial Electronics and Applications (ICIEA)

MiniGUI Upper
Graphical Interface System

Init2440Input

User input engine


interface

Term2440Input
IAL Realization of
S3C2440

INPUT
Mouse Operation
Functions

Touch Screen
Driver

Academic Program Development of Jiangsu Higher Education


Institutions.

Keyboard Operation
Functions

Keyboard
Drive

Event Management
Functions

Membrane
Keys Drive

Underlying
input drivers

Figure 10. Construction of IAL system for S3C2440

For the sake of compiling a MiniGUI that suitable for


S3C2440, the cross compilation tool chain is selected in the
file configure under the libminigui-1.3.3 (the version of
MiniGUI used in this system is MiniGUI1.3.3) directory.
After the execution of following commands, add the library
files generated to the lib directory of root file system.
#./configure --built = i686-linux-pc-gnu
--host = arm-unknown-linux --enable-jpgsurport = no
--enable-pngsupport = no --enable-gifsurpport = no
--enalbe-smdk2410ial = yes --disable-lite
--prefix = ${ROOTFS}
#make
#make install

[1] J. N. Edwards and G. Steinke. Integrating Human Computer Interaction


Testing into the Medical Device Approval Process. Communications of
the IIMA, 2009, 9: 57-64.
[2] T. T. Hewett, R. Baecker, S. Card and T. Carey. ACM SIGCHI Curricula
for Human-Computer Interaction. http://old.sigchi.org/cdg
[3] XT_2000iV_Brochure. www.sysmex.com/us/en/Products/Hematology
[4] ABX Pentra 60.
www.horiba.com/medical/products/hematology/abx-pentra-60
[5] L. Ellgaard, A. Helenius. Quality control in the endoplasmic reticulum.
Nature Reviews Molecular Cell Biology, 2003, 4: 181-191.
[6] S. Chen. Embedded Control and Management System for Novel
Automatic Platelet Aggregometer. Industrial Electronics and Applications
(ICIEA), 2012, 1488-1493.
[7] X. R. Zhou, P. Petrov. Rapid and low-cost context-switch through
embedded processor customization for real-time and control applications.
Annual ACM IEEE Design Automation Conference, 2006, 352-357.
[8] The GUI Toolkit, Framework Page. www.atai.org/guitool
[9] MiniGUI Programming Guide. www.minigui.com
[10] C. M Jiang, G. Y. Zhang, C. M. Huang. Research of Embedded Operating
System Based on Multi-core Processor. Computer Science and
Information Technology (ICCSIT), 2010, 641-643.

VI.CONCLUSIONS
Human-Computer Interaction is an important part of an
automatic medical analyzer, and prevalently accomplished
through GUI.
According to general process of software development, the
research of requirement must be done before the design of
software. If the software acquires a plenty of graphics
processing tasks and asks for excellent visual effects, it will be
more feasible to develop software on PC with the help of
MFC or alike ones, just as illustrated in the example in section
4. The example discussed in section 5 introduces how to make
use of MiniGUI on embedded Linux system. This approach is
exactly appropriable for development of software that does
not need gorgeous interfaces and has a requirement of
real-time and embedded. From these cases, we can intuitively
get the great distinction between two development ways. Both
the approaches proposed are practiced successfully to develop
software for AMAs.
Due to the extremely popular of handheld devices, as well
as the widely application of Android, further research will be
done to involve mobile devices like tablet computers into the
development of management software for automatic medical
analyzers.
ACKNOWLEDGMENT
The authors are grateful to SINNOWA Medical Science &
Technology Co.Ltd, China for supporting the research work in
this paper. And it is also a project funded by the Priority

2015 IEEE 10th Conference on Industrial Electronics and Applications (ICIEA)

2035

Das könnte Ihnen auch gefallen