Extending the Platform -...

29
Extending the Platform 21 st VCM, George Mason University, Fairfax, Va. Andy Pardue & Ben Mehling

Transcript of Extending the Platform -...

Extending the Platform

21st VCM, George Mason University, Fairfax, Va.Andy Pardue & Ben Mehling

OVID

The OVID (OpenVista Interface Domain) layer is a set of development tools designed to enable software developers easier access to OpenVista data and applications.

OVID is a foundational technology that allows developers to build upon OpenVista (and VistA

Copyright © 2010 Medsphere Systems Corporation2

developers to build upon OpenVista (and VistA derivatives) using alternative languages (such as Java) or architectures (such as Web Services/SOA).

Vital stats:

� Originally released: April 2009

� License: AGPL

� Technologies: M, Java

� Downloads: Open Repository & 2000+

� Home: http://medsphere.org/community/project/ovid

� Recent whitepaper: http://www.medsphere.com/ovid-white-paper

OVID Technical Capabilities

• Useful for building on the OpenVista/VistA platform:

� Traditional applications

� Web/Mobile applications

� Exposing OpenVista data/logic as Web Services

� Console based applications

� Automation and Integration

• Ability to create M to Java calls, allowing M applications to call

Copyright © 2010 Medsphere Systems Corporation3

• Ability to create M to Java calls, allowing M applications to call external Java APIs

• Ability to create Java to M calls, allowing Java applications to call into M APIs

• Supports creating Java domain objects

OVID Architectural Overview

Domain Object Repository

Java Apps(Thick and Console)

Web Services Repo

• How does OVID work?

� Communicates over generic transports, such as RPC Broker or CIAi Broker

� Implements an interface for calling existing RPCs

� Implements an interface to FileMan’s “silent” database API

Web/MobileApps

Copyright © 2010 Medsphere Systems Corporation4OpenVista

OVID M/RPCs

RPC/CIAi Broker

M/RPCs FileMan

OVID Connection

OVID Message

Domain Object Repository

(Patient, Order, Medication, etc.)

FileMan’s “silent” database API

A Platform

Using the OVID technology and framework, community contributors and Medsphere have created new tools and applications:

� Web Services to CCR/CCD gateway

Copyright © 2010 Medsphere Systems Corporation

� Web Services to CCR/CCD gateway

� Web Services to DoD KMR middle tier

� IHS/Medsphere Clinical Flowsheet, Pharmacy and more in development

� iPhone/iPod application to view patient record in real-time

� Registration application built on OVID

� RESTful interface to OpenVista

5

Sample web front-end

VistA provides a strong integrated solution

...but, Integration is a double-edged sword

VistA has not easily adapted to the changing world

When to consider OVID

s in computing, platforms and devices

Copyright © 2010 Medsphere Systems Corporation

OVID can be used in projects with varying goals:

• Integration – the glue between disparate systems

• Extension – or a platform on which to build

• Migration – a transitional path

7

platforms and devices

Integration

OpenVista

Image Interface

HL7

XML

Copyright © 2010 Medsphere Systems Corporation8

WebDAVImage Repo

Mirth Engine

Interface

OVID

XML

Files

Extension

OV

ID

Domain

Patient Dashboard Application

Copyright © 2010 Medsphere Systems Corporation9

OpenVista

OV

ID

DomainLayer

Extension

OV

ID

Domain

Patient Dashboard Application

Copyright © 2010 Medsphere Systems Corporation10

OpenVista

OV

ID

DomainLayer

RESTfulWebService

Migration

OVID-based WebServices

ClinicalFlowsheets

ClinicalFlowsheets

Copyright © 2010 Medsphere Systems Corporation11

OpenVista

OVID-based WebServices

MySQL

Migration

OVID-based WebServices

ClinicalFlowsheets

ClinicalFlowsheets

PharmacyPharmacy

Copyright © 2010 Medsphere Systems Corporation12

OpenVista

OVID-based WebServices

MySQL FDBDIF

Migration

OVID-based WebServices

ClinicalFlowsheets

ClinicalFlowsheets

PharmacyPharmacy

Copyright © 2010 Medsphere Systems Corporation13

OpenVista

OVID-based WebServices

MySQL FDBDIF

AWSBigtable

Domain Layer

• A layer of business objects focused on defining the properties and behavior of the concepts they represent.

� Object oriented, reusable across applications.

� Isolate, as much as possible, underlying complexity and details from the users of the objects.

� For our purposes, a domain layer should be a simple, repository based approach to accumulating useful domain

Copyright © 2010 Medsphere Systems Corporation

repository based approach to accumulating useful domain objects.

� Extensible to other architectures and platforms (SOAP, REST, Web, etc.)

� Lowers the ramp up time for new developers to become productive.

14

• RPCBroker, CIABroker, VistalinkBroker interfaces

• Connection pooling

• Temporal caching

• FileMan/Mumps RPC Access

• Support for annotated Java beans

OVID API

Copyright © 2010 Medsphere Systems Corporation15

OVID Domains

• Patient (Demographics)

• Patient Contacts (NOK,

Guarantor)

• Location/Ward/Institution

Information

• Vital Signs

• Drug information

• Medication Administration Log

• Orders/Orderable Items

Copyright © 2010 Medsphere Systems Corporation

Information

• Kernel Info (e.g. Platform

detection)

• Users/Clinicians (New Person)

• Laboratory Test Results

• Problems

• Order status/dialog

• Patient Movement

• Prescriptions/refills

• Immunizations/refusals

• TIU Document Retrieval

16

DDSS & KMR Project

• Middle-tier DDSS Research Project

� Data Services (C83) from RPMS and OpenVista

� “Service Orienting” the Rules Engine

� Web app container for

Copyright © 2010 Medsphere Systems Corporation

� Web app container for VueCentric

17

For details, see: http://socraticgrid.org/index.php/documentation.html

KMR Services -- What’s available

• CAL layer defines what web services are implemented

• Utilizes HL7 V3 XML objects for data requests and responses

• All service providers (RPMS, OpenVista) implement this interface.

� (These implementations are called “mappers” because they map from native data elements to the HL7 v3 objects required by the CAL layer.)

• CAL layer is implemented as a SOAP Java web services (jax-ws)

• Runs within the Glassfish application server

Copyright © 2010 Medsphere Systems Corporation

• Runs within the Glassfish application server

• Coding systems are used when available in source data: LOINC, ICD, CPT, NDC, HL7

• Currently implements the following CAL domains:

18

� FindPatients

� GetPatientInfo

� FindProviders

� GetProblems

� GetLabResults

� GetMedications

� GetAllergies

� GetImmunizations

� GetVitalSigns

Demonstration

• CCD Document Creation

� Used anonymized data from a large sample RPMS dataset

� Aggregation of ~5 domains into a CCD XML file

� Built on OVID, automated the CCD creation from RPMS in a few hours of developer time

• Populating popHealth1 Repository

Copyright © 2010 Medsphere Systems Corporation

� One CCD XML file 2 was created for each patient

� The import process reads a directory of CCD records in batch, loading each patient into the repository

• Population Health Reporting

� Influenza Vaccination

� Hypertensive BP Under Control

� Ad hoc reporting...

19

1 http://www.projectpophealth.org/2 Incomplete CCD record due to popHealth limitation -- clinical coding incomplete/hardcoded

FM Projection

FM (File Manager) Projection is a technology that “projects” the data structure of OpenVista into a relational database format.

Users can query against FM data structures using SQL queries and tools.

Copyright © 2010 Medsphere Systems Corporation20

Vital stats:

� Planned release: January 2010 VCM!

� License: AGPL, LGPL

� Technologies: M, Java, C

� Downloads: Open Repository

� Home: http://medsphere.org/community/project/fm-projection

FM Projection

Architecture:

• M-engine agnostic (GT.M or Cache)

• Implements a MySQL storage engine that is backed via a network connection to an OpenVista server

• Projection model uses SQLi package

Capabilities:

Copyright © 2010 Medsphere Systems Corporation

Capabilities:

• Data can then be accessed via J/ODBC data tools and compatible data access development libraries

• A Java-based schema and data viewer is included

• Current version provides read-only access

Uses:

• Connect open source or COTS data analysis, reporting, BI tools

21

SQL Parser/Optimizer

MySQL Clients

FileMan Projection Architecture

Copyright © 2010 Medsphere Systems Corporation

MyISAMStorage Engine

InnoDBStorage Engine

FileManStorage Engine

RPC Broker

FileMan SQLi

SQL RPCs

FileManVisualizer

22

To do

• Indexes on "New Style" FileMan indexes

• Provide better optimizer hints

• Foreign keys

• Prefetch results instead of RPC call per row

• Custom network socket connection for

Copyright © 2010 Medsphere Systems Corporation

• Custom network socket connection for performance

• Eventually, write abilities

23

Demonstration

Copyright © 2010 Medsphere Systems Corporation

Demonstration

24

FM Visualizer (FMVis)

• Inspect Files

� Fields

� Data

� Globals

� Relationships

� Graph

Copyright © 2010 Medsphere Systems Corporation

� Graph

25

Standard SQL via DBVisualizer

• Schema inspection

• Queries:

� Titles

� Users with their titles

� Average Age & Standard Deviation of Patients

� Most recent signed notes

Copyright © 2010 Medsphere Systems Corporation

� Most recent signed notes

• Project Files to MySQL from FMVis

� STATE

26

Jasper - iReport

• Sample Reports

� Users by Title

� Signed notes (previous two weeks)

� Patients w/ Allergies

• Projection, not Replication

� Run Report

Copyright © 2010 Medsphere Systems Corporation

� Run Report

� Data alteration

� Re-run Report

27

• Semantic Web EMR, Wed 6/9 @ 3:15pm

• Medsphere Overview, Fri 6/11 @ 9:00am

Questions

Copyright © 2010 Medsphere Systems Corporation28

Questionshttp://medsphere.org/

http://medsphere.org/