Currently in the LibreHealth EHR application we a have system setup, but it is not intuitive. This project aims to develop a robust setup for the EHR application, which solves the issues listed here.
The main motive is to have a migration model for the database, i.e., if changes in one version of database is not functional, we should be able to migrate to lower/previous version.
This setup application should be independent of parent application (EHR), means as soon as .setup / setup.exe is executed, it should open a window, with all self explanatory steps (like Database configuration), and after executing final step, EHR application should launch in browser.
Basic/Recommended : Setup should be functional and should implement a migration model, fetching an updated database from a remote repo (if any).
Advanced : Setup should be functional and implemented as separate repo, which will pull the code from repo, configure and install the database and the application. It should also have feature of update, which when executed, will update the fetched code and will setup database accordingly.
Deliverables
ER diagram for database change.
Work should be submitted as PR to our github repo.
User documentation.
Developer documentation. (This can be done in code itself, with proper explanation of function, its input parameters and return value.)
Rolling back database changes is a little scary, however one idea on how to support this would be to specify changes as “metadata” instead of SQL queries. For example… added column NewField of Type VARCHAR(255) to patient_data.
I would really like us to come up with some elegant approach…and get to work on it! I wanna play. It would be great to have something that really works well…like…anything at all!
hey got this already and working hard to see it done . and in a perfect way. I am currently following the setup we have and i see things like an Installer class and site id will love to know in details more about that cant find such in the documentation
Yes did some revamping on the setup procedure. now found in /modules/setup according to @aethelwulffe
Also verified php version and mysql version of user and checks if it meets required conditions
If good but not optimal, demands upgrade of suitable versions
If bad doesnt allow user to continue to the setup until he follows instructions found in the install.md file
Looking forward to add stuffs like roll back changes that is after database has been created if user wishes to cancel the by clicking back or cancel it undoes changes made in the databse by setup
Also looking forward in creating a creen for custom settings like : theme-color , language , hospital name , etc
Nice!
I still think getting the one-directional install done will be a great step, and rollback function development will benefit from the complete model.