This tool allows you to validate FHIR resources against the FHIR specification. Multiple versions of the FHIR standard are supported.
FHIR (Fast Healthcare Interoperability Resources) is a widely adopted standard for exchanging healthcare information electronically. FHIR-enabled interoperability, in turn, reduces the cost and complexity of integrating healthcare systems and applications.
In FHIR, every clinical concept is represented as a distinct resource with a set of attributes and relationships. In addition to resources, FHIR uses profiles (which further refine resources for specific use cases) and extensions (which allow customization without breaking compatibility with the core standard).
To see if a FHIR resource is valid, you need to check if it adheres to the standard's rules and any additional constraints imposed by profiles and implementation guides. This involves checking the structure of the resource, the cardinality, value domains, and terminology bindings of properties, and conformance to other constraints such as profiles and business rules.
Validation is an important step in the development of FHIR-based systems and applications as it ensures interoperability and data quality.
FHIR is a complex standard, and there are multiple aspects to consider when validating FHIR resources. It can take time to fully understand the standard and its conformance checking mechanisms.
I went deep into the specifics of conformance checking in FHIR early on to also see how it measures up to other standards. In the process, I started working on this tool which allowed me to learn the ins and outs of actually executing the validation.
I've also tried to make this tool as simple and easy to use as possible, and hope that it can save you time and effort when working with and validating FHIR resources.
Validating FHIR resources is a non-trivial task. Thankfully, FHIR comes with a reference implementation of a validator to support this. The brains of that implementation (the core validation logic) sit in the org.hl7.fhir.validation.ValidationEngine class in the HAPI FHIR library.
This validator uses the same engine as the reference implementation. I'm looking to add support for validating against custom profiles and terminology servers in the future.