MedVertical

Use Case

CI/CD Quality Gate

Your CI tests code quality. Records tests data quality. Add FHIR validation to your pipeline in under 5 minutes.

For: IG authors, FHIR dev teams, health-tech engineers, AI agent builders

The problem

Your pipeline validates code. Who validates the data?

You have unit tests, integration tests, linting, type checks — all running on every pull request. But the FHIR data your application produces or consumes? No gate. A mapping change silently breaks conformance. A profile update introduces new constraints that your test data doesn't cover. You find out in production.

IG authors face the same gap: profile changes are published without regression tests against real data. Constraint errors only surface in downstream implementations — weeks or months after the IG release.

And increasingly, AI agents generate FHIR resources at scale — automated mapping pipelines, Claude for Healthcare workflows, MCP-based agents. Without a validation gate, AI-generated output reaches production unchecked.

FHIR data without quality gates is untested code.

How Records solves it

A conformance gate in your pipeline — red/green on every PR.

Development environment overview — CI/CD integration context with validation status

Records treats data quality like code quality. Your CI pipeline already runs unit tests, linting, and type checks. Records adds FHIR conformance as another gate: structural validation, profile conformance, terminology binding checks, reference integrity, invariant evaluation, custom rules, metadata validation, and anomaly detection — the 8 validation aspects — run on every PR. The engine is pure TypeScript — no JVM, no cold start, under 100ms per resource. It runs anywhere Node.js runs: CI runners, Docker, edge environments.

Validation run history — 13 runs triggered by CI pipeline, mix of Pass and Warn statuses with baseline marker

Every PR triggers a validation run. The run history tracks conformance across all PRs — pass, warn, or fail. Baseline markers show the reference point for delta comparison.

For IG authors: Records validates your implementation guide against a test corpus on every pull request. Profile changes are regression-tested against real data before publication. Constraint errors surface in the PR, not in downstream implementations weeks later. The same validation is available as an MCP server and Anthropic Agent Skill — IG authors using Claude for FHIR development get validation feedback without leaving their workflow.

When a check fails, drill into issues grouped by validation aspect — structural, profile, terminology, metadata — to find the root cause.

Issues overview — grouped by validation aspect with count badges
Issue selected — affected resources panel with triage action

Select an issue to see affected resources and field-level errors. Create triage actions directly from the investigation view.

Pure TypeScript — no JVM

No Java runtime, no cold start. Under 100ms per resource. Runs anywhere Node.js runs — CI runners, Docker, edge.

8 validation aspects

Structural, profile, terminology, reference, invariant, custom rules, metadata, anomaly — all configurable per project.

PR-level delta

Every PR is compared against the test baseline. New conformance errors block the merge. Resolved errors are tracked.

AI agent integration

Built-in MCP server and Anthropic Agent Skill. AI agents that generate FHIR get validation feedback in the same workflow.

How to integrate

Add FHIR validation to your CI pipeline in under 5 minutes.

Pull Request
CI Pipeline
Lint
Test
Records
Type Check
Merge

GitHub Actions

# .github/workflows/fhir-validation.yml
- name: FHIR Validation Gate
  run: npx @records-fhir/cli validate \
    --server=$TEST_FHIR \
    --ig=<project-IG>

IG Author (local corpus)

records validate \
  --ig=./ \
  --corpus=./test-corpus/ \
  --baseline=latest

What gets pinned

PinPurpose
ig_packagesProfile versions pinned per branch
validator_versionSame engine across all PR runs
thresholds_appliedPass/fail criteria consistent across PRs
environment_labelSeparates PR test runs from staging/production

Run directly via npx — no installation required. Works with GitHub Actions, GitLab CI, Azure Pipelines, or any CI system that runs Node.js. No server-side deployment required for the CI gate — the CLI connects to your test FHIR server directly.

What you get

PR conformance gate

Red/green check blocks non-conformant changes before merge.

Pure TypeScript — no JVM

Under 100ms per resource. No Java, no cold start. Runs in any CI environment with Node.js.

Root-cause drill-down

From PR check to specific resources and field-level errors.

Per-environment baselines

Delta on every PR against test baseline, on every deploy against target.

MCP server for AI agents

Same validation via Model Context Protocol. AI agents that generate FHIR get quality feedback in their workflow.

IG regression testing

Validate your IG against a defect corpus on every PR. Catch constraint errors before publication.

Data quality deserves the same rigor as code quality

Your pipeline gates code changes. Why not data changes?

Without RecordsWith Records CI gate
FHIR conformance testingManual, after deploymentAutomated, on every PR
Regression detectionne — errors found in productionDelta against baseline on every PR
Time to integrateDays/weeks of custom scripting< 5 minutes via npx
IG authoring feedbackWeeks (downstream implementers report)Minutes (PR check fails)
Evidence trailnePer-PR validation report with reproducibility
AI agent validationNot supportedMCP server + Anthropic Agent Skill — same gate for AI-generated FHIR

Frequently asked questions

Under 5 minutes. Add one step to your GitHub Actions or GitLab CI config: npx @records-fhir/cli validate --server=$TEST_FHIR --ig=<project-IG>. No installation, no server deployment, no configuration files.

The CLI can run standalone for basic validation. For delta comparison, baseline tracking, and evidence reports, it connects to a Records instance (SaaS or self-hosted).

Yes. Use --ig=./ to point at your local IG directory and --corpus=./test-corpus/ to validate against a set of test resources. This is how IG authors use Records for regression testing.

Any CI system that runs Node.js: GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, CircleCI, Bitbucket Pipelines. The CLI is distributed via npm (npx @records-fhir/cli).

Records produces a pass/fail signal as a CI check result. Whether that check is required to pass before merge is configured in your CI system's branch protection rules — Records does not impose policy.

See this on your own data.

We'll set up a validation gate in your pipeline — live, in 30 minutes.