Formatting output HL7 without trailing | characters
Contents
If you apply the tostring()
function (which is how the :S()
short cut method is implemented) to a HL7 node tree is will format the output such that:
- There are trailing “|” characters
- The default HL7 delimiters are used
Sometimes you may wish to have more control over the output format. The best way to do this is to make a node extension routine which gives you the precise format you need.
Don’t worry, we don’t expect customers to write these, if you run this issue just let us know and we’re happy to put together examples of different routines to do this for you.
This example uses a custom function node.flatwire()
to format a message without any trailing “|” characters:
function main(Data) local Msg = hl7.parse {vmd = 'example/demo.vmd', data = Data} -- Out1 contains the message without trailing "|" delimiters local Out1 = Msg:flatwire() -- Out2 contains the message with the default formatting. local Out2 = Msg:S() end function node.flatwire(Node) local R = '' for i=1, #Node do if Node[i]:nodeType() == 'segment' and not Node[i]:isNull() then R = R..Node[i]:S() R = R:sub(1, #R-1) -- get rid of trailing delimiters R = R..'\r' elseif Node[i]:nodeType() == 'segment_repeated' then R = R..Node[i]:flatwire() elseif Node[i]:nodeType() == 'segment_group' then R = R..Node[i]:flatwire() end end return R end
Tip: You can put node.flatwire()
in a module like “mynode” or “flatwire” if you wish.
Comparing the output, Out1 will contain the custom format:
MSH|^~\&|AcmeMed|Lab|Main HIS|St. Micheals|20110213144932||ADT^A03|9B38584D9903051F0D2B52CC0148965775D2D23FE4C51BE060B33B6ED27DA820|P|2.6 EVN||20110213144532||||20110213145902 PID|||4525285^^^ADT1||Smith^Tracy||19980210|F||Martian\E\|86 Yonge St.^^ST. LOUIS^MO^51460|||||||10-346-6|284-517-569 NK1|1|Smith^Gary|Second Cousin PV1||E||||||5101^Garland^Mary^F^^DR|||||||||||1318095^^^ADT1|||||||||||||||||||||||||20110213144956 OBX|||WT^WEIGHT||102|pounds OBX|||HT^HEIGHT||32|cm
And Out2 contains a standard message:
MSH|^~\&|AcmeMed|Lab|Main HIS|St. Micheals|20110213144932||ADT^A03|9B38584D9903051F0D2B52CC0148965775D2D23FE4C51BE060B33B6ED27DA820|P|2.6| EVN||20110213144532||||20110213145902| PID|||4525285^^^ADT1||Smith^Tracy||19980210|F||Martian\E\|86 Yonge St.^^ST. LOUIS^MO^51460|||||||10-346-6|284-517-569| NK1|1|Smith^Gary|Second Cousin| PV1||E||||||5101^Garland^Mary^F^^DR|||||||||||1318095^^^ADT1|||||||||||||||||||||||||20110213144956| OBX|||WT^WEIGHT||102|pounds| OBX|||HT^HEIGHT||32|cm|