Bug when Building Medsphere CIS

28 views
Skip to first unread message

Sam Habiel

unread,
Aug 10, 2008, 3:31:36 AM8/10/08
to hardhats
Finally done with moving and got my internet connection back--but the
lawn work will never end...

Following instructions to download the source of CIS and './configure
&& make', here is what I have:

Validator.cs(142,25): error CS0612: `Gtk.Tooltips' is obsolete
Compilation failed: 1 error(s), 0 warnings
make[2]: *** [Medsphere.OpenVista.Shared.UI.dll] Error 1
make[2]: Leaving directory
`/home/sakura/workspace/mumps/openvistacis-0.9.9/src/Medsphere.OpenVista.Shared.UI'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/sakura/workspace/mumps/openvistacis-0.9.9/src'
make: *** [all-recursive] Error 1

This is a GTK error. I looked online and it seems that newer versions
of GTK made "Gtl.Tooltips" obsolete. But I can't quite figure how I am
using a newer version of GTK, because it seems I have an older one.
http://www.medsphere.org/openvista_cis.html says that I need Gtk# 2.8
or greater. But my system tells me I have 2.12. I can't find a newer
version anywhere, but it seems that I am using a newer version. Where
can I download Gtk# for linux?

How come http://sourceforge.net/project/showfiles.php?group_id=40240
tells me the last stable GTK# is 1.something?

How is that for confusing?

Sam

Joseph Dal Molin

unread,
Aug 10, 2008, 1:28:51 PM8/10/08
to Hard...@googlegroups.com
Which Linux distro are you using Sam?

> .
>

anthony

unread,
Aug 10, 2008, 5:54:19 PM8/10/08
to Hardhats
hey sam,

sorry about this one. here's what's happening. we have our build set
up to handle warnings as errors (ie, if there's a warning, you can't
build). this warning is occurring because some of the tooltips api
we're using has been marked as deprecated (ie, it will be removed from
future versions of gtk.

the cis build lets you set an environment variable called
"COMPILER_FLAGS". to ignore this warning, set the value of this
variable to "-nowarn:612".

to do this, you can either run this command:

COMPILER_FLAGS="-nowarn:612" make

that will set the variable just for that one instance of make. to set
the variable for your entire shell session, you can use your shell's
export command.

export COMPILER_FLAGS="-nowarn:612"

the variable will be set for all subsequent commands you run, until
you close your shell. you may wish to set this variable every time.
you can do this by modifying your shell's rc file. here's a little
guide to environment variables for bash, the default shell on most
linux distros:

http://www.mcsr.olemiss.edu/unixhelp/environment/env3d.html

good luck, i hope you'll post again to tell us that everything worked.

--anthony

On Aug 10, 12:31 am, "Sam Habiel" <sam.hab...@gmail.com> wrote:
> Finally done with moving and got my internet connection back--but the
> lawn work will never end...
>
> Following instructions to download the source of CIS and './configure
> && make', here is what I have:
>
> Validator.cs(142,25): error CS0612: `Gtk.Tooltips' is obsolete
> Compilation failed: 1 error(s), 0 warnings
> make[2]: *** [Medsphere.OpenVista.Shared.UI.dll] Error 1
> make[2]: Leaving directory
> `/home/sakura/workspace/mumps/openvistacis-0.9.9/src/Medsphere.OpenVista.Shared.UI'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/sakura/workspace/mumps/openvistacis-0.9.9/src'
> make: *** [all-recursive] Error 1
>
> This is a GTK error. I looked online and it seems that newer versions
> of GTK made "Gtl.Tooltips" obsolete. But I can't quite figure how I am
> using a newer version of GTK, because it seems I have an older one.http://www.medsphere.org/openvista_cis.htmlsays that I need Gtk# 2.8
> or greater. But my system tells me I have 2.12. I can't find a newer
> version anywhere, but it seems that I am using a newer version. Where
> can I download Gtk# for linux?
>
> How comehttp://sourceforge.net/project/showfiles.php?group_id=40240

Sam Habiel

unread,
Aug 10, 2008, 7:56:33 PM8/10/08
to Hard...@googlegroups.com
Thanks Anthony,

That solved that problem; now I am getting error CS0006: cannot find
metadata file `System.Windows.Forms.dll', which is probably because I
don't have those components of Mono loaded. So I will load these and
try again.

It's funny for someone trying to explain environmental variables for
me; but I should be the last one to laugh... I am always amazed by
what I have to explain to people... stuff like to select patient,
click on "Patient..."... as if they can't make any connections what so
ever!

Sam

Sam Habiel

unread,
Aug 10, 2008, 8:08:30 PM8/10/08
to Hard...@googlegroups.com
Running Ubuntu by the way (my love is Gentoo, but it's now a love and
hate relationship)

Solved System Winforms problem. I have Winforms 2.0 installed; not 1.0
(don't ask why; I don't know)
Solved monodis problem (needed to install cli devel utilities)
Now gmcs can't be found...

Sam

Sam Habiel

unread,
Aug 10, 2008, 8:44:05 PM8/10/08
to Hard...@googlegroups.com
gmcs needed to be installed too... why not?

Make finally successful. Had to figure out what to do next...

From http://www.medsphere.org/openvista_cis.html#download

sakura@pegasus:~/workspace/mumps/openvistacis-0.9.9/build/output/bridge$
mono Bridge.exe --vista-host pegasus.smh101.com --vista-port 9201
OpenVista(R) Bridge version 0.9.9-tarball-1 starting
Found addins:
- Medsphere.OpenVista.Remoting
- Medsphere.OpenVista.Vitals.Remoting, 0.9.9-tarball-1
- Medsphere.OpenVista.CIS.Remoting, 0.9.9-tarball-1
- Medsphere.OpenVista.Vista.Remoting
Ready for connections.

and

mono OpenVistaCIS.exe

It works! :) But now, there seems to be a piece missing from the
puzzle. How does the bridge know how to connect to GT.M? I never
specifed anywhere that a listener be active; from fileman RPC Broker
file, it seems that port 9201 is open and waiting, but telnet cannot
confirm that. I remember having to set-up inetd for WorldVista; but I
can't find the instructions on how to do that for this.

Sam

anthony

unread,
Aug 10, 2008, 11:24:25 PM8/10/08
to Hardhats
sam,

great to hear everything worked. thanks for your posts, we can point
people to this thread in the future. sorry about the dependencies
thing. it would be great if we made a medsphere-essential meta package
that you can install and pull all the deps you need to build and run
cis.

so you can run the bridge and client, and you can connect to the vista
intsance you have running on pegasus.smh101.com? or no? i'm not the
most knowledgable person when it comes to the rpc broker configuration
but i can talk to someone who is if you still have questions/problems.

--anthony

ps - sorry about the env var 101.

On Aug 10, 5:44 pm, "Sam Habiel" <sam.hab...@gmail.com> wrote:
> gmcs needed to be installed too... why not?
>
> Make finally successful. Had to figure out what to do next...
>
> Fromhttp://www.medsphere.org/openvista_cis.html#download
>
> sakura@pegasus:~/workspace/mumps/openvistacis-0.9.9/build/output/bridge$
> mono Bridge.exe --vista-host pegasus.smh101.com --vista-port 9201
> OpenVista(R) Bridge version 0.9.9-tarball-1 starting
> Found addins:
>   - Medsphere.OpenVista.Remoting
>   - Medsphere.OpenVista.Vitals.Remoting, 0.9.9-tarball-1
>   - Medsphere.OpenVista.CIS.Remoting, 0.9.9-tarball-1
>   - Medsphere.OpenVista.Vista.Remoting
> Ready for connections.
>
> and
>
> mono OpenVistaCIS.exe
>
> It works! :) But now, there seems to be a piece missing from the
> puzzle. How does the bridge know how to connect to GT.M? I never
> specifed anywhere that a listener be active; from fileman RPC Broker
> file, it seems that port 9201 is open and waiting, but telnet cannot
> confirm that. I remember having to set-up inetd for WorldVista; but I
> can't find the instructions on how to do that for this.
>
> Sam
>
> On Sun, Aug 10, 2008 at 5:08 PM, Sam Habiel <sam.hab...@gmail.com> wrote:
> > Running Ubuntu by the way (my love is Gentoo, but it's now a love and
> > hate relationship)
>
> > Solved System Winforms problem. I have Winforms 2.0 installed; not 1.0
> > (don't ask why; I don't know)
> > Solved monodis problem (needed to install cli devel utilities)
> > Now gmcs can't be found...
>
> > Sam
>
> > On Sun, Aug 10, 2008 at 4:56 PM, Sam Habiel <sam.hab...@gmail.com> wrote:
> >> Thanks Anthony,
>
> >> That solved that problem; now I am getting error CS0006: cannot find
> >> metadata file `System.Windows.Forms.dll', which is probably because I
> >> don't have those components of Mono loaded. So I will load these and
> >> try again.
>
> >> It's funny for someone trying to explain environmental variables for
> >> me; but I should be the last one to laugh... I am always amazed by
> >> what I have to explain to people... stuff like to select patient,
> >> click on "Patient..."... as if they can't make any connections what so
> >> ever!
>
> >> Sam
>
> >>>> using a newer version of GTK, because it seems I have an older one.http://www.medsphere.org/openvista_cis.htmlsaysthat I need Gtk# 2.8

anthony

unread,
Aug 10, 2008, 11:25:56 PM8/10/08
to Hardhats
oh, forgot to add this:

we have runscripts that you can invoke in place of actually invoking
mono yourself. they'll let you specify some library paths and run our
apps with --debug.

--anthony

On Aug 10, 5:44 pm, "Sam Habiel" <sam.hab...@gmail.com> wrote:
> gmcs needed to be installed too... why not?
>
> Make finally successful. Had to figure out what to do next...
>
> Fromhttp://www.medsphere.org/openvista_cis.html#download
>
> sakura@pegasus:~/workspace/mumps/openvistacis-0.9.9/build/output/bridge$
> mono Bridge.exe --vista-host pegasus.smh101.com --vista-port 9201
> OpenVista(R) Bridge version 0.9.9-tarball-1 starting
> Found addins:
>   - Medsphere.OpenVista.Remoting
>   - Medsphere.OpenVista.Vitals.Remoting, 0.9.9-tarball-1
>   - Medsphere.OpenVista.CIS.Remoting, 0.9.9-tarball-1
>   - Medsphere.OpenVista.Vista.Remoting
> Ready for connections.
>
> and
>
> mono OpenVistaCIS.exe
>
> It works! :) But now, there seems to be a piece missing from the
> puzzle. How does the bridge know how to connect to GT.M? I never
> specifed anywhere that a listener be active; from fileman RPC Broker
> file, it seems that port 9201 is open and waiting, but telnet cannot
> confirm that. I remember having to set-up inetd for WorldVista; but I
> can't find the instructions on how to do that for this.
>
> Sam
>
> On Sun, Aug 10, 2008 at 5:08 PM, Sam Habiel <sam.hab...@gmail.com> wrote:
> > Running Ubuntu by the way (my love is Gentoo, but it's now a love and
> > hate relationship)
>
> > Solved System Winforms problem. I have Winforms 2.0 installed; not 1.0
> > (don't ask why; I don't know)
> > Solved monodis problem (needed to install cli devel utilities)
> > Now gmcs can't be found...
>
> > Sam
>
> > On Sun, Aug 10, 2008 at 4:56 PM, Sam Habiel <sam.hab...@gmail.com> wrote:
> >> Thanks Anthony,
>
> >> That solved that problem; now I am getting error CS0006: cannot find
> >> metadata file `System.Windows.Forms.dll', which is probably because I
> >> don't have those components of Mono loaded. So I will load these and
> >> try again.
>
> >> It's funny for someone trying to explain environmental variables for
> >> me; but I should be the last one to laugh... I am always amazed by
> >> what I have to explain to people... stuff like to select patient,
> >> click on "Patient..."... as if they can't make any connections what so
> >> ever!
>
> >> Sam
>
> >>>> using a newer version of GTK, because it seems I have an older one.http://www.medsphere.org/openvista_cis.htmlsaysthat I need Gtk# 2.8

Sam Habiel

unread,
Aug 10, 2008, 11:51:50 PM8/10/08
to Hard...@googlegroups.com
Anthony,

Thanks for replying...

I can run the bridge and CIS (which brings me to the log-in screen),
but I don't know how to connect this to Vista. My question is: where
do I point the bridge to so that it can access Vista? And how do I set
the listner on the Vista-side up?

Sam

JohnLeo Zimmer

unread,
Aug 11, 2008, 2:51:39 AM8/11/08
to Hard...@googlegroups.com
I would suggest using Medsphere's appliance to set this up.
It runs Xubuntu with Mono and the CIS source code all in place.
The development components to Mono need to be added.
But (even) I was able to do that with very little difficulty.

jlz

Ben Mehling

unread,
Aug 11, 2008, 11:27:02 AM8/11/08
to Hard...@googlegroups.com


On Sun, Aug 10, 2008 at 8:51 PM, Sam Habiel <sam.h...@gmail.com> wrote:

Anthony,

Thanks for replying...

I can run the bridge and CIS (which brings me to the log-in screen),
but I don't know how to connect this to Vista. My question is: where
do I point the bridge to so that it can access Vista? And how do I set
the listner on the Vista-side up?


Hi Sam-  It's not clear to me -- have you already setup a local OpenVista Server instance?  If not and you just want to get up and running quickly, you could use the OpenVista Demo Server -- look here: http://medsphere.org/openvista_public_demo.html  As JLZ mentions, the Appliance is another option that would work well.

- Ben

Sam Habiel

unread,
Aug 11, 2008, 1:57:18 PM8/11/08
to Hard...@googlegroups.com
Hmm... Good point... did I really set-up the server...??

I am using GT.M. I downloaded the ZWR global and imported it;
downloaded the routines and imported then compiled them. I created the
global pointer (.glb) file and misc other set-up. I can now go to the
programmer prompt in GT.M and log into the Medsphere Vista. My
question is: what do I need to do after this to enable it to accept
outside connections? In WorldVista, you have to set-up a xinet
listener that calls a bash script that executes an XWB routine upon
connection to the port the listener is set-up on.

Sam

Sam Habiel

unread,
Aug 16, 2008, 12:35:17 AM8/16/08
to Hard...@googlegroups.com
Success!!! And it tastes very sweet! Ben, did you not reply to see if
I can figure it out by myself?? :) I am amazed by how far my educated
guesses took me.

Your instructions on your website don't mention that you need to
set-up xinetd on linux to execute GTMLNX^XWBTCPM on the correct port.
What really confused me was the role of the bridge. The fact that it
listens on a TCP port independently of the TCP port that Vista listens
to.

Well, here are the instructions for posterity, just the TCP set-up;
all of the scripts were originally authored by Nancy et. al.; they are
not mine:

1. Start the bridge to point to the Vista Server (change your values
if they are different):
mono Bridge.exe --vista-host 127.0.0.1 --vista-port 9201
2. Check if the port the bridge runs on it truly running (it's 7979)
- netstat -a | grep 7979
3. Configure port 9201 to redirect traffic to a script that executes
GTMLNX^XWBTCPM
- First, set-up port 9201 in xinetd
- - Create a file of any name in /etc/xinetd.d/ to contain the following

service OVEHR-gui
{
port = 9201
socket_type = stream
protocol = tcp
user = {appropriate username with permission to run GT.M}
server = /opt/cis/OVEHR-gui {i.e. script location}
server_args = /bin/sh
type = UNLISTED
wait = no
disable = no
}

- Second, Create a script to execute GTMLNX^XWBTCPM, here /opt/cis/OVEHR-gui
#!/bin/sh
# OVEHR-gui: Run the RPCBroker as a Linux Service
#
# CD to our directory
cd /opt/cis
date >> /opt/cis/rpc.log

# Get GT.M profile
export vista_home="/opt/cis"
export gtm_dist="/opt/gtm"
export gtmgbldir="$vista_home/g/\$gtmgbldir.gld"
export gtmroutines="$vista_home/o($vista_home/p)
$vista_home/o($vista_home/r) $gtm_dist"

# Run
$gtm_dist/mumps -run GTMLNX^XWBTCPM 2>>/opt/wv/rpc.log

4. Restart xinetd service.
$ sudo /init.d/xinetd restart

5. Test that there are listeners on 7979 and 9201
netstat -a | grep 7979
netstat -a | grep 9201

6. Test that 9201 is working:
telnet localhost 9201
<should have silent acceptance of connection>

7. Test that 7979 redirects traffic to 9201 by expecting the same behavior:
telnet localhost 7979
<should have silent acceptance of connection>

8. Start OpenVistaCIS (mono OpenVistaCIS.exe) and put in a bogus
server and port number and press connect:
You should get this: Unable to perform version check with the Bridge.
Please check the server and port and try again.

9. Try the real port this time (7979)
If it tells you invalid access/verify code, it means you are connected!!!!
If it tells you it cannot find the Vista server instance, it means
that the bridge is not redirecting traffic appropriately to the other
port number.

Of course, to sign-on, you need to rig one of the users in the
database with your own access and verify through fileman.
---------

I have many unanswered questions that have been staring at me for a while now.
1. It seems to be the case that it does not matter what is the port
number in the RPC Broker Site Parameters. Is that really true? But you
actually can start a listener on a specific port in GT.M. Does that
not matter?
2. The bridge sends its traffic to another port? Why add that level of
complexity? Why shouldn't CIS communicate directly to Vista?

Sam

Medsphere_CIS.png

Ben Mehling

unread,
Aug 16, 2008, 11:36:04 AM8/16/08
to Hard...@googlegroups.com
On Fri, Aug 15, 2008 at 9:35 PM, Sam Habiel <sam.h...@gmail.com> wrote:
Success!!! And it tastes very sweet! Ben, did you not reply to see if
I can figure it out by myself?? :) I am amazed by how far my educated
guesses took me.

Nice work Sam.  No, this wasn't an "eat your veggies" moment -- I'm afraid I just got busy.  :-)  In the end, you nailed it!
 

Of course, to sign-on, you need to rig one of the users in the
database with your own access and verify through fileman.

The README and notes on the website should provide you with a base list of users to login with...
 

I have many unanswered questions that have been staring at me for a while now.
1. It seems to be the case that it does not matter what is the port
number in the RPC Broker Site Parameters. Is that really true? But you
actually can start a listener on a specific port in GT.M. Does that
not matter?

I believe that's true -- remember, under GT.M the listener is being started via the operating system and not directly from OpenVista.
 
2. The bridge sends its traffic to another port? Why add that level of
complexity? Why shouldn't CIS communicate directly to Vista?

Fair enough -- we haven't talked very much about the bridge.  The CIS architecture (including the bridge) was originally conceived to allow greater flexibility for client connections.  At this point the bridge is really used as an intermediary between the C# clients and OpenVista, but it was designed to be able to transition services to alternate or new technologies.  How about an example: it has a "plug-able" back-end such that additional services (say, LDAP or a SOAP service) could be contacted, but the client would not require additional configuration or connection points. 

Within the next few weeks we will be publishing a number of new articles that go into detail about the architecture and technology stack.  I will point them out when they are available as I think they might help illustrate some of the other reasons the architecture includes the bridge.

Thanks, Ben

Reply all
Reply to author
Forward
0 new messages