Process a batch of HL7 messages
Verified
Added by iNTERFACEWARE
How to process a batch of HL7 messages by removing the batch header and splitting it into separate messages.
Source Code
-- this code follows best practice by using local
-- functions first followed by main() at the end
require 'stringutil'
local batch = require 'batch'
local function MapData(Msg)
local msg, name = hl7.parse{vmd='example/demo.vmd', data= Msg}
local out = db.tables{vmd='example/demo.vmd', name=name}
--[[ Do some mapping and 'return'
result to calling function]]
return out
end
local function processMsg(Msg)
local Tables = MapData(Msg)
--[[ Some data can be written to database
conn.merge{data=Tables,live=true}]]
return
end
conn = db.connect{
api=db.MY_SQL,
name='test',
user='',
password='',
live=true}
function main(Data)
-- convert non-conformant terminators to "\r"
Data = batch.convertTerminators(Data)
-- split batch into array of messages
local Msgs = batch.splitBatch(Data)
-- process messages
for i=1,#Msgs do
processMsg(Msgs[i])
end
end
Description
How to process a batch of HL7 messages by removing the batch header and splitting it into separate messages.
Attachments
Usage Details
This code processes a batch of HL7 messages by removing the batch header and splitting the batch separate messages.
How to use the code:
- Create/use a MySQL database with credentials that match the code
- Load the project zip file into a Filter component, or paste in the code
- If you paste in the code you will also need to:
- Load the sample data from SampleData.txt
- Create the batch module and load the batch.lua code
- Inspect the code to see how it works
More Information