COVID-19-electronic-health-system / Corona-tracker

An easy-to-use PWA to monitor the user's wellness and learn about COVID-19.
https://coronatracker.me/
MIT License
234 stars 101 forks source link

Integration of Behavioral Progress #129

Closed ransing closed 4 years ago

ransing commented 4 years ago

Imagine a scenario: In the next few months, there is a wave of behavioral issues plaguing our population due to the current coronavirus crisis. We have to be at the forefront in not only bringing a light to these issues but also use the technology we have available to help mitigate some of these issues. If you believe that we have the capability of using open source platform to help people fight these mental health issues, then please continue reading and join us in this noble cause.

Please find the presentation slides here --> https://bit.ly/3b8Ihzs

Motivation

As mentioned in the above slides, this component is to help us understand how the participant/user is dealing with the crisis by logging their behavioral health and using the information/data we collect to engage the user in providing a curated user experience. This will also help the user come back to the application even when they do not have active symptoms from the virus.

Causes

We are already collecting the wealth of information from the users thanks to this incredible collaborative initiative. This information corresponds with their behavioral health and users may not know it. The purpose of this behavioral integration serves two causes:

  1. Helping us understand by collecting data and researching it to see how it correlates. Simple example being Stress levels corresponding with fever or any other symptom. We can publish this data (as a research data) to gain more traction.
  2. Individual data (about the daily progress of user) can be fed back to the user to engage their participation. For example, if the user logged improvement in their stress levels in the past two days, we can alert the user the next day complimenting on their progress to make them come back to our app. This can act as a self-help loop to help users be aware of the issues they are facing and also a reminder when to seek help.

Technical Challenges

If you are still reading, Thank you! If you wish to help, this is the part where we can make a difference. The format of progress we will make in integrating this section (Behavioral Section) is as follows:

  1. Wireframing the UI (simple pages, welcoming and calm interactive elements).
  2. Coming up with simple (1 minute or so) questionnaire to help understand the major behavioral issues participant is facing (stress, appetite, sleep, anxiety, etc.) We will have answers which the participant can easily quantify
  3. Collecting the data and storing it in the backend.
  4. Displaying data using libraries (such as this )
  5. Selecting which data can we publish and what backend data tools we can use.
  6. Feeding individual data to the participant on their progress.

As we deal with the goals above we will have more features previously unimaginable. Please comment below or reach out to me on discord @ceaseless to make this happen.

Thank you

ngiangre commented 4 years ago

@ransing I wholeheartedly agree we need to link this into the health chart/quiz that's being built. We can frame this as a personal diary log thing. Can you take the lead on assembling a team here (via discord and this issue) and set up a standup where we scope and figure out tasks ad integration into versioning? I mean you already are so I'm in :)

tesla809 commented 4 years ago

Agreed! This feature will be very important since social isolation can lead to a whole host of mental health issues. @ransing since you are a domain expert in this area, would you like to lead team efforts on this feature?

Can you create a rough mock-up of how the functionalities and UI/UX will look/behave. Then meet with @BrianHHough (designer extraordinaire) so that you both can design a stylized mockup based on your insights?

SomeMoosery commented 4 years ago

@ransing this definitely seems like a worthwhile and little-explored long term effect of COVID-19 that is surely worth investigating. Plus, this data collection process seems like it can dovetail nicely with the symptom-tracking features we're going to be implementing - seems like a perfect fit!

When you're ready to start integrating this into the app on the technical side, definitely reach out (or if you have any questions in the meantime feel free to ping me - Carter Klein on Discord). I'm a software engineer, so while I'd be happy to help prior to that I'm not sure what capacity I'm able to since I think the last life-science-esque class I took was my freshman year of college - definitely not a domain expert on the medical side of things :)

ngiangre commented 4 years ago

I can help or atleast find the people that can.

ransing commented 4 years ago

@tesla809 I will reach out to Brain for design imput. Definitely seems we need a simple, minimal and welcoming design. @ngiangre thank you and yeah, I will make a discord channel and lead the standups once we have a few people. We will keep it simple with limited attainable targets which have a close feedback loop. And we will keep on doing iterations of it (like SCRUM). @SomeMoosery Thank you Carter. Thanks for welcoming to help integrating the data. We will certainly need guidance when it comes to feeding the user collected data to the appropriate backend server. I will also consult with you once we have a definitive list of attributes that we can add to the database. I also wanted to know how we can envision adding more attributes later. Since it is a scalable (and we will scale) application, how wise it is it plan for a database or we can edit it as we keep adding more columns to it.

Please keep the suggestions coming even if you think of it later. I appreciate the energy everyone is administering in these times of isolation.

Thanks

SomeMoosery commented 4 years ago

@ransing so on the backend side we're using MongoDB, a NoSQL database - so there's not columns as there would be in a traditional database. This makes it very easy to add/remove fields as we don't have to pre-define a schema; data is stored as if it were its own JSON object as opposed to a row in a table.

In short, adding these to the database in general will be easy, and adding more attributes down the line will be seamless

ngiangre commented 4 years ago

Thank you that was clear! Now I know what it is. Nevertheless, we need a common data model and relationships between fields not for the backend, but for comprehensiveness of the data collected and their relationships. From an analytics perspective this will be helpful.

ngiangre commented 4 years ago

We are integrating behavorial/emotional/mental questions here https://docs.google.com/spreadsheets/d/1Ji0sxIqFI49EZb7Mz4F0nkSBn1JSNMXiKjFAzJC2Jso/edit?usp=sharing these are defined as nonphysical observations in the data model. Each row represents a key, value pair within data storage. Please try to follow the existing entries. These questions are added to the queue for integration into the app. Any and all are welcome to chyme in!

SomeMoosery commented 4 years ago

Closing this issue - a lot of great points brought up and they have been documented, but to keep the issues page and Kanban. We should all take not to keep this bookmarked for future ideas