Keywords

Introduction

Nowadays, smartphones are in widespread use and enough to replace the feature phones [1]. With the smartphones growth, the applications are explosive increasing. The field of smartphones applications appeals lots of developers, because the operating systems of smartphones allow users to install unofficial applications on the OS, moreover providing the application market for developers to sell their own applications. There are several operating systems, Google Android, Apple iOS, Windows Phone which have its own application store, Google Play Store, Apple App Store, Windows Phone Apps store respectively.

The Population aged 65 and above has increased notably over time. According to Taiwan Ministry of the Interior, in the end of 2012 the Population aged 65 and above has occupied 11.15 % of Taiwan population [2]. Taiwan has become aging society. Furthermore, the elder need more care, especially in health care. Therefore health check becomes increasingly important. On the other hand, people in Taiwan are suffering from chronic disease for a long time. Hypertension, hyperlipidemia, diabetes, cancer, for example, are some of the main chronic diseases. In the 2011 the Statistics of Causes of Death show that chronic diseases occupy up to 75 % of total causes of death [3]. Besides, the percent of elder having chronic diseases is higher than younger. It infers health care for elder is considerably important. To prevent chronic diseases or as therapy, regular health check is a useful method. Moreover, regular health check is not only for this way. There are lots of benefits of regular health check, such as detection of disease symptom, earlier treatment, and so on.

Android is the smartphone market leader [4]. To integrate our medical devices with smartphone applications. We have developed the health check application for Android. Nonetheless, it is not enough, there are other smartphone operating systems, iOS, Windows Phone for example. In order to fulfill the usage form other operating systems, we have to develop other versions for them. Therefore we use PhoneGap as the tool to develop the cross-platform application with Web Language, HTML, JavaScript, and CSS. We do not have to know the programming language for android, iOS, and Windows Phone, yet we can fulfill the application for all operation systems. The advantage is decreasing the development cost, and simpler management.

In order to storing the data of our application, we use database to achieve our goal. PhoneGap storage API is based on the W3C Web SQL Database Specification and W3C Web Storage API Specification. Some devices already provide an implementation of this specification. This is why we using SQLite to implement our application [5].

We can view the health check records in the table by loading data from SQLite database, but sometimes the data is considerable that are impossible to view specifically. Instead, line chart is better to show the overview. The line chart in our app is written in JavaScript and uses the new canvas element to load graph data from SQLite database.

The mobile devices and the networks are inseparable. We cannot leave our application working on its own, because we should make differences between other applications. What we should do is that the devices can always exchange data with a remote server where can store data permanently. In this way, we integrate distributed data of the same person in a remote server, and then the users do not need to rely on a single device and they could access their data anytime everywhere.

Facebook, for example, provides users to share their statuses, photos, and videos on their post wall. Their friends can also like or reply the statuses. Therefore we integrate the feature with ours application. Patients can upload their photos, videos to cloud servers, sharing with their friends. Moreover adding patients’ family or doctors as friend and uploading patients’ health check report can let patients’ family or doctors know their health condition, instead of sending email. Personal Health Assistant becomes not only health check recorder but also a social platform sharing photos, video, and even their health check report.

Ultimately, we fulfill our proposal. Patients could take health check anytime everywhere by using medical device and view the result in their smartphones, including body analysis, body temperature, blood glucose, and blood pressure, even sharing them with their doctors, family or friends to let them know patients’ condition. We think the application can provide integration of the four medical detection devices, which are body analysis, body temperature, blood glucose, and blood pressure respectively. Also, it has the advantages of providing portable, convenient. Moreover, chart view is a feature providing patients or doctor to view obviously. The personal health assistant aims to play a necessary role in elders’ and patients’ daily life.

Related Work

A healthcare application should apply to everyone including patients and common people. In other words, we believe that monitoring health status by self in the daily life is the responsibility for everyone, so our application design to make more motive power for users to take care of their health through social networks. Some market-available healthcare products or applications did not offer to common users. For instance, there is an application [6] of observing and analyzing ECG (Electrocardiography) waveforms on Android devices. The application tends to give medical staff a convenient and portable platform to see the heart status of patients since traditional devices such as PCs which are too heavy to carry. ECG waveforms analyzing is unusual to common people, therefore, they could not recognize what happened on his status. Our application does not aim to specific people but common people who wonder their health status.

Another paper [7] introduces their product how to measure elderly’s blood pressure (BP) and pulse rate. Here we have more measurement devices such as blood pressure (BP), Blood Glucose (BG), Body Temperature (BT) and user can record data about the Body Analysis Scale (BAS) by inputting BMI, weight and etcetera. Most important of all, the Daily Check App can send the application data via any useable network (3G, Wi-Fi) to the server, and the collected statics in server can represent to others via “Social Network”. “Social Network” is a private platform allows you to post your healthy situation or chat with friend online, sharing every special moment to your old friends or families.

Ultimately, we want to view our health check on the go with diversity data of our health, so our team provides an application to collect and analyze the data and convert it into line chart. Above of functions available on the market in some application, but we want to create more interaction during the people and be attentive to others. For this purpose that everyone can share their health check and some photos or videos to their friend, nurses, and doctors to tell the user’s condition and health recent, so we combine the social network.

Personal Health Assistant System

System Architecture

The entire system is based on PhoneGap which is a solution of the development of cross-platform mobile applications. PhoneGap allows us build user interface with web technologies such as HTML5, CSS3, and JavaScript. But there is a little difference between mobile applications design and website design. For example, mobile applications have to consider its screen size and its work flow which is different from web design. Consequently, our team imported a JavaScript framework—jQuery Mobile which is a unified, HTML5-based user interface system. JQuery Mobile solves the problems of responsive pages [8] to apply many distinct kinds of screen sizes. Besides, jQuery Mobile used AJAX technology on switching between pages. With combination of PhoneGap and jQuery Mobile, we could briefly build the entire architecture and the user interface. Moreover, it also keeps a good user experience [9].

Another feature of jQuery Mobile is that it provides many essential components of user interface which has been styled, and then we can simply design buttons, header, and footer and so on.

In the start page of the application, we directly place six large buttons lead to each measure pages of health status and setting page (Fig. 1). At each measure page, we divide it into four parts: Input, Data, Chart and Email, and these parts separately provide distinct functions. For this reason, we design four tabs on the top to switching these functions (Figs. 2 and 3). At the last, we also have a setting page for configurations, and a Trend Chart page to integrate all charts of measures in one page to see an entire situation of health about self.

Fig. 1
figure 1

Start page

Fig. 2
figure 2

Blood glucose page

Fig. 3
figure 3

Data tab-page

For the input, we provide three ways to obtain measured value:

  1. 1.

    Users manually key in data.

  2. 2.

    Receive the data via Bluetooth protocol from the measure device

  3. 3.

    Receive the data via NFC protocol from the measure device

See Fig. 3, users can simply tap one of three buttons to obtain input and store into a database. For data display, the Data function will list all records from the database. For a run chart, the Chart functions provide a clear chart composed of all records. In the end, the Email function could send an E-mail contains weekly or monthly records to a doctor or someone by keying in an E-mail address.

Consequently the Fig. 4 show the hierarchy chart of our user interface design.

Fig. 4
figure 4

Hierarchy chart of UI design

Storage on Smart Phones

SQLite is a relational database management system contained in a small C programming library. In contrast with other database management systems, SQLite is not a separate process that is accessed from the client application, but an integral part of it.

SQLite is ACID-compliant and implements most of the SQL standard, using a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity.

SQLite is a popular choice as embedded database for local/client storage in application software such as web browsers. It is arguably the most widely deployed database engine, as it is used today by several widespread browsers, operating systems, and embedded systems, among others. SQLite has many bindings to programming languages. The source code for SQLite is in the public domain.

Display Chart on Smart Phones

For the purpose of data visualization on different platforms, we use up-to-date JavaScript and HTML5 technologies to draw the graph. JavaScript and now HTML5 canvas allow for quick and easy 2D drawing and are built into all modern browsers. HTML5 Canvas is also supported by all modern browsers and mobile devices meaning our charts and graphs will be seen by the widest possible number of users. Let’s briefly introduce HTML5 canvas and JavaScript.

HTML5 Canvas

HTML5 canvas is a new HTML tag. It allows bitmap drawing and is controlled by JavaScript. In other word, it likes a piece of paper which is a part of page and we can draw on it by using JavaScript [10, 11].

Canvas uses a “fire and forget” drawing methodology to renders its graphics directly. If we want to change something, usually we must redraw the entire canvas and this is important when providing animated or interactive charts to users. To conquer this problem, canvas need fast to draw on and very responsive.

When we build a canvas, we have to define a drawable region in HTML code with height and width attributes. JavaScript code will access the area through a set of drawing functions like other common 2D APIs, thus allowing for dynamically generated graphics. Now HTML5 canvas usually is used to build animations, graphs, image composition, and games.

JavaScript

JavaScript is one of interpreted computer programming language. It is also the world’s most popular programming language and implemented as part of web browsers so that client-side script could interact with the user, control the browser, communicate asynchronously and alter the document content that was displayed. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles [12].

By using JavaScript and HTML5 technologies, our application can be cross-platform between iOS and Android and even other mobile operating systems.

In our application, Fig. 5 respectively shows distribution of BT, BG, BP and BAS data over time.

Fig. 5
figure 5

Line charts of BT, BG, BP, and BAS

Cloud and Sociality

What does connecting with could actually do? When the data was sent to a remote server, the users can watch their records and charts directly. On the other hand, users do not even have anything but a browser; they could access their records anywhere. The result is that promotes the users’ data portability.

On the implementation of the client side, we used PhoneGap Connection API to detect whether the Wi-Fi or 3G/4G enabled. If there are data which are not been uploaded, the client will send a HTTP request to the web server and upload remain parts of data in the SQLite database.

On the server side, we built the environment by LAMP [13] which is a web service bundle to process all requests from clients. We write a processor in PHP to receive requests and send back responses. Later, the processor will store the uploaded data to the MySQL database. Finally, the data will be presented with records or charts on the web pages with the help of a JavaScript library of charts. With charts, users could easily understand their health condition that is consistent with the mobile application.

IMS [14], IP Multimedia Subsystem, is an architectural framework for delivering IP multimedia services. The users can connect to IMS in various ways, such as via WLAN or 3G/4G, so does the IMS terminals may be mobile phones, PDAs, or computers. Therefore, we establish an IMS server in a Linux system. The users can have voice communications or video communications with their friends through our IMS server, following the SIP (Session Initiation Protocol) [15]. It provides the function like Skype allowing patients to chat together or share the experience to each other and help patients feel less lonely.

Scenario of System

Due to the implementation mentioned above, we can have a scenario for our system (Fig. 6). As far as the patients who need health care concerned, our system provide that not only patients can take health checks at home and uploading the result to the cloud server, but also the doctors can review the patients’ reports. Furthermore, patients can use the social part of our application to know the situation of their family or friends. Considering the patients who are elder are not capable to read amount of words on the screen of smart phones, our social application are designed to only allow users sharing the photos and the videos which was taken recently. Even if the patients’ bad health condition, the patients’ do not lose the chance to know the situation of their family or friends.

Fig. 6
figure 6

Scenario of system

Discussion

As far as elder is concerned, they were suffer from disease of every variety. Health condition needs to be considered anytime. Body analysis, body temperature, blood glucose, and blood pressure are the common health condition. By observing the value of them, we can discover the difference from previous data, even detecting the chronic diseases, to achieve the effect of prevention and treatment.

Although, elder can take health check at home, it is difficult to operate the complicated medical device. What they need is the simple and user-friendly way to use. Therefore, using Personal Health Assistant can simplify the complicated operation.

However, there are some difficulties to develop cross-platform application. First, PhoneGap is framework like wrapper that wraps the website with PhoneGap and deploy to the mobile platforms. It means the JavaScript functions are mapped to native function with intermediary. Actually PhoneGap is a web view to view the website which we write with HTML, JavaScript, and CSS. Therefore, comparing with the native application, PhoneGap application has a fatal disadvantage that it is inefficiency and slow. Second, there are some function are not be supported, because website app is not the same as mobile app. Take android for example; Android API use java as standard programing language, but web app is made with HTML not suitable for Android API. The solution is to write plugins that let JavaScript function call native code function. Nonetheless, it is not a good solution, writing plugins means you have to write with native code, against the original intention of cross-platform.

Conclusion

Integrating the smartphone application technology with medical service, and the universality of smartphone make taking health check more convenient and simpler. Therefore, elder or patients are willing to take health check more frequently. It can effectively make people pay close attention to own health.