Adding Multiple NTE segments to HL7 message with Mirth

user2201142 picture user2201142 · Feb 24, 2015 · Viewed 7.9k times · Source

I am trying to add multiple NTE lines to the end of HL7 messages using Mirth. I can add a single line using for example:

tmp=msg;
msg['NTE']['NTE.1']="1".toString();
msg['NTE']['NTE.3']="Performed at 123 Radiology".toString();

But...

When I want to add a line below that:

msg['NTE']['NTE.1']="2".toString();
msg['NTE']['NTE.3']="123 Radiology Drive STE 100".toString();

I can't just use the tmp=msg because it will simply overwrite the previous line.

In the end I am trying to add something like this to the end of the message:

NTE|1||Test performed at Radiology Imaging
NTE|2||123 Test Road
NTE|3||Chicago, IL 55555

The content is static, I just need to understand how to create each line separately.

Answer

Shamil picture Shamil · Feb 25, 2015

I'm not sure why you need (in this particular example) to assign outbound template to inbound - Mirth will do that for you anyway.

The code to produce the required result may be like this:

var segCount = 0;

createSegment('NTE', msg);
msg['NTE'][segCount]['NTE.1']['NTE.1.1'] = segCount;
msg['NTE'][segCount]['NTE.3']['NTE.3.1'] = "Test performed at Radiology Imaging";

createSegmentAfter('NTE', msg['NTE'][segCount]);
msg['NTE'][++segCount]['NTE.1']['NTE.1.1'] = segCount;
msg['NTE'][segCount]['NTE.3']['NTE.3.1'] = "123 Test Road";

createSegmentAfter('NTE', msg['NTE'][segCount]);
msg['NTE'][++segCount]['NTE.1']['NTE.1.1'] = segCount;
msg['NTE'][segCount]['NTE.3']['NTE.3.1'] = "Chicago, IL 55555";

If you pass the required data as an array, you may loop and simplify this code even further. I left it in this expanded way for clarity.