Hi,

the communication pattern you are referring to is called Enhanced
Acknowledgement as defined in chapter 2.9.3 of the HL7 spec. Note that this
goes along with setting MSH-15 and MSH-16 of the initiating message
depending on what kind of acks you expect as response.

Anyway, HAPI currently does not support Enhanced Acknowledgement - the
server framework expects exactly one response with MSA-1 referring to the
original message ID, regardless whether this is a communication
acknowledgment or an application response. Enhanced Acknowledgement seems to
be rather rarely used compared to the Original Acknowledgement mode.

If you think that this is a major issue (maybe others need this as well?),
feel free to file a feature request in the HAPI tracker. Of course,
contributions are also always welcome!

cheers
Christian




Paulo Ferreira-6 wrote:
> 
> Hi,
> 
> Currently, i'm using API libs to synchronize information between the two
> systems. Recently, I had some difficulty in using the aplication handlers
> (from HAPI) to listen for unsolicited messages.
> 
> Use case:
> We need to syncronize some information between two clinical information
> systems: from system A to B. For that, system A send OMP_O09 message to
> system B, receiving the corresponding receipt of communication and
> subscribe ORP_O10 message (comming from system B) as a application
> acknowledgement using Application handlers.
> 
> Problem:
>  - OMP_O09 message is sent successfully from A to B, and SimpleServer
> (listener) is started on A;
>  - Comunication acknowledgement (ACK) is returned in response;
>  - System B sent Applicational acknowledgement (ORP_O10) to A with some
> information about the success of the operation performed;
>  - SimpleServer (listener) receive ORP_O10 but considers it as "Unexpected
> Message Received";
> 
> [LOG]
> (HapiLogImpl.java:78) - Accepted connection from 192.168.4.202
> (HapiLogImpl.java:33) - ACK ID: MSG305
> (HapiLogImpl.java:78) - End of input stream reached.
> (HapiLogImpl.java:78) - Closing connection (no more messages available).
> (HapiLogImpl.java:33) - ACK ID: MSG305
> (HapiLogImpl.java:78) - Unexpected Message Received:
> MSH|^~\&|SAM|1030101|PEM|SPMS|20120820173323.644+0100||ORP^O10|be5c9b09-e93b-
> 
> 465e-aaeb-d533b6b4b6ce|P|2.5
> MSA|AA|MSG305|Success|||
> [/LOG]
> 
> 
> After some code analysis we detect that in processMessage (method of
> Receiver class) is invoked conn.findRecipient(ackID) method that verify if
> ackId is in receipts table. As ACK already been processed, ackID has been
> removed from receipts table, this causes a null MessageReceipt. So the
> message is not processed.
> 
> [CODE FROM RECEIVER CLASS]
>  protected void processMessage(String message) {
>         String ackID = conn.getParser().getAckID(message);
>         if (ackID == null) {
>             Grunt g = new Grunt(conn, message);
>             g.start();
>         }
>         else {
>             MessageReceipt mr = conn.findRecipient(ackID);
>             if (mr == null) {
>                 log.info( "Unexpected Message Received: " + message );
>             }
>             else {
>                 mr.setMessage(message);
>             }
>         }
>     }
> 
> [/CODE FROM RECEIVER CLASS]
> 
> It seems that sendAndReceive method from Initiator class is ONLY SUITEABLE
> for send a mensage and receive the corresponding comunication ACK!
> 
> I wonder if anyone can help me with this issue. On one hand I wonder if
> this is really a problem that has not yet been spoken. On the other hand,
> if there are other solutions that you seem better suited for this
> situation.
> 
> 
> Cheers,
> 
> Paulo Ferreira.
> 
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Hl7api-devel mailing list
> Hl7api-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hl7api-devel
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Receiving-soliciting-messages-tp34327949p34331024.html
Sent from the hl7api-devel mailing list archive at Nabble.com.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Hl7api-devel mailing list
Hl7api-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to