...
The Billable Objects Module is an extension to the OpenHMIS Cashier Module. The module adds the concept of billable objects, which are OpenMRS objects (such as Encounter or DrugOrder) that have associated costs that need to be billed to a patient. A billable object implementation enables the storing of metadata indicating that an object should have an associated bill, and allowing that association. Billable objects work in conjunction with billing handlers, which provides a framework to implement for implementing and configure configuring billing behaviour for OpenMRS objects, such as Encounters or Drug Orders. The module also saves metadata associating objects to bills. billable objects. The main components of the module are:
- the IBillableObject interface, which can be implemented to allow mapping in the database between an OpenMRS object and a bill
- the IBillingHandler interface, by which implementations can define logic for generating appropriate bill line items for an object of a particular class.
- the IBillableObject interface, which can be implemented to allow mapping in the database between an OpenMRS object and a bill
Requirements
- OpenMRS 1.9.4
- Event Module 2.1
- REST Web Services Module 2.x
- OpenHMIS Commons Module
- OpenHMIS Backbone Forms Module 2.x
- OpenHMIS Inventory Module 1.x
- OpenHMIS Cashier Module 2.x
...
Basic Operation
The Billable Objects Module responds to "create" events for objects in OpenMRS. Metadata will automatically be stored for an object that has a corresponding billable object implementation, as well as a corresponding billing handler instance saved in the database.
Configuration
Once the module has been started, a Manage Billing Handlers link will be available on the administration screen, which allows for adding and editing of billing handlers. The module includes handlers for Encounter and DrugOrder. See the developer documentation for for information on how to add other handlers.
Billable object metadata will only be saved for classes that have handler instances saved to the database.
Encounter Handler
Encounter handlers allow the association of a set of inventory items with an encounter of a particular type. For example, to associate a fee with an ADULTINITIAL encounter:
- Go to the Manage Billing Handlers screen, under Administration, Billable Objects Module
- Click Add Billing Handler
- Choose the EncounterHandler type
- Enter a name, and optionally a description
- Choose the appropriate encounter type, e.g. ADULTINITIAL
- Add one or more items from the inventory that should be billed for this encounter type
- Click Create Encounter Handler
Drug Order Handler
The Drug Order handler uses the ability of the OpenHMIS Inventory Module to associate items to drugs to find the appropriate item to bill for a Drug Order. Currently the Drug Order Handler has no configurable options; one Drug Order Handler will handle any Drug Order. To create:
- Go to the Manage Billing Handlers screen, under Administration, Billable Objects Module
- Click Add Billing Handler
- Choose the DrugOrderHandler type
- Enter a name, and optionally a description
- Click Create Drug Order Handler