OpenMRS 2008 Review
From GPLMedicine
OpenMRS 2008
History of OpenMRS
OpenMRS is a multi-institution, nonprofit collaborative led by Regenstrief Institute, Inc. [1], a world-renowned leader in medical informatics research, and Partners In Health [2], a Boston-based philanthropic organization.
OpenMRS Websites
Demo OpenMRS
- Click Here to Demo OpenMRS [5]
Supported Platforms
- Windows
- Linux
Minimum Requirements for Installation
- CPU Processor - 1GHZ or better
- RAM - 256 MB or more
- Hard Drive - 40 GB or larger
OpenMRS Installation
- Installation was done on a Windows XP Operating System
OpenMRS Installation Procedure
* Installation Guide [6]
Steps involved with this installation (*Note* Please install the specific version that is asked for compatibility)
- Install Firefox [7]
- Install Java 5+ runtime environment [8]
- Install Tomcat 5.5+ [9]
- Install MySQL 5+ [10]
- Build the OpenMRS database
- Create a runtime configuration
- Install OpenMRS
* Note: Java must be installed before Apache Tomcat
Installing Firefox
* Guide to installation of MySQL and Firefox [11]
- Download the latest stable release of Firefox and run installation program
- Accept the license agreement
- Select Standard or Custom installation to install to c:\Program Files\Mozilla Firefox
Installing Java
* Note - Please only install the version that is required to maintain compatibility
- Download version 1.5 of the Java Runtime Environment (JRE)
- Run the install program (e.g., jre-1_5_0_12-windows-i586-p.exe)
- Accept the license agreement and default installation directories
Installing Tomcat
Tomcat installation guide [12]
- Download Tomcat version 5.5
- Accept the license agreement
- Accept Component defaults (Tomcat, Start Menu Items, Documentation)
- Accept default destination folder: C:\Program Files\Apache Software Foundation\Tomcat 5.5
- Accept HTTP/1.1 Connector Port (8080)
- Set Administrator login (admin/password)
- Accept path for the JRE (C:\Program Files\Java\jre1.5.0_12) or navigate to the actual path and select
- Select "Install Tomcat"
- Open the Tomcat users file (c:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\tomcat-users.xml) in a text editor and add the roles admin and manager for the user "tomcat"
<user username="tomcat" password="tomcat" roles="tomcat,admin,manager"/>
- (Optional) Set Tomcat to start automatically
1. Start → Settings → Control Panel → Administrative Tools → Services 2. Right Click "Apache Tomcat" → Properties → Set "Startup Type" to Automatic
Installing MySQL
* Guide to installation of MySQL and Firefox [13]
- Download the version of MySQL that is asked above
- Extract with Winzip
- Run the MySQL install program (setup.exe) and run Custom Setup. Accept all defaults except the installation directory and the data directory, recommend installing into a directory without spaces (eg. c:\MySQL5\, c:\MySQL5\data). The default directory usually includes spaces which seems to cause problems with MySQL.
- Accept the license agreement
- Accept to Configure Instance → Select `Detailed Configuration' → Developer Machine → Multifunctional Database → InnoDB Settings (c: and Installation Path) → DSS/OLAP → Enable TCP/IP Networking (Port 3306) → Select "Manual Selected Default Character Set / Collation" and set the character set to utf8 → Check "Installed as Windows Service" → Root password (password) (note: do NOT forget this root password for MySQL! You will need it later)
- Execute the configuration, the installer should step through each step and give you green check marks at each stage
- If you are stopped with a message saying that the server could not be started, your Windows Firewall may be blocking the MySQL port (default port is 3306). For problems related to error 1067 check the MySQL forum here
1. Open Windows Firewall (Start → Settings → Control Panel → Windows Firewall)
2. Under the "Exceptions" tab, click the "Add Port" button
* Name: MySQL
* Port number: 3306
* optional - for added security, click the "Change scope" button and limit to "My network (subnet) only"
* this will prevent computers outside of your local area network from being able to access your database directly
Building the OpenMRS Database
- Download the latest demo database script
* Openmrs-all.zip [14]
- Extract with WinZip
- Open the MySQL Command Line Client (Start → Programs → MySQL → MySQL Server 5.0 → MySQL Command Line Client)
- Enter your MySQL root password (defined as you installed MySQL)
- For a clean database, execute the openmrs-all.sql script, for a database populated with some demo information, see below
* Example: source c:/path/to/script/openmrs-all.sql
- Download the latest ""diff"" files (from the Downloads page select the most recent ***.mysqldiff.sql file).
OpenMRS Downloads Page [15]
- The ""diff"" files update the database moel with the latest changes made by the develpers to support the new version/build of OpenMRS
- Execute the diff files against the database (note to change the "\" that Windows uses for directories to "/" this works best when the .sql files are placed in a directory path with no spaces), also remember the ";" at the end of each line
use openmrs; source c:/path/to/script/openmrs_1.1.0-to-latest-mysqldiff.sql;
- For a demo database download the latest x-creatdb-from-scratch.sql and source LINK [16]
- Finally create the username and password that OpenMRS will use to connect to the database. Note you will specify this username later in the Runtime properties file. The "openmrs.*" specifies which database to grant privileges on. The TO 'username' specifies the user for the database, and the IDENTIFIED BY 'password' specifies the password.
GRANT ALL ON openmrs.* TO 'username'@'%' IDENTIFIED BY 'password';
Runtime Configuration
- Using a text editor, create a runtime configuration file
1. We typically name this file OPENMRS-runtime.properties 2. You can get the basic (default) settings from this page [17] in the middle box 3. Note to edit the lines in the Runtime Properties File to correspond to the username and password you specified in the last part of the database setup: connection.username=username connection.password=password connection.url=jdbc:mysql://localhost:3306/openmrs?autoReconnect=true
- Now you must create a system variable that directs the OpenMRS application to the runtime configuration file
1. Right-click on the My Computer icon (typically on the desktop or under the Start menu) and select "properties" 2. Under the "Advanced" tab, click the "Environment Variables" button 3. You should see two sections: one for user variables and another for system variables 4. Click the "New" button within the System Variables section (near the bottom)
Variable name: OPENMRS_RUNTIME_PROPERTIES_FILE Variable value: C:\path\to\your\OPENMRS-runtime.properties (note: you will need to specify the path to the runtime configuration file you created earlier)
- Reboot (you must reboot for the new system variable to be available to all programs)
Deploy OpenMRS
- Ensure that Tomcat is started by checking to see if the icon in the tray is green.
- Navigate to http://localhost:8080/manager.html
- Enter your Tomcat Administrator credentials (username and password chosen when installing Tomcat
- In the Tomcat Web Application Manager, enter the location of the OpenMRS WAR file [18] to deploy. (Note that the OpenMRS.WAR file is most easily downloaded with Mozilla FireFox. Internet Explorer tries to open the file as a Zip file). The deployment could take some time while the file is copied to the folder c:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps and decompressed.
- At the end of this process, the web page will refresh and /openmrs should be displayed under Applications. Apache Tomcat should also start the application (Running = True; and in Commands, Stop is underlined)
Starting OpenMRS
- After you have finished deploying OpenMRS in Tomcat, and it is being displayed under applications, you can click on /OpenMRS tab (on the left side of the Tomcat Manager window) to start your application. You will need to login initially using Username: admin Password: test (both are in lowercase). Alternatively, while Tomcat is running you can start OpenMRS by entering http://localhost:8080/openmrs/login.htm (assuming 8080 is your port number for Tomcat - insert the appropriate port number if it is not 8080).
OpenMRS Installation Conclusion
Overall, I found that this installation was in the difficulty range of moderate. The problems I encountered when it came to the installation were:
- Working with the correct version of the required components
- Making sure the latest releases of OpenMRS were compatible with the components
In conclusion, with the help from the installation guide on the OpenMRS website, I found the installation to be pretty straightforward.
OpenMRS ..a perspective
OpenMRS looks like a 'Patient Database' rather than a complete health record system for a Hospital Setting. It is implemented in many African countries by health workers as database for HIV-AIDS patients. Even a novice user will be comfortable with the interface of OpenMRS. The Database can be customized for specific needs of the health care system.
OpenMRS language support
English(U.S.), English(U.K.), Spanish, French, Portugese and Italian are supported in OpenMRS and you can change the language just by clicking the links at the bottom of the web pages in real time. Other option is to go to "My profile" and change the language options there.
Option Tabs in OpenMRS
OpenMRS has 6 tabs in the main Interface after logging in. They are 'Home', 'Find/Create a patient', 'Dictionary', 'Cohort Builder', 'Administration' and 'My Profile'.
Find/Create a Patient
This Tab provides interface to search for an existent patient or to create new one. Information about a patient can be seen in this tab after creating or searching a patient here like Encounter Summaries, Treatment Regimens, Demographics and Graphs.
Encounters
This allows to see all the patient encounters with the physicians. Details about the encounter like the date, type of encounter(adult or pediatric), type of form(basic or speciality), provider(physician or PA), location and enterer. We can access/edit all the information about a patient encounter here.
Regimens
Treatment Regimens for which patients are registered are seen here. Standardized regimens for HIV/AIDS are available by default and other Regimens can be added manually. Details like when to start the treatment, duration for which a drug should be continued are present here. There is facility to check possible drug interactions automatically. Drugs in the database are limited and can be increased from 'Administration' Tab(Drug Orders).
Demographics
Demographic Details like Contact Address, Phone no etc... are present here. Even physical location by Latitude and Longitude are also present here. It might help to investigate epidemiology(pattern of disease spread) for any new disease or symptom.
Graphs
Visual representation of any Concept(Symptom, Vitals, Lab data, etc...) is available here. If the observations(about concepts) are entered quantitatively at Encounters, we can obtain the graph for the respective observations here in 'Graphs' option under 'Create patient' tab. In this way the progress of all the Complaints, Vitals(BP, pulse, Resp Rate etc...) and Lab data can be studied here. A lot of Observations can be charted here.
Vitals
As mentioned above, all the Vital Signs are available under Observations in Encounters. In addition to Regular Vitals(like BP, Resp Rate, Pulse, Temp), patient parameters like Weight, Height, Lab data like Hb, Blood Cell counts and many more Observations are available to enter at Encounters and can be visualized into Charts for evaluation.
Dictionary
The dictionary is a collection of coded, terms(called concepts) used to generate forms and encode data within the system. All the medical terms(diagnoses, symptoms, synonyms, description, datatype) are included in the dictionary for regular use. Changing any value or term in the dictionary changes the parameter in the database reflecting in all the patient forms. This is an easy way of updating or changing any medical term in the database rather than going through the all the patient forms and changing the term to a new term. The dictionary is like central reference to the database. This can be customized as per the standards of Hospitals and Clinics and can be updated as per new needs.
Cohort Builder
Imagine how it would be to study the outcomes for a group of patients with similar characteristics. We can study the efficacy of a drug(or regimen) in a group of patients or outcomes for patients with similar complaints. In this tab, we can group patients based on Concepts(Observations), Patient Attributes(age group, gender), Encounter type, Program Enrollment, Drug Orders and different combination of the above.
Administration
Administration is probably the most important Option in OpenMRS to design the entire database to fit specific needs of Clinic or Hospital. Every option and parameter in the database can be accessed, edited and managed in 'Administration' tab. Some of the Important tasks that can be done(as an Administrator) here are: 1. All Users and their Privileges can be managed here. 2. Patients, their relations, Encounters, Observations and Orders can be managed from here. 3. Scheduler is used to keep track of all the 'To Do' tasks properly. Patient Appointments can also be scheduled and managed here. 4. Concept Dictionary can be accessed and can be Updated with respect to the needs of the Health Care Setting. 5. The way in which Forms and Reports(like summary) generated from the system can be managed here.(Still in development)
My Profile
User options(login, location etc...) can be accessed from here.
OpenMRS Medical Billing System
It doesn't have any Billing System as it is mainly developed/used to maintain databases of HIV/AIDS patients in African countries by Charity Institutions.
OpenMRS Scheduling System
There is a Scheduling System which is available under 'Administration' Tab. Different tasks can be managed from it. All the tasks to be done can be stored here and
Creating a patient record
Patient record is created by filling Forms at Encounter. These forms can be custom made(managing via administration) or a basic form can be used. All information like Complaints, Observations, Lab data can be saved here. The Observations and Lab data can be accessed as a graph later.
Tracking Patient Data in OpenMRS
Tracking can be done by generating reports and summaries.
OpenMRS Security
As of what I can tell, the only security that OpenMRS demonstrates is a username/password login. For installation purposes, there isn't any login credentials besides the login to access the Tomcat Manager.
OpenMRS Documentation
- [19] OpenMRS Feed - Feeling overwhelmed by all of the entry points? Want to follow all the things OpenMRS?
- [20] Developers Page - A community page dedicated to the developers of OpenMRS
- [21] Implementers Page - A community page dedicated to the implementers of OpenMRS
- [22] Read up on OpenMRS-related events, both upcoming and in the past
- [23] OpenMRS on Wikipedia
- [24] Podcast from episode of BBS radio Programming on OpenMRS
OpenMRS Conclusion
Simple user interface and probably not of much use for the hospitals with inpatients and outpatients with a need for Billing and Claims. Most useful for research faculties for cohort studies and to keep record of patient data in a simpler way. Easy to use and understand.

