var obx5Values = source.getAllNodes('OBX');
message.removeAllNodes('OBX');
var newObx5Value = '';
var obx32Map = qie.newParameterMap();
for (var i = 0; i < obx5Values.length; i++) {
var obxSegment = qie.parseHL7String(obx5Values[i]);
var obx32value = obxSegment.getNode('OBX-3.2');
var obx5Value = obxSegment.getNode('OBX-5');
// Check if in map.
if (obx32Map.get(obx32value) === null){
// If not in map then add obx segment back and add to map.
obx32Map.put(obx32value, obx5Value);
message.addChild('/', 'OBX', obxSegment.getNode('/'));
} else {
// If in map then add obx-5 to current obx segment
message.setNode('OBX[@3.2=' + obx32value + ']-5', message.getNode('OBX[@3.2=' + obx32value + ']-5') + ' ~ ' + obx5Value);
}
}