Convert your FHIR JSON -> XML and back here. The CDA Book is sometimes listed for Kindle here and it is also SHIPPING from Amazon! See here for Errata.

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.