Skip to main content
Link Menu Expand (external link) Document Search Copy Copied

Key Concepts

Inferno Core

Inferno Core is the primary library of Inferno, which testers can use to build Inferno Test Kits. It provides the main logic of Inferno, as well as a command line interface (CLI), a web interface for executing tests, and integration with data persistence layers and third-party party validators. Conceptually, Inferno Core is similar to Ruby on Rails or React + create-react-app.

Diagram of major components of Inferno Core
Inferno Core provides essential components to execute Test Kits.

The primary components include the connectivity with FHIR servers, the Inferno DSL, web and command line interfaces, database management, methods for reusing tests and managing the execution of test runs.

Inferno DSL

The Inferno DSL is a Domain Specific Language (DSL) that test writers use to define the tests in an Inferno Test Kit. The DSL provides built-in functionality that is useful in testing FHIR APIs, such as a FHIR client and built-in assertion libraries. See Writing Tests for more information.

Inferno Test Kit

An Inferno Test Kit is a distributable set of tests and tools built and packaged using Inferno to help testers evaluate the conformance of a system to base FHIR specification requirements, relevant FHIR Implementation Guides, and any additional requirements. Test Kits are primarily composed of one or more Test Suites, but may include other tools such as FHIR resource validators or reference implementations.

Diagram of parts of a Test Kit
Test Kits organize test suites, import Test Kits, and can include additional test tools.

Test Kits can include reference implementations, FHIR Validators, test presets and options for complete customization

Inferno Template

The Inferno Template is a template for writing Inferno Test Kits. See Template Layout for more information.

Diagram of Inferno Template
The template for writing Test Kits includes Inferno Core and a skeleton file structure.

The template provides scripts to run Test Kits using Inferno Core and reuse existing Test Kits.

Inferno Test Suite

An Inferno Test Suite is an executable set of tests provided within an Inferno Test Kit that allows testers to evaluate the conformance of a system. They can import tests from other Test Kits. Each Test Suite also defines how to interpret failures at the test level and in aggregate. For example, a Test Suite may define that a conformant system will pass all provided tests, or that the system may fail some tests.

Validators

Validators are tools that validate the correctness of a piece of data against a set of rules defined within a context. Inferno tests typically fetch data and validate the response using a validator, for example the FHIR Profile Validator or the FHIR Terminology Validator. Inferno performs FHIR Resource Validation using the the HL7® FHIR Java Validator.

Depending on the nature of the tests, using a validator is not always required. Some tests may simply need to confirm the presence of a response, or the absence of an error. Inferno Test Kits support using custom or third-party validators, if necessary. See FHIR Resource Validation for more information.

Reference Implementations

Reference implementations are example servers that implement all requirements from a specification (e.g. FHIR) and demonstrates “correct” behavior. They can be useful to develop tests against or to help interact with third-party solutions. For example, Inferno has a Reference Server for US Core and the Inferno ONC (g)(10) certification tests.

Inferno Deployment

An Inferno Deployment is a web host running one or more Inferno Test Kits. An example is the https://inferno.healthit.gov website. An individual Test Kit can also be run as an Inferno Deployment on users’ local machines without any additional configuration. See Using Test Kits: Getting Started for more information. An Inferno Deployment includes a web interface as well as a RESTful API to enable third-party integration.

Diagram of Inferno Deployment
A deployment combines Inferno Core and a Test Kit into a running instance.

Default services in a deployment include nginx, redis, validator services, web and command line interfaces, and database interfaces.

Inferno Architecture Diagram

You can view an Inferno Architecture Diagram (PDF 1.1 MB) which summarizes the components of Inferno Framework and includes a glossary of terms.

Suggest an improvement

Want to make an change? Contribute an edit for this page on the Inferno Framework GitHub repository.