Friday, September 17, 2010

Wherein I promise not to practice medicine

This article from Mass Device is too good to pass up commenting on.  Having someone start a discussion about computer science that is not a computer scientist is always interesting... 
Blumenthal said. "There is a raging debate in the computer science world, which I have only lifted the lid on because I'm not a computer scientist, but it goes basically like this: Do we want a world where somebody sets very detailed standards for what computers have to do in order to create interoperability? Or do we want a world that's a little bit more like the Internet, where a minimal set of standards was created and an enormous, vibrant competition and spontaneous growth occurred?"
Citing the analogy that "you build the interstate highway, but you don't regulate what drives on it," Blumenthal admitted that the debate has not yet been settled.
"I hear both sides of that argument, constantly, and even those people who believe in the minimal set of standards aren't really sure what that minimal set is, but we're working on precisely that," he said.
Hmm, raging debate. Where is this raging debate I'd like to know. I haven't seen it on the Interweb.
I'm a computer scientist by profession and training, so I can speak to these comments.

Let's look at a web page (he did say the Internet, right).

First you need the standard for the content.  Right now we have a number of choices:  HTML, XHTML, or PDF, all with minor variations.  Let's say we picked XHTML because it has a X in it and is based on XML, which has to be good right?  OK, so you did that.  That just pulled in XML.  The character encoding that  XML parsers must support include UTF-16 and UTF-8, so now we have to pull in those two standards.  And these are encodings of Unicode, yet anther standard.  That's 5 standards and we haven't gotten beyond content.

Oh, you want it to look pretty?  There are three different versions of CSS you can provide.

What, you want it to be interactive?  For that there's EcmaScript (JavaScript), with several browser variations, and also VBScript (not really a standard), but you get the point.

OK, so now we have interactive content.  You want to use REST right?  That's not really a standard, but it probably means that your interactive web page now needs something like JSON, yeah?  No?  Yeah!

Now, this needs to be communicated, so we need transport.  Let's use HTTP.  Sure, that's cool.  OK, now what.  Well, HTTP needs a network, let's use TCP, which is going to pull in IP.  Now, how are you going to physically connect?  Wired?     Wireless.  Well, there's the whole family of standards underneath that, 802.11 and all the rest.  Oh, and content descriptions and packaging, we should use MIME for that.

You need to secure it.  TLS for sure, or maybe just HTTPS.  Where's your certificate?  X.509, right?  Sure.  What format is that going to be sent/stored in?  PEM?  PKCS12?  Java JKS?  What standards are you going to use to identify providers and purposes?  ASTM E2212.

That's thirteen choices for standards and I could go on.  If that is a minimal set, then I've misunderstood the concept of minimal.  It certainly illustrates the problem that we face in healthcare  though.

Let's talk about time and wasted effort.  The Internet and these standards did not appear overnight.  When I came to Boston in 1992 I worked for a company that used DECNET.  It was over Ethernet and used TCP/IP mostly by the time I was using it.  DECNET disappeared.  Before that I used to manage a computer service company and before that a Service department at a Computerland.  Remember NETWARE?  I could run that over RG-58 (Thin Ethernet), RG-59 (Arcnet), Ethernet, Twisted Pair, and Token Ring.  All those are gone by the wayside.

The first "public" web page was developed in 1992.  The HTTP Protocol was standardized in 1995.  SSL was standardized around 1994.  E-mail was standardized in 1982, although those standards didn't really take off until much later.  There's a lot of other standards that were developed in the years before that and since then.  The Internet didn't show up overnight, and it wasn't invented by one person, or one standards organization even.

We've got 7 layers in the ISO model, but it appears that a good bit of this discussion is above that in Layer 8 (Politics), or Layer 9 (Religion).

I have an interesting philosophy about religious debates (flame wars) with respect to technical topics.  Taking sides is about as useful as saying you are a democrat or a republican (even though I favor the former).  You really have to look at BOTH sides of the issue to understand what is going on.

I promise not to practice medicine, I hope Dr. Blumenthal will make a similar promise not to practice engineering.


  1. So, where is the ONE document I can go and read all this? Don't I need to read lots of documents? Are all these documents found in one place?
    Most of the networking you bring up are common with healthcare... so need to stick above HTTP with your anology. I think you cut short all the standards it takes to put a web-page together.
    How does one authenticate to a web-server?
    How do you support mobile-phones, and desktops?
    What about ActiveX?
    What about flash, silverlight, quicktime, etc?

    Why is HTML now at 5 versions? I thought that it was simple? HTML5 is 596 pages long, the table of contents is 10 pages long. There are 113 external references, only 19 are non-normative.

  2. I did say I could go on, but you do make the point. The Internet is 50 years of effort (coming out of DARPA in the 1960s) and there's a lot of work that went into it. Most of the standards we work with now are at least into their 3rd edition, version or revision.

  3. Healthcare adds complexities that require more standards. For example, there are standards that enable plugging a computer into the wall, noting that special electrical standards are needed for hospitals. Similarly, there are standards for computer display screens and special standards if you are viewing medical images. And so on.

  4. As someone once said, the wonderful thing about standards is that there are so gosh-darn many of them!

    Both Glen, John, and yourself have years of experience (and without blowing sunshine up your respective posteriors, are some of the smartest folks that I know).

    I feel for Mr. Blumenthal, really I do. Behind his somewhat naive assessment is the plaintive wish of CEO's everywhere - "can't it just be simple??"

    Unfortunately, the answer is NO, particularly if one hopes for interoperability and re-usability.

  5. I think he's really thinking more about NHIN v NHIN Direct

  6. One of the keys to success for the Internet was that it was humble, and it had humble goals. It had one primary simple goal. Data would go from here to there and arrive intact. Nothing was said about process, use, purpose, or administrative rules. It defined minimal data formats and reliable data delivery between any endpoints. All endpoints and all traffic was equal. That was it.

    Even at that, my 1982 NCP->TCP transition guide is a few inches thick with standards content. It was a very simple goal to state, and a very humble goal, but not a simple thing to implement.

    EHRs do not yet have such humble and simple expectations. Perhaps humility comes with time and experience.

    Examples of successful standardization efforts that have been humble are ASCII, C, Fortran, TCP/IP, 802.3, ... None of those had hype. None of these had huge organizations. They were all humble "we do this small thing well" solutions. They were used because people wanted to use that small thing done right.

    The love of fancy tools is a diversion that depresses me. It reminds my of my experiences with CAD/CAM and the automotive industry.

    The big US car company came to us with a plan to buy $2 billion of the world's best robots for making cars. The big Japanese car company came with a plan to spend $1 billion making the best improvements to their automobile design and manufacturing facilities. The US got $2 billion of great robots. The Japanese got great automobile manufacturing.

    Automated specifications are like robots. They are not inherently useful. They might be part of a useful system improvement.