Contributing to Bahmni


Bahmni is a free and Open Source EMR and Hospital system specifically designed for low resource clinics and hospitals. We highly appreciate if people can volunteer their knowledge, skills, time and effort to make Bahmni more awesome and easier to adopt/deploy. Our aim is to make Bahmni the first choice of open source EMR for low resource settings.

You can help Bahmni in various ways (besides coding!). Here are some examples:

1. Help the Bahmni Community by participating in the Bahmni Online Forum (OpenMRS Talk)

The Bahmni Online OpenMRS Talk Forum (Link here) is a place for members of the Bahmni Community to ask questions, provide opinions and do discussions. It's like "stackoverflow for Bahmni". It will be very helpful if you can help answer questions, and participate in the discussions. Problems can range from - inability to install Bahmni, to errors while creating forms, to issues while setting up ERP,  to ideas for better security, or new requirements, or inputs on how to debug, etc. Simple to difficult. You can help in reproducing the problems, and then ask clarifying questions, so that you / someone else from the OpenMRS/Bahmni community can potentially answer the question. This helps the community be alive, and will also help you learn tech/domain stuff on Bahmni. 

There are many people across the world who are installing Bahmni in small clinics/hospitals – and doing it alone. Any help which makes them move faster, will be appreciated – and OpenMRS Talk is the way to do that. 


2. Improve Documentation / Wiki  or create videos

The Bahmni Wiki has been fully indexed by Google. So if you search for anything like: "Performing Backup of Bahmni databases", you will get results from the Atlassian Wiki of Bahmni. It will be very helpful that you evaluate Bahmni, and based on your experiences, provide comments / edits to the Bahmni Wiki – by adding new screenshots, or pages to help the community. If you are unsure of a suggestion, you can discuss it first on the OpenMRS Talk forum, and then based on inputs, go ahead and make changes to the Wiki. For instance see this discussion where a community member gave inputs on Wiki documentation. You can also do the same! 


Similarly, Videos are a great substitute to explaining a complex topic in a very short period of time. Bahmni Youtube channel, and video catalogue contain various videos to help people get started. From "Demo Videos" to "Technical Videos", to "Install Videos", to "Experience Reports", all kinds of videos are welcome. For instance, how can developers get started with Bahmni, or how to create Backups, or how to create a form, or how to import drugs, or how to modify the registration card of Bahmni, etc. In fact, each page of Implementers Guide on the Wiki could have an associated video to help people understand the documentation. Your help there will also be appreciated. All you need is a screen recorder (like QuickTime on Mac) to record your screen and voice, and then we can upload it to the Bahmni Youtube channel, and link it to the appropriate page on Wiki. 


3. Perform a Security Assessment of Bahmni

Patient Medical data needs to be secure. It would be great if you can use your security expertise to either suggest best practices, or tools, or scripts or videos, etc that can help technically challenged people in securing their Bahmni instances. You can also perform security assessment of the product to identify vulnerabilities or issues within Bahmni – so that we can ensure we provide the most secure yet usable experience to our customers (in as low cost as possible). Again - use the OpenMRS Talk forum for discussing / sharing your thoughts, and educating the community. If you believe you have found a vulnerability, then read this document: Reporting a potential Security Vulnerability (Bahmni) 


4. Contribute as a Developer / Coder / Analyst / QA to Bahmni

We of course would love high quality, and well thought of code contributions to Bahmni. You can follow the pull-request model of Github to submit contributions to Bahmni. The Bahmni Tech Stack comprises of:

  • EMR: Angular.JS, Java, MySQL, Spring, etc. 
  • Form Designer: React.JS, Angular.JS, Java, MySQL
  • Lab: Struts, Java, Postgres
  • ERP: Python, Postgres
  • Bahmni Connect: Progressive Web App, Angular.JS
  • Infrastructure/Installation: Ansible, Bash, CentOS (and looking to move to Docker)

You can either do code reviews, write unit tests, submit bug fixes, do minor enhancements, or pick up medium/large features depending on your skills and ability to commit time. We maintain all issues in JIRA here: Open Issues - Volunteer Board (and newbie issues for folks new to Bahmni). You can investigate or pick something from JIRA, or something in the roadmap of Bahmni. We would prefer "quality over quantity" since we are a small team – and it requires bandwidth to help onboard volunteers, answer questions, review pull requests and merge code. So – please google/do your research as much as is reasonably possible before shooting a question to the team. All discussion will happen on OpenMRS Talk – or slack and for large features, we can get onto a Skype/Fuze/Hangout/Zoom call to explain the high-level requirements (on need basis). 


As an Analyst, you can look at the cards on JIRA, and help refine the requirements – by creating mock-ups, breaking the requirement into smaller chunks/stories, helping in prioritizing stories, testing / showcasing work to either the Bahmni team or the OpenMRS Community, etc. As again, use the OpenMRS Talk as a forum for discussion and feedback. 

5. XD / Usability Inputs to Bahmni

Many locations and facilities where Bahmni is deployed, most users have never before been exposed to a Computer / Tablet. For this reason it becomes imperative to design Bahmni in a manner that is intuitive and easy to learn/navigate/use. We also would like to do a visual re-design of Bahmni to make it more pleasing / intuitive to users. As an XD / Designer you can help us in evaluating Bahmni and giving feedback on various Bahmni screens – on ways we can make Bahmni more accessible and usable. Also, you can help in providing inputs to upcoming design documents – see this Trello Board (Big Features Roadmap Board), or you can pair up with Volunteers who have picked up a task in JIRA. Feel free to use the OpenMRS Talk forum to express your opinion / ask questions / ask for more work. 


6. Help translate Bahmni in your language

Demand for Bahmni is coming from various parts of the world. See implementations list here: https://www.bahmni.org/implementations

It will be helpful to translate Bahmni to other languages. We use Transifex for hosting translation files for Bahmni, and you can submit translations in Bahmni, and also help TEST Bahmni in your language to provide feedback / pull requests on issues where Bahmni is not i18n enabled, or breaks due to some weird character inputs.