User bio
404 bio not found
Member since Oct 16, 2020

Hi Lionel,

There shouldn't be a need to use %Save() after you've built the HL7 message as you're not saving it to any custom persistent class, plus, the HL7 message will be stored into the EnsLib.HL7.Message class any way.

Once you've created your new HL7 message you can leave out the %Save() and just use; Set tSC=..SendRequestAsync("Process.BDROWARouter",tMsg,0) - the 0 indicating you don't want a response back (assuming that's how you want it set up). Then you can Quit tSC.

If you are anticipating more changes to the custom HL7 you're building it might be good to call a class method for that to split the code up a bit, I've done something similar on my BD integration where I'm sending multiple ZRA's from one RDE message depending on whether or not it's a diluent. I've removed some ..SendRequestAsync lines as it is a multi-site dispensing integration I did for BD, not sure if you're doing the same. Hope this helps.

If $ISOBJECT(pRequest.FindSegment("RXC"))
    $$$LOGINFO("Mixture order. Drug information will be taken from the RXC segment, but only if there's an 'A' present in RXC:1.")
    Set RXCCount=pRequest.GetValueAt("RXCgrp(*)")
    For i=1:1:RXCCount
        If (pRequest.GetValueAt("RXCgrp("_i_").RXC:1")="A") && ((pRequest.GetValueAt("RXCgrp("_i_").RXC:2.1")'="") && (pRequest.GetValueAt("RXCgrp("_i_").RXC:3")'=""))
            Set RXCBarcode=pRequest.GetValueAt("RXCgrp("_i_").RXC:2.1")
            Set RXCQuantity=pRequest.GetValueAt("RXCgrp("_i_").RXC:3")
            Set tSC=..BuildZRARequestMsg(pRequest,$GET(DispensingSite),MsgType,"",1,RXCQuantity,RXCBarcode,.ZRAMsg)
            If tSC
                If $GET(ZRAMsg)'=""
                    If DispensingSite="ORC" Set tSC=..SendRequestAsync("BD Rowa ORC",ZRAMsg,1,"OrderSent")

Sample segments (modified)...

RXC|A|00000000001^Med1^ADS|28|Tab^tablet|30|mg^mg|^VALNI XL
RXC|A|00000000011^Med2^ADS|28|Tab^tablet|60|mg^mg|^VALNI XL

Trace showing the split...


Hi Ciaran,

Might be your best bet to construct a message from scratch and start appending segments in the order you wish, for example, loop through the PIDgrp appending the segments you want to your newly constructed message and then loop through ORCgrp NTE's and append each segment.

You can loop through and append by using code such as:

If ORMIn.GetValueAt("ORCgrp(1).NTE(1)")'=""
        Set NTECount=ORMIn.GetValueAt("ORCgrp(1).NTE(*)")
        For i=1:1:NTECount
                Set tSC=ORMOut.AppendSegment(ORMIn.GetSegmentAt("ORCgrp(1).NTE("_i_")"))

Certifications & Credly badges:
Global Masters badges:
Jordan has no Global Masters badges yet.
Jordan has no followers yet.
Jordan has not followed anybody yet.