Blue Button Model
Blue Button Model Definition and Validation
This library defines a JSON Blue Button health data model. All parsers in blue-button library generate data that follow this model. The schema can be found here or programmatically here. The implementation uses z-schema.
Quick up and running guide
Prerequisites
- Node.js (v14.19+) and NPM
- Grunt.js
# Install dependencies
npm i
# Install grunt
npm i -g grunt
# Test
grunt
Usage
var fs = require('fs');
var bb = require('@amida-tech/blue-button');
var bbm = require('@amida-tech/blue-button-model');
var xmlString = fs.readFileSync('CCD_1.xml', 'utf-8');
var record = bb.parseString(xmlString);
var valid = bbm.validator.validateDocumentModel(record);
if (!valid) {
var error = bbm.validator.getLastError();
console.log(error);
}
API
validator.validateDocumentModel(document)
Primary method to validate Blue Button JSON documents.
Arguments
document
- JSON health data document.- returns -
true
or false
.
validator.validate(obj, schemaName)
Validates individual components in Blue Button documents such as sections and entries.
Arguments
obj
- Component in the JSON health data document.schemaName
- Type of obj
. You can use id
property of any schema avaiable in the list.- returns -
true
or false
.
validator.getLastError()
If validation fails this method returns the details of the errors. The error object is actually an array of errors and directly provided by the underlying library z-schema.
schemas.list(expandCommon)
Provides the list of schemas that are used in the model. The list includes section schemas, entry schemas and common component schemas. Full document schema is also available with id document_model
.
Arguments
expandCommon
- If this is falsy, common component (such as address, time, etc.) schemas are provided in an array.- returns - List of schemas.
schemas.map(expandCommon)
Similar to list but provides a map of schema ids (name) to schemas. If expandCommon
is falsy, the array of common component schemas are provided with common_models
key.
License
Licensed under Apache 2.0.