Design and Implementation of a Framework for Monitoring Patients in ...

3 downloads 3808 Views 162KB Size Report
patient information; they must be at a monitoring station or at the patient's bedside in ... send the collected data through a wireless ad hoc network to an Ethernet Gateway .... vendor-provided applications to graphically visualize the network and ...
Design and Implementation of a Framework for Monitoring Patients in Hospitals Using Wireless Sensors in Ad Hoc Configuration Nicholas O’Donoughue, Student Member, IEEE, Sarvesh Kulkarni, Member, IEEE, Douglas Marzella

Abstract—Patients in hospital Intensive Care Units (ICUs) have to be monitored constantly. In addition, the supervising doctor or nurse must visit the monitoring station to get readings of the patient’s vital signs. At other times, the doctor typically has no information of the patient’s progress, and must be paged by a human in case of emergencies. A far better system would be one that keeps the patient’s information available to the doctor or nurse at all times, possibly through the use of a handheld device. The doctor would then be able to check on the patient’s progress in real time. Should an emergency arise, the doctor can be notified directly by the monitoring system itself, saving valuable response time. This paper aims to set up an infrastructure for monitoring patients in hospital ICUs. An architectural framework and related protocols to support communication between the various components of such a system are presented. In addition a prototype to demonstrate the concepts was developed. The prototyped product was successfully demonstrated to industry representatives, in November 2005, at Villanova University, PA.

Keywords—ad hoc sensor networks, medical devices, telemedicine, real time data acquisition, remote monitoring I. INTRODUCTION

H

ospital Intensive Care Units (ICUs) are extremely busy. Doctors and nurses are constantly being called to attend to patients in need of urgent care. When an emergency arises, the nurse must first recognize the danger and then page a doctor, who must then rush to the patient’s aid. Thus, precious time is wasted in responding to the emergency. Another problem is that doctors do not have easy access to patient information; they must be at a monitoring station or at the patient’s bedside in order to see how a patient is progressing. Even in non-emergency situations, the doctor and the patient must often be in the same place before care can be administered. As a consequence, there has been much attention paid recently towards applications and research in telemedicine. A. State of Current Research Numerous proposals have been made recently for systems that use fixed infrastructure to bring patients and physicians Manuscript received April 3, 2006. Nicholas O’Donoughue , Sarvesh Kulkarni and Douglas Marzella are with the Department of Electrical and Computer Engineering at Villanova University, Villanova, PA 19085 USA (phone: 610-519-4970, fax: 610519-4436; e-mail: {nicholas.odonoughue, sarvesh.kulkarni, douglas.marzella} @villanova.edu).

in separate locations together for diagnosis and monitoring [6, 8, 10, 13]. These systems focus on a specific application, such as transmission of ECG data through the WWW so that a doctor need not make a house call [10], or the general case of monitoring unspecified parameters at one [13] or multiple [8] homes. Short-range FM communications have also been proposed to provide a one-sided link between a patient’s ECG monitor and their home computer, to provide more convenient acquisition of ECG data for eventual transmission [6]. The goal of these proposals is to provide additional support for out-patients at high risk of medical complications, while keeping the operating cost of the physician sufficiently low. The advent of low-cost, wireless devices has also spawned several implementations for data collection using personal networks [1, 2, 7, 14] and long-range wireless communications [9, 14]. Bhargava et al. [1] discuss some of the security considerations necessary for a medical ad hoc network. Pattichis et al. [14] conducts an in-depth survey of several case studies. The pervasive Bluetooth standard has been suggested as a method of aggregating data from multiple sensors attached to a patient, with a central device providing a wireless uplink to larger networks [7]. Ad hoc sensor networks have also been incorporated into an emergency response system that provides vital statistics to the hospital while patients are en-route [2]. The issue of monitoring patients while in transit throughout a hospital or between two hospitals has been addressed, with a proposed PDA providing the wireless uplink [9]. In response to developments of proprietary and vendor-specific implementations, Varady et al. [17] propose an open architecture for bedside networks that, while inherently wired, could easily be extended to the wireless realm of devices. In addition, advances in ubiquitous computing have encouraged applications for displaying data on mobile computing devices, such as PDAs and Pocket PCs [4, 12]. Hung and Zhang [4] develop a WAP based mobile application that is capable of displaying data from ECG plots to blood pressure and heart rate history. Thus, significant attention has been paid to the areas of telemedicine and automated data acquisition. The proposed and implemented solutions aim to provide remote healthcare in the home and on the move. What has been missing from all of these systems, however, is the integration of mobile

data acquisition and mobile data retrieval.

the current state of implementation. Section V concludes the paper. II. DESIGN OVERVIEW

The design of our system consists of three main components, as seen in figure 1. The first subsystem, the wireless sensor network (WSN) is responsible for collecting and transmitting all relevant patient data. The second subsystem, the DAAM, is responsible for recording and monitoring all received data, as well as for managing connections with all of the PDA clients. The third subsystem, the ‘ICUClient’, is responsible for accessing the Fig. 1. Overview of patient information retrieval system. The WSN (right) consists of several nodes DAAM to retrieve patient data, connected wirelessly to an EGN, that is attached to the local Ethernet. The DAAM (top center) is a single and for displaying that data on server attached to the Ethernet. The ICUClient is a software program that resides on PalmOS handhelds (left) with IEEE 802.11 connectivity. the doctors’ and nurses’ PDAs. We hereafter refer to doctors and nurses as ‘users’. B. Our Proposed System A. Wireless Sensor Network (WSN) The intelligent system that we propose seeks to alleviate these shortcomings. Patient data will be collected at the The WSN consists of Crossbow Mica2 and Mica2Dot bedside much like it currently is. However, we propose to motes. The radios in these motes operate in the unlicensed send the collected data through a wireless ad hoc network to 900 MHz band. The motes are configured with the ‘Surge an Ethernet Gateway Node (EGN). The EGN will then log Reliable Route’ routing algorithm, which runs on the this data to a server using a program called the Data TinyOS platform and is available from Crossbow, Inc. The Acquisition and Alert Module (DAAM) running on that base station of the WSN, the Crossbow MIB 600, receives server. The DAAM also archives the doctor’s or nurse’s all of the data transmissions from the motes routed over one requests for patient data, and checks each patient’s vital or more wireless hops and makes them available over the signs against a pre-defined safe range. The DAAM transmits attached Ethernet port. A “node” is any mote in the WSN. this information over the Internet to be received by a doctor A node may have multiple sensors attached to it, or none at or a nurse carrying a Palm OS hand-held device such as a all. The nodes form a co-operative, multi-hop, ad hoc Personal Digital Assistant (PDA). A program, the wireless network. In our proposed solution, patients would ‘ICUClient,’ installed on the PDA receives automatically be issued a unique node (with sensors attached). That node generated alerts from the DAAM whenever a patient slips would collect all sensor data for that particular patient and into a critical condition. It also allows a doctor to proactively transmit it for storage to a database in the DAAM. request and view specific patient data in real time in the B. Data Acquisition and Alert Module (DAAM) form of numerical values, or running graphs. The second subsystem is the DAAM. Details are provided Currently a wireless sensor network consisting of in figure 2. The DAAM consists of several modules and a commercially available Crossbow Mica2 and Mica2Dot MySQL database. The main component in the DAAM is the motes is being used to mimic patient data (see www.xbow.com). The sensors collect data regarding such Logger module. It opens a socket to the EGN and stores all things as temperature, sound, and light intensity, which we of the data into a MySQL database. The Logger is also treat as relevant patient data, for testing purposes. The responsible for monitoring the incoming data in real time for proposed system has been fully designed, developed and what we have described as “emergency conditions,” i.e. tested (although not in a hospital environment). A those which signify that a patient is in need of immediate demonstration was conducted at the annual Villanova attention. Whenever an incoming data point is flagged as an University ECE Day on November 3rd, 2005, for which we emergency, a message is sent via a method call to the ‘PalmServer’ module (described below). received an Industrial Advisory Board Presentation Award. The MySQL database (figure 2) consists of three tables. Section II contains an overview of the design, subdivided The first table in the database, “nodes,” is a list of all nodes into the three main system components. Section III in the network, which contains pertinent information about discusses the design implementation. Section IV explains

each node, including type, and time of last transmission. The second table, called “packetReceived,” is a list of each transmission that was received from the sensor network, as well as all the data carried in those transmissions. The third table, “safeRange,” is a list of the accepted safe ranges for each data set. The ‘PalmServer’ module runs on the Palm PDA. It is responsible for accepting incoming socket connections, and creating an instance of the ‘PalmServerThread’ module for each connection (refer to figure 2). The PalmServer also distributes all alerts that are sent by the Logger, so that each user can be notified as appropriate. Currently, the PalmServer alerts every user, but the inclusion of control and decision logic into this process would be very straightforward and beneficial, although not addressed here. The PalmServerThread module handles communications

Fig. 2. Block diagram of DAAM.

with the ICUClient (described in section II C), queries the MySQL database in response to requests for data, and formats the results appropriately before transmission. This module is used to send information to the user about what nodes are “active” in the sensor network, and to provide a “snapshot” of the most recent data transmission received from a selected node. If the user wishes to receive streaming information on a specific data set (such as pulse or body temperature in a final system, and light or acoustic levels in our concept system), then the PalmServerThread hands this task off to a new instance of the ‘UpdateThread’ module. The UpdateThread module queries the MySQL database for all transmissions received from the specified node within recent history, and then transmits the data points, in order, to the user. This frees up the PalmServerThread to listen for messages from the user without any lag in response time. C. ICUClient The ‘ICUClient’ software runs on the Palm PDA (figure 3). All logic control for this program lies in its ‘ICUClientMIDlet’ class, with all socket functionality handled by the ‘Communicator’ class. The five ‘screen’ classes comprise the visual interface, and the Graph class handles the actual plotting of received data streams. The user can browse all active nodes, view ‘snapshots’ of the most recent transmission received from that node, and

Fig. 3. Block diagram of ICUClient application.

view streaming data from a specific node and sensor graphically. While the user is browsing, the system is always ready to receive and immediately display an alert if one is sent by the DAAM. D. Communications Protocol A necessary aspect of our system is the communications protocol that we designed. We devised eight different message types to facilitate communication between the DAAM and the ICUClient. The AlertMsg, DataMsg, NodeListMsg, and SnapshotMsg types are all used by the DAAM to transmit data to the ICUClient. The NodeRequestMsg, RefreshMsg, and SensorRequestMsg types are used by the ICUClient to request information from the DAAM. All of these message types are subordinates to the parent PalmMsg class. Table 1 has a brief description of all of the message types.

TABLE I MESSAGE TYPES Type

Purpose

PalmMsg NodeListMsg SnapshotMsg DataMsg AlertMsg RefreshMsg NodeRequestMsg SensorRequestMsg

Parent class to all types. Send list of active nodes to ICUClient. Send node snapshot to ICUClient. Send streaming data point to ICUClient. Send node alert to ICUClient. Request update of node list from DAAM. Request node snapshot from DAAM. Request streaming data from DAAM.

III. DESIGN PROCESS A. Wireless Sensor Network The first phase of implementation consisted of setting up and troubleshooting our WSN test bed. Eight Mica2 motes (four of which were paired with the MTS310 sensor boards) and four Mica2Dot motes (two of which had MTS510 sensor boards) were configured into a sensor network. An MIB600 Ethernet gateway (with one of the eight Mica2 motes attached) was configured as a bridge between the wireless and wired portions of the network. We began by installing the Cygwin and TinyOS environments onto a development machine. Next, we loaded the Surge Reliable Route routing algorithm onto the motes, and deployed those motes in an indoor testing environment. We used the

vendor-provided applications to graphically visualize the network and ensure that all nodes were operating correctly. We then placed nodes in different arrangements and locations to test the ad hoc capacity of the network, and reduced the transmission power to force the nodes to route over multiple hops. Once we had ensured that the network was behaving as we expected, we were free to move on to the DAAM. B. Data Acquisition and Alert Module Our first attempt involved a Unix-based application, to take advantage of the fact that the underlying sensor network protocols are programmed in a Unix environment. We attempted to create Berkeley sockets, running in a Cygwin bash shell on a Microsoft Windows machine, building on examples found in [15]. Due to various difficulties in programming the ICUClient on the Palm PDA in the C programming language, we decided to implement a Java solution. We began by gathering raw transmissions from the nodes and deciphering the contents using the approach in [16]. The contents of the packets were parsed and verified using vendor-supplied tools. The DAAM was loaded onto a Dell Optiplex GX240 with a 1.70 GHz Pentium 4 processor and 512MB ram, running Windows XP. MySQL Server 4.1 was also loaded onto the Dell to run the database, and TinyOS 1.1.13 with Cygwin was installed to program the motes and compile and run the DAAM software. In addition, the Serial Forwarder and Surge-View applications provided by Crossbow, Inc. were loaded onto this computer. The next step in the implementation process was the creation of the MySQL database and setting permissions for access. Next, we interfaced the Logger with the MySQL database. Once we verified that packets were being appropriately archived in the database, we set out to handle the ‘emergency conditions’ aspect of monitoring data. The first iteration contained the safe ranges hard coded into the Logger, until we could verify that our logic was correct. Then, we created a table in the MySQL database to contain these values, and updated the Logger software to access the MySQL database to retrieve safe ranges for each data set. Currently, the safe ranges are retrieved with every single data point, resulting in a large amount of requests to the MySQL database. This is acceptable because both the Logger and the database are running on a common machine, and this allows a certain amount of robustness to the system, in that a change to the safe ranges is immediately reflected in the system, without the need for a reboot. We initially set the system to output a warning to the monitor whenever an alert is generated, for debugging purposes. The PalmServer module itself is straightforward, consisting of only three main parts. The first is a socket server, which receives incoming socket connections and reallocates each one to an open port. The second part is an array of PalmServerThread processes, one of which is instantiated with each new connection, and the third part is an alert function, which is called by the Logger module, whenever the users need to be alerted of an emergency.

The second module is the PalmServerThread. The PalmServerThread begins by querying the MySQL database for a list of all the currently active nodes (currently defined as those having sent a transmission in the last five minutes). This list is then sent to the user. Then, the PalmServerThread enters a loop that waits for incoming requests, and responds appropriately. If streaming data is required, the PalmServerThread responds by creating an instance of the UpdateThread module to execute the request. The PalmServerThread is also ready to transmit an alert to the ICUClient immediately upon notification of an emergency. The final module is the UpdateThread. The sole purpose of this module is to stream data to the user. Upon instantiation, the module is given the identification number of a node, and a sensor attached to that node. The thread queries the database for all recent packets transmitted from that node, and then transmits the data points, in order, to the user. This process is repeated indefinitely, until the parent PalmServerThread terminates it. C. ICUClient: Development Environment Selection Before choosing a development environment, we researched three different applications: CodeWarrior, Onboard C, and Palm OS Developer Suite (PODS). We chose to begin with PODS. Using C to program Palm OS applications turned out to be a very difficult proposition. After several failed attempts in using the C communication libraries, we discovered a version of Java, Java 2 Micro Edition (J2ME), which would simplify software development on the Palm OS platform. Detailed instructions on the development of J2ME MIDlets for Palm OS can be found in [11], and an overview of the MIDP 2.0 hierarchy is found at [18]. D. ICUClient: Component Design The ICUClient is made of eight classes. The ICUClientMIDlet class is the backbone of the entire client program; it has methods that control the visual flow of the program. Next is the Communicator; its most important functions are creating a connection to the host server and handling all communications with the server. The WelcomeScreen class, NodeListScreen class, SnapshotScreen class, IPConfigScreen class, and DataScreen class are all used for display. These screens were developed much like an applet is when using normal Java. For these screens the graphical representation is set up along with listeners attached to GUI components. The Graph class is used exclusively by the DataScreen in order to display real time information in a graphical format for the end user. The WelcomeScreen is the first screen seen by the user upon starting the ICUClient application. Once at the WelcomeScreen, the user has two options: connect, or configure the connection settings for the DAAM. An attempt to connect will use the openComms method from the ICUClientMIDlet class, which in turn uses the Communicator class in order to open and establish a connection; it also initializes the forms that will later be used

to display data received through communication. The second option takes the user to the IPConfigScreen. The IPConfigScreen is a simple, but important screen. It allows the user to change the IP address and port number of the desired host server, the DAAM. It also validates the IP address and the port number. After connection the user sees the NodeListScreen. The NodeListScreen displays the nodes that are actively connected and allows the user to select a node, in order to see more detailed information about that node. The NodeListScreen class uses the NodeListMsg class to place a request for detailed information. The user also has the option of requesting a refresh of the node list or returning to the WelcomeScreen. The SnapshotScreen (figure 4) displays more detailed information about a sensor once it is selected. It displays the most recent values that have been received from all of the sensors attached to a node. From this list, a specific sensor can be selected which will then cause the transmission of a request for streaming data. In addition, the user has the option to return to the NodeListScreen, refresh the snapshot, or return home to the WelcomeScreen.

wireless sensor nodes results in an automatic reconfiguration of the network topology. The system generates alerts when the sensor data falls outside the determined “safe-range”, and routes the alerts correctly to the Palm PDA. Sensor data can be viewed on the PDA as long as the PDA is within range of an accessible IEEE 802.11b/g network. Testing was conducted incrementally alongside development. There were five major milestones in the testing and verification stage. The first milestone was to correctly parse the TinyOS packets coming off the wireless links. The second, third, and fourth milestones include displaying the Node List, Node Snapshot, and Alerts received from the DAAM on the ICUClient. The final milestone was the correct graphical display of streaming real time data from the DAAM (see figure 5).

Fig. 5. ICUClient screenshot showing display of streaming data from sensor (digitized light sensor readings vs. time).

Fig. 4. ICUClient screenshot showing snapshot of node 9’s sensors.

The final aspect of this implementation, and the hardest part in the ICUClient component, is the receipt and display of streaming data from the server. We first created the DataScreen object, an extension of the J2ME Canvas class, and decided what text we would like displayed along with the graph. Next, we wrote the Graph class to generate and display the actual plots. The Graph class is similar to a Java Applet, and it calls various Paint and Draw commands on the portion of the screen dedicated to the plot. A circular array (list) stores the data points efficiently for plotting. The ICUClient software was loaded onto a Palm Tungsten C, running Palm OS 5.2. The ICUClient was connected to the Internet over the Palm PDA’s built-in IEEE 802.11b radio. IV. CURRENT STATE OF IMPLEMENTATION At present, the prototype hospital ICU patient monitoring system is fully functional and works as designed. The system has been tested using data generated asynchronously by environmental sensors (in lieu of actual patient monitoring sensors) in real time. The sensor data is collected and relayed correctly over an ad hoc network with multi-hop wireless links. The geographical displacement of the

A major implementation problem that we faced involves unstable firmware on the MIB600 gateway board. The MIB600 board occasionally dropped network connections requiring our DAAM to be rebooted. This is an issue that needs to be addressed in the future. High levels of network congestion can also cause connections to time out. Thus, to provide for such an eventuality, some amount of robustness in the software is necessary, but not directly addressed in this work. Another concern of note is that the wireless channels used by the nodes are susceptible to RF interference. A suitable physical layer needs to be selected to make these channels more resistant to interference-related failures. An important aspect of our design is the independence of the proposed framework (and related communication protocols) from the physical (radio) layer, thus increasing its versatility. Finally, security-related aspects concerning the gathering and transportation of patient data must be addressed to ensure compliance with HIPPA regulations, and are a topic for future work [3]. V. CONCLUSION In this paper, we present a broad framework for the automated monitoring of patients in a hospital ICU environment. The proposed framework has a straightforward implementation and does not require the development of any specialized hardware, and is thus expected to be costeffective. A proof-of-concept system was also designed and implemented using off-the-shelf components. The system

has the potential to reduce the response time of medical personnel in medical emergencies in hospital ICUs. It does does not rely on any specific physical (radio) layer, and is thus open enough for use with a wide variety of frequencies and modulation schemes such as FDMA, TDMA, OFDM, etc. The only remaining hurdles that we anticipate are (a) the physical interfacing of existing hospital sensing equipment with the radio nodes of the ad-hoc sensor network, and (b) the transmission and storage of patient information in a manner that complies with HIPAA regulations. ACKNOWLEDGMENT The authors wish to thank Dr. Elliot Sloane (C & F Department, Villanova University) for his enthusiastic support and guidance. REFERENCES [1]

[2]

[3]

[4]

[5]

[6] [7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

Anu Bhargava, Mike Zoltowiski, “Sensor and Wireless Communications for Medical Care,” in Proc. 14th Int’l Workshop on Database and Expert Systems Applications (DEXA ’03), pp.956-960, 2003. Tia Gao, Dan Greenspan, Matt Welsh, Radford R. Juang, Alex Alm, “Vital Signs Monitoring and Patient Tracking Over a Wireless Network,” in Proc. 27th Annual Int’l Conf. of the IEEE EMBS, Shanghai, September 2005. HIPAA Basics: Medical Privacy in the Electronic Age, December 2005, Privacy Rights Clearinghouse, 19 February 2006, . Kevin Hung, Yuan-Ting Zhang, “Implementation of a WAP-Based Telemedicine System for Patient Monitoring,” IEEE Trans. Information Technology in Biomedicine, Vol. 7, No. 2, pp.101-107, 2003. IEEE 754: Standard Floating-Point Arithmetic, 11 Feb. 2006, IEEE Standards Group 754, 22 Feb. 2006, . KY Kong, CY Ng, K Ong, “Web-Based Monitoring of Real-Time ECG Data,” Computers in Cardiology, Vol. 27, pp.189-192, 2000. Srdjan Krco, Vlado Delic, “Personal Wireless Sensor Network for Mobile Health Care Monitoring,” in Proc. 6th Int’l Conf. on Telecommunications in Modern Satellite, Cable and Broadcasting Service, Serbia and Montenegro, Nis, 1-3 Oct 2003. Ho Sung Lee, Seung Hun Park, Eung Je Woo, “Remote Patient Monitoring Service through World-WideWeb,” in Proc. 19th Int’l Conf. of IEEE/EMBS, pp.928-931, 1997. Yuan-Hsiang Lin, I-Chien Jan, Patrick Chow-In Ko, Yen-Yu Chen, Jau-Min Wong, Gwo-Jen Jan, “A Wireless PDA-Based Physiological Monitoring System for Patient Transport,” IEEE Trans. Information Technology in Biomedicine, Vol. 8, No. 4, pp.439-447, 2004. Farah Magrabi, Nigel H. Lovell, Branko G. Celler, “A web-based approach for electrocardiogram monitoring in the home,” Int’l Journal of Medical Informatics, Vol. 54, pp.145-153, 1999. Mahmoud, Qusay, “MIDP for Palm OS 1.0: Developing Java Applications for Palm OS Devices,” Sun Developer Network, January 2002, . SP Nelwan, TB van Dam, P Klootwijk, SH Meig, “Ubiquitous Mobile Access to Real-time Patient Monitoring Data,” Computers in Cardiology, Vol. 29, pp.557-560, 2002. Seung-Hun Park, Jung-Hyun Park, Se-Hyun Ryu, Taegwon Jeong, Hyung-Ho Lee, Chu-Hwan Yim, “Real-Time Monitoring of Patients on Remote Sites,” in Proc.20th Annual Int’l Conf. of IEEE/EMBS, pp.1321-1325, 1998. C.S. Pattichis, E. Kyriacou, S. Voskarides, M.S. Pattichis, R. Istepanian, C.N. Schizas, “Wireless Telemedicine Systems: An Overview,” IEEE Antennas and Propagation Magazine, Vol. 44, No. 2, pp.143-153, April 2002.

[15] Stevens, W. Richard, Unix Network Programming, Prentice Hall: New York, 1990. [16] Thorn, Jeff, “Deciphering TinyOS Serial Packets,” Octave Tech Brief #5-01, 10 March 2005, . [17] Peter Varady, Zoltan Benyo, Balazs Benyo, “An Open Architecture Patient Monitoring System Using Standard Technologies,” IEEE Trans. Information Technology in Biomedicine, Vol. 6, No. 1, pp.9598, 2002. [18] “Version 2.0 of MIDP Specification,” Sun Microsystems, 2002, .

Suggest Documents