Work is piling up faster than expected this summer, but I am not complaining. However, it has cut down on the time I have to write posts. Generally, summer is a time to explore new ideas and topics, especially if they require a lot of reading. As it happens, this summer is proving to be special because it marks the completion of a mini-curriculum of software engineering and mathematics initiated when I began blogging. I have learned a lot–far more than I expected in my wildest dreams.
Having finished the mini-curriculum, now it is time to apply what has been learned, and to learn even more. Five themes are woven through most posts that I have written: the need for formal theories in clinical informatics, the need for new ways of conceptualizing clinical care software, discrete mathematics, clinical workflow, and my stab at an Internet startup. The response to some series has been so positive that I am considering turning them into e-books. There is no specific timeframe yet, but I hope to make the final decisions by the end of July concerning what will be expanded and made available.
On the theory front, math is growing in importance, so I have doubled-down on math reading for the summer. In the spirit of “practice makes perfect,” two math books have been selected to refine my math skills. How to Prove It: Second Edition (Velleman) and An Introduction to Mathematical Reasoning (Eccles) were chosen because they are quite readable and have plenty of practice exercises. Having looked over both, Velleman seems best for additional practice doing proofs (it has 200 more exercises than the first edition). Eccles seems better for acclimatizing oneself to mathematical writing (it makes me spend more time translating math symbols into English). Both emphasize the aspects of discrete math that I believe have the most value for describing clinical informatics; namely, logic, functions/relations, and sets. Graphs are missing, but you can’t have it all.
Along with the math reading, a couple of classic informatics articles are on the list. Originally published in 2002, Medical Informatics: Searching for Underlying Components, by Musen and van Bemmel, addresses the key issues I am wrestling with in my theory quest. For the same reason, Medical Informatics as a Discipline in the 21st Century made the cut.
NIST publications are always worth reading. Unfortunately, time pressures have prevented my dissecting the report, Integrating Electronic Health Records into Clinical Workflow: An Application of Human Factors Modeling Methods to Ambulatory Care, released this spring. Next-generation clinical care software must take human factors and workflows into account. Thus, works like this are invaluable for those researching new designs. AHRQ and NIST have been turning out great design information in the last few years. I hope they can continue.
Patterns are one of the best discoveries I have come across. They make so much sense when trying to understand complex systems. The last two items on my reading list reflect the value I have come to place on patterns. Both books were serendipitous finds stumbled upon during aimless wanderings through Google (yak shaving with a touch of Lynde hopping**). Usually, I find resources like these in years-old posts on an obscure forum that is only glancingly-related to whatever I began searching for. No matter, I am always glad for a new find. Software Requirement Patterns, by Stephen Withall, takes the miserably boring topic of requirements and makes it more manageable, interesting, and logical. Gathering, organizing, and managing requirements are essential for software development. It is a soft skill of sorts that some people are better at than others. The pattern-based approach provides a way of looking at the entire activity in a more coherent and logical manner—glad I found it.
Pattern-oriented Software Architecture for Dummies, by Hammer, was another unexpected find. I have a few really good Dummies books, but they are never my first choice for a complex topic. Software architecture, like requirements, is an important topic that can be hard to read about without dozing off. Like requirements, it is also essential for software development. Last year, I perused a few books on software architecture and finally settled on the book by Bass. Bass is a great book, but Hammer’s book is less philosophical, less abstract and more practical. It reminds me of books I used in med school that covered the subject, but with many fewer words than the official textbook (Lange series anyone?). If you want to know about software architecture and you are not a software design professional (or even if you are) try Hammer’s book; it is a great introduction to the field.
Well, that is my reading list for the summer. See you next week…
** Lynde hopping – a way of wasting time looking for trivia. The term arose from an afternoon spent trying to find the name of the uncle from Bewitched (Paul Lynde) then determining if he was still alive. I found a picture of his gravesite and now know where he is buried, which oddly enough, has not improved the quality of my life. I know, I know…