Bahmniapps 0.81

Hi Bahmni team,

Following up on some of @mogoodrich’s questions, we are trying to figure out how to both a) use the bahmni-installer RPM to set up our Bahmni distribution, and also b) apply bug fixes that we need into this same distribution.

Our working idea is to set up Bahmni per the latest released 0.81 installer RPM, and then after this is done, replace the bahmniapps code with our own forked version (which we have forked from the 0.81 branch of the upstream repository). Could this work? Is this asking for trouble? Do your teams have similar needs and what approaches have you developed?

Similarly, we are trying to figure out how to develop and submit pull requests against 0.81 while staying on a stable version. Is the latest from the 0.81 branch considered stable enough or us to use day-to-day? Do you consider this production-worthy with only minor bug fixes making it in (i.e. is it suitable for continuous delivery) or is it under more active, less stable development day-to-day?

Thanks! Mike

Hi @mseaton, My personal opinion is that, having to work on the fork and applying bug fixes is a good idea. So, that you don’t have to depend on Thoughtworks for urgent issues. I am thinking of the below process.

  1. Create an openmrs talk for the problem.
  2. We will review it and let you know if we can fix it from Bahmni’s side. The fix will generally be on master. It will be backported only if it is serious/high priority issue.
  3. If the fix is not high priority for Bahmni team, you can go ahead and fix it on your fork and send a PR. The PR will be merged to master (and might be to branches depending on Release Manager’s call).

To answer your question of latest 0.81 branch being stable, the answer is Yes. After we release artifacts to bintray, we wouldn’t add any new functionality to this branch. There might be some high priority bugs that might end up in this branch (and subsequently be published to bintray). Thsi is the reason, you may see multiple rpms for the same release in bintray. But they will be “well tested” and stable.

@darius @angshuonline @vinay Please feel free to pitch in.

Thanks @bharatak,

We’ll look into trying out this path. One complexity is just that there are so many moving pieces - there are versions of bahmnicore, bahmni-installer, bahmni playbooks, bahmniapps, etc. that need to be keep in compatible harmony, which makes forking and overriding any of these independently of the others a little scary. My hope is that if we install the latest version of a bahmni release line (eg. 0.81) from bintray, then we can confidently fork and run off of the latest from the associated branch of bahmniapps from github (eg. branch 0.81). It will start getting more complicated if we also find things in bahmnicore or in the installer/playbooks that we would like to fix and update independently as well.

Cheers, Mike

Hi @mseaton, The following are some ideas

bahmni-playbooks - is a project which maintains all the ansible related playbooks. It was under high development for last couple of releases. Once it becomes pretty stable (might be a couple of releases more .83 and .84), the work on this will go down significantly. The output of this project is the bahmni-installer artifact which packages all the playbooks.

bahmni-package - is a project which builds rpms for each of the individual components of bahmni. The work on this project started in .80 and will be stable in a couple of releases and the development work on it will go down.

bahmniapps - This is the main angularjs frontend app which needs special handling as discussed in the thread.

bahmni-core - The output of the project are bahmnicore.omod, openerp-atomfeed-client.omod, openerp-atomfeed-client.omod. These being regular openmrs omods, you can have a PIH custom omod dependent on bahmni-core omod. You can override services and resources in the custom omod and manage it by yourselves till the time the fixes get back to bahmni-core omod.

Custom UI - Custom UI requirements could be handled using OWA support of OpenMRS in any latest javascript based technologies like React or Angular. We can also work towards an easier integration of these apps to Bahmni Landing Page

Reports - Bahmni supports canned reports OOB, supports Custom Excel using macros and a provision of creating new Reports using custom Sql queries. Also, Bahmni comes Out Of The Box with openmrs reporting module which can be used when required.