Sidebar

How would you format a nested for loop to operate on a group of HL7 message segments?

+1 vote
1.7K views
asked Jun 5, 2015 by gary-t-8719 (14,860 points)
Some HL7 messages have repeating segment groups. Within QIE how would you structure your code to iterate over these repeating groups?

1 Answer

+1 vote

The example below show all of the segment groups (ORC, OBR, NTE, OBX, NTE) for an ORU HL7 message and how you would structure you code or for loop to iterate over the segments.

var orcGroups = message.getAllNodes('ORC[group=!ORC]');
for (var i = 0; i < orcGroups.length; i++) {
   var orcGroup = qie.parseHL7String(orcGroups[i]);
   var orc = qie.parseHL7String(orcGroup.getNode('ORC'));
 
   //DO OPTIONAL WORK HERE
 
   var obrGroups = orcGroup.getAllNodes('OBR[group=!OBR]');
   for (var j = 0; j < obrGroups.length; j++) {
      var obrGroup = qie.parseHL7String(obrGroups[j]);
      var obr = qie.parseHL7String(obrGroup.getNode('OBR'));
 
      //DO OPTIONAL WORK HERE
 
      var nteGroups = obrGroup.getAllNodes('NTE[group=!NTE]');
      for (var k = 0; k < nteGroups.length; k++) {
         var nteGroup = qie.parseHL7String(nteGroups[k]);
         var nte = qie.parseHL7String(nteGroup.getNode('NTE'));
 
         //DO OPTIONAL WORK HERE
 
         var obxGroups = nteGroup.getAllNodes('OBX[group=!OBX]');
         for (var l = 0; l < obxGroups.length; l++) {
            var obxGroup = qie.parseHL7String(obxGroups[l]);
            var obx = qie.parseHL7String(obxGroup.getNode('OBX'));
 
            //DO OPTIONAL WORK HERE
 
            var nteGroups = obxGroup.getAllNodes('NTE[group=!NTE]');
            for (var m = 0; m < nteGroups.length; m++) {
               var nteGroup = qie.parseHL7String(nteGroups[m]);
               var nte = qie.parseHL7String(nteGroup.getNode('NTE'));
 
               //DO OPTIONAL WORK HERE
 
            }
         }
      }
   }
}
 
 
 

Refer to this knowledge base article on how to process the new segment objects using the QIE Message Functions.

https://www.qvera.com/kb/index.php/824/how-can-create-my-own-custom-hl7-xml-csv-message-model-object

 

answered Jun 5, 2015 by gary-t-8719 (14,860 points)
edited Oct 5, 2015 by gary-t-8719
...