The major focus of the module currently is to show indicators of following type:-
- System Level Indicators - Memory Usage
- Application Level Indicators - Number of Login User
Basic Theory behind the Indicator Working, Which is require for future development and extension
1. Selecting Indicator purpose : - this could be a System or Application Level Indicator. our Aim is to consider what kind of System Usage and Application Usage we have to show.
2. Update And Syncing data from Database:- The data which have to shown on indicators is update and retrieved from database.
- Created HibernateDAO object of MetricTypeObject then called that in PerformanceMonitoringServiceImpl service to add/remove/modify MetricType values.
- Instead of mapping hbm.xml here used JPA annoatations.
- Created MetricType object and annotate it with Table and column annotations as below. As we define table name, primary key, column names here there is no need to refer a .hbm.xml file Also the class needed to implement Serializable in order to define Id, which is primary key.
- When the module is loaded the new table is created now and you can add data there using DAO objects.
3. Updating Data Base:- Querying the used memory for this is done using the Java Management beans where it expose both use memory and free memory values with MemoryMXBean. The following link is explaining about the structure of the beans API.
Module Repository : https://github.com/openmrs/openmrs-module-systemmetrics
Project Blog : http://milindarukshan.blogspot.com/
Latest Documentation : System Performance and Utilization Module
Previous Work on Idea
- Mozambique Implementation Packet (see system monitoring section)
- Kenya Workplanning- PUMP Demo.pdf (this is just an example for inspiration)
- KenyaEMR Appliance Setup
- PUMP Build Instructions