Open Source EHR Services OSEHRA Architecture Work Group Meeting June 4, 2013
description
Transcript of Open Source EHR Services OSEHRA Architecture Work Group Meeting June 4, 2013
Open Source EHR Services
OSEHRA Architecture Work Group Meeting
June 4, 2013
2
• Refactoring Update– Problem List Package– Scheduling Appointment Management Menu– ADT (Registration Package) Bed Control Menu– Immunization– Scheduling Supervisor Menu and other future efforts
• Automated Testing Update• Roll and Scroll Recorder (RASR)• Eclipse M IDE
Agenda
3
• Refactored code submitted to Technical Journal last year and has since been updated multiple times
• Improved API• Code reuse and good practices• Problem List package modularity
• Recent Changes• Additional testing and bug fixes• Regression tests (both functional and MUnit)• Documentation, packaging, and code updates based on feedback from
OSEHRA team• Next Steps
• Fixes for all the remaining, and any new, issues for certification• Update after ICD-10 changes• VA testing and acceptance after certification
Problem List Package
4
• Refactored code submitted to Technical Journal last summer and has since been updated multiple times
• Expose core actions in Appointment Management Menu through APIs• Make appointment, Check-in, Check-out, Cancel• Electronic Wait List
• Code reuse and good practices• Recent Changes
• Additional testing and bug fixes• Regression tests (both functional and MUnit)• Documentation, packaging, and code updates based on OSEHRA
feedback• Currently in queue for OSEHRA certification (no
anticipated timeline for certification completion)• Next
• Additional testing and fixes for any new issues• Should be helpful to groups participating in VA’s 21 CMS Scheduling
contest• Use after contest will be based on VA direction
Scheduling Appointment Management Menu
5
• Refactored code submitted to Technical Journal in March 2013
• http://code.osehra.org/journal/browse/publication/35
• Expose functionality in ADT Bed Control Menu through APIs
• Admit Patient, Transfer Patient, Discharge Patient, Check-in Lodger• List of wards, List of beds, List of active providers• Vocabulary such as Admission type, Transfer type, Discharge type• Should be adequate for a presentation layer
• Next• Second round of testing and documentation review• Receive OSEHRA certification
ADT (Registration) Bed Control Menu
6
• Immunization in VistA• Within Patient Care Encounter Package• Multiple data entry screens
• Immunization in RPMS (IHS)• Polished application complete with APIs• Applies to whole population (infants, children, adults)• Decision support (through third party software)• Meaningful Use ready
• Conclusions• RPMS solution should be considered as a replacement based on range
of functionality• However, RPMS and VistA Immunization applications are vastly different
and clinician input is necessary on how to incorporate RPMS solution into VA workflows
• They use the same database items to store different immunization data and thus data conversion is necessary (either in RPMS or VistA)
• No refactoring work can be done before workflow issues are resolved
Immunization Investigation
7
• VA is in planning stage to align with parallel VistA efforts and our team’s focus is subject to amendment/change
• Scheduling Supervisor Menu• Began work on Scheduling Supervisor Menu Spring 2013• Expose functionality through APIs
• Clinic creation and update• Sharing agreement category update
• Concentrate on menu items that affect Appointment Management functionality
• Serves as additional testing for Appointment Management API• Improves MUnit testing
• For example, clinics are currently created directly by setting globals
• ADT Supervisor Menu• If time remains we will also work on ADT Supervisor Menu• Same reasoning and focus as mentioned above for Scheduling
Supervisor Menu
Current and Future Refactoring Efforts
8
• Incorporated as part of OSEHRA Testing Framework• Includes functional tests to support refactoring
efforts• Problem List package• Scheduling Appointment Management Menu • ADT (Registration package) Bed Control Menu
• Recent Work• Some OSEHRA structural changes incorporated • Additional tests to increase coverage• Regression tests for fixed bugs• Utilized to test moving hard coded messages to DIALOG File
• Log files are generated that includes all messages shown on the screen during testing
• Comparing log files between refactored and original code serves as a test• Utilized to compare with and without refactoring database states
• Functional tests are run for VistA-FOIA with and without refactored code• Comparing globals that belong to refactored modules serves as a test• Time related items can be filtered out using scripts
Automated Testing Framework
9
• Purpose• To record interactions between the user and
the VistA roll and scroll interface
• Primary Application• Generation of automated testing scripts for
execution within the VistA Automated Testing Framework
Roll and Scroll Recorder (RASR)
10
Description• Eclipse Plug-in
• Intended to be used by test engineers, developers, and anyone looking to document VistA Roll and Scroll interaction
• Typical usage model• User establishes SSH or Telnet connection to VistA target• User interacts with VistA target via roll and scroll
interface• RASR records user input and select or default VistA
responses• User saves (Python) scripts within a specified project
directory
Roll and Scroll Recorder (cont.)
Roll and Scroll Recorder (cont.)
11
RAS Recorder View
(write)
Expected Value View
(expect)
RASR “Controls”• Establish SSH
Connection• Specify Project Directory• Start/Stop Recording• Save Recording
Show RASR Views
Roll and Scroll Recorder (cont.)
12
CMake
CPRS
VistA
Python Test Harness
Web Browser
Selenium Sikuli
Web Application
SSH/Telnet
Telnet or SSHRPC
HTTP
Test Harness
Target System / Application
RASR
13
• Eclipse is used as IDE for many mainstream programming languages such as Java, Python, C++, etc.
• Eclipse is open source and extendible, and has plug-ins for other essential tools such as version control systems (git, svn, etc.)
• Goal is to provide Eclipse plug-ins for M and VistA development, testing and analysis, and promote Eclipse as a one stop development and testing environment
• Increase productivity for current M/Vista developers and remove one hurdle for mainstream developers who want to experiment with M and VistA
Eclipse M IDE Plug-in
14
• VA (Joel Ivey) previously developed a plug-in for M and VistA called MEditor and MDebugger
• Our team’s efforts builds on top of Joel’s work• MEditor assumes flat directory structures and does not play well with
hierarchical repositories like OSEHRA VistA-FOIA• Look and feel of MDebugger deviates from other debuggers (code
tracing, breakpoint view, variables view, debug configuration launch)• Ultimate goal was to run VistA roll and scroll interface from Eclipse
and debug, but issues encountered on MDebugger back end• Our team has worked on fixing a number of these issues
• A number of analysis and refactoring tools have been added • Other Eclipse plug-ins mentioned for tools that were
built on top of M but they are proprietary and were not investigated for this project
Eclipse M IDE Plug-in
15
Eclipse M IDE Plug-in
16
Eclipse M IDE Plug-in
17
Eclipse M IDE Plug-in
18
Eclipse M IDE Plug-in
19
Eclipse M IDE Plug-in
20
Eclipse M IDE Plug-in
21
• Will submit to Technical Journal June 2013• Debugger is currently a work in progress
• Works only for very simple code at the moment• Working on fixing back-end issues so that it can be used for refactored
“silent” code• A different back-end approach will probably be needed to run and
debug VistA roll and scroll interface from Eclipse • Analysis and Refactoring Tools
• MEditor runs XINDEX when files are saved and any M side tools can be run as such
• Other current analysis and refactoring tools use a Java-based M parser underneath that generates an “almost” complete M parse tree and Visitor pattern
• Additional analysis tools can be added relatively easily
Eclipse M IDE Plug-in
Questions/Discussion
22
23
• Technical Journal• http://code.osehra.org/journal/
• Refactoring Services• http://www.osehra.org/group/ehr-refactoring-services
• Eclipse Plug-in• http://www.osehra.org/content/eclipse-plug-project
• Automated Testing Framework/RASRhttp://www.osehra.org/wiki/vista-system-test-platform-project
• VOLDEMORT• http://osehra.org/group/voldemort-comparison-tool
Additional Project References