Supervisor Demo Applications Manual

Getting Started

This guide will assist you in using and understanding the OpenICE Applications ('apps'). Currently, the Supervisor applications are experimental and should be used with caution. Once you start the OpenICE Supervisor, a grid of app icons will appear on the left side of the screen. To open the app, click on the icon. To exit the app and return to the Supervisor home screen, click the 'Exit App' button in the bottom left. The OpenICE Supervisor will close you 'x' out of the entire window.

NOTE: Applications launched from the Supervisor only interact with devices in the selected patient context. On the bottom of the OpenICE screen, the 'Select a patient:' dropdown will change the patient context the app is operating in. For instructions on connecting medical devices through OpenICE device adapters, please go to the Supervisor instructions.

OpenICE Applications

Alarm History

This app displays all of alarms that have triggered, from a specific device, since the time the app was started. Once you open the app, two large boxes appear, the table on the left displays patient alarms and the table on the right displays technical alarms. The four column headings listed below are displayed (in both the patient alarms table and the technical alarms table) when running this app. You may sort the alarms by any of the headings by clicking on the heading itself. An arrow next to the heading will appear after clicking the title to show the direction that the data has been sorted (see image below for example). The length of each column may also be made longer or shorter by selecting the line in between each column and dragging it forwards or backwards. We believe that an app such as this one may help provide a better understanding of false and nuisance alarms through post hoc analysis.

Unique device identifier. This is a randomly assigned device identifier what indicates which device the alarm is coming from, and is typically a long string of numbers and letters. To find out the device that the UDI represents, click on an image of a device on the ICE Supervisor main screen.
The time the alarm sounded.
This displays the type of alarm. For example, high total respiration rate or low battery.
This is the content of the alarm message.
alarm history

Auto Validate

This app displays and automatically validates vital sign data from at least one physiological monitor. The main display of this app contains histograms of vital signs data emitted from various monitors. The purpose of this app is to allow the user to view vital sign data emitted from different monitors that represent the same physiological measurements and to validate the accuracy of this data. This app was MD PnP's HIMSS15 demonstration.

Within each histogram, the following is displayed:

The number of devices that the data is coming from. The specific measurement sources are also displayed in a legend below each graph.
The number of data points used to make the histogram. For example, if the number is 30, then the last 30 data points are used from each source.
The mean of the vital signs on the histogram.
The standard deviation of the vital signs on the histogram.
Percent relative standard deviation of the measured vital signs. This is a measure of the variance of the data.
Minimum kurtosis of the distribution of the vital signs. Kurtosis represents the peakedness of the distribution of vital signs.

The following is displayed at the bottom of the screen:

Vital Signs
Histograms of selected vital signs will display in this app.
  • To remove a vital sign from the app, click the red button to the right of the waveform graph.
  • To add a vital sign to the app, click the box with a down arrow next to “Add a vital sign”. Then select a vital sign and press the “Add” button.
Data Points
When the app is open, the number next to data points will be 20. This means the app will show the last 20 data points for each vital sign. This can be changed by using the up and down arrows next to data points or by typing in a different number.
Select the desired threshold to indicate the maximum allowed percent relative standard deviation for vital signs data to be considered validated.
Min Kurtosis:
Select the desired threshold to indicate the minimum allowed kurtosis for vital signs data to be considered validated.
auto validate


This app displays trends vital signs data from the connected medical devices. The trends are represented by a scrolling line graph that is visually similar to a digital nursing flow sheet. Each vital sign type has one graph, and each graph may have several data points if the data is emitted from more than one monitor or device. In this case, each data point (or line) will be a different color, and a legend below the graph will state where the data is coming from. This data is displayed over a predetermined amount of time. This app allows the user to see the potential variability in vital signs data that comes from different monitors or devices.

Vital Signs
Line graphs of selected vital signs will display in this app.
  • To remove a vital sign from the app, click the red button to the right of the waveform graph.
  • To add a vital sign to the app, click the box with a down arrow next to “Add a vital sign”. Then select a vital sign and press the “Add” button.
Time Interval
To change the duration of the time on the graph, use the drop down box next to “Time Interval”. The following times are available: 10 seconds, 1 minute, 5 minutes, 15 minutes, 1 hour, 2 hours, 3 hours, 4 hours, 5 hours, and 6 hours.

Data Recorder

This app records numeric and waveform data in OpenICE. This app enables post hoc data analysis of medical device data. When the app is opened, two large tables will appear. The table on the left will populate with devices connected via a Device Adapter. Select or unselect the checkbox next to the device to choose the specific device data to record data. The table on the right will contain the following five columns:

Device ID
This unique identifier of the source device.
Metric ID
The name of the parameter that is being recorded. E.g. MDC_ECG_LEAD_II.
Instance ID
The DDS identifier of the data. Always is 0 unless the source device has multiple sensors for the same parameter.
The time of the data point.
The measured value of the data point collected.

Select the “Start” button in the bottom right hand corner of the page to begin recording data. Select a location to store the data before clicking the start button. After selecting the start button, the tables will begin to fill with data. The start button will also change to stay "Stop". Select "Stop" when you would like to stop recording and saving the data.

Before starting data collection, select the desired storage location, format and maximum size. Information on data storage is located at the bottom of the app.

Logging To
Select the "Change" button to enter the filesystem location where the data will be stored.
Files to Keep Around
Select the dropdown to choose how many data files to save by choosing from: 1, 5, 10 or 20 files.
Max File Size
A maximum file size may be selected from the dropdown from one of the following: 1 MB, 5MB, 50MB, 500MB, 1GB, 5GB, 50GB, 500GB, 1000GB.
File Type
Choose how to store the data by selecting the button next to one of the following:
  • xls (csv) - This document will save as a comma-separated values (csv) file. This file may be imported and converted into Microsoft Excel (xls).
  • sql - Structured Query Language storage format - used in many common databases including Microsoft Access.
  • vcd (ieee-1364) - Value Change Dump - a waveform storage format defined by the Institute of Electrical and Electronics Engineers (IEEE) in the IEEE Standard-1364-1995 in 1995.

To review the data, open the file saved in predetermined location. This data will match the data that appeared in the table in the app.

data recorder

Data Visualization

This app displays selected vital signs for one patient in the form of an arbitrary shape. This allows the user to clearly see all vital signs and whether or not they are in the predetermined normal range. The purpose of this visualization is to illustrate novel methods of information display and exchange. If three vital signs are selected (typically the default) then a triangle will appear (see Examples 1-3 below). If four vital signs are selected, then a square will appear (see Example 4). To add or delete a vital sign from the data visualization app, this vital sign must be added or deleted from the Infusion Safety app (see this section for details).

Each leg of the triangle will represent a different vital sign, and each line has markings with numeric values. The ends of the lines contain numbers outside of the normal range (for example: SpO2 greater than 100 or less than 95), and the middle of the lines contain numbers within the normal range (for example: SpO2 between 95 and 100).

The values that come from devices or physiological monitors are plotted on each line and are connected to one another, creating an inner shape. If there are more than two values for one vital sign, only the highest and the lowest values can be seen. This inner shape is colored based on the status of the vital sign data. To edit the values for when the inner shape will be green, yellow, or red, go to the Infusion Safety app section for more information.

All vital signs in the normal range (see Examples 1 and 4).
At least one vital sign is not in the normal range (see Example 2).
Either one vital sign is severely abnormal, or more than one vital sign not in the normal range (see Example 3).
data visualization green

Example 1

data visualization yellow

Example 2

data visualization red

Example 3

data visualization square

Example 4

HL7 Exporter

This application exports data to Health Level Seven International (HL7). HL7 is an American National Standards Institute (ANSI)-accredited standards development organization dedicated to providing a comprehensive framework and related standards for the exchange, integration, sharing, and retrieval of electronic health information that supports clinical practice and the management, delivery and evaluation of health services. (1)

The most common purpose of medical device integration in the world today is for data entry into an EMR or other documentation application platform via HL7 messaging. This app is a demonstration of the ease of implementation of an HL7 connection when using the OpenICE network. The demo application will send numeric data from devices in the current patient context to a user entered address. The destination used in the lab is the HAPI FHIR test server at

HL7 Export properties are configurable at the bottom of the screen.

The frequency of data export messages can be changed from 5, 15, and 30 seconds; 1, 5, 10, 15, 20, and 30 minutes; and 1 hour.
HL7 Message Version
Select the version of HL7 message structure and content you would like to export. The version used in the lab is FHIR DSTU2.
  • FHIR DSTU2 - Free Healthcare Interoperability Resources - Draft Standard for Trial Use 2
  • v2.6 - HL7 Classic Version 2.6
Network Address
Enter the destination address of the HL7 messages. The host field and port number are the net address of the HL7 export. The server stood up in the lab for testing is located at

Infusion Safety

One of the flagship use cases for closed loop control of medical devices is the safe delivery of patient controlled analgesia (PCA). This app is a prototype implementation of the proposed closed loop safety system. The application controls the administration of IV medication and is programmed to stop the pump if the algorithm believes the patient is in a non-normal state. The algorithm for stopping the pump is customizable, but by default will stop the infusion if any of the connected devices is in a red alarm state or if two of the devices are in a yellow alarm state. The thresholds for red and yellow alarms are adjustable by dragging the associated slider.

When this app is opened, four text boxes will appear at the top of the screen.

Select Infusion Pump
Infusion pump connected to the patient will appear here.
Interlock Status
An alert will appear if the infusion is stopped. It will say why the pump was stopped (ex: low SpO2) and the time.
Infusion Status
States “Select Infusion Pump” until the infusion pump in the left text box is selected. Then it will say "Active".
Info. Messages
Will display a notification of which vital sign has violated a threshold.

A row for each vital sign will appear in the app. Respiration Rate, Heart Rate, and SpO2 will are present by default. Devices and the associated vital sign measurement will appear on the right. A colored bar will also appear below the name of the vital sign. The data range for each color can be changed by moving the buttons left and right on the colored bar.

  • The green color shows the safe data range. See Example 1.
  • The yellow color shows the potentially unsafe data range. If a data point is within the yellow range then an alert will appear. By default, if more than 2 data points are within the yellow range, then a red alarm will sound and the pump will stop. See Example 2.
  • The red color shows the unsafe data range, which will cause an alarm. If one value goes into the red range, the pump will stop. See Example 3.

The “Configuration Mode” is available to make edits to the app [listed below]. Check the configuration mode checkbox to view the edits available for this app. See Example 4.

  • The number of warnings that become an alarm for a specific vital sign may be edited to any number 1 through 11.
  • Select the large dropdown at the bottom of the app to add a new vital sign in this app.
  • Check off the checkbox to ignore zero for a specific vital sign.
  • Select the "Remove" button to remove the vital sign from the app.
  • Select the large red X next to the device if you would like to disconnect the device from the patient.
  • Check off the required checkbox to make that vital sign required to run this app.
    • If this box is checked and there is no source of that vital sign then message will appear in the Informational Messages Box.
infusion safety

Example 1

infusion safety yellow

Example 2

infusion safety red

Example 3

infusion safety config

Example 4

Patient ID

This application helps manage patient to device associations. These associations, or connections, establish a patient context. This patient context is what all other apps operate within. Patients are connected and disconnected from devices using this app. This connection will remain when using other apps.

The table in the top center shows the current patient-device connections. To make a connection first select a patient in the bottom left table. Then select a device in the bottom right table. (Each selection will appear highlighted.) To make the connection, select the link button in between these two tables. This connection will then show in the top table. To disconnect the patient from the device, click the button in the disconnect column on the top table. Once this has been done, the device will move back to the unassigned table on the bottom right side of the page.

To add a new patient to use in the OpenICE apps, click the button “Create new MRN entry”. A window will pop up to add a new patient. This window will give the following fields:

A medical record number is a unique identifier for each patient. This app will automatically create one. The MRN may be changed if desired.
First Name
Type in a first name.
Last Name
Type in a last name.
Select male or female dropdown list.
Type in a date of birth or click the icon to select a date from the calendar

The patients entered on this app will be saved to one of two places. If the Supervisor was started with a FHIR server address entered, the data will be saved to that server using HL7 FHIR. If the address was left blank, the patients will be saved to a local database and deleted when the Supervisor is closed.

patient id

Respiratory Rate Calculator

The OpenICE platform is highly flexible in it's distribution of data. The output of calculations completed remotely can be re-entered into the network to be consumed by other application or devices. Examples of data outputs that could be used as an input into another system are clinical decision support or digital signal processing. This application takes the respiratory waveform from a device in the OpenICE network, computes a custom respiratory rate from the waveform with a user selected averaging time, and publishes this new calculation back to the system to be used by other applications like the infusion safety app.

Click on a device on the top left of the screen and it's output respiratory waveform will appear below it, as seen in example 1. A newly calculated respiratory rate will appear next to the waveform. The averaging time for this newly calculated respiratory rate is configurable on the right side of the screen by moving the slider between 0 and 100 seconds. If you would like to publish this value back to the system, select the checkbox next to "Create Device". The new calculation is shown in example 2.

resp rate

Example 1

resp rate device

Example 2

Simulation Control

This app controls the value of the vital signs data emitted from the medical device simulators. The Simulation Controller will change all simulators connected to the OpenICE network in the current patient context. Only one Simulation Controller can be used in the OpenICE network at one time.

To adjust a specific vital sign, slide the marker to the desired value. To the right of the slider, the number indicates the simulated vital sign. For added realism, jitter can be added to the vital signs to vary their resting values. Click the jitter checkbox to the top of the app to turn on jitter. Next to each vital sign, check the box and select a step% and max%.

Checkbox to enable jitter for the specific vital sign. Jitter will cause the vital sign data point to fluctuate.
Adjust the speed at which your vital sign will jitter with each new simulated value. Larger percentage step means more violent and sudden changes in the data. This can be changed to the following percentages: 0.1, 0.2, 0.5, 0.75, 1.0, 2.0, 5.0, 10.0, and 20.0.
Adjust the total drift you would like to allow away from your configured vital sign value. Larger percentages allow the vital sign to wander farther from the baseline. This can be changed from the following percentages: 1, 3, 5, 10, 15, 20, and 50.
Assert Control
If there are more than one Simulation Controllers present in an OpenICE network, attempt to take control of the simulators by pressing this button. This is an unfinished feature and not fully supported.
sim control

System Explorer

The OpenICE System Explorer is a tool for viewing all of the data that is currently available in the current patient context. This app is analogous to the Diagnostics Page. This page is useful for troubleshooting OpenICE - including verifying medical device data export protocols, device adapter software as well as network connectivity. The Supervisor promiscuously subscribes to all device adapters and simulators in the current patient context. If data is not displayed in the System Explorer app, it will also not be visible to other applications.

The tabs in the System Explorer app represent a DDS topic. Each tab contains a table that illustrates the structure of the topic. The rows of the table represent each instance of the topic. The rows contain the current data values found in OpenICE. You can learn more about the use of the DDS middleware from the OpenICE App Architecture description. Currently OpenICE uses the following topics:

Data from a medical device that can be represented by a single number. E.g. MDC_ECG_HEART_RATE.
Waveform Traces
Sample array data (special arrays of numeric measurements) that represents a waveform tracing of a vital sign.
Patient Alerts
Displays the clinical alarms from the attached devices. (Note: full alarm support has not been implemented for every medical device.)
Technical Alerts
Displays the technical alarms from the attached devices. (Note: full alarm support has not been implemented for every medical device.)
This topic is an artifact of the HIMSS15 demo and associated to the Auto Validation app. This topic displays which numeric data are considered 'validated' based on the decision of the Auto Validation app (if running).
Displays the infusion objectives currently associated to the current patient context. This topic is an artifact of the Infusion Safety app.
Alarm Limits
Device Adapters that report the alarm limits (thresholds) that are currently configured are displayed here.
Global Alarm Obj
This is an experimental topic that delineates alarm settings for the patient across multiple devices. This is intended to serve as an input into monitoring devices to harmonize alarm settings and limits automatically.
Local Limit Obj
This is an experimental topic, similar to 'Global Alarm Objective', that reports the configured alarm limits associated to each the global alarm objective.
system explorer

X-Ray Ventilator Sync

X-Ray Ventilator Synchronization is an exemplar use case for closed loop medical device control. Serious adverse events have occurred worldwide from operators forgetting to resume ventilation after an X-Ray is taken. The purpose of this app is to demonstrate an example safety interlock between a ventilator's pause functionality and the shutter of an x-ray. This app aims to take an fake x-ray (webcam picture) at a predetermined point in the phase of ventilation - either peak inspiration or end of expiration. This use case and app decreases the risk of human error found in hospitals today by automating a high risk process.

On the left side of the screen, the compatible sources of respiration will appear. Select the source you would like to use for synchronization. The right side of the screen will display the view field of the X-Ray (webcam). This can be used to image the synchronized respiration source to illustrate the image taken. The X-ray Ventilator app can be configured as follows:

Exposure Time
Move the slider from 0 to 1 second to simulate the required X-Ray exposure time.
Sync Strategy
Choose between manual or automatic triggering of the fake X-Ray shutter.
Phase of Ventilation
Choose which phase of respiration you would like to take the image.
Image Button
Press IMAGE button or the space bar to take an X-Ray at the next synchronization point.
Reset Button
Press RESET button or the esc key to reset the app.
xray vent sync


1. Health Level Seven International. Health Level Seven International - Homepage. (n.d.) Web. Retrieved May 4, 2015, from