Announcement

Collapse
No announcement yet.

HL7 parsing wont pass rawdata

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HL7 parsing wont pass rawdata

    Mirth gives the following error, below, when confronted with a customized ZPM message, first below. The Z message is suppose to be customizeable. We just want to capture the rawdata and send same to two separate servers. Is there a way just to push the message to the servers and not look to parse it according to the internal ZPM parse?

    MSH|^~\&|PYXIS|PYXIS|HOSTAPPL|HOSTFACILITY|2007010 2143602||ZPM|EPC^01022007143602|P|2.2|||||||
    ZPM|C|console|RR|2|A1|FNT.05A2|FENTANYL|2|0|0|0|GH TTECH|TECH, TEST|GHTNURSE|NURSE, TEST|24|||||1|5|0|20070102143530||||||||0|

    org.mule.umo.routing.RoutingException: Failed to transform message before applying the filter. Failed to route event via endpoint: ImmutableMuleEndpoint{connector=org.mule.providers [email protected], endpointUri=tcp://127.0.0.1:6300, transformer=Transformer{name='ByteArrayToStri ng', returnClass=false, returnClass=false, sourceTypes=[class [B, class java.lang.String]}, name='_tcpEndpoint#644220401', type='receiver', properties={}, transactionConfig=org.mule.impl.MuleTransactionCon [email protected], filter=null, deleteUnacceptedMessages=false, initialised=true, securityFilter=null, synchronous=null, initialState=started, createConnector=0}. Message payload is of type: java.lang.String
    at org.mule.routing.inbound.SelectiveConsumer.isMatch (SelectiveConsumer.java:64)
    at org.mule.routing.inbound.InboundMessageRouter.rout e(InboundMessageRouter.java:75)
    at org.mule.providers.AbstractMessageReceiver$Default InternalMessageListener.onMessage(AbstractMessageR eceiver.java:492)
    at org.mule.providers.AbstractMessageReceiver.routeMe ssage(AbstractMessageReceiver.java:271)
    at org.mule.providers.AbstractMessageReceiver.routeMe ssage(AbstractMessageReceiver.java:243)
    at org.mule.providers.tcp.TcpMessageReceiver$TcpWorke r.processData(TcpMessageReceiver.java:305)
    at org.mule.providers.tcp.TcpMessageReceiver$TcpWorke r.run(TcpMessageReceiver.java:274)
    at org.mule.impl.work.WorkerContext.run(WorkerContext .java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.runTask(ThreadPoolExecutor. java:650)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.run(ThreadPoolExecutor.java :675)
    at java.lang.Thread.run(Unknown Source)
    Caused by: org.mule.umo.transformer.TransformerException: ca.uhn.hl7v2.HL7Exception: Can't determine message structure from MSH-9: ZPM HINT: there are only 1 of 3 components present (com.webreach.mirth.model.converters.SerializerExc eption)
    at com.webreach.mirth.server.mule.transformers.HL7ToM essageObject.doTransform(HL7ToMessageObject.java:9 4)
    at org.mule.transformers.AbstractTransformer.transfor m(AbstractTransformer.java:197)
    at org.mule.transformers.AbstractTransformer.transfor m(AbstractTransformer.java:200)
    at org.mule.transformers.AbstractTransformer.transfor m(AbstractTransformer.java:200)
    at org.mule.impl.MuleEvent.getTransformedMessage(Mule Event.java:251)
    at org.mule.routing.inbound.SelectiveConsumer.isMatch (SelectiveConsumer.java:61)
    ... 10 more
    Caused by: com.webreach.mirth.model.converters.SerializerExce ption: ca.uhn.hl7v2.HL7Exception: Can't determine message structure from MSH-9: ZPM HINT: there are only 1 of 3 components present
    at com.webreach.mirth.model.converters.HAPIMessageSer ializer.deserialize(HAPIMessageSerializer.java:54)
    at com.webreach.mirth.server.mule.transformers.HL7ToM essageObject.doTransform(HL7ToMessageObject.java:8 0)
    ... 15 more
    Caused by: ca.uhn.hl7v2.HL7Exception: Can't determine message structure from MSH-9: ZPM HINT: there are only 1 of 3 components present
    at ca.uhn.hl7v2.parser.PipeParser.getStructure(PipePa rser.java:177)
    at ca.uhn.hl7v2.parser.PipeParser.doParse(PipeParser. java:208)
    at ca.uhn.hl7v2.parser.Parser.parse(Parser.java:151)
    at com.webreach.mirth.model.converters.HAPIMessageSer ializer.deserialize(HAPIMessageSerializer.java:52)
    ... 16 more

    {}
    Thanks



  • #2
    Re: HL7 parsing wont pass rawdata

    Maybe the problem is caused by MSH-10, EPC^01022007143602? MSH-10 should be a string, one component.

    Charles

    Comment


    • #3
      Re: HL7 parsing wont pass rawdata

      This is an issue in HAPI that we are addressing in 1.3.2.

      -Chris
      Chris Lang

      Comment


      • #4
        Re: HL7 parsing wont pass rawdata

        Thank you, This is the only real issue we have run into that we haven't been able to get around following folks suggestions. We'll be looking forward to 1.3.2. 1.31 has been working well and memory is far better.

        Thanks again. ~Will

        Comment


        • #5
          Re: HL7 parsing wont pass rawdata

          Excellent!

          Just to update - we implemented the fix and have been testing with your ZPM message and other variants we've found from Meditech. Everything looks ok. 1.3.2 is finished and now in the QA process.

          -Chris
          Chris Lang

          Comment


          • #6
            Re: HL7 parsing wont pass rawdata

            Hello, Just loaded 1.3.2 and created a basic file reader to file writer channel. I seem to be getting the same error message. I will play with the channel a bit and let you know. Thanks ~Will

            This is the testing channel:

            - <com.webreach.mirth.model.Channel>
            <id>b1894656-a0cc-4889-bb15-e84fa6ac8550</id>
            <name>testZmsg</name>
            <description>testing ZPM messages there are 6 from PYXIS</description>
            <enabled>true</enabled>
            <version>1.3.2</version>
            <revision>1</revision>
            <direction>INBOUND</direction>
            <protocol>HL7</protocol>
            <mode>ROUTER</mode>
            - <sourceConnector>
            <name>sourceConnector</name>
            - <properties>
            <property name="checkFileAge">0</property>
            <property name="charsetEncoding">DEFAULT_ENCODING</property>
            <property name="fileAge">0</property>
            <property name="autoDelete">0</property>
            <property name="pollingFrequency">1000</property>
            <property name="DataType">File Reader</property>
            <property name="moveToDirectory">C:/1zpm/read</property>
            <property name="sortAttribute">date</property>
            <property name="fileFilter">*.*</property>
            <property name="host">C:/1zpm</property>
            <property name="moveToPattern">zpm${UUID}.txt</property>
            </properties>
            - <transformer>
            <steps />
            </transformer>
            - <filter>
            <rules />
            </filter>
            <transportName>File Reader</transportName>
            </sourceConnector>
            - <destinationConnectors>
            - <com.webreach.mirth.model.Connector>
            <name>Destination 1</name>
            - <properties>
            <property name="charsetEncoding">DEFAULT_ENCODING</property>
            <property name="host">c:/1zpm/good</property>
            <property name="outputPattern">Zmsg${UUID}.txt</property>
            <property name="DataType">File Writer</property>
            <property name="template">${message.rawData}</property>
            <property name="outputAppend">1</property>
            </properties>
            - <transformer>
            <steps />
            </transformer>
            - <filter>
            <rules />
            </filter>
            <transportName>File Writer</transportName>
            </com.webreach.mirth.model.Connector>
            </destinationConnectors>
            - <properties>
            <property name="synchronous">false</property>
            <property name="encryptData">false</property>
            <property name="store_messages">true</property>
            <property name="initialState">started</property>
            <property name="max_message_age">1</property>
            <property name="transactional">false</property>
            <property name="error_messages_only">false</property>
            <property name="recv_xml_encoded">false</property>
            </properties>
            <preprocessingScript>// Modify the message variable below to pre process data return message;</preprocessingScript>
            </com.webreach.mirth.model.Channel>

            Comment


            • #7
              Re: HL7 parsing wont pass rawdata

              Will -

              Sorry, I forgot to mention that you will need to use a preprocessor still on that message (it is not valid HL7). The message needs a valid message type, so it needs to read |ZPM^XXX| rather than just |ZPM|. (The XXX can be any custom character string).

              In order to get Mirth to recognize the message, your preprocessor should be:

              Code:
              return message.replace("|ZPM|","|ZPM^ZPM|");
              Give that a try and let us know if you have any issues.
              -Chris
              Chris Lang

              Comment


              • #8
                Re: HL7 parsing wont pass rawdata

                Thank you Chris,

                I should have thought of that before. I played with it on 1.3.1 Any way yes it did function well. We&#039;ll perform a bit more for a feed and it should be good to go for this little one.

                Thanks again, Will

                Comment


                • #9
                  Re: HL7 parsing wont pass rawdata

                  Excellent! Keep us posted on your progress.

                  -Chris
                  Chris Lang

                  Comment

                  Working...
                  X