|
Home > Archive > BizTalk Server Applications Integration > October 2004 > MLLP ACK's
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
|
|
|
| Hello, I can't seem to get HL7 ACK's to be sent back across a two way receive
port using the HL7 Accelerator. I need to receive an ADT message from a
hospital system and return an acknowledgement across the same port. When I
use the MLLPSEND.exe utility with the /twoway option, it just sits there
waiting for the acknowledgement. How do I set this up? The tutorial says I
should create a Party. However, a Party can only be associated with a Send
port, not a two way receive port.
Also, the documentation is not clear about how the mllpsend /twoway option
works. It says "Sender will wait for a response from the receiver. SB and EB
need to be specified. CR is optional. In File mode, the response is stored in
the file FILE.RESPONSE." What does it mean by "File Mode"? How is this
setup?
Step by step instructions would be helpful because the documentation is not
clear.
Thanks, Brian
| |
| Steve Sjostrom 2004-10-07, 5:47 pm |
| Hi Brian,
Here are the artifacts required in BizTalk Explorer and settings in BTAHL7 Configuration Explorer to return an acknowledgement across the same port:
1) Create one Receive Port (Request-Response)
Receives the MLLP message
Sends and ACK back to the source party on same port
(use BTAHL72XPipelines.BTAHL72XReceivePipeline)
2) Create one Send Port
Subscribe to the received (ADT) message to route it somewhere
(use BTAHL72XPipelines.BTAHL72XReceivePipeline)
3) Create a Party
The name of the Party should be the same name appearing in MSH3.1 of the inbound ADT
If ADT MSH3.1 value is "Admissions", that's what you name the Party
Associate this Party with the send port created in step 2
You cannot associate a Receive Port or Location with a Party
4) Start BTAHL7 Configuration Explorer
In the left pane, select the Party created in step 3
In the right pane, select the Acknowledgement tab
For the "Acknowledgment Type", choose OriginalMode
Complete "Field Values in Generated Acknowledgment" as needed
Here's an excerpt form the BTAHL7 documentation:
You configure HL7 acknowledgments at the party level using Microsoft BizTalk Accelerator for HL7 (BTAHL7) Configuration Explorer. Acknowledgments apply to parties that are sending HL7 messages through a
receive location (possibly the MLLP adapter) and the HL7 2.X receive pipeline. When a message completes parsing and validation, BTAHL7 can create an acknowledgment message that contains the result
(success or error) of the validation process. BTAHL7 can return acknowledgment messages in one of two ways. If the original sending party submitted the original message through a two-way receive port
configuration, BTAHL7 returns the acknowledgment message through that original port location. If the original sending port submitted the original message through a one-way receive port, then BTAHL7 submits the
acknowledgment message into the MessageBox database and routes it using the subscription model. BTAHL7 performs party association for receive message processing automatically based on the value within
the sending application field of the HL7 message (MSH 3.1).
For more information on this topic, search for "Acknowledgments" in the BTAHL7 documentation or see the documentation tutorials.
Please let me know if this addresses your question,
Steve
| |
|
| Thanks for the response. This helps but I still have some questions. First,
you said to "Create one Receive Port (Request-Response)". However, I don't
understand how to do this when I need to use an orchestration. If I create a
Request-Response port on my Orchestration then it requires me to send
something back on the response part of the port in the orchestration.
Here's my scenario:
1) A customer's hospital system will send ADT information to my company's
Biztalk server. They are using eGate and plan to use the MLLP transport.
2) Biztalk should receive the information and an orchestration should use a
stored procedure to insert the data into a database. I have no problem using
the SQL Adapter to call the stored proc.
3) My company's Biztalk server should return an ACK to the customer's eGate
system.
Thanks in advance.
Brian
"Steve Sjostrom" wrote:
> Hi Brian,
>
> Here are the artifacts required in BizTalk Explorer and settings in BTAHL7 Configuration Explorer to return an acknowledgement across the same port:
>
> 1) Create one Receive Port (Request-Response)
> Receives the MLLP message
> Sends and ACK back to the source party on same port
> (use BTAHL72XPipelines.BTAHL72XReceivePipeline)
>
> 2) Create one Send Port
> Subscribe to the received (ADT) message to route it somewhere
> (use BTAHL72XPipelines.BTAHL72XReceivePipeline)
>
> 3) Create a Party
> The name of the Party should be the same name appearing in MSH3.1 of the inbound ADT
> If ADT MSH3.1 value is "Admissions", that's what you name the Party
> Associate this Party with the send port created in step 2
> You cannot associate a Receive Port or Location with a Party
>
> 4) Start BTAHL7 Configuration Explorer
> In the left pane, select the Party created in step 3
> In the right pane, select the Acknowledgement tab
> For the "Acknowledgment Type", choose OriginalMode
> Complete "Field Values in Generated Acknowledgment" as needed
>
> Here's an excerpt form the BTAHL7 documentation:
>
> You configure HL7 acknowledgments at the party level using Microsoft BizTalk Accelerator for HL7 (BTAHL7) Configuration Explorer. Acknowledgments apply to parties that are sending HL7 messages through a
> receive location (possibly the MLLP adapter) and the HL7 2.X receive pipeline. When a message completes parsing and validation, BTAHL7 can create an acknowledgment message that contains the result
> (success or error) of the validation process. BTAHL7 can return acknowledgment messages in one of two ways. If the original sending party submitted the original message through a two-way receive port
> configuration, BTAHL7 returns the acknowledgment message through that original port location. If the original sending port submitted the original message through a one-way receive port, then BTAHL7 submits the
> acknowledgment message into the MessageBox database and routes it using the subscription model. BTAHL7 performs party association for receive message processing automatically based on the value within
> the sending application field of the HL7 message (MSH 3.1).
>
> For more information on this topic, search for "Acknowledgments" in the BTAHL7 documentation or see the documentation tutorials.
>
> Please let me know if this addresses your question,
> Steve
>
>
>
| |
| Steve Sjostrom 2004-10-15, 9:09 pm |
| Hi Brian,
I understand that this is your scenario
1) You receive an ADT messaged via MLLP from a customer hospital
2) BizTalk should receive the message, send an ACK, then process the message in an orchestraton
3) Your orchestration has stored procedures to insert data into a database.
After the message is send to the database, is this the end ot the process? You have no need for a send port, correct?
The Requrest-Response Receive port will send an ACK if configured in BTAHL7 config explorer. In order for BTAHL7 config
explorer to process the ACK it must be associated with the party via a send port.
I researching this now.
Steve
| |
|
| Yes, that is correct. The end of the process is when the orchestration calls
the SQL Adapter which calls a stored procedure to insert data into the
database.
Also, can you explain Original and Enhanced mode ACK's? To my
understanding, the Original mode sends an ACK back to the customer
immediately after Biztalk receives the message. Enhanced Mode sends two
ACKS. The first is the same ACK that Original mode sends. The second is a
another ACK generated by the app processing the message. If I wanted my
stored procedure to return success/failure to the orchestration to return an
app acknowledgement, how would I set it up to send the ACK back? Do I use
Enhanced mode in this case?
Thanks!
"Steve Sjostrom" wrote:
> Hi Brian,
>
> I understand that this is your scenario
> 1) You receive an ADT messaged via MLLP from a customer hospital
> 2) BizTalk should receive the message, send an ACK, then process the message in an orchestraton
> 3) Your orchestration has stored procedures to insert data into a database.
>
> After the message is send to the database, is this the end ot the process? You have no need for a send port, correct?
>
> The Requrest-Response Receive port will send an ACK if configured in BTAHL7 config explorer. In order for BTAHL7 config
> explorer to process the ACK it must be associated with the party via a send port.
>
> I researching this now.
> Steve
>
>
| |
| Steve Sjostrom 2004-10-15, 9:09 pm |
| Hi Brian,
I am researching this. My understanding is that you want to send an ACK on the same port upon receiving an ADT message.
However you have no need to define a send port since ADT processing terminates in your Orchestration.
Here's there message flow. Is this correct
Source Party -----<adt> -----> Receive Port -----> Orchestration( Update SQL ) <end>
There is no send port to associate with a Party. In BTAHL7 Configuration Explorer, there is no Party to configure ACKs.
I'll let you know what I find.
Steve
| |
|
| Thanks. Let me know what you find out. I have two customers waiting on me
to come up with a solution so they can pass ADT data to me.
"Steve Sjostrom" wrote:
> Hi Brian,
>
> I am researching this. My understanding is that you want to send an ACK on the same port upon receiving an ADT message.
> However you have no need to define a send port since ADT processing terminates in your Orchestration.
>
> Here's there message flow. Is this correct
>
> Source Party -----<adt> -----> Receive Port -----> Orchestration( Update SQL ) <end>
>
> There is no send port to associate with a Party. In BTAHL7 Configuration Explorer, there is no Party to configure ACKs.
>
> I'll let you know what I find.
> Steve
>
>
>
>
| |
| Steve Sjostrom 2004-10-15, 9:09 pm |
| The ACK creation needs a trigger; and there are two possible sets of triggers:
1) ACK can be triggered by appropriate valuation at MSH15 and/or MSH16. Maybe ADT App can value the instance
appropriately.
2) ACK can be triggered by creating a party that matches MSH3 (ADT) and a config setting requiring the ACK.
The second option should work in your scenario as you don't have to associate a Send port with the Party in order to
configure acknowledgemnts.
Steve
| |
|
| Hello, have you had any luck figuring out what to do?
"Steve Sjostrom" wrote:
> Hi Brian,
>
> I am researching this. My understanding is that you want to send an ACK on the same port upon receiving an ADT message.
> However you have no need to define a send port since ADT processing terminates in your Orchestration.
>
> Here's there message flow. Is this correct
>
> Source Party -----<adt> -----> Receive Port -----> Orchestration( Update SQL ) <end>
>
> There is no send port to associate with a Party. In BTAHL7 Configuration Explorer, there is no Party to configure ACKs.
>
> I'll let you know what I find.
> Steve
>
>
>
>
|
|
|
|
|