Re: [mdws] MDWS on Mono

Sam Habiel's picture
Chris, Can you tell yet how much work it would be to get this running on GT.M? Sam On Thu, Aug 16, 2012 at 6:41 AM, Sam Habiel wrote: > Excellent work! > > On Thu, Aug 16, 2012 at 4:37 AM, Christopher.Edwards > wrote: >> Interested on running MDWS on an open source stack? >> >> I spent some time to port the current MDWS release to Mono (an Open Source >> .Net implementation) and it currently compiles on OS X (should also compile >> on other mono support platforms - soon to be tested on linux) and can browse >> through the web services provided and invoke them. Currently I haven't >> hooked it up to a VistA instance to do any real testing (only testing done >> is can it compile? Yes.). I am currently looking at getting the MDWS >> working on the OSEHRA VM. >> >> Since nothing speaks louder than code it is available here: >> https://github.com/ChristopherEdwards/MDWS/tree/MonoSupport or the URL to >> clone from: https://github.com/ChristopherEdwards/MDWS.git >> >> There is also a wiki page that the community can contribute to: >> http://wiki.osehra.org/display/MDWS/. All it requires is a login to be able >> to edit the pages. I'll be documenting my progress on getting this hooked >> up there. >> >> This will also be discuess on today's code convergence call: >> http://www.osehra.org/event/code-convergence-call-thursday-august-16th-2012 >> >> Promote content >> Group sticky: >> >> Not Sticky >> >> Featured content: >> >> Not Featured >> >> -- >> Full post: http://www.osehra.org/discussion/mdws-mono >> Manage my subscriptions: http://www.osehra.org/og_mailinglist/subscriptions >> Stop emails for this post: >> http://www.osehra.org/og_mailinglist/unsubscribe/918
like0

Comments

Re: [mdws] MDWS on Mono

Van Curtis's picture

If you have CPRS and CAPRI running against GT.M then you should be able
to get MDWS to run against it. The biggest thing is having the RPC
Listener, and those calls available to it.

@Chris -- cool to hear you got MDWS running on Mono. Something I've
wondered about for a long time. We haven't taken advantage of any of the
new features in C# and .NET for MDWS for a while.

One thing we've been considering, however, is going to WCF because of
the ability to provide interfaces to a variety of protocols easily. What
are folks' thoughts on that?

take care,
van.

-----Original Message-----
From: Apache [mailto:apache@groups.osehra.org] On Behalf Of Sam Habiel
Sent: Thursday, August 16, 2012 11:30 AM
To: mdws@groups.osehra.org
Subject: [mdws] Re: [mdws] MDWS on Mono

Chris,

Can you tell yet how much work it would be to get this running on GT.M?

Sam

On Thu, Aug 16, 2012 at 6:41 AM, Sam Habiel <sam.habiel@gmail.com>
wrote:
> Excellent work!
>
> On Thu, Aug 16, 2012 at 4:37 AM, Christopher.Edwards
> <Christopher.Edwards@krminc.com> wrote:
>> Interested on running MDWS on an open source stack?
>>
>> I spent some time to port the current MDWS release to Mono (an Open
>> Source .Net implementation) and it currently compiles on OS X (should

>> also compile on other mono support platforms - soon to be tested on
>> linux) and can browse through the web services provided and invoke
>> them. Currently I haven't hooked it up to a VistA instance to do any

>> real testing (only testing done is can it compile? Yes.). I am
>> currently looking at getting the MDWS working on the OSEHRA VM.
>>
>> Since nothing speaks louder than code it is available here:
>> https://github.com/ChristopherEdwards/MDWS/tree/MonoSupport or the
>> URL to clone from: https://github.com/ChristopherEdwards/MDWS.git
>>
>> There is also a wiki page that the community can contribute to:
>> http://wiki.osehra.org/display/MDWS/. All it requires is a login to
>> be able to edit the pages. I'll be documenting my progress on
>> getting this hooked up there.
>>
>> This will also be discuess on today's code convergence call:
>> http://www.osehra.org/event/code-convergence-call-thursday-august-16t
>> h-2012
>>
>> Promote content
>> Group sticky:
>>
>> Not Sticky
>>
>> Featured content:
>>
>> Not Featured
>>
>> --
>> Full post: http://www.osehra.org/discussion/mdws-mono
>> Manage my subscriptions:
>> http://www.osehra.org/og_mailinglist/subscriptions
>> Stop emails for this post:
>> http://www.osehra.org/og_mailinglist/unsubscribe/918

--
Full post: http://www.osehra.org/discussion/re-mdws-mdws-mono-0
Manage my subscriptions:
http://www.osehra.org/og_mailinglist/subscriptions
Stop emails for this post:
http://www.osehra.org/og_mailinglist/unsubscribe/921

like0

should be ok on GT.m & WCF

Christopher Edwards's picture

Sam:

agreeing with Van's comments i believe this should work with GT.m.  all it uses is the VA RPC broker from what I know.  I am doing my testing on GT.m (OSEHRA VM) and documenting my progress on the wiki linked in the original post.

Van:

Here is the project page fro WCF:  http://www.mono-project.com/WCF_Development.  For porting purposes it was nice that the project didn't use many of the newer features of .Net as it made it easier to port :).  I haven't done much with WCF in mono and there wasn't much implemented when I tried to use it years ago, however it looks like they have made progress with WCF since then.  It would be nice to maintain compatibility with mono if WCF is in the game.

Christopher

 

like0

Re: [mdws] MDWS on Mono

DAVID Whitten's picture

This is really cool. Could you clarify what WCF is?

If it is a line protocol that is different than the rpc broker
currently uses, be sure
to use a different namespace for the VistA routines so people can run both at
the same time.

Dave

On Thu, Aug 16, 2012 at 12:10 PM, Curtis, Van <Van.Curtis@va.gov> wrote:
> If you have CPRS and CAPRI running against GT.M then you should be able
> to get MDWS to run against it. The biggest thing is having the RPC
> Listener, and those calls available to it.
>
> @Chris -- cool to hear you got MDWS running on Mono. Something I've
> wondered about for a long time. We haven't taken advantage of any of the
> new features in C# and .NET for MDWS for a while.
>
> One thing we've been considering, however, is going to WCF because of
> the ability to provide interfaces to a variety of protocols easily. What
> are folks' thoughts on that?
>
> take care,
> van.
>
> -----Original Message-----
> From: Apache [mailto:apache@groups.osehra.org] On Behalf Of Sam Habiel
> Sent: Thursday, August 16, 2012 11:30 AM
> To: mdws@groups.osehra.org
> Subject: [mdws] Re: [mdws] MDWS on Mono
>
> Chris,
>
> Can you tell yet how much work it would be to get this running on GT.M?
>
> Sam
>
> On Thu, Aug 16, 2012 at 6:41 AM, Sam Habiel <sam.habiel@gmail.com>
> wrote:
>> Excellent work!
>>
>> On Thu, Aug 16, 2012 at 4:37 AM, Christopher.Edwards
>> <Christopher.Edwards@krminc.com> wrote:
>>> Interested on running MDWS on an open source stack?
>>>
>>> I spent some time to port the current MDWS release to Mono (an Open
>>> Source .Net implementation) and it currently compiles on OS X (should
>
>>> also compile on other mono support platforms - soon to be tested on
>>> linux) and can browse through the web services provided and invoke
>>> them. Currently I haven't hooked it up to a VistA instance to do any
>
>>> real testing (only testing done is can it compile? Yes.). I am
>>> currently looking at getting the MDWS working on the OSEHRA VM.
>>>
>>> Since nothing speaks louder than code it is available here:
>>> https://github.com/ChristopherEdwards/MDWS/tree/MonoSupport or the
>>> URL to clone from: https://github.com/ChristopherEdwards/MDWS.git
>>>
>>> There is also a wiki page that the community can contribute to:
>>> http://wiki.osehra.org/display/MDWS/. All it requires is a login to
>>> be able to edit the pages. I'll be documenting my progress on
>>> getting this hooked up there.
>>>
>>> This will also be discuess on today's code convergence call:
>>> http://www.osehra.org/event/code-convergence-call-thursday-august-16t
>>> h-2012
>>>
>>> Promote content
>>> Group sticky:
>>>
>>> Not Sticky
>>>
>>> Featured content:
>>>
>>> Not Featured
>>>
>>> --
>>> Full post: http://www.osehra.org/discussion/mdws-mono
>>> Manage my subscriptions:
>>> http://www.osehra.org/og_mailinglist/subscriptions
>>> Stop emails for this post:
>>> http://www.osehra.org/og_mailinglist/unsubscribe/918
>
>
> --
> Full post: http://www.osehra.org/discussion/re-mdws-mdws-mono-0
> Manage my subscriptions:
> http://www.osehra.org/og_mailinglist/subscriptions
> Stop emails for this post:
> http://www.osehra.org/og_mailinglist/unsubscribe/921
>
>
>
> --
> Full post: http://www.osehra.org/discussion/re-mdws-mdws-mono-0
> Manage my subscriptions: http://www.osehra.org/og_mailinglist/subscriptions
> Stop emails for this post: http://www.osehra.org/og_mailinglist/unsubscribe/921
>

like0

WCF - Windows Communication Foundation

Christopher Edwards's picture

Dave:

WCF (Windows Communication Foundation) is a .Net technology - so no affect to VistA that i know of or change to the RPC broker, but I'll leave it to the MDWS developers to comment more on that.

One advantage to WCF is that it better abstracts the code that perfoms the web service function from the actual web service itself.  for example the same code could handle a REST & SOAP web service.  It is also newer than ASMX services that MDWS currently uses.

more background info:

http://msdn.microsoft.com/en-us/library/ms731082.aspx

Christopher

like0

Re: [mdws] MDWS on Mono

Van Curtis's picture

Christopher is correct that WCF wouldn't have anything to do with MDWS talking to VistA. It's really about expanding the ways that other systems can talk to MDWS.

One way to think about MDWS is that there are really two parts to it: MDWS actually surrounds a core called MDO -- or Medical Domain Objects. The MDOs are what talk to VistA -- as well as other data sources. MDWS is just the wrapper on top of that which provides the web services communication layer. I think it's just become to be known as MDWS over the years because (1) MDWS is the part that client applications talk to, and (2) saying "meadows" sounds cooler...

The point being that you can do all kinds of things to the top layer of MDWS without changing what goes on in the lower layer of MDWS. At least that's the intent. And then there are certain caveats and so on...

;-)

From: Apache [mailto:apache@groups.osehra.org] On Behalf Of Christopher.Edwards
Sent: Thursday, August 16, 2012 12:55 PM
To: MDWS
Subject: Re: [mdws] Re: [mdws] MDWS on Mono

Dave:

WCF (Windows Communication Foundation) is a .Net technology - so no affect to VistA that i know of or change to the RPC broker, but I'll leave it to the MDWS developers to comment more on that.

One advantage to WCF is that it better abstracts the code that perfoms the web service function from the actual web service itself. for example the same code could handle a REST & SOAP web service. It is also newer than ASMX services that MDWS currently uses.

more background info:

http://msdn.microsoft.com/en-us/library/ms731082.aspx

Christopher

--
Full post: http://www.osehra.org/discussion/re-mdws-mdws-mono-0
Manage my subscriptions: http://www.osehra.org/og_mailinglist/subscriptions
Stop emails for this post: http://www.osehra.org/og_mailinglist/unsubscribe/921

like0

Success!

Christopher Edwards's picture

I was just able to login to MDWS and get the following output (this is known OSEHRA test data):

<?xml version="1.0" encoding="utf-8"?>
<UserTO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://mdws.medora.va.gov/EmrSvc">
  <name>ALEXANDER,ROBERT</name>
  <SSN>000000029</SSN>
  <DUZ>31</DUZ>
  <siteId>101</siteId>
  <greeting>Good morning ALEXANDER,ROBERT</greeting>
</UserTO>

The wiki is currently being updated with information on how to make this work.

I'll post again when I have the latest updates to the wiki (wiki.osehra.org/MDWS) updated.  If someone can verify my work that would be awesome!

--

Christopher

like0

Re: [mdws] MDWS on Mono

Luis Ibanez's picture

Hi Chris,

I'm attempting to replicate the build instructions in the Wiki:
http://wiki.osehra.org/display/MDWS/Compiling,+Installing,+and+Using+MDW...

In an Ubuntu 12.04 (64bits) installation.

I have checked out the MonoSupport branch from git,
and installed the mono development tools.

After opining the mdws.sln file and starting the build,
I'm getting the following errors:

/home/ibanez/src/OSEHR/MDWS-mono/mdo/mdo/src/mdo/dao/mock/XSqliteConnection.cs(19,19):
Error CS0234: The type or namespace name `SQLite' does not exist in the
namespace `System.Data'. Are you missing an assembly reference? (CS0234)
(mdo)

/home/ibanez/src/OSEHR/MDWS-mono/mdo/mdo/src/mdo/dao/mock/XSqliteConnection.cs(9,9):
Error CS0246: The type or namespace name `SQLiteConnection' could not be
found. Are you missing a using directive or an assembly reference? (CS0246)
(mdo)

/home/ibanez/src/OSEHR/MDWS-mono/mdo/mdo/src/mdo/dao/sqlite/SqliteDao.cs(19,19):
Error CS0234: The type or namespace name `SQLite' does not exist in the
namespace `System.Data'. Are you missing an assembly reference? (CS0234)
(mdo)

It would seem that I'm missing to install some support for SQLite...

I have installed the Ubuntu packages:

sqlite
libsqlite-dev
libsqlite3-dev

but that didn't solve the issue...

Google searches point me to:
http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki

and to downloading:
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

Is that the way to go ?

I'm probably missing something basic here...

Thanks for any hints,

Luis

like0

SQLite dependancy

Christopher Edwards's picture

Luis:

SQLite is another dependancy, see: http://wiki.osehra.org/display/MDWS/Upstream++Dependencies for the download location.

i don't think you need to have the sqlite packages installed (i didn't use them).

There should be 4 items in the MDWS/mdo/mdo/resources/lib/sqlite directory:

  • sqlite3.def
  • sqlite3.dll
  • System.Data.SQLite.dll
  • System.Data.SQLite.XML

 

like0

Re: [mdws] MDWS on Mono

Luis Ibanez's picture

Chris,

Thanks, that did the trick.

With the variation that instead of

- sqlite3.def
- sqlite3.dll

in Linux just installed the packages

sudo apt-get install sqlite
sudo apt-get install sqlite-dev

I have updated the instructions in the Wiki page accordingly:
http://wiki.osehra.org/display/MDWS/Compiling%2C+Installing%2C+and+Using...

The directory:

MDWS/mdo/mdo/resources/lib/
sqlite

only has now the files:

- System.Data.SQLite.dll
- System.Data.SQLite.XML

and the libsqlite libraries are in:

- /usr/lib/libsqlite.so
- /usr/lib/libsqlite.so.0
- /usr/lib/libsqlite.so.0.8.6
- /usr/lib/i386-linux-gnu/libsqlite3.so.0
- /usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
- /usr/lib/x86_64-linux-gnu/libsqlite3.so
- /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
- /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

with the usual relative symbolic links.

With that, I can now build the project with monodevelop
with zero errors and 130 warnings.

Thanks

Luis

like0

Works on OSEHRA VM!

Christopher Edwards's picture

I just completed the directions for MDWS on the OSEHRA VM and updated the wiki with the directions (http://wiki.osehra.org/display/MDWS/Compiling%2C+Installing%2C+and+Using+MDWS+on+OSEHRA+VM).  The testing directions are kind of rough right now, but should get the job done.  I may spend some time making them pretty over the next several days (unless someone beats me to it ;).

I didn't have to install any sqlite packages for the OSEHRA VM which I think is ubuntu 11.04?

Have fun!

like0