human resources project - openmrsmodule+-+project+spec.docx · web view6/14/2011 12:15:00 pm...

13
Human Resources Project Project Specification 1. Background 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. 2. Purpose 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), but is integrated with the new OpenMRS provider model . ( 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

Upload: doandiep

Post on 12-Apr-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Human Resources ProjectProject Specification

1. Background

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.

2. Purpose

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), but is integrated with the new OpenMRS provider model. (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.

3. Data Model

3. Objectives

1. Detailed workflow and software design for and development of a human relations module:

a. Add tables from data model. Minimum requirements are staff, staff attribute, staff attribute type, staff tag, staff tag mapISCO codes, job title, post, post history, assignment. Additional work to be decided upon addresses education, certificate, cert_person. Extra credit includes competency, evaluation, staff notes, training, training class, training person.

b. Use mapping or global variables to maintain as concepts the code tables staff status, post status, cadre, reason for ending post history or assignment, work schedule.

c. Add tables for job title, post, education, competency, evaluation, certificate, training, training_person

d. Create HR Aadmin or HR Manager functions:1. To create/edit/inactivate job titles via a form, with the assignment

of ISCO codes (minimum);2. To create /edit / inactivate posts, with assignment of locations via

a form;3. To create / edit / inactivate staff attribute types (minimum)

to add/edit/inactivate/upload metadata tables job title, certificate, competency ;

4. To create / edit / inactivate staff and location tags (minimum);5. To select post-centric or person-centric mode (global variable)

(minimum);6. To import / create / edit / inactivate certificates (extra credit);7. To import job titles and ISCO codes (extra credit);8. To create / edit / inactivate competencies (extra credit).9. To create / edit / inactivate training courses, assigning

competencies (extra credit);10. To create / edit / inactivate evaluations (extra credit);11. To create / edit / inactivate staff notes (note types based on global

variable) (extra credit)e. Create HR Clerk functions:

1. To select / create / inactivate persons (with person names, person addresses, person contacts and person attributes) as staff members with staff attributes and staff tags using a form (minimum)

2. To assign / remove staff members to / from a post, yielding a post history, using a form (if in person-centric mode, posts will be created and inactivated as necessary using the job title and post forms) (minimum);

3. To create / inactive assignments for staff history records, using a form (inactivating a post history record will inactivate all its assignments) (minimum)

4. To create / edit /inactivate education records for staff using a form (additional);

5. To assign / edit / inactivate certificates to staff using a form (additional);

6. To create / select / edit / inactivate training courses as instances of trainings, and to assign / remove persons from those courses (to be controlled by a separate privilege which can be assigned to others for patient education);manager forms to assign/remove posts to locations, providers to posts, competencies to trainings

f. Create HR clerk forms to provider's names/addreses, certificates, general notes, reviews (type of note), incidents (type of note)Create a timer-driven task to update staff records with provider IDs from provider table.

g. Create HR clerk reports showing: 1. staffproviders by job title, name and location with post and post

history data (minimum);2. staff by assignment, name and location with post, post history and

assignment information (minimum) 3. selected staff dump of all information:provider name / address /

certificates / post history / assignment history / training history/notes (minimum, additional, extra credit);

2. Keep technical documentation up to date with design decisions and development process.

3. To investigate, design and implement to the extent possible a method of synchronizing data tables with a central authorizing authority.

4. Project Task List

1. Setup Human Resources Module Frameworka. Create base humanresources module, incorporating the data model, role

and privilege additions.

2. Add Job Title / Post Service to HR Modulea. Admin pages:

i. Create a job structure that includes:-- Cadres, for classifying types of health workers-- Job classifications, for standardizing broad categories of jobs-- Jobs with standard titles, codes and descriptions HR manager/clerk

ii. Create multiple positions for each job, each with a unique position code, department, supervisor, and office, facility or geographical location

iii. Discontinue positions when they are no longer needediv. Generate a list of all positions or filter the list to show only open,

filled or discontinued positionsb. HR Manager/Clerk pages:

i. Assign an employee to a positionii. Record an employee's employment history

iii. Record a change in position and maintain the employee's position history with the organization

iv. Record termination of employment, including the end date and reason for departure

3. Add HR Reporting Servicesa. Create and save customized reports to display aggregate datab. Display reports as tables or chartsc. Include a time stamp on reportsd. Export report data in Excel-compatible, HTML or XML and PDF formatse. Generate staff directories, lists of offices and facilities, position lists and

other reports with customized fields, sorts and filtersf. Create the following reports:

i. Individual Comprehensive Report (Content of all tabs)ii. Current post/assignment/leave list in alpha, location, cadre/job

title order (filterable)iii. Vacant or on-leave postsiv. Posts by location at a time disaggregated by gender/vacant, age

(DHIS 2 compatible)g. Incorporate reports into HR module/package

4. HR Module Data Exchangea. Interface for External Registries

i. Specificationii. Development

iii. HR Admin page updates for External Registriesb. HR Indicators (Ability to export standardized data sets for use in other

implementations, such as at a district office or facility)i. Summarize for print/export

ii. SDMX and other format exportiii. Indicator maintenance

1. Indicator Registry Interface2. Indicator Table Definition3. Indicator Admin Page

5. Documentationa. Project Technical Documentationb. User Documentation and Training Materials

Extra Credit

6. Add Education/Certification Service to HR Module

7. Add Training Service to HR Module

5. Module Features – Design

5.1 Setup Human Resources Module Framework

The Human Resources Module (humanresources) should be created on the OpenMRS SVN. In addition to the basic module structure, the following should be added:

5.1.1 User Roles & Privileges

The module requires the addition of 2 user roles: Human Resources Manager Human Resources Clerk

The module may require new privileges for the various views. These will be identified and defined as needed throughout the project:

TODO: Identify required privileges

The user roles and privileges should be added to the module during module startup, in the start() method of the Module Activator class, HumanResourcesModuleActivator.java.

5.1.2 Model

The following tables should be created according to the data model: assignment certificate competency education evaluation isco_codes job_title leave person_cert person_note *** person_tag *** person_tag_map *** post post_history training training_class training_competency train_person

The following object classes are created in org.openmrs.module.humanresources to match the database tables required for the module. Variables and get/set methods are created to match the columns of each table:

Assignment.java Certificate.java Competency.java Education.java Evaluation.java

Daniel Futerman, 05/11/11,
Are these added to core or to the module?

ISCOCodes.java JobTitle.java Leave.java PersonCertificate.java PersonNote.java *** PersonTag.java *** PersonTagMap.java *** Post.java PostHistory.java Training.java TrainingClass.java TrainingCompetency.java TrainingPerson.java

5.1.3 Hibernate

Hibernate mapping XML files are created for each of the module’s tables in the metadata folder:

AssignmentMapping.hbm.xml CertificateMapping.hbm.xml CompetencyMapping.hbm.xml EducationMapping.hbm.xml EvaluationMapping.hbm.xml ISCOCodesMapping.hbm.xml JobTitleMapping.hbm.xml LeaveMapping.hbm.xml PersonCertificateMapping.hbm.xml PersonNoteMapping.hbm.xml *** PersonTagMapping.hbm.xml *** PersonTagMapMapping.hbm.xml *** PostMapping.hbm.xml PostHistoryMapping.hbm.xml TrainingMapping.hbm.xml TrainingClassMapping.hbm.xml TrainingCompetencyMapping.hbm.xml TrainingPersonMapping.hbm.xml

5.1.4 Extension Points

The Java class HumanResourcesAdminList.java (extends AdministrationSectionExt) is created in org.openmrs.module.humanresources.extension.html to allow for an admin page extension.

This should include the following titles/links: ‘Manage Jobs / Positions’ – managePositions.jsp

The class HumanResourcesGutterLinkExt.java (extends LinkExt) is created in org.openmrs.module.humanresources.extension.html to provide a link in the gutter to access the human resources functionality.

In metadata/config.xml, the following should be added under the Extensions header:<extension>

<point>org.openmrs.gutter.tools</point><class>@[email protected]</class>

</extension>

5.2 Add Admin and Management Functionality HR Module

This requires appropriate views and widgets, as well as service, controller and DAO code, to be developed.

Admin Views: localAdminHeader.jsp

o Local admin header used to include imports for admin pages and create a local admin menu for the HR admin pages (refer to existing modules on how this should be laid out and used).

j obTitles.jsp – list/description of all job titles jobTitle.jsp - form to create/edit a job title managePpostossitions.jsp – list/description of all jobs/positionsposts, with

functionality to filter the list to show only open, filled or discontinued postsitions. editPospostition.jsp – form to create/edit a job:

o Additional functionality: Create multiple positions for each job, each with a unique position

code, department, supervisor, and office, facility or geographical location (may be partially included)

Void positions when they are no longer needed Link to ISCO job classifications

manageStaffstaff.jspo Functionality to assign a ‘provider’ person’ to ‘staff’ – adds entry to staff

table.o Should also be able to search and list existing staff, with the option to

unassign, or void, staff. staffAttributeTypes.jsp – list/description of all staff attribute types staffAttributeType.jsp – form to create/edit a staff attribute type

Manage Views: localManageHeader.jsp

o Local front end header used to include imports for pages to manage staff, i.e. a top link menu with links to various pages to manage staff (refer to existing modules on how this should be laid out and used).

findStaff.jspo Similar to the Find/Create Patient pageo Search for staff by name or id

staffOverview.jspo refers to mockup with ‘Provider’ selected

staffDemographics.jspo refers to mockup with ‘Personal’ selected

o Should be able to add attributes staffPositions.jsp

o refers to mockup with ‘Position’ selectedo Assign and unassign staff member to a position and record the start date.o Manage posts.

Services: HRService

o General service, with methods to get, add and void the various objects/attributes used in the admin views.

HRManageServiceo Service used to get, save and void the various objects/attributes used in

the management of HR staff.

5.3 Add HR Reporting Services

This requires the development of Jasper Reports to work with the Jasper Reporting Module in OpenMRS. These reports (and possibly the reporting module) should be packaged for distribution with the Human Resources Module.

5.4 HR Module Data Exchange

This should allow users to export standardized data sets for use in other implementations, such as at a district office or facility.

5.5 Documentation

This includes the maintenance and creation of blogs, project pages, technical and user documentation for the duration of the project.