You are on page 1of 18

How to Do an OpenMRS Implementation

from Start to Finish: A GIIP Guide

Section 1: When is OpenMRS applicable?

When should you use OpenMRS vs other EMRs

OpenMRS is applicable in situations where you are working for an NGO or a non-profit
organization because OpenMRS is open source. Many other EMRs cost money, more than many
NGOs or clinics and hospitals in developing nations can afford. OpenMRS is extremely useful in
developing nations because it provides an EMR system that can meet the needs a clinic or hospital
in a place like Nigeria. OpenMRS is relatively easy to set up and use, which makes a good option
for resource poor clinics or hospitals.

OpenMRS Capabilities and Constraints

Capabilities:
OpenMRS allows users to record and store information in a way that makes the information easy
to summarize and analyze. Users can create custom forms to fit the needs of that particular
hospital or clinic. OpenMRS can run on a basic computer and does not require internet access.
The concept dictionary can store all possible information and answers to questions that users will
need. This makes the system relatively easy to use. Modules allow users to install modifications
to OpenMRS to customize the program based on the different needs of each clinic/hospital.

Constraints
One major constraint of OpenMRS is that information cannot be shared between multiple systems.
Information stored on the program can only be accessed by specific users and cannot be
transferred between multiple sites. If a patient visits multiple clinics, there is no way to sync the
patient information each clinic records. OpenMRS also does not have system to facilitate drug
ordering and drug stock monitoring.

Section 2: Equipment Needed


Equipment and Cost Estimates:

Hospital Set-up
Low-power laptop (2): $800
Smart Phone (2): $500 $2,000
Network Equipment: $200
Solar Suitcase: $500
Primary Health Care Center
Low-power laptop (1): $400
$1,150
Smart Phone (1): $250
Solar Suitcase: $500
How to implement OpenMRS on a Small-Scale vs. Large-Scale Basis
(Equipment and Energy Requirements)

GIIP's experiences and suggestions in implementing OpenMRS on a small-scale or large-scale


basis. Our two case studies take place in Kaduna and Kano, Nigeria.

Small-Scale Implementation

One case study, a small maternal clinic in Kaduna, Nigeria sees approximately 100 patients per
day. This clinic, like many in Nigeria, has rather unreliable power, and relies on a generator for
most of its electricity. There are two record-keepers, and there is no wi-fi or internet readily
available.
What we used:
• 1 Netbook (Asus Eee PC 1008HA; 1.66GHz Intel processor, 1 GB memory, 160 GB hard-
drive) – Runs all software (no specified “server”)

Large-Scale Implementation

For broad directions on larger-scale implementation (as described on the OpenMRS Wiki here:
[http://openmrs.org/wiki/OpenMRS_from_Scratch#Power_Infrastructure]),
consider a hospital in Kano, Nigeria that sees upwards of 300 patients per day, and has several
wards for various methods of patient care. There are approximately x record keepers, and no wi-fi
or internet readily available.

What we are using:


• 3 Netbooks ( Asus Eee PC 1008HA; 1.66GHz Intel processor, 1 GB memory, 160 GB hard-
drive)
• One netbook used as an active server

*Long battery life is a requirement for areas without reliable electricity. The energy requirements
should be relatively low for a small-scale implementation, and more demanding for larger-scale
implementation (though, in many areas, if possible, pairing energy implementation with
technology may be very beneficial to quality of healthcare).

** Emphasis on LOW-POWER netbook or desktop computer for many developing regions. The
biggest problem with computers and other technology in Nigeria, or other rugged areas, is the
fan. Dust storms plague the region, and fans bring dust into the computer, reducing the
computer's life drastically. The unreliable and unpredictable power availability is another factor
that should be considered when working on rural and developing areas.
Section 3: Equipment Set-up
How to set-up OpenMRS

First, know which operating system the computers that you will be using runs on. For Linux,
Ubuntu and Mac users, the process is much simpler, for Windows, it is necessary to install a
partition that runs off one of the above mentioned.

Here is a good instructional guide to installing an Unbuntu partition with VirtualBox if you have
Windows XP: http://www.psychocats.net/ubuntu/virtualbox

Items to Download:
-Sun VirtualBox
-OpenMRS software

Here is a guide on the OpenMRS wiki that describes how to both install the partition and
OpenMRS:http://openmrs.org/wiki/Building_a_Virtual_Ubuntu_Server_for_OpenMR
S

It is recommended that you download a WAR file for the program first, which can be found here:
http://openmrs.org/wiki/Downloads

Once downloaded, you can begin with the installation of the OpenMRS software.

Installing OpenMRS
1. Login and type the following to create the OpenMRS runtime directory:
" sudo mkdir /usr/share/tomcat6/.OpenMRS
sudo chown -R tomcat6:root /usr/share/tomcat6/.OpenMRS "
2. On the host, browse to http://localhost:8090/manager/html (or
http://ubuntu_server_ip:8080/manager/html if using Host Interface) to access the Tomcat
Managment webapp.
3. Under the heading Deploy > WAR file to deploy, browse to a copy of the OpenMRS 1.5
WAR file, and then press "Deploy".
4. Tomcat should report that the deployment succeeded.
5. Browse to http://localhost:8090/openmrs/ (or
http://ubuntu_server_ip:8080/openmrs/ if using Host Interface) to begin the step-by-step
installation of OpenMRS.
• Step 1: Select No under Do you currently have an OpenMRS database... and then
enter the MySQL root password. Press Continue.
• Step 2:
• Select Yes under Do you want to add demo data... (assuming you want
common concepts and some sample patients)
• Select No under Do you currently have a database user... and again enter
the MySQL root password. Press Continue.
• Step 3: Leave default values, and press Continue.
• Step 4: Specify a suitable admin password, and press Continue.
• Step 5: Leave values blank, and press Continue.
• Step 6: Press Finish to start the OpenMRS installation process, which will take a few
minutes.

You will need to have decent computer knowledge and some HTML knowledge to customize forms
for specific clinics or hospitals. W3 schools website is a good resource for learning some basic
code: http://www.w3schools.com/html/

There will be more instruction on the HTML forms in OpenMRS later in this manual.
How to Network Multiple Computers

In a hospital that sees many patients, it may be necessary to have a single server and several
other working computers connected to it.

What you will Need:


• wireless/wired router
• connecting cords between router/computer

Recommended Routers:
• Ubiquity Networks: low-power, rugged
• Green Wifi: battery-powered, low power, rugged (meant to be outside)

At the Kano installation, a WRT54g(L) router was used, but it has to be kept wrapped in plastic to
avoid being destroyed by constant exposure to dust. For areas, like Nigeria, where there are harsh
climate conditions, it is better to have weather-proof routers

Be conscious of power-use. Even with wi-fi capabilities, it is better if the computers are connected
to the router with cords.
1. Plug in the router and set it up according to instruction manual. Plug it into other
computers.
2. Find the address of the server computer. (ex: 192.160.13:8090 ). Save the server's
address as the "home-page" on a web browser for any other computers.
3. You will need to make sure that the address of the server stays the same. to do this, use
"address reservation".
4. DO NOT HAVE TWO COMPUTERS ON A NETWORK WITH THE SAME ADDRESS. To prevent
this assign a static address to the server, and assign a range of addresses to the other
computers being used.

For areas larger than a 150ft (45 m) radius, you will need another router. A router will usually
travel 150ft (45 m) indoors, and 300ft (90 m) outdoors. For very, very large areas, it may be
necessary to use a directional beam
Diagrams of how layout works at both the small-scale installation at FHU and the hospital in
Minjibir:

Section 4: How to Start an Implementation


Initial assessment

The initial assessment of a clinic should focus on aspects related to the clinic itself, the staff, the
patients, and how data management is being performed. Within these four categories, certain
data points should be assessed as follows:

• Clinic Logistics: facility and equipment management, financial management, existing


infrastructures (power, internet, phone), services offered, physical clinic layout, social
networking used (websites, etc.), technological capacity
• Staff Management: education level, technological proficiency, reporting protocol, staff-
based data collection, decision making structures, information seeking behavior
• Patient Protocol: reasons for visit, approximate wait time, method for paying, general
patient information, perceived quality of clinic experience, level of technological fluency
• Data Management: information management structures, data aggregation methods and
management protocol, information flow within clinic

Though data collection methods will depend largely on the context of the clinic (region, culture,
health services offered) and implementation staff, three valuable assessment tools allow for a
majority of clinical assessment to be administered:
• Participant Observation (PO): A observational methodology involving being around and
close to a group of individuals in order to better understand their methods and practices. In
this instance, PO is used to facilitate the evaluation of non-quantifiable measurements,
such as determining methods for data collection or evaluating unstated protocols a doctor
or staff member may use. Within a clinical assessment an implementer will ideally shadow
a staff member around and observe their daily duties, asking questions when relevant and
taking notes of their actions and methods related to how they do their job.
• Surveys & Questionnaires: Surveys and questionnaires are instruments used in the
majority of patient and general staff evaluation. They consist of a series of questions
requiring written responses making them ideal for collecting information of large groups,
such as a sample patient base. Furthermore they contain a large amount of standardized
answers which are significantly easier to quantify and differentiate in a post-
implementation setting.
• Workplace Visualizations: Workpalce visuals consist of detailed diagrams depicting where
and how information flows within the clinic. These are usually done over a schematic
rendering of the clinic or health center to allow for more accurate and location-based
representation.

As stated, each specific data collection method has its own place and purpose towards
aggregating a basic data set to aid in project implementation.

Collect forms
During the clinic evaluation collecting existing data log books and forms filled out by
patients is necessary to get an idea of which information is asked about patients and kept by the
clinic in terms of data management. In the context of openMRS, these forms will need to be
duplicated within the system to allow for the same data to be collected and avoid discrepancies in
patient data through a new MRS system.

Section 5: How to Integrate an EMR system into a clinic


How to get people in a clinic/hospital to buy-in

One way to get people in a clinic/hospital to buy into OpenMRS to involve everyone at the clinic
and make them feel that they have a stake in the program. This will make get staff members
personally involved in OpenMRS and make them want the program to succeed. You should make
using and learning about OpenMRS a positive thing for everyone at the clinic.

You also should show staff members how OpenMRS will help them do their job. This could be
done by showing them how easy it is to find information about a patient or how much time
OpenMRS saves them.
How to teach staff members

A good way to approach training staff members is to train a few, key staff members and have
them then help train others. This helps people learn by teaching others and will help people who
do not speak English learn.

To interest staff members in training, you can offer to combine basic computer skills training with
OpenMRS training. Many people want to learn computer skills and this will provide people with an
incentive to learn OpenMRS. Any staff member can be trained to use OpenMRS, not just the
existing data entry clerk and anyone who wants to learn the program should be taught how.

Implementers should use step by step training, beginning with basic computer skills training, such
as typing, using the mouse pad, and scrolling down a page. This should be adapted based on
students’ needs and skills. Step-by-step training of OpenMRS should follow. This should include
hands-on teaching about how to add new patients, how to add data and how to search patients.
You could also teach a staff member to generate reports.

Section 6: How to make Concepts

How to Conceptualize, Design, and Make Forms


A concept and the concept dictionary are very important in using and understanding OpenMRS.
The following is from the OpenMRS wiki page:

A concept dictionary is a collection of coded, unique concepts used to generate forms and
encode data within the system. In our concept dictionary, just about every medical concept we
use is defined within the dictionary. This is done in lieu of hardcoding concepts into tables.
For example, consider the following format of data:
Date Patient Sodium Creatinine Urine Color
Monday Smith 1.5 yellow
Wednesday Jones 142 0.7

This is easy to understand, but what happens when you decide to store glucose levels? You must
change the structure of your table. And -- heaven forbid -- what if the lab starts reporting
creatinines with a new reference range? Do you throw the new creatinine values in the same
column and worry about it later? Or do you end up a second creatinine column for the new
values?
Now consider the same data in the following format:

Date Patient Observation Value


Monday Smith Creatinine 1.5
Monday Smith Urine Color yellow
Wednesday Jones Sodium 142
Wednesday Jones Creatinine 0.7

This format is slightly hard to grasp at first. Now there is one row per value instead of one per
patient. Rather than being text, the various observations are actually referenced from a
central concept dictionary. If the lab starts reporting a new type of creatinine, you no longer
have to change the structure of the table. You simple add a concept for the new creatinine into
your concept dictionary and you are done.

How to think about/create a new concept on OpenMRS

· Go to “Dictionary” link at the top of the page

· Click “Add new Concept” link (located below the search box)
o You should open up a page titled “Creating New Concept”

Things to keep in mind when creating a new concept:


1. Make sure the concept doesn’t already exist in the dictionary. When searching the
dictionary, use partial names (e.g. KALE or KALET instead of KALETRA). Looking for partial
names will help catch misspelled entries. Think about what your organization most
generally refers to this concept as – consider all possible synonyms! You may be surprised
what concepts already exist.
2. Make sure that you can describe/understand the concept that you're getting ready to
enter! Say for example, that you're asked to create a new term for the retroviral drug
eliminatehivudine. Knowing that it's a retroviral drug is insufficient, as you're going to need
to detail eliminatehivudine's differences from all other antiretrovirals within the terms
description. Don’t be too sure of yourself - double check with the person requesting the
new concept that you have the correct, specific definition.
Do you have all of the information ready? Then it's time to walk through a primary concept
definition, and the basic attributes this includes.

 Primary Name
 The name should begin be completely specific. It is HEPATITIS B IMMUNIZATION,
not IMMUNIZIATION, HEPATITIS B.
 Use all CAPITALS
 Use only alphanumeric characters! (If this was a concept, there would be no
exclamation point.)
 NO ACRONYMS – Abbreviations and acronyms are only used as synonyms!!
 When necessary, always refer to the generic form, e.g. Ibuprofen, not Advil ©
 When creating a term, use the full name. Example: Use the term HUMAN
IMMUNODEFICIENCY VIRUS, not HIV
To create a name:
· In the box titled “Name”, type in the name of the concept you are
creating
o Example: If creating a concept for diptheria tetanus and pertussis
vaccination, type “Diptheria tetanus and pertussis vaccination” in the
box

 Short Name
 Be smart – only use alphanumeric characters, avoid long phrases, and acronyms
that may have several meanings
To create a short name:
· In the box titled “Short Name”, type in the abbreviation (if one exists)
for your concept
o Example: For diptheria tetanus and pertussis vaccination, type
“DTAP” in the box

 Synonym
 Again, be smart! Use any other phrases or acronyms that people within your
organization may search for when attempting to use this concept. If you’re at a loss,
conduct a survey of possible end users.
To create a synonym:
· If concept has a synonym, click the “Add synonym” box next. A text
box should appear. Type the name of the synonym in the box.

 Description
 Without question, at the end of reading this statement, a you should have a good
understanding of the meaning of the concept
· In the box labeled description, type a brief description of your concept
 Class

 Class is how a concept is classified


 Is the concept a question that requires responses? If so – label it as a question!
 Is it a list of questions that are related? If so – label it as a CONVSET!
 Is it a list of lab procedures that are related? If so - label it as LABSET!
 Is it a list of medications that are related (e.g. Antiretrovirals)? If so – label it as a
MEDSET!
 If you’ve gotten through the above questions, be smart, and choose the best fitting
of the remaining classes.
To add a class:
· Next to the “Class” heading, select the option which best describes
the classification for the concept you are creating
o Example: If creating a concept for a vaccine, you could select
“Drug” as the class
o Example: If creating a concept for cesarean section, you could
select “Procedure” as the class

 Is it a set?
 If you answered yes to either question 2, 3, or 4 above, check this box! Otherwise
you won’t be getting much functionality out of the concept.
 Datatype

 Is your concept a question that requires responses?


 If yes, select the type that best represents the form that you wish to view your data
as.
 If yes, and there are only a few possible answers, select CODED, and choose
those possible answers.
 If yes and the class is numeric, make sure you enter any critical values. Also,
select PRECISE if you desire decimal answers.
 If no, select N/A.

 Version
This is completely up to you.
 Use any method you think works for you.
 Use a method that will be easily recognized and utilized by all other OpenMRS users.
 Be consistent with your method across all concepts.

A few things to remember:


1. AVOID ALL DUPLICATES – CONDUCT AMAZINGLY THOROUGH SEARCHES BEFORE
CREATING CONCEPT
2. ONLY USE ALPHANUMERIC CHARACTERS.
 You can use non-alphanumeric characters in the description only.
3. ALWAYS WORK WITH THE END USERS OF OPENMRS TO GUARANTEE DATA IS BEING
COLLECTED IN AN APPROPRIATE MANNER FOR YOUR NEEDS

Heierarchal Process of Form making

1. Creating coded concepts


a. Immunizations
1. Create concept 'trees' where concepts are individual answers
1. A concept in the context of forms can be viewed as a singular instance
of data entry. With the concept of IMMUNIZATIONS ORDERED you
don’t want “OPV” or “HBV” as singular concepts because there are
multiple instances of these vaccines which are given at different
times. Instead it should be structured as OPV1, OPV2, OPV3, etc. as
different concepts so that when you code your forms, each can be an
ANSWER to the QUESTION “IMMUNIZATIONS ORDERED”.
2. WEIGHT is another example of this. WEIGHT itself is a singular
concept, but it can be the answer to multiple questions. Ideally, there
would be individual concepts of PATIENT and BABY, where WEIGHT
and VITAL SIGNS are the set member of each.

The following breakdown shows this branched process, with the Patient and Baby being separate
patient entries, but utilizing the VITAL SIGNS concept group, containing Blood Pressure, Weight,
and Height. In the concept dictionary, weight and height are individual concepts that are used on
a per patient basis, as opposed to having an individual concept for PATIENT WEIGHT and BABY
WEIGHT.

· PATIENT
o VITAL SIGNS
§ Blood pressure (Concept number 1)
§ Weight (Concept number 2)
§ Height (Concept number 3)
· BABY
o VITAL SIGNS
§ Blood Pressure (Concept number 1)
§ Weight (Concept number 2)
§ Height (Concept number 3)

Section 7: How to make Forms


HTML Forms

1. Download the “html form entry module” through the “manage modules” link under Modules in
the administration menu. You can also download it at
http://modules.openmrs.org/modules/view.jsp?module=htmlformentry

2. Once the module is downloaded you will see it in the administration menu on the left as HTML
Form Entry.

3. Now that the module is up and running you will be able to edit existing forms with HTML as well
as create new forms. First we will discuss how to create a new form.

4. The first step to create a new form is to click on manage forms under Forms in the
administration window.

5. Once you are in the Manage Forms menu you can either Add Form or Choose form an existing
form. We are going to make a new form so you can choose between two different actions
• One, is clicking Add Form which will bring you to a window with blank
Name,Description, Version, Published, etc.
• The other is by selecting the duplicate drop down which will give you the selection
of basic form. This will be a template of a form.
6. Once you select either, you must give the name of the form, and a description.

7. After you name the new form you must create the Schema.
• The Schema is basically going to be the basic design of the form, and will be
almost and outline for your HTML form creation.

8. To make a schema you must identify the key concepts on the form and list them in a similar
order of the hard copy or of what you plan the digital form to look like

(Scanned Hard copy form)

9. Once the Schema is created you can create or edit the HTML code for that particular form.

10. To do this go back to the administration, go under HTML Form Entry, and select Manage HTML
Forms.

11. Manage HTML Forms will bring you to a list of all of your HTML forms. Here you can select
your new form or any existing form in the list to edit.
12. Example of existing HTML code from a form:

<htmlform>
<style>
table th {text-align: left;}
span.sectionHeader {font-weight: bold; text-decoration: underline;}
td {vertical-align:top;}
tr {padding-bottom:2em;}
</style>
<macros>
lightgrey=#e0e0e0
lightblue=#e0e0ff
</macros>

<section headerLabel="VISIT">
<table>
<tr>
<th>Date</th><td><encounterDate default="today"/></td>
</tr>
<tr>
<th>Clinic</th><td><encounterLocation default="2"/></td>
</tr>
<tr>
<th>Provider</th><td><encounterProvider/></td>
</tr>
</table>
</section>

<br/>
<section headerLabel="DEMOGRAPHICS">
<table>
<tr>
<th>Patient Name</th><td><lookup expression="patient.personName"/></td>
</tr>
<tr>
<th>Date of Birth</th><td><lookup expression="patient.birthdate"/></td>
</tr>
<tr>
<th>Patient Number</th><td><lookup class="value"
complexExpression="#foreach( $patId in $patientIdentifiers ) $!patId #end"/></td>
</tr>
<tr>
<th>Mother's Name</th><td><lookup class="value"
expression="personAttributes.get(&quot;Mother's&quot;)"/></td>
</tr>
<tr>
<th>Father's Name</th><td><lookup class="value"
expression="personAttributes.get(&quot;Father's&quot;)"/></td>
</tr>
</table>
</section>

<br/>
<section headerLabel="Client History">
<br/>
<table>

<tr>
<td><b>Level of Education</b><br/>
<obs conceptId="6125" answerConceptId="6124"
answerLabel="None"/><br/>
<obs conceptId="6125" answerConceptId="6120" answerLabel="Some
Primary"/><br/>
<obs conceptId="6125" answerConceptId="6121" answerLabel="Primary
Completed"/><br/>
<obs conceptId="6125" answerConceptId="6122" answerLabel="Some
Secondary"/><br/>
<obs conceptId="6125" answerConceptId="6123"
answerLabel="Secondary Completed or More"/>
</td>
<td><b>How did you learn about this family planning service?</b><br/>
<obs conceptId="6134" answerConceptId="6126"
answerLabel="Clinic Personnel"/><br/>
<obs conceptId="6134" answerConceptId="6127" answerLabel="Outreach
Personnel"/><br/>
<obs conceptId="6134" answerConceptId="6128" answerLabel="Radio"/><br/>
<obs conceptId="6134" answerConceptId="6129"
answerLabel="TV"/><br/>
<obs conceptId="6134" answerConceptId="6130" answerLabel="Print
Media"/><br/>
<obs conceptId="6134" answerConceptId="5618"
answerLabel="Friend/Relative"/><br/>
<obs conceptId="6134" answerConceptId="6131" answerLabel="Other
Clinic"/><br/>
<obs conceptId="6134" answerConceptId="6132"
answerLabel="Community Health Worker"/><br/>
<obs conceptId="6134" answerConceptId="6133"
answerLabel="Other"/><br/>
<br/>
</td>
</tr>

While this code is just a selection from a possible existing form you can see how the form is
generally organized.

13. In the highlighted section you can see the following:


1. The text question is in red and underlined. However while this is true the obs
conceptID=6134 meaning KNOWLEDGE OF FP CLINIC.
2. Next to the “6134” concept ID, there is an answer. In this case, “6134” has a variety
of different answers. For example, Outreach Personnel is coded for 6127, or 6130 meaning
Print media. Remember, while this specific question may have a variety of “answerConceptIDs”
this would be completely dependent on the form you are creating.

14. Once you think you are finished with your code, you should preview it at the bottom of the
editing page to see if the format is how you wish.

15. Finally, when you have finished coding and previewed the new HTML form you can save it,
and it officially becomes a new HTML form within your OpenMRS database.

Section 8: How to Make Reports


Creating Reports with the Cohort Builder
The Cohort Builder tool allows you to do simple searches that produce counts or totals of
observations. These searches can then be saved and combined to produce more complex reports.

Example: We want to know how many still births occurred with


females age 15-25.

1. From your OpenMRS home page click on the "Cohort Builder" tab in
the upper right.
2. From the Cohort Builder page, you begin searches by either selecting observations
or defining patient attributes. For this example, we need to do two searches; one for "still
births" (the observation), and one for "females age 15-25" (the patient attributes). Then
we need to combine them to determine the overlap.
3. First, type the concept/observation "still birth" into the search box. As you type possible
results will appear below that you can select from. Select the desired observation.
4. Select a date range, then hit "search". This search will then appear your search history
and can be used in combination with others or saved for use in Cohort Reports.
5. Next, do a patient attribute search for females age 15-25.
6.

Section 9: OpenMRS Modules

How to Download a Module


1. First you select a module that you want in the openMRS repository at
https://modules.openmrs.org/modules/.
2. Once you download the module you go to the admin menu and select "manage
modules" on the right side of the screen.
3. From here you select upload, and select the .omod file.
4. Once you do this the module should automatically activate and have a red
hexagon/stop sign next to the module

Patient ID Generation and Bar-code Generator


1.) Follow the steps to downloading a module, but in the repository type in "id cards
module"
How to make the Cards
Generate id numbers
• By default, feature is enabled. Hide this feature by toggling the global
property: idcards.enableIdentifierGeneration = false.
• Allows an admin to create a list of numbers to be used when printing "empty
id cards".
• Page options:
• Start value: The first number to start with
• Size: The number of identifiers to generate
• Requires privilege "Pre-Generate Random Patient Identifiers"

2.) Print Empty Id Cards


• This page has two sections that can be enabled. The first section is enabled
by default, and allows for new cards to be printed from identifiers generated
by the module. The next section is not enabled by default, and allows for
cards to be printed from identifiers uploaded from file.
• if idcards.enableIdentifierGeneration = true
• Allows a user to put generated identifiers onto cards without putting
names onto them. This is useful when cards will be distributed to
remote locations.
• Page Options:
• Number: The total number of cards to print
• Id numbers
• None -- all identifiers printed will be zeros
• Pregenerated -- numbers will be taken from identifiers
that were created with the 'Generate id numbers' page
• Range -- Random identifiers taken from within the
range defined in the global properties (see below)
• The template with which to print the id cards (Only templates
with type of "Print New Identifiers" or "Blank" or "" will be
listed here)
• A password that the output pdf will be encrypted with (used to
try to prevent duplicate printing of the pdf files)
• Requires "Print Id Cards" privilege
• If idcards.enablePrintingUploadedIdentifiers = true;
• Specify a file of identifiers (one identifier per line).
• Specify a password as above
3) Reprint ID Cards:
• Allows an user to print cards for patients' current identifier
• Requires the "Reprint Id Cards" privilege

4) Manage Templates:
• Allows an admin to edit what the cards look like
• Requires the "Manage Id Card Templates" privilege
• Global property settings
• idcards.generateMin
• The lower bound number used when "Printing Empty Id Cards"
• idcards.generateMax
• The upper bound number used when "Printing Empty Id Cards"
• idcards.enableIdentifierGeneration
• Hides / displays all UI elements which do identifier generation
in the idcards module
• idcards.enablePrintingUploadedIdentifiers
• Hides / displays a new form for printing identifiers that are
uploaded from a file

Mobile Applications

Load Moca module into OpenMRS


• Open Terminal window
• Change directory to a place where you want the moca code to be
downloaded to. (For example your home directory or /tmp.)
• Check out the code:
• If you're downloading the code for deployment, use our stable release
1.0.
svn co https://moca.googlecode.com/svn/servers/openmrs-
modules/moca/tags/release-1.0
• If you're downloading the code for development, you'll want to take
the code from the trunk and make sure you branch the code before
making changes. Once the feature/changes are done, you can merge
it back into the trunk.
svn co https://moca.googlecode.com/svn/servers/openmrs-
modules/moca/trunk
• If this gives an error such as “svn: Can’t make directory ‘moca’:
Permission denied”, you need to change to a different directory such
as the Documents folder in the above example provided in step b.
• Change directory into the moca code directory you just downloaded.
• ant clean package-module
• If this gives an error such as “BUILD FAILED /moca/build.xml:40:
Directory /moca/build creation was not successful for an unknown
reason”, you need to change to a different directory such as the
Documents folder in the above example provided in step b and
download the code again.
• Should create a .omod file in the dist folder which is in the moca folder.
• Login to OpenMRS > Administration > Manage Modules using the OpenMRS
window you left open earlier.
• Browse for .omod file you just made
• Add the module (Press Upload)

Media View Module


• Load Media Viewer module into OpenMRS. Repeat Step 4 above with the
following modifications.
• svn co https://moca.googlecode.com/svn/servers/openmrs-
modules/viewer (You should rename the folder to flashmediaviewer.
When loading into OpenMRS, load the flashmediaviewer-1.0.omod file).

Section 10: How to make your Set-Up


sustainable
Section 11: How to do an Evaluation
of an OpenMRS System
Evaluating the effect of an OpenMRS system post-implementation in terms of improving quality of
care is difficult due to the wide array of data that must be considered. However, there do exist
certain key data points that are easily compared and analyzed. When evaluating the impact of an
implementation, the same clinic to should be reassessed through the same methodologies used in
the preliminary assessment. This allows for data to remain accurate and consistent as well as
allows the implementer to observe for themselves changes over time.

Systems are evaluated under the basis of whether they accomplished their goals outlined in their
original proposal. Through this we are provided with a basis for evaluation, and seek to determine
whether and how effectively those goals have been accomplished. In general, most
implementations of an OpenMRS system attempt to accomplish the following, and are evaluated
therein:

• Increase the efficiency of data management and reporting protocols

One of the most substantial observations when paper-based record systems are upgraded to
digitized versions is the substantial cut in time needed to gather and report relevant data.
National reports that would normally take a number of weeks to gather, and which were often
accurate, could be generated near instantaneously and retained accuracy. An OpenMRS system
can be easily evaluated by the difference in time needed to generate those reports and gather
data, as previous data has already been collected during the initial assessment.

• Remain sustainable over a period of time

Depending on the location, sustainability can be a large factor in determining the impact of an
OpenMRS system. In regions where power is inconsistent, OpenMRS systems can be hindered
without alternate means of electricity. Evaluating an OpenMRS system on how well it remains
operational is important, since once implemented it becomes a necessary functioning part of a
clinic as a whole.
• Improvement of data accuracy

Considering the chaotic nature of paper based records, data accuracy is a key focus point for
evaluating clinics. Inaccurate data skews diagnoses on a local level as well as skew regional
statistics, so an OpenMRS system should be observed and evaluated on the terms of how much
better data integrity is preserved.

• Improvement in information flow within clinic

As successful clinical systems deal with an immense amount of data on a daily basis, improving
the capacity to transfer, input, and query data saves both money and time within the clinic. As
doctors, for example, are spending less and less time gathering patient data, they are spending
more time doing their job: being doctors. The clinic is then not only saving money, but improving
the capacity of staff members to do their job.

Conclusion

So here are the essentials for implementing OpenMRS, specifically in developing and rural areas.
We hope that this manual can be a comprehensive guide to serve for the needs of your project
regarding OpenMRS. More information can, of course, be found in the OpenMRS wiki, located
here: http://openmrs.org/wiki/OpenMRS_Overview

*** The GIIP installments of OpenMRS are for retrospective data entry, not point-of-care. There
are some differences between these two methods.

You might also like