Here is some sample code to remove unwanted Fields on the end of a HL7 Segment:
var splitMessage = StringUtils.splitByWholeSeparator(message.getNode('/'), '\r');
for (var segmentNumber = 0; segmentNumber < splitMessage.length; segmentNumber++) {
var segment = StringUtils.substringBefore(splitMessage[segmentNumber], '|');
var segmentCount = message.getCount(segment);
for (var i = 1; i <= segmentCount ; i++) {
var oldSegment = qie.parseHL7String(message.getNode(segment, i));
var newSegment = qie.parseHL7String(segment + '|');
//Add segments with data
for (var f = 1 ; f < 200 ; f++) {
if (StringUtils.equalsIgnoreCase(segment, 'MSH') && f === 1) {
newSegment = qie.parseHL7String('MSH|^~\\&|');
f = 2;
continue;
}
if (oldSegment.checkNodeExists(segment + '-' + f)) {
if (oldSegment.checkNodeIsNotBlank(segment + '-' + f)) {
newSegment.setNode(segment + '-' + f, oldSegment.getNode(segment + '-' + f));
}
} else {
break;
}
}
message.setNode(segment + '[' + i + ']', newSegment.toString().trim());
}
}