-
Notifications
You must be signed in to change notification settings - Fork 3
Overview
The Midwife-EMR system is a NodeJS web application that uses a MySQL database for data storage. It is designed to run on a server, preferably as a service if in a production setting. Users access the system via web browsers from laptops/desktops or tablets using connections secured by SSL.
-
Express 3.x
- A great way to make a NodeJS web application.
-
Bookshelf
- An nice ORM using promises.
-
Passport
- Authentication made simple.
-
PdfKit
- Report output in PDF format easily.
-
Jade
- A nice way to work (not work) with HTML.
Of course, there are many other modules than these (see package.json). See Installation for installation details.
For tables involving patient information, all changes are stored in separate log tables preserving the following information:
- Who made the change
- What was changed in each record
- At what time the change was made
- If the user is in the attending role, who the supervisor was
All changes are preserved indefinitely and allow the reconstruction of historical changes made to a patient's records over time.
At the current time, the user interface to access and view/print these historical changes is partial and rudimentary at best - there is a lot more work that needs to be done to allow the users in the supervisor role convenient access to the information. In spite of this, the historical information is being preserved even if the access to it is not yet convenient.
NodeJS runs in a cluster configuration using the Recluster module. This allows issues/bugs/failures in a user's request to be handled gracefully without affecting other users or taking down the system. Requests that end in failure are logged and the thread that managed the request is stopped and recreated. In addition, the number of clusters employed will correspond to the number of CPU cores that are available. The result is a stable application.
The application is i18n capable using i18n-abide by Mozilla. Currently there are no other languages set up except for an extremely inaccurate and out of date Cebuano translation (which is a minority language spoken in the Philippines). But the foundation has been laid for other languages should the application be needed in a different or even multiple language context. In fact, if some users wanted to use one language while others another, that is no problem because each user can specify the language of their choice in their profile.
Currently there are 145 tests using Mocha though there really should be more.
This software has a GPLv3 License.