Documentatie / Aan de slag / Introductie

HealthTest Documentatie

HealthTest is een Git-first interoperability testplatform voor FHIR R4- en MedMij-integraties in Nederland en Europa.

Wat is HealthTest?

Met HealthTest tonen zorg-ontwikkelaars en integratie-engineers vóór elke release aan dat hun FHIR-eindpunten voldoen aan de relevante informatiestandaarden (zoals NL Core en MedMij).

Kernprincipe (ADR-010): HealthTest slaat standaard nooit onversleutelde volledige patiëntgegevens of klinische payloads op. Testresultaten zijn deterministische fingerprints en genormaliseerde bevindingen.

CLI Commando's & Naslag

De CLI is direct uitvoerbaar via npm of npx:

# Starter testpack scaffolden met scenario.yaml en healthtest.config.json
npx @healthtest/cli init my-project

# Omgevingsdiagnose (Node.js >=20, Java, Docker, netwerk)
npx @healthtest/cli doctor

# Endpoint discovery (SMART configuration en CapabilityStatement)
npx @healthtest/cli discover https://api.ziekenhuis.nl/fhir

# Scenario uitvoeren tegen een lokaal of remote eindpunt
npx @healthtest/cli run ./scenarios/patient.yaml \
  --endpoint https://api.ziekenhuis.nl/fhir \
  --reporters console,json,junit,github-summary \
  --fail-on error

# Offline bestand- en directoryvalidatie met officiële HL7 validator
npx @healthtest/cli validate ./fixtures/observation.json

GitHub Actions Integratie

Voeg de officiële Action toe aan uw PR-workflow:

- name: Run HealthTest Conformance Suite
  uses: healthtest/action@v1
  with:
    scenario: ./testpacks/nl-core/scenarios/patient-bsn-conformance.yaml
    endpoint: ${{ secrets.FHIR_SANDBOX_URL }}
    baseline-path: .healthtest/baselines/main.json
    reporters: console,json,junit,github-summary
    fail-on: error

De 5 Conformance Gates

Gate 1Syntaxis: JSON-integriteit, UTF-8 validatie en FHIR datatype constraints (RFC 8259).
Gate 2Structuur: Kardinaliteiten (1..1), verplichte velden en StructureDefinition profielvalidatie.
Gate 3Terminologie: Binding aan SNOMED CT, LOINC en lokale Nictiz-waardelijsten.
Gate 4Business Rules: Nederlandse MedMij regels en logische invariants.
Gate 5Referentiële Integriteit: Resolveerbaarheid van interne en externe links.

Regressie Intelligence & Baselines

HealthTest vergelijkt elke testrun tegen een opgeslagen eerdere run (baseline). Bevindingen worden geclassificeerd in zeven categorieën:

  • new_failure: Nieuwe fout ontstaan in deze branch/commit (blokkeert PR).
  • resolved: Eerdere fout die succesvol is opgelost.
  • unchanged_failure: Bekende fout die al bestond op main.
  • new_warning: Nieuwe waarschuwing zonder blokkerende status.
  • tooling_change: Validatorversie of IG gewijzigd (oneerlijke vergelijking geweigerd).

Test Pack SDK & Dependency Locking

Met @healthtest/testpack-sdk bouwen en valideren auteurs eigen conformance testpacks met strikte semver dependency locking:

import { lintTestPack, packTestPack } from "@healthtest/testpack-sdk";

// Valideer testpack en scenario syntax
const lint = await lintTestPack("./my-pack");
if (!lint.valid) throw new Error(lint.errors.join("\n"));

// Bouw testpack bundle met deterministische SHA-256 integriteitsdigest
const bundle = await packTestPack("./my-pack");
console.log("Package digest:", bundle.digest);

Connectathon 2026 & Offline Demo Kit

Voor live conferenties en Connectathon demonstraties biedt HealthTest een volledig offline uitvoerbare testsuite zonder afhankelijkheid van zaal-wifi:

# Voer de complete 3-staps Connectathon demonstratie offline uit
pnpm --filter @healthtest/demo-runner demo