Skip to content

amida-tech/blue-button-model

Repository files navigation

Blue Button Model

Blue Button Model Definition and Validation

NPM

Build Status Coverage Status

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.