I am trying to create multiple OBX segments for an outgoing HL7 message so I looked on this forum for an example of such. I have a debug message written to a file after the following code segment is run in a transformer, so I know that it is not failing on this. Also if I comment this block out, the error does not occur.
I also have the following HL7 template in the outbound message area:
I figured that although I don't know how many OBX segments I will need I know that I will have more than 2, is this setup correctly?
This is the error that I get:
Post edited by: dblodgett, at: 01/10/2008 07:58
Code:
var c = 0; var o = 0; var obx = tmp['OBX']; while (typeof msg["line"][c] != "undefined"«») { line = msg["line"][c++]; tmp['OBX'][o] = obx; tmp['OBX'][o]['OBX.1']['OBX.1.1'] = c + 1; tmp['OBX'][o]['OBX.2']['OBX.2.1'] = "ST"; tmp['OBX'][o]['OBX.3']['OBX.3.1'] = "1:RPT"; tmp['OBX'][o]['OBX.3']['OBX.3.2'] = "Radiology Report"; tmp['OBX'][o]['OBX.5']['OBX.5.1'] = line; tmp['OBX'][o]['OBX.11']['OBX.11.1'] = "D"; o++; }
Code:
MSH|||||||||^||| EVN|| PID|||||^||||||||||||| ORC||||||||||||^^^^^^^^^^^^ OBR||||^||||||||||||^^^^^^^^^^^^||||^^^^^^^^^^^^|^||||| OBX|||^|||||||| OBX|||^||||||||
This is the error that I get:
Code:
ERROR-300: Transformer error ERROR MESSAGE: Error evaluating transformer com.webreach.mirth.model.converters.SerializerException: java.lang.ArrayIndexOutOfBoundsException: 2 at com.webreach.mirth.model.converters.ER7Serializer.fromXML(ER7Serializer.java:168) at com.webreach.mirth.model.converters.ER7Serializer.fromXML(ER7Serializer.java:50) at com.webreach.mirth.server.mule.transformers.JavaScriptTransformer.evaluateTransformerScript(JavaScriptTransformer.java:406) at com.webreach.mirth.server.mule.transformers.JavaScriptTransformer.transform(JavaScriptTransformer.java:286) at org.mule.transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:48) at org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:197) at org.mule.impl.MuleEvent.getTransformedMessage(MuleEvent.java:251) at com.webreach.mirth.server.controllers.MessageObjectController.getMessageObjectFromEvent(MessageObjectController.java:482) at com.webreach.mirth.connectors.file.FileMessageDispatcher.doDispatch(FileMessageDispatcher.java:79) at com.webreach.mirth.connectors.file.FileMessageDispatcher.doSend(FileMessageDispatcher.java:213) at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:166) 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:89) 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:161) at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:128) at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:492) at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:271) at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:230) at com.webreach.mirth.connectors.file.FileMessageReceiver.processFile(FileMessageReceiver.java:223) at com.webreach.mirth.connectors.file.FileMessageReceiver.poll(FileMessageReceiver.java:130) at org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:118) at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ArrayIndexOutOfBoundsException: 2 at com.webreach.mirth.model.converters.ER7XMLHandler.startElement(ER7XMLHandler.java:130) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at com.webreach.mirth.model.converters.ER7Serializer.fromXML(ER7Serializer.java:163) ... 33 more
Comment