Insert data into a database
Verified
Added by iNTERFACEWARE
How to insert data from an HL7 message into a database (similar principles apply to other message types)
Source Code
function main(Data)
-- Parse the HL7 message
local Msg, Name = hl7.parse{vmd = 'example/demo.vmd', data = Data}
-- (1) connect to the database
if not Conn or not Conn:check() then
Conn = db.connect{
api=db.SQLITE,
name='test',
user='',
password='',
live=true
}
end
-- (2) create insert query string
local SqlInsert =
[[
INSERT INTO patient
(
Id,
LastName,
GivenName,
Ssn
)
VALUES
(
]]..
"'"..Msg.PID[3][1][1].."',"..
"\n '"..Msg.PID[5][1][1][1].."',"..
"\n '"..Msg.PID[5][1][2].."',"..
"\n '"..Msg.PID[19].."'"..
'\n )'
-- (3) Insert data into database
-- Note: This insert statement will fail and raise
-- an error for any duplicate patient record
Conn:execute{sql=SqlInsert, live=true}
end
Description
How to insert data from an HL7 message into a database (similar principles apply to other message types)
Attachments
Usage Details
This example shows how to insert data from an HL7 message into a database. The message is parsed into a read-only source HL7 node tree structure, and then used to generate a SQL INSERT statement.
The process for using other message types follows the same general pattern.
How to use the code:
- Use a Filter or To Translator script
- Add the code
- Load the sample messages from sample_data.txt
- Alternatively you can also load the attached project which already contains the sample messages
- Inspect the code and annotations to see how it works
Note: See the Interface Tutorials (Iguana 5 documentation) section for more information database inserts and updates using other message types.