• Logging:
The Logging component is used by all other com-
ponents. For traceability of message flows at least
the incoming and the outgoing message(s) should
be logged.
• Backup:
The Backup component is used on messages en-
tering and leaving the EAI environment. The raw
data and business keys of the message are stored
in a database to enable searching and resending of
messages in case of errors during processing.
• Error Reporting:
When an error occurs, the Error Reporting com-
ponent is used to send notifications to responsible
addressees. To distinguish between different error
conditions, hierarchical error codes are used.
Not every component has to be used in a specific in-
terface implementation. They are to be seen as build-
ing blocks that enable or facilitate the development
of interfaces. There are three different approaches to
achieve reusability at interface level:
1. Implementation of multiple generic components
that serve as building blocks for interfaces. The
interfaces themselves cannot be reused, but their
individual components can. For example, a
generic Filter component can be implemented
which checks the content of a field. Both the
specific field (e.g., PID.3 from an HL7 message)
and the check itself (e.g., a REGEX) can be pro-
vided as a configuration option. This approach is
most suited for environments having a (manage-
able) range of functionality that has to be com-
posed in many different ways and there is less or
no need of reusing an interface as a whole.
2. Implementation of interfaces using type specific
components. Here the interfaces are reusable
themselves, but not their individual compo-
nents. Therefore the components have to be re-
implemented for each type of interface. This ap-
proach is best suited for (smaller) environments
where interfaces can be grouped together based on
their functionality. For example, having only in-
terfaces for patient administrative data using HL7
ADT messages. This approach also suits well for
simple ad-hoc integration solutions, which may
not need an implementation for all different com-
ponent types.
3. A hybrid approach, where the implementation of
interfaces uses both, generic and specific compo-
nents. This approach suits well for environments,
having interfaces of certain types (patient admin-
istration, observations results, MLLP communi-
cation, ...) and also special interfaces which do
share some functionality. Furthermore some com-
ponents are available in a generic reusable way
(Logging, Backup, Error Reporting, Routing, Fil-
ter, ...).
4 EVALUATION
This architecture was implemented and deployed
in the EAI production environment of the Vinzenz
Gruppe. At the end of 2014 the production EAI envi-
ronment consisted of 342 interfaces deployed to three
production servers. Each of these interfaces was im-
plemented using its own Java class, thus class reusage
was not present at all, even many of the existing in-
terfaces did similar tasks. Code reusage was primar-
ily based on copy and paste with subsequent manual
adaptation. As a result many interfaces had a com-
mon basis, but there were numerous extensions and
variants concerning for example, the message struc-
ture, the use of free text fields, additional fields and
data mappings.
With the beginning of 2015 an analysis was ini-
tiated to find interface categories sharing common
functionality. The hybrid approach for interface
reusability was then used to implement a config-
urable standard implementation for each interface
category. The four most important ones were: a
MLLP Sender interface [A], a MLLP Receiver in-
terface [B], an interface for routing and forward-
ing of arbitrary messages [C], and a standard HL7
ADT Transformer interface [D]. Furthermore, con-
figurable generic components were implemented for
functionalities that were required by many interfaces.
These were Logging, Backup, Error Reporting, Rout-
ing, Filter, Inbound- and Outbound Connector com-
ponents.
For new interfaces the standard interfaces were
used where appropriate, and the rollout was done by
configuring instances of them accordingly. Further-
more old legacy interfaces were replaced with the
equivalent standard implementation whenever possi-
ble, or have been reimplemented with the proposed
architecture. This led to an increasing number of
reusable components and interface classes.
The current EAI production environment con-
sists of 534 interfaces, deployed to seven production
servers. 86 interfaces are legacy interfaces which do
not conform to the architecture presented in this pa-
per. Table 1 shows the number of interface classes
and the number of instances of each class running in
the production environment.
The pie chart of Figure 4 shows that the top four
interface classes which have a reusage count N >= 25
Reusability of Interfaces in Healthcare EAI Environments
421