No announcement yet.

Need Help With Mirth

  • Filter
  • Time
  • Show
Clear All
new posts

  • Need Help With Mirth

    Hello everyone,

    I am new to Mirth so please forgive my ignorance.

    Mirth seems to be a great product but I am having issues understanding where to place code to properly parse/transform HL7 messages.

    I am able to create a channel and receive HL7 data into mirth and move the data out into a destination system or file without any problems.

    The problem starts when I want to manipulate/transform the HL7 data I want to Move to the destination system.

    Since I am not familiar enough with mirth to know where the scripts need to be placed I am not getting the results I would hope for.

    Here is a typical example of what I do in eGate to transform/move HL7 message to destination systems.

    1. HL7 message is generated by affinity system and sent to eGate
    2. eGate receives and accepts all messages regardless of content.
    a. Based on message type (ADT/ORM/ORU/RAS) I will parse to destination system.
    - If Message is ADT Lab, Radiology, Pharmacy, ER, Surgery, Med Oncology receive
    the message.
    - If Message is ORM and the Order Number Starts with L then Lab receives the
    - If Message is ORM and the Order Number Starts with PH then Pharmacy receives
    the message.
    - If Message is ORM and the Order Number Starts with DI then Radiology receives
    the message.

    b. Some of our Destination Systems do not like Z-Segment messages so I remove
    ZNM messages to destinations like Lab, Radiology, Pharmacy and Surgery.

    c. I also make changes to the message based on destination systems criteria to
    accept an HL7 message.

    I am not sure where the code to do translations needs to go for example, Pre-Processing, filter or transformer.

    I am also not sure as to what to use for connectors when trying to manipulate data
    that goes to multiple systems and the data for each of the destination systems may be
    slighly different.

    Do you have any tutorials, manuals, etc that may show coincise examples of the things
    I mentioned here.

    I know mirth is great for putting HL7 data into databases but my main use would be to
    replace our eGate HL7 engine.

    I appreciate any help or assistance with this.


    Jose R. Medina
    Interface Programmer
    Great Plains Regional Medical center
    [email protected]
    308.696.7156 Work
    308.650.0088 Cell

  • #2
    Hi Jose;

    Welcome to Mirth!

    I think what you want to do is in the filter.

    The message types are fairly easy and you could likely do the filtering on the contents of msg['MSH']['MSH.9']['MSH.9.1']

    For the ORM messages you'd likely have to do a javascript filter to look at only the first letter of the appropriate field, returning true if you want to send it, false if you don't.

    Hope this helps.

    If the L, PH etc are discrete elements
    I can be reached through gmail and Google Talk using davidrothbauer at gmail dot com

    Test all my code suggestions prior to implementation