Deployment

Copy the FhirValidator.ear file in the standalone/deployments folder of this new jboss server.

Start Jboss server (sudo service widfly-{name} start)

WARNING : From version 3.0.0, datasource need to be extracted from the ear folder (found in /src/main/application/META-INF).
For more informations about how to manage that externalization, please refer to General > wildfly10 part of the documentation. The following parameters have to be used:

YOUR_TOOL_DATASOURCES : FhirValidatorDS

YOUR_TOOL_DB : gazelle-fhir-validator

IHE Structure Definitions

SQL script files available in the project directory imports entries to use the structure definitions and value sets defined by IHE. In order to use them, you can checkout the content of fhir-structure-definitions directory from Inria’s forge into /opt/fhirvalidator folder. It is the default location used by the tool. This can however be changed by updating the path to each custom structure definition in the database.

Accesses

The endpoint to be contacted will be located at [YOUR_SERVER_URL]/FhirValidator-ejb/ModelBasedValidationWSService/ModelBasedValidationWS?wsdl.

The graphic user interface is available at [YOUR_JBOSS_URL]/GazelleFhirValidator.

Configuration

Application preferences

Under the Administration menu, you will find a sub-menu entitled “Configuration”. The following preferences must be updated according to the configuration of your system. The table below summarizes the variables used by the Gazelle FHIR Validator tool.

Variable

Description

Default value

application_url

The URL used by any user to access the tool. The application needs it to build permanent links inside the tool

https://publicUrlOfJboss/GazelleFhirValidator

application_issue_tracker

Link to the issue tracker where users can report issues (used in the footer of the app)

True = users with IP address matching ip_login_regex will be granted as admin

false

ip_login_admin

regex to restrict access to a list of IP address

.*

NUMBER_OF_ITEMS_PER_PAGE

Defaut number of entries in tables

20

structure_definition_stylesheet_location

URL of the XSL used to display the structure definition

https://gazelle.ihe.net/xsl/fhir/structureDefinition.xsl

time_zone

Default time zone to be used to display dates and times

Europe/Paris

value_set_location

Where the tool accesses the value sets to be loaded

/opt/fhir-structure-definition/ValueSet

code_system_location

Where the tool accesses the code systems to be loaded

/opt/fhir-structure-definition/CodeSystem

Managing validators

As of version 2.2.0, two types of validators can be defined:

FHIR Resource Validators are based on FHIR structureDefinition files, the entry in the database is a pointer to the proper resource to be used

FHIR URL Validators are based on a in-house algorithm which checks the correctness of the provided URL regarding the definition of the URL input by the administrator of the tool

FHIR Resource validators

Structure definition files shall be loaded directly on the file system. Future version will allow the administrator to upload all the necessary files.

When structure definitions and/or value sets are added, removed or modified, you need to use the “Reload structure definitions” button. It will destroy the snapshots of the structure definitions stored in memory and load them again.

Definition of a validator

Gazelle FHIR Validator makes use of several kind of validation engines:

Common attributes

Available: When set to false, validation will not show up in the list of available validators (used by web service)

Profile: Keyword of the IHE profile related to this validator

Descriminator: By convention, we use the keyword of the affinity domain. Used in the web service to filter the list of available validators by context

Attributes for FHIR Resource validators

Execute schema validation: True will trigger the execution of the schema validation implemented by hapi-fhir as a first step of the validation process

Execute schematron validation: True will trigger the execution of the schematron validation implemented by hapi-fhir

Path to structure definition: Path to the custom structure definition

URL: URL field from the structure definition

Base definition URL: URL of the base structure definition

Weight: Custom structure definition might reference each others, the weight is used to process the stucture definition in the correct order to correctly generate the snapshot. Validators with the highest weight are processed first.

Attributes for the URL validators

For some interactions, like search or read, FHIR uses HTTP operation, in that case the initiator system build an URL. Examples:

Search: GET [base]/[type]?name=value&...{&_format=[mime-type]}}

Create: POST [base]/[type] {?_format=[mime-type]}

Conditional delete: DELETE [base]/[type]/?[search parameters]

and so on…

Gazelle FHIR Validator allows the test designer to describe this syntax which is then processed by an algorithm to detect errors in the provided URL.

Resource name: The name of the resource the interaction is performed on (example: Patient in a PDQm request), refers to [base] in the URL

Operation: For custom operation to be used in the URL (example: IHE defines $ihe-pix for PIXm)

Parameters: A list of URL parameters to be used in the URL

For each parameter, the following attributes are used:

name: the name of the parameter as used in the URL

type: the type of the parameter, used to verify the conformance of the value

prefix: for some parameters, a prefix is required, it can be set using this attribute

optionality: indicates whether the parameter is required in the URL or only optional

regex: by default the value will be checked against the regex defined for the chosen datatype, if the content of the value for a parameter shall be more specific, the regex can be overriden using this attribute

Conventions

The name of the validators uses the following pattern: [TRANSACTION-KEYWORD] Message name where:

TRANSACTION-KEYWORD is the keyword of the transaction which is checked using this validator

Message name is the name of the message as defined in the technical framework