@babelfhir-ts/client-r5
v0.2.3
Published
Typed FHIR R5 client with read/write/search methods for all 157 base resource types, SMART on FHIR auth, and bundle parsing
Maintainers
Readme
@babelfhir-ts/client-r5
Typed FHIR R5 client with read/write/search methods for all 157 base resource types, SMART on FHIR auth, and bundle parsing.
Installation
npm install @babelfhir-ts/client-r5Peer dependency: @types/fhir
Usage
Read Client
import { FhirReadClient } from '@babelfhir-ts/client-r5';
const client = new FhirReadClient('https://hapi.fhir.org/baseR5');
// Typed read — returns fhir5.Patient
const patient = await client.patient().read('example');
// Search with parameters
const results = await client.observation().search({ subject: 'Patient/example' });
// Get first match
const condition = await client.condition().searchOne({ code: '73211009' });Write Client
import { FhirWriteClient } from '@babelfhir-ts/client-r5';
const client = new FhirWriteClient('https://hapi.fhir.org/baseR5');
await client.patient().create({ resourceType: 'Patient', name: [{ family: 'Smith' }] });
await client.patient().update({ resourceType: 'Patient', id: '123', active: true });
await client.patient().delete('123');Combined Client
import { FhirClient } from '@babelfhir-ts/client-r5';
const client = new FhirClient('https://hapi.fhir.org/baseR5');
// Has both read and write methods for all 157 resource typesSMART on FHIR
import { SmartFhirClient } from '@babelfhir-ts/client-r5';
const client = new SmartFhirClient({
clientId: 'my-app',
redirectUri: 'http://localhost:3000/callback',
scope: 'openid fhirUser patient/*.read',
fhirBaseUrl: 'https://launch.smarthealthit.org/v/r5/fhir',
});
await client.authorize();
const patient = await client.patient().read('example');Bundle Parsing
import { BundleParser } from '@babelfhir-ts/client-r5';
const patients = BundleParser.getResourcesByType<fhir5.Patient>(bundle, 'Patient');
const first = BundleParser.getFirstResourceByType<fhir5.Patient>(bundle, 'Patient');API
| Export | Description |
|---|---|
| FhirReadClient | 157 typed read/search accessors |
| FhirWriteClient | 157 typed create/update/delete accessors |
| FhirClient | Combined read + write client |
| SmartFhirClient | SMART-authenticated FHIR client |
| BundleParser | Static bundle extraction helpers |
| SmartAuth | SMART on FHIR v2 authorization (re-exported from @babelfhir-ts/smart-auth) |
| discoverEndpoints | SMART endpoint discovery |
Part of BabelFHIR-TS
This package is the R5 variant of the base client that BabelFHIR-TS-generated profile clients extend. See also @babelfhir-ts/client-r4 and @babelfhir-ts/client-r4b.
License
MIT
