@babelfhir-ts/client-r4
v0.2.6
Published
Typed FHIR R4 client with read/write/search methods for all 145 base resource types, SMART on FHIR auth, and bundle parsing
Maintainers
Readme
@babelfhir-ts/client-r4
Typed FHIR R4 client with read/write/search methods for all 145 base resource types, SMART on FHIR auth, and bundle parsing.
Installation
npm install @babelfhir-ts/client-r4Peer dependency: @types/fhir
Usage
Read Client
import { FhirReadClient } from '@babelfhir-ts/client-r4';
const client = new FhirReadClient('https://hapi.fhir.org/baseR4');
// Typed read — returns fhir4.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-r4';
const client = new FhirWriteClient('https://hapi.fhir.org/baseR4');
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-r4';
const client = new FhirClient('https://hapi.fhir.org/baseR4');
// Has both read and write methods for all 145 resource typesSMART on FHIR
import { SmartFhirClient } from '@babelfhir-ts/client-r4';
const client = new SmartFhirClient({
clientId: 'my-app',
redirectUri: 'http://localhost:3000/callback',
scope: 'openid fhirUser patient/*.read',
fhirBaseUrl: 'https://launch.smarthealthit.org/v/r4/fhir',
});
await client.authorize();
const patient = await client.patient().read('example');Bundle Parsing
import { BundleParser } from '@babelfhir-ts/client-r4';
const patients = BundleParser.getResourcesByType<fhir4.Patient>(bundle, 'Patient');
const first = BundleParser.getFirstResourceByType<fhir4.Patient>(bundle, 'Patient');API
| Export | Description |
|---|---|
| FhirReadClient | 145 typed read/search accessors |
| FhirWriteClient | 145 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 base client that BabelFHIR-TS-generated profile clients extend. Generated clients add profile-specific methods (e.g., .usCorePatient(), .pASClaim()) on top of the 145 base R4 resource accessors.
License
MIT
