User Stories


Patient, Registration Clerk/Clerk, Consultant/Clinician, Lab Tech, Pharmacist, Hospital supervisor, Cashier, Administrator.

As a Patient

  • I would like to be able to pay by either Mobile money, Card, or Cash.
  • I would like to be able to get services when I am a non-paying client.
  • I would like to be able to know the cost I am incurring before the service is offered.

As a Registration Clerk/Clerk

  • I should be able to register a patient with their preferred payment method.
  • I should be able to select the billable items the patient is receiving e.g. consultation, lab, pharmacy.

As a Consultant/Clinician

  • I should be able to add billable items to the invoice.
  • I should be able to see the cost of the billable items to be able to advise a patient accordingly. E.g. in case they do not have all the money to cater for the prescribed care.

As a Lab Tech

  • I should be able to generate a billable item once the capability to perform the test has been confirmed e.g. necessary reagents and sample specimens have been collected.

As a Pharmacist

  • I should be able to generate a billable item once I have confirmed that it’s in stock/ or viable alternative is available.
  • I should be able to add a billable item and dispense after payment for walk-in clients with a prescription.

As a Hospital Supervisor

  • I should be able to view all bills: paid, unpaid,
  • I should be able to waive payments on all or some of the billable items.
  • I would want my staff to have user-based access to access specific functions of the billing module.

As a Cashier

  • I Should be able to see a list of bills, based on payment status paid, unpaid, new bills
  • I should be able to select one client from a list and within their invoice be able to see each billable item, with an option of selecting the payment method for each item, see the already paid-for items, the total amount due and the change due.
  • I should be able to print an invoice for the patient and print a receipt for the patient after they’ve made payment.
  • I should be able to see an indicator that payment(s) for a billable item(s) has been waived by my supervisor.

As an Administrator

  • I should be able to add or remove billable items and adjust the pricing of the same.
  • I should be able to configure cash points for different cashiers.

Features for RefApp

  • Role-based access. Not everyone using the billing function should be able to see everything.
  • The system should be able to always capture the service offered as a billable item. e.g. consultation, drugs, lab test etc.
  • There should be a billable menu of items that a cashier can use to bill a client.
  • The RefApp should be able to process payments done by cash, mobile money, card
  • The RefApp should also be able to process non-paying clients e.g. prisoners or those whose payment has been waived by the hospital administration. or whatever protocol has been set by the hospital. The function to waive payment is configurable and be allocated to whoever the facility prefers.
  • The system should display the mode of payment used by the patient i.e. Mobile money, Card, Cash, and non-paying clients.
  • There should be mobile money integration.
  • It should also be able to display a c
  • The teller should be able to reconcile the payments they received from the system: The display should show: the service offered, amount paid, processing officer, date, time, and the service station
  • The RefApp should be able to display a list of bills, based on payment status (paid/unpaid), new bills

Technical approach I: creating an openmrs module.

Creating an openmrs frontend/backend billing module: Adopt Kenya-EMR (Palladium) Billing Module

Generic Features to configure:

  1. Add configurations for the different payment points ie. those paying per service point/ those paying at the end of the visit.
  2. Conduct event driven creation of bills (orders create bills, lab orders, test orders, some encounters)
  3. Add ability to configure procedures and minor surgeries as part of the billable items.
  4. On the frontend, create a widget on the patient chart that shows all the patient’s current bills Add the ability to create a new bill while providing service.

Technical approach II: using 3rd party ERPs

Use case I: ERPNext/ Odoo

  • Features:

Inventory management (stock ledger, balance reports and inventory documentation)

All in one healthcare software(lab management, in-department operations, billing, prescriptions, reminders, pharmacy, accounting, asset management, payroll/ HR management, system configuration).

There will be data exchange between the EMR and the ERP depending on functionality/modules that an implementation prefers to use.