You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 5
Next »
Say you have a text file with a bunch of HL7 messages. Each segment ends with \r. And each message ends with \r\n. Here’s the file attached:
You could use the simulator component - but honestly it’s probably easier to write you own little component.
Use a custom field for the input file name
See Custom Fields Here we use ~/test.txt for the default location of the input file.
You access that with:
local FileName = component.fields()
Read in the file using the FIL library with FILread
The FIL library makes it really easy to inhale the file:
local Content = FILread("main.lua");
Examine the file contents in the translator - each segment ends in \r but the message ends with \n characters
We can easily see by looking at the contents of the file using the Escaped Text mode:
Then we split the contents on the \n with local List = Content:split("\n")
So now our code looks like this:
require "FIL.FILreadWrite"
function main(Data)
local F = component.fields().InputFile
trace(F)
local Content = FILread(F)
local List = Content:split("\n")
trace(#List)
end
In the editor it looks like:
By double clicking of the list coming back we can we the list of messages:
With a for loop we can push these messages into the queue:
for i=1, #List do
queue.push{data=List[i]}
end
And now we have a working test component!
Connect it the component we want to test with - done!
Now for a little extra flourish:
Add some custom logging
Let’s add some Custom Logging
Just added lines 7 and 11 to the script:
function main(Data)
local F = component.fields().InputFile
trace(F)
local Content = FILread(F)
local List = Content:split("\n")
trace(#List)
iguana.logInfo("#start About to queue "..#List.." messages");
for i=1, #List do
queue.push{data=List[i]}
end
iguana.logInfo("#end Finished queueing "..#List.." messages");
end
Now we we run the script we can see custom logging:
And now we have a simple tool that makes it easy to test our HL7 interfaces. But more importantly this exercise put together a set of little concepts that once you grasp you can solve not only simple problems, but you can solve complex ones as well. There are no bottlenecks you cannot solve.