Node FHIR client library
- 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 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.
JSDoc-generated documentation with plenty of examples
To see how to follow launch and authorization workflows for FHIR applications, see the examples directory and examples README.
FHIRKit Create React App provides a create-react-app template that can be used to create a sample React app using FHIRKit Client.
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
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.
MIT
Copyright (c) 2018 Vermonster LLC