HL7 V3 Lab result entry (JSON format):
{"entry":{
"organizer":{
"code":{"displayName":"..."}},
"components":[
{"component":{...}},
{"component":{...}},...],
"notes":[...]}}}
HL7 V3 Lab result component (JSON format):
{"component":{
"observation":{
"code":{"displayName":"..."},
"effectiveTime":{"value":"<ISO-8601>"},
"value":...,
"interpretationCode":{"code":"..."},
"referenceRange":{
"observationRange":{...}},
"notes":[...]}}}
5 INTEGRATION AND TESTS
The REST API is very easy to test using HTTP
requests from simple command tools such as cURL
or a web browser. Early in the project we were able
to create and deploy, in a few days, a full working
prototype of the API that was producing mocked-up
resources so that mobile clients were able to retrieve
sample data in the same fashion as the final API
production version.
During development we used a very small
footprint embedded java web server (TJWS) that
was running JUnit integration tests every time we
were compiling the project. As a result, the REST
API was always operational and ready to be
deployed as a war file to the staging server when
necessary.
On the client side, the very simple host, port and
base URL configuration is necessary to switch
between a staging and production server, which
makes development, testing and deploying
extremely easy.
The first version of our mobile health record will
be available late 2010 as a pilot program for a small
group of physicians participating in the New York
Rochester Regional Health Information
Organization (Rochester RHIO). It has already been
tested by the technical services of the New York
Rochester RHIO and we have incorporated changes
in the iPhone interface and REST API format to
support the variability of real world lab results
(which sometimes can be either incomplete or
contain badly formatted HL7 data sets).
Initially only the records of patients who have
provided consent will be accessible by the mobile
application. This represents, in Summer 2010
290,000 patients from more than 140 practices.
6 CONCLUSIONS
In this paper, we have presented the advantages of
using a REST architecture for designing a
lightweight and scalable API that is extremely easy
to build, integrate, test, extend and maintain. We
were able to create a working API prototype in a
matter of days and a full functioning set of
sophisticated health record web services accessible
by our mobile client application in few weeks.
In the next few months, we will be able to gather
user feedback from a large group of users
(physicians and nurses) and statistics about usage
that will be very valuable to improve the
performance of our health record REST API and the
user experience of the mobile application. Also the
audit of server logs for the REST API and the use of
data mining tools will be valuable to see
performance bottlenecks and usage trends.
Furthermore not only are REST APIs are
particularly suitable for fast and loosely-coupled
solution integration such as mobile applications, but
can also be used in health care for portal and mash-
up applications as well.
ACKNOWLEDGEMENTS
We are very grateful to Ted Kremer, Gloria
Hitchcock and LaRon Rowe from the Rochester
RHIO who have initiated this project and for their
early feedback on the prototype. Our appreciation to
David Stanfill and Nick Fisser and their team from
Remedy Systems who helped us develop the iPhone
mobile client. We would like to acknowledge the
supervision and guidance provided by Anand Shroff.
Thank you also to Terena Chinn-Fujii, Igor Kosoy,
Greg Kuhnen, Ravi Luthra, Brian Schott, Neal
Schultz, Nick Radov, Nicole Spencer, Dennis
Stratford, Sean Smith, Tom Wilson, Eileen Xie,
Oleg Zakharov and the Axolotl development team
for their technical contributions, comments and
support throughout this project.
A MOBILE APPLICATION ACCESSING PATIENTS' HEALTH RECORDS THROUGH A REST API - How
REST-Style Architecture can Help Speed up the Development of Mobile Health Care Applications
31