Documente Academic
Documente Profesional
Documente Cultură
Table of contents
4 Mirth 5
5 Froid 6
5.1 Protocols 6
5.2 LIMS-side. One interface only 6
5.3 LIMS-side. Exporting worksheets 6
5.4 LIMS-side. Importing results 7
5.4.1 Format 7
5.5 Instrument-side. Importing Worksheets/Sample lists 9
5.6 Instrument-side. Exporting analysis results 9
5.6.1 'Fetching' results 9
6 Managing Instruments 9
1 Purpose of this document
This is a discussion document to establish a common understanding, in
layman's language, what the Free and Open Source Instrument Middleware,
Froid, does.
It is not a technical specification, but will be used to ensure Froid fulfils basic
functions.
2.2 Objective
The main purpose of the Froid is to resolve serial (RS232) and upcoming
USB communications with laboratory instruments.
Froid must communicate bi-directionally with LIMS using a singular easy to
understand file format while converting these to and from all possible
instrument communication protocols and formats. This will keep the
customisation in the LIMS itself down to a minimum.
For better load balancing, Froid must be free-standing to allow for it to be
deployed on its own hardware in high volume labs.
The Froid user interface for management and maintenance is to be web
based for easy remote access.
The LIMS/Froid import and export format must be defined as broadly as
possible, to include imagery and data blobs, and with enough redundancy to
take care of future interface developments.
Communication between the Froid server and the LIMS itself must be in line
with standards-compliant secure communication protocols offering
comprehensive data encryption.
1 https://github.com/bikalabs/Bika-LIMS/wiki/Supported-instrument-interfaces
2 https://github.com/bikalabs/Bika-LIMS/wiki/creating-an-instrument-import-interface
Page 2 of 9
2.3 Flexible design
3 http://www.industrialethernet.com/gc-wi232.html
4 http://www.industrialethernet.com/net232-dte.html
Page 3 of 9
2.4 Other products in this domain
Bartelt once interfaced Bika LIMS with their data collector5.
Data Innovations has 70% of the global middleware market with their
Instrument Manager™6 and recently bought the other big player, Dawning7.
5 http://www.bartelt.at/home/unternehmen/bereiche/datentechnik/laborgeraeteserver/Data-
Collector-2.en.php
6 http://datainnovations.com/support/driver-downloads
7 http://www.dawning.com/InstrumentInterfaces/DriversCables.aspx
8 http://www.bartelt.at/home/unternehmen/bereiche/datentechnik/laborgeraeteserver/Data-
Collector-2.en.php
Page 4 of 9
The user presses the [import] button, the LIMS reads the file and submits
the results to the database after validating them using the AR IDs and
analysis keywords.
A log is written to the screen during this process and all issues such as
unknown IDs or keywords highlighted. No results are ever overwritten in the
LIMS.
After the import, the results enter standard Bika workflow and QC, see flow
diagram above – none of these steps have to be duplicated during the
import. Only the import process itself needs to be properly managed for
accuracy.
For instruments such as NIRs capable of multiple analyses on the same
sample, all analysis regardless of whether they were requested by clients are
imported. Those not requested are not available to clients unless they
explicitly ask for them later.
4 Mirth
Since Bika Health will also implement Open Source Mirth9 Connect10 to
facilitate HL7 messaging for EMR and other medical interfaces, it could be
worth our while to investigate it as instrument server too. Initial investigation
looks promising.
Update. This has since been commercially implemented by Lablynx, running
on a Pi with channels for instruments a s well as EMR comms in HL7, etc. At
the writing of this, no trace can be found of it on the Internet. Questions
remained about how they could integrate Mirth's FOSS license with
proprietary distribution.
From the Wikipedia 11:
Mirth is an open source cross-platform HL7 interface engine that
enables bi-directional sending of HL7 messages between systems
and applications over multiple transports.
HL7 has established itself as a standard in healthcare information
exchange. In order for an electronic health record system to integrate
or exchange data with HL7 systems, an adapter layer must be
implemented to transform messages.
Mirth allows messages to be filtered, transformed, and routed based
on user-defined rules. A web-based interface and channel creation
wizard associates applications with Mirth engine components.
9 http://www.mirthcorp.com/
10 http://www.mirthcorp.com/products/mirth-connect
11 http://en.wikipedia.org/wiki/Mirth_(software)
Page 5 of 9
Mirth uses a channel-based architecture to connect systems with
other HL7 systems. Channels consist of endpoints (both inbound and
outbound), filters, and transformers. Multiple filters and a chain of
transformers can be associated with a channel. The Mirth web
interface allows for reuse of filters and transformers on multiple
channels.
Endpoints are used to configure connections and their protocol
details. Inbound endpoints are used to designate the type of listener
to use for incoming messages, such as TCP/IP or a web service.
Outbound endpoints are used to designate the destination of
outgoing messages, such as an application server, a JMS queue, or
a database
Some instruments need low-level harvesting of data, and to receive
commands to issue results, there is no streaming as such. It needs to be
investigated how Mirth would do this.
5 Froid
This functional description is more than 3 years old ...
5.1 Protocols
Special attention should be paid to the way Froid communicates with the
LIMS. It should follow recognised standards, such as https, possibly
enhanced to accommodate WebDAV. Moreover, the data format of the data
to be transmitted should comply with easy to handle file formats, such as
ASCII text or, preferably, UNICODE-enabled CSV.
Two different parts of of the Interface needs specification: communication
protocol on one hand, and data format on the other. There is, for instance,
no point in insecurely serving .CSV formatted data via USB storage.
Page 6 of 9
Worksheet
Analyst Instrument Method
ID
WS11-123 John Smith AA-002 AA
Tray Date Time Sample Analysis Analysis Analysis Analysis Analysis
Sample ID --
position sampled sampled Type 1 2 3 4 n
1 AR11-123 11/09/01 09:01 Ore Ag Al Au Cu -- Pb
2 AR11-124 11/09/01 09:08 Slag Ag Al Au Cu -- Pb
3 AR11-125 11/09/01 09:15 Core Ag Al Au Cu -- Pb
4 AR11-126 11/09/01 09:22 Ore Ag Al Au Cu -- Pb
--- --- --- --- --- --- --- --- --- --- ---
n AR11-222 11/09/01 12:36 Ore Ag Al Au Cu -- Pb
Page 7 of 9
There's not enough space here to express this as a detailed CSV definition.
An overview:
Sample
information,
1 sample Interim Interim Interim Interim Interim Interim Interim Interim Interim
Result Result Result
per row value 1 value 2 value 3 value 1 value 2 value 3 value 1 value 2 value 3
The table can be expanded further to the right if required, some NIRs are
known to do 30 or more different analyses on the same sample.
The Import header in rows 1 and 2, more fields can be added, TBD indicates
'to be defined':
The next rows per sample (excluding analysis results which will follow in
further columns to the right):
Position Sample ID Date analysed Time analysed Duration TBD --- TBD
1 AR11-123 11/09/01 11:00:00 00:04:39 --- --- ---
2 AR11-124 11/09/01 11:05:00 00:04:24 --- --- ---
3 AR11-125 11/09/01 11:10:00 00:04:49 --- --- ---
--- --- --- --- --- --- --- ---
n AR11-222 11/09/01 12:20:00 00:04:15 --- --- ---
On the same rows to the right follows a number of columns per analysis:
These are repeated for each analysis in the Import and in real life could look
like this:
Position Sample ID --- Keyword Value Unit Title Value Unit Title Value Unit Title Value Unit
1 AR11-123 --- Ag 1.66 ppm Dilution 1 SD 0.33 ppm RSD 0.23 %
2 AR11-124 --- Ag 2.43 ppm Dilution 1 SD 0.68 ppm RSD 0.45 %
--- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
Page 8 of 9
5.5 Instrument-side. Importing Worksheets/Sample lists
Once the worksheets from the LIMS land in Froid, it interprets the worksheet
and prepares it in the correct format for the corresponding instrument. From
here on it depends on how the specific instrument functions. Loosely
defined, it could be 'listening' to Froid, and the data simply streamed to it.
Either way, Froid writes the data to the instrument when it is ready to receive
it.
Once the analyst is satisfied the worksheet has been successfully
transferred, he/she proceeds with analysing the samples.
6 Managing Instruments
Some LIMS implementations will also require instruments to be managed
from the LIMS itself, e.g. started up and initialised, shut down, cleaned etc.
This opens an additional spec for Froid: An open, modular interface structure
that allows for easy extension for both data input (commands) and output
(data streams).
This could be implemented in a second phase for Froid.
Page 9 of 9