Architecture Overview¶
FHIR Frog is built as a thin layer over the FHIR TestScript specification — a modular engine that delegates each concern to a focused component.
High-Level Architecture¶
Core Components¶
| Component | Responsibility |
|---|---|
TestScriptEngine |
Orchestrates the full execution lifecycle: setup → tests → teardown |
ResourceSpace |
Client-side FHIR resource space holding TestScript, TestReport, and fixtures |
PhaseExecutor |
Executes a single phase; builds the TestReport incrementally in the ResourceSpace |
OperationExecutor |
Issues FHIR HTTP operations (CRUD, search, transaction, batch, history) |
AssertionEvaluator |
Validates responses: status codes, FHIRPath, profiles, minimum-ID |
VariableManager |
Extracts values from responses via FHIRPath; substitutes ${name} tokens |
FixtureManager |
Two-phase fixture loading: files → ResourceSpace, then autocreate transaction with cross-reference rewriting |
Execution Flow¶
Deployment Modes¶
Each deployment mode (JUnit, Maven, Ant, CLI) wraps the same core engine. Only the entry point and reporting output differ.
Further Reading¶
- Module Structure — Maven modules and their dependencies
- Design Principles — Architecture decisions
- Deployment — Integration guides
- Authentication —
requestInterceptorand SMART auth strategies