Greetings all,

I am somewhat new to Javascript and very new to HAPI so please forgive the 
naiveté of my question...

I am trying to develop Javascript code for use in a Rhapsody engine that will 
handle (loop through) multiple OBR/OBX groupings in an ORU_R01 message (HL7 
v2.6). My goal is to add an OBX segment to each group if/when an OBX exists 
where OBX-3 = 2907 within the group. My code only seems to work on the first 
OBR/OBX group. In my troubleshooting I have found that using 
hapiMessageIn.numberOfSegmentRepeats only seems to work if the segment 
identified comes consecutively. For example with a message like...

MSH...
PID...
PV1...
OBR|1|...
OBX|1|...
OBX|2|...
OBX|3|ST|2907|...
OBR|2|...
OBX|1|...
OBX|2|...
OBX|3|...
OBX|4|ST|2907|...

...the countobr value from the following code block is 1, and the countobx 
value is 3.

...
var obr_exist = hapiMessageIn.segmentExists("OBR", 0);
if (obr_exist == true) {
      var countobr = hapiMessageIn.numberOfSegmentRepeats("OBR");
      // Loop through each OBR
      for (var r = 0; r < hapiMessageIn.numberOfSegmentRepeats("OBR"); r++) {

          // Get the OBX segment count
          var obx_exist = hapiMessageIn.segmentExists("OBX", 0);
          if (obx_exist == true) {
                 var countobx = hapiMessageIn.numberOfSegmentRepeats("OBX");
                 // Loop through each OBX and look for OBX-3.1 = 2907
                 for (var x = 0; x < 
hapiMessageIn.numberOfSegmentRepeats("OBX"); x++) {
....
          }
     }
}
...

With the countobr only being equal to 1 it never loops through/processes the 
second OBR/OBX grouping and therefore the output message will have the added 
OBX segment only in the first OBR/OBX group, like...

MSH...
PID...
PV1...
OBR|1|...
OBX|1|...
OBX|2|...
OBX|3|ST|2907|...
OBX|4|... (added OBX segment)
OBR|2|...
OBX|1|...
OBX|2|...
OBX|3|...
OBX|4|ST|2907|...
(no added OBX segment)

Is there an issue with my syntax/use of the numberOfSegmentRepeats that may be 
causing this? Is there a better method you can propose to handle this scenario?

Thanks in advance for your review and any suggestions you may have to resolve 
this issue.

Upcoming OOO dates: June 27- July 15 (PTO)
                                        July 25 - 28 (Training)
                                        Aug 4 - 8 (PTO)

Gregory A. White
Interface Integration Engineer, Mural
GE Healthcare
T. +1 561 889 5673

_______________________________________________
Hl7api-devel mailing list
Hl7api-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to