Friday 5 June 2009

Medical Systems using Glassfish / Open ESB

I attended a BOF at JavaOne last night on:

Medical Instrument Systems Middleware – An ESB based SOA Solution
BOF-4738
Haridas Puthiyapurayil, Senior Software Engineer, Abbot Diagnostics (R&D Hematology)

Where Haridas showed his solution for deploying an ESB for integrating laboratory systems (through RS-232 interfaces) to other services which provide patient details and other clinician systems. The context of this presentation is similar to something I've been working on in the UK for the past month and so it was good to learn from someone in the field.

Here's a few notes I jotted-down, hope these are useful to you. Found it interesting to note that this is the second talk about using Glassfish ESB and App Server in a healthcare enviornment - must be cost reasons and the availability of HL7 encoding methinks.

Background
How can use SOA for building systems without touching (changing the interfaces to) existing medical systems? The objective was to build a highly modular middleware system for integrating and exchanging instrument analysis to the labs

A clinical lab is about:
o many instrument vendors
o many software providers
o many clinical service providers

Needed a framework for patient record result exchange based on -> (predict, diagnose, monitor) and supporting interconnections among these components, i.e. instruments, diagnostics, labs, diagnostics, patients, doctors. Controlled by the FDA and other regulation services.

Where is the complexity?
  • multiple instrument systems from several vendors with their own middleware solutions
  • multiple standards
  • systems run legacy applications
  • integration issues
  • healthcare systems are complex
Core component is an Instrument Binding Component which they wrote as a JBI module and JAXB (for v2.0, see JSR222) - incidentally as you know JAXB is quite complex and so look here for a simpler view.

Key standard was LIS which integrates to a number of LIS systems. I was surprised that this wasn't HL7 but I suppose that just isn't used so frequently by instrument systems.
Architecture wasn't too complex (on the face of it) and was based on Glassfish (Open ESB and App Server). Although, they didn't mention how the small matter of patient record database was maintained/controlled.

The standard is difficult to google and so try this: NCCLS-LIS2-A2 – appears to be a loose specification for transferring information between clinical laboratory instruments and information systems. I say loose as there is no schema standard definition for this standard (!) which apparently can be quite typical.

To build the Encoder:
1) Mapped the schema definitions from vendor and the standard together...
i.e. field elements contained vendor specific elements.
2) Fed the pipe-limited file and the LIS2 into an XJC compiler for JAXB; binding component then puts it on the bus.

A useful presentation from Haridas of Abbott systems of using an ESB in the real-world to solve a problem. A nice talk.

No comments:

Post a Comment