web stats
Issues with HL7 ACK Sending Via Web Service Sender - Mirth Community

Go Back   Mirth Community > Mirth Connect > Support

Reply
 
Thread Tools Display Modes
  #1  
Old 09-24-2013, 01:53 PM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default Issues with HL7 ACK Sending Via Web Service Sender

I'm attempting to send an hl7 Acknowledgement message to Quest Diagnostics using a web service sender. I have constructed a message based off of their documentation:

Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:res="http://medplus.com/results">
	<soapenv:Header/>
	<soapenv:Body>
		<res:acknowledgeResults>
			<res:RetrieveResultsAcknowledge>
				<ackMessages>
					<controlId>${controlID}</controlId>
					<message>${EncodedACK}</message>
				</ackMessages>
				<requestId>${requestID}</requestId>
				<resultServiceType>hl7</resultServiceType>
			</res:RetrieveResultsAcknowledge>
		</res:acknowledgeResults>
	</soapenv:Body>
</soapenv:Envelope>
And that gives me this error:

Code:
[2013-09-24 16:30:33,672]  ERROR (org.mule.impl.DefaultComponentExceptionStrategy:95): Caught exception in Exception Strategy for: db06e168-2da1-4aa6-a323-9a69a38e5a2b: java.lang.Exception: javax.xml.ws.soap.SOAPFaultException: Exception during processing: javax.xml.soap.SOAPException: Found SOAPElement [<res:RetrieveResultsAcknowledge>
	<ackMessages xmlns="">
	<controlId>80000000000000058558</controlId>
	<message>TVNIfF5+JnxMQUJ8REFMfHwxODMxN3wyMDEzMDQwNTE4MTI0MXx8QUNLfDgwMDAwMDAwMDAwMDAwMDU4NTU4fER8Mi4zLjENTVNBfENBfDgwMDAwMDAwMDAwMDAwMDU4NTU4DQ==</message>
	</ackMessages>
	<requestId xmlns="">51aa490e0a801e160fa1c2629aa90f0b</requestId>
	<resultServiceType xmlns="">hl7</resultServiceType>
	</res:RetrieveResultsAcknowledge>]. But was not able to find a Part that is registered with this Message which corresponds to this SOAPElement. The name of the element should be one of these[requestId,acknowledgeMessages] (see Fault Detail for stacktrace) 
	
java.lang.Exception: javax.xml.ws.soap.SOAPFaultException: Exception during processing: javax.xml.soap.SOAPException: Found SOAPElement [<res:RetrieveResultsAcknowledge>
	<ackMessages xmlns="">
	<controlId>80000000000000058558</controlId>
	<message>TVNIfF5+JnxMQUJ8REFMfHwxODMxN3wyMDEzMDQwNTE4MTI0MXx8QUNLfDgwMDAwMDAwMDAwMDAwMDU4NTU4fER8Mi4zLjENTVNBfENBfDgwMDAwMDAwMDAwMDAwMDU4NTU4DQ==</message>
	</ackMessages>
	<requestId xmlns="">51aa490e0a801e160fa1c2629aa90f0b</requestId>
	<resultServiceType xmlns="">hl7</resultServiceType>

	</res:RetrieveResultsAcknowledge>]. But was not able to find a Part that is registered with this Message which corresponds to this SOAPElement. The name of the element should be one of these[requestId,acknowledgeMessages] (see Fault Detail for stacktrace)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doDispatch(WebServiceMessageDispatcher.java:111)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doSend(WebServiceMessageDispatcher.java:205)
	at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:164)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:191)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:130)
	at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:85)
	at org.mule.routing.outbound.FilteringMulticastingRouter.route(FilteringMulticastingRouter.java:54)
	at org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:78)
	at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:48)
	at org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:82)
	at org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:247)
	at org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:209)
	at org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:277)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:201)
	at org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:176)
	at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:143)
	at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:487)
	at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:266)
	at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:225)
	at com.mirth.connect.connectors.vm.VMMessageReceiver.getMessages(VMMessageReceiver.java:222)
	at org.mule.providers.TransactedPollingMessageReceiver.poll(TransactedPollingMessageReceiver.java:108)
	at org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:97)
	at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
	at java.lang.Thread.run(Unknown Source)Caused by: javax.xml.ws.soap.SOAPFaultException: Exception during processing: javax.xml.soap.SOAPException: Found SOAPElement [<res:RetrieveResultsAcknowledge>
	
	<ackMessages xmlns="">
	<controlId>80000000000000058558</controlId>
	<message>TVNIfF5+JnxMQUJ8REFMfHwxODMxN3wyMDEzMDQwNTE4MTI0MXx8QUNLfDgwMDAwMDAwMDAwMDAwMDU4NTU4fER8Mi4zLjENTVNBfENBfDgwMDAwMDAwMDAwMDAwMDU4NTU4DQ==</message>
	</ackMessages>
	<requestId xmlns="">51aa490e0a801e160fa1c2629aa90f0b</requestId>
	<resultServiceType xmlns="">hl7</resultServiceType>
	</res:RetrieveResultsAcknowledge>]. But was not able to find a Part that is registered with this Message which corresponds to this SOAPElement. The name of the element should be one of these[requestId,acknowledgeMessages] (see Fault Detail for stacktrace)
	at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(Unknown Source)
	at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(Unknown Source)
	at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.doInvoke(Unknown Source)
	at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.invoke(Unknown Source)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.processMessage(WebServiceMessageDispatcher.java:177)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doDispatch(WebServiceMessageDispatcher.java:106)
	... 25 more
Reply With Quote
  #2  
Old 09-24-2013, 01:57 PM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default

One of the available operations from the WSDL are: acknowledgeHL7Results
which produces this envelope:

Code:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:obs="http://medplus.com/resultsHub/observations" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <obs:acknowledgeHL7Results soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <requestId xsi:type="xsd:string">${requestID}</requestId>
         <acknowledgeMessages xsi:type="java:ArrayOfHL7Message" soapenc:arrayType="java:HL7Message[]" xmlns:java="java:com.medplus.serviceHub.results.webservice"/>
      </obs:acknowledgeHL7Results>
   </soapenv:Body>
</soapenv:Envelope>
Which errors:

Code:
[2013-09-24 16:56:51,780]  ERROR (org.mule.impl.DefaultComponentExceptionStrategy:95): Caught exception in Exception Strategy for: db06e168-2da1-4aa6-a323-9a69a38e5a2b: java.lang.Exception: javax.xml.ws.soap.SOAPFaultException: No results provided for acknowledgement.
java.lang.Exception: javax.xml.ws.soap.SOAPFaultException: No results provided for acknowledgement.
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doDispatch(WebServiceMessageDispatcher.java:111)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doSend(WebServiceMessageDispatcher.java:205)
	at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:164)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:191)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:130)
	at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:85)
	at org.mule.routing.outbound.FilteringMulticastingRouter.route(FilteringMulticastingRouter.java:54)
	at org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:78)
	at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:48)
	at org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:82)
	at org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:247)
	at org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:209)
	at org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:277)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:201)
	at org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:176)
	at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:143)
	at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:487)
	at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:266)
	at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:225)
	at com.mirth.connect.connectors.vm.VMMessageReceiver.getMessages(VMMessageReceiver.java:222)
	at org.mule.providers.TransactedPollingMessageReceiver.poll(TransactedPollingMessageReceiver.java:108)
	at org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:97)
	at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
	at java.lang.Thread.run(Unknown Source)Caused by: javax.xml.ws.soap.SOAPFaultException: No results provided for acknowledgement.
	at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(Unknown Source)
	at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(Unknown Source)
	at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.doInvoke(Unknown Source)
	at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.invoke(Unknown Source)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.processMessage(WebServiceMessageDispatcher.java:177)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doDispatch(WebServiceMessageDispatcher.java:106)
	... 25 more
Reply With Quote
  #3  
Old 09-24-2013, 01:59 PM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default

I would like to be able to use the operation from the WSDL, though I have no clue how to provide results. I'm not really sure where to go from here. Quest Labs have been unable to provide any support with this.
Reply With Quote
  #4  
Old 09-25-2013, 05:25 AM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default

If anyone can shed some light on why I'm getting the first error and/or what may be causing it or what it means, I can attempt to find a solution on my own and elsewhere. Currently, Not having any luck with getting the message out.
Reply With Quote
  #5  
Old 09-25-2013, 08:04 AM
narupley's Avatar
narupley narupley is offline
Mirth Employee
 
Join Date: Oct 2010
Posts: 7,124
narupley is on a distinguished road
Default

This has more to do with the vendor you're trying to communicate with. You need to contact them and find out what's missing in your SOAP envelope that would cause a fault.

To hazard a guess, I would say that the "acknowledgeMessages" node is meant to contain child nodes underneath it, and that's why it's giving you the "No results provided for acknowledgement." fault. I don't know what exactly needs to go underneath it, that would be a question for your Quest representative.
__________________
Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

Nicholas Rupley
Work: 949-237-6069
Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


- How do I foo?
- You just bar.
Reply With Quote
  #6  
Old 09-25-2013, 10:18 AM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default

Well, thanks for the help. I had assumed that was going to fall on them. They've been less than able to give me an answer. I am not sure why.
Reply With Quote
  #7  
Old 09-25-2013, 01:39 PM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default nullPointerException SOAP Message with array

I'm getting the following error
Code:
[2013-09-25 13:48:48,180]  ERROR (org.mule.impl.DefaultComponentExceptionStrategy:95): Caught exception in Exception Strategy for: db06e168-2da1-4aa6-a323-9a69a38e5a2b: java.lang.Exception: javax.xml.ws.soap.SOAPFaultException: Exception during processing: java.lang.NullPointerException (see Fault Detail for stacktrace)
java.lang.Exception: javax.xml.ws.soap.SOAPFaultException: Exception during processing: java.lang.NullPointerException (see Fault Detail for stacktrace)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doDispatch(WebServiceMessageDispatcher.java:111)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doSend(WebServiceMessageDispatcher.java:205)
	at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:164)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:191)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:130)
	at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:85)
	at org.mule.routing.outbound.FilteringMulticastingRouter.route(FilteringMulticastingRouter.java:54)
	at org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:78)
	at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:48)
	at org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:82)
	at org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:247)
	at org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:209)
	at org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:277)
	at org.mule.impl.MuleSession.sendEvent(MuleSession.java:201)
	at org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:176)
	at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:143)
	at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:487)
	at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:266)
	at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:225)
	at com.mirth.connect.connectors.vm.VMMessageReceiver.getMessages(VMMessageReceiver.java:222)
	at org.mule.providers.TransactedPollingMessageReceiver.poll(TransactedPollingMessageReceiver.java:108)
	at org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:97)
	at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
	at java.lang.Thread.run(Unknown Source)Caused by: javax.xml.ws.soap.SOAPFaultException: Exception during processing: java.lang.NullPointerException (see Fault Detail for stacktrace)
	at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(Unknown Source)
	at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(Unknown Source)
	at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.doInvoke(Unknown Source)
	at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.invoke(Unknown Source)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.processMessage(WebServiceMessageDispatcher.java:177)
	at com.mirth.connect.connectors.ws.WebServiceMessageDispatcher.doDispatch(WebServiceMessageDispatcher.java:106)
	... 25 more
And here is my Message I am attempting to send:
Code:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:obs="http://medplus.com/resultsHub/observations" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <obs:acknowledgeHL7Results soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <requestId xsi:type="xsd:string">${resultControlID}</requestId>
         <acknowledgeMessages xsi:type="java:ArrayOfHL7Message" soapenc:arrayType="java:HL7Message[1]" xmlns:java="java:com.medplus.serviceHub.results.webservice">
		 	<item xsi:type="java:HL7Message">*** I HAVE BASE64 HL7 HERE</item>
		 </acknowledgeMessages>
      </obs:acknowledgeHL7Results>
   </soapenv:Body>
</soapenv:Envelope>

The <item> is has a base64 HL7 message. I have been searching for the null pointer issue and have found a few helpful articles, though nothing solving my particular problem. I assume this has to do with the array.
Reply With Quote
  #8  
Old 09-25-2013, 01:43 PM
narupley's Avatar
narupley narupley is offline
Mirth Employee
 
Join Date: Oct 2010
Posts: 7,124
narupley is on a distinguished road
Default

Not sure, but it sounds like the server you're sending to is catching a NullPointerException exception somewhere and sending back that fault.
__________________
Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

Nicholas Rupley
Work: 949-237-6069
Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


- How do I foo?
- You just bar.
Reply With Quote
  #9  
Old 09-25-2013, 01:47 PM
cwfowers cwfowers is offline
Mirth Newb
 
Join Date: Sep 2013
Posts: 23
cwfowers is on a distinguished road
Default

Alright... Well, thats a jump off point. Thanks again. Just for my uses, how does the message look? anything obviously wrong with it?
Reply With Quote
  #10  
Old 09-25-2013, 01:50 PM
narupley's Avatar
narupley narupley is offline
Mirth Employee
 
Join Date: Oct 2010
Posts: 7,124
narupley is on a distinguished road
Default

Quote:
Originally Posted by cwfowers View Post
Alright... Well, thats a jump off point. Thanks again. Just for my uses, how does the message look? anything obviously wrong with it?
No problem... at first glance that looks fine to me. If you can just get a sample request from the vendor, you should be able to match your envelope to follow the same format.
__________________
Step 1: JAVA CACHE...DID YOU CLEAR ...wait, ding dong the witch is dead?

Nicholas Rupley
Work: 949-237-6069
Always include what Mirth Connect version you're working with. Also include (if applicable) the code you're using and full stacktraces for errors (use CODE tags). Posting your entire channel is helpful as well; make sure to scrub any PHI/passwords first.


- How do I foo?
- You just bar.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 10:38 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Mirth Corporation