Вы находитесь на странице: 1из 42

1

Intelligent Mobile Health Monitoring System

1. INTRODUCTION
Pervasive computing is the concept that incorporates computation in our working and living environment in such a way so that the interaction between human and computational devices such as mobile devices or computers becomes extremely natural and the user can get multiple types of data in a totally transparent manner. The potential for pervasive computing is evident in almost every aspect of our lives including the hospital, emergency and critical situations, industry, education, or the hostile battlefield. The use of this technology in the field of health and wellness is known as pervasive health care. Mobile computing describes a new class of mobile computing devices which are becoming omnipresent in everyday life. Handhelds, phones and manifold embedded systems make information access easily available for everyone from anywhere at any time. We termed the integration of mobile computing to pervasive health care as mobile health care. The goal of mobile health care is to provide health care services to anyone at anytime, overcoming the constraints of place, time and character. Mobile health care takes steps to design, develop and evaluate mobile technologies that help citizens participate more closely in their own health care. In many situations people have medical issues which are known to them but are unwilling or unable to reliably go to a physician. Obesity, high blood pressure, irregular heartbeat, or diabetes is examples of such common health problems. In these cases, people are usually advised to periodically visit their doctors for routine medical checkups. But if we can provide them with a smarter and more personalized means through which they can get medical feedback, it will save their valuable time, satisfy their desire for personal control over their own health, and lower the cost of long term medical care. In this paper we present a bio-sensor based mobile health monitoring system named as "Intelligent Mobile Health Monitoring System (IMHMS)" that uses the Wearable Wireless Body/Personal Area Network for collecting data from patients, mining the data, intelligently predicts patient's health status and provides feedback to patients through their mobile devices. The patients will participate in the health care process by their mobile devices and thus can access their health information from
Department of Computer Science & Engineering

2
Intelligent Mobile Health Monitoring System

anywhere any time. Moreover, so far there is no automated medical server used in any of the work related to mobile health care. To maintain the server a large number of specialist are needed for continuous monitoring. The presence of a large number of specialists is not always possible. Moreover in the third world countries like ours specialist without proper knowledge may provide incorrect prescription. That motivates us to work for an intelligent medical server for mobile health care applications that will aid the specialists in the health care. As a large amount of medical data is handled by the server, the server will perform mine and analyze the data. With the result of mining, analysis and suggestions and information provided by the specialists in the critical scenarios the server can learn to provide feedback automatically. Moreover as time grows the server will trained automatically by mining and analyzing data of all the possible health care scenarios and become a real intelligent one. Our main contribution here is the Intelligent Medical Server which is a novel idea in the field of mobile health care.

Department of Computer Science & Engineering

3
Intelligent Mobile Health Monitoring System

2. OBJECTIVES

In intensive care units, there are provisions for continuously monitoring patients. Their heart rates, temperatures etc. are continuously monitored. But in many cases, patients get well and come back to home from hospital. But the disease may return, he may get infected with a new disease, there may be a sudden attack that may cause his death. So in many cases, patients are released from hospital but still they are strongly advised to be under rest and observation for some period of time (from several days to several months). In these cases, IMHMS can be quite handy. Patients of blood pressure frequently get victimized because of sudden change of pressures. It cannot be foreseen and also a normal person cannot be kept under medical observation of a doctor or a hospital all days of a year. Blood pressures change suddenly and can be life-treating. Using IMHMS, they can get alerts when their blood pressure just starts to become high or low. IMHMS collects patient's physiological data through the bio-sensors. The data is aggregated in the sensor network and a summary of the collected data is transmitted to a Patients personal computer or cell phone/PDA. These devices forward data to the medical server for analysis. After the data is analyzed, the medical server provides feedback to the patient's personal computer or cell phone/PDA. The patients can take necessary actions depending on the feedback. Health care through mobile devices with a central medical server is not a newconcept for the developed countries. But the medical server used there is mainly for data storage. But the IMS of IMHMS not only stores data but also use it for automated medical feedback. So for developed countries all the existing central storage server can be replaced easily with IMS. So to integrate IMS with the existing health care services, their central medical server's data needs to be migrated to IMS. Then IMS can intelligently support all the existing health care services. The people of the developing countries extensively use mobile devices but they are not familiar with
Department of Computer Science & Engineering

4
Intelligent Mobile Health Monitoring System

mobile device based intelligent services. So IMHMS can be very handy for them by providing health care services anywhere anytime through their mobile devices. For developing countries, IMHMS can aid physicians and specialists for better treatment of the patients as their whole medical data and treatment history is stored in IMS. Moreover it is not always possible for the patients to avail the services of special care units like ICU (Intensive Care Unit), CCU (Critical Care Unit) due to limited number of such units and money. So in these cases IMHMS can help the patients by providing continuous health monitoring.

Department of Computer Science & Engineering

5
Intelligent Mobile Health Monitoring System

3. SYSTEM ANALYSIS

3.1 EXISTING SYSTEM


During the last few years there has been a significant increase in the number and variety of wearable health monitoring devices, ranging from simple pulse monitors, activity monitors, and portable Holter monitors, to sophisticated and expensive implantable sensors. Traditionally, personal medical monitoring systems, such as Holter monitors, have been used only to collect data. Data processing and analysis are performed offline, making such devices impractical for continual monitoring and early detection of medical disorders. Systems with multiple sensors for physical rehabilitation often feature unwieldy wires between the sensors and the monitoring system. These wires may limit the patient's activity and level of comfort and thus negatively influence the measured results. In addition, individual sensors often operate as stand-alone systems and usually do not offer flexibility and integration with third-party devices. Finally, the existing systems are rarely made affordable. MobiHealth project is going on to build a system for collecting vital body signals and manipulating those in distant health care institutes. The Terva monitoring system had been introduced to collect data related to health condition like blood pressure, temperature, sleep conditions, weight, etc., over quite a long time. Here data has been collected four times a day (morning, noon, evening and night) and saved in the form a TOD ( time-of-day) matrix and analysed later. The whole system has been housed in a suitcase that includes a laptop, blood pressure monitor and several other monitoring devices. As a result, this system loses its mobility and becomes feasible to be used in a static manner in the home. In traditional health care systems,

Department of Computer Science & Engineering

6
Intelligent Mobile Health Monitoring System

transportation is necessary for patients to get doctors review about their present condition. Taking your own BP using a manual blood pressure monitor is difficult.

3.2 PROPOSED SYSTEM


Intelligent Mobile Health Monitoring System demonstrate the capability of mobile devices to provide mobile, low-cost, and efficient remote health monitoring through mobile Web services provisioning approach. The proposed approach shows an agile, flexible, interoperable, and economical alternative to existing remote health monitoring systems. IMHMS collects patient's physiological data through the biosensors. The data is aggregated in the sensor network and a summary of the collected data is transmitted to a Patients personal computer or cell phone/PDA. These devices forward data to the medical server for analysis. After the data is analysed, the medical server provides feedback to the patient's personal computer or cell phone/PDA. The patients can take necessary actions depending on the feedback.

Mobile health care takes steps to design, develop and evaluate mobile technologies that help citizens participate more closely in their own health care. In many situations people have medical issues which are known to them but are unwilling or unable to reliably go to a physician. High blood pressure, or diabetes are examples of such common health problems. In these cases, people are usually advised to visit their doctors for regular medical checkups. Proposed system will save their valuable time, satisfy their desire for personal control over their own health, and lower the cost of long term medical care.

Department of Computer Science & Engineering

7
Intelligent Mobile Health Monitoring System

4. REQUIREMENT SPECIFICATION
4.1 SOFTWARE CONFIGURATION
Platform Operating System Database Supported Development Environment Eclipse, Android SDK Tool, Eclipse ADT Android 2.3 Windows XP or above (32-bit or 64-bit) SQLite

4.2 HARDWARE REQUIREMENTS


Processor CPU Speed Memory Hard Disk Drive Intel Pentium 4 2GHz 128 MB RAM 40 GBytes

4.3 TECHNOLOGY
4.3.1 JAVA Java is a new object-oriented language that is receiving wide attention from both industry and academia. Java was developed by James Gosling and his team at Sun Microsystems in California. The language was based on C and C++ and was originally intended for writing programs that control consumer appliances such as toasters, microwave ovens, and others. The language was first called Oak, named after the oak tree outside of Goslings office, but the name was already taken, so the team renamed it Java. Java is often described as a Web programming language because of its use in writing programs called applets that run within a Web browser. That is, you need a Web browser to execute Java applets. Applets allow more dynamic and flexible dissemination of information on the Internet, and this feature alone makes
Department of Computer Science & Engineering

8
Intelligent Mobile Health Monitoring System

Java an attractive language to learn. However, we are not limited to writing applets in Java. We can write Java applications also. A Java application is a complete standalone program that does not require a Web browser. A Java application is analogous to a program we write in other programming languages. We chose Java for this project mainly for its clean design. The language designers of Java took a minimalist approach; they included only features that are indispensable and eliminated features that they considered excessive or redundant. This minimalist approach makes Java a much easier language to learn than other object-oriented programming languages. Java is an ideal vehicle for learning the fundamentals of object-oriented programming. The Java language can be characterized by all of the following features: Simple and Powerful

The developer of Java based it on C++ programming language, but removed many of the language features that are rarely or often used poorly. Specifically, Java differs from C++ in these ways: Java does not support the structure, union and pointer data types. It does not support typedef or #define. It differs in its handling of certain operators and does not permit operator overloading. It handles command line arguments differently from C to C++. It has a string class as a part of java language package. This differs from the null terminated array of characters as used in C or C++. Unlike other programming systems that provide dozens of complicated ways to perform a simple task, Java provides a small number of clear ways to achieve a given task. Robust Java has the strong memory allocation and automatic garbage collection mechanism. It carries out type checking at both compile and runtime making sure that every data structure has been clearly defined and typed. compiler checks the program for any error and interpreter checks any run time error that every data structure is

Department of Computer Science & Engineering

9
Intelligent Mobile Health Monitoring System

clearly defined and typed. Java manages the memory automatically by using an automatic garbage collector. all the above features make Java language robust.

Secure Since Java works in networked environments, the issue of security is one

that should be of concern to developers. Java does not use memory pointers explicitly. All the programs in java are run under an area known as the sand box. Security manager determines the accessibility options of a class like reading and writing a file to the local disk. Java uses the public key encryption system to allow the java applications to transmit over the internet in the secure encrypted form. The bytecode Verifier checks the classes after loading. No memory pointers Programs run inside the virtual machine sandbox. Array index limit checking Object oriented To be an Object Oriented language, any language must follow at least the four characteristics: Inheritance: It is the process of creating the new classes and using the behavior of the existing classes by extending them just to and adding the additional features as needed. Encapsulation: It is the mechanism of combining the information and providing the abstraction. Polymorphism: As the name suggest one name multiple form, Polymorphism is the way of providing the different functionality by the functions having the same name based on the signatures of the methods. Dynamic binding: Sometimes we don't have the knowledge of objects about their specific types while writing our code. It is the way of providing the maximum functionality to a program about the specific type at runtime.
Department of Computer Science & Engineering

reuse the existing code

10
Intelligent Mobile Health Monitoring System

Architecture neutral The term architectural neutral seems to be weird, but yes Java is an

architectural neutral language as well. The growing popularity of networks makes developers think distributed. In the world of network it is essential that the applications must be able to migrate easily to different computer systems. Not only to computer systems but to a wide variety of hardware architecture and operating system architectures as well. The Java compiler does this by generating byte code instructions, to be easily interpreted on any machine and to be easily translated into native machine code on the fly. The compiler generates an architecture-neutral object file format to enable a Java application to execute anywhere on the network and then the compiled code is executed on many processors, given the presence of the Java runtime system. Platform independent and Portable The concept of Write-once-run-anywhere (known as the Platform

independent) is one of the important key feature of java language that makes java as the most powerful language. Not even a single language is idle to this feature but java is closer to this feature. The programs written on one platform can run on any platform provided the platform must have the JVM. Interpreted When the Java compiler translates the Java source file to byte codes, this byte code class file can be run on any machine that has a Java interpreter or a Java enable browser. This allows the Java code to be written independently of the users platforms. Interpretation also eliminates the compile and run cycle for the client because the byte codes are not specific to a given machine. The byte code can be interpreted on any system that has a Java Virtual Machine (JVM). Another advantage of Java as an interpreted language is its error debugging quality. Due to this any error occurring in the program gets traced. This is how it is different to work with Java. Multithreaded Java was designed to meet the real world requirements of creating interactive, networked programs. To achieve this, Java support Multithreaded
Department of Computer Science & Engineering

11
Intelligent Mobile Health Monitoring System

programming, which allows the user to write programs that perform many functions simultaneously. Multithreading means a single program having different threads executing independently at the same time. Multiple threads execute instructions according to the program code in a process or a program. Multithreading works the similar way as multiple processes run on one computer. Multithreading programming is a very interesting concept in Java. In multithreaded programs not even a single thread disturbs the execution of other thread. Threads are obtained from the pool of available ready to run threads and they run on the system CPUs. This is how multithreading works in Java. Dynamic language Unlike C++ code, which often requires complete recompilation if a parent class is changed, Java uses a method of interface to relieve this dependency. The result is that Java programs can allow for new methods and instances variables in object in library without affecting their dependent client objects. 4.3.2 ANDROID Android is a mobile operating system that is based on a modified version of Linux. It was originally developed by a startup of the same name, Android, Inc. In 2005, as part of its strategy to enter the mobile space, Google purchased Android and took over its development work (as well as its development team). Google wanted Android to be open and free; hence, most of the Android code was released under the open-source Apache License, which means that anyone who wants to use Android can do so by downloading the full Android source code. Moreover, vendors (typically hardware manufacturers) can add their own proprietary extensions to Android and customize Android to differentiate their products from others. This simple development model makes Android very attractive and has thus piqued the interest of many vendors. This has been especially true for companies affected by the phenomenon of Apples iPhone, a hugely successful product that revolutionized the Smartphone industry. Such companies include Motorola and Sony Ericsson, which for many years have been developing their own mobile operating systems. When the iPhone was launched, many of these manufacturers had to
Department of Computer Science & Engineering

12
Intelligent Mobile Health Monitoring System

scramble to find new ways of revitalizing their products. These manufacturers see Android as a solution they will continue to design their own hardware and use Android as the operating system that powers it. The main advantage of adopting Android is that it offers a unified approach to application development. Developers need only develop for Android, and their applications should be able to run on numerous different devices, as long as the devices are powered using Android. In the world of Smart phones, applications are the most important part of the success chain. Device manufacturers therefore see Android as their best hope to challenge the onslaught of the iPhone, which already commands a large base of applications FEATURES OF ANDROID As Android is open source and freely available to manufacturers for customization, there are no fixed hardware and software configurations. However, Android itself supports the following features: Handset layouts : The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional Smartphone layouts. Storage: SQLite, a lightweight relational database, is used for Data storage purposes. Connectivity: Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, and WiMAX. Messaging: SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud to Device Messaging Framework (C2DM) is also a part of Android Push Messaging service. Web browser:

Department of Computer Science & Engineering

13
Intelligent Mobile Health Monitoring System

The web browser available in Android is based on the open-source Web Kit layout engine, coupled with Chrome's V8 JavaScript engine. The browser scores a 93/100 on the Acid3 Test. Java support: While Android applications are written in Java, there's no Java Virtual Machine in the platform and Java byte code is not executed. Java classes get recompiled into Dalvik executable and run on Dalvik virtual machine. Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery powered mobile devices with limited memory and CPU. J2ME support can be provided via third party-application such as the J2ME MIDP Runner. Media support: Android supports the following audio/video/still media formats: H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP. Hardware support: Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor, and GPS Streaming media support: RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) is supported through Adobe Flash Player Plug-in. Apple HTTP Live Streaming is supported through third party media player (Next streaming NexPlayer). Microsoft Smooth Streaming is planned to be supported through the awaited port of Sliver light Plug-in to Android. Adobe Flash HTTP Dynamic Streaming is planned to be supported through an upgrade of the Flash Plug-in. Development environment: Includes a device emulator, tools for debugging, memory and performance profiling, and a Plug-in for the Eclipse IDE. Market:
Department of Computer Science & Engineering

14
Intelligent Mobile Health Monitoring System

Like many phone-based application stores, the Android Market is a catalog of applications that can be downloaded and installed to target hardware over-theair, without the use of a PC. Originally only free applications were supported. Paid-for applications have been available on the Android Market in the United States since 19 February 2009. The Android Market has been expanding rapidly. As of August 3, 2010, it had over 100,000 Android applications for download. There are other markets, such as SlideME and Getjar, but Google's Android Market is the only one whose downloader is installed on every Google Android phone. Multi-touch: Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology).Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively. Multi-tasking : Supports multi-tasking applications. Bluetooth: Support for A2DP and AVRCP were added in version 1.5; sending files (OPP) and accessing the phone book (PBAP) were added in version 2.0; and voice dialing and sending contacts between phones were added in version 2.2. Video calling: Only supported handsets with a front facing camera support video calling (like the Samsung i9000 GalaxyS). Multitasking of applications is available. Voice based features: Google search through Voice is available as Search Input since initial release. Also launched Voice actions supported on Android 2.2 onwards. Tethering: Android supports tethering, which allows a phone to be used as a wireless/wired hotspot (All 2.2 Froyo phones, unofficial on phones running 1.6 or higher via applications available in the Android Market, e.g. PdaNet). To allow a
Department of Computer Science & Engineering

15
Intelligent Mobile Health Monitoring System

laptop to share the 3G connection on Android phone software may need to be installed on both the phone and the laptop.

4.3.3 SQLITE SQLite is available on every Android device. Using a SQLite database in Android does not require any database setup or administration. Only need is to define the SQL statements for creating and updating the database. Afterwards the database is automatically managed by the Android platform. Access to a SQLite database involves accessing the file system. This can be slow. Therefore it is recommended to perform database operations asynchronously, for example inside the AsyncTask class. If an application creates a database, this database is by default saved in the directory DATA/data/APP_NAME/databases/FILENAME. The parts of the above directory are constructed based on the following rules. DATA is the path which the Environment.getDataDirectory() method returns. APP_NAME is the application name. FILENAME is the name specified in the application code for the database. SQLITE ARCHITECTURE Packages The package android.database contains all general classes for working with databases. android.database.sqlite contains the SQLite specific classes. SQLiteOpenHelper To create and upgrade a database in an Android application one usually needs a subclass SQLiteOpenHelper. In the constructor of the subclass call the super() method of SQLiteOpenHelper has to be called, specifying the database name and the current database version.

Department of Computer Science & Engineering

16
Intelligent Mobile Health Monitoring System

In this class developer need to override the onCreate() and onUpgrade() methods. onCreate() is called by the framework, if the database does not exists. onUpgrade() is called, if the database version is increased in the application code. This method allows to update the database schema. Both methods receive an SQLiteDatabase object as parameter which represents the database. SQLiteOpenHelper provides the methods getReadableDatabase() and getWriteableDatabase() to get access to an SQLiteDatabase object; either in read or write mode. The database tables should use the identifier _id for the primary key of the table. Several Android functions rely on this standard. It is best practice to create a separate class per table. This class defines static onCreate() and onUpgrade() methods. These methods are called in the corresponding methods of SQLiteOpenHelper. This way the implementation of SQLiteOpenHelper will stay readable, even if there are several tables. SQLiteDatabase SQLiteDatabase is the base class for working with a SQLite database in Android and provides methods to open, query, update and close the database. More specifically SQLiteDatabase provides the insert(), update() and delete() methods. In addition it provides the execSQL() method, which allows to execute an SQL statement directly. The object ContentValues allows to define key/values. The "key" represents the table column identifier and the "value" represents the content for the table record in this column. ContentValues can be used for inserts and updates of database entries. Queries can be created via the rawQuery() and query() methods or via the SQLiteQueryBuilder class . rawQuery() directly accepts an SQL select statement as input. query() provides a structured interface for specifying the SQL query. SQLiteQueryBuilder is a convenience class that helps to build SQL queries.

Department of Computer Science & Engineering

17
Intelligent Mobile Health Monitoring System

5. DESIGN, IMPLEMENTATION & TESTING


5.1 SYSTEM ANALYSIS AND DESIGN
Systems are created to solve problems. One can think of the system approach as an organized way of dealing with a problem. A collection of components that work together to realize some objective forms a system. Basically there are three major components in every system, namely input, processing and output.

Input

process
ppppocess

output

Fig.5.1: System Organized collection of Objects

System analysis and design refers to the process of examining a situation with the intent of improving it through better procedures and methods. System design is the process of planning a new system or one to replace or complement an existing system and determine how computers can best be used to make its operations more effective. System Analysis then is the process of gathering and interpreting facts, diagnosing problems and using the information to recommend improvements to the
Department of Computer Science & Engineering

18
Intelligent Mobile Health Monitoring System

system. Before development of any project can be pursued, a system study is conducted to learn the details of the current business situation. Information gathered through the study forms the basic for creating alternative design strategies. Management selects strategies pursue. System Analysis is about understanding situations, not solving problems. Effective analysis includes investigation and questioning to learn how a system currently operates and to identify the requirements users have for a new or modified one. Only after analysis, analysts fully understand the system, and they are able to analyses it and assemble recommendation for system design. For designing and development of any good project analysis of an existing system is a pre-requisite. The existing system is studied to know the extent of computerization required. Therefore, a detailed analysis of the existing system is conducted. For this the system is broken down into various subsystems and they are studied closely, problem areas are identified, information collected with enough analysis. They improve the manner in which the development occurs and influence the quality of the final results. Tools extend the capability of the system Analysis in three ways 1. 2. 3. Improve Productivity Improve Effectiveness Improve Information System Quality

5.1.1 DEFINITION OF PROBLEM


A detailed study about the system was carried out. The study of the system gives insight into the structure and functioning of the system. The system study gives an idea of the use and management requirements.

5.1.2 SYSTEM DEVELOPMENT LIFE CYCLE

Department of Computer Science & Engineering

19
Intelligent Mobile Health Monitoring System

The Systems Development Life Cycle (SDLC) is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. In software engineering the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system: the software development process. Systems Development Life Cycle (SDLC) is a process used by a systems analyst to develop an information system, including requirements, validation, training, and user (stakeholder) ownership. Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently in the current and planned Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance. Computer systems are complex and often (especially with the recent rise of Service-Oriented Architecture) link multiple traditional systems potentially supplied by different software vendors. To manage this level of complexity, a number of SDLC models or methodologies have been created, such as "waterfall"; "spiral"; "Agile software development"; "rapid prototyping"; "incremental"; and "synchronize and stabilize". In project management a project can be defined both with a project life cycle (PLC) and an SDLC, during which slightly different activities occur. According to Taylor (2004) "The Project Life Cycle encompasses all the activities of the project, while the systems development life cycle focuses on realizing the product requirements".

5.1.3 SYSTEMS DEVELOPMENT PHASES


Department of Computer Science & Engineering

20
Intelligent Mobile Health Monitoring System

The System Development Life Cycle framework provides a sequence of activities for system designers and developers to follow. It consists of a set of steps or phases in which each phase of the SDLC uses the results of the previous one. A Systems Development Life Cycle (SDLC) adheres to important phases that are essential for developers, such as planning, analysis, design, and implementation. A number of system development life cycle models like: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize and stabilize. The oldest of these, and the best known, is the waterfall model is given below.

System study Maintenance Software Implementation Feasibility study

development

System Analysis

Testing

System Design

Coding

Fig. Different phases of Software development Life Cycle These stages can be characterized and divided up in different ways, including the following: Project planning, feasibility study: Establishes a high-level view of the intended project and determines its goals.
Department of Computer Science & Engineering

21
Intelligent Mobile Health Monitoring System

Systems analysis, requirements definition: Defines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo code and other documentation. Implementation: The real code is written here. Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability. Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business. Maintenance: changes, correction, additions, moves to a different computing platform and more. This is the least glamorous and perhaps most important step of all, goes on seemingly forever.

5.2. DATABASE DESIGN


Database design is the process of producing a detailed data model of database. This logical data model contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a Data Definition Language, which can then be used to create a database. A fully attributed data model contains detailed attributes for each entity. The term database design can be used to describe many different parts of the design of an overall database system. Principally, and most correctly, it can be thought of as the logical design of the base data structures used to store the data. In
Department of Computer Science & Engineering

22
Intelligent Mobile Health Monitoring System

the relational model these are the tables and views. In an object database the entities and relationships map directly to object classes and named relationships. However, the term database design could also be used to apply to the overall process of designing, not just the base data structures, but also the forms and queries used as part of the overall database application within the database management system (DBMS). The process of doing database design generally consists of a number of steps which will be carried out by the database designer. Usually, the designer must: Determine the relationships between the different data elements.

Superimpose a logical structure upon the data on the basis of these relationships

5.2.1 THE DESIGN PROCESS


The design process consists of the following steps: Determine the purpose of your database - This helps prepare you for the remaining steps. Find and organize the information required - Gather all of the types of information you might want to record in the database, such as product name and order number. Divide the information into tables - Divide your information items into major entities or subjects, such as Products or Orders. Each subject then becomes a table. Turn information items into columns - Decide what information you want to store in each table. Each item becomes a field, and is displayed as a column in the table. For example, an Employees table might include fields such as Last Name and Hire Date.
Department of Computer Science & Engineering

23
Intelligent Mobile Health Monitoring System

Specify primary keys - Choose each tables primary key. The primary key is a column that is used to uniquely identify each row. An example might be Product ID or Order ID. Set up the table relationships - Look at each table and decide how the data in one table is related to the data in other tables. Add fields to tables or create new tables to clarify the relationships, as necessary. Refine your design - Analyze your design for errors. Create the tables and add a few records of sample data. See if you can get the results you want from your tables. Make adjustments to the design, as needed. Apply the normalization rules - Apply the data normalization rules to see if your tables are structured correctly. Make adjustments to the tables.

Normalization Normalization is essentially the process of taking a wide table with lots of columns but few rows and redesigning it as several narrow tables with fewer columns but more rows. Forms of Normalization: Relational database theorists have divided normalization into several rules called normal forms. First Normal form Moving data into separate table where the data in each table is of similar type and giving each table a primary key do the eliminates repeating groups of data. Second Normal Form First normal form table can be converted to second normal form by taking out data that is only dependent on a part of the key.
Department of Computer Science & Engineering

24
Intelligent Mobile Health Monitoring System

Third Normal Form Third normal form means getting ride on of anything in the table that does not d depend solely on primary key.

5.3 SYSTEM IMPLEMENTATION


The purpose of Prepare for System Implementation is to take all possible steps to ensure that the upcoming system deployment and transition occurs smoothly, efficiently, and flawlessly. In the implementation of any new system, it is necessary to ensure. During System Implementation it is essential that everyone involved be absolutely synchronized with the deployment plan and with each other. Often the performance of deployment efforts impacts many of the Performing Organizations normal business operations. A smooth deployment requires strong leadership, planning, and communications. By this point in the project lifecycle, the team will have spent countless hours devising and refining the steps to be followed. During this preparation process the Project Manager must verify that all conditions that must be met prior to initiating deployment activities have been met, and that the final green light is on for the team to proceed. 5.3.1 Characteristics of Implementation Abstraction Abstraction deals with the ability of an implementation to allow the programmer to ignore the portion of details that is not important at the current level consideration. Each of the three Kinds of abstraction control, data and process should present in the code. Modularization It requires as partitioning the implementation, with each abstraction occupying its own separate and identifiable unit.
Department of Computer Science & Engineering

25
Intelligent Mobile Health Monitoring System

System Management The Remote System Administration service offers an attractive alternative. It reduces or may even eliminate the need for on-site support staff by performing the entire spectrum of system management functions, remotely, or by providing any combination of on-site and remote services that fits to business needs. A Cost-Effective Management Solution System Administration is a cost-effective way to solve in IT management issues. Whether the lack an in-house system administrator, have a system administrator without skills, or simply find that there are too many tasks for too few staff members, Remote System Administration provides an efficient solution. Maximize System Availability with Proactive Problem Detection Remote diagnostics package enables admin to gather the system functions and proactively address. The technology that monitor machine to detect its current conditions, It is not only for a single system or group of systems environmental conditions. This leverages to maximize system availability and support specialists monitor login attempts, user processes, and the performance and availability of designated systems. Detailed Reporting for More Effective System Administration Contract Remote System Administration customers receive weekly reports documenting day-to-day system activity to give insight into system usage and performance patterns. Reports include system trend analysis, call volume, downtime patterns, security break-ins, failed logins, system availability, load peaks, resource shortages, and performance measurements. Thorough Pre-Implementation Assessment A thorough site assessment to determine specific requirements is completed prior to initiating System Administration. Engineers discuss all procedures with admin before implementation begins. They then install necessary hardware and software, performing whatever reconfigurations.System implementation is the process
Department of Computer Science & Engineering

26
Intelligent Mobile Health Monitoring System

of making the newly designed system fully operational and consistent in performance. The following step has been followed in the implementation of the system.

Department of Computer Science & Engineering

27
Intelligent Mobile Health Monitoring System

5.4 TESTING
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the characteristics. Software testing, depending on the testing method employed, can be implemented at any time in the development process. However, most of the test effort occurs after the requirements have been defined and the coding process has been completed. As such, the methodology of the test is governed by the software development methodology adopted.

5.4.1 TESTING LEVELS


Unit Testing Unit testing also known as component testing, refers to tests that verify the functionality of a specific section of code, usually at the function level. In an objectoriented environment, this is usually at the class level, and the minimal unit tests include the constructors and destructors. These types of tests are usually written by developers as they work on code, to ensure that the specific function is working as expected. One function might have multiple tests, to catch corner cases or other branches in the code. Unit testing alone cannot verify the functionality of a piece of software, but rather is used to assure that the building blocks the software uses work independently of each other. Integration testing Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. Integration works to expose defects in the interfaces and interaction between integrated components (modules). Progressively larger groups of tested software components corresponding to element

Department of Computer Science & Engineering

28
Intelligent Mobile Health Monitoring System

of the architectural design are integrated and tested until the software works as a system. System Testing System testing tests a completely integrated system to verify that it meets its requirements. System verifies that a system is integrated to any external or third-party systems defined in the system requirements.

Acceptance Testing Acceptance testing can mean one of two things: A smoke test is used as an acceptance test prior to introducing a new build to the main testing process, i.e. before integration or regression. Acceptance testing performed by the customer, often in their lab environment on their own hardware, is known as user acceptance testing (UAT). Acceptance testing may be performed as part of the hand-off process between any two phases of development Alpha testing Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing. Beta testing Beta testing comes after alpha testing and can be considered a form of external user acceptance testing. Versions of the software, known as beta versions, are released to a limited audience outside of the programming team. The software is released to groups of people so that further testing can ensure the product has few faults or bugs.

6. DATA FLOW DIAGRAMS


Department of Computer Science & Engineering

29
Intelligent Mobile Health Monitoring System

Data flow diagram is a structured, diagrammatic technique for showing the functions performed by a system and the data flowing into, out of, and within it. The technique exploits a method called top-down expansion to conduct the analysis in a targeted way. There are only four symbols. They are: External entity An external entity is a source or destination of a data flow, which is outside the area of study. The symbol used is an oval containing a meaningful and unique identifier. Process A process shows a transformations or manipulation of data flows within the system. The symbol used is a rectangular box, which contains 4 descriptive elements. Data Flow A data flow shows the flow of information from its source to its destination. A data flow is represented by a line, with arrowheads showing the direction of flow. Each data flow may be referenced by the processes or data stores at its head and tail, or by a description of its contents. Data Store A data store is a holding place for information within the system: It is represented by an open ended narrow rectangle. A Data Flow diagram (DFD) consists of a series of bubbles joined by lines. In the normal Convention, a DFD has four major symbols. Circle A process shows a transformation or manipulation of data flows within the system. The symbol used is a circle, which contains 3 descriptive elements. An identification number appears in the upper left hand corner. The is allocated arbitrarily at the top level and serves
Department of Computer Science & Engineering

30
Intelligent Mobile Health Monitoring System

as a unique reference. A location appears to the right of the identifier and describes where in the system the process takes place. A descriptive title is placed in the center of the box. Arrow A data flow shows the flow of information from its source to its destination. A data flow is represented by a line, with arrowheads showing the direction of flow

Rectangle An external entity is a source or destination of a data flow, which is outside the area of study. The symbol used is an oval containing a meaningful and unique identifier.

Database A data store is a holding place for information within the system. It is represented by an open ended narrow rectangle.

In the proposed project there are three levels of diagram has been drawn to describe the concept of the project. They are Level 0,Level 1, and Level 2 DFD.

Department of Computer Science & Engineering

31
Intelligent Mobile Health Monitoring System

6.1 LEVEL 0

Fig.6.1 Level 0

6.2 LEVEL 1

Department of Computer Science & Engineering

32
Intelligent Mobile Health Monitoring System

Fig.6.2 Level 1

6.3 LEVEL 2

Department of Computer Science & Engineering

33
Intelligent Mobile Health Monitoring System

Fig.6.3 Level 2

Department of Computer Science & Engineering

34
Intelligent Mobile Health Monitoring System

7. MODULES
7.1 SCREENS AND DESIGNS
This module deals with the apps home screen and entire app user interface designs. Android's system UI provides the framework on top of which we build the app. Important aspects include the Home screen experience, global device navigation, and notifications. Home screen Home is a customizable space that houses app shortcuts, folders and widgets. Navigate between different home screen panels by swiping left and right. The Favorites Tray at the bottom always keeps your most important shortcuts and folders in view regardless of which panel is currently showing. Access the entire collection of apps and widgets by touching the All Apps button at the center of the Favorites Tray. All apps screen The All Apps screen lets you browse the entire set of apps and widgets that are installed on your device. Users can drag an app or widget icon from the All Apps screen and place it in any empty location on any Home screen. Recents screen Recents provides an efficient way of switching between recently used applications. It provides a clear navigation path between multiple ongoing tasks. The Recents button at the right side of the navigation bar displays the apps that the user has interacted with most recently. They are organized in reverse chronological order with the most recently used app at the bottom. Switch to an app by touching it. Remove an item by swiping left or right. System Bars The system bars are screen areas dedicated to the display of notifications, communication of device status, and device navigation. Typically the system bars are displayed concurrently with your app. Apps that display immersive content, such as movies or images, can temporarily hide the system bars to allow the user to enjoy full screen content without distraction. The typical system bars that are displayed concurrently with our app are Status bar, Navigation bar, Combined bar.
Department of Computer Science & Engineering

35
Intelligent Mobile Health Monitoring System

Common App UI A typical Android app consists of action bars and the app content area. The

action bar is a dedicated piece of real estate at the top of each screen that is generally persistent throughout the app.

7.2 USER AUTHENTICATION


Patient will be authenticated with help of online medical server module. After the successful authentication the patient can enter to the system from there he chose the test from the mobile device.

7.3 TEST SELECTIVITY LIST


With the help of a list activity the patient can choose the type of test he is going to take. At a time he can only choose only one test. That means either blood pressure test or blood sugar test.

7.4 GEO-LOCATION RETRIEVAL


The geo-location of the patients mobile will be taken during the test time so that the latitude and longitude of the mobile phone device is taken from the GPS module of the android mobile system. These coordinates are used for geo-coding so that patients location can be determined and saved.

7.5 SENDING THE DATA THROUGH INTERNET


Data including the test data and geo-location will be taken and if the mobile device is in online mode it will be uploaded to the medical server. If the mobile is in offline mode all the data collected has to be saved inside a local database (SQLite). When the system becomes online the data will be uploaded

7.6 DISPLAY QUESTIONNAIRE


A questionnaire related to blood pressure and blood sugar is displayed. The answers of these questions are saved to the user session so that on later these data can be persisted.

Department of Computer Science & Engineering

36
Intelligent Mobile Health Monitoring System

7.7 BLUETOOTH PAIRING AND RETRIEVING TEST DATA


After conducting the test the result will generated in the medical device. The Bluetooth module of the medical devices will be activated and the patients mobile will scan and will pair with the medical device if found. Once the paring is done the test data has to be pulled out from the medical device and saved to the user session.

7.8 DOCTOR MODULE


Handles all the administration functions who can add and delete patients and doctors. The doctor can select and view the patients medical history. Send email feed back to the particular patient

Department of Computer Science & Engineering

37
Intelligent Mobile Health Monitoring System

8.ADVANTAGES

AND

DISADVANTAGES

8.1 ADVANTAGES
The benefits behind deploying health monitoring technology are associated to reducing medical error, availability of service and to issues related the problem of constant shortage in medical staff. The other advantages are: Not necessary to schedule appointments for visiting The patients need not to travel and perform registrations each time they wish to make doctors appointment. Simplicity and Convenience of use The system architecture of IMHMS is a simple one with no complex system or communication architecture. Cost Effective IMHMS is cost effective. WBSN setup consists of some low cost biosensors. The communication from WBSN is also cheap due to the use of low cost Bluetooth or ZigBee adapters.

8.2 DISADVANTAGES
The disadvantages of iMoS are: Card Guard devices can be affected by a lot of factors such as weak batteries, incorrect arm cuff fitting, improper arm position Wi-Fi/3G Connection is required for diagnosis GPS Based Android Phone required for getting location status

Department of Computer Science & Engineering

38
Intelligent Mobile Health Monitoring System

9.FUTURE ENHANCEMENT
The whole system of mobile health care using biosensor network places forward some future works such as finding the most effective mechanism for ensuring security in biosensors considering the severe restrictions of memory and energy, representing the collected data in the most informative manner with minimal storage and user interaction, modelling of data so that the system will not represent all the data but only relevant information thus saving memory. With the advancement of sensor technologies it is not far enough when the bio-sensors itself can take necessary actions. A patient needed glucose does not need to take it manually rather the biosensors can push the glucose to the patient's body depending on the feedback from the IMS. It seems to be impossible to achieve by everybody. But nothing is impossible.

Department of Computer Science & Engineering

39
Intelligent Mobile Health Monitoring System

10. CONCLUSION

Networking multiple smart sensors into an application-specific solution to combat disease is a promising approach, which will require research with a different perspective to resolve an array of novel and challenging problems. As wireless networks of sensors are developed for biomedical applications, the knowledge gained from these implementations should be used to facilitate the development of sensor networks for new applications. Expeditious development of implanted smart sensors to remedy medical problems presents clear benefits to individuals as well as society as a whole. There is the obvious benefit to persons with debilitating diseases and their families as these patients gain an enhanced quality of life. Biomedical implants that monitor for cancer will help recovering patients maintain their health. Not only will these individuals personally benefit from their improved health and well-being, but society will also benefit from their increased productivity and societal contributions. Once the technology is refined, medical costs for correcting chronic medical conditions will be reduced. As the world population increases, the demand for these system will only increase. We are implementing the iMoS to help the individuals as well as the whole humanity. Our goals will be fulfilled if the iMoS can help a single individual by monitoring his or her health and cautions him to take necessary actions against any upcoming serious diseases.

Department of Computer Science & Engineering

40
Intelligent Mobile Health Monitoring System

APPENDIX
SCREENSHOTS

Department of Computer Science & Engineering

41
Intelligent Mobile Health Monitoring System

Department of Computer Science & Engineering

42
Intelligent Mobile Health Monitoring System

REFERENCES
A. Milenkovic, C. Otto, and E. Jovanovich. Wireless sensor networks for personal health monitoring: Issues and an implementation. Elsevier, 29(1314):2521-2533, Oct 2009 I. Korhonen, R. Lappalainen: wellness monitoring system. Engineering in Medicine and Biology Society, 20th Annual International Conference. Centre for Pervasive Healthcare. http://www.pervasivehealtcare.dk/ Centre for Future Health. http://www.centerforfuturehealth.org

Department of Computer Science & Engineering

Вам также может понравиться