Each year, approximately 60, 000 Americans are diagnosed with Parkinson Disease (PD), an incurable progressive nervous system disorder that affects emotions, continuity in voice, and movement. More than 10 million people worldwide are living with PD. (source: https://www.parkinson.org/Understanding-Parkinsons/Statistics)
Park It! is an complete solution from an IoT (Internet of Things) device made with the ESP32-based AWS IoT EduKit recording Parkinson's symptoms to an Interactive website that displays the measurements taken by the IoT device. Park It! helps mitigate or "Park" Parkinson's disease by recording key data points/symptoms from one Seeed GSR sensor (wired to the IoT device), a microphone (inbuilt), and a gyroscope (inbuilt) from a Parkinson's patient measured by the IoT device in the AWS Cloud DynamoDB No-SQL database (not to be confused with the SQL IoT rule to transfer from AWS IoT Core MQTT streaming service to the DynamoDB table). The measurements taken by the IoT Device are fast because of the FreeRTOS multithreading C code I wrote which is running on it. The recorded data in AWS cloud can be accessed on the Park It! doctor & patient portal website built using ReactJS and hosted on AWS Cloud Amplify by the doctor as well as by the patient. The authentication (sign in/create account) service of the portal is provided by AWS Cognito. The website queries the DynamoDB database using AWS AppSync (AWS GraphQl service) to fetch the patient data from DynamoDB database. The messaging service between patient and doctor is also built using AWS DynamoDB database. The graphs on the website are made in ReCharts library in React. The professional look and feel of the app is made from MaterialUI React library.The doctor can use the data displayed on an interactive graph to diagnose the patient's current stage of Parkinson's and monitor the patient's health outside of the clinic and virtually. The doctor can also use the website to communicate with the patient through the inbuilt secure two-way AWS messaging system which lets the doctor communicate with the patient. The patient can communicate to the doctor through the same secure two-way messaging system. The patient can also see information about different Parkinson's organizations and mental health activities, different physical exercises to help his/her treatment, and useful products related to Parkinson's for patients to buy eg. Leg Massager, Hand Rehabilitation Ball, Tremor-Resistant Pen.Demo
You can find the instructions to run the C code on the AWS IoT EduKit on the ParkIt github README.md, https://github.com/Raunak-Singh-Inventor/ParkIt#readme. Note: Instructions for setting up cloud infrastructure to support the Park It! portal and backend DynamoDb database are available in AWS standard documentation.
If you have have set up the C code on the EduKit, you can go to my website, https://master.d90qyrltbydx5.amplifyapp.com/, and register as a patient. :)
Here is a demo of Park It!:Park It! Design
Here is the design diagram of the Park It! ecosystem:
1. The patient records or "Parks" his symptoms data/measurements data using the:
- GSR (Galvanic Skin Response) sensor that measures the intensity of the patient's emotions. This can help the doctor to check that the patient doesn't have stress, anxiety, or another high-intensity emotion.
- Microphone (on the AWS IoT EduKit) records the volume of the patient's voice while the patient is speaking. The volume will be 0 when there is a pause in speech, thus showing that the patient does not have continuity in voice.
- Gyroscope (on the AWS IoT EduKit) measures the patients Roll, Yaw, and Pitch while the patient is walking or sitting. This detects if the patient is feeling any tremors which are causing their hands to shake.
While the data is being measured, concurrently (using the ESP-IDF port of FreeRTOS) the recent measurements are being updated on the display (on the AWS IoT EduKit).
2. When the patient presses the send button (on the AWS IoT EduKit's display), the measurements data is sent through MQTT to the AWS IoT Core.
3. An AWS IoT Rule takes any incoming measurements data from the topic the AWS IoT EduKit is pushing to (the topic will be in the format
YOUR_CLIENT_ID/#) and sends it to an AWS DynamoDB table.
4. On the website or Doctor & Patient portal the user securely creates an account or signs in using AWS Cognito.
5. Once authenticated, AWS AppSync queries the measurements stored in the AWS DynamoDB table and displays the measurements data in an interactive graph on the website.
6. Finally, the website can viewed by the doctor or patient. In addition to viewing his or her measurements, a patient can see helpful exercises, information, and products to help them with their Parkinson's. A doctor can use the graph and measurements data to help diagnose and monitor the progress of the selected patient's Parkinson disease.Park It! Two-way Messaging Design
As an added feature in the Park It! Patient & Doctor Portal or Park It! website, the doctor and patient can communicate through a two-way messaging system.
1. The doctor or patient securely signs in to the portal/website using AWSCognito.
2. The doctor or patient can send a message to each other through the "Send a Message" InputBox.
3. The message is inserted into a messagesToDoctor AWS DynamoDBtable for the Patient and is inserted into a messagesToPatient AWSDynamoDBtable for the Doctor.
4. AWS AppSync queries the messages from the messagesToDoctor (for the doctor) or the messagesToPatient (for the patient) AWS DynamoDB table.
5. The doctor or patient can view the most recent messages with the date & time.