Hi Erik,
I don't know what version of HAPI you're using ... but in the most
recent versions (0.5) the ADT_A01 class derives from AbstractMessage
class which in turn implements the Message interface.
So if you're using the HAPI provided model classes the instanceof
operator will work fine.
Please be careful when using a construct like you suggest with events
that use a common message structure. e.g. an ADT^A08 event also uses
an ADT_A01 message structure (=ADT_A01 class).
Best Regards
Nico
At 2/01/2009, Erik Gfesser wrote:
Subhajit,
While I am not sure what details are behind your comment that your
program "just stopped on the line number 4 and not going to the next
line", what seems to be clear is that an ADT A01 message event is assumed.
A previous reply to your message that seems to recommend checking to
determine whether "theIn" is an instance of "ADT_A01", although well
intentioned, is unfortunately not possible since there is no
relationship between objects of class Message and objects of class
ADT_A01 as the HAPI library is currently designed.
To determine whether the message is in fact an ADT_A01, you will
need to do something like the following, unless you decide to modify
the HAPI library source code:
/*****/
String messageType = null;
String messageEvent = null;
MSH messageHeader = null;
Object obj = null;
try {
obj = ( MSH )message.get( "MSH" );
messageHeader = ( MSH )obj; //message.get( "MSH" );
} catch(ClassCastException e) {
throw new HL7Exception(e);
}
messageType = messageHeader.getMessageType().getMessageType().getValue();
messageEvent = messageHeader.getMessageType().getTriggerEvent().getValue();
/*****/
Make sure that messageType is "ADT" and messageEvent = "A01" before
casting to ADT_A01.
Erik
subhajit bhadury <[email protected]> wrote:
Hi,
I am developing a HL7 client application that will just receive
hl7 message getting from hl7 server. Problem is given below,
1 public Message processMessage(Message theIn) throws
ApplicationException, HL7Exception {
2 encodedMessage = new PipeParser().encode(theIn);
3 System.out.println(encodedMessage);
4 ADT_A01 objADT_01=(ADT_A01) theIn;
5 ACK retVal;
6 try {
// This method takes in the MSH segment of an
incoming message, and generates an
// appropriate ACK
7 retVal = (ACK)DefaultApplication.makeACK(msh);
8 } catch (Exception e) {
9 throw new HL7Exception(e);
10 }
11 return retVal;
12 }
Encoded message is showing fine but my program just stopped on the
line number 4 and not going to the next line. I just wanted to
populate objADT_01 object and want to extract segment information. I
can't understand why. Please help me.
Thanks & Regards,
subhajit bhadury.
------------------------------------------------------------------------------
_______________________________________________
Hl7api-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hl7api-devel
------------------------------------------------------------------------------
_______________________________________________
Hl7api-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hl7api-devel
------------------------------------------------------------------------------
_______________________________________________
Hl7api-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hl7api-devel