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 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
-
Detailed workflow and software design for and development of a human relations module:
-
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.
-
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.
-
Add tables for job title, post, education, competency, evaluation, certificate, training, training_person
-
Create HR Aadmin or HR Manager functions:
-
To create/edit/inactivate job titles via a form, with the assignment of ISCO codes (minimum);
-
To create /edit / inactivate posts, with assignment of locations via a form;
-
To create / edit / inactivate staff attribute types (minimum) to add/edit/inactivate/upload metadata tables job title, certificate, competency ;
-
To create / edit / inactivate staff and location tags (minimum);
-
To select post-centric or person-centric mode (global variable) (minimum);
-
To import / create / edit / inactivate certificates (extra credit);
-
To import job titles and ISCO codes (extra credit);
-
To create / edit / inactivate competencies (extra credit).
-
To create / edit / inactivate training courses, assigning competencies (extra credit);
-
To create / edit / inactivate evaluations (extra credit);
-
To create / edit / inactivate staff notes (note types based on global variable) (extra credit)
-
Create HR Clerk functions:
-
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)
-
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);
-
To create / inactive assignments for staff history records, using a form (inactivating a post history record will inactivate all its assignments) (minimum)
-
To create / edit /inactivate education records for staff using a form (additional);
-
To assign / edit / inactivate certificates to staff using a form (additional);
-
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
-
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.
-
Create HR clerk reports showing:
-
staffproviders by job title, name and location with post and post history data (minimum);
-
staff by assignment, name and location with post, post history and assignment information (minimum)
-
selected staff dump of all information:provider name / address / certificates / post history / assignment history / training history/notes (minimum, additional, extra credit);
-
Keep technical documentation up to date with design decisions and development process.
-
To investigate, design and implement to the extent possible a method of synchronizing data tables with a central authorizing authority.
4. Project Task List
-
Setup Human Resources Module Framework
-
Create base humanresources module, incorporating the data model, role and privilege additions.
-
Add Job Title / Post Service to HR Module
-
Admin pages:
-
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
-
Create multiple positions for each job, each with a unique position code, department, supervisor, and office, facility or geographical location
-
Discontinue positions when they are no longer needed
-
Generate a list of all positions or filter the list to show only open, filled or discontinued positions
-
HR Manager/Clerk pages:
-
Assign an employee to a position
-
Record an employee's employment history
-
Record a change in position and maintain the employee's position history with the organization
-
Record termination of employment, including the end date and reason for departure
-
Add HR Reporting Services
-
Create and save customized reports to display aggregate data
-
Display reports as tables or charts
-
Include a time stamp on reports
-
Export report data in Excel-compatible, HTML or XML and PDF formats
-
Generate staff directories, lists of offices and facilities, position lists and other reports with customized fields, sorts and filters
-
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)
-
Incorporate reports into HR module/package
-
HR Module Data Exchange
-
Interface for External Registries
-
Specification
-
Development
-
HR Admin page updates for External Registries
-
HR Indicators (Ability to export standardized data sets for use in other implementations, such as at a district office or facility)
-
Summarize for print/export
-
SDMX and other format export
-
Indicator maintenance
-
Indicator Registry Interface
-
Indicator Table Definition
-
Indicator Admin Page
-
Documentation
-
Project Technical Documentation
-
User Documentation and Training Materials
Extra Credit
-
Add Education/Certification Service to HR Module
-
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:
org.openmrs.gutter.tools
@MODULE_PACKAGE@.extension.html.HumanResourcesGutterLinkExt
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
-
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).
-
jobTitles.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:
-
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.jsp
-
Functionality to assign a ‘provider’ person’ to ‘staff’ – adds entry to staff table.
-
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
-
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.jsp
-
Similar to the Find/Create Patient page
-
Search for staff by name or id
-
staffOverview.jsp
-
refers to mockup with ‘Provider’ selected
-
staffDemographics.jsp
-
refers to mockup with ‘Personal’ selected
-
Should be able to add attributes
-
staffPositions.jsp
-
refers to mockup with ‘Position’ selected
-
Assign and unassign staff member to a position and record the start date.
-
Manage posts.
Services:
-
HRService
-
General service, with methods to get, add and void the various objects/attributes used in the admin views.
-
HRManageService
-
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.
Dostları ilə paylaş: |