Skip to content


Subversion checkout URL

You can clone with
Download ZIP
LIS interface (to Immulite 2000 XPi to worklist_manager for now)
Failed to load latest commit information.
bin print lis version on startup
features whitespace, rm logging
lib version
test be stricter with barcode format
vendor systemd example
.gitignore gitignore tags/.ruby-version
.travis.yml don't test on ruby < 1.9, add TODO
.yardopts documentation improvements
Gemfile updates
LICENSE Initial commit to immulite.
Rakefile no need to specify test options in Rakefile
TODO don't test on ruby < 1.9, add TODO
lis.gemspec need explicit json dependency



A simple interface to medical laboratory instruments. It implements a rough subset of ASTM E1394-97 (or, possibly CLSI LIS02-A2)

It listens for test requests and results and forwards them via HTTP. It is intended to interface with the worklist_manager web application.

Developed for and tested with DPC Immulite I2500 (user manual) using the LIS specification version 600129-H (not available online, but a similar version might be available)


  • run the LIS server:

    $ gem install lis
    $ lis help
    $ lis -l /dev/ttyUSB0 -e http://worklist.example/lis server
  • now, whenever order requests arrive from the LIS hardware, lis2http will forward them to the specified HTTP endpoint:

    GET http://worklist.example/lis/{DEVICE_NAME}-{SPECIMEN_ID}
  • this should return basic patient information as well as test IDs for all pending requests:

    id: '1234'
      number: 98
      last_name: Sierra
      first_name: Rudolph
    - TSTID
    - TSH
    - FT3
    - FT4
  • results are posted to the same URI as soon as they are received:

    POST http://worklist.example/lis/{DEVICE_NAME}-{SPECIMEN_ID}/{TEST_NAME}
    flags: N
    result_timestamp: '1993-10-11T09:12:33+00:00'
    status: F
    test_name: TSTID
    unit: mIU/mL
    value: '8.2'


0.4.5 (2013-03-06)

  • switched to using HTTParty from RestClient


  • patient id is read from patient/number not patient/id
  • switched command line tool to use Main, not GLI


  • changed the HTTP Interface:

    • Requests now are at {base_url}/{device_name}-{specimen_id}
    • Results are posted to {base_url}/{device_name}-{specimen_id}/{test_id}


Copyright (c) 2010-2013 Levin Alexander. See LICENSE for details.

Something went wrong with that request. Please try again.