$process-message response format


On the FHIR site, it says:
The response content type returned is always Bundle with type “message” containing a MessageHeader resource as the first resource, or an HTTP error

But then on the page, it later says:
The server acknowledges the message with a 200 OK with no body

The example on the page aligns with the latter.

Can anyone advise on the standard format for the response? Should it really always be a Bundle with a MessageHeader resource? Also Bundle type “transaction-response” seems more appropriate than “message”.


The 200 OK with no body is when $process_message is invoked asynchronously (e.g. https://www.hl7.org/fhir/messageheader-operation-process-message.html#examples) and from this page (http://www.hl7.org/implement/standards/fhir/messaging.html#async), asynchronous messaging is defined as follows:

"In Asynchronous messaging, the server acknowledges receipt of the message immediately, and responds to the sender separately. The server may respond more than once to any given message. "

The “the server acknowledges receipt of the message immediately” part is the 200 OK with no body,

the “responds to the sender separately” part then happens and the response message if of the form:

" The destination application processes the request and returns one or more response messages which are also a bundle of resources identified by the type “message”, with the first resource in each bundle being a MessageHeader resource with a response section that reports the outcome of processing the message and any additional response resources required."

See this link for more about FHIR Messaging: http://www.hl7.org/implement/standards/fhir/messaging.html#patterns

1 Like