Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

    Code Block
    #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

    Code Block
    #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

    Code Block
    $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');
            };

    replace the following

    Code Block
    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:

    Code Block
          <th>
              Join Teleconsultation
          </th>
  3. Code Block
    <button style="background: #669998; color: white;" ng-if="showJoinTeleconsultationOption($index)" ng-click="openJitsiMeet($index)">
             Join Teleconsultation
     </button>

    Image Modified

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

    1. under config/attributes:

      Code Block
      "cluster",
       "email"

...

b. under fieldValidations add

...

How To Setup Email System

  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.

Code Block
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. Set bahmni.appointment.teleConsultation.sendEmail true in OpenMRS global property to send email for tele-consultation

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:

    1. appointments omod in /opt/openmrs/modules/ folder.

    2. bahmniapps directory under /var/www/ folder.

    3. bahmni_config directory under /var/www/ folder

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

Contact Us:

Praveena Dayanand<praveena.dayanand@thoughtworks.com>

...