Introduction

Gazelle FHIR Validator provides

  • A Graphic User Interface for the administrator to define the FHIR Validators and the user to browse them
  • A SOAP webservice to validate FHIR resources and FHIR URLs

Sources and binaries

  • Sources are available on Inria’s forge: svn co https://scm.gforge.inria.fr/svn/gazelle/Maven/FhirValidator/tags/FhirValidator-$versionName
  • A compiled version is available in the Gazelle Nexus repository, download the EAR of the latest version.

Installation

Database

Create the database to be used by the tool. Execute createdb -U gazelle -E UTF8 gazelle-fhir-validator.

Jboss 7

If your do not have yet a Jboss7 server, you can install one using the instructions to install Jboss7 page.

Deployment

You are now ready to deploy the tool and to start the Jboss server:

  1. Copy the FhirValidator.ear file in the standalone/deployments folder of this new jboss server.
  2. Start Jboss server (sudo service jboss7-{name} start)

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 fhir-structure-definitions directory from Inria’s forge. Default location used by the tool is /opt/fhirvalidator, this can be changed by updated the path the 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) https://gazelle.ihe.net/jira/browse/FHIRVAL
application_release_note_url Link to the release note of the tool (used in the footer of the app) https://gazelle.ihe.net/jira/browse/FHIRVAL
application_works_without_cas True = no login required to access the tool, event page with restricted access, False = use Gazelle SSO false
contact_email The email of the person to contact for any questions regarding the tool (used in the footer of the app)  
contact_name Name of the person to contact for any questions regarding the tool (used in the footer of the app)  
contact_title Function of the person to contact for any questions regarding the tool (used in the footer of the app)  
documentation_url Link to the user manual (used in the footer of the tool) https://gazelle.ihe.net/gazelle-documentation/Gazelle-FHIR-Validator/user.html
ip_login 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_directory Where the custom structure definitions are stored /opt/fhirvalidator/structureDefinitions
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:

  • FHIR library provided by hapi-fhir for default resources
  • Custom structure Definitions
  • In-house algorithm for URLs

The configuration of each kind of validations will slightly differs.

Common attributes

  • OID: uniquely identified a validation (for easy management in calling applications)
  • Name: Explicit name of the validator (see convention section below)
  • 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