In the Gone Fishing post, I alluded to working on a theory of informatics of sorts. Theory may not have been the best term to describe my goal. Those who have been following the blog have undoubtedly noticed that I am interested in getting at the computational and mathematical aspects of clinical informatics, and by extension, clinical medicine. The Informaticist-Programmer Interface post is an example of my thinking in this area. The ultimate question, at least for me, is whether the computational properties of problem lists, workflows, and other clinical informatics constructs represent some underlying truth or structure in clinical information that can be described mathematically and rendered algorithmically in software. This is what I meant by “working on a theory.”
Workflows can be expressed with high fidelity using directed graphs, so obviously a mathematical treatment for clinical processes is possible. The challenge lies in determining whether the directed graph of a clinical process has any higher-level meaning in clinical medicine/informatics aside from the specific process it encodes. Put another way, might the mathematical analysis of directed graphs of clinical processes yield information about the nature of clinical processes beyond the obvious representation of the steps those processes consist of? I am not a mathematician by any stretch of the imagination, but I am convinced that graph theory holds the key to bringing mathematics into clinical informatics/medicine. With this in mind, I will focus on Petri nets for the next few months as I gradually delve deeper into directed graphs.
A second line of inquiry emphasizes dissection of the computational properties of clinical informatics constructs—an approach touched on in the Informaticist-Programmer Interface post. Here, the idea is to attempt to discover all the properties of clinical informatics constructs such as the problem list, medication list, review of systems, lab values, etc. in order to determine if there are data structures or algorithms that are best suited to each, and why.
My view of clinical systems is changing because of my investigations. Currently, electronic health record systems are considered to be an organized, longitudinal store of clinical data (ASTM) or an information system that provides a select group of functions to support healthcare data management needs (HL7 Functional model). While these views are useful for building information system products, they both ignore the mathematical and algorithmic properties that potentially underlie clinical systems. In doing so, they may be obscuring the scientific principles on which clinical informatics ultimately rests. Perhaps, for the sake of avoiding confusion, we need new terms to describe research into the mathematical and algorithm aspects of clinical informatics/information systems. I’ve grown fond of the terms clinical algebra and clinical algorithmics, respectively; you’ll likely see them in future posts.
Software architecture and design claimed their fair-share of my time this summer. Learning OOP, especially for software design, has to be hands-on. OOP is far harder than it looks, and knowing about classes, inheritance, and polymorphism is only a small part of understanding OO software design. There is only so much one can grasp about design patterns, dependency injection, interfaces, etc. without building something; spending hours wondering why it doesn’t work; yelling; and finally seeing the light. For me, this process has taken the form of a series of simple model-view-controller web applications. Happily, I’ve built a few test apps that have moved my learning along quite nicely. Starting this week, work will begin on the first public-facing application—a sort of senior project—that I hope will launch this fall.
A major goal for the summer was to redesign my business site. It required less time than expected, and I really like the way it turned out. Take a peek—InformaticsSquared.com.
For the first two months they were up, the resource pages (General Resources, Adoption & Implementation, Usability, and Security) were completely ignored by most site visitors. However, over the last few weeks they have become quite popular. The August updates are in place, and the update cycle will remain at four-week intervals.
Well, that’s how I spent my summer vacation, and I hope yours was enjoyable as well. As always, if you wish to contact me for anything besides comments on posts, please use the contact form.