> ## 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.

# Inspect

> Validación FHIR® contra la versión CL Core resuelta por el motor, con errores en español.

Inspect valida recursos FHIR R4 contra el perfil correspondiente de la versión
CL Core resuelta para el tenant. Devuelve un `ValidateResponse` con errores en
español, referencia al perfil y `quickFix` cuando la corrección es mecánica.

## Superficies

<CardGroup cols={3}>
  <Card title="API REST" icon="bolt" href="/inspect/api">
    `POST /api/validate` con header `X-API-Key`.
  </Card>

  <Card title="Dashboard" icon="window" href="https://fhiron.cl/dashboard/bridge">
    Workspace web con editor JSON y resultado en tiempo real.
  </Card>

  <Card title="MCP" icon="plug" href="/mcp/overview">
    Conector npm para editores con soporte Model Context Protocol.
  </Card>
</CardGroup>

## Cobertura

* **CL Core oficial**: la respuesta informa la versión efectivamente resuelta
  mediante `Fhiron-CL-Core-Version`; el cambio de versión se gestiona por canal.
* **60+ reglas locales** `cl-*` para los 13 recursos más usados. Corren offline.
* **Validación completa contra el servidor** con el IG cargado: invariantes FHIRPath, bindings a ValueSets, terminologías, slicing, extensions.
* **Catálogos chilenos indexados:** comunas DEIS, establecimientos DEIS, TFC, CIE-10, CSIdentificadores.

## Flujo

```mermaid theme={null}
sequenceDiagram
    autonumber
    participant App as App cliente
    participant Inspect as Inspect API
    participant Motor as Motor de validación

    App->>Inspect: POST /api/validate<br/>X-API-Key
    activate Inspect
    Inspect->>Motor: Validar con la versión resuelta
    activate Motor
    Note over Motor: Reglas locales cl-*<br/>+ IG cargado

    alt Recurso válido
        Motor-->>Inspect: 0 issues
        Inspect-->>App: 200 · ValidateResponse valid=true
    else Recurso con issues
        Motor-->>Inspect: issues `cl-*` con `quickFix`
        Inspect-->>App: 422 · ValidateResponse valid=false
    end
    deactivate Motor

    Note over Inspect: Recurso descartado<br/>logs sin body
    deactivate Inspect
```

Los logs registran código de error, ruta del recurso y el identificador de tu organización. No incluyen el cuerpo del recurso ni datos identificables de pacientes.

## Anatomía de la respuesta

```json theme={null}
{
  "valid": false,
  "errors": [
    "Encounter.status='complete' no pertenece al ValueSet EncounterStatus."
  ],
  "warnings": [],
  "profile": null,
  "resourceType": "Encounter",
  "issues": [
    {
      "code": "cl-enc-04",
      "severity": "error",
      "path": "Encounter.status",
      "message": "Encounter.status='complete' no pertenece al ValueSet EncounterStatus.",
      "why": "FHIR R4 exige un código del ValueSet encounter-status.",
      "quickFix": {
        "title": "Cambiar status a finished",
        "jsonPointer": "/status",
        "replacement": "finished"
      }
    }
  ]
}
```

Cada elemento de `issues[]` usa campos estructurados; ningún cliente necesita
parsear JSON embebido en `diagnostics`. El contrato completo está en la
[referencia de API](/inspect/api).

## Latencia

Las reglas locales evitan una llamada de red. La latencia de la validación
remota depende del recurso, el perfil, la terminología y el estado del motor;
consulta [fhiron.cl/status](https://fhiron.cl/status) para el estado publicado.

## Cómo consumirlo

Tres canales sobre el mismo motor: elige el que calce mejor con tu flujo.

<CardGroup cols={3}>
  <Card title="API REST" icon="code" href="/inspect/api">
    `POST /api/validate` desde cualquier backend o cliente HTTP.
  </Card>

  <Card title="CLI" icon="terminal" href="/cli/overview">
    `fhiron validate` en terminal, CI/CD, pre-commit hooks.
  </Card>

  <Card title="MCP" icon="brain" href="/mcp/overview">
    Tool `fhiron_validate` dentro de Claude Code, Cursor, Continue.dev.
  </Card>
</CardGroup>

## Siguiente

<CardGroup cols={2}>
  <Card title="API reference" icon="code" href="/inspect/api">
    Endpoint, headers, request/response, ejemplos.
  </Card>

  <Card title="Errores" icon="circle-exclamation" href="/inspect/errores">
    Códigos `cl-*` y `quickFix`.
  </Card>
</CardGroup>
