[ome-devel] OMERO.insight to external application communication...

josh.moore at gmx.de josh.moore at gmx.de
Wed Aug 13 16:08:57 BST 2008


Jerome Avondo writes:
 > Hi again,

Hi.

 > I have developed for our lab a real time volume visualization
 > program, see this url:
 > 
 > http://fizz.cmp.uea.ac.uk/wiki/DArT_Toolshed/index.php/%22Visualising_Plant_Development_and_Gene_Expression_in_3D_using_Optical_Projection_Tomography%22
 > 
 > (sry shameless self plug :) )

As long as you're not trying to sell it to us, you're probably
alright. :) Looks nice.

 > Anyways, I would really like to use my visualisation application,
 > client side, with OMERO.insight as a data browser to select an
 > Image to then send to my viewer for visualization... If I remember
 > right at the OMERO user meeting Jean-Marie you made reference to
 > some code you wanted to send to me to show me some ways this could
 > be done.

Jean-Marie is out for another day or so, but I'm sure he'll get back
to you.

 > Or if you have any other suggestions on how this could be
 > done I would be grateful.
 >
 > Im really looking for some good pointers on where to get started,
 > and what mechanisms are currently in place to do this...
 > 
 > Just FYI, the application is written in C++/OpenGL/Qt4 and I
 > currently have some crude TCP Socket system implemented, which I
 > was using to send data from my own OME data browser to my viewer,
 > but you might have some better ideas on how to do this with the
 > OMERO.insight app.

This is something that we've discussed before, but at the moment there
are only pieces to do what you want. Some form of layer that would
allow OMERO-aware applications to communicate with one another.
Something like: "open up image 4". Doing this in the general case can
get a little complicated, because what if you have 3 clients open --
which one should open up the image?

In the short-term, what you probably want to do is write a thin agent
or view inside of insight that knows how to communciate with
VolViewLite explicitly. And though this can be done via sockets, I'd
suggest using Ice (http://zeroc.com) if your application is GPL (which
it probably is since it's using Qt).

Ice is the remoting/communication framework which OMERO uses to talk
to Python and C++, and will eventually become the underlying
communciation framework for Insight as well.

If you are a bit more adventurous there is a alpha-stage service
available in trunk, which you might be able to use for your
purposes. It would be a bit higher level than programming Ice
directly, but you wouldn't be as independent (of OMERO trunk).

Now, all this naturally depends on exactly what form of integration
you are looking for, which you might want to outline. But I'm positive
that it's possible. That's what OMERO's there for!

 > Anyways looking forward to exploring this, and hopefully I can give
 > something back to the OMERO community :)....

Sounds great. Thanks, Jerome.

Best wishes,
~Josh.


More information about the ome-devel mailing list