Project Overview

This application is part of the External Validation Services provides by the Gazelle project. This project is made of two parts: a Web interface and a Web Service.

The Web interface Schematron Validator enables the administrator of the application to register new schematrons and update schematrons version:

Click on “Manage Schematrons” button to display the list of registered schematrons:

Then click on the green button in the bottom left hand corner to create a new schematron:

The Web Service Gazelle Object Validator enables the user and other Gazelle applications to validate objects using those schematrons.

By now, schematrons have been written for the following kinds of documents:

  • CDA documents (epSOS, IHE and other regional projects)
  • HL7v3 messages (epSOS and IHE)
  • SAML Assertions (epSOS)
  • ATNA logging messages (epSOS)
  • FHIR messages

One can access the webservice using the EVS Client Front-end, access to the schematrons used for the validation of documents is available from this same application.

Unless a user would like to perform mass document validation using the webservice functionality of that tool, the schematron validation should be performed using the GUI provided by the EVS Client Front-end.

The next section is mainly dedicated to users interested in learning more about the validation process and the methodology to call the webservice.

Validation based on Schematron

The validation based on schematron can be performed for any kind of XML files (CDA, HL7v3 messages, SAML Assertions and so on). The XML document is processed three times before the tool can give the validation result.

  1. We first check the document is a well-formed XML. If it is not the case, the validation stopped and the FAILED result is sent back.

  2. Then, if the invoked schematron is linked to an XSD schema, we check the document is valid according to the schema. If it is not the case, the validation will go on but the result will be FAILED. Concerning CDA documents, we distinguish IHE CDA from epSOS CDA. At XSD validation step, the first ones are validated against CDA.xsd and the second ones against CDA_extended.xsd.

  3. Then, if the document is of type CDA, we validate against the abstract CDA model specification (CDA validation details).

  4. Finally, the XML document is validated against the selected schematron. Validation is performed using Saxon 9HE.

Note that, in some cases, no schematron has been provided and the validation process stops after the XSD validation.

Web Service

The wsdl describing the service is available at Gazelle Object Validator Wsdl.

You can also download a soapUI sample project here to have an example of how to use each offered method.

To register soapUI XML project file, click on link above and save page displayed as GazelleObjectValidatorWS-SchematronValidator-soapui-project_0.xml in your working repository.

SoapUI is available for download here.

After SoapUi installation, run it and create schematron validation project by importing the downloaded XML file:

In SoapUI do: File -> Import Project

The schematron validation project is shown below:

Features

Schematron-based Validator implements various web service methods which are:

getAllSchematrons: returns the list of all Schematron objects stored in the database. See javadoc for more information about the Schematron object attributes.

getSchematronByName: returns a Base64-encoded String reprensenting the content of the schematron file selected by its name. The value of parameter schematronName in getSchematronByName request, shown below, is available at Manage Schematrons.

...
 <schematronName>epSOS - ePrescription - Friendly</schematronName>
...

The schematronName is Label:

getSchematronForAGivenType : returns the list of schematrons which are linked to the given object type (CDA, HL7v3 …). The value of parameter fileType in getSchematronForAGivenType request, shown below, is available at Object Type Management.

...
<fileType>CDA-epSOS</fileType>
...

The fileType is Keyword:

validateObject : validate the given XML document against the given schematron. The value of parameter xmlMetadata in validateObject request, shown below, is schematron name (Label):

...
   <xmlMetadata>epSOS - ePrescription - Friendly</xmlMetadata>
...

getAllAvailableObjectTypes : returns the list of object type that can be validated using this validator.

Validation results are formatted as an XML document which can be downloaded from EVS Client Front-end after validation process:

The validation results are also displayed:

Static WS Client for Schematron-based Validator Web Service

We have generated a Static Web Service client using Axis 2. This related jar is stored in our maven repository Nexus Repository Manager and is easy to use. You only have to make a dependency to the artifact as shown below.

<dependency>
  <groupId>net.ihe.gazelle.modules</groupId>
  <artifactId>gazelle-ws-clients</artifactId>
  <version>2.1.3</version>
</dependency>