Recent posts:
Recent replies:

Hi Jeffrey,

I was able to loop through the specific NTE segments with the following code:

Set NTEGroup=MsgIn.GetValueAt("ORCgrp(1).OBRuniongrp.NTE(*)")
Set i=1
While i<=NTEGroup
{
    Set NTESeg=MsgIn.GetValueAt("ORCgrp(1).OBRuniongrp.NTE("_i_")")
    $$$TRACE(NTESegIndex)
    Set i=i+1
}

The trouble I have now is moving these NTE's to the end of the message beneath the SPM segment without it disrupting anything else. I am attempting to do this by first of all getting the segment index and then removing the segment referenced (commented out below). I am then getting the full segment string and importing that as a segment to then append them to the outbound message.

Set NTEGroup=MsgIn.GetValueAt("ORCgrp(1).OBRuniongrp.NTE(*)")
Set i=1
While i<=NTEGroup
 {
    Set NTESegIndex=MsgIn.GetSegmentIndex("ORCgrp(1).OBRuniongrp.NTE("_i_")")
    ;Set tSC=MsgOut.RemoveSegmentAt(NTESegIndex)
    Set NTEStr=MsgIn.GetValueAt("ORCgrp(1).OBRuniongrp.NTE("_i_")")
    Set NTE=##class(EnsLib.HL7.Segment).ImportFromString(NTEStr,.tSC,MsgIn.Separators)
    Set tSC=MsgOut.AppendSegment(NTE)
    Set i=i+1
 }

If I remove the RemoveSegmentAt() line, the segments are appending without any issues. Once I start using the RemoveSegmentAt() line, they still append but it causes some issues with other segments by removing the SPM segment and not removing all the NTE's expectedly.

Without RemoveSegmentAt()

NTE|1||Transfusion indications->Hgb <= 9 g/dL with chronic transfusion therapy
NTE|2||Has consent been obtained?->Yes
SPM|1|||Environment^Environmental sample||||||||||||||||Y
NTE|1||Transfusion indications->Hgb <= 9 g/dL with chronic transfusion therapy
NTE|2||Has consent been obtained?->Yes

With RemoveSegmentAt()

NTE|2||Has consent been obtained?->Yes
NTE|1||Transfusion indications->Hgb <= 9 g/dL with chronic transfusion therapy
NTE|2||Has consent been obtained?->Yes

Is there another recommended way of doing this?

Thanks!

Edit - I've been able to achieve this by creating a new message and building it from scratch and only looping through and grabbing the segments I need.

Followers:
Jordan has no followers yet.
Following:
Jordan has not followed anybody yet.
Global Masters badges:
Jordan has no Global Masters badges yet.