Coder Social home page Coder Social logo

ana06 / medical-data-android Goto Github PK

View Code? Open in Web Editor NEW
26.0 8.0 31.0 14.85 MB

Android app to collect data to be analyzed for medical purposes.

License: GNU General Public License v3.0

Java 100.00%
android medical data bipolar-disorder-patients prototype user-testing ucm

medical-data-android's Introduction

Android app to collect medical data

Android app to collect data to be analyzed for medical purposes. Its development was started as part of a final degree project at UCM which can be found here: System to predict bipolar disorder crises analysing massive data by Ana María Martínez. This mobile app is being used in the project Bip4cast, in which data of patients from the San Juan de Dios hospital is being collected with the objective of improving the treatment of the bipolar disorder whose crises that can be avoided through early prediction.

Bip4cast.apk can be used to install the last stable version of the app in your Android device. In case that you want to set the project you should read the HOW TO guide. Screenshots of the application in a device with Android 6.0.1 can be seen in screenshots and screenshots_ES. Also, a video of the app in the same device can be seen in the following link: https://youtu.be/InZCw9WAZzI.

Main screen

Daily test

Android Studio is being used to develop the app. The Android Developers guide was used for writting the code.

Prototyping

The folder prototype_ES contains images of a prototype of the app done with JUSTINMIND. Also, two prototype videos of how the app will work can be se#en here: Daily use and Registration. Take into account that the prototype was done at the beginning of the development of the app and there are some differences between the app and the prototype as some changes has been introduced.

Main screen - prototype

Daily test - prototype

Requirements

Android 4.1 Jelly Bean or higher.

Code Style

This project adhere to the official Android Code Style Guidelines.

Authors

The development of this project was started by Ana María Martínez Gómez and you can see all contributors here: contributors. Nobody is reviewing pull requests at the moment, but in case that you want to develop this project by yourself you can read the HOW TO guide.

Licence

Code published under GNU GENERAL PUBLIC LICENSE v3 (see LICENSE).

medical-data-android's People

Contributors

ana06 avatar apoorv9990 avatar njacot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

medical-data-android's Issues

Collect location periodically

Currently, we collect the location in the moment of sending the daily test.

We want to collect the location periodically and to send it to the database as it can improve predictions significantly. We want to collect the location as frequently as possible without having a big impact in the battery. The best would be collecting it every 5 minutes, but this is probably not possible, so doing it every one hour, or more often if another app is using the location, would be more enough and more efficient.

This data should be sent to the same MongoDB database than the daily test but to a different collection. It could be sent once a day for example. It can be sent together with the daily test, but if the daily test is not sent in a maximum of 4 days we should sent the location data to avoid losing information and to avoid that the app take up a lot of phone memory.

Eliminate the email from SharePreferences

The email and the PIN are both stored in the SharePreferences. As these data is the one used to log in that could be a security problem. The PIN is imprescindible to be stored if we want to allow tests without connection, but we can eliminate the email, so internet will be needed to see the profile (as the email is shown there) but the app will be more secure.

Not to clear the sign in when there are errors

Stop clearing the sign in when there are errors to avoid the users filling the data several times.

When you sign in if you write your email wrong, when you click sign in, both the email and password are deleted and you have to write both things again. So, I think it will be better to keep at least the email (I am hesitant about the password as the user can not see what we really wrote).

Removing the time to sleep question

Although the doctor considered this question to be important when the development of the project started, he now thinks that it is not as important and the user will have to fill in it every day. Filling in 3 times (time to sleep, time to bed and time to wake up) every day could be tiresome and make some users stop filling the daily test.

Solve problem in Android 4.4.x

There is a bug in Android 4.4.x and Services and BroadcastReceivers are stopped when the app is closed (closed not pause):
http://www.androidpolice.com/2014/03/07/bug-watch-stopping-apps-on-android-4-4-2-can-silently-kill-related-background-services-a-fix-is-on-the-way

In the previous link the problem is explained with detail and also a solution is proposed:

While BroadcastReceivers and other similar mechanisms seem to be crippled, the AlarmManger can be used to refresh dead services. An alarm can be used to resurrect dead services

So, after creating the Service for sending the tests to the database, an alarm should be programmed to solve this issue.

It is not a critical problem, as in normal cases tests are sent, but there will be rare occasions where data will be lost.

Add location

Store and send information about location to the database as it can improve predictions significantly.

Add error message when there's no connection to Mongodb

Currently, if there's no connection to the mongodb server, only an exception is shown in Android log. User has no information what's going on.
Add a long Toast message indicating that server can't be reached, if that's the case.
This error should be shown at login attempt, or registration attempt.

Add link to www.bip4cast.com

In the terms and conditions there is a link to www.bip4cast.com that is currently plane text. To do it:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);

Add gradle command line instructions to build application

In order to facilitate beta-testing or continuous integration, app should be compilable through command line.
Instructions on how to do that should be added to Readme.
Example:

export ANDROID_HOME=/path/to/android/sdk

git clone https://github.com/RocketChat/Rocket.Chat.Android.git
cd Rocket.Chat.Android

echo "sdk.dir="$ANDROID_HOME > local.properties

./gradlew assembleDebug

Add notifications

Notifications are a desirable feature to allow doctors to send their patient remainders about their medication and other messages.

7-rating questions have problem in some devices

This is how the daily test look like in my Samsumg GT-I9100 with Android 4.4.2:

screenshot

This is probably due to use shapes together with numbers. We may hide number in some devices with small screen or at least make them smaller.

This will afect also 5-rating questions if the device screen was much smaller.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.