We’ve used an internal instance of the TL7 server to process almost 55,000 HL7 requests. Some of those requests were basic “hey, let’s make sure this works” ad-hoc requests, but the vast majority were in support of testing a Pharmacy point-of-service application.
Here’s a visualization of the distribution of these HL7 request messages:
What does this tell us? First, about 65% the request volume that the server has processed came from one of four request types:
- Find candidates (look up a person in the client registry);
- Dispense prescription;
- Add a person to the client registry if they don’t already exist; and
- Get the person’s full demographic record (names, addresses, telephone numbers, etc.)
Knowing what I know about the system in question, it makes sense to me that those are going to be the most-commonly used interactions. Nonetheless, it’s interesting to me that of the four most commonly used interactions, three of them are not specific to the pharmacy business domain.
It also clearly suggests that a jurisdictional implementation probably needs to focus performance tuning in the client registry system.
The “second tier” messages make up another 12%:
- Retract pharmacy action (e.g. retract a prescription dispense, retract the creation of a note, etc.)
- Query the client’s medication profile summary
- Record that a client has been prescribed medication (most jurisdictions won’t have doctors online in the early stages)
- Record that the client has picked up a prescription
Assuming that other systems are similar: that’s over 3/4s of the message volume accounted for with only eight request types. I confess that that surprised me to see.