function obxSegmentsWithLineWrap(xmlMessage, linewrap){
var linewrappedArray= new Array();
var obxSegmentTemplate = xmlMessage['OBX'][0].copy();
var logString = '[START] function obxSegmentsWithLineWrap; ';
//build array where each index value is line
// in report no longer than linewrap limit value
for each (seg in xmlMessage.children()) {
if (seg.name().toString() == "OBX") {
var obx5 = seg['OBX.5']['OBX.5.1'].toString();
while(obx5.length > linewrap){
var index = obx5.lastIndexOf(' ', linewrap);
var obx5Substring = obx5.substring(0,index);
obx5 = obx5.substring(index+1);
linewrappedArray.push(obx5Substring);
}
linewrappedArray.push(obx5);
}
}
logString += 'OBX.5.1 value put in array (count=' + linewrappedArray.length + '); ';
//delete all but first OBX segment
var obxCount = 0;
for each (seg in xmlMessage.children()) {
if (seg.name().toString() == "OBX") {
obxCount++;
}
}
for(i=1;i
delete xmlMessage['OBX'][1];
}
logString += 'delete old OBX segments (count=' + obxCount + '); ';
//build new OBX segments from array
var newObxIterator = 0;
for(i=0;i
if(i!=0){
createSegmentAfter('OBX', xmlMessage['OBX'][newObxIterator-1]);
xmlMessage['OBX'][newObxIterator] = obxSegmentTemplate;
}
// appendchannelMapStatusMessage('OBX[' + newObxIterator + ']=' + tmp['OBX'][newObxIterator].toString()
xmlMessage['OBX'][newObxIterator]['OBX.1']['OBX.1.1'] = newObxIterator+1;
xmlMessage['OBX'][newObxIterator]['OBX.5']['OBX.5.1'] = linewrappedArray[i];
// appendchannelMapStatusMessage('OBX[' + newObxIterator + ']=' + tmp['OBX'][newObxIterator].toString());
newObxIterator++;
}
logString += 'rebuilt OBX segments with linewrap (new segment count =' + newObxIterator + ')';
//write log to channel map
channelMap.put('LOG-function obxSegmentsWithLineWrap', logString);
//return new xml representation of message
return xmlMessage;
}