Highly qualified and accomplished software engineer with more than 15 years of consulting and software development experience for healthcare, research, education, and government.
About Me
I began writing computer programs at the age of 10 using the BASIC programming language for MS-DOS. Later I became a Pascal guru and used my talents to write programs for a neuroscience research group and for a college. After graduating from medical school in 1998 I opted to pursue a career in software development. I undertook programming projects with the Veterans Administration (VA), the American Medical Association (AMA), and other healthcare-related ventures. I spent about five years teaching computer science at the undergraduate level, and now I work as a software developer for the VA. I reside outside of Dayton, Ohio where I enjoy working on our small farm tending to our gardens, orchard, and bee colonies. I am husband to a beautiful wife and proud father of two boys.
I am passionate about software development and I love to code. My areas of coding expertise include the Java programming language and Java Platform, Enterprise Edition (JEE), and many Java technologies and APIs such as servlets/JSP, JDBC, JPA, JAXP, JMS, JCA, JAX-RS, JTA, and EJB. Development tools I use on a daily basis include the Eclipse IDE, Subversion and Git, Ant and Maven, JUnit, Bugzilla, and HelpNDoc.
I develop enterprise software applications for healthcare and education, and typically host these applications on leading enterprise application servers such as JBoss AS and Oracle/BEA WebLogic Server. Most of these applications are based on an n-tiered architecture, with middleware implemented in Java/JEE, a data source such as a SQL or "NoSQL" database, legacy systems such as the VA's VistA EHR or other backend system, and a Single Page Application (SPA) for the client. Client-side technologies I develop with include HTML/HTML5, CSS, and JavaScript, Ajax, JSON, XML, XSL/XSLT, and Sencha ExtJS and Touch.
A large component of my enterprise development includes writing Web services that expose data and business logic through SOAP and REST architectures and protocols. I specialize in developing service-based interfaces to legacy systems that allow them to interoperate with third-party applications and systems. Applications that I develop from the ground up as well as interoperability interfaces that I design are often implemented as a service-oriented architecture (SOA), providing data and functionality to other applications through standard protocols.
I also develop native Windows applications using Borland Delphi/Embarcadero RAD Studio. I work with a number of databases including MS SQL Server, MySQL, PostgreSQL, and MongoDB. I develop on Windows 7, Apple MacBook, and Linux desktops. I manage around 20 RHEL Linux servers as a part of my work for the VA.
I love learning new languages and technologies, and lately I've been experimenting with Node.js and associated frameworks (MEAN.js and Sails.js). I'm also interested in data analysis, and am learning to use the NumPy and pandas libraries for Python.
Education and Training
Medical Education
Institution: Loma Linda University School of Medicine, Loma Linda, CA
Degree: MD
Dates of Attendance: Aug, 1993 - May, 1998
Graduate Education
Institution: Nova Southeastern University, Fort Lauderdale, FL
Degree: MS Computer Science
Dates of Attendance: April, 2000 - Sep, 2003
Institution: California State University San Bernardino, San Bernardino, CA
Course of Study: Computer Science
Dates of Attendance: June, 1999 - Dec, 1999
Undergraduate Education
Institution: Southwestern Adventist University, Keene, TX
Degree: BS Biology, Minors: Computer Science, Math, Physics, Chemistry
Dates of Attendance: Aug,1989 - May, 1993, Aug, 1994 - May, 1995
Other Education
Institution: Lister Hill National Center for Biomedical Communications at the National Library of Medicine, National Institutes of Health
Description: Intensive 9 week training course in medical informatics in topics such as consumer health informatics, digital library research, World Wide Web applications, database design, medical language processing, image processing research, Next Generation Internet, biomedical knowledge discovery, and medical education systems
Dates of Attendance: Mar. - April, 1998
Training
M101J: MongoDB for Java Developers (Jan - Feb, 2014)
M102: MongoDB for DBAs (Feb - Mar, 2014)
VistA Foundations (Pioneer Data Systems): High level overview of Veterans Health Information Systems and Technology Architecture infrastructure modules (May, 2013)
MUMPS for Programmers (Pioneer Data Systems): Introduction to the MUMPS programming language (June, 2013)
File Manager for Programmers (Pioneer Data Systems): FM file storage, data dictionary, and FM APIs (August, 2013)
Work History
Relevant Professional Experience
IT Specialist
Loma Linda VA Medical Center, Loma Linda, CA
Description: My role is to develop clinical software applications to support patients and providers within the VA enterprise. I work closely with physicians, nurses, administrators, and clinical applications support specialists to develop innovative software solutions to meet the need of challenging health informatics problems. As a developer and co-principle investigator, I have helped our local innovations team to secure six VHA Innovation Grants to develop new clinical applications. In addition to development, I manage and support the applications I create and the servers that host them. At present I administer around 20 RedHat Linux servers,
Dates: 2005-present
Assistant Professor of Computer Science
Southwestern Adventist University, Keene, TX
Description: I taught undergraduate courses in computer science and a few in biology.
Dates: 2000-2005
Courses Taught
- CSIS 105 - Introduction to Computing
- CSIS 110 - Principles of Computer Programming
- CSIS 215 - Object Oriented Programming in Java
- CSIS 301 - Information Security (Practical Unix & Internet Security)
- CSIS 310 - Assembler Programming and Machine Organization
- CSIS 360 - Operating Systems Design
- CSIS 450 - Principles of Database Design
- CSIS 490 - Software Engineering
- CSIS 491 - Fundamentals of Java Programming
- CSIS 495 - Advanced Programming Topics in Java
- CSIS 495 - Programming Web Services in Java
- BIOL 101 - Anatomy and Physiology
- BIOL 380 - Research Methods in Biology
- BIOL 450 - Histology
Freelance Software Developer and Consultant
Description: As a freelance software developer and consultant I have worked with a variety of clients in healthcare and education to develop software applications to solve complex problems. Solutions that I have created as a contract software developer/consultant include: I developed a number of clinical applications for the Veterans Administration and consulted with other healthcare entities; I've created applications for educational institutions for administrators, teachers, and students; I have worked with the American Medical Association's Physicians Accessing the Internet project in teaching physicians the basics of accessing the Internet, using the Web and email in their medical practices, and the basics of Web site design via hands-on workshops in major cities throughout the country; I reviewed several technical exams for Bookman Testing Services, Inc including COM/DCOM, Delphi Programming, and Windows NT Application Development. I also authored a Delphi 4 Programming exam in 1999.
Dates: 1998-present
Portfolio
A representative sample of projects I have worked on or am working on.
- AVS is a a web-based interface that integrates with the VA's VistA EHR to provide a summary of the patient's visit.
- Provides a patient-friendly clinical summary of the visit, including diagnoses, vitals, new orders, upcoming appointments, provider comments/instructions, as well as information pertaining to the patient's ongoing care, including the primary care provider, allergies, and the patient's medication.
- Automatically uploaded as a PDF document to VistA Imaging when the AVS is first printed.
- Approved by the VA Undersecretary for Health to be funded for national deployment.
LLVA CPRS COM Object Framework
- A general-purpose DLL extension that provides for the ability to enhance and extend the VA's Computerized Patient Records System (CPRS).
- COM object-based apps developed as Web applications displayed within COM object dialog.
- COM object client written in Delphi with business logic implemented as Java/JEE.
- Approved for VA IT Region 1 use and is used by several VA facilities within Region 1.
- Hosted COM object apps include Patient Code Status Verification, Infectious Organism Alert, Medication Reconciliation, Patient Vesting, Patient Eligibility, Patient Insurance, TIDES Depression Assessment, Unsigned Notes Notification, Combat Veteran Notification, Clinical Supervision Index.
- Provides surgery staff a real-time display of a day’s scheduled surgical procedures.
- Replaces the daily white board schedule of operations.
- Displays an entire day’s cases on a single screen allowing users to view all of the day’s surgeries at a glance.
- Used by multiple VA facilities nationally.
VA Automated Telephony Appointment Cancellation System (VA ATACS)
- An automated interactive voice response (IVR) telephony system that gives patients the option to cancel appointments.
- Patients can request callbacks from clinic staff members to reschedule cancelled appointments.
- Allows veterans to proactively cancel any individual appointment or all of their appointments for a specific day at their convenience 24/7.
- To date, over 50,000 appointments have been cancelled by patients calling in to the system.
- This system provides advance notice to the clinics of cancelled appointments and makes available the open appointments for other patients resulting in a positive impact on our "no show" rates.
- Used by multiple VA facilities nationally.
Medication Reconciliation
Clinical Supervision Index
Anticoag HealthTrack/TeleModule
Developed Anticoag HealthTrack, a sophisticated anticoagulation management system, to provide healthcare professionals with all the necessary tools to comprehensively manage anticoagulation patients including target INRs, indications, adverse events, risk factors, INR histories, progress notes, and result graphs. Also developed TeleModule, a fully scriptable telephony application that allows patients to phone in self-tested lab results. By automating patient scheduling and physician alerts for lab values that are out of normal range, the application saves labor costs and allows for improved monitoring of anticoag patients with an overall improvement in patient care.VA AppServer
Architected and developed a powerful and robust enterprise application server, written in Java. The application server features an application manager, session manager, audit/logging, database manager, and presentation manager with connectivity via HTTP and Java servlets or sockets and Web services protocols (SOAP, WSDL). The AppServer hosts the middleware business and data access logic for many applications within the VA.Orders Viewer
- The Orders Viewer is a Web-based application that retrieves orders for all patients associated with specific inpatient and/or outpatient locations.
- The user can opt to retrieve all orders or only "Return to Clinic" orders, and can filter the orders by status so that only incomplete/unverified orders.
- The orders may be processed by ward/clinic staff within the Orders Viewer to complete/verify orders.
JavaHL7
Developed JavaHL7, an extensive and powerful object-oriented Java HL7 2.x parser. This library is used with several other VA projects, including CP/HL7 DataGateway and Bed Management System.- VA CopyFind is software that allows users to review copy/paste instances in CPRS progress notes that have been identified from documents extracted from TIU and compared by a document comparison algorithm.
- The Web-based interface allows each user to step through the pairs of “original” and “recipient” document pairs and score each instance for risk severity and the classification of information that was duplicated.
CPRS CCR/CCD Capabilities
Customized the FOIA version of the VA’s CPRS for EHR Doctors, Inc. to allow providers to copy/paste CCR/CCD documents into a plain text TIU note via the Notes tab interface of CPRS. The modifications allow for the CCR/CCD XML data to be displayed as HTML in an embedded Web browser.eForms Document Signing System
Developed a Web-based electronic document review and signing system for Kettering College that allows students to electronically sign documents and forms, and administrators to add and modify documents in the system and view reports. Written in Java J2EE and JSP and hosted on JBoss AS.Academic Dashboard
Online MugBook
VA/DoD eHealthRec
Lead developer for the eHealthRec software initiative for the Office of the Chief, Army Reserve (OCAR) and Veterans Administration (VA). This project involves providing electronic versions of medical record forms for the active duty reservist and storing the data into the VA electronic medical record. The system is written in Java and Delphi and based on Web services technologies and protocols (XML, SOAP, WSDL).VA Report Wizard™
Designed and developed VA Report Wizard™, a medical discharge summary application for physicians and nurses at a VA hospital that significantly reduces labor by automating data entry and document generation. By eliminating the need for dictation services or other costly transcription services, the application has saved the hospital hundreds of thousands of dollars and has improved the quality of patient care by saving important patient information in electronic format so that physicians in VA hospitals across the nation can easily view patient discharge summary information.VA DataGateway™
Developed VA DataGateway™, software that provides a data link for third-party databases to the proprietary medical records system of a VA hospital. This software is used to upload thousands of medical records from third-party sources, such as Helix and MS SQL Server, to the hospital's database system. The software is used to automatically bring valuable clinical patient data to the physicians desktop computer where they had previously relied on phone and fax to retrieve this information.Ongoing Research Support
Veterans Assessment and Improvement Laboratory
The After Visit Summary: Patient-Centered Communication for PACT patients.
- This study will assess patient satisfaction and usability of the After Visit Summary (AVS), a tool designed to provide patients with a clinical summary of outpatient appointments.
- Role: Developer
Brief Resident Supervision Index: A Computerized Solution to Measuring Supervision of Veterans Affairs Physician Resident Trainees
- This Greenfield Innovation Initiative was designed to develop and test software that collected electronically information from VHA’s electronic medical record and survey data administered to trainees and their clinical supervisors.
- Role: Developer
Completed Research Support
Resident Supervision Index: Assessing Feasibility and Validity
- The study the feasibility and reliability of the Resident Supervision Index, a survey tool designed to quantitatively measure trainee supervision.
- Role: Developer
LLVA Inpatient Medication Reconciliation COM Object
- This VHA Innovation provides a Component Object Model based tool that is invoked at patient selection of a newly admitted inpatient for the purpose of documenting medication reconciliation.
- Role: Developer
Automated Clinic Checkout Tool: The After Visit Summary
- This VHA Innovation was designed to develop a clinical summary for patients after outpatient appointments by populating it automatically with data from VistA/CPRS.
- Role: Developer
LLVA VistAForms (aka "iForms") Development Framework
- This VHA Innovation developed the framework for a Component Object Model (COM) based template generator for the purpose of providing informatics staff a more robust template design tool in CPRS.
- Role: Co-PI and Developer
Improving Diabetes Outcomes Using Intellinote
- This VHA Innovation developed a note template for the care of diabetes patients that provides guideline based decision support based on the patients' conditions, medications and treatment goals.
- Role: Developer and Project Manager
Software Development and Consulting
Custom software development and programming services.
- Java/JEE application development
- Database design and programming(SQL and "NoSQL")
- Web and digital services
- User-experience design
- Desktop applications
- CPRS/VistA development and interfacing
- Mobile Web applications
- Scientific apps that perform complex analysis and charting
- Data munging/wrangling
- Systems integration
- Proprietary instrument interfacing