# @ikim-ui/fuego-fhir-client

> `FuegoClient` extends `@ikim-ui/fhir-client` with search parameter types generated from Fuego's FHIR R4 CapabilityStatement. It uses the existing search and CRUD interface.

Latest version **0.1.3** (published 2026-09-24) · 0 weekly downloads

## Install

```sh
npm install @ikim-ui/fuego-fhir-client
pnpm add @ikim-ui/fuego-fhir-client
yarn add @ikim-ui/fuego-fhir-client
bun add @ikim-ui/fuego-fhir-client
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.1.3 |
| Published | 2026-09-24 |
| First published | 2026-09-23 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 2.4 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | IKIM UI |
| Maintainers | sgill, chebureki, trostalski |

## Links

- npm: https://www.npmjs.com/package/@ikim-ui/fuego-fhir-client
- npm.io page: https://npm.io/package/@ikim-ui/fuego-fhir-client

## Dependencies (2)

- [fhirclient](https://npm.io/package/fhirclient.md) ^2.6.0
- [@ikim-ui/fhir-client](https://npm.io/package/@ikim-ui/fhir-client.md) ^0.2.0

## Recent versions

- 0.1.3 (latest) — 2026-09-24
- 0.1.1 — 2026-09-23

## README

# Fuego FHIR client

`FuegoClient` extends `@ikim-ui/fhir-client` with search parameter types generated from Fuego's FHIR R4 CapabilityStatement. It uses the existing search and CRUD interface.

```ts
import { FuegoClient } from '@ikim-ui/fuego-fhir-client';

const client = new FuegoClient({ serverUrl: 'https://fuego.example/fhir' });
const result = await client.search({
	resourceType: 'Patient',
	searchParameters: { family: 'Example' },
});

if (result.success) {
	const patients = result.resources();
}
```

Authentication is configured separately through the base client's options or interceptors.

To regenerate the types, replace `metadata.json` with the target server's CapabilityStatement and run:

```sh
yarn workspace @ikim-ui/fuego-fhir-client generate
```

The shared generator requires Python 3.12. The included snapshot describes Fuego `0.11.1+933347b`, with 146 resource types. Composite and special search parameters use the shared generator's string representation. Search controls omitted from the metadata, such as `_count` and `_sort`, can be supplied through `rawParams`.

## Browser SMART authentication

```tsx
import { FhirProvider, useFhirAuth, useFhirClient } from '@ikim-ui/fuego-fhir-client/react';

<FhirProvider
  clientId="my-public-client"
  scopes="openid fhirUser system/Organization.rs"
  issuerUrl="https://fhir.example/fhir"
  basePath="/app/example"
  fallback={<p>Loading…</p>}
>
  <App />
</FhirProvider>
```

The provider owns login, session restoration, refresh, expiry, and logout.
Construct the router inside its children: the provider handles
`<basePath>/fuego-callback` before mounting them. Register that URL with the
identity provider and serve the SPA there; no callback route is needed.
Configuration is fixed for the lifetime of the provider.

- `useFhirAuth()` returns `status`, `user`, `expiresAt`, `login(returnTo?)`,
  `logout()`, `isLoggingIn`, `isLoggingOut`, and `error`.
- `useFhirClient()` returns the authenticated FHIR client.
- `onLogout` runs after local session clearing, including on expiry. Use it to
  cancel requests and clear app caches. Logout does not end identity-provider SSO.
- `fallback` supplies loading UI; `renderError(error)` supplies startup error UI.
  Without `renderError`, startup errors reach the nearest error boundary.

Status is `authenticated`, `unauthenticated`, or `expired`. User contains
`username`, `displayName`, and `practitionerId`. `expiresAt` is milliseconds since
epoch, or null when refreshable/unknown. Action errors are exposed as `error`
and reject the returned promise.

`returnTo` includes the base prefix, e.g. `/app/example/assignment`. Only
same-origin destinations within the app base are accepted. `sanitizeReturnPath`
can restrict them further. `serverUrl` overrides requests for a development
proxy while the authorization audience remains `issuerUrl`. `callbackPath`
and `loginPath` default to `/fuego-callback` and `/login`, relative to the base.

React is an optional peer dependency. Non-React consumers can use the controller
from `/auth`; React applications do not need to create one.

---
_Source: https://npm.io/package/@ikim-ui/fuego-fhir-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
