Announcement

Collapse
No announcement yet.

HL7 chopped into 2 parts

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

  • HL7 chopped into 2 parts

    I have set up an LLP Listener channel who's sole purpose in life is to embed the incoming HL7 into an XML document and send the ACK back to the sender.

    There are 2 channels attached. In one instance, I have "Keep connection open" checked (kco_checked.txt) and in the other I do not (kco_notchecked.txt).

    Scenario #1: When I send the attached message (testmessage.txt) with "Keep connection open" checked, the ACK is returned and no errors occur, but my CPU goes through the roof by about the 3rd message (cpu_usage.jpg).

    Scenario #2: When I send the attached message (testmessage.txt) with "Keep connection open" NOT checked, the ACK is returned and the following error occurs, but my CPU is fine.

    ERROR 2007-05-11 15:35:03,941 [063de51d-71d0-4346-b13f-55f64c9427a5_source_connector._mllpEndpoint#-579888487.receiver.2] org.mule.impl.DefaultComponentExceptionStrategy: Caught exception in Exception Strategy for: 063de51d-71d0-4346-b13f-55f64c9427a5: ca.uhn.hl7v2.HL7Exception: Couldn't find MSH segment in message: ST|LYMPH %^LYMPH %^L|1|11.0|%|20-50|L||A^S|F|||200705100700|^^OBX|21|ST|BASO #^ABSOLUTE #BASOPHILS AUTOMATED^L|1|0.03|K/uL|0.0-0.1|N||A^S|F|||200705100700|^^||ML|
    ca.uhn.hl7v2.HL7Exception: Couldn't find MSH segment in message: ST|LYMPH %^LYMPH %^L|1|11.0|%|OBX|21|ST|BASO #^ABSOLUTE #BASOPHILS AUTOMATED^L|1|0.03|K/uL|0.0-0.1|N||A^S|F|||200705100700|^^||ML|
    at ca.uhn.hl7v2.parser.PipeParser.getCriticalResponse Data(PipeParser.java:617)
    at com.webreach.mirth.util.ACKGenerator.generateAckRe sponse(ACKGenerator.java:37)
    at com.webreach.mirth.server.mule.providers.mllp.Mllp MessageReceiver$TcpWorker.generateACK(MllpMessageR eceiver.java:451)
    at com.webreach.mirth.server.mule.providers.mllp.Mllp MessageReceiver$TcpWorker.processData(MllpMessageR eceiver.java:360)
    at com.webreach.mirth.server.mule.providers.mllp.Mllp MessageReceiver$TcpWorker.run(MllpMessageReceiver. java:278)
    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(Thread.java:619)
    My theory is that since the message is being broken up before it's sent across the wire (this was verified via wireshark), mirth is looking at it as 2 separate messages when the connection is not kept open. This causes the second message to begin at some arbitrary point in the message, which will not result in a good ACK.

    Any thoughts on how I can process this message with the ACK working, without the CPU drainage, and without the HL7Exception?


    keepconnopen.gz (33881 bytes)

  • #2
    Re:HL7 chopped into 2 parts

    Both the message being split and the CPU pegging is fixed in the latest builds and will be available in the 1.5 release (before the end of the month).
    Chris Lang

    Comment


    • #3
      Re:HL7 chopped into 2 parts

      Chrisl, I'm having the same problems with my system. Is there a date set yet to when this fix will be out?

      Thanks

      Comment


      • #4
        Re:HL7 chopped into 2 parts

        Before the end of the week.
        Chris Lang

        Comment


        • #5
          Re:HL7 chopped into 2 parts

          Thanks, Chris - these issues appear to be fixed now in 1.5...

          Comment

          Working...
          X