The HL7 v2 projects provide the business logic to support HL7 v2 message processing in accordance with the IHE framework. These projects use the HL7 Binding Component along with several BPEL processes to process HL7 v2 messages into and out of the PIX/PDQ Manager. The HL7 v2 projects include two BPEL projects and two corresponding Composite Application projects. The first BPEL project (IHE_PIX_PDQ_V2_Direct) handles patient identity feeds, demographic queries, and PIX queries for patient identifiers. The second BPEL project (IHE_PIX_Update_V2_Direct) handles outbound patient updates from the master index.
These projects are configured to use the Minimal Lower Layer Protocol (MLLP) version 1.
The HL7 V2 projects include the following:
The IHE_PIX_PDQ_V2_Direct project handles HL7 v2 messages for patient admissions, updates, and merges as well as PIX queries and patient demographics queries. It contains a main BPEL process and several subprocesses, each designed to handle a different type of HL7 event. The main BPEL process uses a Pick activity to determine the type of incoming message and the subprocess to use to process it. The BPEL processes define mapping from the incoming messages to the master index, call the Domain Lookup service to resolve domain names, and define how the data is manipulated or transformed and routed. They also generate ACK/NACK responses and ATNA audit repository messages. The BPEL processes call the master index API to add, update, and merge records and to query the database.
The BPEL subprocesses all perform request/reply operations and are all called from the main BPEL process, IHEPixPdqV2BpelProcess. The IHE_PIX_PDQ_V2_Direct project includes the following subprocesses under the folder BpelProceses:
processAdtA40MsgBpel: Processes merge events (A40).
processAdtMsgBpel: Processes patient add or update events (A01, A04, A05, and A08).
processQ22MsgBpel: Processes patient demographics queries (Q22).
processQbpMsgBpel: Processes PIX queries for associated patient identifiers (Q23).
The first three subprocesses in the above list map directly to the master index object structure. If you modify the master index object structure, the mapping in these processes might also need to be updated.
This project includes the corresponding WSDL documents for the main process and subprocesses, and XML schema files to support HL7 processing. The main WSDL document, hl7RecvWsdl specifies all request and response message types, along with the required ports and HL7 bindings. This is the file where the HL7 WSDL extensibility elements (address, protocolproperties, and communicationcontrols) are defined. There are additional WSDL documents that are specific to the type of event being processed and one to support the ATNA repository. Each is associated with a specific BPEL process and is named similarly to the BPEL process for which it is designed.
The IHE_PIX_Update_V2_Direct project handles outbound HL7 v2 PIX update notifications. In this type of transaction, updates to the master index data are written to a JMS topic and then processed through the Patient Update Handler MDB to separate HL7 v2 and HL7 v3 topics, making the updates available to any domains that subscribe to one of those topics. The BPEL process in this case receives the message from the HL7 v2, calls the Domain Lookup service to resolve domain names, processes it according to the IHE framework, and then generates appropriate outbound message (an HL7 A31 message). These messages are sent dynamically to subscribed HL7 systems through the HL7 Binding Component. The BPEL process also generates the corresponding ATNA record and writes it to the audit log.
This project only contains one BPEL process, PixOBFeedV2Bpel, that defines all of the processing logic. The BPEL process includes mappings to the master index object structure. If you modify the master index object structure, the mapping in this process might also need to be updated.
The IHE_PIX_PDQ_V2_Direct_ca project defines the service assembly for the IHE_PIX_PDQ_V2_Direct project. In the graphic below, you can see all messaging to and from the HL7 systems is transmitted through the HL7 Binding Component, and all ATNA logging activities are handled through the HTTP Binding Component (using SOAP).
The IHE_PIX_Update_V2_Direct_ca project defines the service assembly for the IHE_PIX_Update_V2_Direct project. In the graphic below, you can see that messages from the JMS topic are processed through the JMS Binding Component into the BPEL process, and the response is then processed through the HL7 Binding Component. ATNA logging activities are handled through the HTTP Binding Component (using SOAP).