Written by

Sr Application Development Analyst at The Ohio State University Wexner Medical Center
Question Scott Roth · May 13

Outbound HL7 HTTP Messaging - Unsupported Media Type

We are attempting to send HL7 messages over to CBOARD NetMenu over HTTP using SSL. We set this up using the EnsLib.HL7.Operation.HTTPOperation adapter. When we attempt to send the message we are receiving 

MSH|^~\&|||DIETOE|A6M0|202505131437||ACK^HTTP^415|00|P|2.1 MSA|AE|9165602|HTTP (N)ACK 'HTTP/1.1 415 Unsupported Media Type'

The vendor mentioned something about putting a SOAP/XML wrapper around the HL7 message but isn't that what the HTTPOperation adapter does? Why would we be getting Unsupported Media Type. How would we go about setting the Media Type for the HTTP HL7 message?

This is the first time we have attempted to send messages out via a HL7 HTTP Operation.

Thanks

Scott

$ZV: IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2024.1 (Build 267_2U) Tue Apr 30 2024 16:06:39 EDT [HealthConnect:3.5.0-1.m1]

Comments

Marc Mundt · May 13

Many systems that send HL7 over HTTP use very simple requests -- they just send the raw HTML as the HTTP request body. There's no SOAP layer on top. This is the approach that EnsLib.HL7.Operation.HTTPOperation uses.

HTTP docs say that 415 could indicate that the content-type header is specifying a content type that the receiving system doesn't like. Assuming the recipient doesn't actually need SOAP, if you can find out what content type they are looking for, you can change this in the Business Operation settings under Additional Settings/ContentType.

If the receiving system really does need a SOAP call you can look at EnsLib.HL7.Operation.SOAPOperation. I haven't seen this in use so I don't know the details but it might be worth a try.

0
Scott Roth  May 14 to Marc Mundt

After talking with the vendor, they mentioned they had a .wsdl that could be used to send the HL7 message via a SOAP connection. I took the wsdl and ran it through the SOAP wizard to create the basic classes. Now we are waiting on a firewall request to allow us to communicate with the vendor over port 443.

0
Ashok Kumar T · May 13

Maybe can you try to wrap the HL7 message like below format and set the ContentType As "application/xml"  in additional setting in the Business operation "EnsLib.HL7.Operation.HTTPOperation" and check for the response headers as well if required.

<?xml version="1.0" encoding="UTF-8"?><HL7Message>
<![CDATA[
MSH|^~\&|... your message ...
PID|... etc ...
]]>
</HL7Message>
0
Enrico Parisi · May 13

Maybe you are sending the HTTP request using an incorrect Content-Type HTTP header?

Check what Content-Type HTTP header the receiving end is expecting.

0