01-11-2016, 11:18 AM
An Android Application and Cloud System for Interactive Medical Diagnosis and Assistance
1462857930-sopreport.docx (Size: 408.17 KB / Downloads: 5)
ABSTRACT
With increasing population, and low medical support when compared to rise in population, especially in developing countries, there is a need to find good medical expertise in these conditions.This problem can be solved by developing an automated medical expert system which when given symptoms and conditions can diagnose a disease.Common diseases like seasonal viral fever, malaria, etc .. are becoming more dangerous especially in rural areas where medical support is poor and reachabilty is less.In this paper, we focus on providing medical expertise for common diseases.Medical assistance app takes input as speech, processes the input, inquires for more details and gives final diagnosis. It also suggests the doctor who are experts on that particular field.Due this we can avoid having long queue in hospitals.Thus it is a simple redudant problem which can be tackled by making an interactive medical assistance app.The backend code runs on cloud to which the mobile app send requests for processing data.The paper also suggests some techniques which could be augmented to existing app.
INTRODUCTION
It is highly necessary to provide good medical facilities to people.To help countries cope with increase in population and common diseases, computer scientists are researching human interactive medical assistance models.Due to less number of experts in specific domain of medical diagnosis it is important to help doctors by assisting them in case frequently occuring diseases.Diagnosing malaria, typhoid, seasonal fevers and cold etc.. using interactive medical systems helps doctors with the load of work.It could also play important role in rural areas where the medical facilities and reachability of medical experts is tough.The paper explains a system which would help people from remote areas who have poor assistance from medical experts. In modern India, almost every person has an access to a mobile phone.Thus it could be easier to provide medical assistance through phone which would cost less and accessed easier.The system must take in symptoms as input through speech and should predict the disease with high error costs.The system could be deployed in cloud and could be accessed by anyone from any place of the world.Having a medical assistance mobile application also helps to maintain health records of individuals which can be further used for extracting information.The first step of diagnosis process consists of patient describing his symptoms to doctor.In the next step doctor investigates about more symptoms and condition from the patient.This investigation process is a step by step questioning process.It also includes measuring blood pressure,temperature of body.The patients status can also be considered while diagnosing the disease.
In the mobile app input taken through speech, converted to text,text is processed , keywords are identified and used for deciding most probable disease.The speech input is converted to text on mobile device and it is sent to the backend program residing in the cloud.This text is processed and the next question is sent to mobile device.There are certain limitations such as we cannot measure temperature or blood pressure through a mobile device.The mobile app did not handle usage of patients history,diverse cases, rare diseases etc..The mobile application contains database for three diseases malaria , typhoid , dengue.This knowledge base can be extended with diseases which are more common and have a consistent diagnosis process.
METHODOLOGY
Previous work
Knowledge base in the project is built with the help of experts and medical textbooks. There will be symptom matrix for each disease. This matrix represents presence or absence of a particular symptom with respect to a particular disease.
Input is given as a transcript of patient’s condition and symptoms which is very similar to explaining to a real doctor. Then preprocessing of this obtained text is done. This is done using NLTK python library. Several techniques are used to process the input text such as sentenizing, tokenization, spell corrector, keyword extraction and stemming represented in order of their execution. Each of the above has different tasks. sentenizing breaks the text into different sentences. Tokenization breaks the sentence into tokens. The spell corrector corrects them .then the keywords are extracted using removal of stop words and parsing the text using AIML (Artificial Intelligence Markup Language). These key words are stemmed using porter stemming algorithm.
Symptoms are obtained from the keyword with the use of database of symptoms. The disease matrix will be constructed with the help of above symptoms and their values in the knowledge base .After getting disease matrix with respect to a disease in knowledge base, for further analysis we need to get the mutual information between these two. With the help of mutual information theory, weights are provided to different situations.
From this, we get the main symptom of the most probable disease. Then questions were asked to the patient depending up on the main symptoms obtained above and after each query, the disease matrix is updated. When there are no more further symptoms and all the analysis is done, the procedure is stopped and the most probable disease is obtained as output.
Android Interface
Our Android App is developed using Android studio. It takes input through both speech and text. The speech recognition is done using Google speech recognition api.Google speech api convert audio to text. It is powered by neural networks and high end machine learning algorithms.When the symptoms are first uttered by the device user it is converted into text and stored.This piece of text is sent over the server.
The server side code processes the text and extracts keywords relating to medical conditions and symptoms.The server then creates a symptom array.This symptoms array is attached to the header file and sent to the user device.The server remains stateless about user through out the process.The symtom array acts a cookie through out the entire process of diagnosis.This is done for accomodating many users which are acccessing the server.The device then asks a questionchoosed based on the symptom array.(where symptom flagged -1).The answer from user could be taken using both speech and text which is either yes or no.This answer sent to server along with the symptom matrix to calculate disease probablity.This process is repeated until probability of any disease crosses the threshold.
Finally the mobile application prints the disease on device screen.The device also shows the route to the nearest consultant for the disease using google maps api.Using google maps api the currrent location of user is extracted and is used to suggest, show routes of the nearest medical clinics and hospital who are experts in the specific disease.
Cloud processing
The application is deployed in cloud which could accessed by a user from any place.Deploying the application in cloud makes it more scalable and reduces overhead on the device.Helps in good management of medical databases and history.Our application is developed in django.Django is a high level web framework using python language.This django application could deployed on a personal server or some cloud storage.We deployed this application on pythonanywhere cloud system.The pythonanywhere platform has a simple configuration settings for deploying and constructing our application in desirable way.The cloud platform recieves messages from user i.e mobile application.It processes those messages and return a message to mobile application.This returned message may be the diagnosed disease or interrrogative question to gain more information of patients condition.The mobile device just acts as an interactive interface between the server program and user.The server deployed in the cloud does not store state of user conditions at any point of the interaction.The user conditions are stored in a cookie.The cookie helps in storing user symptoms and helps for further processing.The cookie is implemneted as symptom array.
Fig4: Messaging between user device and cloud server using a cookie.
This way many users could be handled by the application with less overhead. The cloud also helps in storing of user medical history for deciding the probabilties of a disease.The application could be deployed in any django cloud system when scaled in real world.Each user could be given a login id for identifying the patient.
CONCLUSION
The system is tested over many test cases considering the symptoms based in knowledge base for diseases malaria,dengue,typhoid.The project is more focused on providing diagnosis for common diseases.To accomadate more diseases we should extract conditions and information about these diseases and add it to the knowledge base.In future,the application could also help patients to connect with doctors with the help of hospitals and medical organisations.Advancements in field of human interaction , cognitive systems, sensors, computer vision and natural language processing would improve the research capabilities in medical diagnosis.This could also ensure more marketability for the medical assistance applications.