Customization of Fees

Hello Friends,

I am currently trying to understand what the best approach is to allow for a clinic to “bill” and “collect” fees throughout the clinic visit / hospital stay. In other words, we need a pay BEFORE service approach. Please see workflow:

The clinic has to collect money first to ensure fees are received because there is no insurance.

As you can see there are multiple visits to the cashier. The other requirement is that each step most be aware of amount due / amount received to know it is okay to proceed with the service. For example, Physician orders labs, money must be received before samples drawn. Cashier must know how much to receive, note money has been collected and then when the patient arrives at the lab, the lab must know that the money has been collected prior to taking sample.

We are implementing Bahmni - OpenMRS, OpenELIS and OpenERP.

Can anyone direct me in any way?

Thank you!

1 Like

Hi @dnelson, so far we don’t have synching Registration Fee(Which is collected while creating a visit i.e before consultation with Doctor) from Bahmni EMR to ERP. Only the Drugs, Lab Tests, any other items (configured under Order Tab) ordered are synched to OpenERP for Billing. And its is not possible for a user to know if the amount is received unless they check in OpenERP.

@swathivarkala, 1. how difficult is it to add additional items to the atom feed? Is that configurable at all?

  1. Would it be possible to make a database call into OpenERP from OpenMRS for a patient and display any outstanding balance? I’m trying to understand how much custom code would be involved, if it’s possible and again, is there any documentation available?

  2. Is there any other way besides…printing receipts from OpenERP to show or having staff look up patient in OpenERP and the in OpenMRS?

The is a huge issue for this clinic. There is no insurance so all serviceset much be prepaid. It seems like this wouldn’t be the only place that would have this requirement?

Hi @dnelson,

For Cashier who will have access to ERP will be able to see the Outstanding Balance etc. But for users of EMR(Bahmni, OpenMRS) like Nurse, Doctor, Reg Clerk it is not advisable to give access to ERP.

With some process enforcements like printing receipt and show etc it is possible to achieve the workflow that you have mentioned in your question.

  1. For Registration Fee pay : One work around for this would be configure groovy script to Create an Registration Fee Order, upon entering obs value for REGISTRATION FEES concept, which will be synched to OpenERP and Cashier who will be handling OpenERP can collect the Money and print a receipt and handover to the patient.

Will be putting this question to our team, let you know any information or better workarounds.

1 Like

@swathivarkala what @dnelson is asking for, is an ability to tell respective providers (lab, Pharmacy, clinician, nurse etc) that the payment for the service is made. They need not know the amount charged.

One way is to allow OpenERP to broadcast this payment information as Atom Feed and respective systems (ELIS, OMRS) to consume relevant msgs & display to its users.

The question is “Is this possible?” and “How much would be the effort (guestimate) involved if someone is to build this custom functionality?” @vinay @bharatak @vinkesh any thoughts?


Right now ERP is not syncing any kind of information to MRS. In other words, there is no reverse sync from ERP to MRS.

1 Like

YES @pkanchankar and @swathivarkala! this is exactly what I am looking for…if not available now, How much effort would be involved? I was thinking, perhaps it could be something as “simple” as a read-only call for each patient to the OpenERP database and have it display on a tab in OpenMRS / OpenELIS. It would display, any Outstanding balance? Unfortunately, I have so much to learn about the workings of the systems that I don’t know if I am underestimating this ask BUT this seems like it could be accomplish thinking out of the box?

It isn’t really very simple to pull data from OpenERP and show it up in EMR and show it up — like Patient Overdue amount, etc. This kind of similar requirement did come up in JSS hospital with regards to Insurance… for doctors to be able to see how much money is pending an insurance claim for a patient, and hence how much more can they charge to insurance for that patient. In this case at JSS, the Govt pays the cost of procedures/operations via an insurance scheme where for each patient there is a max cover of X rupees per year. So, depending on pending claim amount, the doctor can suggest if a procedure can be carried out via insurance cover, or they will need to figure out an alternative way.

For such use-cases, we were thinking that it might be helpful to provide a feature where you could configure a link in EMR which on being clicked will show you some data about the patient pulled from ERP. We haven’t yet gotten down to doing more detailed analysis, but maybe something like this – where you can say that when a doc clicks on this link in the patient dashboard, show their “Overdue Amount” or “Insurance Claim” etc… (basically some OpenERP Fields), then it might solve multiple use-cases. What do you think?

Right now, in most places where the payment needs to be done first, the health provider / lab assistant / nurse usually ask the patient to show the payment receipt before continuing with the care – and hence don’t rely on the EMR to display this information.

1 Like

Yes! This is exactly what we need. Just need to be able to see outstanding balance for sure and maybe payments for the day and for what item. You say it’s “easy” so is it a call to the db with patientID via java and display? I’m a novice at this system and java but trying to really learn as much as I can.

Thank you for your comments and time in explaining @gsluthra!

1 Like

Hello Denise

So am facing similar problem, was wondering if you found solution on this, and if so can you share? @dnelson

Its doable with development effort. Some thoughts and ideas.

Bahmni allows you to create your custom control and put it up in patient dashboards. So you can leverage that to do what you want, although it will require development.

  1. Create the custom control (a specific directive - as explained in the above link)
  2. Create an end-point (API) on openmrs side (maybe a custom omod) which you can invoke from the custom control (either on-load or click of a button or a link or … )
  3. Expose another API or use existing ones on OpenERP side (see here ). Even this link might be useful, although this is for ERP 9
  • note OpenERP 7 uses XML-RPC webservices, which are not that developer friendly.
  • You can create a OpenERP module to expose the API. Or for that matter, you might want to consider writing a simple headless app (e.g using spring-boot) that exposes APIs (internal and you don’t need to expose that outside the host server). This app can directly read from the openerp database. of course this means, that you will need to understand the OpenERP data model.

Not much, but I hope it gives you some pointers and ideas.

Here is one example how to get info from OpenERP using XMLRPC.

Its irritating to not know what the problem is when an error is thrown from the ERP Web Services. But with a little trial and error it is not difficult to figure out. Hope, the above examples will be useful.

1 Like

@angshuonline As far as I understand, there is no billing for registration fee, if the patient asks for the registration fee receipt, what is the way to provide the receipt.

If there is any development required then in which way I need to proceed.