human resources project - openmrsmodule+-+project+spec.docx · web view6/14/2011 12:15:00 pm...
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
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.