Part 1 of a three-part series of articles written by a
veteran software developer who has worked extensively in the EMR
industry. The article series is published on his behalf. His comments
are directed broadly at the industry. Read Part 2
I have been a software developer for over 25 years and have worked in a number of industries, making use of new technology to create leading edge software systems. I started off in university headed to Med School, but switched to Computer Science when I found I could get much higher marks, with much less work, in programming courses. So a few years ago when I started working at an EMR company, I felt that I could really contribute to enhancing the software. I have worked for a number of EMR companies throughout my career and these are my observations and recommendations. What I have observed in the EMR software industry is a wide range of weaknesses and deficiencies.
Areas of deficiency include:
- Software design
- User interface design
- Quality assurance, and
- Design principles that do not encourage safety
There are over 350 EMR companies in the U.S., but only a handful in Canada. Some of the U.S. companies offer very sophisticated software. It is my belief that it won’t be long before the U.S. companies realize the weaknesses in the Canadian EMR landscape and make a move into the market.
The Anatomy of an EMR System
There are three or four components to an EMR system: the database, the client, the EDT interface, and, in the case of web-based EMR systems, the Web Server.
A database is simply where you store data. The standard database used is the Entity Relationship (ER) model. In these databases data is stored tables (Entity) with links between tables (Relations). SQL is the language used to retrieve data from tables and update the data in the tables. These databases are now generally referred to as SQL databases. The structure of the database, the tables, and relationships between tables is called the Schema.
The Client is what the user interacts with; this could be a desktop application or a web application (a website viewed in a web browser). Some people refer to the desktop application as a thick client and the web application as a thin client. Usually a desktop application is more interactive than a web application. However, with the capabilities of today’s web browsers, that difference is becoming less. The only real difference is that a desktop application has to be installed on each system, whereas a web application need only to have a single install on a web server.
The Electronic Data Transmission (EDT) Interface
The EDT interface is where the EMR system exchanges data with remote systems as well as other applications, medical devices, and local systems. Most of this data is in HL7 format, but there are also XML files, text files, binary files, and custom formats. How the EMR talks to other systems varies considerably. Each interface seems to have its own standard, and there are device interfaces, laboratory interfaces, hospital interfaces, local and regional interfaces, and provincial interfaces. Even when the data is in HL7 format, there are many different versions. In some cases, custom code has to be written to parse HL7 files from different sources. EMR companies frequently have a team that does nothing but write and update the EDT code to handle new and changing interfaces.
The second article will focus on the current state of EMRs from a developer’s perspective. Read Part 2