extending the platform -...
TRANSCRIPT
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
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
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/