Does not work on Android 4.4 KitKat. Works on Gingerbread, Ice Cream Sandwich and Jelly Bean.
The sms module allows users to send sms messages/reminders to registered patients in openmrs. The messages are typically sent through the android phone where an apk needs to be installed.
1) Download the latest OpenMRS stable version (Preferablly 1.9.3) and login with the credentials
2) Clone the sms module source code through git plugin in eclipse:
3) Build the module
4) Locate the module omod (in target folder) file to upload
5) Install the module omod file into OpenMRS by uploading it in the administration section
How does it work
The apk will have to be installed on the android device. Once installed, the user will see an icon on the main menu by the name of ‘smstarseel’. Running it would show the login form. The screenshot of this login form is shown below in the ‘Screenshots’ section.
The server url field requires the following path. The ‘ip:port’ part should be the one where openmrs is installed (machine’s ip and port mapped). Rest of it will remain the same.
This is pointing to the servlet in the module. The module resides in openmrs which will have to be installed on a machine. The user will have to supply the ip address of that machine, the port could be different and the rest will remain the same.
The user can use the same username and password that they use to log in openmrs local setup.
The next screen would ask the user to register the device. This step would have to be done once.
Figure 1: Register Device
Once logged in, the user will see the main menu. You can view the console to see the status. ‘Start SMSDispeser’ and ‘Start SMSCollector’ need to be started for sending and receiving to work. View the console again to see whether the services have started or not.
Figure 2: Main Menu
When the module builds, the liquibase file will run and generate 5 tables in the local openmrs database. The names of the tables are as follows:
Liquibase will populate default values in the project and reminder tables. This has to be done for initialization otherwise the application will throw exceptions. In case the default values are not present, the user should explicitly populate the tables with the values given below.
Project table: Columns (projectId, description, name)
[Name of the Project]
Reminder table: Columns (reminder_id, name, description, category, text)
In this table, a user can add any number of text messages based on their choice.
This sms is sent to TB Patients only
TB Patients SMS text
This SMS is sent to HIV Patients Only
HIV Patients SMS Text
This SMS is sent to Polio Patients Only
Polio Patients SMS Text
Device table: Columns (Too many columns)
This table is for the Android mobile to read the imei and set the status of the mobile device to ‘ACTIVE’
This table is used by the Android application which reads the incoming sms messages from patients and populates it in this table for reporting purposes.
This table is used by the Android application to send sms messages to patients. The messages are populated through the interface provided by this module.
The apk is attached herein.
Figure A: Android App Login Form
Figure B: Module Form
Figure C: Message Status Report