Skip to main content
lint() corre el linter de CL Core localmente: sin red, sin descontar cuota, de forma síncrona. Es ideal para feedback inmediato (un editor, un formulario, un paso previo) antes de gastar una validación remota.
import { Fhiron } from '@fhiron/sdk';

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

const issues = fhiron.lint(patient);
issues.forEach((i) => console.log(i.severity, i.code, i.message));

Firma

lint(resource: object): Issue[]
Devuelve un arreglo de Issue (vacío si no hay hallazgos). Es síncrono: no retorna una promesa.

Qué cubre el lint local

El linter captura lo que se ve sin necesidad de HAPI:
  • resourceType ausente o tipo desconocido.
  • Cardinalidades obligatorias de CL Core (por ejemplo Encounter.subject).
  • Formato y dígito verificador de RUN.
  • Comunas DEIS, terminología conocida (TFC, v3-ActCode, etc.).
  • Narrativa recomendada (text.div).
Cada hallazgo trae code estable, path, message en español y, cuando existe, suggestion o quickFix.

lint vs validate

lint()validate()
RedNo
CuotaNo descuentaDescuenta 1
MotorLinter embebidoHAPI + perfiles CL Core
LatenciaInmediataUna llamada HTTP
CoberturaEstructuralValidación canónica completa
El lint no reemplaza a validate(): hay reglas de perfil que solo el motor HAPI resuelve. El patrón recomendado es lint local para feedback rápido y validate() como verificación oficial antes de persistir o reenviar.

Combinarlos

check() hace ambos en un llamado y adjunta localIssues:
const result = await fhiron.check(resource);
// result.localIssues → del lint
// result.errors      → del motor remoto