The PIH informatics team’s blog

  • PIH logo
  • Advertisements

Posts Tagged ‘OpenMRS’

Rwanda: Upgrade to OpenMRS 1.6 with sync module

Posted by ellenball on June 8, 2010

The Rwanda OpenMRS servers were upgraded to OpenMRS 1.6 in May 2010.

The Northern Provinces have a single server in Butaro, and that was upgraded in early May from 1.4 to 1.6 by Dave Thomas, Edwin Musonga, Marc Harrison (Paris).

Maros Cunderlik, Ellen Ball & Edwin Musonga

The Eastern provinces were upgraded with a replacement of OpenMRS (sync branch 1.4) with OpenMRS 1.6.2 along with the new sync module (RC1).  Thanks to the dedication of volunteer extra-ordinaire Maros Cunderlik, Dave Thomas, Edwin Musonga, Ben Wolfe, Marc Harrison and Mark Goodrich.  The process was very smooth (if not along some bumpy and scenic dirt roads in Rwanda).   The Rwinkwavu server was replaced on Tuesday morning, May 25th and followed by visits to Kirehe, Rusumo and Rukira on that same day.  The next day (Wednesday), the servers were replaced in Mulindi and Nyurabuye.

Dave Thomas and Edwin Musonga heading back to ambulance transport at Mulindi

The quote at the end of day 2:   “Things are working” –Maros

Thanks to Biega for morning coffee and providing some sanity.  Apologies to all the goats that gave their lives to become brochettes at Coco Park.  Great appreciation to Cheryl Amoroso for dealing with some challenges with sync during the past year+.


Posted in Rwanda | Tagged: , | 1 Comment »

OpenMRS Workshop for Central America

Posted by jblaya on July 12, 2009

Workshop participantsWe just finished a 3 day (July 8-10, 2009) workshop on OpenMRS in Guatemala for Ministry of Health and CDC personnel from different Central American countries, though unfortunately those from Honduras were not able to make it because of the current conflict there.

During this workshop we addressed:

  • The current state of medical informatics in the world and lessons learned from developed countries in the implementation of Electronic Medical Records (EMRs)
  • Overview of the PEPFAR program and CDC’s involvement in the region
  • Overview of OpenMRS, it’s vision, and current implementations
  • Other open source projects working with OpenMRS such as mobile devices (OpenROSA) and DHIS.
  • Installation of OpenMRS and modules
  • Creation of concepts and forms
  • Working with cohort builder
  • Creating reports and exports

In a broad group discussion we also found what were the benefits and disadvantages of OpenMRS that were most important in this region.  They will be included in a separate document to be attached. Finally, we had small group discussions about possible implementations of OpenMRS in projects and clinical sites throughout the different countries represented at the meeting.  All were excited about the ability of OpenMRS to unify the many disparate information systems that were being implemented for all of the different programs in their respective countries.  Overall, the meeting ended with a lot of enthusiasm showing the need for a Latin American OpenMRS Implementers meeting, which should happen in Lima in late september.

Posted in Uncategorized | Tagged: , , , | 1 Comment »

A Check Digit for Polyphemus

Posted by chaseinrwanda on June 26, 2008

“‘Cyclops, you asked my noble name, and I will tell it; but do you give the stranger’s gift, just as you promised. My name is Nobody. Nobody I am called by mother, father, and by all my comrades.’

“So I spoke, and from a ruthless heart he straightway answered: ‘Nobody I eat up last, after his comrades; all the rest first; and that shall be the stranger’s gift for you.’

–Odyssey, Book IX

Ever since the age of myth, the human race has been engaged in an epic struggle against mistaken identity. Oedipus unknowingly kills his father and marries his mother, because he does not know their true identity. The unlucky neighbors of Baucis and Philemon in Ovid’s tragic tale could have been spared if only they had a better way to accurately identify guests. Belle was lucky enough that the Beast’s true identity was a handsome prince, but most of us would prefer to know in advance. And of course, “Nobody” knows better than the now-blind cyclops the importance of accurately identifying visitors.

In the medical world, mistaking a patient’s identity can also have severe consequences. Imagine the following scenario. Annie Nonymous goes to the clinic for a scheduled visit and has blood work done. Annie Nonymous has a system ID of 12543912. The lab technician, who enters hundreds of lab tests into his computer every day, mistakenly types in Annie Nonymous’s system ID as 12543412 (which is actually the ID for Anne Nonymous). The next day, the doctor sees Annie’s CD4 count in Anne’s file and mistakenly starts Anne on ART instead of Annie! Of course, this is a simplified scenario, and in reality there are more opportunities to catch mistakes before they result in a change in drug regimen, but medical mistakes based on mistaken identity are indeed a serious problem. In fact, according to the Institute of Medicine, in the United States alone medical errors lead to around 100,000 patient deaths per year [1].

At Inshuti mu Buzima, we are taking a big step forward to prevent mistaken patient identity. From the beginning, we have been issuing patient identifiers that are verified with a check digit, generated according to Verhoeff’s Dihedral Check Digit Algorithm [2]. A check digit is a simply a letter appended to the end of an identifier that is calculated from the rest of the identifier string. You can play with generating check digits here: http://rwanda.pih-emr.org/verhoeff.html.

Although we have been issuing identifiers with check digits from the beginning, until now we had not actually been checking that check digit anywhere in the EMR. OpenMRS used to have the Luhn Check Digit Algorithm hard-coded into place, but we have recently rewritten the OpenMRS core to allow the addition of any check digit algorithm of the one’s choosing. We prefer the Verhoeff algorithm over Luhn because the Verhoeff algorithm guarantees to catch all single digit replacements and transpositions of adjacent digits. For example XXXaXXX will never have the same check digit as XXXbXXX, and XXXabXX will never have the same check digit as XXXbaXX. Luhn can also detect any single digit replacements, but it does not catch all transpositions of adjacent digits.

Now that we have the tools to detect mistaken identifiers, Cheryl, our data manager, is feverishly working to correct identifiers in the system we know are invalid, with the peace of mind to know that more will not be created. Although check digits are not able to prevent all cases of mistaken identity, we’re confident that together with the other systems of checks and balances we have in place, mankind’s ancient struggle against mistaken identity may be drawing to a close.

[1] To Err is Human:Building a Safer Health System. Institute of Medicine. Washington, DC: 1999.

[2] Wagner, Neal. “Verhoeff’s Decimal Error Detection”. The Laws of Cryptography with Java Code. p 54. San Antonio, TX: 2003. http://www.cs.utsa.edu/~wagner/lawsbookcolor/laws.pdf

Posted in Rwanda | Tagged: , , | Leave a Comment »

Collaboration with OpenELIS, an open source lab information system

Posted by jblaya on April 27, 2008

In the last few weeks the OpenMRS team along with collaborators from the University of Washington have been meeting with members of the OpenELIS team, an open source laboratory information management system (LIMS) that’s been implemented in Minnesota, Kansas, Missouri, and Vietnam. The members of this team are from the Association of Public Health Laboratories (APHL) and from labs in the US. Conversations have focused on how the OpenELIS group can learn from the community building experience of OpenMRS and how the two systems can connect to provide countries with the possibility of implementing both systems.

Our first meeting last month was extremely productive. Dr. Gail Cassell was also present. We’re now coordinating meetings to meet the two goals mentioned above: helping in creating an OpenELIS developer community and connecting both systems.

Posted in Uncategorized | Tagged: , , | 1 Comment »

Getting Connected

Posted by evanjmwaters on April 3, 2008

The last few weeks we have been working to keep the momentum from Hamish’s visit to Malawi in early February going by laying the groundwork for a rollout of the touchscreen-based Patient Registration / Patient Diagnosis Module.

Work had already begun in late 2007 as I travelled up to Lilongwe to work with Mike McKay and the team at Baobab to build the Patient Registration component of the system. We took the basic structure of Baobab’s existing registration module, which was integrated into their ART system and based on Version 1.0 of the OpenMRS datamodel, and rebuilt it as a standalone module writing directly to OpenMRS Version 1.1. We were able to make this application work side-by-side with our current implementation of the PIH EMR in Malawi. Since then we have been using it for creating the patients in our backlog of ART data, taking advantage of the unique National ID number that the application generates. Baobab has already issued id numbers for more than 500,000 patients in Malawi, or roughly 4% of the country’s 13 million people.

Going forward our intention is to fix a few remaining bugs in Patient Registration so that it is ready for real-time use at Neno Rural Hospital, and add the Patient Diagnosis component to capture the primary and secondary diagnosis, treatment prescribed and clinician comments. In the existing workflow at the hospital, clinicians record the diagnosis in the patient’s medical passport, a data clerk transcribes the information into the ‘Outpatient Register’, one of the many medical registries issued by the Ministry of Health, and the patient proceeds to the Pharmacy. To create a smooth transition, we intend to add the Patient Registration / Patient Diagnosis module as an intermediate step between the clinical visit and the paper registry. Once the hospital staff grows accustomed to the new electronic systems, we hope to modify the workflow slightly so that clinicians can record the diagnosis information directly during the consultation.

Our next steps include:

1.) Demonstration of the existing Patient Registration module to Ministry of Health staff working at Neno Rural Hospital

2.) Generating a list of diagnoses and prescriptions common to Neno

2.) Working with Baobab Developers to write the remaining code for the Patient Diagnosis module

3.) Interior and exterior renovations at the hospital to create the Patient Registration area

4.) Creating a wireless network link between the hospital, our offices at the Neno District Assembly, other offices, and our warehouse in Neno

The final details of our plans for Patient Registration / Patient Diagnosis are falling into place, and we are excited about the prospect of having the system up and running at Neno Rural Hospital sometime in the next few months. In the meantime we are also busy entering the existing data for ART patients at Neno Rural Hospital, and planning for a more robust integration of Baobab’s Ruby on Rails interface within OpenMRS.

Patient queue


Patients queue to have their diagnoses recorded in the Outpatient Register at Neno Rural Hospital


A room adjacent to the existing registration area will be converted to allow data clerks to register patients and record diagnoses using the new Patient Registration / Patient Diagnoses module.


A pharmacy technician fills prescriptions at Neno Rural Hospital. The Patient Diagnoses module will allow clinicians to print labels for prescriptions during the consultation, eventually this could be linked to a wharehouse/pharmacy stock management system.

New hospital

Patients queue at the Outpatient Register; construction of the new Neno District Hospital is visible in the background. Neno District Hospital is scheduled to open midyear, dramatically improving access to inpatient care for residents of Neno District.

Posted in Malawi | Tagged: , | 3 Comments »

Synchronization… at last

Posted by christianallen on March 4, 2008

It’s not time to throw the confetti yet. But maybe we can throw just a little for now.

In November, the EMR Team attempted to rollout an edition of the EMR at the Rwanda Project that included “Synchronization”. Synchronization, for those of you that haven’t heard this little buzzword, is the ability for different machines to automatically communicate data about our patients back and forth with each other. The benefits of this are many. We can have offline entry in at sites with no computers or electricity by bringing a laptop and then have that data copied back to a central database. In sites like Lesotho where there is no internet connectivity at some of the sites, a single roaming data team member can go from site to site collecting data on a flash drive and then have it merge in to a central EMR database back in Maseru. Theoretically, data from all project sites could be accumulated in Boston for high-level analysis.

The rollout of the Synchronization Edition of the EMR was a tricky process for 2 reasons. For one, Synchronization was the single largest change to the system since the creation of the new EMR (EMR 2.0, aka OpenMRS), not to mention the most likely to cause corruption of medical data. Secondly, the rollout had to take place in a relatively short window of time during which a member of the EMR Team was actually in Rwanda. Sadly, on the day of launch the shuttle failed inspection, and Synchronization was held at Cape Canaveral indefinitely, until another window opened.

In Febuary, the skies opened again for the Synchronization Edition of the EMR to launch. This time, with luck and hard work on the part of a few dedicated developers, it passed inspection and the countdown began.


On February 7, the button was pushed, and another, identical EMR came online in Kirehe. For the remainder of the day, all changes and entries that were done in Rwinkwavu magically appeared minutes later in Kirehe. Changes made in Kirehe magically appeared minutes later in Rwinkwavu. A team of extremely nerdy people looked on from a control room with anxiety and awe. By 5pm, the data entry teams had gone home for the day, and the shuttle appeared to still fly straight. It was a brief but welcomed victory.

The next day, Synchronization held strong again. And the next day. And the next. By the end of the first week of usage, the team encountered their first minor setback, but the problem was quickly corrected and the launch back on target. Another week went by. Still no problems.

At this point, Synchronization has been running without error, copying all kinds of data back and forth between the distant project sites for almost 4 weeks. To date, it has successfully copied over 75,000 changes between the sites. It is done so automatically and in the background. The entry teams working at the sites don’t even notice that it is happening, but instead can focus on the priorities and daily tasks. The only thing they really notice is that now entry is fast and efficient, since they have their own, local version of the EMR.

Most hospital systems in the Western world are unable to successfully set up systems that provide universal access to patient data, such that a patient can check in to multiple facilities and those facilities have instant (yet secure) access to their patient charts. But we have it in the Eastern Province of Rwanda. And we’ll have it soon at our other sites.

So why no confetti yet? Because we’re not finished. There still remain a growing number of sites in Rwanda that don’t have their server set up yet. Or they have a server that is being tested, but hasn’t been shipped out to the site yet. Also, Synchronization is not yet ready for the greater OpenMRS community – the vast number of people who have started to use our EMR. It still needs a simpler and more intuitive setup process.

No – there will be no confetti and champagne for Hamish, Darius, and their team yet. But maybe, just maybe, we could throw a *little* bit for this one small step for the EMR Team.

Posted in Rwanda, Uncategorized | Tagged: , | 3 Comments »

PIH EMR plans in Malawi

Posted by hfraser on February 12, 2008

I just returned from a 10 day visit to Malawi to finalize plans for the EMR system for the newest PIH hospitals and clinics in Neno. The clinic there belongs to the Malawian government and we have been partnering with them and the Clinton-Hunter Foundation initiative to build a new hospital and build or renovate several smaller clinics in the area. Neno is in the hills of southern Malawi about 90 minutes drive from the main Lilongwe to Blantyre road, and has a post office, a large market and a local government building as well as the clinic. PIH is providing primary care currently with three expat physicians as well as local nurses and other healthcare worker (Malawi has about the lowest number of physicians per head in the world). We are also running an HIV clinic and have several hundred patients on ARV treatment at present. The site has stable power from the grid, and Satellite Internet access set up by PIH.

Malawi is not new to the EMR business, Baobab Health Partnership (www.baobabhealth.org) led by Gerry Douglas have been working there for 7 years and have deployed innovative touch screen electronic data systems in hospitals in Lilongwe and Blantyre. Baobab have recently re-factored their system to run on the OpenMRS data model using Ruby on Rails as the development environment. This has given us the opportunity to explore using their well developed interface and workflow tailored to the Malawi health system while also using all the tools of OpenMRS and the strength of the OpenMRS collaborative. Our plan is to start with a simple patient registration system that prints out a bar coded patient ID card and link that with a tool to allow the physicians to code the patient diagnoses. We will the adapt the Baobab touch screen HIV data capture module to the PIH forms and add a third module for socio-economic data. Initially the two systems are running side by side on the same instance of MySQL but we are exploring the creation of an API to allow Ruby to talk to the OpenMRS middle layer and so become a robust development environment for new forms and interfaces. One of the current SSOC students, Jeff is working with Baobab on an initial version of these tools. More soon…

Posted in Malawi | Tagged: | Leave a Comment »


Posted by pihemr on February 4, 2008

Welcome to the PIH-EMR Team Blog! We are a team of 12 people working on medical information systems for Partners In Health (PIH), a health care non-profit that works in developing countries. PIH provides free, high-quality health care in some of the poorest parts of the world including rural Haiti, Rwanda, Lesotho, Malawi and Mexico. We provide primary care, and specialize in the treatment of HIV. We also provide specialized treatment fro drug resistant tuberculosis in Peru and Russia, and now Haiti and Lesotho as well.

The EMR team develops and deploys electronic medical records – EMRs – for patients being treated for HIV or MDR TB who need long-term treatment. The need to closely monitor these patients and track their laboratory data and drug regimens presents a major challenge, especially in the resource-poor areas in which PIH works. All our EMR systems are web-based, starting with the original system for MDR TB patients in Peru in 2000-2001. We are now concentrating most of our effort on developing and deploying the OpenMRS system, a new open source EMR architecture jointly developed by PIH and the Regenstrief Institute in Indiana and the Medical Research Council in South Africa. This is now a growing open source project with developers and collaborators from the US, several African countries, Peru, Haiti and soon India.

In this Blog we will post our updates on the systems, and the progress in setting them up and using them in the 5 current PIH EMR sites. We will talk about the ideas behind the systems, the challenges we face and the progress in hardware software and useful data and some cool results from evaluation studies.

-Hamish Fraser

Posted in Uncategorized | Tagged: , | Leave a Comment »