Announcement

Collapse

NextGen (Mirth) Connect 3.11.0 Released!

NextGen (Mirth) Connect 3.11.0 is now available as an appliance update and on our GitHub page. This release contains improvements to licensing and the NCPDP data type. It also includes various security fixes, general bug fixes, and improvements to commercial extensions. See the release notes for the complete list of fixes and improvements.

Download | See What's New | Upgrade Guide | Release Notes

For discussion on this release, see this thread.
See more
See less

LLP Listener

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

  • LLP Listener

    Hi, I have configured Mirth 1.6 on a Solaris machine to receive HL7 2.x data via an LLP listener and forward it on to another machine. A Java application sends HL7 data to Mirth.

    Initially I used no special end of message character, but the sending of messages was very slow (one message every 5 seconds), which is the timeout value for the LLP listener. I reduced this to 25ms, which is as low as I could set it before I started getting errors.

    I added an end of message character at the end of each message, but the behavior hasn't changed. Are there any gotchas to Mirth detecting the end of message?

  • #2
    Re:LLP Listener

    Check out: http://www.mirthproject.org/svn/trun.../simplesender/

    Does your sender close the connection after each message?
    Chris Lang

    Comment


    • #3
      Re:LLP Listener

      It does not close the connection until all the messages are sent, unless the connection is dropped, then I think it connects again.

      I'll check out the simple sender.

      Post edited by: fitek, at: 08/27/2007 18:01

      Comment


      • #4
        Re:LLP Listener

        Hi Chris, I've looked through the sending application carefully. It opens a socket and sends the following (HL7MessageBuffer stores an HL7 message):

        outputStream.write(HL7MessageBuffer.START_MESSAGE) ;
        outputStream.write(messageString.getBytes());
        outputStream.write(HL7MessageBuffer.LAST_CHARACTER );
        outputStream.write(HL7MessageBuffer.END_MESSAGE);
        outputStream.write(HL7MessageBuffer.LAST_CHARACTER );
        ReceiveAcknowledgement();

        where the constants are:
        public static final char END_MESSAGE = '\u001c';

        /** character indicating the start of an HL7 message */
        public static final char START_MESSAGE = '\u000b';

        /** the final character of a segment */
        public static final char LAST_CHARACTER = 13;


        The write/ReceiveAcknowledgement to the stream is looped in a for loop until the number of messages specified on the command line.
        are sent. The socket gets closed once the loop is done.

        The reason it takes so long is that the acknowledgement is not sent by mirth until the timeout has expired.

        The TCP sender at http://www.mirthproject.org/svn/trun...TCPSender.java doesn't seem to wait for an acknowledgement.

        Comment


        • #5
          Re:LLP Listener

          I turned on strict LLP validation on the channel, and, viola, it works. Before I tried that, I changed my HL7 sender application to use DataOutputStream like the TCP Sender.

          Now I have run into problems when a destination goes down or errors out on some messages, but at least this problem is fixed Thanks!

          Comment

          Working...
          X