I was inspired by a personal event to create an easy, non-invasive technique to help patients get an "early" and "accurate" diagnosis of Parkinson's, wherever they are around the world. Traditional methods of extrapolating the severity of Parkinson's Disease from patients are often time-consuming, take numerous rounds of tests and still stay undiagnosed; the cost is exorbitant, and invasive and inconvenient to the body. I was reading a study of a simple, new test that patients could take to find their UPDRS (Universal Parkinson's Disease Rating Scale) rating, and I decided to build upon it. There was a problem in that study; only those who had special equipment and access to a medical facility could leverage what was being done. I wanted to bring this capability to the patient with a minimalistic process, easy access, and with accuracy for as many people as possible.

What it does

The Noninvasive Parkinson's Detector is a mobile app that can be used to detect the mobility section of the UPDRS scale in less than five minutes using a series of tests. The first test is the Static Spiral Test, in which the patient traces a spiral shown on the screen. The app takes into account how much the user's hand-drawn path meanders from the actual spiral. The second test, the Dynamic Spiral Test, is similar to the Static Spiral test, except the spiral on the screen flashes on and off, forcing the patient to keep track of the spiral's shape, intending to be more difficult. The app stores the instant accelerations of each of the two tests in its respective histogram, and the Mobility UPDRS score is derived from the L2 Norm of the histograms. The closer the score is to 0%, the healthier the patient is. The third test, the Stability Test, measures how stable the patient can keep their finger on a certain point for ten seconds. Again, the lower the score, the better shape the patient is in.

After every test, the app generates a line-graph which plots the user's acceleration when drawing (pixels/unit time^2). This is also a visual indicator to show how well the patient is performing; if the graph is more-or-less closer to the x-axis, the lower the UPDRS rating. There is also an info button on the top right which gives clear instructions as to how the patient may take the test.

How I built it

I built this app using Dart/Flutter, enabling cross-platform iOS and Android capability. I used several libraries such as GestureDetector and Charts to create the app. I also used the graphic design tool, Adobe Illustrator to design the logo.

Challenges I ran into

Some challenges include finding the correct way to mathematically calculate the rating, accommodating for display metrics as some devices have a notch or wider screens, and how to create a pop-up modal. Although these took me some time to figure out, I am proud to have finished it.

Accomplishments that I'm proud of

I am proud to have created a simple but effective tester that can be accessible by anyone all around the world, without needing special equipment or medical facilities - which at this time, are really booked and busy with Coronavirus patients.

What I learned

I learned how to use GestureDetector to draw on the screen, how to create line graphs, and how to use statistics to calculate the UPDRS score.

What's next for MobiTest

I am currently looking to collaborate with a neurologist who can review or refer this app to his or her patients, so I can possibly get more data and use machine learning for alternate tests. I am also working on a feature where patients can save their previous tests, keep track of trends, and send them to their doctor.

Built With

Share this project: