Skip to main content

Uso

fhiron validate examples/patient.json
Por glob (procesa cada archivo en serie):
fhiron validate "src/**/*.fhir.json"
Sin path, usa validate.include de fhiron.config.json:
fhiron validate

Output

1 archivo · 0 errores · 1 warning · hl7.fhir.cl.clcore@1.9.4

  ✓ examples/encounter.json · score 92/100

      warning · Encounter.class
        Encounter.class debe estar vinculado a v3-ActEncounterCode (binding required)
        Perfil: hl7.fhir.cl.clcore EncounterCl
        Quick fix: cambia "IMP" por { system: "http://terminology.hl7.org/CodeSystem/v3-ActCode", code: "IMP" }

Cuota: 47/1666 hoy · 1240/50000 mes

Flags

FlagEfecto
--jsonOutput programático en JSON (incluye issues con quickFix cuando aplica).
--quietSolo errores, oculta warnings.
--profile <id>Override del perfil. Default: el de fhiron.config.json o hl7.fhir.cl.clcore@1.9.4.
--timeout <ms>Timeout por archivo. Default: 10000.

Exit codes

CodeSignificado
0Todos los archivos son válidos (warnings permitidos).
1Hay al menos un error: validación fallida, JSON inválido, fallo de petición o falta de login.
2El motor remoto no pudo validar (estado degradado); la validación no se ejecutó y no se descontó cuota.

Manejo de errores

StatusMensajeQué hacer
401API key inválida o caducada.Corre fhiron login de nuevo.
429Cuota agotada.Sube de plan en billing.
5xxError del servidor.Reintenta en unos segundos. Si persiste, revisa status.fhiron.cl.

Uso en CI — GitHub Actions

name: FHIR validation
on: [pull_request]
jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20 }
      - run: npx @fhiron/cli lint     "fhir/**/*.json"
      - run: npx @fhiron/cli validate "fhir/**/*.json"
        env:
          FHIRON_API_KEY: ${{ secrets.FHIRON_API_KEY }}
Cada validate descuenta 1 de la cuota del tenant. Para PRs con muchos recursos considera --quiet para reducir el ruido en el log de Actions.

Headers de rate-limit

Cada respuesta exitosa incluye:
X-RateLimit-Limit:     30
X-RateLimit-Remaining: 27
X-RateLimit-Reset:     43
Fhiron-CL-Core-Version: 1.9.4
Fhiron-CL-Core-Channel: current
X-RateLimit-Limit es el budget por minuto por API key (no por mes). Para cuota mensual ver fhiron status.

Relación con el endpoint REST

fhiron validate es un wrapper sobre POST /api/validate. El CLI agrega: globs, exit codes, formato de output, manejo automático de la API key, retries. Si necesitas embeber la validación en el runtime de tu aplicación (Node/TypeScript), usa el SDK @fhiron/sdk: cliente tipado, errores en español y manejo de cuota, sin armar el fetch a mano. Desde otros lenguajes, llama al endpoint REST directo.