|
From: White, G. (GE Healthcare) <Gre...@me...> - 2022-06-15 15:53:50
|
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
|