BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

Bahmni Tele-consultation Feature Setup on v0.92 or v0.93

About the Feature

The Bahmni tele-consultation feature release is set of artefacts that can be deployed/installed on an existing Bahmni system using 0.92 version. These artefacts would enable the healthcare professionals using bahmni to schedule video tele-consultation appointments.

Features List

  • Scheduling video tele-consultation appointments
    save_teleconsulation.png
  • Send appointment confirmation and link to patient’s email address.
    email.png

Start tele-consulatation from patient dashboard.

join_teleconsultation.png

Video Demo

https://www.youtube.com/watch?v=cLxmGHshCzI

Setting up Teleconsultation features on Bahmni 0.92Prerequisites

  • Supported Bahmni Version 0.92.How to upgrade to the latest version  - Install Bahmni on CentOS
관련 문서: Install Bahmni on CentOS

Assumptions

  • To rollback, manually deploy back the old artefacts.
  • This feature is completely supports rollback.

Steps to deploy Tele-consultation feature

  1. Install Bahmni version 0.92 Install Bahmni on CentOS
  2. Download appointment omod and place it in /opt/openmrs/modules/ directory
    #Download appoitment omod
    yum install https://github.com/Bahmni-Covid19/openmrs-module-appointments/releases/download/Release_v1/appointments-1.2.3.omod
    
    mv appointments-1.2.3.omod /opt/openmrs/modules/
    chown bahmni:bahmni /opt/openmrs/modules/appointments-1.2.3.omod
  3. Download bahmniapps.zip, unzip and place it in /var/www/ replacing the existing bahmniapps
    #Download bahmniapps.zip
    yum install https://github.com/Bahmni-Covid19/openmrs-module-appointments/releases/download/Release_v1/bahmniapps.zip
    
    unzip bahmniapps.zip -d bahmniapps
    mv bahmniapps /var/www/
    chown bahmni:bahmni /var/www/bahmniapps

Next Steps: These are manual steps to be done, in order to see some tele-consultation configurations in bahmni_config.

  1. In file /var/www/bahmni_config/openmrs/apps/customDisplayControl/js/customControl.js under directive patientAppointmentsDashboard , where we have replace the following
    $q.all([getUpcomingAppointments(), getPastAppointments()]).then(function (response) {
                $scope.upcomingAppointments = response[0].data;
                 $scope.upcomingAppointmentsHeadings = _.keys($scope.upcomingAppointments[0]);
                $scope.pastAppointments = response[1].data;
                $scope.pastAppointmentsHeadings = _.keys($scope.pastAppointments[0]);
            });
            $scope.goToListView = function () {
                $window.open('/bahmni/appointments/#/home/manage/appointments/list');
            };
    var convertUTCtoLocal = function (start_date_time, end_date_time) {
                var date = Bahmni.Common.Util.DateUtil.formatDateWithoutTime(start_date_time);
                var timeSlot = Bahmni.Common.Util.DateUtil.formatTime(start_date_time) + " - " + Bahmni.Common.Util.DateUtil.formatTime(end_date_time);
                return [date, timeSlot];
            };
            $q.all([getUpcomingAppointments(), getPastAppointments()]).then(function (response) {
                $scope.upcomingAppointments = response[0].data;
                $scope.upcomingAppointmentsUUIDs = [];
                $scope.teleconsultationAppointments = [];
                for (var i=0; i<$scope.upcomingAppointments.length; i++) {
                    $scope.upcomingAppointmentsUUIDs[i] = $scope.upcomingAppointments[i].uuid;
                    $scope.teleconsultationAppointments[i] = $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_TELECONSULTATION;
                    delete $scope.upcomingAppointments[i].uuid;
                    delete $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_TELECONSULTATION;
                    const [date, timeSlot] = convertUTCtoLocal($scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_START_DATE_KEY, $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_END_DATE_KEY);
                    delete $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_START_DATE_KEY;
                    delete $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_END_DATE_KEY;
                    $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_DATE_KEY = date;
                    $scope.upcomingAppointments[i].DASHBOARD_APPOINTMENTS_SLOT_KEY = timeSlot;
                }
                $scope.upcomingAppointmentsHeadings = _.keys($scope.upcomingAppointments[0]);
                $scope.pastAppointments = response[1].data;
                $scope.pastAppointmentsHeadings = _.keys($scope.pastAppointments[0]);
            });
            $scope.goToListView = function () {
                $window.open('/bahmni/appointments/#/home/manage/appointments/list');
            };
            $scope.openJitsiMeet = function (appointmentIndex) {
                var jitsiMeetingId = $scope.upcomingAppointmentsUUIDs[appointmentIndex];
                appService.setTeleConsultationVars(jitsiMeetingId, true);
            };
            $scope.showJoinTeleconsultationOption = function (appointmentIndex) {
                return $scope.upcomingAppointments[appointmentIndex].DASHBOARD_APPOINTMENTS_STATUS_KEY == 'Scheduled' &&
                        $scope.teleconsultationAppointments[appointmentIndex];
            }
  2. In the file /var/www/bahmni_config/openmrs/apps/customDisplayControl/views/patientAppointmentsDashboard.html, the the following header and its content: Join Teleconsultation ]]>
    <th>
              Join Teleconsultation
          </th>
  3. Join Teleconsultation ]]>
    <button style="background: #669998; color: white;" ng-if="showJoinTeleconsultationOption($index)" ng-click="openJitsiMeet($index)">
             Join Teleconsultation
     </button>
    html.png

Modify file /var/www/bahmni_config/openmrs/apps/registration/app.json add the following:

  • under config/attributes:
    "cluster",
     "email"
    config.png
  • under fieldValidations add

()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,4})$", "errorMessage" : "Should be a valid email address"}, ]]>How To Setup Email System

"email" : {"pattern" : "^(?=.{1,40}$)(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,4})$", "errorMessage" : "Should be a valid email address"},
field_validation.png
  1. Create a file called email-notification.properties in /opt/openmrs/
  2. Have the following contents in the file and update the contents to the email server properties.

This link can help setup personal gmail account for email system.

smtp.from.email.address=
smtp.from.name=
smtp.host=
smtp.port=
smtp.ssl=
smtp.username=
smtp.password=

https://support.google.com/a/answer/176600?hl=en#zippy=%2Cuse-the-gmail-smtp-server

3. If the send email functionality is turned off for tele-consulation, on click of Check and Save button it will display the below warning on the UI

Screenshot 2023-02-06 at 10.25.20 AM.png

set bahmni.appointment.teleConsultation.sendEmail true in OpenMRS global property to enable the send email functionality.

Fall back mechanism (To restore the system back to original state before tele-consultation feature was installed)

  1. Before proceeding with the installation steps take the backup of the following:appointments omod in /opt/openmrs/modules/ folder.
  2. bahmniapps directory under /var/www/ folder.
  3. bahmni_config directory under /var/www/ folder

If you want to revert the feature, please restore the above backups of appointments omod, bahmniapps and bahmni_config directories and restart openmrs service.

Configuring Teleconsultation Server

You may configure the server URL pattern for the teleconsultation link.

Go to : /Administration => Advance Settings, and edit the property

The placeholder {0} above is replaced with a unique id for the teleconsultation link.

Contact Us:

Praveena Dayanand<praveena.dayanand@thoughtworks.com>

Adhavan Kp<adhavan.kp@thoughtworks.com>

Ruchika Bhargava<ruchikab@thoughtworks.com>

Swati Gogia<swatigogia openers id>

원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗