Skip to content

FHIR Frog

FHIR Frog Logo

FHIR Frog is an open-standard runner for FHIR® TestScript and TestPlan resources. Ship tests inside your Implementation Guide — always in sync, same tests for every implementer.

Quick Start Why FHIR Frog?

Our name is approved by HL7

HL7 International has approved the use of the FHIR® trademark in the product name FHIR-Frog. FHIR® is the registered trademark of HL7 and is used with the permission of HL7. Use of the FHIR trademark does not constitute endorsement of the application by HL7.

What this means


Key Features

  • TestScript execution

    Full FHIR R4/R5 TestScript engine: operations, assertions, variables, fixtures, FHIRPath.

    TestScript guide

  • TestPlan support

    Organise scripts into suites with dependency ordering, recursive expansion and cycle detection.

    TestPlan guide

  • Tests ship with the IG

    TestScripts live alongside profiles in your FSH project — versioned, peer-reviewed, always current.

    Motivation

  • Multiple deployment modes

    JUnit 5 · Maven · Ant (IG Publisher) · CLI · programmatic API.

    Deployment

  • Concise test syntax (TSH)

    TestScript Shorthand cuts verbosity by 70–80%. * assert ServiceRequest.status = "active" instead of 7 lines of JSON.

    Architecture

  • Pre-warmed Docker bootstrap

    docker commit snapshots HAPI after IG load. Subsequent runs start in ~25 seconds instead of ~15 minutes.

    Ant task


Quick Example

TestScript: PatientCreate
Title: "Create a patient and verify"
Status: #draft

Setup:
  * operation create Patient from "patient.json" as created
  * assert response = created

Test: "Read the created patient"
  * variable patientId = Patient.id from created
  * operation read Patient/${patientId} as readResult
  * assert response = okay
  * assert Patient.id = "${patientId}"
@ExtendWith(FhirFrogExtension.class)
class PatientTest {

    @TestTemplate
    @TestScriptSource("fhir/patient-create.tsh")
    void patientCreate(FhirTestConfig config) { }
}
<fhirtest testScript="tests/patient-create.tsh"
          serverUrl="http://localhost:8080/fhir"
          reportDir="target/fhir-reports"/>

Architecture

Architecture Overview