Skip to content

External Cache

Bill Majurski edited this page Aug 12, 2019 · 9 revisions

Channel storage

A channel is a path through the proxy. It has a configuration which contains

  • ID of the channel
  • type - passthrough and MHD are currently defined
  • base address of the supporting FHIR server
  • test session
  • environment
  • XDS Toolkit site name for supporting XDS Repository/Registry

Asbestos adds a new directory to the External Cache named psimdb which all channel related information.

The base location:

ExternalCache/psimdb/

within that base location:

<testsession>/<channelID>/

inside is everything about that channel.

config.json

is the channel configuration. An example looks like:

{
  "environment" : "default",
  "testSession" : "default",
  "channelId" : "fhirpass",
  "actorType" : "fhir",
  "channelType" : "mhd",
  "fhirBase" : "http://localhost:8080/fhir/fhir",
  "xdsSiteName" : "default__rr"
}

<channelID>/ contains:

fhir/<resourceType>/

which contains all the events regarding that resource type on this channel. A listing of that directory might look like:

Bundle/
DocumentReference/
metadata/
Patient/

The FHIR spec says that one retrieves the CapabilityStatement of a FHIR service using the pseudo-resource type metadata.

Inside each resource type directory are things that look like:

2019_08_12_13_24_28_089/
2019_08_12_13_26_45_245/

each of which holds the log for a single event. An event has:

task0/
task1/
task2/
task3/

each representing an HTTP request/response into or out of the proxy. Task0 is always the request from the client and its response. Task1... represent HTTP requests made to other services to fulfill the requirements of the client request. A task looks like:

description.txt
request_header.txt
request_body.bin
request_body.txt  (if request was text based)
response_header.txt
response_body.bin
response_body.txt (if response was text based)
response_body.html (if response was HTML)