Architecture Overview - usnistgov/asbestos GitHub Wiki
-
Microservice architecture
-
Server written in Java
-
UI written in Vue
-
Packaged in Tomcat
-
Downloaded as ZIP file - Includes Tomcat and all services pre-installed
-
Developed on and deploy-able to Windows, Linux, Mac
-
Built directly on Tomcat - all messages based on HTTP
-
Defines configurable Channels - types and instances
-
Channel type can offer message translation
-
Channel instance configurable with
-
id
-
type - controls optional translation
-
target endpoint (FHIRBase if target is FHIR server)
-
environment
-
-
Created/destroyed with toolkit running
-
Separate log store
-
Log contains full client side and server side messages
-
Concept taken from XDS Toolkit
-
Defines TLS configuration and certificates
-
Defines coding scheme and code translation
-
Based on HL7 FHIR specification
-
Use TestScript and TestReport resources
-
Implementation includes TestScript extensions
-
Error control/reporting
-
If/then processing - conditional flow control
-
Modularization (main script can call library scripts)
-
-
Included as default server
-
Includes Pre-installed channel
-
NIST FHIR Toolkit code leverages HAPI libraries
-
Needed to support MHD
-
Pre-installed channels
-
MHD Comprehensive metadata
-
MHD Minimal metadata
-
-
Each channel
-
translates MHD <⇒ XDS
-
server side points to XDS Toolkit simulator
-
-
Test Collections defined
-
Test Collection includes arbitrary number of tests
-
Tests runnable individually or by Test Collection
-
Each Test Collection labeled as client or server
-
Includes simple Patient manager
-
Channel selected independently of Test Collection
-
Tests displayed/runnable within their Collection
-
Channel creation/editing
-
FHIR message formatting controllable on-screen
-
GZIP
-
JSON vs XML
-
-
Utilities section
"Hidden" UI features
-
Inspector
-
Graphical navigation of linked FHIR resources
-
Raw message display
-
-
Test Inspector (final name not yet chosen)
-
Script/Report display
-
Variable/Fixture (TestScript data elements) display
-
-
TestScript debugger (under development)
-
Break-points set on individual TestScript actions
-
Display internal state of Test Engine including FHIRPath expressions
-
Used in development of TestScript or while testing Server SUT
-
-
Conformance
-
Server is System Under Test
-
Client is System Under Test
-
-
Interoperability
-
Client and server interact through Proxy
-
Each server assigned a channel
-
Inspector used to view/grade exchanges (Proxy logs)
-
-
Local file system used as data store
-
Called External Cache
-
Concept taken from XDS Toolkit
-
Benefits
-
Ease of installation
-
Scriptable
-
OS tools can peek inside when UI function not available
-