3

We've encountered something we haven't seen before. Looking through the HL7 documentation/standards has left me scratching my head.

We are sending in a standard outbound report message (ORU^R01). It contains MSH, PID, OBR, and OBX segments. In all other cases where we've implemented our system, we get back an acknowledgement that looks like this:

MSH|^~\&|PRODUCTNAME|DESTINATION|^P||YYYYMMDDHHMMSS||ACK|MESSAGEID|T|2.5\ MSA|AA|MESSAGEID|ACK

However, there is a new system that is returning this:

MSH|^~\&|PRODUCTNAME|DESTINATION|^P||YYYYMMDDHHMMSS||ORU^R01|MESSAGEID|T|2.5\
MSA|AA|MESSAGEID|ACK

Notice MSH-9 in the ack. It isn't ACK it is the ORU^R01. Now, we use HAPI to process HL7 messages and it doesn't like this response. I can't tell if this conforms to the HL7 spec (2.5).

Any ideas?

LMC
  • 10,453
  • 2
  • 27
  • 52
Mike Dee
  • 558
  • 1
  • 5
  • 13
  • Seems possible as suggested [here](http://healthstandards.com/blog/2007/09/10/variations-of-the-hl7-orur01-message-format/). Also, [here](https://www.hl7.org/documentcenter/public_temp_CF2686DE-1C23-BA17-0C8871892459D70D/wg/conf/HL7MSH.htm), **R01** is described as > R01 ORU/ACK - Unsolicited transmission of an observation message. So ORU^R01 acts as an ACK too. – LMC Jun 18 '18 at 21:14
  • My (limited) understanding is, that this ORU/ACK in the table actually means that you send out and `ORU^R01` message and the acknowledgment is supposed to be `ACK^R01` for this. It wouldn't make sense to have to have the same MSH-9 value for both original message and acknowledgment - how would a message processor now based on the header whether it's an inbound report or acknowledgement for a previously sent outbound report? – Tarmo R Jun 19 '18 at 06:17

1 Answers1

2

To expand on my previous comment, I read the HL7 v2.5 standard a little bit.

According to my understanding the MSH-9 field contains three components defines as follows:

Components: <Message Code (ID)> ^ <Trigger Event (ID)> ^ <Message Structure (ID)>

Each of those has a corresponding table of legal values: HL7 Table 0076 - Message type, HL7 Table 0003 - Event type and HL7 Table 0354 - Message structure.

Looking at these tables, I would say that an ORU message should have an MSH-9 value of ORU^R01^ORU_R01and an acknowledgement should be ACK^R01^ACK.

Therefore the new system seems to be breaking the standard and HAPI is right to reject it, if it tries to validate the message against the standard.

The main point here is, that the receiving application should be able to decide, where to route and what to do with the message only looking at the MSH fields, without going in to following segments. Therefore you cannot put into the acknowledgment message the exact same MSH that the incoming message had, because it would not identify then the header does not match the message structure.

I mainly referenced HL7 Standard version 2.5 Chapter 2 for this answer.

Tarmo R
  • 1,123
  • 7
  • 15