All Classes and Interfaces

Class
Description
Authentication configuration for a server backend.
Pluggable strategy for turning an interactive SMART authorization_endpoint response into the next request that continues EhrLaunchProvider's fullWalk authorization-code flow.
Authentication mechanism for a server backend.
Registry of available FHIR server backends for test execution.
Saves and restores HAPI bootstrap artifacts (committed Docker image and pg_dump SQL file) to/from a container registry.
Configuration for cache operations.
Thrown when a bootstrap or cache operation fails.
A choice-type (xxx[x]) element with a specific must-support type, produced by the elementdefinition-type-must-support extension (algorithm.md §3.3), e.g.
SmartAuthProvider strategy for the OAuth2 client_credentials grant used by SMART Backend Services clients - a confidential, system-to-system client authenticating with its own client_id/client_secret rather than a user login, the one strategy this package's design explicitly left unbuilt until frog-runner needed to write to a real write-capable FHIR tenant (see fhirfrog/sparked-fhir-server-configuration#95).
Pluggable hook for attaching headers to every outgoing FHIR request made by a TestScriptEngine run.
Generates a Docker Compose file with two profiles for HAPI FHIR testing.
Same row model as ExcelReportRenderer (both share TestReportRowExtractor), but a plain CSV rather than an XLSX binary - for a consumer that wants to import into a spreadsheet tool other than Excel, or script against the data directly, without needing an XLSX parser.
AST node representing a dependency.
Performs a one-time HAPI FHIR bootstrap and captures the loaded server state as a committed Docker image plus a pg_dump SQL file.
Configuration for a bootstrap run.
SmartAuthProvider strategy for the SMART App Launch 2.0 EHR launch flow - the case where an EHR (or an EHR simulator such as ehr.smartforms.io) launches an app with an opaque or base64-JSON launch token, rather than the app being started standalone the way FormLoginPkceProvider drives it.
One workbook, one row per operation/assertion across every TestReport in a run - the #1 priority format (test managers), per add-report-export-and-rest-api's design.md.
Ant task that performs a one-time HAPI FHIR bootstrap and captures the loaded server state as a committed Docker image plus a pg_dump SQL file.
Ant task that saves and restores HAPI bootstrap artifacts (committed Docker image and pg_dump SQL file) to/from a container registry.
Ant task that generates Docker Compose and HAPI FHIR configuration files from an IG's sushi-config.yaml.
Stores TestReport to a FHIR server via HTTP POST.
Configuration for FHIR test execution.
JUnit 5 extension for FHIR test script execution.
Maven Mojo for executing FHIR TestScripts and TestPlans.
Ant task for executing FHIR TestScripts and TestPlans.
FHIR version enumeration.
Stores TestReport to file system.
A plain must-support element's own fixed/pattern literal-value constraint (algorithm.md §3.4 rule 2).
SmartAuthProvider strategy that drives the plain-HTTP PKCE authorization-code flow with Spring Security form login used by aehrc-quokka-hapi-smart's own test IdP: GET /oauth2/authorize → GET /login → scrape the CSRF token → POST /login → follow the redirect for the authorization code → POST /oauth2/token.
One compiled, literal, per-instance FHIRPath check derived from a profile's must-support or mandatory-element requirements (algorithm.md §7, §5.11) - the compiler's actual output artifact.
Generates HAPI FHIR application.yaml and application-test.yaml from a PackageClassifier.ClassificationResult.
Loads one IG package plus its full transitive dependency closure and exposes canonical-URL lookups against it - the compiler's one and only source of profile/datatype-profile/ValueSet/ CodeSystem data.
Executes tests programmatically using JUnit Platform Launcher.
 
 
Generates JUnit 5 dynamic tests from FHIR R5 TestPlan resources.
JUnit XML built from each TestReport's own setup/test/teardown structure (via the shared TestReportRowExtractor), not from fhir-frog-ant's older JUnitExecutor.ExecutionResult/TestFailure model - see add-report-export-and-rest-api's design.md, task group 3.
The SMART launch context decoded from a token-endpoint JSON response: the patient/encounter identifiers, id_token, granted scope, token lifetime, and any fhirContext entries (SMART App Launch's mechanism for the EHR to hand the launched app a set of relevant resources up front - e.g. launching straight into a pre-selected Questionnaire).
One entry of a SMART fhirContext launch-context array - see the SMART App Launch spec's "fhirContext" launch parameter.
Resolves local (dev/current) FHIR packages from the filesystem cache into tgz archives suitable for mounting into a Docker container.
Result of resolving local packages.
Main entry point for FHIR Frog CLI.
Same row model as ExcelReportRenderer/CsvReportRenderer (all three share TestReportRowExtractor), rendered as plain Markdown - an overall pass/fail summary up top, then a heading and an assertion table per TestReport.
A must-support extension slot (algorithm.md §3.1): elementId is the extension element's own id (e.g.
Classifies FHIR packages from the local package cache as include, exclude, or skip for a given target FHIR version (R4 or R5).
Result of classifying a full dependency tree.
A resolved package reference with name and version.
Which of the four pattern-discriminator sub-shapes (algorithm.md §3.2.1's resolve_pattern) a slice's discriminator sub-element carried its identifying constraint as.
A readable, presentable document - this change's "execs" format per design.md's Decision 3 ("test managers get clear tables, execs get something presentable"), as opposed to the raw tabular Excel/CSV/Markdown formats.
A "plain" must-support element (algorithm.md §3.4) - whatever's left after extensions, slices, and choice-type must-support elements (§3.3) are removed.
Thrown for a compile-time problem that isn't specifically about slice discriminator resolution (see UnsupportedDiscriminatorException for that) or ValueSet expansion (see ValueSetNotLocallyEnumerableException) - e.g. a snapshot missing where one was required, or a must-support extension with no type.profile to check against.
The full must-support/mandatory derivation for one profile (algorithm.md §2/§3/§4), before compilation to literal FHIRPath.
The compiler's top-level entry point: ProfileRequirementsCompiler.deriveRequirements(org.hl7.fhir.r4.model.StructureDefinition) implements algorithm.md §2-§4 (must-support extraction, partitioned per §3.0, plus mandatory-element extraction per §4) and ProfileRequirementsCompiler.compileAssertions(org.hl7.fhir.r4.model.StructureDefinition) implements the per-instance literal-FHIRPath translation (§7, this change's tasks.md 5.11).
Executes TestScript/TestPlan files via DynamicTest execution.
Renders TestReport in different formats.
Storage interface for TestReport resources.
How a server backend is reset between test runs.
A resolved FHIR server backend that tests can execute against.
The two runtime strengths a compiled must-support check can carry, per algorithm.md §7.3: a missing mandatory (min>0) requirement is a hard failure, a missing optional (must-support, min=0) requirement is a warning.
A single must-support slice requirement (algorithm.md §3.2), resolved via exactly one of the three implemented discriminator strategies.
A slice identified by a single fixed/pattern value at the discriminator's sub-path (algorithm.md §3.2.1's patternCodeableConcept/patternCoding/ patternIdentifier branches).
A slice identified by required-strength ValueSet membership at the discriminator's sub-path (algorithm.md §3.2.1's requiredBinding branch) - a disjunction over codes, expanded eagerly at compile time from locally-loaded IG packages only (see ValueSetExpander; not from a terminology server).
A choice-element slice identified purely by concrete datatype (algorithm.md §3.2.2), e.g.
A slice identified by several independent fixed sub-paths that must all match together on the same candidate element (algorithm.md §3.2.3) - a conjunction over matches.
 
Thrown when a SmartAuthProvider strategy fails to obtain an access token - e.g.
A pluggable strategy for obtaining a SMART on FHIR access token.
Trivial SmartAuthProvider wrapping a pre-obtained access token, for targets where the token is fetched out-of-band (e.g. a token pasted in from a manual browser login, or obtained by some other tool entirely outside fhir-frog).
Reads the dependencies block from a sushi-config.yaml file.
AST node representing a TestCase.
AST node representing test data.
Executes every TestScript (or the single TestPlan closure) discovered in a resolved Test IG package - "<id>#<version>", e.g.
Simple executor for TestPlan files without JUnit dependency.
AST node representing a TestPlan.
Parser for fhir-frog TestPlans.
JUnit 5 dynamic test provider for recursive TestPlan execution.
One test case's static structure from TestPlanProvider.discover(org.fhirfrog.frog.testplan.TestPlanResource) - the same identifying/dependency fields as TestPlanProvider.TestCaseResult, minus the execution-only ones (success, message, testReport) that don't exist until something has actually run.
In-memory representation of a fhir-frog TestPlan, populated by TestPlanParser from the real frog-test-plan FHIR resource (a Basic profile - see fhir-frog-library/src/main/fsh/input/fsh/FrogTestPlan.fsh for the full design rationale: a Basic-backed backport of FHIR R5's own still-status=draft/FMM-0 TestPlan).
 
 
Deprecated.
The TestReport is now built incrementally during execution and available via ExecutionResult.getTestReport().
One operation or assertion within a TestReport, flattened for the row/table-based renderers (Excel, CSV, Markdown, JUnit XML) - each of those needs the same shape, just encoded differently, so the TestReport-walking logic lives once in TestReportRowExtractor rather than being repeated per format.
Flattens a TestReport's setup/test/teardown structure into TestReportRows - the one place this walk happens, shared by every row/table-based renderer (Excel, CSV, Markdown, JUnit XML) added by add-report-export-and-rest-api.
Deprecated.
Use org.fhirfrog.frog.internal.testscript.TestScriptEngine.ExecutionResult#getTestReport() to obtain the FHIR TestReport directly.
 
 
 
 
 
Provides access to test execution results.
AST node representing a test run.
A display-only, human-readable rendering of a FHIR TestScript definition.
A single TestScript.fixture entry.
One phase of test execution: setup, a single test entry, or teardown.
Which part of the TestScript a TestScriptDisplay.PhaseDisplay corresponds to.
Whether/how a failing TestScriptDisplay.StepDisplay gates the phase's pass/fail outcome.
A single step within a phase: one operation or one assert.
Whether a TestScriptDisplay.StepDisplay is an operation (a wire call) or an assert (a check on the last response).
A single TestScript.variable entry.
Walks a HAPI TestScript model object and produces the display-only TestScriptDisplay tree that TestScriptHtmlRenderer (or any other future renderer) turns into a browsable document.
Simple executor for TestScript files without JUnit dependency.
 
 
Renders a TestScriptDisplay tree as a single, self-contained HTML fragment: a narrative-first, technical-detail-secondary document, matching the content model frog-runner's live UI already uses for execution results (narrative line first, a monospace technical line underneath, nothing hidden behind extra clicks) - just applied here to the test *definition* rather than a run's outcome.
Minimal, directory-in/HTML-files-out CLI over this module's renderer - not a general framework, just enough to let another build (e.g. an IG's own CI) turn a folder of TestScript resource files into browsable HTML fragments without a JVM dependency of its own.
Specifies the TestScript resource to execute for a test method.
ANTLR visitor that builds AST from parse tree.
This class provides an empty implementation of TPHVisitor, which can be extended to create a visitor which only needs to handle a subset of the available methods.
Compiles TPH AST to FHIR TestPlan resources.
Custom error listener that provides clear error messages with line numbers.
 
Exception thrown when TPH parsing fails.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Main entry point for parsing TPH files and compiling to FHIR TestPlan resources.
This interface defines a complete generic visitor for a parse tree produced by TPHParser.
This class provides an empty implementation of TSHListener, which can be extended to create a listener which only needs to handle a subset of the available methods.
This class provides an empty implementation of TSHVisitor, which can be extended to create a visitor which only needs to handle a subset of the available methods.
Compiles TSH AST to FHIR TestScript resources.
 
This interface defines a complete listener for a parse tree produced by TSHParser.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Main entry point for parsing TSH files and compiling to FHIR TestScript resources.
This interface defines a complete generic visitor for a parse tree produced by TSHParser.
Thrown at compile time when a must-support slice's discriminator can't be resolved by any of this compiler's three implemented strategies (pattern/type/value) - most commonly because its discriminator.type is exists or profile (2 of FHIR's 5 defined kinds, genuinely unimplemented here; algorithm.md §8.1), but also raised for a pattern discriminator whose resolved sub-element carries none of the four handled constraint shapes.
Thrown when a requiredBinding pattern-discriminator sub-case (algorithm.md §3.2.1) needs a ValueSet's code list expanded, but that ValueSet's compose.include isn't fully enumerable from the loaded IG package closure alone - e.g. it names an external code system with no local CodeSystem resource and no explicit concept list.
Hierarchical variable context for test execution.
Same content shape as PdfReportRenderer - the "execs" format per design.md's Decision 3 (presentable, not a raw data dump) - as a .docx rather than a PDF, for a consumer who wants to edit/annotate the report (e.g. add reviewer comments) before circulating it further.