Features included within simulator-common and the archetype

Application preferences

simulator-common contains an entity named ApplicationConfiguration which is used to manage the preferences of your application. This feature is used by the other functionalities of simulator-common, make sure to create the followig preferences within your database.

Preference name (variable) Description Default/Example value
application_url The URL used by any user to access the tool  
cas_url URL of the CAS service Default: https://gazelle.ihe.net
application_works_without_cas Indicates whether or not authentication uses the CAS service Default: false
ip_login Indicates whether or not IP addresses are filted at login when CAS service is not used Default : false
ip_login_admin Regex used to filter IP addresses  
message_permanent_link URL to access the messages exchanged with the tool  
time_zone Time zone of the application Default: Europe/Paris
svs_repository_url URL of Gazelle Value Set repository Default: http://gazelle.ihe.net
documentation_url URL to get the user manual of the tool  
application_release_notes_url URL to get the release notes of the tool  

A page is dedicated to the management of preferences, see /admin/configure.seam (only accessible by admin)

Messages storage

After having developed several simulators, we noticed that we always need an entity to store the messages exchanged between the simulator and the systems under test. In most of the case, we need to store the same informations (initiator, responder, message content ...) and we bind the simulator to a validator so we also store the result of the validation process.

Authentication

A simulator offers several authentication methods, the basic method, the one we use on our server uses the CAS service available at https://gazelle.ihe.net. Other methods are:

  • no authentication required, everybody has administration rights
  • authentication based on IP addresses: only the users who are connecting with an IP address matching the regex defined in the database are granted with admin permissions

The table below represents the boolean set in the database and the behaviour of the tool depending on their values

application_works_without_cas ip_login behaviour
true true Only the users whose IP address matches the regex are granted as admin (ip_login_admin must be defined)
false true Authentication and rights are managed by the CAS service
true false Any user is granted as admin
false false Authentication and rights are managed by the CAS service

Model-based validation service

If you have developed a model-based validation service to validate the messages exchanged in the context of the integration profiles implemented by your simulator, you can use this web service to allow other applications to call your validator. Using this class instead of creating a new one is easier for the clients since it's the same stub as for the other validation services.

Home

The home page can be configured through the user interface (by admin) and the content is locale dependant.

Simulator control (from Test Management)

Simulators can be driven by Test Management application. A web service is available that you must implement to allow Test Management to control your simulator.

Value Set Repository Consumer

To build the messages, your simulator may need values from a specific set of codes. We usually store those codes within the SVS Simulator and use the SVSConsumer utility class to retrieve the codes (based on OID).

XUA

Some messages must contain an XUA assertion in their header. Some mechanisms are implemented in simulator-common to help you with creating those assertions.

Test report

A REST webservice is available to retrieve information about a transaction instance.

System Under Test Configuration

If your simulator acts as an initiator, you will need to store the configuration of the system under test. An entity named SystemConfiguration is available to store those informations, it assumes that you need an URL to contact the system under test. If the system under test is HL7 based, you need to use HL7Common as a parent and not directly simulator-common.