Skip navigation

Manage categories

Close

Create and manage categories in lzVistA. Removing a category will not remove content.

Categories in lzVistA
Add a new category (0 remaining)
Loading widget...

Recent Discussions

Refresh this widget

Recent Documents

Refresh this widget

You can't create documents here, but watch for documents with information you can use.

lzVistA

The lzVistA project aims to explore methods and opportunities to build web-based clients for VistA-based systems using the OpenLaszlo Rich Internet Application (RIA) framework.

Quick Links

Recent Blog Posts

Refresh this widget
0

Erlang RPC Driver Update in lzVistA

Posted by Wally Cash Feb 10, 2012

The RPC broker protocol is now more fully, accurately, and robustly implemented. Initial support for OVID calls via the RPC Broker has been added. Pending additional testing (which is underway), I believe that the project is approaching stability and should soon provide the basis for some interesting work. The code is available at github.

285 Views 0 Comments Permalink
2

Erlang Vista RPC Driver in lzVistA

Posted by Wally Cash Jun 6, 2011

The initial incarnation of the RPC driver is complete. It is now packaged as an OTP application. The hacks and hard-coded values related to packet construction have been replaced with working code. The API has been simplified, basic support added for returning results as JSON, and documentation created. The code is available at github. --Wally

1,079 Views 2 Comments Permalink
0

While this project lay dormant for nearly a year my interest in the problem that inspired it has not. As many had predicted the complexity of OpenLaszlo simply proved too great a burden to bear. But it was instructive. Lately I've been exploring the development Erlang drivers to roll-n-scroll and the RPC broker and coupling them with the Erlang-based Nitrogen web framework. This is a “clean room” implementation in that it does not depend upon any of the existing Vista web interface platforms and there is no code written in M. Just Erlang and VistA. This is still in it's infancy and is proof-of-concept only. Yet the elegance of this approach is manifest and promising. We'll see if it flies...

 

In the hope that this early stage work may be of some value or interest to the community I've attached the latest project files to this post. The effort currently affords interfaces to roll-n-scroll (sans Screenman forms) and the RPC Broker. The obligatory screenshots follow. The basis for Screenman support is under development but there are still some unresolved questions/issues. The optimal way of handling nested structure (i.e. sub-forms) is an open question. The roll-n-scroll example is quite literal – essentially just a terminal in the browser. One could, of course, parse the data stream into elements which could then be transformed and styled - but the value of doing so is not clear. As Jim Self has pointed out there is something of an impedance mismatch between the "web way" of doing things and roll-n-scroll. The infrastructure/driver code is well commented. If there is interest I could bundle up a demo environment (sans Vista) or possibly spin up a demo instance on my personal server.

 

I recognize that this effort is a re-purposing of the original project and request guidance from the folks at Medsphere as to whether or not they wish to continue to host it here. I appreciate the resources provided to date and am good either way :-). If only there were more time in the day...

 

--Wally

 

A test of the RPC driver:

rpctest.png

 

A test of the roll-n-scroll driver:

rollnscroll.png

1,104 Views 0 Comments Permalink
5

The beauty of the thing is it's simplicity. I have released a REST server which will form the basis for future development of this project. The server infrastructure is derived from MDB (MGateway's SimpleDB clone) and incorporates many of the Fileman interface tools of M2Web as modified by this project. Support currently exists for Get, Help, Put, RPC, Query, and Validate actions. The RPC action is a new and simplified version of my earlier attempt to implement brokerless RPC execution. RPCs can now be invoked by an authenticated user by providing an option number, RPC number, and any required arguments. Given these pre-conditions, the server will perform the following:

 

1. Verify that the user has access rights to the option.
2. Verify that the RPC is valid for the given option
3. Resolve the RPC number into routine and file names.
4. Load and examine the RPC source to determine the call signature.
5. Given the proper arguments the RPC is then executed.
6. Analyze the return variable by applying a few simple heuristics and render it into XML.

 

This feature needs further evaluation and is perhaps somewhat naive, but I think it has potential. In addition to the security provided by AWS style digitally signed requests, token based sessions are now provided for authenticated VistA users. I have also included a simple RIA tool that has been useful in the development and debugging of the server, and also demonstrates how a client might be constructed to interact with it.

 

ss.png

 

The primary goal of this effort has been to provide a simple, effective, and transparent server scaffolding that can be easily customized and extended.

 

Finally, I have decided not to include the original client framework in this branch. To borrow a term from golf "I'm going to take a Mulligan" on that one. It seemed like the right approach at the time but I was never really satisfied with the results and just couldn't get the implementation right. But I learn and, as with many aspects of this project, have some new ideas. The latest updates are available under the "devel" branch of this project at launchpad. More to come soon...

 

Thanks for the opportunity to contribute and Happy New Year! --Wally

992 Views 5 Comments Permalink
3

Building on the wonderful work of Mike Clayton and the GTM Integration project I now have EWD running on a modified "10 minute install" of OpenVistA. The install was accomplished manually with modifications to the mgw-astronaut-0.1 deb files and adding 32kb data block support for the relevant EWD globals to the ovinstanceadd script. Moving forward this will allow for the porting of M2Web's high level tools to EWD - a goal for some time. I have, since the technical conference earlier this year in Pittsburgh, believed that the secure, robust, and battle-tested EWD infrastructure combined with M2Web's tools represents the future of "real-world" M web server deployments. With any luck and a bit of time lzVista will soon enjoy the best of both worlds...

790 Views 3 Comments Permalink
More

Actions

Notifications

Latest Bugs

Loading widget...

Recent Commits

Loading widget...

Top Participants

The top participants are currently being calculated or no one has contributed yet.

Popular Tags