json-schema-resource-validation v1.0.5
Validator of FHIR resources
for Node.js
Validates FHIR resources using a FHIR JSON schema. See hl7.org/fhir/validation.html for more information about FHIR validation.
This module uses Ajv JSON schema validator. json-schema-resource-validation provides good perfomance and it can be easily integrated into your based on FHIR Node Js project.
PLEASE NOTE:
This validation module works with draft-06 and draft-07 JSON schemas(draft-06 is recommended).
Using custom validation schemas(not the one presented on hl7.org/fhir/validation.html) is not recommended
Current version 1.0.3 works with FHIR v4.0.0 resources ONLY
Getting started
Firstly you need to instal npm package :
npm install json-schema-resource-validation
Creation of validation instance looks like this :
const ResourceValidation = require('json-schema-resource-validation');
const resourceValidation = new ResourceValidation(); Use of FHIR validator with object type input parameter :
const ResourceValidation = require('json-schema-resource-validation');
const resourceValidation = new ResourceValidation();
const resourcePatient = {
"resourceType": "patient"
};
resourceValidation.validateResource('resourcePatient');NOTE:
.validateResource() has object type input parameter or string type input parameter(path to JSON file on your local machine)
string type input parameter:
const ResourceValidation = require('json-schema-resource-validation');
const resourceValidation = new ResourceValidation();
resourceValidation.validateResource('/home/username/Resources/bundle.json'); If resource is valid .validateResource() will return trueand false if invalid.
If resource is invalid you can get log of validation errors it's stored in .log property of validation instance.
Moreover:
You can output validation error log into console or log file by using additional input parameters for .validateResource().
Output into console:
const ResourceValidation = require('json-schema-resource-validation');
const resourceValidation = new ResourceValidation();
resourceValidation.validateResource('/home/username/Resources/patient.json', true);Result:

Output into file:
const ResourceValidation = require('json-schema-resource-validation');
const resourceValidation = new ResourceValidation();
resourceValidation.validateResource('/home/username/Resources/claim.json', false, true);Result:

How to configure resource validator
Resource validator can be configured via configuration file, which is located /path_to_your_project/node_modules/json-schema-resource-validation/lib/conf/Conf.json
Its content:
{
"pathToSchema": "/fhir-schemas/fhir.schema.json",
"schemaDraft": 6,
"showAllErrors": false,
"pathToLogDirectory": "./logs",
"logErrorsIntoFile": true,
"logErrorsIntoConsole": true
}As you can see, log settings, validation schema, schema draft can be set via this file.
NOTE:
- By deffault validator outputs only one error of the whole error array
- You can output the whole array switching
showAllErrorstotrue(for v1.0.3 it works only with additional property errors)
Command line interface
You can use resource validator via console. Just go to directory /path_to_your_project/node_modules/json-schema-resource-validation/ and type into your console .fhirvalidation -h.