Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleSTEP 2: Enter the Translator to see the example starter code

You’ll notice the Translator contains a simple script and sample HL7 data that demonstrates the workflow for converting HL7 v2.4 ADT A01 messages to v2.7 ADT A01 messages:

  1. Parsing an inbound HL7 message with the inbound VMD (ex. VMD/ADT_2_4.vmd)

  2. Filtering the inbound message using the HL7MAP library

  3. Building the outbound message and mapping data from the inbound message using the HL7MAP library

  4. Pushing the message to the queue for further processing or downstream delivery

You can cycle through the provided sample messages to see how the component handles different message types. This component also demonstrates https://interfaceware.atlassian.net/wiki/x/g4Cxog by ensuring any additional sample messages will not be stored in the commit history. The sample .gitignore file can be viewed in the component’s Bitbucket repository.

Expand
titleSTEP 2: Connect the component to a source and destination component

Since this is a feeder component, you’ll need a source component (ex. https://interfaceware.atlassian.net/wiki/x/FwBTog) to send messages to it and a destination component (ex. https://interfaceware.atlassian.net/wiki/x/V4CVog) that it can pass messages on for further processing or sending to a downstream system.

...

Expand
titleHL7MAP/mappings/ADTA01 - dynamically calls the correct mapping module based on provided arguments

The ADTA01 mapping module contains a main BuildMessage function that takes the provided out_message_type (ex. ADTA01) and the outbound VMD file (out_vmd calls the matching mapping module in HL7MAP/mappings (ex. HL7MAP/mappings/ADTA01.lua). It passes the provided outbound VMD file and inbound message to the mapping ) to build the outbound message. This function also handles the mapping for each segment.

image-20240430-151215.pngImage Added

Simple mappings are handled by using the node.mapTree function at the segment level while complex mappings are handled by local mapping functions that may perform additional transformations or mappings.

image-20240430-151551.pngImage Added

Expand
titleHL7MAP/mappings/HL7MAPcodemaps - contains the codemap mapping the inbound and outbound HL7 codesets

HL7MAPcodemaps contains the codemap for mapping the inbound HL7 version codes to the outbound HL7 version codes. In the example script, codemaps for Organ Donor, Administrative Sex, Segment Action, and Marital Status codes codesets from v2.4 to v2.7 are provided.

...

Expand
titleSTEP 3: Update HL7codemaps

Update HL7MAPcodemaps to the specific codesets and HL7 versions your messages will be using.

Expand
titleSTEP 4: Update/add filtering modules

Update or add message-specific filter modules in the HL7MAP/filters folder. The modules should be named [HL7_Type].lua. Messages with an inbound HL7 message type (ex. ADTA01) that matches the name of a filtering module (ex. ADTA01.lua) will be filtered by that module. Default All other messages will be filtered by the default filter conditions can be customized in HL7MAP/filters/default.lua, which can also be further customized.

Expand
titleSTEP 5: Update/add mapping modules

Update or add mapping modules in the HL7MAP/mappings folder. The modules should be named [HL7_Type].lua. By default, only messages with an outbound HL7 message type (ex. ADTA01) that matches the name of a mapping module (ex. ADTA01.lua) will be mapped. All other messages will be pushed downstream as-isin their original form.