The HL7 v3 projects provide the business logic to support HL7 v3 message processing in accordance with the IHE framework. These projects use the HTTP Binding Component with the SOAP protocol instead of the HL7 Binding Component, and process HL7 v3 messages into and out of the PIX/PDQ Manager using BPEL processes to define the logic. The projects implement both SOAP versions 1.1 and 1.2.
The HL7 v3 projects include three BPEL projects and one Composite Application project that provides the service assembly for all three BPEL projects. The PDQ_HL7V7_Direct BPEL project handles patient identity feeds and demographic queries. The PIX_HL7V3_Direct BPEL project handles PIX queries for patient identifiers. The PIX_HL7V3_UpdateNotification_Direct BPEL project handles outbound patient updates from the master index.
The following topics provide information about the HL7 v3 projects:
For a list of HL7 v3 message types that are included in the PIX/PDQ Manager, see HL7 V3 Messaging.
The PDQ_HL7V3_Direct project handles HL7 v3 messages for patient demographics queries. It contains a main BPEL process, bpelPDQManager, and one subprocess, bpelExecuteCoreQuery. The main BPEL process calls the subprocess, which in turn call the Domain Lookup service to resolve domain names, checks whether the configured query uses wildcard characters, and then calls the Master Index Facade EJB to retrieve any matching patient records. It then resolves domain names again and sends the response back out to the main BPEL process.
The main BPEL process also processes query continuation messages and query cancel messages (QUQI_IN000003UV01). A query continuation message is sent by the consumer of the query results when multiple patient records are found as the result of a query and they are returned to the consumer in batches. When the consumer has processed on batch, it sends a message requesting to either continue to the next batch or cancel the query results. The main BPEL process uses On Event activities to determine whether to proceed with the next batch of results or to cancel the process.
The main BPEL process also defines fault handling, generates the ACK/NACK responses, and generates the ATNA audit repository messages. The subprocess in this project maps directly to the master index object structure. If you modify the master index object structure, the mapping in the bpelExecuteCoreQuery process might also need to be updated.
This project includes the corresponding WSDL documents for the main process and subprocess, and references the XML schema files to support HL7 v3 processing.
The PIX_HL7V3_Direct project handles patient identity feeds and PIX queries for identifiers, which includes the following types of HL7 v3 messages:
Patient Registry Record Added
Patient Registry Record Revised
Patient Registry Duplicates Resolved
Patient Registry Get Identifiers Query
This project only contains one BPEL process, bpelPIXManager, that defines all of the processing logic for each message type. The BPEL process receives the incoming request and uses OnMessage activities to determine which type of processing to perform. For each message type, the process calls the Domain Lookup service to resolve domain names, and then calls the Master Index Facade EJB to perform the required operation. For patient record adds, the Master Index either adds a new record or updates an existing record depending on whether it finds a match in its database. For an identifiers query, the Master Index returns a list of patient identifiers associated with the given identifier if any are found.
The BPEL process also defines fault handling, generates the ACK/NACK responses, and generates the ATNA audit repository messages. 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.
This project includes the corresponding WSDL documents for each supported message type, and references the XML schema files to support HL7 v3 processing.
The PIX_HL7V3_UpdateNotification_Direct project handles outbound HL7 v3 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 v3 topic, calls the Domain Lookup service to resolve domain names, processes the message according to the IHE framework, and then generates the appropriate outbound message (a PRPA_IN201302UV02 message). These messages are sent dynamically to subscribed HL7 systems through the HTTP Binding Component. The BPEL process also performs fault handling, and generates the corresponding ATNA record and writes it to the audit log.
This project only contains one BPEL process, PIXV3UpdateNotificationHandler, that defines all of the processing logic.
The PIXPDQ_HL7V3_Direct_ca project defines the service assembly for the all of the HL7 v3 BPEL projects. In the graphic below, you can see that messages are processed in through the HTTP Binding Component using either SOAP 1.1 or 1.2. Each BPEL process generates a response, which is then processed back out through the same Binding Component. ATNA logging activities are handled through the HTTP Binding Component (using SOAP) for all three BPEL modules.
The PIX/PDQ solution provides schema definition files (XSD files) for a subset of the HL7 V3 library. The XSD files include definitions for the following message types:
Common Message Elements |
|
COCT_MT030000UV04 |
COCT_MT150007UV |
COCT_MT030007UV |
COCT_MT230100UV |
COCT_MT030202UV01 |
COCT_MT240000UV01 |
COCT_MT030203UV02 |
COCT_MT240003UV02 |
COCT_MT030207UV |
COCT_MT260003UV |
COCT_MT040008UV |
COCT_MT280000UV04 |
COCT_MT040203UV01 |
COCT_MT290000UV06 |
COCT_MT050000UV01 |
COCT_MT300000UV04 |
COCT_MT060000UV01 |
COCT_MT310000UV04 |
COCT_MT070000UV01 |
COCT_MT440001UV |
COCT_MT080000UV |
COCT_MT490000UV04 |
COCT_MT090000UV01 |
COCT_MT500000UV04 |
COCT_MT090002UV01 |
COCT_MT510000UV06 |
COCT_MT090003UV01 |
COCT_MT530000UV |
COCT_MT090100UV01 |
COCT_MT600000UV06 |
COCT_MT090102UV02 |
COCT_MT670000UV04 |
COCT_MT090108UV |
COCT_MT710000UV01 |
COCT_MT090300UV01 |
COCT_MT710007UV |
COCT_MT090303UV01 |
COCT_MT740000UV04 |
COCT_MT140007UV |
COCT_MT810000UV |
COCT_MT150000UV02 |
COCT_MT820000UV |
COCT_MT150002UV01 |
COCT_MT960000UV05 |
COCT_MT150003UV03 | |
Message Act Infrastructure |
|
MCAI_MT900001UV01 |
Message Control Infrastructure |
|
MCCI_IN000002UV01 |
MCCI_MT000200UV01 |
MCCI_MT000100UV01 |
MCCI_MT000300UV01 |
Master File Management Infrastructure |
|
MFMI_MT700701UV01 |
MFMI_MT700711UV01 |
Patient Administration |
|
PRPA_IN201301UV02 |
PRPA_MT201301UV02 |
PRPA_IN201302UV02 |
PRPA_MT201302UV02 |
PRPA_IN201304UV02 |
PRPA_MT201303UV02 |
PRPA_IN201305UV02 |
PRPA_MT201304UV02 |
PRPA_IN201306UV02 |
PRPA_MT201306UV02 |
PRPA_IN201309UV02 |
PRPA_MT201307UV02 |
PRPA_IN201310UV02 |
PRPA_MT201310UV02 |
Query Infrastructure |
|
QUQI_IN000003UV01 |
QUQI_MT021001UV01 |
QUQI_MT000001UV01 |