
* HL7Dump :

1. HL7Dump is used for dumping the contents of HL7 Message into understandable .doc file. 
This .doc file contains HL7 Message content in the form of a key value pair .

   E.g. :- 
   Message content in HL7 Message:
			
EVN||200708181123||
   Message content in .doc file:
			SEGMENT :: EVN
  				Recorded DateTime : 200708181123

2. HL7XMLDump is used for dumping the contents of HL7 Message into .xml file.

   E.g. :-
   Message content in HL7 Message:
			
EVN||200708181123||
   Message content in .xml file:
	<Segment Name="EVN">
            <Field Name="Recorded DateTime" Type="DTM" Value="200708181123"></Field>

        </Segment>


Note: All Base Jars and Message transaction set jars should be added in CLASSPATH.

3. Hl7BatchFiletoXMLDump and Hl7BatchtoXMLDump is used for dumping the contents of HL7 Batch File and Batch into .xml file respectively.

*********************************************************************************************************

* HL7Editor :

HL7Editor is used for editing HL7 Message. User can edit HL7 Message at Segment or Group, and 
Segment Attribute level by Adding , Removing and Updating Segments or Attributes. 
User can remove only optional segments or attributes.

Note: All Base Jars and Message transaction set jars should be added in CLASSPATH.



********************************************************************************************************

* HL7Model :

These are sample testcodes to demonstrate parsing and serializing of HL7 message.

E.g.:
- ADT_A01_FileTest.java file demonstrates Parsing and Serializing of Hl7 Message for ADT_A01 Event.
- ADT_A01_PopulateTest.java file demonstrates Parsing and Serializing of programmatically 
  populated HL7Message for ADT_A01 Event.

Note: All Base Jars and Message transaction set jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

*********************************************************************************************************

* HL7MessageValidate :

HL7MessageValidate file is used to check whether HL7 message is valid HL7 message or not.

Note: All Base Jars and Message transaction set jars should be added in CLASSPATH.



*********************************************************************************************************

* SequenceNumber :

For certain types of data transactions between systems the issue of keeping databases synchronized is 
critical. To keep databases synchronized for data transaction between systems and prevent duplicate 
transactions, Sequence Number Protocol is used. 

Note : All Base Jars, Message Transaction Set Jars (As per the requirement of Source and Recipient used),
 Network related jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

*********************************************************************************************************

* QueryInteractiveContinuation :

The Interactive Continuation Protocol defines the methodology for the intentional transmission of 
a large query-response payload over multiple HL7 messages. Without this protocol, the response would be 
returned in a single large logical message. The protocol is called interactive because there is 
an ongoing dialog between the Client and the Server.

Note : All Base Jars, Message Transaction Set Jars (As per the requirement of Source and Recipient used),
 Network related jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

*********************************************************************************************************

* QueryCancellation :

Query cancellation is canceling a sent request (by sending a specific query to responding 
entity) for which response may already be on its way. However client will not be interested in received 
response for a query that is cancelled. 

Note : All Base Jars, Message Transaction Set Jars (As per the requirement of Source and Recipient used),
 Network related jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

*********************************************************************************************************

* HL7System :

This Sample code demonstrates implementation of Server and Client for HL7 System.
HL7System has following capabilities:
1. Send Query , Event , Batch and BatchFile , ACK for Response received by creating Separate User Session.
2. Receive Response, ACK, for Sent Queries, Event, Batch and BatchFile.
3. Send Response, ACK for Received Queires, Event, Batch and BatchFile.
4. Receive Query, Event, Batch and BatchFile, ACK for Response received by creating Separate Server Session 

Note: All Base Jars, Message Transaction Set Jars (As per the requirement of Source and Recipient used),
 Network related jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

**********************************************************************************************************

* Localextension :

HL7 protocol defines extension in specification of message, segment and data type through use of Local Extension capability. 
Local extension can be used for things which are not covered by specifications given by protocol. 

Note: All Base Jars, Message Transaction Set Jars (As per the requirement of Source and Recipient used),
 Network related jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

*********************************************************************************************************

* PubSub (Publish and subscribe):

“Publish and subscribe” refers to the ability of one system, the “Publisher”, to offer a data stream that 
can be sent to recipient systems upon subscription. Subscription is a process/protocol that allows one system to request 
that prospective data be sent for a specified period of time, or for an open-ended period of time until further notice. 
A Publisher is one who possesses and transmits streams of data.     

Note: All Base Jars, Message Transaction Set Jars (As per the requirement of Source and Recipient used),
 Network related jars should be added in CLASSPATH.
Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.


*********************************************************************************************************

* HL7ClientServer :

This sample code demonstrates implementation of Client Server for Patient Administration System.

/** Sample Test Scenarios **/


Test Scenario 1: Simple ADT Event parsed from file


Message: ADT_A01_Event[Patient Admit]	


Patient Admin Client: --> Sends ADT_A01
Patient Admin Server: --> Receives ADT_A01 and --> Sends ACK_A01[Acknowledgement]



----------------------------------------------------------------------------------------------------------

Test Scenario 2: Simple Immediate Query parsed from file


Message: QBP_Q21_Immediate[Get Patient Demographics]	


Patient Admin Client: --> Sends QBP_Q21

Patient Admin Server: --> Receives QBP_Q21 and --> Sends RSP_K21[Response]


Note: Since the query priority is "Immediate" the response in sent immediately.

----------------------------------------------------------------------------------------------------------

Test Scenario 3: Simple Deferred Query parsed from file


Message: QBP_Q21_Deferred[Get Person Demographics]	


Patient Admin Client: --> Sends QBP_Q21

Patient Admin Server: --> Receives QBP_Q21 and --> Sends ACK_K21 <<time lapse>> --> sends RSP_K21[Response]


Note: Since the query priority is "Deferred" first an acknowledgement will be sent and then after 
time lapse the response is sent.



----------------------------------------------------------------------------------------------------------

Test Scenario 4: Simple Batch with only ADT events parsed from file


Message: ADT_A01_BatchOnly[Batch file with ADT_A01 messages]	


Patient Admin Client: --> Sends Batch 

Patient Admin Server: --> Receives Batch  and --> Sends [Batch Acknowledgement]



----------------------------------------------------------------------------------------------------------

Test Scenario 5: Mixed Batch with ADT events and query parsed from file


Message: ADT_Query_MixedBatch[Batch with ADT_A01 and QBP_Q21 messages]	


Patient Admin Client: --> Sends Mixed Batch 

Patient Admin Server: --> Receives Mixed Batch  and --> Sends [Mixed Batch Acknowledgement]



----------------------------------------------------------------------------------------------------------


Test Scenario 6: Batch file with only ADT batches parsed from file


Message: ADT_A01_BatchFile[Batch file with batch of ADT_A01 messages]	


Patient Admin Client: --> Sends Batch File

Patient Admin Server: --> Receives Batch File  and --> Sends [Batch File Acknowledgement]





NOTE: Common Classes Populate_Test.java and PopulateDataType.java are required and are available in CommonClasses folder.

*********************************************************************************************************

* HL7 System Jars :

Base Jars:-
	hl7base282.jar
	en_US.jar
	commons-collections-3.2.jar
	commons-codec-1.3.jar

Respective Message Transaction Set Jars:-

 For example if Patient Administration System Message set is used then only patientadministration282.jar is
 required in CLASSPATH. Likewise for using other HL7 System Message Sets, add respective jars in CLASSPATH.
 These are as follows:
 	applicationmanagement282.jar
	claimsandreimbursement282.jar
 	clinicallaboratoryautomation282.jar
	financialmanagement282.jar
	masterfiles282.jar
	materialsmanagement282.jar
	medicalrecords282.jar
	observationreporting282.jar
	orderentry282.jar
	patientadministration282.jar
	patientcare282.jar
	patientreferral282.jar
	personnelmanagement282.jar
 	query282.jar
 	scheduling282.jar

Network Related Jars:-
  
 For building networking logic, application will require following jars :

	hl7net282.jar
 	auxiliaryProtocol282.jar


**********************************************************************************************************









