Laboratory Information System Interoperability

GSOC 2011 OpenMRS PIX/PDQ Supplier Module Documentation:

Overview:
OpenMRS allows you to store and access patient-level medical data in a flexible and configurable way. But a true, large-scale electronic medical record requires multiple software applications, all interoperating together. A large hospital might use OpenMRS for the clinical patient record, and a separate Laboratory Information System to store detailed information about specimens and samples. Or a national-scale medical record might have OpenMRS running as a centralized database-of-record, with multiple mobile applications connecting to it.
What these situations have in common is that when systems interoperate, one typically behaves as aMaster Patient Index, allowing others to query it to find patient records.
At the MEDINFO 2010 conference (paper can be found here:  http://goo.gl/HG4ZKY), we demonstrated the potential for interoperability between OpenMRS andOpenELIS (an open-source Laboratory Information System). We wanted to describe and show a scenario where OpenMRS would be providing the master patient index andOpenELIS would be able to access patient demographic information from the OpenMRS database to avoid the necessity for dual data entry of that information into both systems. As the framework for this interoperability, we decided to implement the standards developed by the Integrating the Healthcare Enterprise (IHE) initiative. We successfully created a working demonstration of the concept, but more work is needed to make this interoperability link suitable for production use.

How It Works:

Download the module from OpenMRS SVN Repository and Upload the OMOD file into OpenMRS Instance,

After uploading the module, in Administrator page you will see a link PDQ Form under Patient Demographic Query.









When you click submit, after inserting the HL7 QBP^Q22 Query in the  text area you will get the response as shown

If you want to search a patient, you can search with following parameters list:

a)   With first name only

b)   With last name only

c)   With first name , last name and gender

d)   With first name and last name only

e)   With gender only.

f)    With first name and gender.

g)   With last name and gender.

h)   With wildcard search on first name and last name.

i)     With wild card search on first name and exact search on last name

j)     With wild card search on last name and exact search on first name

k)   With wildcard search on first name and last name and gender.

l)     With wild card search on first name and exact search on last name and gender

m) With wild card search on last name and exact search on first name and gender

n)   With wildcard search on first name and gender

  • o)   With wildcard search on last name and gender

a) With first name only:

Query:

Response:


b) With last name only:

Query:

Response:

c) With first name, last name and gender:

Query:

Response:

d) With first name and last name only:

Query:

Response:

e) With gender only:

Query:

Response:

f) With first name and gender:      

Query:

Response:

g) With last name and gender:

Query:

Response:

h) With wildcard search on first name and last name:

Query:

Response:

I) with wild card search on first name and exact search on last name:

Query:

Response:

j) With wild card search on last name and exact search on first name:

Query:

Response:

k) With wildcard search on first name and last name and gender:

Query:

Response:

l) With wild card search on first name and exact search on last name and gender:    

Query:

Response:

m) With wild card search on last name and exact search on first name and gender:

Query:

Response:

n) With wildcard search on first name and gender:

Query:

Response:

o) With wildcard search on last name and gender:

Query:

Response:

Support for Continuation Protocol segment in HL7 messages:

 

This is useful, when there are so many matched patients are available in result set .So to avoid list to be populated at once we are going in an incremental manner

Now I Am Requesting Only 2 of the available Patients In The

Query (QBP^Q22). We can see in RCP segment the quantity. In the current database I am having 9 patients with last name “Patient” and first name “John”. To request next patient records you need to add DSC segment with continuation pointer which was displayed in the previous HL7 RSP^K22 response

Query:

Response:

Query:

Response:

Query:

Response:

Query:

Response:

Query:

Response:

Taking OpenELIS as Patient Demographic consumer:

OpenELIS is an open source laboratory information system extended by University of Washington to work in resource constrained settings

https://sites.google.com/site/openelisglobal/

http://code.google.com/p/openelisglobal/ 

Application of this module in real world:

 

Where in when u search for a patient name with john you can see imported values under column Data source which indicates that it is coming from OpenMRS database.

After that, when you click the radio button, you will see the following screenshot, where in you can save patient