8 ms·
> The most commonly used protocol is called HL7 – a gargantuan protocol with many variants. In the real world, no two institutions use the exact same implementa
by chimeracoder 12y ago
> The most commonly used protocol is called HL7 – a gargantuan protocol with many variants. In the real world, no two institutions use the exact same implementation of HL7. Most systems in the US use one of the 2.x versions, which are pipe delimitted, prone to error, and not human-readable.
This understates how awful HL7 is. It's true that it's a non-standard "standard" (the only common thing about it between implementations is the name). Many implementations are both pipe-delimited and fixed-width, which makes generating a valid HL7 message for a single client absolute hell. Multiple clients? You might as well start from scratch each time. (And people wonder why innovation in health tech is so slow...).
I remember one brainstorming meeting I had with the CIO of a major, reputable hospital. I casually made some reference to setting up a webserver to receive HTTPS requests. I will never forget his expression. He sheepishly informed me that no, they can't use HTTP (even with SSL). Instead, the process involves creating a dedicated tunnel, setting up a tcp connection within the tunnel, and then reading each "chunk" of data off the wire. Each datum comprises a variable number of packets[0], so you essentially have to buffer the stream manually so you can virtually "push" packets back on the stream if it turns out you weren't supposed to read them.[1]
This is not a dig at the CIO; he clearly knew what he was doing. Unfortunately, he also knew the state of the systems he had to maintain internally, as well as the external ones he had to interoperate with, and the realities of what was feasible and what was not.
[0] If you're having trouble picturing what I'm saying, imagine you're in a foreign city and ask someone which bus stop you need to get off at. He responds, "Watch which stop I get off at, and you want the one four stops before that"
[1] Now imagine doing this with broken Unicode implementations!
- angersock 12y agoHL7 is an abomination, and everyone involved in getting it into place and standardizing on a transport format and not a data or semantic layout should be punched in the face.