Human Resources Module


GSOC 2011

GSOC 2012

Primary mentor

Daniel Futerman

Sai Manohar

Backup mentor

Roger Friedman Carl Leitner

Roger Friedman

Assigned to

Sai Manohar

Sandeep Joshi


Getting people with the right skills and qualifications to the right places to deliver health care is a difficult problem, particularly in Africa.  Personnel rosters may contain employees who are on educational leave or assignment elsewhere, employees may be underqualified for the positions they occupy, and qualified employees are often attracted away from Africa to Europe or the US.  Therefore, health systems must constantly keep tabs on their current workforce, what additional training is needed, who can move to positions of greater responsibility, how many newly trained staff are going to be needed, and how to ensure a flow of qualified people to less desirable posts.  This is a joint effort at both the clinical and governmental levels, and developing competent systems to rationalize human resources management is a priority of many countries.


The purpose of the project is to develop an OpenMRS module to maintain personnel information and generate reports useful at the clinical level and compatible with a national personnel system. The design is based on iHRIS (an open source personnel management and qualifications system written in PHP). Additional or modified requirements may come from other international projects currently underway. The project includes basic functionality, but could extend in two different directions – building a distributed communications capability to connect with a central iHRIS implementation, or building additional clinically-useful capabilities such as a staff scheduler or a patient education tracker.  This project also can serve as a experiment in coordinating external registry data with OpenMRS tables, in this case, using the national provider registry to maintain the OpenMRS providers table.  The desired product is a packaged module like the MDR TB module which comes with a data model, API extensions, data entry forms and reports. It would likely use the Role Based Homepage module as an entry point.

GSOC 2012 Project Description

As can be seen here, in GSOC 2011, Sai Manohar was able to implement about half the tables of the complete project. In addition, some of the installation, administration and reporting features were functional but not yet user-friendly. Also, the HR Module was one of the first modules to use Maven, and the standards for doing so had not yet been established. For 2012, we would like to (1) implement data entry forms for the remaining tables; (2) improve the installation and reporting features; (3) update our Maven configuration; and (4) prepare to use our own base page with the Role Based Homepage module rather than use the Patient Dashboard and Admin pages to access the HR functions (the admin functions will remain on the Admin page).

Domain Expert(s) / User(s)

  • Roger Friedman
  • Carl Leitner

Required Skills

Coding in the OpenMRS environment generally requires the following skills: Java, JSP, HTML, SQL, Spring.  The following skills are desirable: Javascript, Hibernate, Liquibase, Maven.  In addition, report generation requires the use of some reporting features of OpenMRS and/or a report generator such as BIRT.

  • Ability to create a module in the OpenMRS environment
  • Ability to create reports in the OpenMRS environment
  • Ability to create forms in the OpenMRS environment


  1. Detailed workflow and software design for and development of a human relations module:
    1. Add tables for job title, post, education, competency, evaluation, certificate, training, training_person
    2. Create admin functions to add/edit/inactivate/upload metadata tables job title, certificate, competency 
    3. Create HR manager forms to assign/remove posts to locations, providers to posts, competencies to trainings
    4. Create HR clerk forms to provider's names/addreses, certificates, general notes, reviews (type of note), incidents (type of note)
    5. Create HR clerk reports showing providers by job title and location; selected provider name/address/certificates/post history/training history/notes
  2. Keep technical documentation up to date with design decisions and development process.

Extra Credit

  1. Create finished version of project technical documentation
  2. Create user documentation and training materials
  3. Add staff scheduler capability
  4. Add staff/patient education tracking
    1. Create form to add/edit/inactivate training instances
    2. Create form to assign/remove providers or patients to training instances
    3. Create reports showing trainees by training instance, training instance by trainee, competency counts by time period 
  5. Design iHRIS or similar interface
  6. Develop iHRIS or similar interface


Project Plan


  • Implementation of data model and the skeleton of the module
    • Creating required database tables
    • Creating required hibernate mappings and classes
    • Identifying and creating the required services for the module.
  • Adding Job structure to the HR Module
    • Creating UI from the Admin page for the Jobs and Managing Job structure with a service
    • Create multiple positions for each job, each with a unique position code, department, supervisor, and office, facility or geographical location
    • Creating HRManager functions:
      • Assign an employee to a position
      • Record employment history and changes in the employee position
  • Implementation of HRReporting Services
    • Create and save customized reports to display aggregate data
    • Display reports as tables or charts
    • Create the following reports: 
      • Individual Comprehensive Report (Content of all tabs) 
      • Current post/assignment/leave list in alpha, location, cadre/job title order (filterable)
      • Vacant or on-leave posts 
      • Posts by location at a time disaggregated by gender/vacant, age (DHIS 2 compatible)


        IT1 - May 23 - June 5:

        This iteration focuses on the first milestone i.e implementation of the data model and creating the basic HR module structure.This involves the following tasks:

        Creating the basic structure of the module - Done

        Creating the data model of the project. - Done

        Creating the domain objects and hibernate mapping files. - Done

        IT2 - June 6 - June 30:

        Creating Job structure and related classes (services). - Done

        Creating required pages to manage jobs (admin functions)  - Done

        IT3 - July 1 - July 20:

        Creating HR manager functions such as employee positions and employment history. - Done

        IT4 - July 21 - August 6:

        Implementation of HR Reporting Services to store and display various kinds of reports - Done

        IT5 - August 6 - August 15:

        Documentation and Testing Done