OpenICE Community Support Forum

Welcome to the OpenICE community support forum. Use this forum for submitting bugs, asking for help, and solving problems you are having with OpenICE software. For ideas, general questions, and conversation please use the discussion forum.
K. Ebeling 1 year ago in DDS 0

I have installed an evaluation-version of VortexOpenSplice (6.6.2p1) from PrismTech. If I try execute task "osplIdlppJava" - following errors are thrown:

Generating from ice.idl
/opt/PrismTech/Vortex_v2/Device/VortexOpenSplice/6.6.2p1/HDE/x86_64.linux/bin/idlpp EVALUATION VERSION
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Type 'wstring' (defined in DeviceIdentity) unsupported near the token #pragma keylist DeviceIdentity unique_device_identifier
(line: 165, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Type 'wstring' (defined in DeviceConnectivity) unsupported near the token #pragma keylist DeviceConnectivity unique_device_identifier
(line: 218, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Type 'wstring' (defined in InfusionObjective) unsupported near the token #pragma keylist InfusionObjective unique_device_identifier
(line: 354, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Type 'wstring' (defined in InfusionStatus) unsupported near the token #pragma keylist InfusionStatus unique_device_identifier
(line: 390, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Undeclared referenced declarator alarm_limit_type near the token #pragma keylist AlarmLimit unique_device_identifier metric_id alarm_limit_type
(line: 424, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Undeclared referenced declarator alarm_limit_threshold near the token #pragma keylist GlobalAlarmLimitObjective metric_id alarm_limit_threshold
(line: 440, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Undeclared referenced declarator alarm_limit_type near the token #pragma keylist LocalAlarmLimitObjective unique_device_identifier metric_id alarm_limit_type
(line: 461, column: 0)
*** DDS error in file /home/kieb/workspace/mdpnp/data-types/x73-idl/src/main/idl/ice/ice.idl: Type 'wstring' (defined in Patient) unsupported near the token #pragma keylist Patient mrn
(line: 531, column: 0)
:data-types:x73-idl-ospl-dds:osplIdlppJava FAILED

It seams that type "wstring" is unkown in VortexOpenSplice and I can't see declarators "alarm_limit_type" and "alarm_limit_thresold" in file "x73-idl/src/main/idl/ice.idl"?

Can you help me please?

Gregory Rehm 1 year ago • updated by Luke Fletcher 1 year ago 10


I was wondering if the openice supervisor could be run headlessly (without GUI). I've been poking around at it on my own computer and I got as far as

./bin/OpenICE -app ICE_Supervisor -domain 15

To which java gives me an error.

Exception in thread "main" java.lang.IllegalStateException: Failed to create command instance org.mdpnp.apps.testapp.IceAppsContainer

at org.mdpnp.apps.testapp.Configuration.getCommand(
at org.mdpnp.apps.testapp.Main.main(

It seems java wants some kind of command before we can proceed but there doesn't seem to be any available documentation on commands to use. Was wondering

1. Even if I take this to its terminus can we run the process headlessly?

2. What are the lists of available commands to use?

vishnu 1 year ago in OpenICE 0

Hi guys,

I am Happy and excited to find OpenICE, and this forum.

I am planning to connect IntelliVue MX800 with OpenICE. So from Docs, i can understand that, no need of BBB for simple connection. Just connect RS232 port on MX800 to OpenICE (via RJ45 -> DB9 -> USB). I can see 2 RS232 port in the MX800.

Which port i should use for serial communication?

Another question is, can i direct connect MX800 to openICE using LAN cable (By connecting the LAN port in MX800 and Ethernet port in Laptop )?

Searching answer
Rado 2 years ago in OpenICE • updated by Alistair MacDonald 1 year ago 22
Hi guys,

Sorry to be such a pain, but we are working on several devices in parallel and are getting stuck on all of them right now. We've been trying to connect to a Philips MP70 for several weeks now but to no avail.

The problem is that for some reason openICE doesn't connect and keeps sending association request messages, so we keep receiving what I believe is an association response. As far as I understand, there are multiple revisions of the communication protocol but I'm not quite sure how to find out which version our monitor uses. I was looking through the old topics and saw a picture posted by Jeff where the monitor had a total of 4 ethernet ports, two output and two input. Ours only has two ports - one input and one output (of course, there is also the LAN port, which we don't want to use).

Do you guys know what the problem is or at least where to start looking for it?

Thanks and sorry again!


P.S. Just so you don't think I'm only trouble, let me say that we are making good progress with the Drager Apollo and are getting ready to start collecting data from it soon, so thanks for that! :)
OpenICE device-adapter
Paul Ourada 1 year ago 0

Hi Jeff -

I'm helping a friend of mine who is doing some research using OpenICE. They want to use a medical monitor which is not yet supported. I haven't yet dived into the code, so I was wondering about the architecture for the device adapter serial driver. Is it straight hard coded parsing the input and producing output, or is there a framework for doing things like

  • identifying common message types for the same device type
  • supplying the message header/trailer framework, and methods to fill in the particulars?
  • Also perhaps identifying common workflows (session, login, security, etc) and creating plugins which implement the workflows, or customize them?

Best Regards,


Tim 3 years ago in DDS • updated by Paul Ourada 1 year ago 13
MDPnP et al,
I wanted to find out where the focus in regards to the DDS would currently and in the future?
  • Will RTI-DDS and Prismtech-DDS be implemented together? 
  • or one or the other DDS technologies used provided by the above stated vendors?
  • Are RTI-DDS, Primstech-DDS and OpenDDS interoperable with each other?
  • Does OpenDDS not satisfy all the requirements compared to RTI and Primstech DDS technologies?
  • According to OMG specification the DDS is embedded on top of UDP or TCP, is that correct?
  • How is DDS different from RTP/RTCP/RTSP and IEC 61850-GOOSE, if we are trying to achieve and implement real-time communication layer?
  • Have you guys had any thoughts of looking into Transport Information Collection Protocol (TICP) on top of IP?
Achilleas 1 year ago in OpenICE • updated by Paul Ourada 1 year ago 3


We are currently trying to export data from a local ICU, some of the medical devices that are available to us are supported by openICE. We are experiencing some problems regarding the Puritan Bennett 840 ventilator. When we directly communicate with the ventilator using the SNDF command we get the expected number of fields responce (171). But when the openICE was used only a fraction of the fields were captured (39). We tested it on 3 different ventilators, all of which yielded the same result.
The ventillators were not connected to anyone at that time, is it possible that that was the problem or we should look for something else? The operating system that runs the application is Windows 10.

One note regarding the PB840.
The PB840 has several versions, some of them have a single serial port while others have three ports. The latest openICE version requires two ports for the PB840, connecting it to a machine with only one port leads to an error message that there is no device found on the second port and thus the connection is terminated. We temporary bypassed this issue by building two different versions for the demo apps, the first using the source code as it is, and the second one with a minor change on the file:
return new DeviceType(ice.ConnectionType.Serial, "Puritan Bennett", "840", "PB840", 2);
we changed the number of devices from 2 to 1, so that only one port will be requested. Doing so we limit ourselves in capturing only the PB parameters since the uses the first port created for the PB parameters and the second for the waveforms ( if i understand it correctly ), but since we are interested only in the parameters, at least for the time being, we are fine with that.

One bug i noticed, though irrelevant to the openICE application.
On the the date used to create a testing file was hard coded using the American eastern time zone ( -05:00 ) , that resulted in an error when trying to built the whole project ( i thought it was nessessary at the time) in a different timezone ( +02:00 ).I made the following alteration, which is nothing fancy since my Java knowledge is pretty basic.On the file, i added the following library:
import java.time.ZonedDateTime;
and changed the testCVSLine() function to the following:
public void testCVSLine() throws Exception {
SimpleDateFormat dateFormat = DataCollector.dateFormats.get();
ZonedDateTime timeZone =;
String timeZoneString=timeZone.getOffset().toString();
timeZoneString=timeZoneString.replace(":", "");

Date d0 = dateFormat.parse("20150203.235809.985"+timeZoneString);
Value v = DataCollector.toValue("DEVICE0", "METRIC0", 0, d0.getTime(), 13.31);

String line = CSVPersister.toCSVLine(v);
Assert.assertEquals("Invalid csv line", "DEVICE0,METRIC0,0,20150203235809"+timeZoneString+",13.31", line);
The same issue also appears in the file.



OpenICE demo-apps
Phai Reddy 1 year ago in OpenICE 0

Hi I also have a similar kind of problem, I have installed latest openice software and running on two windows laptops. When try network simulation from one laptop using device adapter on the other laptop supervisor we can see the simulated devices (Both the laptops are connected to Wi-Fi network).

But when i use one laptop connected to wi-fi and other laptop connected through Ethernet ( Virtual Machine) the device simulation is not happening.

Can any one please suggest me what steps i have to take to make it working.



zhangtan 2 years ago in OpenICE • updated by Phai Reddy 1 year ago 7
I am new to this community.I was doing some experiment in openice.Recently i found an interesting problem.When i ran the newest version openice on two computers in the same network,especially,i ran "ICE_Supervisor" on computer A,and ran a simulated device through "ICE_Device_Interface" on computer B.What i found is that the simulated device did not show in the supervisor in computer A .But i remember it's not the case like this in the older version openice.Does not a supervisor can recognize a device in the same network not only in the local computer? So i got confused and need help. Thank you very much.
Phai Reddy 1 year ago in OpenICE 0


I am new to this community and I want to set up a device simulator on my windows laptop, there is already one virtual machine kept in the network and OpenICE supervisor is also running on that computer.

Can any one please help me how can i simulate the medical device traffic and get it stored on openICE supervisor ?

Any specific hardware is required for setting up a device simulator on Windows laptop ?

Appreciate your help.

OpenICE device-adapter
Jd Dietrich 2 years ago in OpenICE • updated by sanjeevcdac2005 1 year ago 2
hello, I'm looking into this community as a noob to the EMR, EHR, MD PnP, Payer, Provider etc. There is a lot to wrap my head around.

My questions are more related to how you are interfacing with EMRs, and what format you're pushing that data? From a more technical perspective, are you exposing the data through an API? Or are you publishing that data directly to a system? Would love to get a quick overview, from a quasi-technical perspective.


Jeff Peterson 2 years ago
Hi JD,

Thanks for your question! The short answer is that EMR communication/integration is done through HL7 ( Our preferred HL7 version is the development version of HL7 FHIR ( If you're interested in using HL7 FHIR and java (what OpenICE uses), a fantastic learning resource is the HAPI FHIR project (

We have only begun to experiment with EMR integrations, but our current state is best illustrated by the OpenICE Supervisor app 'HL7 Exporter'. You can use the app by installing OpenICE: And you can check out the code here: The app will take data from the active patient and export it via HL7 at a user defined time interval.

Our HIMSS15 demo app illustrated some mock "auto-validation" of medical device data that was then exported using the HL7 export app to a fake EMR. That system is representative of some of our future development ideas that will be on our roadmap eventually. For now, there is still a lot of work to do in this area...

Feel free to continue the conversation. Thanks,
Rado 2 years ago in OpenICE • updated 1 year ago 15
Hi again,

OK, one more problem with Ubuntu 14.04. We are trying to run openICE on a beagle board that will run on its own with no internet connection. However, it turns out there is an error when openICE is run on Ubuntu without internet connection (both on the laptop and on the beagle).

It is interesting that I get slightly different errors if I run this from eclipse and from the command line. On eclipse I get:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rtConfig' defined in class path resource [DriverContext.xml]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.mdpnp.apps.testapp.RtConfig]: Factory method 'setupDDS' threw exception; nested exception is error creating entity

From the command line, the error is:

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 6 in XML document from class path resource [DriverContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 95; cvc-elt.1: Cannot find the declaration of element 'beans'.

This doesn't happen under Windows or Mac. As far as I know, I performed the exact same installation steps. Also, the problem goes away if there is connection to the internet, in which case the spring-beans.4.1.xsd schema can be retrieved.

Do you guys know what the problem is? Any help would be greatly appreciated!

OpenICE demo-apps
toodles45 2 years ago in DDS • updated by Jeff Peterson 2 years ago 1

At the beginning of integrating a middleware which I would prefer not to write a driver myself per one of the focuses that OpenICE is trying to get rid of. Does anyone have any suggestions or experience integrating/facing with this software? I have not seen the lab end integrated into OpenICE which I hope can come soon... If I can help integrated that aspect it is probably bigger than the medical device conundrum.

Under review
Bradford Needham 2 years ago in OpenICE • updated by Jeff Peterson 2 years ago 2

We're using an IVY 450C Multiparameter Monitor, with a Device Adapter running on an Intel Edison. Any ideas why the Device Time reported for, for example, heart rate is 0 (the Epoch)?

The Monitor is connected to a Patient Simulator, and is reporting heart rate and blood pressure that look good, except that Device Time for all its values is reported as 0.

On a likely-related note, the OpenICE Supervisor shows what looks like a time-sync warning for the Multiparameter Monitor (and our other devices). Any idea what's going on here? What is required for a Device Adapter to properly time-sync?


Searching answer
Bradford Needham 2 years ago in OpenICE • updated by Jeff Peterson 2 years ago 2


We've run into an interesting symptom: normally the OpenICE Supervisor closes normally (after a few seconds). When we're on a slightly different network configuration, the Supervisor hangs - seemingly forever - after we click the close button.

The difference in the network configuration is that the "hang-on-close" configuration is that the laptop is on a subnet hosted by another computer, which is then connected to the main network.

Any ideas why network configuration would cause the OpenICE Supervisor to hang on close?