Skip to content

Frequently Asked Questions

Sunil Bhaskarla edited this page Sep 21, 2022 · 6 revisions

Configuring a non-standard service layout

The way we deliver the tool is not the only possible layout of the services. This section describes how to configure more interesting layouts. In short there are two configuration files. First is

asbestos/tomcat/Toolkits/FhirToolkit/conf/service.properties

This configures the server components. We discuss here only the elements you are likely to need to change. We ignore the linkage to and configuration of XDS Toolkit which is only necessary for the XDSonFHIR option.

To inform the server of its own location. This should only be updated to reflect a different hostname.

# Base path should not end with a slash
fhirToolkitBase=http://localhost:9760/asbestos

To inform the server of the location of the required HAPI server.

# Base path should not end with a slash
hapiFhirBase=http://localhost:7080/fhir/fhir

The second configuration file is for the UI and is found at

asbestos/tomcat/Toolkits/FhirToolkit/webapps/ROOT/serviceProperties.json

The entire contents is

{
  "fhirToolkitBase": "http://localhost:9760/asbestos",
  "httpsFhirToolkitUIBase": "https://fhirtoolkit.test:9743/asbestos",
  "projectVersion": "1.1.0"
}

The entire UI gets loaded from ROOT. After it is loaded, fhirToolkitBase is how it knows the location of the server - where to send future JSON requests.

httpsFhirToolkitUIBase is used to get an authenticated channel to the server for SAVE and DELETE Channel Configuration requests. Asbestos uses a self-signed certificate for authentication (HTTP BASIC). For that to work, the client machine (machine running the FHIR Toolkit UI) must have fhirtoolkit.test as an alias for localhost in /etc/hosts (Unix). This looks like

127.0.0.1    localhost fhirtoolkit.test

Please note that this authentication optional. If you never lock any of the channel configurations then you don’t need to unlock them or authenticate to update them. It is only in a public/Connectathon setting where this can be important.

Using a different server for Patients during Conformance testing

Note: this feature added in version 2.0.0-alpha-1.

For conformance testing, the toolkit setup panel establishes the test Patients in the default testSession and default channel (includede HAPI server). The processing steps are, for each Patient:

  1. Query the default server for the Patient by first name, last name, and date of birth.

  2. If found build a cache entry.

  3. If not found, submit to the default server.

  4. Repeat the query.

  5. Build the cache entry.

The cache entry holds the Patient resource, and the fullUrl where it resides. The cache (directory) for the default channel is:

asbestos/tomcat/Toolkits/ExternalCache/FhirTestLogs/default__default/cache/Patient/

where default__default represents the default testSession, and the default channel. Setup establishes this.

It is possible to load the test Patients into the server under test, usually called the "sut" channel. This is done by selecting the sut channel and then the Test_Patients test collection and then RunAll (from the conformance test panel displayed when you select the test collection). This will create a cache at:

asbestos/tomcat/Toolkits/ExternalCache/FhirTestLogs/default__sut/cache/Patient/

Which cache gets used when running a conformance test? There is a pre-defined search order:

  • Cache for the selected Channel

  • Cache for the default Channel

Is it possible to have a third server act as the Patient server? Yes, use the patientServerBase property in service.properties.

Clone this wiki locally