...
Steps to deploy Tele-consultation feature
Install Bahmni version 0.92 Install Bahmni on CentOS
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
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.
In file /var/www/bahmni_config/openmrs/apps/customDisplayControl/js/customControl.js under directive
patientAppointmentsDashboard
, where we haveCode 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]; }
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>
Code Block <button style="background: #669998; color: white;" ng-if="showJoinTeleconsultationOption($index)" ng-click="openJitsiMeet($index)"> Join Teleconsultation </button>
To the file /var/www/bahmni_config/openmrs/apps/registration/app.json add the following:
under config/attributes:
Code Block "cluster", "email"
...
b. under fieldValidations add
...
How To Setup Email System
Create a file called email-notification.properties in /opt/openmrs/
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)
Before proceeding with the installation steps take the backup of the following:
appointments omod in /opt/openmrs/modules/ folder.
bahmniapps directory under /var/www/ folder.
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.
Contact Us:
Praveena Dayanand<praveena.dayanand@thoughtworks.com>
...