Welcome to EHR Science!
I have been looking forward to launching this blog for about a year. My eagerness to start blogging is not due to an urgent need to share my opinions, but more so because I hope to connect with others who are drawn to the exciting challenges that have arisen at the intersection of computing and biomedicine.
I learned the rudiments of programming in college using FORTRAN. Once I had run a few jobs I was hooked. Computing became a creative outlet and a way to play with ideas and concepts. Over the years, I developed a tendency to see computing challenges in many areas of medicine. My fascination with immunology ultimately led to experiments with artificial immune systems and the creation of a home-grown classification system. Later, work with genetic algorithms and artificial neural networks convinced me that biological systems are uber-computational systems with beautiful algorithms awaiting discovery.
Clinical medicine has also provided me with interesting computational problems. The four years I spent on the EHR project at the University of Alabama–Birmingham introduced me to an assortment of informatics challenges. At least one year was spent just on data modeling and data migration planning. Finding the best data structures for drug information algorithms took about three months. Creating a flexible workflow mechanism was also harder than expected. As a result, the final system has no workflow engine. The EHR works well, but has fewer features than I had originally envisioned. When it comes to software, it is often easier to imagine than it is to do. Version 1.0 of the 1917 Clinic Computer-based Patient Record went live in 2004 and remains in use. To my dismay, when I left the project I had more questions about clinical algorithms and EHR design than I had when I started. For the ensuing six years, I turned my attention to running a business and did very little programming. However, those questions stayed with me and I never completely gave up on answering them. Last June (2010) I had a breakthrough.
While doing background research for a paper on clinical workflow modeling, I came across a great book by Wil van der Aalst and Kees van Hee, titled Workflow Management: Models, Methods, and Systems. It offers a great review of workflow research and the appendices are particularly helpful. While trying to make sense of the workflow theory material in the appendix (directed graphs and such), I realized that I did not have the math background required to understand the discussion fully. (Like most doctors, I studied calculus and biostatistics, but not math specifically for computing.) A few weeks later, I stumbled across this blog post about math for software developers. Reading this post led me to investigate discrete mathematics, which was exactly the tool I needed to address those leftover questions from 2004.
Now that I am learning discrete math, the idea of revisiting past EHR design challenges is proving to be irresistible. It also helps that HITECH has significantly raised the profile of EHRs and made EHR design/architecture a hot topic. This time around, things will be different; my ability to analyze and understand algorithms is rapidly improving and current development tools are far better than before. For example, in late 1999 when the EHR project plans were being finalized, the XML 1.0 spec was less than two years old; C#/.NET, the main development platform used in the project, was just approaching its beta release; and the only safe options for data management were relational databases. Today, objected-oriented databases are a viable storage option and, thanks to O/R mappers, using OOP languages with relational databases is much easier. Likewise, open source development environments provide high-quality programming tools, while practical information on OOP/ OOAD is more readily available than it was 11 years ago. I have a win-win situation here. Even If I don’t manage to solve any key problems, I will have loads of fun playing with all the new toys!
For me, much of the fun of writing code and trying new technologies comes from sharing those experiences with kindred spirits. I want this blog to be a place where anyone interested in the design and use of clinical systems can hang out, ask questions, learn and share. I am eagerly looking forward to learning new languages, exploring software architectures and honing my math skills. Please stop by and leave tips, suggestions, comments or just to shoot the breeze. (Does anyone even say this anymore?)
I look forward to hearing from you.