This page is obsolete. Please refer to the Feature Guide document on the wiki. We should soon move this page to archived section. 

Patient Registration

Registration module can be used for managing patient's demographic details, identities (including their photograph), address, contact information and other socio-economic details (or other non-clinical information about the patient). Your registration clerk can search for patients and can also manage their visits.

  • Search patient by name, id, address or custom attributes
  • Patient registration (identity, name, age, gender, photograph, custom attributes)
    • Capture patient's address on a geographical location hierarchy
    • Capture relationships of the patient to other patients and providers
  • Patient's facility visit management
  • Create your own printouts based on patient's registration information and make them available to be printed (e.g. identification card)

Change Password

In Bahmni, any logged in user can change the password.So that individual users no need to depend on the admin to change the password. This option is available only on home dashboard.

Once the user selects Change Password, he/she will be automatically redirected to change password page. 

Once the password changes successfully user can go back to home dashboard by clicking on the home icon available in change password page.


A program is typically used when a patient is identified as belonging to a group for which a particular set of coordinated interventions is to be followed up. For example, programs might be used for diseases such as HIV or tuberculosis or conditions such as pregnancy or interventions such as childhood immunization. The primary reason for using a program is where entry and exit dates for the program are important for reporting. Using Bahmni you can define program with one workflow and enrol patients in these program. You can visualise patient's state changes over a timeline. The encounters within a program can be easily separate out from other encounters for reporting.

Clinical Services

Clinical Observations and Notes

Bahmni has a mini-platform on which you can define your own forms and also configure a way to visualise the filled forms. These clinical notes for - general patients, emergency, surgery, vitals, intake-output, delivery, gynaecology, every disease or condition, "your own forms", can be defined using this. Your implementer can breakup a particular disease or a condition into multiple forms and group them so that they can be viewed together on patient and visit dashboards. In each of these forms you can make multiple numeric, textual, coded options, true-false/yes-no, date, date time, duration type of observations.

The users can recall the data filled previously in these forms, choose their favourite forms or decide to pull up one from the list of the forms in the system.

These forms can be created by importing CSV files or through the administration user interface.

Bahmni has been deployed in hospitals that do not mind sharing their forms (as open source) for other hospitals. We intend to setup a website that could facilitate collaboration around such content.


The clinicians can capture diagnosis of patients and manage their old diagnosis. In the database these diagnosis can be mapped to ICD-10 codes for reporting purposes. Bahmni allows you to configure your own attributes for the each diagnosis like inactive, ruled out etc.

Drug Order

Using this feature the users can make new drug orders, stop or refill the active ones. It allows them to choose route, frequency, dosage and instructions. This feature has been designed to make your users highly time efficient, by providing them sensible defaults wherever possible.

Bahmni provides a mini-platform on which your implementer can configure template for drug order regimens - so that certain commonly ordered drugs don't have to be entered again and again. The user can invoke these templates that automatically populates the drug orders on user interface which they can review and save.

Drug Order Dispensing in Pharmacy

This will provide the ability for the pharmacist or the clinician dispensing drugs to mark drug orders as "Dispensed" using the clinical module. Either all the drugs can be dispensed at once or specific drugs can be dispensed.

Orders and Fulfillment

Ability to place lab orders and procedure orders from clinical module. The procedure orders placed can then be viewed and marked as completed and relevant information can be provided. For lab orders, integration will be built between clinical (OpenMRS) and lab (OpenELIS) systems which will enable the lab dashboard to be auto-populated based on the order from the clinical module. The lab technician can then collect sample accordingly and marking the order as fulfilled. These orders are integrated with OpenERP, so you could setup Bahmni to create quotations for these.

Patient Dashboards

Patient dashboard is another mini-platform on which different types of canned display widgets can be placed by your Bahmni implementer. Bahmni provides a wide array of canned widgets which the implementer can choose from - diagnosis, observations, tabular view, graphical view, drug orders, patient profile, lab results, visits, radiology results, disposition and in-patient summary. Your implementer can just configure them (by choosing number of visits, terminologies, age groups, etc.) to create your hospital specific dashboard. Bahmni supports multiple dashboards for configuring additional disease or condition specific summarised views.

Visit Dashboards

Visit dashboards are similar patient dashboards but they display data for a single visit. Multiple visit dashboards can be created too. Each visit dashboard will also have a printable view, optimised for paper. All the canned widgets are extremely configurable and you can create your own discharge summary printout without writing any code.

  • Drug Orders
  • Drug Order Templates (configurable by JSON file)
  • Disposition
  • Order Fulfillment & Procedures
  • Visit Information
  • Patient Dashboard (longitudinal views)
  • Disease/Condition support (consisting of configurable dashboards, observation templates, drug templates)
  • Line Graphs for trends

Retrospective data entry

 Bahmni allows the users to create the data in the past and on behalf of another provider (if granted privilege to do so). The user can also view the forms filled over time and edit data forms.

In retrospective mode - orders, bacteriology and disposition tabs are disabled. The reason being that these are captured at point of care and hence not entered retrospectively

PACS integration

Integration of procedure order for x-ray with the x-ray device. Picture Archiving and Communication System (PACS) integration for storage of and access to images from Bahmni. Electronic images and reports will be transmitted digitally via PACS; this eliminates the need to manually file, retrieve, or transport film jackets. Read about Bahmni PACS architecture here.


Multiple languages

 OpenERP comes out of the box with support for multiple languages.
OpenELIS also support multiple languages to some extent.
Registration and clinical modules of EMR also supports multiple languages.

In Patient Management

In-Patient Dashboard

Bahmni allows you to create a dashboard for in patients. Like patient dashboard this can also be configured based on the needs of the hospital.

Ward management

You can create your own in-patient wards and each ward with multiple physical spaces. Each physical space in-turn can have multiple beds created in them. These beds can be defined in a way that it spatially matches the actual layout of your ward, allowing for empty and other non-bed occupied spaces.

Admission, Discharge and Transfer

The nurses can admit, discharge and transfer a patient using this feature. During admission and transfer a bed can be assigned to the patient.

  • Admit and Discharge with notes
  • To Admin, Admitted, To Discharge list

Patient Documents

Your hospital may have to receive and capture patient's information in form of documents. This could include patient's paper record scans, X-Ray images and other documents received from external entities. Bahmni allows you to upload these documents by tagging them and associating it to specific visits of a patient. These documents can be captured directly (by using the camera) using a mobile interface of Bahmni too. All these documents get attached to patient's record viewable from other parts in Bahmni. On these documents the clinicians can also write their comments/notes.

  • Image scanning (Android, iOS devices)

Patient Data Migration and Import

It is quite likely that your hospital already uses some system or maintains the data in excel files or access database. It doesn't make sense to loose all the data when switching to a new system. Bahmni provides a simple migration path using which you can import the old data into Bahmni using CSV files, without writing complex data migration scripts. It follows a convention based approach, so you can just name the headers of the CSV files to correspond to the new data model.

You can also use the same approach on an ongoing basis to bring in data from sites that do not have Internet connectivity.

EMR Reports

Bahmni provides couple of options for EMR reporting.  You can also define excel file with formulas or macros which can be filled by the data on running the report - allowing you to create your own visualisations using all the power of excel.

Configurable Canned Reports

The challenge of creating canned reports on patients medical record is that the requirements vary widely by hospitals and is also dependent on how terminologies, forms, patient attributes are setup for them. Bahmni offers a solution to this problem by providing easily configurable canned reports. Bahmni provides a library of these reports using which each implementation can easily create their own reports without understanding the underlying data model of OpenMRS. You can also combine multiple of these as sub-reports to create your own reports. These reports are available in PDF, CSV and HTML format.

Custom Jasper Reports

Bahmni comes packaged with JasperReports. JasperReports is a mature reporting platform, on which your Bahmni implementation team can create custom reports on OpenMRS (and also also on Odoo, Lab) database.

Laboratory Management

The lab sub-system (OpenELIS) is different from EMR (based on OpenMRS), Bahmni automatically creates the patients and their lab orders in Lab system when created in EMR. It also sends the test results and referral information back to the EMR.

  • Sample collection
  • Test and results
  • Test referral
  • Print out of result
  • Lab workload management
  • Reports

Patient Samples and Lab Tests

The lab system allows the user to capture the patient's sample information and generate the label numbers for them. The user can select a panel of tests or individual lab tests for the taken sample.

Results and Referrals

When the results for tests become available they can be entered into the system. Once all the results are available the lab in-charge can validate the test results by accepting or rejecting them and take a printout of the tests.

If your lab doesn't have the facility to perform the tests on the sample, then you can record the test and refer the sample to an outside lab. When the results comes back, you can upload the document received and/or update the results of the test. The lab system allows you manage the list of outside lab facilities where you refer tests.

Lab Dashboard

Bahmni has a lab dashboard that gives a bird's eye view of the workload in the lab. It also provides simple patient search utilities and quick-links for performing frequently used actions from the dashboard.

Operational Reports

  • Referrals
  • Tests performed

Stock Management

Stock management feature is provided via the Odoo sub-system, adapted slightly for health facilities, in Bahmni. Stock management allows you to do the following:

  • Hierarchical modelling of your warehouses and stocking points
  • Management of products (medicines, other supplies) that are present in the stock
  • Management of your suppliers from whom you purchase the products
  • Procurement of the products from a supplier, broken up by batches with their expiry dates
    • Supplier management
    • Quotation, Payment and Delivery
  • Stock movement between different stocking points and warehouses
  • Ability to view the current stock levels by products
  • Automatic reduction in stock of product batch quantities when patient pays for the invoice consisting of products (via the billing function)
  • Reports
    • Sales, Discounts, Credits
    • Purchases
    • Stock Movement
    • Inventory Status
    • Organisational Accounts

The detail documentation for this is available here and here from Odoo.

  • Warehouse setup
  • Inventory movement
  • Stock out reports
  • Integration with procurement

Billing and Accounting

Billing and accounting features are provided via the Odoo sub-system, adapted slightly for health setup, in Bahmni. For your health facility this allows you to do the following:

  • Billing
    • Setup discount, credit and tax related accounting heads. Define financial years.
    • Create draft bill (quotation) consisting products (drugs, injections, etc) for a patient. When a clinician creates a drug order in Clinical Services module, it automatically creates a draft bill with each product and its quantity.
    • The billing system automatically chooses first to expire batch for each product to dispense from. Also, an ability to select the batch numbers from a drop down list is available. If the user enters any batch number which is not available, a validation message is shown.
    • Take payment for the bill after giving credit, discount and applying taxes.
    • A mechanism to validate the sale price against product MRP is available.
    • Maintain patient's financial record.
    • Standard accounting reports.
    • Drugs, Services (is configurable and one can add any category)
    • Payment
    • Discount, Credit
    • Patient's Financial Account
    • Accounting and Financial Reports
    • Integration with drug order in clinical
  • Accounting

Since, Bahmni is based on OpenERP, all the OpenERP 7 apps available online which could be used out of box for other requirements e.g. HR management, Project management, etc.

System Administration

Master data management

Since Bahmni is made up of different sub-systems, same master data is required by more than one sub-system. For all such shared master data, OpenMRS is used as the source. Currently following - laboratory tests/panels/samples and drugs are maintained in OpenMRS. Bahmni integrates laboratory master data with OpenELIS and OpenERP products; drug data with OpenERP products.

CSV based data import

Bahmni supports CSV file based data import of the following:

    • Laboratory master data (Sample, Panel and Tests)
    • Drugs
    • Reference codes (e.g. ICD 10, SNOMED)
    • Patient's registration details
    • Patient's relationships
    • Patient's clinical observations
    • Patient's lab results
    • Patient's program enrolment

Packaged OpenMRS roles with Bahmni

OpenMRS has a lot of privileges and assigning them correctly could be a challenge for someone who doesn't understand OpenMRS's data model quite well. To simplify this Bahmni provides standard roles which maps to application's coarse grained functionality. This allows the implementer or system administrator to assign roles to users based on functionality which they want them to use.

Application configuration customisability for multiple site deployments

Bahmni allows for EMR's application configuration to be overridden for multi site deployments which only differ slightly from each other. For example in country where standardised Bahmni is deployed in multiple places wh


The new Appointment Scheduling Module for Bahmni is available as part of release 0.90. You can find more details about it here and here

For Bahmni 0.89 or earlier, you may use the OpenMRS reference app's appointment scheduling 


Lab Module

When Bahmni gets installed in a facility (an Implementation), there is a possibility that they may not go with Elis system. So, we need a functionality to capture the lab results in Bahmni. There will be two ways the lab orders/results can be placed.

  • When physician or clinician wants to place a lab order for a patient then he/she could place them from Orders screen/module and we need a way to capture the results for it.

  • When patient bring in the referred out order’s results then there should be a way to enter those lab results.

On this page

The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)