OpenHMIS Cashier Module
Overview
The OpenHMIS Cashier Module provides a basic interface for bill creation and management. The module aims to be simple and optimized for easy keyboard entry. As of version 3.3, features include:
Bill management
Configurable payment modes (e.g. cash, credit card)
Multiple payments per bill
Bill adjustments
Configurable receipt number generator
Basic time/shift tracking for cashiers
Cash point management
Cashier Reports Page
OpenMRS 2 support for all the Cashier Pages
Requirements
Cashier module dependencies for the 3.x release are as follows:
Download
Module: https://addons.openmrs.org/#/show/org.openmrs.module.openhmis-cashier
Source code: https://github.com/OpenHMIS/openmrs-module-openhmis.cashier
Version History
Version | Released | Release Notes |
|---|---|---|
1.1 | 1-Feb-2013 |
|
1.5.1 | 15-May-2013 |
|
1.6.1 | 23-Aug-2013 |
|
1.7.3 | 2-Jul-2014 | |
2.0.0 | 24-Sept-2014 | |
2.1 | 4-Nov-2014 | |
2.2 | 25-Nov-2014 | |
2.3 | 19-Mar-2015 | |
3.0 | 23-Jul-2015 | |
3.1 | 10-Dec-2015 | |
3.2.1 | 12-Apr-2016 | |
3.3.3 | 31-Aug-2016 | |
3.4.0 | 02-Nov-2017 |
Module Deployment
The Cashier Module is deployed into OpenMRS the same way as all other modules
https://openmrs.atlassian.net/wiki/display/docs/Administering+Modules
Configuration - Getting Started
REST Web Services
The REST Web Services module must first be configured if this has not already been done.
On the OpenMRS Administration page, click on the REST Web Services - Settings link.
Update the Rest Web Services URI Prefix setting according to your OpenMRS server URI. For example, if clients connect to the server with the following URI 'http://192.168.1.100:8080/openmrs' then the prefix should be '/openmrs'. For example see the screenshot below:
Cashier Settings
All the settings for the Cashier Module are done from the Manage Cashier Module Page located in the Cashier Module Dashboard:
Click on the Manage Cashier Module Above to see the list of Cashier Management Pages. The Cashier Settings page is highlighted below:
Once you click on Cashier Settings, you will see a number of options such allowing adjustments, defining rounding and rounding mode and so on:
Cashier Settings Options
Bill Adjustment: Provides an option for the cashier to edit a bill once it has been processed. Bill adjustment is useful in instances where the cashier was to give a refund.
There are 2 available True of False settings for Bill Adjustment: Allow Bill Adjustment and Require Adjustment Reason.
Autofill Payment Amount: When set to True, this option populates the Amount in the Payments Section of the Cashier Bill with the Total Amount due from the selected Line Items.
Timesheet: True or false setting for Cashier Time tracking. Together with the Shift Reports, this enables tracking of the cashier's logins and amount of money collected during any of the time sheets.
The cashier setting for enabling the timesheet is Require Timesheet while the available Time sheet reports are: Timesheet Shift Report ID, Daily Shift Summary Report ID and Shift Summary Report ID.
Cashier Bill Rounding: This is an important setting defining how Inventory Item Price will be rounded off in the Cashier Bill. This may be useful in situations where giving out change in very small currency denominations is difficult.
Round To Nearest setting defines by how many units the price is to be rounded of. The input accepts floating type numbers as well as Integers.
Rounding Mode There are 4 options for this setting, Blank(meaning NO Rounding), Floor, Mid and Ceiling. This options can be seen below:
Number of Bills on the Patient Dashboard: On OpenMRS 2.x, it is possible to view the last X number of Patient's Bills on the Patient Dashboard. The Bills are displayed in descending order that is from the Patient's Last Bill downwards. Patient Dashboard Number of Bills To Display defines how many bills to display. For example:
Defining Other Reports: There are 3 other reports that can be defined in the Settings Page that is Default Receipt Report ID, Department Collections Report ID and Department Revenue Report ID.
Default Receipt Report ID: Jasper Report used to Generate Receipts on the Bill Page
NOTE:The Above Reports need to be first added to the Jasper Reports Module as explained in the Reports Administration section.
The above Settings can also be configured from the Cashier Global Options as explained below. This is especially useful incase once is using OpenMRS platform 1.9.x and can be seen in the screenshot below:
Cashier Global Options
Most of the configuration for the Cashier Module is done through global options which can be accessed via the Administration / Settings page (Screenshot Above). For detailed instructions on configuring Global Options click here
Parameter | Description | Valid Values | Default |
Cashier Adjustment Reason Field | Setting Defining whether or not Cashiers Need to Enter a Reason for Adjusting a Bill. | true or false | false |
Cashier Allow Adjustments | Setting Defining whether or not Adjusting a Bill is allowed | true or false | true |
Cashier Autofill Payment Amount | When set to True, this option populates the Amount TextBox in the Payments Section of the Cashier Bill with the Total Amount due from the selected Line Items. | true or false | false |
Cashier Default Receipt Report Id | ID of the Jasper report to use for generating a receipt on the Bill Page. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Default Receipt Report Id | ID of the Jasper report to use for generating a receipt on the Bill Page. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Default Shift Report Id | ID of the Jasper report to use for generating a cashier shift report. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Patient Dashboard 2 Bill Count | Number of Bills that will be displayed on the Patient Dashboard on OpenMRS Reference Application 2.x | An integer value X | 5 |
Cashier Daily Shift Summary | ID of the Jasper report to use for generating a cashier daily shift summary report. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Reports Department Collections | ID of the Jasper report to use for generating a Department and Inventory Item Total Amount collected report. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Reports Department Revenue | ID of the Jasper report to use for generating a Department summary Total Amount of revenue collected report. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Reports Shift Summary | ID of the Jasper report to use for generating a cashier shift summary report. | An integer value X this value is acquired from the desired jasper report in Report Administration | null |
Cashier Round To Nearest | This setting defines by how many units the price is to be rounded of. The input accepts floating type numbers as well as Integers. | a floating type number or integer (e.g., 1, 0.5, 0.01) | null |
Cashier Rounding Dept Id | A rounding department is need when setting up rounding. Check process for getting the rounding department id from the section #LINK | An integer value X this value is acquired from the database inv_department table explained in Report Administration | null |
Cashier Rounding Item Id | A rounding item is need when setting up rounding. Check process for getting the rounding item id from the section #LINK | An integer value X this value is acquired from the database inv_item table explained in Report Administration | null |
Cashier Rounding Mode | This setting defines how to do rounding for Bill Total Amounts | MID: round to nearest half FLOOR: always round down CEILING: always round up | null |
Cashier System Receipt Number Generator | Once a user defines a receipt number from the #Manage Receipt Number Generator Page, the Fully qualified class name of the receipt number generator is stored in this setting. The receipt number generator is best setup using the the #Manage Receipt Number Generator Page. |
| null |
Cashier Timesheet Required | This setting defines whether or not a cashier needs to have an active time sheet before they can be able to create or modify a bill. | true or false | false |
Configuring Cashier Bill Rounding
If you are using the OpenMRS 2.x Navigate to the Cashier settings page as described above otherwise you can also navigate to the Administration / Settings page described above.
From the Cashier Settings Page Set the Round to Nearest value e.g 5 which means round to the nearest 5 units
Next select the Rounding Mode e.g CEILING which means always round up
Creating Rounding Department and Rounding Item
Click on the Inventory Button on the OpenMRS Dashboard and then Click on Manage Inventory Module Page and then Click on Manage Department and then click on New Department:
Inventory Button | Manage Inventory Module | Manage Departments | Create New Department | Enter Dept Name and Description |
|
Enter the New Department's Name and Description. It's best to use the Department Name as "Rounding" for purposes of clarity and reporting:
Enter Rounding Dept Name | After Saving Rounding Dept |
Next Create a Rounding Item. From Manage Inventory Module, Click on Mange Items then Click on New Item.
Manage Items | Click on New Items | Enter Item Details |
Enter "Rounding as the Name of the item", Select the Department as "Rounding" and then Check the :Has Physical Inventory" Check box and Add a price of 0.00 as per the screenshot and then Save the Item:
Using a data base client like MySQL Workbench, get the Rounding department_id and item_id using the following queries: NB: Remember the include the name of your database e.g incase your database is called openmrs then use this name in the query e.g:
select department_id from openmrs.inv_department where name = 'Rounding';
select item_id from openmrs.inv_item where name = 'Rounding';
With this Rounding Department ID and Rounding Item ID, Navigate to System Administration -> Advanced Administration -> Maintenance and click on the Settings Link then Click on OpenHMIS:
System Administration | Advanced System Administration | Maintenance Settings | Maintenance Settings OpenHMIS | Maintenance Settings OpenHMIS |
|---|
Now Enter the Rounding Department ID and Rounding Item ID in the Cashier Rounding Dept Id and Cashier Rounding Item ID text boxes in the settings page and then save as shown below:
After saving, you have now successfully set up Cashier Bill Rounding.
Now go to the Cashier Settings and then enter a "Rounding Mode" and "Round To Nearest" value.
NB:// If you dont want any rounding, set "Round To Nearest " to "0"(zero). Just make sure "Rounding Mode" and "Round To Nearest" have some value otherwise you will get an error when trying to process a bill.
Creating Cashier User
All Cashiers must have a User account and be assigned to the Cashier role, for more information on adding users and assigning roles click https://openmrs.atlassian.net/wiki/display/docs/Administering+Users
Set up Cashiers as Providers. To setup cashiers as providers using the following instructions:
1. Click System Administration |
|
2. Click Advanced Administration |
|
3. Now follow from Step 2 for the Classic UI below |
|
Classic UI
1. Click Administration | |
2. Click on the Manage Providers link. | |
3. Click on the Add Provider link | |
4. (Optional) Type in an Identifier for the provider An identifier is used to generally describe the role of the provider. Eg Cashier, Clerk, Doctor, Nurse etc | |
5. Enter the Person or Provider Name of the user you want to set up as a cashier | |
6. Click Save |
Module Administration
With the new version of OpenHMIS (that is version 2.0+), the Cashier application will appear on the OpenMRS home page as shown below:
Click on the Cashier application/button and you will be redirected the Cashier Task page as shown below:
At the Cashier task page, you can either Create new bill, make a Timesheet Entry/Generate Shift Report or Manage Cashier Module.
In order to manage the cashier module, click on the Manage Cashier Module application and you will be redirected to the OpenHMIS Cashier Module page.