> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fhiron.cl/llms.txt
> Use this file to discover all available pages before exploring further.

# Visión general

> Fhiron SDK: embebe validación FHIR® contra CL Core v1.9.4 en el runtime de tu aplicación. Cliente tipado, errores en español, zero dependencies.

El **SDK** es el canal para embeber la validación FHIR® dentro del código de tu aplicación. Mientras el MCP vive en tu agente y la CLI en tu terminal, el SDK corre **en el runtime de tu producto**: en el camino crítico, justo antes de persistir un recurso o reenviarlo a un EHR.

| Canal   | Dónde corre                                                          | Paquete                                                                        |
| ------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| **MCP** | Dentro del agente (Claude Code, Cursor, Continue.dev, JetBrains AI). | [`@fhiron/mcp-connector`](https://www.npmjs.com/package/@fhiron/mcp-connector) |
| **CLI** | Terminal, CI/CD, pre-commit hooks.                                   | [`@fhiron/cli`](https://www.npmjs.com/package/@fhiron/cli)                     |
| **SDK** | El runtime de tu app (Node/TypeScript).                              | [`@fhiron/sdk`](https://www.npmjs.com/package/@fhiron/sdk)                     |

Los tres consumen la misma API, descuentan la misma cuota del tenant y usan el mismo motor: CL Core v1.9.4 más los perfiles MINSAL.

## Qué resuelve

* **Validar en el camino crítico.** Antes de hacer `POST` de un `Encounter` a tu EHR o al Gateway, valídalo y rechaza lo que no cumple CL Core en el momento.
* **Errores en español, tipados.** Recibes los hallazgos ya traducidos, con referencia al perfil que falla, listos para mostrar en tu propia UI.
* **Cero boilerplate.** No armas `fetch`, headers, ni manejo de 401/429/timeouts. Una línea para construir el cliente.
* **Autocompletado.** Tipos `.d.ts` incluidos: tu editor sabe qué campos tiene un issue y qué errores puedes capturar.

## Ejemplo mínimo

```ts theme={null}
import { Fhiron } from '@fhiron/sdk';

const fhiron = new Fhiron({ apiKey: process.env.FHIRON_API_KEY });

const encounter = {
  resourceType: 'Encounter',
  status: 'finished',
  class: { system: 'http://terminology.hl7.org/CodeSystem/v3-ActCode', code: 'AMB' },
  subject: { reference: 'Patient/123' },
};

const result = await fhiron.validate(encounter);

if (!result.ok) {
  for (const issue of result.errors) {
    console.log(`${issue.path}: ${issue.message}`);
  }
}
```

## Dos modos de validación

| Método               | Red | Cuota        | Qué cubre                                                                  |
| -------------------- | --- | ------------ | -------------------------------------------------------------------------- |
| `lint(resource)`     | No  | No descuenta | Estructura, cardinalidades, RUN, comuna, terminología conocida. Inmediato. |
| `validate(resource)` | Sí  | Descuenta 1  | Motor HAPI + perfiles CL Core completos. La validación canónica.           |

`lint` es ideal para feedback en vivo (un editor, un formulario); `validate` es la verificación oficial contra el motor. Ver [lint](/sdk/lint) y [validate](/sdk/validate).

## Requisitos

* Node 18 o superior (usa el `fetch` global).
* Una API key de tu tenant ([dashboard](https://fhiron.cl/dashboard)).
* ESM y CommonJS soportados.

## Próximo paso

Empieza por la [instalación](/sdk/instalacion).
