Pete works Health Care IT, is a hockey goalie, plays a Chapman Stick and walks his dog.

Sunday, January 9, 2011

Lab Results and Abnormal Flags

We're in the final testing of a lab results interface with a local hospital. They will send us results messages and we will place those results into the Patient's chart so that our Doctors can view the results in our EHR. Their lab system will not accept order messages from us, so we are faxing the orders to them and they are manually entering the orders. The results come back to us as an ORU^R01 message.

Late in the testing, we discovered that some results were not displaying correctly. The values were correct. The NextGen EHR will display results that are Low, High or Abnormal in a different color to make it easier for the provider to recognize. This is meta-data in that it describes the results. This information is carried in the message in the OBX-8 Abnormal Flags field.

The sending lab system is using non-standard codes in this field. Technically, the values for OBX-8 are in the User Defined Table 0078, which means that they can use whatever they want in there. Many years ago, they defined their own abnormal flags.

The sending system told us that they would not change the codes that they use.

I was already using a Rhapsody Mapper to make changes to the incoming result message before I sent it to NextGen. So, I needed to translate their Abnormal Results codes into the ones that NextGen uses. There are a limited number of codes to translate, and the code sets are fairly static. I have done this sort of code translation using interface engines before. It is very common. The technique varies. Cloverleaf has a separate component that is used to translate codes.

I have use database tables to translate codes in Rhapsody before. We recently upgraded to Rhapsody version 4.0, and it supports Translate Tables in a way that does not require using a database. I had not used this technique before, so I got to learn something new. You create the translate table using the IDE and can maintain it using either the IDE or from the web based Management Console. Once I had the table created, I needed to add a single line of code to the Mapper to translate the code.

I made the change to the test route and replayed several results messages to verify that Low, High and Abnormal results are displayed in the correct color in the EHR.

Because I had not used this technique before, the change took about half a day to develop, code and test.

The Management Console will allow us to view the codes that failed to translate. That is, when we get a message that contains a code that is not in the translate table, we will be able to see that and possibly add the new code to the translation table. I don't expect this to happen, because it sounds like they have been using their non-standard codes for many years.

The sending lab system will have to adopt the Abnormal Flags values from Table 0078 to achieve Meaningful Use, as both of the Implementation Guides (Lab to EHR and Public Health) have specified the use of the values that are in the standard.