Release Notes

Release Notes

Bahmni LITE 1.0.0 is the latest version of Bahmni, released on 15-June-2023. Bahmni LITE is preconfigured for use in clinics and small hospitals. Please use this version for production. More details about Bahmni Lite are here. To use the docker version of Bahmni see this: Running Bahmni on Docker. For larger hospitals, one can consider using Bahmni LITE, if its feature set fits the use-cases, otherwise check out Bahmni V0.93 which was released on 13-June-2022.

Bahmni LITE Release 1.0 (15 June 2023)

Explore Bahmni Lite 1.0.0

 Enhancements
  1. Dockerized: Fully dockerized version of Bahmni, to install and run Bahmni easily on an OS (Linux/Windows/Mac).
  2. Cloud Ready: AWS & Kubernetes ready, with terraform automation to deploy Bahmni Lite v1.0.0 on the cloud, in a secure fashion. Read more here.
  3. Security: Significant security upgrades and fixes! Also see the new Security Guide.
  4. Lightweight: Contains Bahmni EMR (running on OpenMRS latest version 2.5.9), Reports, and Crater for billing & invoicing.
  5. Pre-configured: Pre-configured with CIEL dictionary containing 50,000+ medical terms with SNOMED, LOINC and ICD-10 mappings, Clinical forms, India Essential Drug List and Reports, so that it is ready out-of-the-box for demos and requires minimal configuration to roll out.
  6. Mobile Responsive: Bahmni EMR UI is now mobile responsive for the Clinical module, so clinicians on the move can use Bahmni from their mobile/tablets.
  7. Lab Report Upload Module: Comprises a new Lab Report upload module (written in React). See screenshot here.
  8. FHIR Support: Provides FHIR APIs to pull data from Bahmni / OpenMRS. Read more about Bahmni Interop support for Global standards here.
  9. Tele-consultation support using Jitsi.
  10. SMS / Whatsapp / Email support for sending prescriptions or informing patients about Appointments, etc.
  11. Metabase: Comes out-of-box with Metabase analytics / reporting tool connected to OpenMRS DB and Mart DB (for easier report creation). Read more and see demo video here: Bahmni Metabase / Mart
 Pre-requisites

Docker and docker compose needs to be installed for bahmni lite setup.  

For installing docker, docker compose and other docker commands please refer to Running Bahmni on Docker wiki page.

 Installing

Installing Bahmni Lite using docker

git clone https://github.com/Bahmni/bahmni-docker.git && cd bahmni-docker
git checkout tags/1.0.0-lite
cd bahmni-lite
# Using docker compose
docker compose --profile bahmni-lite up -d
# Or use the bash script
./run-bahmni.sh


As Bahmni docker ships with default credentials, make sure that these are changed to ensure Bahmni setup is safe. Refer to the steps involved here.

To be noted that Bahmni comes with an out-of-the-box demo database. The demo database contains a location (Bahmni Clinic) and with some users created for login. One can also perform an installation with a fresh schema. Refer to this document. Also you can run your own version of Bahmni-Config by following the steps mentioned here.

 List of JIRA tickets fixed
For a full list of all Jira issues fixed in this release, see Jira tickets tagged with Bahmni Lite 1.0.
 List of Known Issues

S.No

Issue Description

JIRA ID / Comments

1.

Print on patient dashboard should not print hyperlinks

BAH-2952 - Getting issue details... STATUS

2.

Dose field in medication can be skipped if the doctor clicks on 'add button' quickly after adding medication name

BAH-2954 - Getting issue details... STATUS

3.

If Patient summary print is spread across multiple pages then, page breaks are not proper.

BAH-2915 - Getting issue details... STATUS
4.

If patient documents is viewed in patient dashboard, on clicking BROWSER back button, the document modal remains

BAH-2956 - Getting issue details... STATUS
5.

Unable to save the Diabetic Intake Form when values are entered for “Diagnosis Certainty” field.

BAH-2958 - Getting issue details... STATUS
6.

If Tele Con Appointment status is not equal to scheduled then Join Tele Consultation button is missing on the Patient dashboard

BAH-2959 - Getting issue details... STATUS
7.

Appointment time in email is different from the actual time set

BAH-3063 - Getting issue details... STATUS

8.

Details are not aligned properly in referral letter

BAH-3064 - Getting issue details... STATUS
Release 0.93.2 (13 June 2022)

 Bahmni version: 0.93-219

 Early Preview

This release includes fixing the vulnerabilities with struts-core.jar dependency

 All Enhancements


BAH-1872

Release Activities for 0.93.2 Bahmni Release

BAH-1603

Investigate on upgradation of struts2-core in OpenElis

BAH-1693

Investigate on upgradation of struts2-core in on openmrs-core

BAH-1688

"All" Tab search: Unable to get all the patients using %

BAH-1687

"All Tab search" : Unable to search the patient using name (Fully or partially)

BAH-1864

Fix deletion of macrotemplate in Bahmni-reports

 Pre-requisites
Operating System - CentOS 7.5, 7.6 and 7.7. We would advise starting with a "minimal" distro. 

Please see system requirements here

Before you go through the installation process, please upgrade "zlib" packages. 

$ yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm
 Installation

Please refer to the documentation on Installation, Upgrade and/or Advanced Installation for version 0.93

Please also refer Installing and Configuring Bahmni Connect for Bahmni Connect Setup

You can refer to All Releases page for further details on RPM versions


Note

  • Henceforth, please do not use the “service” command to start/stop/restart a service. 
  • Only use the “systemctl start/stop/restart <bahmni-service-name>” command. 
  • Ensure that you don’t have a directory “/var/run/<bahmni-service-name>”.  Such directories are henceforth created and removed as part of “systemctl” execution. Hence if you are updating an existing Bahmni installation, ensure /var/run/<bahmni-service-name> directory is not present before install command gets triggered.
  • MySQL admin password: From 0.92, we are using a stricter password policy and set to MEDIUM, which is a combination of “Length; numeric, lowercase/uppercase, and special characters”. If you are changing the admin user (root) password, you need to set password appropriately. Check MySQL documentation here for more information.
  • MySQL version configuration: Default MySQL version supported is 5.6A new configuration parameter mysql_version has been introduced to override MySQL version, which you can configure in setup.yml before running the install command. eg. mysql_version=5.7.30

Briefly:

Install

# install dependencies
> yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm

> yum install -y epel-release

> pip install --upgrade pip

> pip install babel==v1.0 python-stdnum urllib3==1.21.1 idna==2.5 chardet==3.0.2 certifi==2017.4.17 qrcode pyserial pypdf python-chart psycogreen passlib ofxparse requests


# install bahmni command line installer
> yum install -y https://repo.mybahmni.org/releases/bahmni-installer-0.93-219.noarch.rpm


# download the postgres repo rpm. 
> rm -f /opt/pgdg-redhat-repo-*

> cd /opt && wget https://yum.postgresql.org/common/redhat/rhel-7-x86_64/pgdg-redhat-repo-42.0-23.noarch.rpm --no-check-certificate

# if the filee /etc/bahmni-installer/setup.yml is not there, you can get a sample
> curl -L https://tinyurl.com/yyoj98df >> /etc/bahmni-installer/setup.yml

# configure your implementation specific settings, set repo URL
> vi /etc/bahmni-installer/setup.yml

# configure components you require
> vi /etc/bahmni-installer/local

# run the installer
> bahmni -i local install
 Upgrade/Post Installation Instructions
  1. Rebuild Search Index: It's required to rebuild search indexes from the OpenMRS UI. Without this, Patient, Drug and Concept searches won't work in Bahmni or OpenMRS. Please rebuild the indexes post install/upgrade: OpenMRS => Navigate to Administration => Search Index => Run Rebuild Search Index.
  2. Duplicate Scheduler Tasks: We have noticed that there are sometimes duplicate schedulers for OpenElis Patient Atom Feed Task and OpenMRS event publisher Task running. Having such duplicate entries relevant to Feed and Events can result in unforeseen and unpredictable synchronization issues between components of Bahmni. This was fixed as part of Bahmni-0.91 release for the default demo and clean databases. However, existing installations trying to upgrade Bahmni should manually delete the entries from database. You can do this either from OpenMRS Administration console or updating database directly. You can verify by running this SQL on mysql “openmrs” database.
    select schedulable_class, count(*) from scheduler_task_config group by schedulable_class;

    If any of the rows, show as more than 1, then you should delete the duplicate entries to ensure only one scheduler job exists and is being run.

  3. Tag a Location with ‘Operation Theatre’ : To create a surgical block in OT scheduling module, we should have at least one location tagged as "Operation Theatre". If you are not using default config, or have forked from default config previously, you must tag your OT location with ‘Operation Theatre’ tag. Without this setup, OT scheduling app will throw an error.
  4. Oviyam Viewer URL : You may need to update the configuration for Oviyam DICOM viewer URL in app config for clinical dashboard, if you are migrating from older version. Please edit file /var/www/bahmni_config/openmrs/apps/clinical/dashboard.json for the “pacsImageUrl” attribute like in the example here.
  5. Odoo Setup: If you are going to use Billing/Pharmacy/Inventory functions from ERP, you need to configure Odoo for your requirements appropriately. Please see WIKI documentation for guide. 
  6. Odoo - Undefined period error during quotation confirmation : While confirming a quotation, if there is no period defined an error is thrown "There is no Period defined". While this has been fixed for 2018 with the default ERP database, if you are going to be installing in 2021, you may still face this error. 
    Workaround:  Please follow the steps as mentioned in this page -  OpenERP error "There is no period defined" while confirming a sale quotation 
  7. Change default passwords: You should change the user passwords for OpenMRS (superman, admin), OpenELIS (admin), Odoo (admin),  Dcm4Chee (admin)


 Troubleshooting

Information don’t sync to Odoo, or published lab results don’t sync to OpenMRS: We have noticed that sometimes post installation (with bahmi-lab, bahmni-erp-connect services running) information don’t sync to Odoo (from OpenMRS) or to OpenMRS (from lab), while the front end applications seem to be working fine. If you would check the log files, you will probably see connection lost, or C3PO connection pool errors. Restarting the services seem to resolve the errors. 

> systemctl restart bahmni-erp-connect

> systemctl restart bahmni-lab


systemctl commands throwing error: 

Authorization not available. Check if polkit service is running or see debug message for more information. Failed to restart odoo.service: Connection timed out
See system logs and ‘systemctl status odoo.service’ for details.

We have noticed this error coming up infrequently. Follow the instructions provided below for resolution

https://access.redhat.com/solutions/1543343


running services in debug mode:

  • If you want to run a particular service in debug mode, you can still continue to use the “service <bahmni service-name> debug” command. However, few things you need to keep in mind
    • Always run the service in debug mode, as root user. 
    • After stopping the service, ensure that you delete the /var/run/<bahmni-service-name> and /var/log/<bahmni-service-name> directories. 

generate "LetsEncrypt" certs:

  • If you want to generate “LetsEncypt” certs from the same server machine, you will have to manually install zlib-devel package. Please see this thread for information

Can not start opnmrs service using "systemctl": 

  • Openmrs service fails to start with “systemctl start openmrs” after the usage of “service openmrs start”: 
    1. mv /opt/openmrs/log /opt/openmrs/log-backup
    2. rm /var/log/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    3. rm /var/run/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    4. mkdir /opt/openmrs/log
    5. chown bahmni:bahmni /opt/openmrs/log
    6. ln -s /opt/openmrs/log /var/log/openmrs
    7. chown -R bahmni:bahmni /var/log/openmrs


Redirecting service commands to systemctl:

  • With the release of Bahmni version 0.92, Bahmni’s services uses systemd unit files as opposed to the older init.d files. Using service commands to start/stop Bahmni services are not supported and only systemcl commands are advised. To prevent use of “service” command, we can run the optional step below that sets up a “service” function to redirect service command to call “systemctl” instead:

    1. vi ~/.bash_profile
    2. Add the following line:
    
    service() { local first=$1; local second=$2; echo “Redirecting to systemctl from Bahmni, to unset this run ‘unset -f service’“; systemctl $second $first;}
    
    3. Save and close the file
    4. source ~/.bash_profile

    To remove the above function, modify the same file and remove the service function.

 Known issues...
Known Issues
  • Use in different locale other than the default/main  - While we have improved localization support in registration and clinical modules, and searching concepts by name in logged in locale is possible, there are places in the clinical module where it is not done so - eg. medication orders. In such cases, the concepts are still being displayed in the main locale set for the implementation.
  • Performance issues with MySQL 5.7:  we have noticed certain queries taking a lot of time with MySQL 5.7 version. This release defaults MySQL version to 5.6. If you are using MySQL 5.7 and are migrating from older version of Bahmni, please set the MySQL version to 5.7 in the setup.yml
  • Beds Count mismatch on new Bed Management app: We have seen that earlier way of adding bed by sql insertions/deletions have created some dangling beds which might result in Beds count mismatch on new Bed Management app. This can also result in unpredictable exceptions on new Bed Admin UI while managing beds. You can verify if there is such issue in your database using below query and fix it instead of failing at liquibase migrations during installation.

    > select * from bed_location_map where bed_id is null;
    > select * from bed_location_map where bed_id not in (select distinct bed_id from bed);
    
    

    The first SQL returning more than zero records, is perfectly alright. If you have defined a layout but not assigned a bed for each of the locations in the layout of a ward/room, this is likely to happen. From "Ward Management" Console, you can assign a bed to that position. The second SQL will identify the invalid “bed” allocation in a ward. Invalid here means - allocation to a “bed” in a ward, which is referring to a not existent “bed” record in the “bed” table. Before running the upgrade, you need to ensure that such bed allocations are removed (remove the record) or updated with bed_id being NULL. 

  • Radiology orders are not synching unless we restart services. (pacs-integration, dcm4chee, httpd)

  • Encountered an Error saying "Feed does not exist" on openmrs logs
> update bed_location_map set bed_id = null where bed_location_map_id = <bed_location_map_id from the above query>;
Release 0.93.1 (6 April 2022)

 Bahmni version: 0.93-215

 Features
  1. Patient Identifier Extension : registration module now allows for lookup and association of other system identifiers (eg Interacing with a National ID system) by means of custom extension.
 Early Preview

This release includes an up-gradation of the log4j version to the latest (2.17.1) to overcome the vulnerabilities, please refer to the below talk thread for more details, https://talk.openmrs.org/t/log4j-security-vulnerability-impact-on-bahmni-cve-2021-44228/35367

 All Enhancements


BAH-1318

Upgraded log4j version to 2.12.4, web-clients version to 0.94.2, atomfeed version to 1.9.5, openmrs version to 2.1.6

BAH-1327

Upgraded log4j version to 2.17.1, java-utils-version to 0.94.2, openmrs-atomfeed version to 2.6.1, atomfeed version 1.10.1,openmrs version to 2.1.6,  adds liquibase migration to support column change

BAH-1330

Upgraded log4j version to 2.17.1, java-utils-version to 0.94.2, openmrs version to 2.1.6

BAH-1331

Upgraded log4j version to 2.17.1, atomfeed version to 1.10.1, openmrs-atomfeed version to 2.6.1, bahmni i.e apps version to 1.2.0-SNAPSHOT, openmrs-webservices version to 2.17, emr-api-omod version to 1.22.1

BAH-1332

Upgraded log4j version to 2.17.1, web-clients version to 0.94.2, quartz version to 2.3.2, sprint-boot-starter-parent version to 1.5.1.RELEASE

BAH-1333

Upgraded log4j version to 2.17.1, Deprecated email appender, 

BAH-1334

Upgraded log4j version to 2.17.1, atomfeed version to 1.10.1, web-clients version to 0.94.2, quartz version to 2.3.2, jackson version to 2.13.1

BAH-1345

Upgraded log4j2 property files

BAH-1346

Upgraded log4j2 property files

BAH-1354

Upgraded log4j version to 2.17.1, quartz version to 2.3.2, web-clients version to 0.94.2

BAH-1355

Upgraded log4j version to 2.17.1

BAH-1356

Upgraded log4j version to 2.17.1

BAH-1362

Upgraded log4j version to 2.17.1, removed joda time dependency

BAH-1372

Upgraded log4j version to 2.17.1

BAH-1373

Upgraded log4j version to 2.17.1, atomfeed version to 1.10.1, removed joda time dependency

BAH-1378

Upgrades web-clients version to 0.94.2

BAH-1419

Upgraded openmrs version to 2.1.6, atomfeed version to 1.10.1, openmrs-atomfeed version to 2.6.1, removed joda-time dependency

BAH-1431

Upgraded atomfeed version to 1.10.1, openmrs atomfeed version to 2.6.1, removed joda time dependency

BAH-1499

Upgraded log4j version to 2.17.1, atomfeed version to 1.10.1, openmrs-atomfeed version to 2.6.1, removed joda time dependency

BAH-1397

Generic Implementation of Extension Point for Identifier linking. 

BAH-1527

Postgres repo URL is deprecated causing an error during Bahmni installation

 Pre-requisites
Operating System - CentOS 7.5, 7.6 and 7.7. We would advise starting with a "minimal" distro. 

Please see system requirements here

Before you go through the installation process, please upgrade "zlib" packages. 

$ yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm
 Installation

Please refer to the documentation on Installation, Upgrade and/or Advanced Installation for version 0.93

Please also refer Installing and Configuring Bahmni Connect for Bahmni Connect Setup

You can refer to All Releases page for further details on RPM versions


Note

  • Henceforth, please do not use the “service” command to start/stop/restart a service. 
  • Only use the “systemctl start/stop/restart <bahmni-service-name>” command. 
  • Ensure that you don’t have a directory “/var/run/<bahmni-service-name>”.  Such directories are henceforth created and removed as part of “systemctl” execution. Hence if you are updating an existing Bahmni installation, ensure /var/run/<bahmni-service-name> directory is not present before install command gets triggered.
  • MySQL admin password: From 0.92, we are using a stricter password policy and set to MEDIUM, which is a combination of “Length; numeric, lowercase/uppercase, and special characters”. If you are changing the admin user (root) password, you need to set password appropriately. Check MySQL documentation here for more information.
  • MySQL version configuration: Default MySQL version supported is 5.6A new configuration parameter mysql_version has been introduced to override MySQL version, which you can configure in setup.yml before running the install command. eg. mysql_version=5.7.30

Briefly:

Install

# install dependencies
> yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm

> yum install -y epel-release


# install bahmni command line installer
yum install -y https://repo.mybahmni.org/releases/bahmni-installer-0.93-215.noarch.rpm



# download the postgres repo rpm. 
> rm -f /opt/pgdg-redhat-repo-latest.noarch.rpm
> rm -f /opt/pgdg-redhat-repo-42.0-23.noarch.rpm
> cd /opt && wget https://yum.postgresql.org/common/redhat/rhel-7-x86_64/pgdg-redhat-repo-42.0-23.noarch.rpm --no-check-certificate

# if the filee /etc/bahmni-installer/setup.yml is not there, you can get a sample
> curl -L https://tinyurl.com/yyoj98df >> /etc/bahmni-installer/setup.yml

# configure your implementation specific settings, set repo URL
> vi /etc/bahmni-installer/setup.yml

# configure components you require
> vi /etc/bahmni-installer/local

# run the installer
> bahmni -i local install
 Upgrade/Post Installation Instructions
  1. Rebuild Search Index: It's required to rebuild search indexes from the OpenMRS UI. Without this, Patient, Drug and Concept searches won't work in Bahmni or OpenMRS. Please rebuild the indexes post install/upgrade: OpenMRS => Navigate to Administration => Search Index => Run Rebuild Search Index.
  2. Duplicate Scheduler Tasks: We have noticed that there are sometimes duplicate schedulers for OpenElis Patient Atom Feed Task and OpenMRS event publisher Task running. Having such duplicate entries relevant to Feed and Events can result in unforeseen and unpredictable synchronization issues between components of Bahmni. This was fixed as part of Bahmni-0.91 release for the default demo and clean databases. However, existing installations trying to upgrade Bahmni should manually delete the entries from database. You can do this either from OpenMRS Administration console or updating database directly. You can verify by running this SQL on mysql “openmrs” database.
    select schedulable_class, count(*) from scheduler_task_config group by schedulable_class;

    If any of the rows, show as more than 1, then you should delete the duplicate entries to ensure only one scheduler job exists and is being run.

  3. Tag a Location with ‘Operation Theatre’ : To create a surgical block in OT scheduling module, we should have at least one location tagged as "Operation Theatre". If you are not using default config, or have forked from default config previously, you must tag your OT location with ‘Operation Theatre’ tag. Without this setup, OT scheduling app will throw an error.
  4. Oviyam Viewer URL : You may need to update the configuration for Oviyam DICOM viewer URL in app config for clinical dashboard, if you are migrating from older version. Please edit file /var/www/bahmni_config/openmrs/apps/clinical/dashboard.json for the “pacsImageUrl” attribute like in the example here.
  5. Odoo Setup: If you are going to use Billing/Pharmacy/Inventory functions from ERP, you need to configure Odoo for your requirements appropriately. Please see WIKI documentation for guide. 
  6. Odoo - Undefined period error during quotation confirmation : While confirming a quotation, if there is no period defined an error is thrown "There is no Period defined". While this has been fixed for 2018 with the default ERP database, if you are going to be installing in 2021, you may still face this error. 
    Workaround:  Please follow the steps as mentioned in this page -  OpenERP error "There is no period defined" while confirming a sale quotation 
  7. Change default passwords: You should change the user passwords for OpenMRS (superman, admin), OpenELIS (admin), Odoo (admin),  Dcm4Chee (admin)


 Troubleshooting

Information don’t sync to Odoo, or published lab results don’t sync to OpenMRS: We have noticed that sometimes post installation (with bahmi-lab, bahmni-erp-connect services running) information don’t sync to Odoo (from OpenMRS) or to OpenMRS (from lab), while the front end applications seem to be working fine. If you would check the log files, you will probably see connection lost, or C3PO connection pool errors. Restarting the services seem to resolve the errors. 

> systemctl restart bahmni-erp-connect

> systemctl restart bahmni-lab


systemctl commands throwing error: 

Authorization not available. Check if polkit service is running or see debug message for more information. Failed to restart odoo.service: Connection timed out
See system logs and ‘systemctl status odoo.service’ for details.

We have noticed this error coming up infrequently. Follow the instructions provided below for resolution

https://access.redhat.com/solutions/1543343


running services in debug mode:

  • If you want to run a particular service in debug mode, you can still continue to use the “service <bahmni service-name> debug” command. However, few things you need to keep in mind
    • Always run the service in debug mode, as root user. 
    • After stopping the service, ensure that you delete the /var/run/<bahmni-service-name> and /var/log/<bahmni-service-name> directories. 

generate "LetsEncrypt" certs:

  • If you want to generate “LetsEncypt” certs from the same server machine, you will have to manually install zlib-devel package. Please see this thread for information

Can not start opnmrs service using "systemctl": 

  • Openmrs service fails to start with “systemctl start openmrs” after the usage of “service openmrs start”: 
    1. mv /opt/openmrs/log /opt/openmrs/log-backup
    2. rm /var/log/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    3. rm /var/run/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    4. mkdir /opt/openmrs/log
    5. chown bahmni:bahmni /opt/openmrs/log
    6. ln -s /opt/openmrs/log /var/log/openmrs
    7. chown -R bahmni:bahmni /var/log/openmrs


Redirecting service commands to systemctl:

  • With the release of Bahmni version 0.92, Bahmni’s services uses systemd unit files as opposed to the older init.d files. Using service commands to start/stop Bahmni services are not supported and only systemcl commands are advised. To prevent use of “service” command, we can run the optional step below that sets up a “service” function to redirect service command to call “systemctl” instead:

    1. vi ~/.bash_profile
    2. Add the following line:
    
    service() { local first=$1; local second=$2; echo “Redirecting to systemctl from Bahmni, to unset this run ‘unset -f service’“; systemctl $second $first;}
    
    3. Save and close the file
    4. source ~/.bash_profile

    To remove the above function, modify the same file and remove the service function.

 Known issues...
Known Issues
  • Use in different locale other than the default/main  - While we have improved localization support in registration and clinical modules, and searching concepts by name in logged in locale is possible, there are places in the clinical module where it is not done so - eg. medication orders. In such cases, the concepts are still being displayed in the main locale set for the implementation.
  • Performance issues with MySQL 5.7:  we have noticed certain queries taking a lot of time with MySQL 5.7 version. This release defaults MySQL version to 5.6. If you are using MySQL 5.7 and are migrating from older version of Bahmni, please set the MySQL version to 5.7 in the setup.yml
  • Beds Count mismatch on new Bed Management app: We have seen that earlier way of adding bed by sql insertions/deletions have created some dangling beds which might result in Beds count mismatch on new Bed Management app. This can also result in unpredictable exceptions on new Bed Admin UI while managing beds. You can verify if there is such issue in your database using below query and fix it instead of failing at liquibase migrations during installation.

    > select * from bed_location_map where bed_id is null;
    > select * from bed_location_map where bed_id not in (select distinct bed_id from bed);
    
    

    The first SQL returning more than zero records, is perfectly alright. If you have defined a layout but not assigned a bed for each of the locations in the layout of a ward/room, this is likely to happen. From "Ward Management" Console, you can assign a bed to that position. The second SQL will identify the invalid “bed” allocation in a ward. Invalid here means - allocation to a “bed” in a ward, which is referring to a not existent “bed” record in the “bed” table. Before running the upgrade, you need to ensure that such bed allocations are removed (remove the record) or updated with bed_id being NULL. 

  • Radiology orders are not synching unless we restart services. (pacs-integration, dcm4chee, httpd)

  • Encountered an Error saying "Feed does not exist" on openmrs logs
> update bed_location_map set bed_id = null where bed_location_map_id = <bed_location_map_id from the above query>;
Release 0.93 (25 Oct 2021)

 Bahmni version: 0.93-197

 Features
  1. Localization - While Bahmni was designed for internationalization, there remain certain gaps and challenges towards completely localizing a specific Bahmni implementation. In this release, gaps primarily in Registration and Clinical modules have been fixed. For concepts, if you have the metadata properly set up for other languages, it would reflect so once you have logged on to a specific locale.
  2. Appointment modulenew features include ability to schedule for multiple providers for an appointment, conflict management for patients and services, ability to schedule recurring appointments etc
  3. Forms 2Forms now have additional events like onSave which allows you to do validation at form level. Form builder UI now provides a JavaScript editor with basic validations, help etc. It also provides a “preview” mode to test out your form and its behavior. Also a new table control has been introduced.
  4. Access ControlReports and forms can now be made accessible to users with specified privileges.
  5. OT Scheduling - Weekly view is now provided for OT schedules.
  6. Additional orderables -  you may mark a concept as “sellable” and configure such concepts in the orders tab, so that on order they appear on Odoo quotations. For example - procedures, counselling, physiotherapy etc
  7. Lab Improvements - result entry for referred out tests can be marked as done, test status configuration, test method management, sample printout with barcode,  
  8. Security Improvements - security enhancements towards XSS, CSRF, Domain whitelisting, Injections Attacks etc
  9. Teleconsultation(Preview feature only) - It's also possible to schedule a tele consultation appointment, built on top of Jitsi, allowing Doctor-patient interactions over video. Note, while the teleconsultation feature is fully functional, there are some missing features you should be aware of before using on production.
  10. Oviyam Viewer Upgrade - Oviyam Dicom Viewer has been upgraded to v.2.8.1.


 Early Preview

This release includes a preview of a new feature that we expect to officially include in the Bahmni 0.94 release. There is no official support for these previews, and no guarantee that configurations created now will be compatible with the official release.

Teleconsultation: With this release, it's possible to schedule a tele consultation appointment. Note, while the teleconsultation feature is fully functional, there are some missing features you should be aware of before using on production.

 Add-ons
  1. Bahmni-mart : A simplified database used for analytics wherein hierarchical structures have been flattened and pivoted and many other entities denormalized. You may plugin data visualization tools Metabase, Superset etc on top of this database. NOTE: Bahmni-mart is not part of the default distribution and packaging of Bahmni 0.93. Please follow the steps here if you would like to try this out. 
  2. Integration with OpenMRS Reporting : This Open Web App (OWA) is useful to execute Reports defined in the OpenMRS reporting module.  Please see here for documentation
 All Enhancements

BAH-551

Add new concept reference term map for pre-existing concept by CSV upload

BAH-1171

The timeslot of appointments displayed in appointment display control is not in local timezone but in server timezone

BAH-1136

Change query to get provider from patient appointment provider table

BAH-1123

Patient ID as configurable hyperlink on Appointments List View

BAH-923

Appointments: Allow saving Speciality entities

BAH-913

Reset Appointment Status

BAH-675

Show Language of the patient in List View, Appointments module

BAH-624

Auto refresh of Appointments

BAH-623

Multiple provider assignment for an appointment

BAH-1222

Address Translation gaps in the Clinical, IPD, OT, Document Upload and Appointment modules

BAH-1176

Diagnosis search from clinical module should be done in user language

BAH-1173

Diagnosis Search should be done in user locale

BAH-1060

Weekly view for OT

BAH-1017

Preview the form2 form before publishing in Implementer interface

BAH-1008

Validate and format form condition

BAH-988

Clinical Module - Internationalization of Patient Dashboard

BAH-973

Print the List View in Bed Management module

BAH-1041

Patient dashboard trends display control - Localise field names of patient attributes

BAH-972

Import of Forms 2.0 in Implementer Interface

BAH-790

Role/Privilege based access to Forms

BAH-1007

Vertical scroll - Implementation for ObstoObs flowsheet

BAH-1006

Display drugs in drug-o-gram in the "latest first" order

BAH-990

Localise the label texts of the patient attribute fields

BAH-663

Weekly View in the Appointments Calendar

BAH-968

Saving Data for obs which are selected and later hidden

BAH-930

frontend to use names field and display the FSN in user specified locale

BAH-766

Able to view and edit forms on the patient dashboard

BAH-1169

Support syncing order units between OpenMRS and Odoo

BAH-965

Bug - Refund of discounted invoice does not consider the discount

BAH-883

Bahmni Odoo addon module to support "sellable" products/services

BAH-1032

Forms getValue for MultiSelect Observation

BAH-1018

Use form UUID as translation file and form file name

BAH-1016

UI enhancements for Form Builder

BAH-1010

Create an event editor on implementer interface to provide onSave event handler

BAH-1009

Introduce onFormSave Event when form save is clicked in consultation page

BAH-1005

UI Enhancements forms 2.0

BAH-1001

Checks and inherits privileges for different versions of the form.

BAH-912

Export multiple(One and more) form builder forms in implementer-interface

BAH-866

[Form builder] Copy the translations of form (2.0) from one version to next version in implementer-interface

BAH-748

Create and render a table inside form

BAH-690

API to display form builder forms(forms 2.0) for a patient in dashboard

BAH-969

Support Translations for Bed Management Pop-up

BAH-1246

OpenELIS lab samples grid does not show the print button

BAH-1207

non-conformity page not opening in OpenElis

BAH-1078

Mark as done for result entry for referred out tests

BAH-1077

Disable modification of orders in Bahmni after editing the sample in ELIS during sample collection.

BAH-981

Lab - Type of test status configuration, allow user to select test status on results entry

BAH-1076

Free text reference range information for lab tests

BAH-1075

Test method management

BAH-1074

Sample label printout with barcode.

BAH-1073

New accession number generation logic

BAH-1188

Apply filters dynamically on the Calendar/List view of OT Scheduling module

BAH-1059

Custom surgical attributes in OT

BAH-1087

Making the "Address information" section label dynamic in the registration page

BAH-1040

Customise display order of First name, Last name and Middle name in Patient registration in EMR

BAH-987

Localise the coded concepts in patient attribute fields

BAH-927

Registration module - Create Patient should display localised string of coded concepts

BAH-1249

Patient Attribute, of type concept, should display answers in user locale

BAH-395

ROLE based access to reports

BAH-755

API - Search Provider by attribute

BAH-1082

New appointments endpoint to search patients by name/identifier relying on ORM

BAH-1208

Update Bahmni front end dependencies

BAH-763

bahmni-erp-connect application properties not getting overridden by system or env properties

BAH-1149

Bahmni-Reports- upgrade tomcat version

BAH-1178

Ship MysQL v5.6 as default in Bahmni for avoiding performance issues

BAH-1175

Update Bahmni openmrs distro dependency to include EMR API 1.24.8 release version

BAH-929

Get Concept by fullyspecifiedName API, to support the existing contract while modifying the response to include the result in user specified locale

 Bug Fixes

BAH-1029

Encounter CSV upload not working for concept names having a dot or decimal point

BAH-679

Issue with CSV upload for person attributes of coded data type

BAH-677

CSV upload failing for person attribute of 'Date' being empty

BAH-1013

Recurring Appointment details are not captured in the mart as events are not raised.

BAH-966

Error in Appointment scheduling in multiple tabs when logged out

BAH-960

Tab switch list view to calender view in Appointment scheduling

BAH-689

Appointment still shows under provider name in calendar view even after removing the provider from the appointment

BAH-688

Sorting is not working for provider column on Appointment's List view

BAH-687

Provider name does not show on calendar view popup

BAH-1240

Oviyam viewer launched does not show the correct study for patient and accession

BAH-1226

DICOM Viewer: OVIYAM2 not working on latest Chrome, Firefox browsers

BAH-1220

Events not generated when bacteriology obs is edited from patient dashboard

BAH-1148

File uploaded while entering the results for referred out tests is not saved until and unless the "Mark as Done" flag is checked before saving it.

BAH-1088

Doc Upload - Label for visit "to" is shown garbled

BAH-1056

Bahmni-core liquibase migration failing

BAH-1019

Obs are saved even if the form is deleted before save

BAH-1012

Cannot read property 'map' of undefined' error on dashboard display controls

BAH-970

ADT module shows an error message on load in the latest code on master

BAH-951

Missing "/" when trying to load Groovy scripts

BAH-928

Concept fetching by FSN should be driven by the default locale- Clinical App

BAH-696

Clinical app does not open on ipad 2

BAH-195

"More than one encounter matches the criteria" on opening patient dashboard

BAH-992

Bahmni Offline Sync omod results in failed openmrs service loading

BAH-950

filter column in event_log table is not updated to correct value in Bahmni Connect

BAH-640

Can not identify latest Form (2.0) version on Android

BAH-1243

Odoo startup fails because of missing python dependency of xlswriter

BAH-1212

Deserialization error processing orders for Odoo

BAH-1135

OpenMRS not syncing with OpenERP/Odoo due to missing property aleable.feed.generator.uri

BAH-1126

None type does not remove previously added discount in the quotation.

BAH-1124

Odoo login screen distorted.

BAH-958

Bug - ODOO Receipt printing of Partial Payment

BAH-1151

[Implementer Interface] Form2 Form Translations are not saved correctly in some cases

BAH-1150

[Implementer Interface] Form2 form condition of one form where overlapping with form conditions of other form.

BAH-1138

Not able to add .json files while importing a forms in implementer interface

BAH-1130

[Display Control] Text is getting truncated in Form Display Control and Visit Display Control when tried to add lengthy text in any of the text field

BAH-1128

Importing a form and saving it without a form privilege is failing.

BAH-1089

Form2 Forms are not rendering on Registration Second(Visits Page) Page

BAH-1011

Importing a published form is creating version 1 and not the next version

BAH-980

CSS breaking for notes in table control

BAH-976

Obs to Obs Flow Sheet formating issue for add more forms

BAH-937

Translation file names not matching form names

BAH-886

Issues with the Forms 2.0

BAH-874

Form Conditions with Table

BAH-831

Form Builder - Dragging a section inside an inner section causes the entire section to vanish

BAH-513

Deleted Form should be enabled in "Add New Obs Forms" list

BAH-141

Form builder - deleting one controls in a row deletes another

BAH-133

Do not allow to drag and drop controls to obsGroup

BAH-1247

Forms 1 shows FSN for the locale, and not Short Name

BAH-1244

python-psycopg2 installation fails due to GPG key isssue

BAH-1227

Postgres Installation fails on 0.93, due to missing yum repo for postgres 9.6

BAH-1216

Client side logging module throws error

BAH-1179

postgres version still retained as pgdg-centos96-9.6-3.noarch.rpm in /roles/postgres/defaults/main.yml

BAH-1116

Bahmni installation fails due to Click python lib dependency - Click 7.0 to be installed

BAH-935

Bahmni installer updates postgres.conf file when trying to backup postgres database

BAH-828

Unable to apply Bahmni Liquibase changes on a 'fresh' OpenMRS database.

BAH-1217

Update Ansible RPM location in Bahmni installer

BAH-1189

[Bed Management] Multiple clicks while Admitting, Transferring and Discharging patient having multiple entries in database

BAH-956

Ward list layout is not seen in In-Patient module

BAH-938

Bed Management UI layout issues

BAH-867

[Bed management] beds layout not being displayed correctly

BAH-661

Not possible to create Bed Layout without mentioning all bed details

BAH-553

Do not allow a bed type or bed tag to be deleted if it is in use with a bed

BAH-1242

Organisation page in OpenElis Administration menu displays an empty page.

BAH-1241

Unable to save sample data in OpenElis

BAH-1211

OpenELIS Reset password feature does not work

BAH-1147

Null' getting printed in sample label print for collection date

BAH-1127

OpenElis data not syncing to OpenMRS in 0.93 due to dependency discrepency

BAH-1118

LAB - error at startup, due to Hibernate mapping Test.referenceInfo column

BAH-1084

Startup of bahmni-lab fails to start due to missing property

BAH-1079

Fix for referred out test counts on the dashboard

BAH-1170

[OT] Issues with surgical block created across multiple days

BAH-1218

Formbuilder reports not working

BAH-649

Audit-log - fix bean definitions and dependency injections

BAH-648

Atomfeed Console api is compromised

 Pre-requisites
Operation System - CentOS 7.5, 7.6 and 7.7. We would advise starting with a "minimal" distro. 

Please see system requirements here

Before you go through the installation process, please upgrade "zlib" packages. 

$ yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm
 Installation

Please refer to the documentation on Installation, Upgrade and/or Advanced Installation for version 0.93

Please also refer Installing and Configuring Bahmni Connect for Bahmni Connect Setup

You can refer to All Releases page for further details on RPM versions


Note

  • Henceforth, please do not use the “service” command to start/stop/restart a service. 
  • Only use the “systemctl start/stop/restart <bahmni-service-name>” command. 
  • Ensure that you don’t have a directory “/var/run/<bahmni-service-name>”.  Such directories are henceforth created and removed as part of “systemctl” execution. Hence if you are updating an existing Bahmni installation, ensure /var/run/<bahmni-service-name> directory is not present before install command gets triggered.
  • MySQL admin password: From 0.92, we are using a stricter password policy and set to MEDIUM, which is a combination of “Length; numeric, lowercase/uppercase, and special characters”. If you are changing the admin user (root) password, you need to set password appropriately. Check MySQL documentation here for more information.
  • MySQL version configuration: Default MySQL version supported is 5.6A new configuration parameter mysql_version has been introduced to override MySQL version, which you can configure in setup.yml before running the install command. eg. mysql_version=5.7.30

Briefly:

Install

# install dependencies
> yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm

> yum install -y epel-release


# install bahmni command line installer
yum install -y https://repo.mybahmni.org/releases/bahmni-installer-0.93-197.noarch.rpm



# download the postgres repo rpm. 
> rm -f /opt/pgdg-redhat-repo-latest.noarch.rpm
> curl https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm --output /opt/pgdg-redhat-repo-latest.noarch.rpm


# if the filee /etc/bahmni-installer/setup.yml is not there, you can get a sample
> curl -L https://tinyurl.com/yyoj98df >> /etc/bahmni-installer/setup.yml

# configure your implementation specific settings, set repo URL
> vi /etc/bahmni-installer/setup.yml

# configure components you require
> vi /etc/bahmni-installer/local

# run the installer
> bahmni -i local install
 Upgrade/Post Installation Instructions
  1. Rebuild Search Index: It's required to rebuild search indexes from the OpenMRS UI. Without this, Patient, Drug and Concept searches won't work in Bahmni or OpenMRS. Please rebuild the indexes post install/upgrade: OpenMRS => Navigate to Administration => Search Index => Run Rebuild Search Index.
  2. Duplicate Scheduler Tasks: We have noticed that there are sometimes duplicate schedulers for OpenElis Patient Atom Feed Task and OpenMRS event publisher Task running. Having such duplicate entries relevant to Feed and Events can result in unforeseen and unpredictable synchronization issues between components of Bahmni. This was fixed as part of Bahmni-0.91 release for the default demo and clean databases. However, existing installations trying to upgrade Bahmni should manually delete the entries from database. You can do this either from OpenMRS Administration console or updating database directly. You can verify by running this SQL on mysql “openmrs” database.
    select schedulable_class, count(*) from scheduler_task_config group by schedulable_class;

    If any of the rows, show as more than 1, then you should delete the duplicate entries to ensure only one scheduler job exists and is being run.

  3. Tag a Location with ‘Operation Theatre’ : To create a surgical block in OT scheduling module, we should have at least one location tagged as "Operation Theatre". If you are not using default config, or have forked from default config previously, you must tag your OT location with ‘Operation Theatre’ tag. Without this setup, OT scheduling app will throw an error.
  4. Oviyam Viewer URL : You may need to update the configuration for Oviyam DICOM viewer URL in app config for clinical dashboard, if you are migrating from older version. Please edit file /var/www/bahmni_config/openmrs/apps/clinical/dashboard.json for the “pacsImageUrl” attribute like in the example here.
  5. Odoo Setup: If you are going to use Billing/Pharmacy/Inventory functions from ERP, you need to configure Odoo for your requirements appropriately. Please see WIKI documentation for guide. 
  6. Odoo - Undefined period error during quotation confirmation : While confirming a quotation, if there is no period defined an error is thrown "There is no Period defined". While this has been fixed for 2018 with the default ERP database, if you are going to be installing in 2021, you may still face this error. 
    Workaround:  Please follow the steps as mentioned in this page -  OpenERP error "There is no period defined" while confirming a sale quotation 
  7. Change default passwords: You should change the user passwords for OpenMRS (superman, admin), OpenELIS (admin), Odoo (admin),  Dcm4Chee (admin)


 Troubleshooting

Information don’t sync to Odoo, or published lab results don’t sync to OpenMRS: We have noticed that sometimes post installation (with bahmi-lab, bahmni-erp-connect services running) information don’t sync to Odoo (from OpenMRS) or to OpenMRS (from lab), while the front end applications seem to be working fine. If you would check the log files, you will probably see connection lost, or C3PO connection pool errors. Restarting the services seem to resolve the errors. 

> systemctl restart bahmni-erp-connect

> systemctl restart bahmni-lab


systemctl commands throwing error: 

Authorization not available. Check if polkit service is running or see debug message for more information. Failed to restart odoo.service: Connection timed out
See system logs and ‘systemctl status odoo.service’ for details.

We have noticed this error coming up infrequently. Follow the instructions provided below for resolution

https://access.redhat.com/solutions/1543343


running services in debug mode:

  • If you want to run a particular service in debug mode, you can still continue to use the “service <bahmni service-name> debug” command. However, few things you need to keep in mind
    • Always run the service in debug mode, as root user. 
    • After stopping the service, ensure that you delete the /var/run/<bahmni-service-name> and /var/log/<bahmni-service-name> directories. 

generate "LetsEncrypt" certs:

  • If you want to generate “LetsEncypt” certs from the same server machine, you will have to manually install zlib-devel package. Please see this thread for information

Can not start opnmrs service using "systemctl": 

  • Openmrs service fails to start with “systemctl start openmrs” after the usage of “service openmrs start”: 
    1. mv /opt/openmrs/log /opt/openmrs/log-backup
    2. rm /var/log/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    3. rm /var/run/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    4. mkdir /opt/openmrs/log
    5. chown bahmni:bahmni /opt/openmrs/log
    6. ln -s /opt/openmrs/log /var/log/openmrs
    7. chown -R bahmni:bahmni /var/log/openmrs


Redirecting service commands to systemctl:

  • With the release of Bahmni version 0.92, Bahmni’s services uses systemd unit files as opposed to the older init.d files. Using service commands to start/stop Bahmni services are not supported and only systemcl commands are advised. To prevent use of “service” command, we can run the optional step below that sets up a “service” function to redirect service command to call “systemctl” instead:

    1. vi ~/.bash_profile
    2. Add the following line:
    
    service() { local first=$1; local second=$2; echo “Redirecting to systemctl from Bahmni, to unset this run ‘unset -f service’“; systemctl $second $first;}
    
    3. Save and close the file
    4. source ~/.bash_profile

    To remove the above function, modify the same file and remove the service function.

 Known issues...
Known Issues
  • Use in different locale other than the default/main  - While we have improved localization support in registration and clinical modules, and searching concepts by name in logged in locale is possible, there are places in the clinical module where it is not done so - eg. medication orders. In such cases, the concepts are still being displayed in the main locale set for the implementation.
  • Performance issues with MySQL 5.7:  we have noticed certain queries taking a lot of time with MySQL 5.7 version. This release defaults MySQL version to 5.6. If you are using MySQL 5.7 and are migrating from older version of Bahmni, please set the MySQL version to 5.7 in the setup.yml
  • Beds Count mismatch on new Bed Management app: We have seen that earlier way of adding bed by sql insertions/deletions have created some dangling beds which might result in Beds count mismatch on new Bed Management app. This can also result in unpredictable exceptions on new Bed Admin UI while managing beds. You can verify if there is such issue in your database using below query and fix it instead of failing at liquibase migrations during installation.

    > select * from bed_location_map where bed_id is null;
    > select * from bed_location_map where bed_id not in (select distinct bed_id from bed);
    
    

    The first SQL returning more than zero records, is perfectly alright. If you have defined a layout but not assigned a bed for each of the locations in the layout of a ward/room, this is likely to happen. From "Ward Management" Console, you can assign a bed to that position. The second SQL will identify the invalid “bed” allocation in a ward. Invalid here means - allocation to a “bed” in a ward, which is referring to a not existent “bed” record in the “bed” table. Before running the upgrade, you need to ensure that such bed allocations are removed (remove the record) or updated with bed_id being NULL. 

> update bed_location_map set bed_id = null where bed_location_map_id = <bed_location_map_id from the above query>;
Release 0.92 (June 2020)

 Bahmni version: 0.92-155

 Pre-requisites
Operation System - CentOS 7.5, 7.6 and 7.7. We would advise starting with a "minimal" distro. 

Please see system requirements here

Before you go through the installation process, please upgrade "zlib" packages. 

$ yum install -y https://kojipkgs.fedoraproject.org//packages/zlib/1.2.11/19.fc30/x86_64/zlib-1.2.11-19.fc30.x86_64.rpm
$ sudo yum install epel-release
$ sudo yum install python-pip
$ sudo pip install pip==v19.0
$ sudo uninstall click
$ sudo pip install click==v7.0
$ sudo pip install pyusb
$ sudo pip install babel==v0.9.6
$ sudo pip install decorator==v3.4.0
$ sudo pip install beautifulsoup4
 Installation

Please refer to the documentation on Installation, Upgrade and/or Advanced Installation for version 0.92

Please also refer Installing and Configuring Bahmni Connect for Bahmni Connect Setup

You can refer to All Releases page for further details on RPM versions


Note

  • Henceforth, please do not use the “service” command to start/stop/restart a service. 
  • Only use the “systemctl start/stop/restart <bahmni-service-name>” command. 
  • Ensure that you don’t have a directory “/var/run/<bahmni-service-name>”.  Such directories are henceforth created and removed as part of “systemctl” execution. Hence if you are updating an existing Bahmni installation, ensure /var/run/<bahmni-service-name> directory is not present before install command gets triggered.
 Upgrade/Post Installation Instructions

Rebuild Search Index: It's mandatory to rebuild search indexes from the OpenMRS UI. Without this, Patient, Drug and Concept searches won't work in Bahmni or OpenMRS. Please rebuild the indexes post install/upgrade: OpenMRS => Navigate to Administration => Search Index => Run Rebuild Search Index. 


Duplicate Scheduler Tasks: We have noticed that there are sometimes duplicate schedulers for OpenElis Patient Atom Feed Task and OpenMRS event publisher Task running. Having such duplicate entries relevant to Feed and Events can result in unforeseen and unpredictable synchronization issues between components of Bahmni. This is fixed as part of latest Bahmni-0.91 release for the default demo and clean databases. However, existing installations trying to upgrade Bahmni should manually delete the entries from database. You can do this either from OpenMRS Administration console or updating database directly. You can verify by running this SQL on mysql “openmrs” database.


select schedulable_class, count(*) from scheduler_task_config group by schedulable_class;


If any of the rows, show as more than 1, then you should delete the duplicate entries to ensure only one scheduler job exists and is being run.

Tag a Location with ‘Operation Theatre’ : To create a surgical block in OT scheduling module, we should have at least one location tagged as "Operation Theatre". If you are not using default config, or have forked from default config previously, you must tag your OT location with ‘Operation Theatre’ tag. Without this setup, OT scheduling app will throw an error.


Odoo Setup: If you are going to use Billing/Pharmacy/Inventory functions from ERP, you need to configure Odoo for your requirements appropriately. Please see WIKI documentation for guide.


Change default passwords: You should change the user passwords for OpenMRS (superman, admin), OpenELIS (admin), Odoo (admin),  Dcm4Chee (admin)

MySQL admin password: From 0.92, we are using MySQL version 5.7, and the password policy is stricter and set to MEDIUM, which is a combination of “Length; numeric, lowercase/uppercase, and special characters”. If you are changing the admin user (root) password, you need to set password appropriately. Check MySQL documentation here for more information.

Ansible preferred version: Default ansible version supported is 2.4.6. Bahmni command line option -aru has been reintroduced to enable users to provide repo-url of ansible package (incase of non availability of ansible package) while installing Bahmni.

MySQL version configuration: Default MySQL version supported is 5.7.30A new configuration parameter mysql_version has been introduced to override MySQL version.


 Troubleshooting

Information don’t sync to Odoo, or published lab results don’t sync to OpenMRS: We have noticed that sometimes post installation (with bahmi-lab, bahmni-erp-connect services running) information don’t sync to Odoo (from OpenMRS) or to OpenMRS (from lab), while the front end applications seem to be working fine. If you would check the log files, you will probably see connection lost, or C3PO connection pool errors. Restarting the services seem to resolve the errors. 

> systemctl restart bahmni-erp-connect

> systemctl restart bahmni-lab


systemctl commands throwing error: 

Authorization not available. Check if polkit service is running or see debug message for more information. Failed to restart odoo.service: Connection timed out
See system logs and ‘systemctl status odoo.service’ for details.

We have noticed this error coming up infrequently. Follow the instructions provided below for resolution

https://access.redhat.com/solutions/1543343


running services in debug mode:

  • If you want to run a particular service in debug mode, you can still continue to use the “service <bahmni service-name> debug” command. However, few things you need to keep in mind
    • Always run the service in debug mode, as root user. 
    • After stopping the service, ensure that you delete the /var/run/<bahmni-service-name> and /var/log/<bahmni-service-name> directories. 

generate "LetsEncrypt" certs:

  • If you want to generate “LetsEncypt” certs from the same server machine, you will have to manually install zlib-devel package. Please see this thread for information
 Known issues...
Known Issues
  • Same as August 2019 release of v0.92
  • Redirecting service commands to systemctl:
    • With the release of Bahmni version 0.92-147, Bahmni’s service files are now systemd unit files as opposed to the older init.d files. Using service commands to start/stop Bahmni services are not supported and only systemcl commands are advised. To prevent use of “service” command, we can run the optional step below that sets up a “service” function to redirect service command to call “systemctl” instead:
      1. vi ~/.bash_profile
      2. Add the following line:
      
      service() { local first=$1; local second=$2; echo “Redirecting to systemctl from Bahmni, to unset this run ‘unset -f service’“; systemctl $second $first;}
      
      3. Save and close the file
      4. source ~/.bash_profile
    • To remove the above function, modify the same file and remove the service function.
  • Openmrs service fails to start with “systemctl start openmrs” after the usage of “service openmrs start”: 
    1. mv /opt/openmrs/log /opt/openmrs/log-backup
    2. rm /var/log/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    3. rm /var/run/openmrs (without ‘/’ at the end, we want to remove only the symlink)
    4. mkdir /opt/openmrs/log
    5. chown bahmni:bahmni /opt/openmrs/log
    6. ln -s /opt/openmrs/log /var/log/openmrs
    7. chown -R bahmni:bahmni /var/log/openmrs
  • Replace Offline sync omod: 
    • If you are going to use “bahmni connect”, you would have chosen “bahmni-offline”. You will need to replace the following file
      • /opt/openmrs/modules/bahmniOfflineSync-0.91-SNAPSHOT.omod 

                       with “bahmniOfflineSync-0.92-SNAPSHOT.omod” file, which can be downloaded from 

                       https://github.com/Bahmni/bahmni-offline-sync/releases/tag/0.92-SNAPSHOT

                       - click the assets link in the above page, to list out the files.            

    • Once you have placed the file in /opt/openmrs/modules/ directory, make sure that you change the permission for the file
          > chown bahmni:bahmni /opt/openmrs/modules/bahmniOfflineSync-0.92-SNAPSHOT.omod 

Security Alert

There's been a security advisory from OpenMRS for webservices.rest module. As part of security Advisory, who ever planning to install Bahmni or already have installed Bahmni of versions 0.89, v0.90, v0.91 those have to replace existing webservices.rest module with 2.24.0 version module. 

For more details on security advisory, please refer to below talk threads

https://talk.openmrs.org/t/critical-security-advisory-cve-2018-19276-2019-02-04/21607

https://talk.openmrs.org/t/update-for-cve-2018-19276-2019-02-04/21682

 

 

persistence-api-1.0.2 jar

 

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