Latest

whatsapp (+234)07060722008
email sales@graciousnaija.com

Tuesday, 3 March 2015

Free Project Materials on Mobile Health Information System



MOBILE HEALTH INFORMATION SYSTEM: USING MOBILE PHONES IN RELATING HEALTH INFORMATION
Free Project Materials on Mobile Health Information System
Free B.Sc., HND in Computer Science Project Materials 


ABSTRACT
Healthcare is conventionally regarded as an important determinant in promoting the general health and well being of peoples around the world. 
And in doing this, health education and information plays a major role, because it is a reliable medium and the most effective way to reduce morbidity and mortality in developing countries. We need to deliver vital messages and information to people at the lower quarter of the society, this information can be used for changing behaviors’ and practices, and this in turn can save and protect lives.  It is in this context that the use of mobile phones in delivering vital health information and effective fieldwork reporting is of significance.  This project seeks to use the availability of mobile service across the urban and rural areas to benefit healthcare.


TABLE OF CONTENTS
PAGES
TITLE PAGE                                                                                                 i
CERTIFICATION                                                                                                     ii         
APPROVAL                                                                                                  iii        
DEDICATION                                                                                               iv
ACKNOWLEDGEMENT                                                                             v
ABSTRACT                                                                                                               vi
TABLE OF CONTENTS                                                                                           vii
CHAPTER ONE: INTRODUCTION
1.0              BACKGROUND OF THE STUDY                                                             1
1.1              STATEMENT OF THE PROBLEM                                                 3
1.2              AIMS & OBJECTIVES OF THE STUDY                                       3
1.3              SIGNIFICANCE OF THE STUDY                                                  4
1.4              SCOPE OF THE STUDY                                                                  5
1.5              LIMITATION OF THE STUDY                                                       5
1.6              DEFINITION OF TERMS                                                                6


CHAPTER TWO: LITERATURE REVIEW
2.0              INTRODUCTION                                                                            7
2.1       GENERAL REVIEW OF MHIS                                                      8
2.2       HEALTH POLICY                                                                          12
2.3       SOME HEALTHCARE POLICY OPTIONS                                  13
2.3.1    PHILOSOPHY: RIGHT TO HEALTHCARE                                  13
2.3.2    ECONOMICS: HEALTHCARE FINANCING                               14
2.4       HOW MOBILE PHONES SUPPORT HEALTHCARE                  14

CHAPTER THREE: SYSTEM DESIGN AND METHODOLOGY
3.0              INTRODUCTION                                                                             16
3.1              METHODOLOGY                                                                            16
3.2              EXISTING SYSTEM MODEL                                                         17
3.3              PROPOSED SYSTEM DESIGN                                                      17
3.4              HOW THE SYSTEM WORKS                                                         19
3.5              TECHNIQUE                                                                                                 20
3.6              SYSTEM FLOW DIAGRAM                                                           20
3.7              FUNCTIONAL FLOW DIAGRAM                                                             22
3.8              PROGRAM FLOW CHART                                                             23
CHAPTER FOUR SYSTEM IMPLIMENTATION AND DOCUMENTATION
4.0       INTRODUCTION                                                                             25
4.1       SYSTEM INSTALLATION                                                              25
4.2       SYSTEM IMPLEMENTATION                                                       25
4.3       REQUIREMENT SPECIFICATION                                                           26
4.4       SOFTWARE REQUIREMENTS                                                      26
4.4.1    OPERATING SYSTEM REQUIREMENTS                                                27       
4.4.2    HARDWARE REQUIREMENTS                                                    27
4.5       SYSTEM DOCUMENTATION                                                        27
4.5.1    PROGRAM DOCUMENTATION                                                   28
4.6       SYSTEM MAINTENANCE                                                             30
4.7       CHOICE OF PROGRAMMING LANGUAGE                              35       
CHAPTER FIVE
5.1       SUMMARY                                                                                       36
5.2       CONCLUSION                                                                                 36
5.3       RECOMMENDATION                                                                     37
REFERENCES                                                                                  31
APPENDIX A (SOURCE CODES)                                                            
APPENDIX B (SCREEN SHOTS)              


LISTS OF TABLE
Figure 3.1        The foundation of system methodology                                 21
Figure 3.2        Existing system design                                                           22
Figure 3.3        Proposed system model                                                          23
Figure 3.4        System flow diagram                                                              26
Figure 3.5        Functional flow diagram                                                         27       
Figure 3.6        Server Program flow chart                                                      28
Figure 3.7        Mobile Application flow chart                                                29



CHAPTER ONE
INTRODUCTION
1.0       BACKGROUND OF THE STUDY
Access to healthcare information varies; Researchers observed that most people in urban areas lack better understanding or knowledge of the word “HEALTH” let alone those living in the rural areas, and more importantly, reports from the remote facilities don’t get to the urban or headquarters as at when due. Thereby making it difficult for proper records and accountability in health care delivery system.
The act of rendering these services to the right people most times do not get to them. Presently health information dissemination is done by fliers, billboards, adverts and news (both radio and TV) from observation, facts gotten so far has shown that most people do not get these fliers and read the billboards. This could be because, the fliers printed were not enough and do not get to them, or there is power failure at the time the health information is been announced as the case may be. Thus, the information does not get to the desired destination.     
It has been predicted that mobile technology is beginning to have a big impact in healthcare, especially in developing countries. Mobile technology could play a large role in detecting, mapping and responding to epidemics.
Technology has taken healthcare industry a long way forward and so people are more aware about their health status and health needs. But this development has not fully benefited the lower crest of the society. The uncomfortable reality is that we live in a world where there is a silent emergency every day. It is in this scenario the possibility to use mobile phones in healthcare industry for effective reporting and dissemination of health information is of significance.

1.1       PROBLEM STATEMENTS
The significant part of any Health Information System involves the acquisition, management and timely retrieval of great volumes of information and information dissemination. And because of the nature of the existing system (paper based), the following setbacks are faced;
  • There is mismanagement of data.
  • Primary health centers lack appropriate health information update.
  • Inability to gather accurate health inventory control at a given time
  •  Lack of proper information passage on disease outbreak.
  • No proper accountability on the distribution of drugs or medical commodities

           

1.2       OBJECTIVES OF STUDY

Many doctors are now accessing electronic medical records (EMR). the aim of this system is to achieve the best possible support of patient care and outcome and administration by presenting data where needed and acquiring data when generated with networked electronic data processing.
The proposed system will increase staff productivity and efficiency by:
  • Ensuring data integrity and provide a database for future statistical and management reporting
  • Reducing the time spent by staff filling out forms, freeing resources for more critical tasks
  • To help in collecting community and clinical health data, delivery of healthcare information to practitioners, researchers and patients, real time monitoring of patient vital sign and direct provision of care, ( via mobile telemedicine)   

 

1.3       SIGNIFICANCE OF THE STUDY

This research will serve as a base for future studies and will be a source of information and guide to future researchers that may embark on similar studies.
The result of this study will aid healthcare organizations enhance team work, collaboration and knowledge sharing among the employees through an integrated communication system. It will significantly reduce paperwork involved with submitting data, documents, reports etc.
Increase effectiveness and productivity through an open communication system which provides for rapid information sharing, proposals and feedback. Ensure smooth workflow through enhanced information dissemination.

1.4       SCOPE OF STUDY

This research is restricted to the building of a “Mobile Health Information System using Mobile Phones to relate Health Information”. Therefore, this system is designed mainly for use by health care organizations. With this, the extent to which this study goes is restricted to the use of technologies such as Apache, java, MySQL.

1.5       LIMITATIONS
The following are the constraints to the present research work:
1.      Lack of access to enough information.
2.      Time constraint: - implies that the time interval given to carry out this research was too short.
3.      Financial constraint: - implies that the fund for getting sufficient, materials for the research is insufficient.
4.      The mobile phone required must have facility for internet access and must also have java platform.


1.6       DEFINITION OF TERMS
Hospital: An institution where people receive medical, surgical, psychiatric treatment and nursing care.
Health: The general condition of the mind or body, especially in terms of the presence or absence of illness, injuries or impairments.
Organization: These are group of persons who forms a business, club, etc together in order to achieve a particular aim.
Automation: A system in which a workplace or process has been converted to one that replaces or minimizes human labour with mechanical or electronic equipments.
Server: This is a dedicating machine dedicated to control or supply information to several computers connected in a network, the main computer on which this program runs.





CHAPTER TWO
LITERATURE REVIEW
2.0       INTRODUCTION
An information system (IS) is any combination of information technology and people's activities using that technology to support operations and management. In a very broad sense, the term information system is frequently used to refer to the interaction between people, algorithmic processes, data and technology. In this sense, the term is used to refer not only to the information and communication technology (ICT) an organization uses, but also to the way in which people interact with this technology in support of business processes.
Some make a clear distinction between information systems, and computer systems ICT, and business processes. Information systems are distinct from information technology in that an information system is typically seen as having an ICT component. Information systems are also different from business processes. Information systems help to control the performance of business processes.
The global health care industry is growing at a fast rate and is one of the areas that have the most urgent need of automation. There are various titles and acronyms which all declare similar approaches to managing the information flow and storage in hospital routine services, as Hospital Information System (HIS), or Healthcare Information System, or Clinical Information System (CIS), or Patient Data Management System (PDMS) are comprehensive integrated information systems designed to manage the medical, administrative, financial and legal aspects of a hospital and its service processing. Traditional approaches encompass paper-based information processing as well as resident work position and mobile data acquisition and presentation.
Mobile computing started with wheeled PC stands and now comes to age with tablet-PC and Smartphone applications. The need for mobile applications in health care and processes is at an all time high. Health care Providers, Doctors, Clinicians and Nurses need real-time access to patient, schedule, billing, drug and other practice related information to provide best patient care. On the other hand, insurance companies, drug suppliers and vendors of the health care ecosystem need 24/7 access to business critical information regardless of the location.

2.1       GENERAL REVIEW OF THE STUDY
Information and Communication Technology (ICT) has the potential to impact positively on many aspects of the health sector. The ability of communities to access health services is influenced by wider information and communication processes, provided by ICT, such as mobile telephones, television, internet, emails, etc. Prince Ana (2007) in one of his publications said “as a leader in promoting better health care through the innovative use of information technologies, British Medical Journal West Africa edition has been testing the efficacy of combining paper and electronic means in providing access to health information in the West Africa sub region. She has formally lunched and operated the first health information resource centre in Calabar since 2003 where paper and electronic journals have been used to provide information to Health personnel’s. It has also collaborated with the Cross River Ministry of health to commission the centre for clinical governance research and training.”
Darrell Nash (1996) cited the case of the City Hospital that requested for Sirius Software Products that was designed and implemented to automate their Hospital Management System (HMS) to replace their existing manual, paper based system. This system is to control the following information; patient information, room availability, staff and operating room schedules, and patient invoices. These services are to be provided in an efficient, cost effective manner, with the goal of reducing the time and resources currently required for such tasks.
India has a vast population at the lower strata of the society who are deprived of quality health care. They remain unaware of the modern technology and development in the health care industry, thus resulting in causalities which could be avoided if proper health information and facilities are available. The studies have revealed that the five diseases –pneumonia, diarrhea, malaria, measles and AIDS - together account for half of all deaths of children below the age of 5 years. Majority of these deaths are due to the lack of knowledge in handling critical situations. For the illiterate, currently the only source of information is probably going to be the people around them, who are also, in many cases, illiterate. The lack of knowledge remains the root cause of such causalities. Mobile phones have made it possible to reach our large population in remote areas, something that was truly unthinkable until very recently. Geena M. S. (2011)
Amy Cueva (2010), Mobile technologies have enormous potential as tools to promote healthy behavioral change, to transform the caregiver–patient relationship, and to revolutionize the way healthcare is delivered in the U.S. and around the globe. In fact, mobile technologies are already being used to promote healthy lifestyle changes, encourage patients' active involvement in their treatment, reduce waiting times in doctors' offices, and improve a provider's access to patient information, all with the goal of improving health care outcomes.
One way mobile technologies can make life better is to reduce the amount of time we waste waiting: waiting to see our doctor, waiting for a prescription to be filled, and waiting for test results. Anyone who's ever languished for hours at an emergency room will appreciate Portsmouth Regional Hospital's newest offering: a text-based system; text "ER" to 23000, and you'll receive a return text with the approximate wait time to see a doctor, a physician's assistant, or a certified nurse practitioner.
AppLab Uganda’s Health Care Applications
AppLab Uganda is made possible through collaboration between Grameen Foundation, Google and MTN Uganda. This partnership taps into the core expertise of each organization. The Grameen Foundation has extensive experience using technology as an enabler for building sustainable and scalable business models designed to improve the lives and livelihoods of the poor. Google is the worldwide leader in search technology, organizing the world's information and making it accessible. MTN operates the platform of Village Phone Operators and Shared Phone Operators in Uganda - a unique distribution channel for reaching underserved markets, as well as the communication infrastructure serving the whole country.
AppLab Uganda provides a service known as Google SMS. Google SMS is a group of mobile applications that allows users to find information. Google SMS facilitates three applications - Information Tips Application, General Web Search and Google Trader – in Uganda. The information tips application allows users to simply text message a search query to 6001, and the application will text message back the results. Users can use this SMS application to obtain information on health care and agriculture. The General web search application users to search for anything on the worldwide web through Google SMS. Users’ text queries to 6007. The Google Trader application is a trading platform were users can buy and sell goods and services through SMS. Users register, make submissions and query the trading platform by texting to 6002. Google SMS is currently free from Google but charges from your carrier for usage may apply. Text queries to the Information Tips application (6001) are also currently free.
This study focuses on the use of Google SMS in health care. Google SMS Health Tips and Google SMS Clinic Finder enable users to find information on sexual and reproductive health care and to locate health care facilities in Uganda respectively. Uganda has a high demand for information on HIV/AIDS, sexually transmitted infections, and reproductive health. Uganda's Ministry of Health estimates the adult prevalence of HIV/AIDS (15-49 years) in 2005 was 7.0% (Uganda HIV/AIDS Sero-Behavioural Survey, May 2005). The accuracy of information sexual and reproductive health care is essential to dispel local myths and help them make informed decisions. The Health Tips Application educates users by answering common questions about sexual and reproductive health. It is aimed that the information provided should be timely, accurate and actionable. For example, users can text “Health pregnancy” to learn what to do if you are pregnant and how to prepare for a safe labor.
The Clinic Finder offers a directory providing the details of local clinics, including the types of services offered as well as the hours of operation. This searchable directory makes it easier for users to find appropriate medical assistance. For example, users can text “Clinic Kampala” to locate health facilities in Kampala. The application also enables patients to find answers to questions that arise after treatment.
Sultan S. & Mohan P (2009) at the 6th annual international conference discussed extensively on the issues that affect the people of Caribbean countries. Because of the numerous challenges confronting their healthcare systems, the public healthcare systems in the region faced a crisis due to factors such as shortage of medical staff, lack of proper facilities, and insufficient funding. Therefore, new approaches to managing healthcare and promoting healthier lifestyle practices are needed to address these problems. Hence, MediNet, a mobile healthcare management system was developed at St. Augustine Campus of the University of the West Indies to provide an alternative healthcare in the Caribbean. The initial focus of the system is on chronic non- communicable disease such as diabetes and cardio-vascular disease. But from the feedback and learning of the first prototype gave room for a full-fledged system capable of handling other diseases.
 
 
2.2       HEALTH POLICY
The decisions, plans, and actions that are undertaken to achieve specific health care goals within a society are known Health Policies. According to the World Health Organization, an explicit health policy can achieve several things: it defines a vision for the future; it outlines priorities and the expected roles of different groups; and it builds consensus and informs people.
There are many categories of health policies, including personal health care policy, pharmaceutical policy, and policies related to public health such as vaccination policy, tobacco control policy or breastfeeding promotion policy. They may cover topics of financing and delivery of health care, access to care, quality of care, and health equity.
There are also many topics in the politics and evidence that can influence the decision of a government, private sector business or other group to adopt a specific policy. Evidence-based policy relies on the use of science and rigorous studies such as randomized controlled trials to identify programs and practices capable of improving policy relevant outcomes. Most political debates surround personal health care policies, especially those that seek to reform health care delivery, and can typically be categorized as either philosophical or economic. Philosophical debates center on questions about individual rights, ethics and government authority, while economic topics include how to maximize the efficiency of health care delivery and minimize costs.

 

2.3       SOME HEALTH CARE POLICY OPTIONS

2.3.1         PHILOSOPHY: RIGHT TO HEALTH CARE

Many countries and jurisdictions integrate a human rights philosophy in directing their health care policies. The World Health Organization reports that every country in the world is party to at least one human rights treaty that addresses health-related rights, including the right to health as well as other rights that relate to conditions necessary for good health. The United Nations' Universal Declaration of Human Rights (UDHR) asserts that medical care is a right of all people. UDHR Article 25: "Everyone has the right to a standard of living adequate for the health and well-being of himself and of his family, including food, clothing, housing and medical care and necessary social services, and the right to security in the event of unemployment, sickness, disability, widowhood, old age or other lack of livelihood in circumstances beyond his control."

2.3.2    ECONOMICS: HEALTH CARE FINANCING

Many types of health policies exist focusing on the financing of healthcare services to spread the economic risks of ill health. These include publicly funded health care (through taxation or insurance, also known as single-payer systems), mandatory or voluntary private health insurance, and complete capitalization of personal health care services through private companies, among others. The debate is ongoing on which type of health financing policy results in better or worse quality of health care services provided, and how to ensure allocated funds are used effectively, efficiently and equitably.

Other health policy options include: medical research policy, health workforce policy, and health in foreign policy.



2.4       HOW MOBILE PHONES SUPPORT HEALTH INFORMATION
David Aylward (2011) in his recent publication said that “the mobile phone is a strong contender as a key transforming agent in the future of health and healthcare. There are now more than 5.3 billion cell phone users around the globe, and 90 percent of the world's population is covered by a commercial wireless signal. We now have a pathway to reach the unreached, and to deliver health services where people are, not merely in health facilities.” Through applications, mobiles phones can be used to support preventive and curative health care activities. Preventive health care activities cover health education and promotion to prevent the occurrence of illness or curb and control the outbreak of illness. Curative care activities cover treatment and post-treatment activities. Curative care also includes information and communication strategies which will enhance compliance to medical regimens and recommendations. We conceptualize mobile phones to have two effects – incremental and transformative – on compliance intervention strategies.
Incremental effects characterize the effects from using mobile phones to enhance current preventive and curative health care activities. For example, mobile phones may enhance activities such as telephone education, feedback, scheduled appointments, monitoring, and reminders. In the case of the Google SMS it is primarily used to educate and provide information to access health facilities.
Transformative effects characterize effects from using mobile phones to create something new – new forms of compliance intervention strategies. Transformative effects may include developing new mobile-driven multi-media education strategies, goals and means to change the schemes of thought. For example, “Text to Change,”- is a health non-profit organization running a project in Uganda, where the focus is on HIV/AIDs education as well as the promotion of HIV Counseling and Testing (HCT) services (TextToChange, 2008). In a six week pilot project targeted at 15,000 participants, a total of 255 participants came for HCT services and the response rate for the pilot quiz was on average 17.4% per question. The mobile-enabled HIV/AIDs education contributed to behaviour to access HCT services among 255 participants. These examples demonstrate the transformative effects mobile phones may have on health care activities.



CHAPTER THREE
SYSTEM DESIGN AND METHODOLOGY
3.0       INTRODUCTION
This chapter, a detailed analysis of the system is being laid out. The methodology used, the system model, fact finding methods during analysis stages, activities and end product of study, the framework, data modeling, outcomes, data flow and pre-design requirement are being outlined.
3.1       METHODOLOGY
The framework used to structure, plan and control the process of developing this system is the Structured Systems Analysis and Design methodology (SSADM).
THE FOUNDATION OF SYSTEMS METHODOLOGY




Fig. 3.1            The foundation of system methodology
 
 
3.2       EXISTING SYSTEM MODEL
The existing system is a manual based system. Information dissemination is done with the use of posters, fliers and mass media. Below is a picture of what it looks like.
 





 
Fig 3.2 Existing System Design





3.3       PROPOSED SYSTEM DESIGN
The Design of the new system involves specification of various components that will be used in building the system, defining the attribute of the components and the relationship that exist between these components. The design is broken into:
a. Logical design: - This involves the design of prototypes representing what the actual components of the system will look like. The logical design describes what the user interface; command structure and data store will look like, it is based on these designs that the system is implemented.
b. Physical designs: This aspect of designing has to do with the physical implementation of the logical design through the use of a programming/scripting language. Hence the physical design is the actual construction of the system.
 







Fig. 3.3 Proposed System Model
3.4       HOW THE SYSTEM WORKS
This system is in two phases, the server application and the mobile application. Generally, Mobile Health Information System (MHIS) is built in such a way that is to help manage, control, and store health information and at this same time help the health workers on field work to pass accurate and timely report to the necessary quarters.
The first application which is the server application is built with , , MySQL and the second; the mobile phone application is built with ,java ,apache. The purpose of building these two applications is to enable them interface and share information with each other.
This act involves both retrieval of data and dissemination of health information to the public through the mobile phone. This is made possible because since the introduction of mobile phones, there has been a tremendous increase in mobile phone diffusion in developing countries. Statistics from the International Telecommunication Union (2007) suggested that there are now more mobile phone users in the developing world than in the developed world. In countries like Uganda, it is estimated that, their mobile phone subscriptions have increased by 1700 percent between 2002 and 2008; the mobile phone subscriptions per 100 inhabitants in 2002 was 1.51, and that of 2008 was 27.2 (ITU, 2008).
3.5       TECHNIQUE
The data flow modeling technique of the SSADM is used. This is the process of identifying, modeling and documenting how data moves around the system. Data flow modeling examines processes (activities that transform data from one form to another), data stores (the holding areas for data), external entities (what sends data into a system or areas for data), external entities (what sends data into a system or receives data from a system) and data flows (routes by which data can flow).

3.6       SYSTEM FLOW DIAGRAM
The system flows diagram which is modeled after the data flow modeling technique of the SSADM, illustrates how data is processed by the system in terms of inputs and outputs.




SYSTEM FLOW DIAGRAM









Fig. 3.4 System Flow Diagram

AGRAM














Fig. 3.3 Functional Flow Diagram
 
 
3.8       PROGRAM FLOWCHART
This is a design notation used to show how diagrammatically, the sequence in which instructions are carried out in the program.

 
CHAPTER FOUR
SYSTEM IMPLEMENTATION AND DOCUMENTATION
4.0       INTRODUCTION
This chapter describes implementation requirements of the software, hardware, operating systems and memory requirements for installation of the software, detailed implementation arrangements. The documentations for the system, installation procedures, system testing/debugging and maintenance as well as evaluation are not left out.

4.1       SYSTEM INSTALLATION
The system is a web based system that runs on apache tomcat 6.0 server as long as the system requirements are met; it can conveniently be installed in any system.

4.2       SYSTEM IMPLEMENTATION
The implementation of any system of this type starts immediately after its acceptance        by the new system users. The most important thing about this implementation is to ensure that all programs are working correctly and are linked together to meet users requirement. The programs are developed in independent modules which make the             system easy to maintain and change. 
The implementation of the new system involves:
Training Staff:  this involves training them on how to execute the package, how to enter the data, how to process the data, get the result from the server and how to t00ake out the report when needed.

4.3       REQUIREMENT SPECIFICATION
The MHIS is a web application that runs on a server and can be used for interaction through any web browser from any computer. Most requirements therefore relates to the server and software running on it. This version requires apache tomcat to be installed.





4.4       SOFTWARE REQUIREMNTS
MHIS is developed as a stand alone application. This requires WAMP to be installed on the server and also the MHIS on the mobile phone can only be installed on a java based phone and the phone must have internet facility.
W       windows
A        Apache   (web server)
M        MYSQL (data base)
P         PHP        (scripting language) others include:
  • Operating system such as Windows XP, Windows 7etc
  • Firefox or google chrome browsers.
4.4.1    OPERATING SYSTEM REQUIREMENTS
As mentioned above the MHIS requires WAMP to be installed on the operating system to run. So any operating system that supports WAMP will be able to run the application. Common operating systems which support WAMP and LAMP are windows and Linux respectively.
4.4.2    HARDWARE REQUIREMENTS
            Minimum RAM of   512mb
Minimum Disk space of 20GB free
Keyboard, mouse etc


4.5       SYSTEM DOCUMENTATION
Documentation of a program or a source code means taking down a detailed analysis of the benefits and the process of the new program developed. The programmer, users and the operators are the main people in which the documentation is necessary for.
Documentation always aids the maintenance of the program and also gives programs long lives. Programs written during the 1960s are still in use today because it was documented, although they must have been subjected to regular maintenance, modification or bringing up to date.

4.5.1    PROGRAM DOCUMENTATION
Program documentation varies according to its intended use.
·         For the programmers present or future use, as an aid in all stages of programming.
·         For the future or present use of other programmers
·         For the user of the program who may themselves vary in expertise



4.6       SYSTEM  MAINTENANCE
System maintenance involves keeping of hardware and software of the computer system in a good condition against virus, loss of files and slow performance of the system. To ensure effective system maintenance the following should be taken into consideration:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
1.         Using trained engineers to keep hardware functional at all times, installing an enabling program update to keep the program current.
2.         Monitoring and fixing problems with computer program
3.         Modifying the programs in response to new requirement.
To put all this in place, adequate staff training programs are necessary.

4.7 CHOICE OF PROGRAMMING LANGUAGE
The choice of programming language tells the kind of programming language used and why the language. The following programming language was used;
·         Hypertext Mark-up Language (HTM)
·         Java script
·         Apache
·         Structured Query Language (SQL)
The choice for the combination of these languages was because the program is expected to run both online and offline with database inclusive.
The HTML and Java Script are mainly used to process the form and communicate with the input from the form while the SQL is used to communicate with the database, while nokia pc suit is used to control the mobile application.



CHAPTER FIVE
SUMMARY, CONCLUSION AND RECOMMENDATION  
5.1       SUMMARY
Mobile technology is beginning to have a big impact in health care, especially in developing countries and soon mobile technology could play a large role in detecting, mapping and responding to epidemics.
Technology has taken healthcare industry a long way forward and so people are more aware about their health status and health needs. But this development has not fully benefited the lower crest of the society. The uncomfortable reality is that we live in a world where there is a silent emergency every day. It is in this scenario the possibility to use mobile phones in health care industry for effective dissemination and access of health and health information is of significance.

5.2       CONCLUSION
Worldwide, mobile technologies have demonstrated the incredible power of communication as an agent for social change. The use of mobile phones to disseminate information on health will promote health consciousness to people in remote areas and also serve as an inventory control system to the health sector.


5.3       RECOMMENDATION
            Observation from fact-findings collected during the design of this research work was that in order to achieve efficient and effective operation of the new system, it is advisable for the management to make this work extended to all parts of the establishment. The management needs to provide computer training course for all the staff concerned because they cannot easily operate the new system when implemented since they are not used to operating computer and mobile phone application.
            The management should understand that it is very important to completely eliminate the manual operation because of its associated problems and make provision for post implementation where the maintenance of the new system is carried out and work towards improving the new system.






REFERENCES
Amy C.  (2010) Mobile Technology for Healthcare: Just what the doctor ordered? Washington, D.C. and Berkshire, UK: UN Foundation-Vodafone Foundation Partnership.

Darrel N. (1996) Hospital Management System              http://ksi.cpsc.ucalgary.ca/courses/451-96/nash/451/func_spec/section1.html Retrieved: August 19th, 2011

David A. (2011) How Mobile Phone Can Transform Healthcare           http://blogs.hbr.org/innovations-in-health-care/2011/03/david-aylward-the-mobile-phone.html. Retrieved: August 6th, 2011

Dongsong Z. & Boonlit A. (2005): Challenges, Methodologies, and Issues in the
        Usability Testing of Mobile Applications. International Journal of Human-
        Computer Interaction, Vol. 18, Issue 3 July 2005, pages 293 - 308.

Geena M. S. (2011) Health Phones: A Potential Game Changer in Health     Information Management. OJHAS Vol. 10, Issue 1: (Jan-Mar 2011)  ISSN0972 - 5997 Published in Mangalore, India.

Gremeen F. (2010) Uganda Project: Applab Uganda          http://www.grameenfoundation.applab.org/section/applab-initiatives Retrieved: August 25th, 2011.          

Prince A. (2007) Information and Communication Technology and HealthCare      Delivery in West Africa. BMJ West Africa Edition Vol.10.2 of May – June                  2007, p99.
Sultan S. & Mohan P (2009): Improving the Self-Care Process for Caribbean         Patients with Diabetes through Mobile Learning. International Journal of          Education and Development using Information and Communication           Technologies, Vol. 5, Issue 4.

Sultan S. & Mohan P. (2009): How to Interact: Evaluating the Interface between         Mobile Healthcare Systems and the Monitoring of Blood Sugar and Blood          Pressure. In MobiQuitous 2009 Workshop on Ubiquitous Mobile Healthcare        Applications. Toronto, Canada, July 13-16, 2009.









APPENDIX A
SOURCE CODES

package com.healthinfo.domain;

import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.PersistenceContext;
import javax.persistence.Version;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.roo.addon.entity.RooEntity;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.tostring.RooToString;
import org.springframework.transaction.annotation.Transactional;

@Entity
@Configurable
@RooJavaBean
@RooToString
@RooEntity
public class HealthInfo {

    private String title;

    private String description;
   
    private Boolean active;

      @PersistenceContext
    transient EntityManager entityManager;

      @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;

      @Version
    @Column(name = "version")
    private Integer version;

      public Long getId() {
        return this.id;
    }

      public void setId(Long id) {
        this.id = id;
    }

      public Integer getVersion() {
        return this.version;
    }

      public void setVersion(Integer version) {
        this.version = version;
    }
     
     

      public Boolean getActive() {
            return active;
      }

      public void setActive(Boolean active) {
            this.active = active;
      }

      @Transactional
    public void persist() {
        if (this.entityManager == null) this.entityManager = entityManager();
        this.entityManager.persist(this);
    }

      @Transactional
    public void remove() {
             if (this.entityManager == null) this.entityManager = entityManager();
                this.setActive(Boolean.FALSE);
              this.entityManager.merge(this);
              this.entityManager.flush();
           
//         
//        if (this.entityManager == null) this.entityManager = entityManager();
//        if (this.entityManager.contains(this)) {
//            this.entityManager.remove(this);
//        } else {
//            HealthInfo attached = HealthInfo.findHealthInfo(this.id);
//            this.entityManager.remove(attached);
//        }
    }

      @Transactional
    public void flush() {
        if (this.entityManager == null) this.entityManager = entityManager();
        this.entityManager.flush();
    }

      @Transactional
    public void clear() {
        if (this.entityManager == null) this.entityManager = entityManager();
        this.entityManager.clear();
    }

      @Transactional
    public HealthInfo merge() {
        if (this.entityManager == null) this.entityManager = entityManager();
        HealthInfo merged = this.entityManager.merge(this);
        this.entityManager.flush();
        return merged;
    }

      public static final EntityManager entityManager() {
        EntityManager em = new HealthInfo().entityManager;
        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
        return em;
    }

      public static long countHealthInfoes() {
        return entityManager().createQuery("select count(o) from HealthInfo o where o.active = :active", Long.class).setParameter("active", Boolean.TRUE).getSingleResult();
    }

      public static List<HealthInfo> findAllHealthInfoes() {
        return entityManager().createQuery("select o from HealthInfo o where o.active = :active", HealthInfo.class).setParameter("active", Boolean.TRUE).getResultList();
    }
     
     
      public static List<HealthInfo> findAllHealthInfoesNotInIds(List<Long> ids) {
            String query = "select o from HealthInfo o where o.active = :active ";
            if(ids.size() > 0){
                  query +=" and o.id not in (";
                  for(Long id : ids){
                        query +="" + id + ",";
                  }
                  query = query.substring(0, query.lastIndexOf(","));
                  query+=")";
            }
        return entityManager().createQuery(query, HealthInfo.class).setParameter("active", Boolean.TRUE).getResultList();
    }
     
     

      public static HealthInfo findHealthInfo(Long id) {
        if (id == null) return null;
        return entityManager().find(HealthInfo.class, id);
    }

      public static List<HealthInfo> findHealthInfoEntries(int firstResult, int maxResults) {
        return entityManager().createQuery("select o from HealthInfo o where o.active = :active", HealthInfo.class).setParameter("active", Boolean.TRUE).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
    }

      public String getTitle() {
        return this.title;
    }

      public void setTitle(String title) {
        this.title = title;
    }

      public String getDescription() {
        return this.description;
    }

      public void setDescription(String description) {
        this.description = description;
    }

      public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("Title: ").append(getTitle()).append(", ");
        sb.append("Description: ").append(getDescription());
        return sb.toString();
    }
}



/*
 * @(#)SMS.java
 *
 * Copyright (C) 2008 Franck Andriano
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 * See GPL license : http://www.gnu.org/licenses/gpl.html
 *
 */

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;
import java.util.TooManyListenersException;

import javax.comm.CommDriver;
import javax.comm.CommPortIdentifier;
import javax.comm.CommPortOwnershipListener;
import javax.comm.NoSuchPortException;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException;

import org.apache.log4j.Logger;

/**
 * Classe permettant de communiquer avec un Port/Serie ou RS-232 hardware
 * Accepte les commandes 3GPP 27.007 et les recommandations 27.005 GSM
 * pour une carte SIM...
 *
 * La communication en elle même peut se faire par cable Port Serie, IR ou Bluetooth
 *
 * Télécharger Java Communications 3.0 API :
 * http://java.sun.com/products/javacomm/
 *
 * - Installer le jar javax.comm dans le classpath de votre application (comm.jar)
 *  et le fichier de configuration javax.comm.properties aussi
 *
 * - Installer la dll pour Win32 seulement 'win32com.dll' dans le répertoire 'bin'
 *  de votre JRE
 * 
 * Le "Pairing" de votre Adapteur Bluethooth et de votre GSM est indispensable
 * avant toute communication (via le service Virtual Serial Device Bluetooth) 
 *
 * @author Franck Andriano 2008 nexus6@altern.org
 * @version 1.0
 */
public class Sms implements SerialPortEventListener, CommPortOwnershipListener
{
            /*
             * Instance Object Logger
             */
            private static Logger logger = Logger.getLogger(Sms.class);

            /*
             * Constance status
             */
            public static final int SC_OK = 0;
            public static final int SC_ERROR = 1;
            public static final int SC_PDU_PARSE_ERROR = 2;

            /*
             * Flux I/O
             */
            private OutputStream outStream;
            private InputStream inStream;

            /*
             * Read incoming SMS from SIM
             */
            public IncomingSms rx_sms = null;

            /*
             * Config Serial Port
             */
            private SerialParameters parameters;
           
            /*
             * Communication scan port
             */
            private CommPortIdentifier portId;
           
            /*
             * Communication in serial port
             */
            private SerialPort sPort;
           
           
            /*
             * Status comm port
             */
            public int portStatus = OK;
            private static Boolean portStatusLock = new Boolean(true);
            private boolean POLLING_FLAG;
            private String portStatusMsg = "";

            /*
             * Type of response
             */
            private static final int OK = 1;
            private static final int WAIT = 2;
            private static final int ERROR = 3;
            private static final int WMSG = 4;
            private static final int RMSG = 5;
            private static final int ECHO = 6;
            private static final int TIMEOUT = 7;
           
            /*
             * Buffer serial incoming event
             */
            private byte[] readBuffer = new byte[20000];
            private int bufferOffset = 0; // serialEvent

            /*
             * LF CR
             */
            private static final String lfcr = "\r\n";

            /*
             * Default index memory is 1
             */
            private int indexCurrentMemory = 1;
           
            /*
             * Default memory is "SM"
             */
            private String currentMemory = "\"SM\"";
           
            /**
             * Constructor!
             *
             * @param parameters
             */
            public Sms(SerialParameters parameters)
            {
                        this.parameters = parameters;
            }

            /**
             * Initialize driver to be able to connect to serial port
             * incase application is running from Windows
             * as u might expect no driver initialization is required on linux
             * ensure you initialize only once on Windows so as to avoid multiple port enumeration
             *
             * @return String        "suncessful" or "failure"
             */
            public String initializeWinDrivers()
            {
                        String drivername = "com.sun.comm.Win32Driver";
                        try
                        {
                                    CommDriver driver = (CommDriver) Class.forName(drivername).newInstance();
                                    driver.initialize();
                                    return "successful";
                        }
                        catch (Throwable th)
                        {
                                    // Discard it
                                    return "failure";
                        }
            }

            /**
             * Return type of serial port (depend type of driver!) Driver=com.sun.comm.Win32Driver (window)
             * Driver=gnu.io.RXTXCommDriver (all platform)
             *
             * @param portType
             * @return String with driver type
             */
            static String getPortTypeName(int portType)
            {
                        // we use on window...
                        switch (portType)
                        {
                                    case CommPortIdentifier.PORT_PARALLEL :
                                                return "Parallel";
                                    case CommPortIdentifier.PORT_SERIAL :
                                                return "Serial";
                                    default :
                                                return "unknown type";
                        }
            }

            /**
             * Open serial connection with COM port
             *
             * @param _port
             * @throws IOException
             */
            public void openConnection(String _port) throws IOException
            {
                        openConnection(_port, null);
            }

            /**
             * Open serial connection with COM port
             *
             * @param _port
             * @param _pinNumber
             * @throws IOException
             */
            public void openConnection(String _port, String _pinNumber) throws IOException
            {
                        String port = _port;
                        if (_port == null) port = parameters.getPortName();
                       
                        // Obtain a CommPortIdentifier object for the port you want to open.
                        try
                        {
                                    portId = CommPortIdentifier.getPortIdentifier(port);
                        }
                        catch (NoSuchPortException e)
                        {
                                    e.printStackTrace();
                                    throw new IOException(e.getMessage());
                        }
                       
                        // Open the port represented by the CommPortIdentifier object. Give
                        // the open call a relatively long timeout of 30 seconds to allow
                        // a different application to reliquish the port if the user
                        // wants to.
                        try
                        {
                                    sPort = (SerialPort) portId.open("MobileAccess", 5000);
                        }
                        catch (PortInUseException e)
                        {
                                    throw new IOException(e.getMessage());
                        }
                       
                        // Set the parameters of the connection. If they won't set, close the
                        // port before throwing an exception.
                        try
                        {
                                    setConnectionParameters();
                        }
                        catch (IOException e)
                        {
                                    sPort.close();
                                    throw e;
                        }
                       
                        // Open the input and output streams for the connection. If they won't
                        // open, close the port before throwing an exception.
                        try
                        {
                                    outStream = sPort.getOutputStream();
                                    inStream = sPort.getInputStream();
                        }
                        catch (IOException e)
                        {
                                    sPort.close();
                                    throw new IOException("Error opening i/o streams");
                        }
                        // Add this object as an event listener for the serial port.
                        try
                        {
                                    sPort.addEventListener(this);
                        }
                        catch (TooManyListenersException e)
                        {
                                    sPort.close();
                                    throw new IOException("too many listeners added");
                        }
                       
                        // Set notifyOnDataAvailable to true to allow event driven input.
                        sPort.notifyOnDataAvailable(true);
                       
                        // Add ownership listener to allow ownership event handling.
                        portId.addPortOwnershipListener(this);
                       
                        // init modem connection with pin number
                        initializeModem(_pinNumber);
            }

            /**
             * Initialize modem with PIN number
             *
             * @param pinNumber
             */
            private void initializeModem(String pinNumber)
            {
                        atCmd("ATE0", 0, 1000);                     // turn off command echo
                        atCmd("AT+CMEE=2", 0, 500);           // verbose all messages
                        atCmd("AT+CMGF=0", 0, 500);           // set Pdu mode (default binary)
                        //atCmd("AT+CNMI=0,0,0,0", 0, 500);// disable indications -direct to TE?
                       
                        if (pinNumber != null)
                        {
                                    //enter pin number
                                    atCmd("AT+CPIN=\"" + pinNumber + "\"", 0, 1000);
                                    if (portStatus == ERROR)
                                    {
                                                logger.error("The pin number " + pinNumber + " is INCORRECT. Please try again.");
                                                // close session!
                                                this.close();
                                    }
                        }
            }

            /**
             * List open serial port
             *
             * @return Array String
             */
            public String[] listPorts()
            {
                        Enumeration ports = CommPortIdentifier.getPortIdentifiers();
                        ArrayList portList = new ArrayList();
                        String portArray[] = null;
                        while (ports.hasMoreElements())
                        {
                                    CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
                                    if (port.getPortType() == CommPortIdentifier.PORT_SERIAL)
                                    {
                                                portList.add(port.getName());
                                    }
                                    portArray = (String[]) portList.toArray(new String[0]);
                        }
                        return portArray;
            }

            /**
             * Handles ownership events. If a PORT_OWNERSHIP_REQUESTED event is received a dialog box is created asking the user
             * if they are willing to give up the port. No action is taken on other types of ownership events.
           
           
           
                       
    }

            @ModelAttribute("userdetails")
    public Collection<UserDetail> populateUserDetails() {
        return UserDetail.findAllUserDetails();
    }

            String encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
        String enc = httpServletRequest.getCharacterEncoding();
        if (enc == null) {
            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
        }
        try {
            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
        }
        catch (UnsupportedEncodingException uee) {}
        return pathSegment;
    }
}
package com.healthinfo.domain;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PersistenceContext;

import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.roo.addon.entity.RooEntity;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.tostring.RooToString;
import org.springframework.transaction.annotation.Transactional;

@Configurable
@Entity
@RooJavaBean
@RooToString
@RooEntity
public class UserDetailHealthInfo {
            @PersistenceContext
    transient EntityManager entityManager;

            @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;
           
            @ManyToOne
            @JoinColumn(name = "health_info_id", referencedColumnName = "id", nullable = false)
            HealthInfo healthInfo;
           
            @ManyToOne
            @JoinColumn(name = "user_details_id", referencedColumnName = "id", nullable = false)
            UserDetail userDetail;

            public Long getId() {
                        return id;
            }

            public void setId(Long id) {
                        this.id = id;
            }

            public HealthInfo getHealthInfo() {
                        return healthInfo;
            }

            public void setHealthInfo(HealthInfo healthInfo) {
                        this.healthInfo = healthInfo;
            }

            public UserDetail getUserDetail() {
                        return userDetail;
            }

            public void setUserDetail(UserDetail userDetail) {
                        this.userDetail = userDetail;
            }
           
           
           
           
            @Transactional
    public void persist() {
        if (this.entityManager == null) this.entityManager = entityManager();
        this.entityManager.persist(this);
    }

            @Transactional
    public void remove() {
        if (this.entityManager == null) this.entityManager = entityManager();
        if (this.entityManager.contains(this)) {
            this.entityManager.remove(this);
        } else {
            UserDetailHealthInfo attached = UserDetailHealthInfo.findUserDetailHealthInfo(this.id);
            this.entityManager.remove(attached);
        }
    }

            @Transactional
    public void flush() {
        if (this.entityManager == null) this.entityManager = entityManager();
        this.entityManager.flush();
    }

            @Transactional
    public void clear() {
        if (this.entityManager == null) this.entityManager = entityManager();
        this.entityManager.clear();
    }

            @Transactional
    public UserDetailHealthInfo merge() {
        if (this.entityManager == null) this.entityManager = entityManager();
        UserDetailHealthInfo merged = this.entityManager.merge(this);
        this.entityManager.flush();
        return merged;
    }

            public static final EntityManager entityManager() {
        EntityManager em = new UserDetail().entityManager;
        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
        return em;
    }

            public static List<UserDetailHealthInfo> findAllUserDetailHealthInfosforUser(Long id) {
        return entityManager().createQuery("select o from UserDetailHealthInfo o where o.userDetail.id =:id group by o.healthInfo.id", UserDetailHealthInfo.class)
        .setParameter("id", id).getResultList();
    }

            public static UserDetailHealthInfo findUserDetailHealthInfo(Long id) {
        if (id == null) return null;
        return entityManager().find(UserDetailHealthInfo.class, id);
    }

           
}



APPENDIX B
SCREEN SHOTS OF THE APPLICATIONS



dont forget to share, like our facebook, twitter and google page, If you have any complain, dont fail to drop your comment below



Request for the software of this project, send me mail at: cletus.igbe@gmail.com or developer.cletus@gmail.com or sms me at +2347060722008 or +2348110288930, you can as well drop your comment below.



 
















No comments:

Post a Comment

Add Comment