Question:
Dear HL7Spy,
A user has a request – am not able to find function within HL7 to execute.
Find all the segments(i.e. OBX 15:1) within a message where content is different from each other. For example: If first OBX 15:1 is ABC, then find all other OBX within same message with content other than ABC.
Not sure if HL7Spy has that capability but thought I’d check.
Answer:
Sure, no problem, you can write a custom function to display all messages where this is true in a few lines of code.
To add this code, go to the Custom Code tool, select the “+” to add a new custom function, and cut and paste this code over-top of the default code that is displayed.
To run the code, load up a set of messages into a tab and click “Run”. What you should see is a new tab created that will contain any messages where the OBX-15 value differs between segments.
public override void Run() { // Get an HL7 Message in parsed format HL7Message message = GetParsedMessage(); string obx15 = null; foreach(OBX obx in message.Segments.OfType<OBX>()) { if(obx15==null) { obx15 = obx.ProducerSID_15.Value; } else if(obx15 != obx.ProducerSID_15.Value) { SaveMessage(message,"Different OBX-15"); break; } } }