This is a repository for the Own Health Record Application Web App
Developed by Petr Kirpeit
Want to get every update without waiting for the next release? Check the developer log to see the latest changes before they release. ---> DEVELOPER LOG
The problem I am faced with is that each time I get a new doctor, I have to provide a lot of information manually; this leads to everyone of my doctors having only a snippet of my medical records. This can cause problems, as the doctor needs my records to see my previous health, and how it is affecting my current health. Without this knowledge the doctor could misdiagnose my illness and impede my path recovery. For these reasons, and because the German Insurances and Doctor Software Supplier are unable to release their own solution, I have decided to make OwnHealthRecord.
I have already made a running proof of concept web app with the basic functionality, however, it is not ready for stable use and is more of an alpha release. It is constantly being changed and updated with new features so there is not set release date.
- LAMP Stack
- PHP 7
- A MySQL/MariaDB database
The web app is using PHP and MySQL, because its the most used environment you will find on nearly every server. This can be used on a root server as well as on a SharedHost or VPS.
For the time being I have no capacity to implement it as a separate function. If you want to contribute to it, you are welcome to open an issue and discuss it.
Upload the files or clone the repo to your document root / html folder on your server, Then, create a new MySQL databaseon via PHPMyAdmin and import the database-structure.sql file to your MySQL/MariaDB database. This will contain the tables medicalrecords, doctors, medicine and user.
Go to the includes folder in your OwnHealthRecord directory and open psl-config.php, Once open, type in your database login credentials. In a future version this step will be replaced by a installer.
Important: The Secret Key can only be changed by you, it is also important to encrypt the data with AES_Encrypt
-
medical-Record.php - here you can write down your personal medical record and have it display what is saved in the database.
-
doctors-list.php - here you can write and see all your doctors contact information as well the treatment time, so you will not forget when you were there and how long the appointement was.
Example: Treatment period 01.2018 - 10.2018.
- medicine.php - here you can add your medication, dose, period of usage, a link to a website with information about the medicine you are taking and additional warnings from your doctor.
This software is built by me, there is no guarantee that everything will work properly. It is made for selfhosting, so you must take care of the server's security and protection of the data. For the login always use an HTTPS connection with a valid SSL certificate. The database entries are encrypted, but this doesn't guarantee the data's security. The password is hashed and salted for improved security.
This application must run on a secure environment. So if you store your medical record on your own server, you must take care of your own security to keep it running secure.
For this reason, I have provided some links which provide guides to securing your server:
- https://www.digitalocean.com/community/tutorials/7-security-measures-to-protect-your-servers
- 79 Server Security Tips for You to Secure Your Server
- How to Secure Your Server
- 10 steps to secure Linux Server for Production Environment
The Dashboard theme, developed by Creative Tim is the Paper-Dashboard and is licensed by Creative Tim under the MIT License.
The account and login functionality was developed by Github User peredurabefrog. His phpSecureLogin script is very helpful for the implementation of the account functionality and protection of information. Here is the code explanation: https://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL
The AES_Encryption code is based on this tutorial: http://thinkdiff.net/mysql/encrypt-mysql-data-using-aes-techniques/ by mahmudahsan
https://www.w3resource.com/mysql/encryption-and-compression-functions/aes_decrypt().php
-
2-Factor-Authentication
-
Encrypted medical information in MySQL Database
-
SQlite3 Support
-
20% - Guardian (a cron script which runs in the background and detects changes in the code, if a change is detected, it notifies the user about a possible data breach)
-
nice login form
-
nice signup form
-
10% add allergies page (requested via reddit by @Laxmin)
-
Upload functionality to upload medical images
-
Export functionality (divers. formats)
- Ability to upload files with medical file extensions (https://en.wikipedia.org/wiki/List_of_file_formats#Biomedical_imaging)
- Health Check reminder
- Reminder for vaccination(s) (+ emailing function)
- Timeline/log page, see all updates to your account (updates in medical record, uploaded images, reminder for health checks)
- Multi User functionality
- API