FHIR R4 resource validator

Paste or open a resource in JSON and check its structure. Everything is processed in your browser: nothing is sent to a server.

Tip: Ctrl + Enter (⌘ + Enter on Mac) also validates.

Checks elements, cardinality, types, formats and references against the FHIR R4 (4.0.1) StructureDefinitions, with full validation of Patient, Practitioner, Organization, Encounter, Observation, DiagnosticReport, Condition, MedicationRequest, Bundle. Does not check invariants or terminologies.

Issues found

No resource validated yet.

    Formatted JSON

    Paste or open a resource and click Validate.

    What FHIR is and how to use the validator

    FHIR (Fast Healthcare Interoperability Resources) is the HL7 International standard that represents healthcare data as resources, such as Patient, Observation, Encounter, Condition and MedicationRequest. In release R4 (4.0.1), each resource is defined by a StructureDefinition, which sets the allowed elements, their data types and their cardinality. Resources can be exchanged as JSON or XML, usually through a REST API, and are linked by references such as Patient/123. A Bundle groups several resources into a single message, transaction or document.

    How to use: paste or open a resource in JSON and click Validate. Based on the official R4 StructureDefinitions, the validator checks whether each element exists in the resource, whether cardinality is respected (required elements and repetitions), whether primitive types follow the formats of the standard (dates, codes, URIs, numbers) and whether references point to allowed resource types. Full validation covers Patient, Practitioner, Organization, Encounter, Observation, DiagnosticReport, Condition, MedicationRequest and Bundle; for other resources only the resourceType is checked. Invariants (FHIRPath rules) and terminologies are not checked.

    Each issue is shown with the element path and the line in the formatted JSON, using the OperationOutcome severity and code. The resource is processed in your browser and is not sent or stored.