# Understand the limited FHIR R4 checks

See exactly which Patient, Observation, Bundle and OperationOutcome checks run, with synthetic examples and explicit conformance limits.

Workspace 0.2.2 · Analyzer 0.1.0, formatter 0.1.0, checker 0.1.0 · Updated September 14, 2026

[Read this guide as HTML](https://hl7tools.io/guides/fhir-r4-checks.html) · [Open FHIR checker](https://hl7tools.io/fhir-resource-validator.html)

## Use a small, explicit set of checks

The [FHIR Resource Checker](https://hl7tools.io/fhir-resource-validator.html) runs selected checks for R4 4.0.1. It accepts one JSON resource or a Bundle, not a top-level array. `supported: true` describes supported check scope; it can coexist with error findings.

- Patient: optional name array of nonempty objects, active boolean and gender code. Missing name or id is not an error; individual HumanName elements are not checked.
- Observation: required status and code; the eight R4 status codes, including corrected; selected code/category CodeableConcept and Coding shapes; numeric valueQuantity.value and selected quantity strings.
- Bundle: required type from the nine R4 codes; present entry array, entry objects and fullUrl strings; recursive checks of present entry.resource values.
- OperationOutcome: nonempty issue array, required severity and issue codes, diagnostics strings and details CodeableConcept shapes.

Common checks cover JSON syntax, unique keys, a resource object and resourceType, plus selected id and meta.profile shapes. Listing a profile does not load it or bypass baseline checks.

## Locate two concrete issues

```json
{
  "resourceType": "Observation",
  "status": "final",
  "valueQuantity": {"value": "2.00"}
}
```

Expected error count and JSON Pointer paths:

```text
Errors: 2
/code
/valueQuantity/value
```

The code element is missing, and the quantity value is a quoted string. The error path identifies the selected field that failed a check.

## Correct those issues without overreading the result

```json
{
  "resourceType": "Observation",
  "status": "corrected",
  "code": {"text": "Synthetic measurement"},
  "valueQuantity": {"value": 2.00, "unit": "example units"}
}
```

```text
Errors: 0
Supported scope: yes
FHIR conformance: not established
```

The checker accepts the numeric token `2.00` without changing its spelling. This example has no detected errors within the supported rules; the result does not certify the code, units or clinical meaning.

## Recognize unsupported input

```json
{"resourceType":"Encounter"}
```

```text
Supported scope: no
/resourceType: unsupported resource type
```

Only the four listed resource types have checks. Extension-only enumerated primitives receive an unsupported warning rather than a false missing-code assertion. Contained resources are not checked. Findings stop at a cap with an explicit incomplete-result warning.

## Use fuller validation where it is needed

Unlisted fields, profiles, terminology bindings, reference resolution, invariants, slicing, extensions, narratives and Bundle request/response rules are outside this checker. No external profiles or terminology services are contacted. The formatter input and complexity limits also apply.

The [official FHIR validation guidance](https://hl7.org/fhir/R4/validation.html) describes checks beyond this tool. Use the relevant base specification and implementation guide when assessing conformance; no detected issues here is only a limited result.

All examples are synthetic. [Browse all developer guides](https://hl7tools.io/guides.html).
