Have you implemented OpenMRS? Please participate in the Implementation Site Survey. If you already have, thank you!
Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Table of Contents


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 1.0, features include:

  • Bill management
  • Configurable payment modes (e.g. cash, credit card)
  • Multiple payments per bill
  • Bill adjustments
  • Configurable receipt number generator
  • Item management
  • Multiple prices per item, with a default price
  • Item departments
  • Basic time/shift tracking for cashiers
  • Cash point management





Most of the configuration for the Cashier Module is done through global options.

defaultReceiptReportId: ID of the Jasper report to use for generating a receipt on the Bill screen.

defaultShiftReportId: ID of the Jasper report to use for generating a cashier shift report.

roundingMode: How to do rounding for bill totals.  Valid settings are:

  • MID: round to nearest half (default)
  • FLOOR: always round down
  • CEILING: always round up

roundToNearest: a value x, which defaults to 1.  When set, rounding will be done to the nearest x (e.g., 1, 0.5, 0.01).

systemReceiptNumberGenerator: Fully qualified class name of the desired receipt number generator.  This can be set manually or using the Manage Receipt Number Generator admin screen.

timesheetRequired: Whether or not an active time sheet is required for a cashier to be able to create or modify a bill.  Defaults to false.  If true, cashiers will be required to clock in before being shown the Bill screen; also the cashier's cash point will be automatically specified based on the active time sheet.  If false, a cashier will be able to create or modify a bill at any time, and they will have the option of specifying the cash point recorded with the bill.

Module Administration

When the Cashier Module has been activated, an OpenHMIS Cashier Module section will appear in the administration, with the following screens:

Manage Departments

Manage departments for the billable items.

Manage Cash Points

Manage the physical locations that are used to collect cash and process payments.  These can be used when a cashier clocks in for a shift, and are associated with bills for auditing purposes.

Manage Payment Modes

Manage the ways that customers are allowed to pay for bills.  A payment mode can be as simple as cash payment, where only an amount is necessary, or more complex, such as a credit card payment, where it may be necessary to record a name, a credit card type and a transaction number.  Payment mode attributes are specified in the same way as Person Attribute Types, including the ability to prompt for a Concept value.

Manage Items

Manage all of the items that can be billed on the Bill Screen.  Each item can have many codes (which are searchable on the Bill Screen), as well as many prices (to support items that are billed at different rates under different circumstances).  The default price will be first one to be shown when the item is entered on the Bill Screen.

Manage Receipt Number Generator

Manage the way that receipt numbers are generated.


Bill Screen

Bills can be in one of the following states:

  1. Pending: The bill has all of the required information (i.e. patient, and at least one line item) and has been saved.  Pending bills can be edited without the need of a bill adjustment.
  2. Posted: Once a bill is posted it cannot be edited without performing a bill adjustment.  The bill is automatically posted if a payment is processed, or it can be manually posted using the Post Bill button.  Posted bills can be printed.
  3. Paid: A posted bill is marked as paid when the total of the payments processed is equal to (or greater than) the bill's total.  A paid bill can still be adjusted.
  4. Adjusted: A bill is marked as adjusted when a new bill is created to adjust it.  The Bill Screen will indicate that a bill has been adjusted and provide a link to the adjusting bill.  Adjusted bills are stored for auditing but can no longer be modified or printed from the Bill Screen.

The bill screen can be divided into five sections:

  1. Basic bill information
  2. Patient selection
  3. Line items
  4. Payments
  5. Operations

Basic Bill Information

This section displays information such as the cashier and cash point associated with the bill.  When viewing a saved bill, the receipt number and date of the bill will also be shown.  Also, if the current cashier is not clocked in (and this is not required---see Configuration), he/she will be able to choose the cash point to associate with the bill.

Patient Selection

This section shows the patient associated with the bill.  If no patient has been selected, or if the bill is being edited and a user wishes to change the selected patient, it is possible to search for a patient by name or identifier and select any existing patient.

Adding and Editing Line items

The line items section of the bill screen displays all billable items for the bill.  There is always a blank line at the end of the list which allows for the entry of a new item.  Line items for a bill that has not been posted can also be removed using the trash can at the left of the line.

To choose an item for a new line item entry, or to edit a previously chosen item, begin typing the name or the identifier of the item.  With a search string of at least two characters, the system will search the item inventory and show a list of results. The desired result can be selected with the mouse or by using the up/down arrow keys.

If necessary, the search can be narrowed by department using the department select box.  For example, if the Pharmacy department is selected, only items in the Pharmacy department will be displayed in the list of results.

The changes to a line are validated and saved by pressing Enter or if the line loses focus (i.e., upon clicking another area of the screen).

A summary of the bill is displayed at the bottom of the line items section, indicating the total of the line items, the total amount tendered by the client, and the change due, if applicable.

Payments and Payment Processing

Adjusting a Bill

To make changes to a bill that has been posted, it is necessary to perform a bill adjustment.  Adjusting a bill creates a new bill, preserving a link to the adjusted bill for auditing purposes.  On the new bill new line items can be added to indicate the necessary adjustments to the bill.


The bill adjustment screen shows all of the line items on the previous bill as well as any payments already processed.  Under Adjustments, a new line can be entered (e.g., to indicate the refunding of an item).

Cashier Screen

If the current user has cashier privileges, a Cashier link will be available in the top-right corner of the screen.

Timesheet Entry

The Cashier Module supports tracking cashier shifts by having a cashier clock in at the beginning of a shift (or after breaks) and clocking out when leaving the terminal.  When clocking in, use the Clock In button to update the Clock In Date/Time.  Use the Clock Out button in the same way when clocking out.

When a cashier has a current timesheet (i.e., he/she is clocked in), the cash point will be automatically set when creating a new bill.