OpenICE User Introduction


Thanks for trying OpenICE!

This guide aims to introduce readers to medical device integration using the Open-source Integrated Clinical Environment (OpenICE). OpenICE is a distributed system platform for connecting network nodes together - e.g.:

  • medical devices found in an OR or ICU,
  • blackbox recording applications (i.e. data logging),
  • applications for clinical decision support (CDS),
  • and external interfaces to other healthcare IT (HIT) systems like EMR flowsheets.

OpenICE automates peer-to-peer node discovery, data publishing and subscribing between nodes, as well as proprietary medical device protocol translation. Users and developers of the OpenICE platform get the data they need, in a common sensible format, seamlessly delivered to the destinations they want.

OpenICE has been called an open clinical research platform, an abstraction layer for medical devices, a medical Internet of things (MIoT) platform, a cyber-physical system (CPS) test tool, an app hosting environment, amongst other names. The current version of OpenICE enables users to convert heterogeneous medical device data from supported devices into a common structure and protocol, and to exchange that data with demonstration clinical applications on a different machine (or machines). OpenICE includes several simple but useful sample applications as well as example code to help users to write their own.

openice setup

Click to view larger - An example OpenICE implementation for collecting data from an MP70, a PB840, and a simulator.

System Component Overview

The OpenICE application is the entry and exit point for medical device data into and out of the network. OpenICE has two operating modes: Supervisor and Device-Adapter.

The Device-Adapter software acts as a bridge that will to connect both real and simulated medical devices into the OpenICE network. The Device-Adapter software translates the proprietary device communication protocols into the standard OpenICE data structures (described in ice.idl) and communication protocol.

The Supervisor runs clinical applications and subscribes to all medical devices in the same Domain and Patient Context.

openice setup

Downloading and Installing

The OpenICE device-adapter and supervisor are distributed as one JAR for your convenience. You can download the software by clicking here. To view the different releases available, check the files section of github.

  1. Unzip the archive OpenICE-1.0.0.tar.gz. It will create a directory called OpenICE-1.0.0.
  2. Within the OpenICE-1.0.0 directory, navigate to the bin directory.
  3. Within the bin directory, run the OpenICE script.
NOTE: For Linux platforms, a Java 8 runtime environment is not included. Please download a JRE from Oracle.
  1. Double-click the installer package. (OpenICE-1.0.0.pkg)
  2. Follow the prompts to install the software.
  3. In the Applications menu, run OpenICE.
  1. Double-click the executable to install. (OpenICE-1.0.0-x86.exe)
  2. Follow the prompts to install the software.
  3. In the Start menu, run OpenICE.

Running OpenICE Software from the GUI

Launch OpenICE. When open, the OpenICE application presents a start menu GUI. This menu is used to configure the mode of operation of the OpenICE application.

NOTE: If you would like to use the GUI to start both the Supervisor and a Device-Adapter(s), run the Supervisor first and start Device-Adapters from within the Supervisor.
Choose which software mode to run the application as: ICE Supervisor or ICE Device Interface (same as device-adapter). The ICE_Supervisor hosts clinical applications. The ICE_Device_Interface connects a medical device to the OpenICE network.
Domain ID
OpenICE systems on the same network can coexist by using different integer domain identifiers. If there are no other ICE systems on your network then any value may be used. The default value used at MD PnP is 15.
FHIR Server
(Optional) This is the base URL of an HL7 FHIR (Fast Healthcare Interoperability Resources) server from which patient information should be received.This field can be left blank to use a local database of patients.
openice start menu

What's next?

User Docs

OpenICE Introduction

Looking for where to start with OpenICE? Check out this page for the basic information you'll need to get off the ground with OpenICE.

Supervisor Overview

This page is intended to help users become familiar with operating the OpenICE Supervisor. The Supervisor is used for running demonstration applications to interact with connected devices and simulators.

Demo Applications

All this data! What should I do with it? Input it into a demo app of course! This page will explain the purpose and operation of each one of our demonstration applications included with the Supervisor.

Device-Adapter Setup

Interested in connecting a supported device into your own OpenICE network? Follow this tutorial to learn the basics about a 'device-adapter' and how to install the device-adapter software onto a Beaglebone Black. The process shown here can be used to connect any supported device onto any Java compatible computer, including your laptop.

Device-Adapter Config

This tutorial will show you how to configure a device-adapter to communicate with a Philips MP70.

OpenICE System Setup

OpenICE is a highly flexible system that leaves users with many options for using the tech. This tutorial illustrates three sample OpenICE configurations - single device, consumer, and enterprise.

For Developers

Architecture Description

The Infusion Safety Application Architecture Description provides a high-level survey of key architectural components of the current implementation of an Integrated Clinical Environment (ICE) devised at the MD PnP Interoperability Lab in Cambridge, MA. This document offers readers a targeted glimpse of key design features of that implementation that pertain specifically to the PCA Infusion Safety application.

Hello, OpenICE!

Want to use the OpenICE platform for something new? Write your own OpenICE app! The code repo hello-openice will help you tackle basic device subscription, vital signs collection, and more.

Hello, OpenICE! Docs

Documentation for Building an App from "Hello, OpenICE!"

Beaglebone Notes

This page lists the alterations we make to the default Beaglebone Black Debian disk image while creating the 'device-adapter' disk image.

Build from Source

Self explanatory. Helpful information for building the OpenICE project from source. These instructions are aimed at experienced software developers looking to work with the source code of the OpenICE project.

Tools and Resources

In the lab, we use a variety of external tools in our research and development of OpenICE. This page lists tools and resources we would hate to live without.