Gazelle HL7 Validator
GazelleHL7v2Validator is dedicated to the validation of HL7v2.x message through SOAP web service calls. This tool includes the two former applications:
- INRIA HL7v2.x validator
- INRIA HL7 Message Profile Repository
As a consequence, those two tools are deprecated and will be dropped from our servers by the end of August 2012. Refer to the following documentation for further informations about the new service.
GazelleHL7v2Validator is the part of the Gazelle platform dedicated to the validation of HL7 v2.x messages against HL7 conformance profiles. The validation engine is based on HAPI libraries and the conformance profiles are written by the Gazelle team (helped by NIST).
This validation service is available through a web service API so it can be integrated in your application. If you wish to validate messages occasionnaly you can use the Gazelle Validation Front-End called EVS Client which puts at your disposal a user interface to validate HL7 messages, CDA documents, XD* requests and so on.
The application also gathers the HL7 conformance profiles and the HL7 tables (codes) which can be browsed by any user. For each conformance profile, you will find information about its sender (actor, domain, transaction) and the message type and HL7 version. Each conformance profile can be bound to one or several HL7 tables which gather a list of allowed values for a given field of the message.
Browse validation requests
The User interface allows you to browse the validation requests received by the tool and the associated result. For each validation request, the tool keeps trace of the IP address of the caller. This is the way we choose to "protect" your work. That means that, using this IP address we can restrain the access to the data you have submitted (message content) and the results of those validations. The access rules are the following:
- Administrator users have access to all validation requests and are allowed to permanently delete some of them on user requests
- Not logged in users have only access to the validation requests coming from the same IP address as the one they are using when browsing the requests
- Logged in users (Gazelle CAS) can ask the administrator of the tool to register a set of IP addresses they are allowed to see.
Browse HL7 message profiles
All the HL7 message profiles available are gathered in the tool. You can either select a profile by its full OID (if known) or put filters on the table columns. Each profile is viewable inline and can also be downloaded.
Browse HL7 resources
An HL7 resource is an XML file gathering several HL7 tables. An HL7 table is uniquely defined by an ID and contains the set of allowed values. Those tables are referenced in the message profiles and at validation time, the validation engine can check that the value of a given field of the submitted message comes from the set of allowed codes for this field. As for the message profiles, you can see those tables inline or download them
Web service API
The web service API of the tool offers two methods:
- validate(): validates the given message against the given message profiles and sends back a validation report
- about(): gives information about the running version of the tool
The definition of the web service API is available here.
The validate() method has the following prototype:
public String validate(String, String, String) throws SOAPException;
- The first parameter is xmlValidationMetadata, it is an XML formatted String respecting the XSD schema given at http://gazelle.ihe.net/xsd/MessageMetadata.xsd. By now, this parameter is not used but our intent is to add custom validation. That means that, in addition of the basic Hapi validator, the user will be able to put additionnal validation requests as constraints on field usage, component value...
- The second parameter is xmlValidationContext, it is an XML formatted String respecting the XSD schema given at http://gazelle.ihe.net/xsd/ValidationContext.xsd. This parameter is mandatory since it gives information about the HL7 message profile to use for the validation process.
- Finally, the third String stands for the message to validate itself. The message must use ER7 syntax (ie. pipe-based syntax)
As we also need the client side of this validation service, we have created some useful projects listed below.
Note that this validation tool is also available through the simulators based on HL7v2.x (the messages sent and received by the simulator can be validated) and the EVSClient.
Error is human. We try to maintain the message profiles and HL7 tables doing our best but we may do mistakes. If you think there are errors in one/several of our message profiles, please report an issue in our bug tracking system with mention of the profie OID, error location, appropriate fix and reference to the documentation.
Bug tracking URL is http://gazelle.ihe.net/jira/browse/HL7VAL