Skip to content

Pattern Catalog

This page provides a high-level overview of all patterns in the FHIR Implementation Patterns collection.

Our FHIR Pattern Collection

Schema-aligned pattern language for building FHIR R4 Implementation Guides and terminology artifacts with fast feedback using HL7 build.fhir.org auto-build and the fhir.base.template#current publishing template.

Key Patterns Covered

  • Thin-Slice Use-Case First - Prevent profile-first paralysis by starting with a thin slice of a real workflow demonstrable end-to-end.
  • Executable Contract Backlog - Make requirements testable using conformance statements + examples + tests, tracked to issues.
  • Decision Log (ADR) with Reversibility - Capture key decisions as lightweight ADRs with explicit revisit triggers.
  • Two-Speed Workgroups - Separate a small delivery core from a broader review ring to balance velocity and legitimacy.
  • Definition-of-Done per Artifact - Define Done for each artifact type to prevent “nearly done” outputs.
  • FSH-First, Repo-First Authoring - Use FSH + Git for diffable, distributed authoring; avoid hand-editing JSON/XML.
  • Package-First IG Layout - Treat the IG as a versioned package with stable canonical + dependencies.
  • HL7 Build Preview Pipeline (base template) - Use HL7 auto-build to generate previews for every push using fhir.base.template#current.
  • Three-Layer Terminology Model - Separate CodeSystem/ValueSet/ConceptMap roles to reduce semantic drift.
  • Terminology as a Service (TaaS) Gate - Run $expand/$validate-code/$lookup in CI against a pinned terminology environment.
  • Terminology Release Train - Coordinate terminology change with IG releases using deprecation windows and diffs.

Key Features

  • Real-world applicable - Patterns based on actual implementation experiences
  • Standards-aligned - Built on HL7 FHIR, SMART on FHIR, and related healthcare standards
  • Comprehensive diagrams - PlantUML class and sequence diagrams for each pattern
  • Forces analysis - Detailed breakdown of the specific problems each pattern solves

Pattern Organization

The patterns in this collection are organized into logical categories by functional area:

  • Kickoff - Establish shared, testable direction in days—not months—by converting scope, risks, and success criteria into executable artifacts and decision logs.
  • Governance - Create workgroups that are small enough to decide and broad enough to be legitimate, with a cadence aligned to shipping increments.
  • Authoring Stack - Use a software-engineering-grade authoring stack (FSH + CI + packages) and HL7 auto-build previews with the neutral base template.
  • Terminology - Make terminology an explicit product with governance, distribution, and tests—so meanings don’t drift across implementations.
  • Profiling - Profile only as much as needed; bound complexity; ensure constraints are executable and justified.
  • Testing & Verification - Build a verification pipeline that continuously checks conformance across validators, servers, SDKs, and test platforms.
  • Release & Operations - Release with compatibility guarantees, publish packages, and operate with a predictable change process.

Each pattern follows a consistent structure derived from classical pattern literature.

Pattern Philosophy

Our approach follows several key principles:

1. Standards-First

All patterns are built on established healthcare standards:

  • HL7 FHIR for data exchange and APIs
  • SMART on FHIR for application authorization
  • DICOMweb for medical imaging integration
  • IHE profiles for workflow and security patterns

2. Incremental Adoption

Patterns are designed to support:

  • Phased implementation and migration strategies
  • Coexistence with legacy systems
  • Progressive enhancement of capabilities

3. Real-world Validation

Each pattern addresses documented challenges from actual implementations and includes:

  • Concrete use cases and scenarios
  • Performance and scalability considerations
  • Security and privacy implications

Patterns by Category

Kickoff

Establish shared, testable direction in days—not months—by converting scope, risks, and success criteria into executable artifacts and decision logs.

Thin-Slice Use-Case First

Intent: Prevent profile-first paralysis by starting with a thin slice of a real workflow demonstrable end-to-end.

Key Benefits:

  • Working skeleton in days
  • Hidden assumptions surface early
  • Scope stays honest

Executable Contract Backlog

Intent: Make requirements testable using conformance statements + examples + tests, tracked to issues.

Key Benefits:

  • Less rework
  • Automated gating
  • Vendor alignment

Decision Log (ADR) with Reversibility

Intent: Capture key decisions as lightweight ADRs with explicit revisit triggers.

Key Benefits:

  • Fast decisions with rationale
  • Avoid re-litigation

Governance

Create workgroups that are small enough to decide and broad enough to be legitimate, with a cadence aligned to shipping increments.

Two-Speed Workgroups

Intent: Separate a small delivery core from a broader review ring to balance velocity and legitimacy.

Key Benefits:

  • Decisions stay fast
  • Reviews predictable

Definition-of-Done per Artifact

Intent: Define Done for each artifact type to prevent “nearly done” outputs.

Key Benefits:

  • Predictable throughput
  • Fewer regressions

Authoring Stack

Use a software-engineering-grade authoring stack (FSH + CI + packages) and HL7 auto-build previews with the neutral base template.

FSH-First, Repo-First Authoring

Intent: Use FSH + Git for diffable, distributed authoring; avoid hand-editing JSON/XML.

Key Benefits:

  • Reviewable diffs
  • Automation-friendly

Package-First IG Layout

Intent: Treat the IG as a versioned package with stable canonical + dependencies.

Key Benefits:

  • Reliable validation
  • Composable dependencies

HL7 Build Preview Pipeline (base template)

Intent: Use HL7 auto-build to generate previews for every push using fhir.base.template#current.

Key Benefits:

  • Immediate preview URLs
  • Shared debugging logs

Terminology

Make terminology an explicit product with governance, distribution, and tests—so meanings don’t drift across implementations.

Three-Layer Terminology Model

Intent: Separate CodeSystem/ValueSet/ConceptMap roles to reduce semantic drift.

Key Benefits:

  • Semantic stability
  • Better mapping

Terminology as a Service (TaaS) Gate

Intent: Run $expand/$validate-code/$lookup in CI against a pinned terminology environment.

Key Benefits:

  • Catches drift early
  • Cross-product consistency

Terminology Release Train

Intent: Coordinate terminology change with IG releases using deprecation windows and diffs.

Key Benefits:

  • Predictable adoption
  • Fewer breaking changes

Profiling

Profile only as much as needed; bound complexity; ensure constraints are executable and justified.

Profile Minimalism with Justification

Intent: Every constraint must have a reason, an example, and a test; keep profiles lean.

Key Benefits:

  • Easier adoption
  • Less validator friction

Slice Explosion Control

Intent: Bound slicing complexity using budgets, conventions, and review gates.

Key Benefits:

  • Avoid brittle profiles
  • Better tooling performance

Example-Driven Profiling

Intent: Use examples as first-class design artifacts; every profile/value set validates and renders.

Key Benefits:

  • Regression tests
  • Usable IG

Testing & Verification

Build a verification pipeline that continuously checks conformance across validators, servers, SDKs, and test platforms.

Validator Gate in CI

Intent: Run IG Publisher validation as a hard gate on every PR.

Key Benefits:

  • Prevents broken packages
  • Catches FHIRPath issues

Cross-Product Interop Matrix

Intent: Test across validators/servers/SDKs continuously to catch ecosystem differences early.

Key Benefits:

  • Avoid vendor-specific success
  • Build confidence

TestScript / Inferno / Touchstone Alignment

Intent: Write portable conformance tests using TestScript/TestPlan conventions and execute on common platforms.

Key Benefits:

  • Reusable across vendors
  • Supports certification

Release & Operations

Release with compatibility guarantees, publish packages, and operate with a predictable change process.

Release Trains + Compatibility Contracts

Intent: Ship on predictable trains with semver, published packages, and compatibility promises.

Key Benefits:

  • Plannable upgrades
  • Reduced surprises

Change Impact Check & Diff Reports

Intent: Generate diffs and impact reports when artifacts change; validate downstream; publish migration notes.

Key Benefits:

  • Fewer regressions
  • Transparency

Quick Reference Table

Pattern Category Intent
Thin-Slice Use-Case First Kickoff Prevent profile-first paralysis by starting with a thin slice of a real workflow demonstrable end-to-end.
Executable Contract Backlog Kickoff Make requirements testable using conformance statements + examples + tests, tracked to issues.
Decision Log (ADR) with Reversibility Kickoff Capture key decisions as lightweight ADRs with explicit revisit triggers.
Two-Speed Workgroups Governance Separate a small delivery core from a broader review ring to balance velocity and legitimacy.
Definition-of-Done per Artifact Governance Define Done for each artifact type to prevent “nearly done” outputs.
FSH-First, Repo-First Authoring Authoring Stack Use FSH + Git for diffable, distributed authoring; avoid hand-editing JSON/XML.
Package-First IG Layout Authoring Stack Treat the IG as a versioned package with stable canonical + dependencies.
HL7 Build Preview Pipeline (base template) Authoring Stack Use HL7 auto-build to generate previews for every push using fhir.base.template#current.
Three-Layer Terminology Model Terminology Separate CodeSystem/ValueSet/ConceptMap roles to reduce semantic drift.
Terminology as a Service (TaaS) Gate Terminology Run $expand/$validate-code/$lookup in CI against a pinned terminology environment.
Terminology Release Train Terminology Coordinate terminology change with IG releases using deprecation windows and diffs.
Profile Minimalism with Justification Profiling Every constraint must have a reason, an example, and a test; keep profiles lean.
Slice Explosion Control Profiling Bound slicing complexity using budgets, conventions, and review gates.
Example-Driven Profiling Profiling Use examples as first-class design artifacts; every profile/value set validates and renders.
Validator Gate in CI Testing & Verification Run IG Publisher validation as a hard gate on every PR.
Cross-Product Interop Matrix Testing & Verification Test across validators/servers/SDKs continuously to catch ecosystem differences early.
TestScript / Inferno / Touchstone Alignment Testing & Verification Write portable conformance tests using TestScript/TestPlan conventions and execute on common platforms.
Release Trains + Compatibility Contracts Release & Operations Ship on predictable trains with semver, published packages, and compatibility promises.
Change Impact Check & Diff Reports Release & Operations Generate diffs and impact reports when artifacts change; validate downstream; publish migration notes.