GSOC 2019: Identify disease outbreaks and Alert the Providers

Tags: #<Tag:0x00007fe2dd1ceb08>

As the Android app collects the diagnosed disease data of patients, we can also collect the location of the app along with the diagnosed disease data. This will help us create a hotspot of diseases at a particular location. This data paired with Patient’s Information (address), Analytics and Artificial Intelligence, can be used to identify if a disease outbreak has occurred and therefore alert the Providers.

All the Providers around the Hotspots can be alerted via a Push Message in the Android Client. We can set the radius of the alert as per our requirement. This will help the Providers and App-users to get ready for an Emergency situation beforehand.

I was thinking to add this to my GSOC proposal. Would like some insights to this Idea. All the participants are also welcome to share their views.

@suthagar23 @f4ww4z @dkayiwa @isears, This can be a great idea for working on. On the web-app or backend, an Artificial intelligence algorithm can be implemented which will take inputs as disease, its intensity, location coordinates, rate of diagnosis/reports, etc , and can output a certain Geofence. The Providers/Android Client users in that particular geofence will receive the Alert message.

The Android apps (both the original Android Client and the Nigeria Telemedicine app) can collect/report the data of diseases.

Good idea @deepak140596, But do you think, collecting such an information from a country for a work out side of the country? I think, there might me a lot of legal issues in collecting and using the information for a ML transformation.

Thanks @suthagar23, I think we already are collecting users’ information as well as patient’s data and storing them in the servers (please correct me if I am wrong). Here , we can find the Rest Api that the app is using to send/receive data to the cloud.

For applying ML transformation, we do not need any other extra data , except Providers’ location (Patient’s Pin-code can also be used instead).

For cross-border data flow, however we do need to take care that most countries allow personal health records to be stored within the country. Even cloud storage is considered as International data transfer.

This is a great idea.

If you plan to implement the AI in the Web app, I think you should request this as a new project for the next GSoC or an OpenMRS Sprint, as none of this have been developed yet.

Yes, But as an OpenMRS we are providing these features as an application/Software as a service, AFAIK we are not dealing with any real patients or countries :smile:. Usually, deployments will be carried out by the implementers in different countries. They may have different data platforms. So then how can we collect those data?

Thank you so much @suthagar23 for imparting me a view of how the backend and server implementation works. I literally had no idea of that.

To overcome this shortcoming (different organisations having different data platforms ), P2P networks can be implemented on the Android Client (as everyone will be using the same Android Client) and then design the AI/ML algorithms on the device itself.

I have some experience regarding the P2P networks and have a very good experience and hands-on the Location/Geofencing parts. Also this cant be implemented in GSOC19 as time constraints it, I will work on it as an OpenMRS Sprint as @f4ww4z suggested.

@deepak140596 this is a very nice idea but it completely relies on feeding data to the model you wish to deploy on a central server but quoting what @suthagar23 said

It is not feasible considering current poilicies of OpenMRS.
Now regarding deploying ML model on the device itself… AFAIK the best we have as of yet is TensorFlowLite also known as TfLite for android. Adding this to our app would firstly increase the app size, require high processing power mobiles and other things one may not advise for an end-user application.
Since the idea is really appealing I think developing a different project that serves this use case and may be also serve other detailed demographic information about the outbreaks would be great but adding it to the android client would not be that good an idea :slight_smile:

Thanks @codepoet2017390. This was a great aspect of which I didn’t think about. Your idea of having another project serving this purpose is very good.