Annoying problem
Annoying problem
Several years ago, I faced a problem in my life. Every time I got a blood test result, I lost it. Actually, it wasn’t just blood tests — the same thing happened with other types of tests, too. It didn’t matter how I stored them. I lost both PDF files and paper copies from the clinic. Even when I put them somewhere safe — in a folder on my laptop, in my cloud storage, or in a box in my home office — it was either hard to find the results later, or I somehow lost them completely anyway.
The next time I got another test result, I wanted to compare it with the previous one. Obviously, I couldn’t find the old one.
It's enough
I started thinking about how I can solve this issue and in one day I've came up with an idea. Yes, the idea was a service that will be store my result in one place and I can open/get it when I need it on any devices.
I started thinking about system requirements. I understand that the medical data is confidential information and I can't trust third party service to store my medical results. Some bad actors would be like to extract money from it. For example, insurance companies would like to get this data to optimize their cost. So, my solution should safely persist the client's data and no one should access it. The first thing that came in my mind use encryption for store any confidential information. It guarantee no one without known password can have access to it.
Also my first thought was use cloud service to store encrypted information. Also cloud service allows me to implement heavy functionality that can make my life easier. For example, I can implement test result automated extraction to don't enter all test's indicators manually. It's a good thing that gives user ability to see trending or alert in their indicators. User can understand the state of their health uses graphs and trends. Also they can access source files of their result at any time from any device. When the need arises, they'll have no trouble finding the previous result.
Doubts
The more I thought about cloud architecture, the more I realized that it’s not easy to guarantee the security of my users’ data. Even with a well-designed solution, there is always a risk of losing user data. I think you know plenty of examples of BIG TECH companies losing their users’ data. But to me, user data is the most valuable thing they provide me with! For that to happen, they have to trust me. But how can I prove that they can trust me? And if we’re talking about a server-client/cloud architecture, it would be hard for me to convince users that I don’t sell their data to third parties.
What happens in my app - stays in the app
So, I started thinking about an architecture that doesn’t use the cloud or any other third-party services at all. As a result, I came up with the idea of simply keeping the user’s data on their device and encrypting it. Encryption would ensure that the data is secure on the device and that no one can access it. Also, since there is no data transfer to any servers or cloud services, I don’t need to prove that I’m not selling the data. Let me paraphrase Apple: “What happens in my app stays in the app.”
It's not enough
So, we — yes, we: I (turok.me) and my friend Sergej (siaroza.com) — created an iOS app that allows us to securely store our source files (.PDFs/images) on our phones. If users want to see graphs and analyze how their indicators change over time, they can enter the values of their indicators on a special page. These values are linked to the corresponding source files and are then used to generate graphs and show trends over time. Of course, we also added the ability to export and import your results. You can transfer your saved results from one phone to another. This mechanism also uses encryption to protect the data from leaks.
We uploaded the app to the Apple App Store, and we’re currently working on a mechanism that will automatically recognize indicators in the source files and fill in the values in the app.
Comments
Sign in with Apple to comment. The thread runs on our own server — no third-party comment service, no tracking.