VETERANS HEALTH ADMINISTRATION Presentation to World VistA January 18, 2013 Joel Mewton U.S. Department of Veterans Affairs (VA)

Slides:



Advertisements
Similar presentations
Websydian Anne-Marie Arnvig Manager, Websydian Communications & Relations.
Advertisements

Websydian products.
Lecture 10 Sharing Resources. Basics of File Sharing The core component of any server is its ability to share files. In fact, the Server service in all.
Introduction to Web Services and Web API’s Richard Holowczak Baruch College December, 2014.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Session 28 Techie Terminology and Benefits for Financial Aid Administrators Tim Bornholtz Holly Hyland.
Understand Web Services
Technical Architectures
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
RSS RSS is a method that uses XML to distribute web content on one web site, to many other web sites. RSS allows fast browsing for news and updates.
1 Web Services Visual C# 2008 Step by Step Chapter 30.
FIRST COURSE Computer Concepts Internet and Microsoft Office Get to Know Your Computer.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
Web service testing Group D5. What are Web Services? XML is the basis for Web services Web services are application components Web services communicate.
J2EE Web Fundamentals Lesson 1 Introduction and Overview
Linux Operations and Administration
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
NODEJS, THE JOOMLA FRAMEWORK, AND THE FUTURE IAN MACLENNAN.
DATA COMMUNICATION DONE BY: ALVIN SAMPATH CARLVIN SAMPATH.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
What are Webservices?. Web Services  What are Web Services?  Examine important Web Services acronyms (UDDI, SOAP, XML and WSDL)  What are the benefits.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Web Services MnSCU Web Services Roundtable David Purcell, OoC IT JoDee Haugrud, MN State Moorhead Gary Hayden-Sofio, MCTC Dave Kruse, SCTC.
Fundamentals of Database Chapter 7 Database Technologies.
PHP meets MySQL.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Web Services An introduction for eWiSACWIS May 2008.
Lecture 15 Introduction to Web Services Web Service Applications.
October 8, 2015 University of Tulsa - Center for Information Security Microsoft Windows 2000 DNS October 8, 2015.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Web Services. ASP.NET Web Services  Goals of ASP.NET Web services:  To enable cross-platform, cross- business computing  Great for “service” based.
Authentication Proxy for the VistA Hospital Information System William Majurski Information Technology Laboratory.
IPortal Bringing your company and your business partners together through customized WEB-based portal software. SanSueB Software Presents iPortal.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and Web Services JSP and Web Services 18 th March 2005.
A Limited Definition of Web Services Paul Kopacz CIS* Service Oriented Architecture Instructor: Qusay H. Mahmoud, Ph.D. February.
1 Web Services Web and Database Management System.
Mtivity Client Support System Quick start guide. Mtivity Client Support System We are very pleased to announce the launch of a new Client Support System.
Claims-Based Identity Solution Architect Briefing zoli.herczeg.ro Taken from David Chappel’s work at TechEd Berlin 2009.
MEMBERSHIP AND IDENTITY Active server pages (ASP.NET) 1 Chapter-4.
CSIT 220 (Blum)1 Remote Procedure Calls Based on Chapter 38 in Computer Networks and Internets, Comer.
WEB SERVICE DESCRIPTION LANGUAGE (WSDL). Introduction  WSDL is an XML language that contains information about the interface semantics and ‘administrivia’
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
Dyalog’08. Conga, SSL and WebServices Morten Kromberg Dyalog’08 - Elsinore.
CSCE 315 – Programming Studio Spring Goal: Reuse and Sharing Many times we would like to reuse the same process or data for different purpose Want.
Developing Web Services with the Eclipse Web Tools Platform David Gallardo.
Web Services An Introduction Copyright © Curt Hill.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Helping the Cause of Medical Device Interoperability Through Standards- based Test Tools DoC/NIST John J. Garguilo January 25,
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and Web Services Session IV: JSP and Web Services 11.
A service Oriented Architecture & Web Service Technology.
GroupRocket.net How to Choose Collaboration Software for Your Company Click this URL – GroupRocket.netGroupRocket.net.
Java Web Services Orca Knowledge Center – Web Service key concepts.
The Object-Oriented Thought Process Chapter 13
DXL to PST Converter presents
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Microsoft 365 Business Customer Targeting 2/6/18
Wsdl.
File Stream and Team Drives
WEB API.
11/19/2018 4:38 AM Microsoft 365 Business Customer Targeting Janine Brittain - EXEED 2/6/18 © Microsoft Corporation. All rights reserved. MICROSOFT.
Architecture Competency Group
Whatcha doin'? Aims: Begin to create GUI applications. Objectives:
REST APIs Maxwell Furman Department of MIS Fox School of Business
Introduction to DATA.HRSA.GOV
Presentation transcript:

VETERANS HEALTH ADMINISTRATION Presentation to World VistA January 18, 2013 Joel Mewton U.S. Department of Veterans Affairs (VA)

VETERANS HEALTH ADMINISTRATION Jatlh rap hol…* TLA – Three Letter Acronym. Irony intended. The VA loves to toss these around. Just bracing you… MDWS – Pronounced “meadows”. VA product for accessing disparate data sources. VistA – What we call our MUMPS databases. MDWS can and does communicate with other data sources. It’s built to. We’re going to focus on VistA for obvious reasons. Web Services – Industry standard, widely supported technology for exchanging data between systems. MDWS is made up of SOAP web services. SOAP – Simple Object Access Protocol. One of the two primary ways web services are exposed. MDWS is currently SOAP web services. REST – Representational State Transfer. The second of those ways. RPC – Remote Procedure Call. This is the way CPRS communicates with VistA. The CPRS RPC broker is written in Delphi. MUMPS – Contagious disease. Also, the language of VistA. Origins (of the programming language) date to the 70s! We’ll probably just refer to this as “M”. Local Site – We use this terminology to refer to a user’s home site. Typically the user will have A/V (access and verify – basically a fancy label for username/password) codes at this site. Remote Site – Any of the other 130ish+ sites that is not a user’s home site. We typically refer to this in the context of a patient. So, a patient might have some records at a user’s home site while that same patient might have also visited a number of other VA hospitals and have records at those remote sites. Providers obviously have a need to view this remote data when making decisions about patient care. Design patterns – The way wise geeks write software. Take a look at a recurring task/problem and try to find an extensible and flexible way to tackle it. Business Rule – Fancy way of mentioning the way something should work. Concrete VA example: patient sensitivity bulletins. E.g. if a patient is also a VA employee and attempts to view his/her own records, the RPC “DG SENSITIVE RECORD BULLETIN” should be executed with the appropriate level argument. MDWS handles things like this automatically. * Klingon for: “Speaking the same language”. I am not a Trekkie.

VETERANS HEALTH ADMINISTRATION In the beginning… Some smart docs in Massachusetts created MUMPS. They saw that it was good. Ok, too far back. Our story really starts with with CPRS and the RPC broker. CPRS is your classic “two-tier” application – a GUI that talks to a database. The GUI is the CPRS user interface and the database is VistA. Note there’s only one VistA here. The RPC broker is fast! RPCs are basically M routines exposed for remote use via the REMOTE PROCEDURE file. Works great for what it is. Used thousands of times every day across VA. Not so great for reusability… Remember that leading comment about “one VistA” – CPRS is inherently a single site application. While the capability does exist to retrieve data from remote sites, it’s quite kludgy and non-intuitive. For example, to view remote data a user must know to click the “Reports” tab in CPRS… That RPC broker is only available as a COM object. RPC Broker CPRS VistA RPC

VETERANS HEALTH ADMINISTRATION RPCs are the bees knees Remember: RPCs are native M code. In most cases, they’re written for speed. That makes them double snappy. RPCs aren’t just data. VA has years and decades even of business intelligence built in to the RPCs. RPCs were and still are ahead of their time. Much of the industry is still stuck with direct database calls. Most MDWS calls use the same RPCs that CPRS uses. This means that performance is similar and the results are usually identical. This makes transitioning to a new app straightforward for the users. Someone once told me that’s who we write applications for, you know. VA providers are very familiar with CPRS. Most conversations for new MDWS functionality or MDWS based tools start with CPRS.

VETERANS HEALTH ADMINISTRATION And Joe said, “Let there be VistAWeb” Who’s Joe, you ask? Joe Gillon. Original author of MDWS and VistAWeb. The man, if you will. Currently retired and not missing VA. Ok, on with the story… VistAWeb – A web based GUI for accessing patient data. VistAWeb has its own version of the RPC broker but written in C#. The underlying communication appears the same to a VistA site though – it’s all RPCs coming in. VistAWeb is inherently multi-site. Want a patient’s meds? You automatically get them from every site the patient has visited – local and remote. All in an integrated view. VistAWeb communicates directly with remote sites. The same RPCs that are executed at the local site are executed remotely. MDO is available as a DLL. VistA Web MDO RPC VistA

VETERANS HEALTH ADMINISTRATION MDO MDO = Medical Domain Objects. Based on the “data access object” (DAO) design pattern. We don’t want client applications of MDO to care about the domain model of each crazy little disparate data source and how to interact with that data source. Ask for a patient’s vitals once – MDO figures out how to interact with each of the different data sources, query and assemble the results so that one single type of VitalSign object is returned.

VETERANS HEALTH ADMINISTRATION Still living in a 2-tier world  MDO is really only available as a DLL. While an improvement over a COM object, only technical folks can use it. Also, only developers writing in a language that can consume a DLL. MDO doesn’t put a ton of smarts around the data. It doesn’t much care about business rules. Those are left to the database to enforce. Sometime that’s ok but not usually… In VA, the CPRS source code contains the business rules for interacting with VistA. That means every new application written that uses MDO would need to figure those out by reverse engineering that CPRS source code.

VETERANS HEALTH ADMINISTRATION MDO + Web Services = MDWS Web services are a well understood, widely supported, modern, flexible, scalable, drink kool- aid now, etc. etc. way to expose data and functionality. MDWS is simply a thin web service layer plopped on top of MDO. The web service layer serves as a convenient holding location for some of those business rules we mentioned. Web services encapsulate a great deal of business intelligence in simple, easy to use functions enabling developers to write applications rapidly and safely. Developers can worry about their app and not the data. MDWS, currently, is SOAP web services. MDWSMDO VistA

VETERANS HEALTH ADMINISTRATION SOAP Makes you smell nice. Also makes it sooo easy to write a web service client. All major programming languages have tools to turn a SOAP web service’s WSDL (“wizzdle” – web services definition language) document in to code. Client applications developers can literally start writing an app against MDWS in a few minutes. The developer never even sees the XML! It’s all handled automagically by the code generated from that development language’s WSDL -> whatever tool. Client application developer sees a MDWS web service call, “getAllMeds” - when invoked, it simply returns an object TaggedMedicationArrays that has properties such as name, id, sig, startDate, stopDate, etc. etc. Even tools such as Microsoft Office products can consume a web service. Our developer no longer really even needs to be a “developer”. MDWS empowers anyone with a good idea to make an app that safely and efficiently can access the patient’s complete medical record. Or, even other types of data.

VETERANS HEALTH ADMINISTRATION This is a WSDL document. Java,.NET, Ruby, Python, Javascript, C++, the list goes on and on, all have tools to turn this document into code. What one ends up with is super easy to use “objects” that tell your application exactly what the API arguments are, what to expect as a response, etc. All without needing to know (mostly) your app is even talking to a VistA (or whatever) database. WSDL

VETERANS HEALTH ADMINISTRATION This is from a MDWS demo project freely available to anyone. It shows how to write a MDWS client app. With error handling, this file clocks in ~160 lines. It contains all the code required to: 1.Connect to any VistA site 2.Authenticate your user using VistA credentials 3.Search for a patient 4.Select the patient 5.Connect to the patient’s remote sites 6.Retrieve the patient’s medications from every VA site the patient has records The point is to show writing applications against VistA is really, really easy. MDWS

VETERANS HEALTH ADMINISTRATION Current MDWS Data Sources MDWS communicates with all production VistA sites. MDWS can access longitudinal data from CDW to support things like decision support. MDWS retrieved MOS (Military Occupation Service) codes from the VADIR repository. These are available in a Blue Button download. MDWS exposes some geographic databases for things like finding the nearest medical facility. MDWS communicates with the HDR via web service calls. MDWS extends the Secure Messaging (SM) infrastructure of MHV for our upcoming release of some mobile applications. MDWS is a data glutton. It can speak any protocol. VistA CDW VADIR Geographic HDR MHV Active Directory

VETERANS HEALTH ADMINISTRATION A few current big-name MDWS Clients MyHealtheVet VPS Kiosk (in test) NUMI (Utilization Management) Suicide and Homeless Hotlines TBI (Traumatic Brain Injury) Many new mobile apps are being written as MDWS clients

VETERANS HEALTH ADMINISTRATION Internet Resources: Questions?