# fhir/fhir-test-cases architecture

> Architecture diagram of the GitHub repository fhir/fhir-test-cases, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/fhir/fhir-test-cases
- Repository: https://github.com/fhir/fhir-test-cases

## Overview

fhir-test-cases is a static corpus of FHIR test resources distributed for implementations to use in their own test regimes. The principal workflow is for an implementation or test harness to obtain the corpus through Maven or a release download, then select versioned examples and focused suites for its validation needs. The repository also preserves specialized cases for cross-version validation, CDA, UCUM, and formats such as GraphQL and FHIRPath. The README and tree establish these capabilities; sampled Java and JavaScript excerpts do not establish how external harnesses consume them, so those connections are not inferred.

Main entry points: [`r3`](https://github.com/fhir/fhir-test-cases/tree/master/r3) (R3 Cases), [`r4`](https://github.com/fhir/fhir-test-cases/tree/master/r4) (R4 Cases), [`r4b`](https://github.com/fhir/fhir-test-cases/tree/master/r4b) (R4B Cases), [`r5`](https://github.com/fhir/fhir-test-cases/tree/master/r5) (R5 Cases)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_versions["FHIR Versions"]
  node_r3cases["R3 Cases"]
  node_r4cases["R4 Cases"]
  node_r4bcases["R4B Cases"]
  node_r5cases["R5 Cases"]
  node_r6cases["R6 Cases"]
end

subgraph group_suites["Focused Suites"]
  node_fhirpath["FHIRPath Cases"]
  node_graphql["GraphQL Cases"]
  node_liquid["Liquid Cases"]
  node_patch["Patch Cases"]
  node_narrative["Narrative Cases"]
  node_snapshots["Snapshot Cases"]
end

subgraph group_special["Specialized Cases"]
  node_validator["Cross-Version Validation"]
  node_cda["CDA Cases"]
  node_ucum["UCUM Source"]
end

subgraph group_access["Corpus Access"]
  node_maven["Maven Artifact"]
  node_release["Release Download"]
end

node_implementer(("FHIR Implementer"))
node_harness["Test Harness"]

node_implementer -->|"obtains artifact"| node_maven
node_implementer -->|"downloads corpus"| node_release
node_maven -->|"provides corpus"| node_harness
node_release -->|"provides corpus"| node_harness
node_harness -->|"selects cases"| node_r3cases
node_harness -->|"selects cases"| node_r4cases
node_harness -->|"selects cases"| node_r4bcases
node_harness -->|"selects cases"| node_r5cases
node_harness -->|"selects cases"| node_r6cases
node_harness -->|"selects cases"| node_fhirpath
node_harness -->|"selects cases"| node_graphql
node_harness -->|"selects cases"| node_liquid
node_harness -->|"selects cases"| node_patch
node_harness -->|"selects cases"| node_narrative
node_harness -->|"selects cases"| node_snapshots
node_harness -->|"selects cases"| node_validator
node_harness -->|"selects cases"| node_cda
node_harness -->|"selects source"| node_ucum

click node_r3cases "https://github.com/fhir/fhir-test-cases/tree/master/r3"
click node_r4cases "https://github.com/fhir/fhir-test-cases/tree/master/r4"
click node_r4bcases "https://github.com/fhir/fhir-test-cases/tree/master/r4b"
click node_r5cases "https://github.com/fhir/fhir-test-cases/tree/master/r5"
click node_r6cases "https://github.com/fhir/fhir-test-cases/tree/master/r6"
click node_fhirpath "https://github.com/fhir/fhir-test-cases/tree/master/r4/fhirpath"
click node_graphql "https://github.com/fhir/fhir-test-cases/tree/master/r4/graphql"
click node_liquid "https://github.com/fhir/fhir-test-cases/tree/master/r4/liquid"
click node_patch "https://github.com/fhir/fhir-test-cases/tree/master/r4/patch"
click node_narrative "https://github.com/fhir/fhir-test-cases/tree/master/r4b/narrative"
click node_snapshots "https://github.com/fhir/fhir-test-cases/tree/master/r4b/snapshot-generation"
click node_validator "https://github.com/fhir/fhir-test-cases/tree/master/validator"
click node_cda "https://github.com/fhir/fhir-test-cases/tree/master/cda"
click node_ucum "https://github.com/fhir/fhir-test-cases/tree/master/ucum"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_r3cases,node_r4cases,node_r4bcases,node_r5cases,node_r6cases toneBlue
class node_fhirpath,node_graphql,node_liquid,node_patch,node_narrative,node_snapshots toneAmber
class node_validator,node_cda,node_ucum toneMint
class node_maven,node_release toneRose
class node_implementer,node_harness toneIndigo
```

## Components

### FHIR Versions

- [R3 Cases](https://github.com/fhir/fhir-test-cases/tree/master/r3): `r3`
- [R4 Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4): `r4`
- [R4B Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4b): `r4b`
- [R5 Cases](https://github.com/fhir/fhir-test-cases/tree/master/r5): `r5`
- [R6 Cases](https://github.com/fhir/fhir-test-cases/tree/master/r6): `r6`

### Focused Suites

- [FHIRPath Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4/fhirpath): `r4/fhirpath`
- [GraphQL Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4/graphql): `r4/graphql`
- [Liquid Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4/liquid): `r4/liquid`
- [Patch Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4/patch): `r4/patch`
- [Narrative Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4b/narrative): `r4b/narrative`
- [Snapshot Cases](https://github.com/fhir/fhir-test-cases/tree/master/r4b/snapshot-generation): `r4b/snapshot-generation`

### Specialized Cases

- [Cross-Version Validation](https://github.com/fhir/fhir-test-cases/tree/master/validator): `validator`
- [CDA Cases](https://github.com/fhir/fhir-test-cases/tree/master/cda): `cda`
- [UCUM Source](https://github.com/fhir/fhir-test-cases/tree/master/ucum): `ucum`

### Corpus Access

- **Maven Artifact**
- **Release Download**

### Other components

- **FHIR Implementer**
- **Test Harness**

## Connections

- FHIR Implementer → Maven Artifact: obtains artifact
- FHIR Implementer → Release Download: downloads corpus
- Maven Artifact → Test Harness: provides corpus
- Release Download → Test Harness: provides corpus
- Test Harness → R3 Cases: selects cases
- Test Harness → R4 Cases: selects cases
- Test Harness → R4B Cases: selects cases
- Test Harness → R5 Cases: selects cases
- Test Harness → R6 Cases: selects cases
- Test Harness → FHIRPath Cases: selects cases
- Test Harness → GraphQL Cases: selects cases
- Test Harness → Liquid Cases: selects cases
- Test Harness → Patch Cases: selects cases
- Test Harness → Narrative Cases: selects cases
- Test Harness → Snapshot Cases: selects cases
- Test Harness → Cross-Version Validation: selects cases
- Test Harness → CDA Cases: selects cases
- Test Harness → UCUM Source: selects source
