Skip to content

External Cache

Bill Majurski edited this page Nov 26, 2019 · 9 revisions

Like XDS Toolkit, FHIR Toolkit uses an External Cache to manage local data. The External Cache is a local directory that is readable/writable by the user account that FHIR Toolkit/Tomcat runs in. All local data is written here.

While it is shared with XDS Toolkit, there are no sections (sub directories) of the External Cache that are written by both tools.

Sections used by FHIR Toolkit

FhirChannels - configuration and logs for the Proxy Channels.

FhirChannels/
    testSession1/
    testSession2/
         channel1/
         channel2/
             config.json  -- channel configuration
             fhir/   -- each directory here is a resource type
                 Bundle/    -- all transactions land here
                     2019_10_31_13_42_12_604/
                     2019_10_31_13_18_49_791/   -- single event
                         task0/   --  client side
                             request, response, details.
                         task1/   --  server side
                         task2/   -- secondary server side - like GET Patient
                 DocumentReference/
                 Patient/

FhirTestAssertions - Test Assertion documentation Contains single file - assertions.json with content like

{
    "Profile": "MHD Rev 3.1",  -- MHD version supported
    "MHDPDBRequestIsBundle" : "ITI-65 - 3.65.4.1.2 Message Semantics Para 1"  -- assertionID and message
}

Then assertions are coded in runable code, they refer to assertionIDs for part of their documentation. This file links the assertionID to profile or standard reference.

FhirTestCollections - test collections - tests are listed on screen by Test Collection. These are the definitions of the individual tests organized by what they test (the Test Collection).

FhirTestCollections/
    ComprehensiveSubmission/  -- test name
        TestScript.xml   -- TestScript resource describing the test (test engine executes)
        Patient/     -- Patient resources referenced by the TestScript
            patient.xml
        Bundle/
            pdb.xml    -- Bundle resource (usually transaction) referenced by TestScript

MHD_DocumentRecipient_minimal - Document Recipient (server) tests for minimal metadata (the base requirement)

MHD_DocumentRecipient_comprehensive - Document Recipient (server) tests for the comprehensive option

MHD_DocumentSource_minimal - Document Source (client) tests for minimal metadata (the base requirement)

MHD_DocumentSource_comprehensive - Document Source (client) tests for the comprehensive option

MHD_Proxy_selftest - self tests for the Proxy

Test_Patients - set of submissions to be done to the default channel to load a collection of Patient resources that the tests depend on.

FhirTestLogs - TestReport resources created by executing TestScript resources

FhirTestLogs/
    default__default/   -- default TestSession, default channel
        cache/          -- Patient cache (explained separately below)
        MHD_DocumentRecipient/   -- Test Collection name
            ComprehensiveSubmission.json    -- test name (contains TestReport resource)

FhirTestCollections.lock - Much of the content of the above sections has a master copy in the WAR file. When the WAR is started they are copied to the External Cache and it is the External Cache copy that is referenced at run time.

This copy work is not performed on every time the WAR is launched. The External Cache file FhirTestCollections.lock is checked at WAR start up. If this file exists then the copying is not done. To refresh the External Cache copies of this material just delete FhirTestCollections.lock and restart FHIR Toolkit. This is usually done by stopping and then starting Tomcat.

Patient cache

Collection of TestReport resources resulting from submitting Patient resources to default server (HAPI). The reference Patient resources are always submitted to the internal HAPI server (default channel) and the TestReport instances get stored in this cache directory.

FhirTestLogs/ default__default/ -- default TestSession, default channel cache/
Patient/ Alex_Alder.json ...

Clone this wiki locally