How to send from one channel to multiple but selectively
I need to set up an interface from an internet application which only wants to communicate to one port on Iguana. The data that I will be receiving is client specific, so when I translate it to HL7, it needs to be sent to multiple ip and port addresses. I’m NOT sending all the data to all the clients, ie client A needs to only get client A data, client B only client B data, etc. Plus, the clients have view access to logging, so they need to only view their own data. I’ve got the inbound data channels working for a different interface, but how to do this outbound interface has me lost. Since the internet app only wants to send to one ip/port on Iguana, I think I will have to have a channel devoted to receiving the data: probably From Translator in the source so I can use net http to communicate. If I used To Channel on the destination, I’m not clear on how I could set it up to send client A data to Channel A, client B data to Channel B, etc. Thanks.
For Destination component use “To Channel”. So that all messages go to queue. Create number of channels of type “From Channel to LLP Client” as number of destination (A, B, and C).
In Filter component of every channel use simple Translator script to pass through only relevant to this channel messages and ignore other. Which are relevant? Inspect content of some fields in message itself (http://wiki.interfaceware.com/163.html)
By Iguana design, every channel is given a chance to inspect every message in queue, so that no messages left behind by any channel.
I thought the Filter component was considered ‘legacy’. Also, would the log show the messages before they were filtered or only after? I can’t have one client seeing the messages from another client.
Hi, I have multiple scenarios like this set up. I AM still running in legacy mode but I think the principle will be the same in Iguana 5/translater.
1. I have a channel (named HOST1 results out) defined which recieves HL7 results from my LIS. Source = LLP Listener, Destination = To Channel
2. I have multiple channels defined where source = From Channel (the channel defined above), Destination = LLP Client. In, each of these channels, the vmd file controls whether the “filter” is applied to any given message. In “identity” I define MSH.9.1 = ORU, MSH.9.2 = R01, ORC.13.4 = XXXX (where XXXX is our unique client account # for a given clinic or hospital).
So… Even though each channel reads every message, it only routes (and applies any scripting) IF that message meets ALL the identity requirements.
I would think you could still do this in Ver 5 in the VMD (you would still have unique vmd files for each site you want to route to). I’m sure Lev would recommend a more elegant solution but bottom line is you can do this. I actually have 3 result feeds (different flavors of HL7) out of the LIS, those feed 37 result channels, each to a unique destination. ALL of these 37 use one or more of the 3 feeds from the LIS as a source.
This scenario has to use Filter component.
Also, would the log show the messages before they were filtered or only after?
Check this page in Wiki http://wiki.interfaceware.com/1100.html , it will answer your question.
Also, would the log show the messages before they were filtered or only after? I can’t have one client seeing the messages from another client.
Do you mean in Iguana Logs? First, it is not a good idea to let your customers to access Iguana logs.
Otherwise, due to implemented Filter component, each client will receive only its own messages.
You must be logged in to reply to this topic.