Question
· Apr 9

HL7 add OBX segment at specific locations - Resolved

I need to add an extra blank OBX segment after a segment containing text, Total Cost:

I get the OBX segment but it is in incorrect location.

It should be after the line containing Total Cost:

It needs to contain:

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|

code:

    //Do pOutput.SetValueAt(tOBXText_"~~","ORCgrp(1).OBRuniongrp.OBXgrp("_i_").OBX:5","set") //
         If (tOBXText[ "Total Cost:") {
             Set tSegmentOBX = ##class(EnsLib.HL7.Segment).%New()
             Set tSegmentOBX.SegType = "2.3:OBX"
             Set tSC = tSegmentOBX.SetValueAt("OBX", 0, "set")
             Set tSC = pOutput.InsertSegmentAt(tSegmentOBX, i)
                                                          }

result

Input message:

MSH|^~\&|GMRC IF CONSULT|757^B1930^DNS|GMRC IF CONSULT|757^^DNS|20250123175341+0000|CRNR|ORM^O01^ORM_O01|Q5808332894T6790522104|T|2.3|||AL|AL|USA

PID|1||1013570973V041977^^^ICN^VETID~2110106796^^^EDIPI^EDIPI||PROSTEST^EHR||19760902|M||||||||||129256619|678235672

ORC|NW|15207778763^757^GMRCIFR|||||^^^20250123175300+0000^^R||20250123175331+0000|1578051652^PCP1^VA-Physician||1578051652^PCP1^VA-Physician|||20250123175341+0000||757

OBR|1|15207778763^757^GMRCIFR||757^PROSTHETICS IFC^757VA1235||20250123175300+0000||||||||||1578051652^PCP1^VA-Physician|||Implant Usage (PSAS)||||||||^^^20250123175300+0000

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|1|Implant Usage (PSAS)||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|2|REASON FOR REQUEST: Item Number: 00801741016608||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|3|REASON FOR REQUEST:      Transaction Date/Time: 01/22/2025 17:45||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|4|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|5|REASON FOR REQUEST:      Item Description: Plug Surgical 1.3in Groin Monofilament ||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|6|REASON FOR REQUEST: Nonabsorbable Perfix Polypropylene Medium Taper 1.55in Sterile Hernia ||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|7|REASON FOR REQUEST: Repair 0112760||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|8|REASON FOR REQUEST:      Manufacturer: Davol Inc||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|9|REASON FOR REQUEST:      Manufacturer Model Number: 0112760||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|10|REASON FOR REQUEST:      HCPCS: C1781||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|11|REASON FOR REQUEST:      Lot Number: 012220252||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|12|REASON FOR REQUEST:      Expiration Date/Time: 05/22/2025 04:00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|13|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|14|REASON FOR REQUEST:      Source: 757-TrackCore Inv||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|15|REASON FOR REQUEST:      Lot Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|16|REASON FOR REQUEST:      Lot Waste Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|17|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|18|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|19|REASON FOR REQUEST: Item Number: 00888867351288||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|20|REASON FOR REQUEST:      Transaction Date/Time: 01/22/2025 17:45||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|21|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|22|REASON FOR REQUEST:      Item Description: Anchor Suture 2 Swivelock C Closed Eyelet Twist in ||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|23|REASON FOR REQUEST: Knotless 19.1mm Blue AR-2324KBCC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|24|REASON FOR REQUEST:      Manufacturer: ARTHREX INC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|25|REASON FOR REQUEST:      Manufacturer Model Number: AR-2324KBCC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|26|REASON FOR REQUEST:      HCPCS: C1713||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|27|REASON FOR REQUEST:      Lot Number: 012220253||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|28|REASON FOR REQUEST:      Expiration Date/Time: 05/17/2025 04:00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|29|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|30|REASON FOR REQUEST:      Source: 757-TrackCore Inv||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|31|REASON FOR REQUEST:      Lot Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|32|REASON FOR REQUEST:      Lot Waste Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|33|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|34|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|35|REASON FOR REQUEST: Item Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|36|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 17:43||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|37|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|38|REASON FOR REQUEST:      Item Description: A female part which is inserted into the acrylic ||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|39|REASON FOR REQUEST: overdenture and houses changeable nylon retention inserts.||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|40|REASON FOR REQUEST:      Manufacturer: 0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|41|REASON FOR REQUEST:      Manufacturer Model Number: MOR RC-1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|42|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|43|REASON FOR REQUEST:      Lot Number: 1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|44|REASON FOR REQUEST:      Expiration Date/Time:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|45|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|46|REASON FOR REQUEST:      Source: 757-C-DENTAL SEC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|47|REASON FOR REQUEST:      Lot Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|48|REASON FOR REQUEST:      Lot Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|49|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|50|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|51|REASON FOR REQUEST: Item Number: 00889024015296||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|52|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 17:43||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|53|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|54|REASON FOR REQUEST:      Item Description: Abutment Dental 4.5mm 3.5mm Indirect Transfer ||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|55|REASON FOR REQUEST: Tapered Screw-vent Connection Trabecular Metal HLT3/4||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|56|REASON FOR REQUEST:      Manufacturer: Zimvie Inc||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|57|REASON FOR REQUEST:      Manufacturer Model Number: HLT3/4||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|58|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|59|REASON FOR REQUEST:      Lot Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|60|REASON FOR REQUEST:      Expiration Date/Time:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|61|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|62|REASON FOR REQUEST:      Source: 757-C-DENTAL SEC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|63|REASON FOR REQUEST:      Used Quantity:           4||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|64|REASON FOR REQUEST:      Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|65|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|66|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|67|REASON FOR REQUEST: Item Number: 00889024015340||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|68|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 17:43||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|69|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|70|REASON FOR REQUEST:      Item Description: Abutment Dental Profile 6.5mm 5.7mm Screw-vent ||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|71|REASON FOR REQUEST: Indirect Transfer Retaining Screw Orange HLT56||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|72|REASON FOR REQUEST:      Manufacturer: Zimmer Biomet Inc||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|73|REASON FOR REQUEST:      Manufacturer Model Number: HLT56||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|74|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|75|REASON FOR REQUEST:      Lot Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|76|REASON FOR REQUEST:      Expiration Date/Time:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|77|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|78|REASON FOR REQUEST:      Source: 757-C-DENTAL SEC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|79|REASON FOR REQUEST:      Used Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|80|REASON FOR REQUEST:      Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|81|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|82|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|83|REASON FOR REQUEST: Item Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|84|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 17:43||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|85|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|86|REASON FOR REQUEST:      Item Description: Abutment, Gold,  Engaging||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|87|REASON FOR REQUEST:      Manufacturer: Zimmer Biomet Dental||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|88|REASON FOR REQUEST:      Manufacturer Model Number: HLA4G||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|89|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|90|REASON FOR REQUEST:      Lot Number: 1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|91|REASON FOR REQUEST:      Expiration Date/Time:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|92|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|93|REASON FOR REQUEST:      Source: 757-C-DENTAL SEC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|94|REASON FOR REQUEST:      Lot Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|95|REASON FOR REQUEST:      Lot Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|96|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|97|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|98|REASON FOR REQUEST: Item Number: TC024057||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|99|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 17:43||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|100|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|101|REASON FOR REQUEST:      Item Description: Abutment, Gold, Engaging CEANP31||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|102|REASON FOR REQUEST:      Manufacturer: Zimmer||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|103|REASON FOR REQUEST:      Manufacturer Model Number: CEANP31||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|104|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|105|REASON FOR REQUEST:      Lot Number: 2||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|106|REASON FOR REQUEST:      Expiration Date/Time: 05/31/2025 05:00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|107|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|108|REASON FOR REQUEST:      Source: 757-C-DENTAL SEC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|109|REASON FOR REQUEST:      Lot Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|110|REASON FOR REQUEST:      Lot Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|111|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|112|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|113|REASON FOR REQUEST: Item Number: TC024076||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|114|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 17:43||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|115|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|116|REASON FOR REQUEST:      Item Description: Abutment, Gold, Engaging HLA3G||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|117|REASON FOR REQUEST:      Manufacturer: Zimmer||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|118|REASON FOR REQUEST:      Manufacturer Model Number: HLA3G||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|119|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|120|REASON FOR REQUEST:      Lot Number: 3||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|121|REASON FOR REQUEST:      Expiration Date/Time: 03/28/2025 05:00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|122|REASON FOR REQUEST:      Serial Number:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|123|REASON FOR REQUEST:      Source: 757-C-DENTAL SEC||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|124|REASON FOR REQUEST:      Lot Quantity:           1||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|125|REASON FOR REQUEST:      Lot Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|126|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|127|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|128|REASON FOR REQUEST: Item Number: 00380650697127||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|129|REASON FOR REQUEST:      Transaction Date/Time: 01/23/2025 16:10||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|130|REASON FOR REQUEST:      Station Number: 757||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|131|REASON FOR REQUEST:      Item Description: Lens SP PmmA 5.25x12.0mm (5) +13.0D||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|132|REASON FOR REQUEST:      Manufacturer: ALCON||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|133|REASON FOR REQUEST:      Manufacturer Model Number: LX10BD 13.0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|134|REASON FOR REQUEST:      HCPCS:||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|135|REASON FOR REQUEST:      Lot Number: 01232025||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|136|REASON FOR REQUEST:      Expiration Date/Time: 02/28/2025 05:00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|137|REASON FOR REQUEST:      Serial Number: 01232025||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|138|REASON FOR REQUEST:      Source: 757-TrackCore Inv||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|139|REASON FOR REQUEST:      Used Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|140|REASON FOR REQUEST:      Waste Quantity:           0||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|141|REASON FOR REQUEST:      Unit Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|142|REASON FOR REQUEST:      Total Cost:           0.00||||||O

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|143|Special Instructions: ||||||O

OBX|2|CE|^PROVISIONAL DIAGNOSIS|1|R52^Pain, unspecified^I10||||||O

NTE|P|UCID:757_15207778763

Product version: IRIS 2023.1
$ZV: HealthShare Unified Care Record 2023.1.0 Build: 1006 Adhoc: 23407 [HealthShare Modules: Core:25.0] - IRIS for Windows (x86-64) 2022.1.2 (Build 574_0_23407U) Tue May 7 2024 13:17:41 EDT [Core:25.0]
Discussion (2)2
Log in or sign up to continue

I did something similar by saving OBX segments in %Library.ListOfObjects 

%Library.ListOfObjects - InterSystems Supply Chain Orchestrator 2024.1 - including private class members
 

I would say:

  1. Create an empty OBX segment object
  2. Use iterator "i" to Iterate over all the OBXs in the source message OBX group while checking if OBX:5 contains "Total" string,
    1. If yes, save an index of this OBX in a list/array %ArrayOfDataTypes  = IndexList, and increase the iterator "i" by 1
    2. At the same time copy each OBX segment from a source message as a segment object in a list of objects, use %Library.ListOfObjects = ObjectsList at the index "i".
  3. When all OBXes are copied across,  then use InsertAt() to insert empty OBX segments into ObjectsList, where index matches the index fromIndexList. Keep in mind the index "i" shifted by one each time "Total" string was found
  4. Create an empty target message, copy PID, ORC, OBR segments across from the source message
  5. Iterate over %Library.ListOfObjects , extracting OBX segments and copying them to the new target messgae.

Let me know how it went. :)