The HAPI FHIR Validator API is a simple REST API in order to validate the structure and content of a FHIR object. The API uses the HAPI FHIR framework located at https://hapifhir.io/ in order to validate different all versions of FHIR objects. FHIR stands for Fast Healthcare Interoperability Resources which is a standard for data transmission within healthcare.
See our Swagger Hub API
If you want to see the raw JSON visit http://localhost:5000/v2/api-docs
Check out our How To Validate FHIR Resources Guide
docker run --name hapi-fhir-validator-api -p 5000:5000 jtravan3/hapi-fhir-validator-api:latest
Access the API by visiting http://localhost:5000/swagger-ui/index.html. From there you can hit the endpoints directly.
1.) Install maven 3.6.0 and Java JDK 11. JDK located here or use the Maven wrapper that's a part of this repository.
brew install maven
2.) Clone down the repository from Github
git clone [email protected]:jtravan3/hapi-fhir-validator-api.git
3.) After populating the properties build the project
./mvnw clean install
4.) Run the api.
./mvnw spring-boot:run
The project is configured with Spring dev tools which allows for hot reloads without restarting the application. Simply
rebuild the project after making a change (In IntelliJ use Build -> Build Project
or CMD + F9
) and the application will
auto re-deploy.
5.) Access the API by visiting http://localhost:5000/swagger-ui/index.html. From there you can hit the endpoints directly.
6.) Success!
1.) Install Docker located here.
2.) Clone down the repository from Github
git clone [email protected]:jtravan3/hapi-fhir-validator-api.git
3.) Run the API
docker-compose up
4.) Access the API by visiting http://localhost:5000/swagger-ui/index.html. From there you can hit the endpoints directly.
5.) Success!
1.) Access the API at http://localhost:5000/swagger-ui/index.html. You should see the following homepage.
2.) Once on the API, select the validation endpoint that you want to try out.
3.) Replace the {}
with the FHIR JSON object that you want to validate and select your X-Validate-Ignore-Codesystem
header value.
4.) Click Execute and then scroll down to see the response. If the response is successful you should see a JSON response of success
{
"successful": true,
"errors": [],
"warnings": [],
"info": [],
"exception": null
}
If there are issues the messages will be associated with their designated severity level.
{
"successful": false,
"errors": [
{
"message": "Unrecognised property '@nae'",
"locationString": "/Parameters/parameter",
"severity": "ERROR",
"locationLine": null,
"locationCol": null
},
{
"message": "Unrecognised property '@valeString'",
"locationString": "/Parameters/parameter/part",
"severity": "ERROR",
"locationLine": null,
"locationCol": null
},
{
"message": "Profile http://hl7.org/fhir/StructureDefinition/Parameters, Element 'Parameters.parameter[1].name': minimum required = 1, but only found 0",
"locationString": "Parameters.parameter[1]",
"severity": "ERROR",
"locationLine": null,
"locationCol": null
},
{
"message": "cvc-complex-type.2.4.a: Invalid content was found starting with element '{\"http://hl7.org/fhir\":valueBoolean}'. One of '{\"http://hl7.org/fhir\":extension, \"http://hl7.org/fhir\":modifierExtension, \"http://hl7.org/fhir\":name}' is expected.",
"locationString": null,
"severity": "ERROR",
"locationLine": 1,
"locationCol": 79
}
],
"warnings": [],
"info": [],
"exception": null
}
If you want to relax the validation you can pass the header X-Validate-Ignore-Codesystem
with a value of true
to ignore
certain code systems and profiles. This will allow you to only validate the structure of the FHIR resources rather than focusing
on the systems included. This is helpful if you can't control the source of the data that you are validating.
Please see CONTRIBUTING.md for more details regarding contributing issues or code.
If you are experiencing a bug, please feel free to file an issue. For general questions, please post them to StackOverflow with the tag hapi-fhir-validator-api
.
The content of this project itself is licensed under the Creative Commons Attribution 3.0 Unported license, and the underlying source code used to format and display that content is licensed under the MIT license.
For further references with Spring Boot:
For further references with Maven's dependency management framework: