This topic contains 12 replies, has 3 voices, and was last updated by  Jeff Drumm 4 years, 8 months ago.

VMD for OML messages?

  • I was curious if anyone had any examples or experience with creating and/or using a VMD made for receiving OML messages.



    There are OML (Lab Order) templates in VMD Studio; you can create a “standard” OML message structure simply by importing from one of the existing 2.4 – 2.7 libraries. Mapping to/from that structure would be fundamentally the same as any other HL7 2.x message.

    Jeff Drumm ◊ VP and COO ◊ HICG, LLC. ◊

    Thanks Jeff,

    That’s what I ended up doing just wanted to see how everyone else was handling it, new to health care interfaces!

    Thanks again,


    An Iguana mentor would awesome! Ha!

    An Iguana mentor would awesome! Ha!

    A bit of background would be helpful, Josh. It sounds like one of the message formats you’re using is the OML Message Type, but is that used as the inbound, outbound, or both message structure(s)?

    There are some good tutorials on working with HL7 in general on the iNTERFACEWARE web site. Here’s one that should get you started. iNTERFACEWARE also has on-line and classroom based training, if that’s an option for you.

    In essence, working with OML messages isn’t terribly different from working with any other HL7 2.x message. But it would be useful to know what you’re trying to accomplish for us to be able to give you good direction.

    Jeff Drumm ◊ VP and COO ◊ HICG, LLC. ◊

    What I’m currently working on is being able to receive OML messages, parse it and make it available to use in our application.

    Ok, well, that helps a little, but not quite enough. What mechanism are you intending to use to populate your application? There are multiple methods in common use for feeding order data to applications:

    • An HL7 LLP interface, where you may need to translate a “foreign” OML message into an HL7 format that your application understands
    • Population of the application’s database directly via Iguana’s database connectivity options
    • The creation of a file in either fixed length or CSV format to batch upload to the application
    • Invocation of a RESTful or SOAP web service to create patient and order data in the application

    Jeff Drumm ◊ VP and COO ◊ HICG, LLC. ◊

    I would like to start with the HL7 LLP interface option.

    Ok, well the tutorial that I listed in a previous message focuses specifically on LLP as both a mechanism for receiving and sending HL7 messages, and throws in a sample translation as a bonus. Have you taken a look at that yet?

    The forum isn’t really a resource for providing training, but it seems like that’s what you’re looking for. I’m more than happy to point you towards resources that will help you learn, but I don’t think it’s very productive for either of us to go back and forth on a common implementation scenario when there is already plenty of step-by-step documentation on iNTERFACEWARE’s web site.

    I’m quite happy to answer specific questions when you run into problems, though. Please look at the link I provided and let us know where you’re having difficulty applying the methods presented to your specific needs.

    Jeff Drumm ◊ VP and COO ◊ HICG, LLC. ◊

    Thank you for your time and help.


    It turns out I was over thinking it and making it way more complicated than it had to be.

    Thanks again.


    I am new to Iguana and Chameleon. All the demo examples as I see can successfully parse incoming ADT messages. But, I want some incoming DFT^P03 message to parse. Is there any readymade vmd file available to Iguana, or else I have to build a new vmd file using Chameleon? If so, let me know the documented steps how I can generate a vmd file using Chameleon?

    Hello @arijitiguana,

    Iguana comes with a full complement of message structure templates from HL7 v2.1 through v2.7. Just as with ADT message processing, you’d create a VMD using Chameleon’s the “Import Message Definition From Library” option, give the message a name, select the version of HL7 that best suits your source messages, then scroll down to “DFT^P03” and select it.

    There are a few other options to enable (such as creating a “CatchAll” message definition for handling any messages that don’t match a DFT^P03), but the remaining work is identical to what you’d do to process ADT messages … save the DFT VMD, import it into your translator, and use it with hl7.parse() to unmarshal the message into an object so that you can address its individual elements for processing into its destination format. The process of creating the VMD takes perhaps 5 minutes for something as simple as a DFT^P03, and Chameleon’s message browser gives you a handy tool for validating the structure against sample messages.

    Jeff Drumm ◊ VP and COO ◊ HICG, LLC. ◊

You must be logged in to reply to this topic.