
0
Answered
Custom Data Consumer
Hi,
I'm involved in the development of a trial that involves streaming data from our Philips IntilliVue monitors to a head-mounted device.
I noticed that you'd already gone to the effort of implimented Phillips' Data Export Protocol, which is a huge relief!
Would you suggest:
a) Running an OpenICE network with the adapter for the IntelliVue and then developing a OpenICE 'consumer' for our device, or,
b) Directly interfacing with your implimentation of the Phillips' Data Export Protocol.
I'd ultimately prefer option A, as it would be more flexible, although I'm currious to know if there's any documentation or Java interface available for doing so.
Cheers,
Thomas
I'm involved in the development of a trial that involves streaming data from our Philips IntilliVue monitors to a head-mounted device.
I noticed that you'd already gone to the effort of implimented Phillips' Data Export Protocol, which is a huge relief!
Would you suggest:
a) Running an OpenICE network with the adapter for the IntelliVue and then developing a OpenICE 'consumer' for our device, or,
b) Directly interfacing with your implimentation of the Phillips' Data Export Protocol.
I'd ultimately prefer option A, as it would be more flexible, although I'm currious to know if there's any documentation or Java interface available for doing so.
Cheers,
Thomas
Customer support service by UserEcho
This sounds like an exciting project! We have in fact implemented the Philips MIB protocol and tested on the MP70 and MX800. Other intellivue monitors should work but YMMV.
I would emphatically recommend option A. The easier to implement OpenICE than to re-invent the Intellivue device-adapter. Option A has a major advantage over a standalone implementation of the Intellivue protocol - the OpenICE system integrates the data from all supported devices and manufacturers on the ICE network. If your head-mounted device also wanted to include data from the patient's ventilator or anesthesia machine or use a monitor from a different manufacturer, that's possible without much additional development (presuming the device-adapter has been written already or you could write a new one yourself).
There is usually one or more Intellivue devices connected to our streaming demo. You can check it out here: https://www.openice.info/diagnostics.html. For example, select the patient "John Sullivan" in the "Partition" field to see the Philips MX800. An application written for OpenICE would be able to receive any data on the page.
Our platform is still in alpha and is moving quickly so the documentation has been unfortunately sparse lately. We do however have some resources available:
A wiki of sorts - https://sourceforge.net/p/mdpnp/wiki/Medical%20Device%20Plug-and-Play%20Interoperability%20Lab/
A description of an app's architecture: https://docs.google.com/document/d/1g1zYd3kdxk8tL3zzkTJM38ied9Mi-prGTvvsf9LkDJw
"Hello OpenICE" - https://github.com/mdpnp/hello-openice
The vast majority of OpenICE (not the web demo) is written in Java. Check out the repo here: https://sourceforge.net/projects/mdpnp/
We'd love to help you however we can on our end. Keep us posted on your progress as well!
Also, is it okay if I post your question on our community support page? I like to try and share resources for others looking for the same information.
Thanks!
Jeff Peterson
"Hello OpenICE" looks to be just what I was looking for, thanks very much!
Given that I'll be going option A and building the app to hook up to an OpenICE network.
All very exciting... I'm already having ideas for the studies we could run if we deployed a dozen or so Beaglebones into the OT suite.
And sure, feel free to post to the support page.
Cheers,
Thomas
Then I've gone and cloned the hello-openice repo, compiled that, and trying to get that to run. However, I'm getting this set of errors:
This is running on a 64-bit Fedora (RHEL) Linux host, if that makes any difference.
Cheers, Thomas
This sounds like an exciting project!
RTI's DDS implementation allows for Quality of Service settings to be stored in XML 'profiles' (this is an extension to the DDS standard which allows QoS to be set only via API calls). By default the implementation will look for the USER_QOS_PROFILES.xml file (from which these profiles can be loaded) in the program's working directory. That is where the profiles for hello-openice are stored. Ensure that you are running the example program from the root of the project directory (which contains USER_QOS_PROFILES.xml) or move the xml file to wherever you'd like to run the program.
For deployment in the 'demo-apps' runnable package we've bundled these QoS profiles in the application jar which is an option we can discuss long-term as well for your project. I hope this helps. Let us know how your work progresses; and perhaps at some point as your plan comes together we can discuss your specific needs from the platform so we can incorporate them into our plans for OpenICE.
Thanks
Jeff Plourde
Thanks, executing the program with USER_QOS_PROFILES.xml in the working directory seems to have improved things.
Now when I execute the program I get the following output:
I assume that this means that I need to tell the ICE supervisor to listed on 7410 or 7412, but I'm unsure how to do this. It's not a firewall issue as these are both running on the same host, and I also trialled disabling the firewall just in case.
Cheers,
Thomas
The warnings regarding bind errors ought to be non-fatal. In a more permanent deployment multiple participants on the same domain running on the same host can be explicitly set to bind to different ports. Alternatively what you're seeing is DDS 'discovering' that certain ports are already in use by another participant and moving on to use others harmlessly.
The subsequent unassignable data type warnings are more serious and probably are the result of the hello-openice project using our data structures as defined in version 0.4.3 to try communication with the 'demo-apps' bundle that you downloaded at version 0.5.0. Our data model is still subject to a lot of change as we experiment with different approaches. In version 0.5.0 we have marked all our types as 'MUTABLE' which should help going forward to increase compatibility between versions with changes to the data model.
I pushed changes to the hello-openice project to have it use version 0.5.0 of the data model (matching our current 'demo-apps' distribution) and I added a note about this to the README.md. If you 'git pull' the latest you ought to have more success.
While I was 'in there' I also added a second code path to the example showing the sometimes simpler case of receiving data availability signals directly from a middleware thread (instead of signaling your own thread via condition variables). In the lab we've also started experimenting with our own abstraction layers and I will try to include demonstrations of those soon.
Regards
Jeff Plourde
Thanks for updating hello-openice for me. I will look into this further, and let you know how I get on.
Thomas
Using the updated hello-openice I successfully connected to my OpenICE supervisor.
Thanks for all your assistance.
Thomas