Distributing Results: Message Routing
Monday, July 12th, 2010 by Dan Sabo
In the constellation of separate systems within a healthcare facility, it is common to have a single application which produces (HL7 ORU) Result/Report messages. These ORU messages may correspond to Orders that originated with several different ordering facilities or ordering physicians.
In many instances, there is a need to send a different message structure to each of the systems which need the ORU messages. The task of appropriately formatting and distributing the ORU messages is manageable with the flexibility and message processing power provided by an integration engine.
With a single inbound stream of ORU messages flowing to your integration engine, a method to route messages to the appropriate destinations is required.
If the ORU message contains a field to indicate which facility initiated the order, that field may be the only thing we need to use in order to route messages properly. Another option is to route messages based on the field that contains the identity of the ordering physician (or “Ordering Provider”). In this case, we are likely to benefit from the use of a lookup table, since there may be many ordering physicians associated with a given ordering facility. The technology used to implement the lookup table may vary, but the methodology would be consistent.
OrderingProviderID OrderingProviderName DestinationFacility 123 Smith, John MD Riverside 234 Jones, Mary MD Riverside 345 Johnson, Bill MD NorthSideClinic 456 Williams, Mike MD MemorialHospital … … …
Our message processing logic would simply use the lookup table to find the DestinationFacility which corresponds to the OrderingProviderID presented in the ORU message (commonly populated in the OBR-16.1 field). Using the example table above, an ORU message with an ordering provider of John Smith should be sent to Riverside.
An ordering physician may be associated with more than one ordering facility. In this case, a more robust routing method may be desired. We may want to send the Result message to all destination facilities that the ordering physician is associated with. This would require a slightly more complex lookup table and associated logic.
OrderingProviderID OrderingProviderName DestinationFacility 123 Smith, John MD Riverside 123 Smith, John MD NorthSideClinic 345 Johnson, Bill MD NorthSideClinic 456 Williams, Mike MD MemorialHospital … … …
In this case, our message processing logic would use the lookup table to find all rows that contain the OrderingProviderID and route the appropriately formatted message to each DestinationFacility. Using the example table above, a Result message with an ordering provider of John Smith should be sent to both Riverside and NorthSideClinic.
Something to keep in mind when using lookup tables such as the examples above is that the tables need to be maintained. A procedure to keep the lookup tables up-to-date should be put in place in order to ensure that message routing is accurate.
For more information and to see the original PDF, click here.


(4.80 out of 5)
(3.86 out of 5).gif)


