order to ensure an immediate usage, the user interface
must be easy to generate. In addition, the synchro-
nization of collected data with the electrophysiology
database is crucial in the perspective of their sharing
and management.
These design goals imply several requirements
that the system must fulfill. It must be inherently
client-server oriented. The server end must provide
a well-known API to be integrated with most com-
mon electrophysiology databases. Moreover, server
and client must communicate using a unified data for-
mat for easy migration across different platforms and
to be understandable by various clients.
The client end parses the exported data structure
and generates a graphical layout. Once the layout is
generated, the user can customize it. When the user
has the layout prepared, the client is able to download
data from the server or push data stored locally. When
the client works offline, the data must be stored in
an embedded database and synchronized immediately
when the client gets back online.
The idea initially presented in (Jezek et al., 2013a)
described a client-server system. The server is able to
annotate the database layer of an electrophysiology
database. Such annotated layer is then serialized to
a XML structure and sent to the client. This idea is
extended, implemented and validated in this paper.
3.2 Mapping Annotated Code to Data
Template
Modern systems are coded using high-level virtual
machine programming languages such as Java, .NET
or Python. These languages rely on reflection, an abil-
ity of a computer program to examine and modify the
structure at runtime. Moreover, the code in these lan-
guages can be annotated by supplemented metadata.
These metadata can be processed by reflection at run-
time. Java uses Java Reflection API (Forman and
Forman, 2004) to read Java Annotations (Microsys-
tems, Sun, 2008). These annotations give additional
semantic meaning to common Java classes. When a
database layer in Java programs is represented by PO-
JOs
4
, a suitable approach is their extension by spe-
cially designed annotations. These annotations pro-
vide the means to describe a data template.
As a solution we designed a set of annotations
described in Table 1. The annotation
@Form
repre-
sents one form on the layout. If one form is rep-
resented by more than one entity, the annotation
@Multiform
with the same name is used for each en-
tity included in the form. The
@FormItem
annotation
4
Plain Old Java Object - A Java class with class at-
tributes accessed by get/set methods
Table 1: Supported Annotations.
Annotation Parameter Meaning
@Form label Label of the form.
@FormDescription value The description.
@MultiForm value Identifier of the form (string).
label Label of the form.
@FormItem label Label of the item.
required Determines a required value (default: false)
preview Determines items used in data previews.
@FormItemRestriction minLength Minimum length of the input.
maxLength Maximum length of the input.
minValue Minimum value of numerical item.
maxValue Maximum value of numerical item.
defaultValue The default value.
values Enumeration of possible values.
denotes attributes that appear in a specific form. The
@FormItemRestriction
annotation defines restric-
tions on individual items. These restrictions can be
e. g. minimal and maximal numerical values or max-
imal length of text values.
When the data layer of the database is anno-
tated, it must be mapped to a suitable transport
format. Formats solve description of electrophys-
iology data on different levels of abstraction from
low-level binary formats, through highly abstract
implementation-independent data formats to formats
based on semantic web ontologies. Each approach
has its benefits and drawbacks that need to be over-
come. We require a format that provides a sufficient
level of abstraction to be system independent on one
hand, but it should be easy-to-use without any spe-
cific requirements for user’s knowledge on the other
hand. The most flexible formats are Hierarchical Data
Format (HDF5) (HDF5 Group, 2013) or respectively
epHDF or NIX (G-Node, 2014) that are specialized
HDF5 for electrophysiology. HDF5 and epHDF5 are
the containers for raw binary data and metadata rep-
resented in the JSON
5
format. NIX (Stoewer et al.,
2014) provides a data model for storing experimental
data in HDF5, together with metadata in the odML
format. The odML (Grewe et al., 2011) is an open
format to store and transport metadata more then a
container for data. This format brings the following
advantages: (1) platform-independence, (2) simplic-
ity and human-readability, (3) ability to transfer lay-
outs as well as metadata with the same format. Be-
cause of mentioned benefits of odML we selected it
for the framework.
4 IMPLEMENTATION
4.1 Mapping Implementation
The mapping presented in Section 3.2 shows trans-
ferring persistent Java classes to templates. Then,
5
http://json.org/
HEALTHINF2015-InternationalConferenceonHealthInformatics
560