Skip to content
Node.js FHIR client library
JavaScript
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs/fhir-kit-client/1.4.2 Regen docs Sep 6, 2019
examples Add note about other examples Jul 31, 2019
lib Replace request with cross fetch (#118) Jul 31, 2019
test Replace request with cross fetch (#118) Jul 31, 2019
.coveralls.yml
.editorconfig Use Editorconfig (#24) Apr 5, 2018
.eslintignore eslint ignore coverage Apr 11, 2018
.eslintrc.json Add custom header support (#76) Dec 21, 2018
.gitattributes
.gitignore configure publishing to npmjs (#25) Apr 11, 2018
.jsdoc.json Remove private functions. (#32) Apr 6, 2018
.node-version Update to current node LTS (#120) Nov 16, 2019
.nvmrc
.travis.yml Security fixes (#117) Jul 16, 2019
CHANGELOG.md prep for 1.4.2 Sep 6, 2019
CODE_OF_CONDUCT.md Add code of conduct from contributor-covenant.org (#21) Apr 5, 2018
CONTRIBUTING.md 25 - Contribution guidelines (#41) Apr 11, 2018
LICENSE Initial commit Mar 30, 2018
README.md prep for 1.4.2 Sep 6, 2019
issue_template.md 25 - Contribution guidelines (#41) Apr 11, 2018
package.json Update to current node LTS (#120) Nov 16, 2019
yarn.lock Update to current node LTS (#120) Nov 16, 2019

README.md

FHIRKit Client

npm version Build Status Coverage Status GitHub license

Node FHIR client library

Features

  • Support for R4 (4.0.0, 3.5.0, 3.3.0, 3.2.0), STU3 (3.0.1, 1.8.0, 1.6.0, 1.4.0, 1.1.0) and DSTU2 (1.0.2)
  • Support for all FHIR REST actions
  • Pagination support for search results
  • Batch and transaction support
  • Support for absolute, in-bundle, and contained references
  • Metadata caching on client instance
  • SMART security support
  • Capability-checking tool based on server capability statements
  • Minimal dependencies
  • Contemporary async/await structure
  • Modern ES6 Classes
  • TDD with Mocha
  • URL polyfill (so it works in client-only apps without much trouble)
  • Support optional parameters for the request, such as TLS key and cert

Examples

Examples using promises...

const Client = require('fhir-kit-client');
const fhirClient = new Client({
  baseUrl: 'https://sb-fhir-stu3.smarthealthit.org/smartstu3/open'
  });

// Get SMART URLs for OAuth
fhirClient.smartAuthMetadata().then((response) => {
  console.log(response);
  });


// Read a patient
fhirClient
  .read({ resourceType: 'Patient', id: '2e27c71e-30c8-4ceb-8c1c-5641e066c0a4' })
  .then((response) => {
    console.log(response);
  });


// Search for patients, and page through results
fhirClient
  .search({ resourceType: 'Patient', searchParams: { _count: '3', gender: 'female' } })
  .then((response) => {
    console.log(response);
    return response;
  })
  .then((response) => {
    console.log(response);
    return fhirClient.nextPage(response);
  })
  .then((response) => {
    console.log(response);
    return fhirClient.prevPage(response);
  })
  .catch((error) => {
    console.error(error);
  });

Examples using async/await...

const Client = require('fhir-kit-client');
const fhirClient = new Client({
  baseUrl: 'https://sb-fhir-stu3.smarthealthit.org/smartstu3/open'
  });

async function asyncExamples() {
  // Get SMART URLs for OAuth
  let response = await fhirClient.smartAuthMetadata();
  console.log(response);


  // Read a patient
  response = await fhirClient
    .read({ resourceType: 'Patient', id: '2e27c71e-30c8-4ceb-8c1c-5641e066c0a4' });
  console.log(response);


  // Search for a patient with name matching abbott, then paging
  let searchResponse = await fhirClient
    .search({ resourceType: 'Patient', searchParams: { name: 'abbott ' } })
  console.log(searchResponse);

  searchResponse = await fhirClient.nextPage(searchResponse);
  console.log(searchResponse);

  searchResponse = await fhirClient.prevPage(searchResponse);
  console.log(searchResponse);
}

asyncExamples();

For more examples see the JS Docs and Launch Examples below.

Documentation

JSDoc-generated documentation with plenty of examples

Launch Examples (SMART, CDS Hooks)

To see how to follow launch and authorization workflows for FHIR applications, see the examples directory and examples README.

Example React App

FHIRKit Create React App provides a create-react-app template that can be used to create a sample React app using FHIRKit Client.

Even more Examples (client-side ones)

See https://github.com/Vermonster/fhir-kit-client-examples for examples in React, Angular, and React Native.

Logging

The debug library can provide logging during development. Two different logging namespaces are provided, fhir-kit- client:info logs each request and response, and fhir-kit-client:error logs errors. To enable logging during development, add one of the namespaces to the DEBUG environment variable, or use fhir-kit-client:* to enable both.

$ DEBUG=fhir-kit-client:* node smart-launch.js

Contributing

FHIRKit Client is an open source Node.js FHIR client library that welcomes community contributions with enthusiasm.

All are welcome to participate. By participating in this project, you agree to follow the Code of Conduct.

Please see our Contributing document for more details on how to get started.

License

MIT

Copyright (c) 2018 Vermonster LLC

You can’t perform that action at this time.