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

# Catálogo de errores

> Códigos cl-* con descripción, ejemplo y quickFix cuando aplica.

Inspect devuelve códigos estables en `ValidateResponse.issues[].code`. Esta
página los enumera por categoría. Para reglas locales por recurso ver
[MCP → Reglas locales](/mcp/reglas-locales).

## Estructura común

Cada código tiene:

* `code`, identificador estable, ej: `cl-enc-04`.
* `severity`, `error` o `warning`.
* `path`, FHIRPath donde está el problema.
* `message`, descripción en español apta para mostrar al usuario.
* `why`, razón de la regla, con referencia al perfil CL Core.
* `profileUrl`, URL canónica del perfil oficial.
* `suggestion`, qué hacer para resolverlo.
* `example`, fragmento JSON con el formato correcto.
* `quickFix` *(opcional)*, solución mecánica con `jsonPointer` (RFC 6901) y `replacement`.

## Categorías

| Prefijo             | Origen                                                |
| ------------------- | ----------------------------------------------------- |
| `cl-json-*`         | Formato y estructura del JSON                         |
| `cl-run-*`          | Identificador nacional dentro de `CorePacienteCl`     |
| `cl-patient-*`      | CorePacienteCl                                        |
| `cl-practitioner-*` | CorePrestadorCl                                       |
| `cl-obs-*`          | Observation                                           |
| `cl-med-*`          | CoreMedicamentoCl                                     |
| `cl-medreq-*`       | MedicationRequest                                     |
| `cl-enc-*`          | EncounterCL                                           |
| `cl-cond-*`         | Condition                                             |
| `cl-allergy-*`      | AllergyIntolerance                                    |
| `cl-proc-*`         | Procedure                                             |
| `cl-cov-*`          | Coverage                                              |
| `cl-org-*`          | Organization                                          |
| `cl-imm-*`          | Immunization                                          |
| `cl-dr-*`           | DiagnosticReport                                      |
| `cl-bundle-*`       | Bundle                                                |
| `hapi-*`            | Validación contra HAPI con IG cargado                 |
| `mcp-*`             | Errores del connector MCP (red, cuota, autenticación) |

## Ejemplo: `cl-enc-05`

Encounter clasificado con un CodeSystem propio en vez del canónico `v3-ActCode`. El recurso es JSON válido, pero ningún consumidor que valide terminología lo va a aceptar.

```json theme={null}
{
  "code": "cl-enc-05",
  "severity": "warning",
  "path": "Encounter.class.system",
  "message": "Encounter.class.system debería ser canónico v3-ActCode (http://terminology.hl7.org/CodeSystem/v3-ActCode). Códigos esperados: AMB · IMP · EMER · HH.",
  "why": "FHIR R4 + HL7 v3: Encounter.class usa el CodeSystem v3-ActCode con códigos AMB (ambulatorio), IMP (internado), EMER (urgencia), HH (domiciliario). Usar un system propio rompe interoperabilidad con bus MINSAL.",
  "profileUrl": "http://hl7.org/fhir/StructureDefinition/Encounter",
  "suggestion": "Reemplazar `class.system` por `http://terminology.hl7.org/CodeSystem/v3-ActCode` y mapear el código local al equivalente AMB/IMP/EMER/HH.",
  "example": {
    "class": {
      "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
      "code": "AMB"
    }
  },
  "quickFix": {
    "title": "Cambiar a v3-ActCode (AMB)",
    "jsonPointer": "/class",
    "replacement": {
      "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
      "code": "AMB"
    }
  }
}
```

## Ejemplo: `cl-medreq-02`

MedicationRequest sin `intent`. Cardinalidad `1..1` en FHIR® R4. La prescripción no se puede interpretar sin saber si es `order`, `plan`, `proposal`, etc. Es uno de los campos que más se omite al migrar prescripciones desde un sistema legacy.

```json theme={null}
{
  "code": "cl-medreq-02",
  "severity": "error",
  "path": "MedicationRequest.intent",
  "message": "MedicationRequest.intent es obligatorio. Códigos válidos: proposal · plan · order · original-order · reflex-order · filler-order · instance-order · option.",
  "why": "FHIR R4: MedicationRequest.intent cardinalidad 1..1 con binding required. Sin intent, el consumidor no puede distinguir una receta firmada (order) de una sugerencia de IA (proposal) o un protocolo precargado (plan).",
  "profileUrl": "http://hl7.org/fhir/StructureDefinition/MedicationRequest",
  "suggestion": "Para una prescripción dispensable usar `order`. Para un draft que aún no se ha firmado, `proposal` o `plan`.",
  "example": { "intent": "order" },
  "quickFix": {
    "title": "Setear intent = order",
    "jsonPointer": "/intent",
    "replacement": "order"
  }
}
```

## Ver listado completo en runtime

Desde el MCP:

```text theme={null}
fhiron_explain_code(code: "cl-enc-05")
```

O leyendo el resource MCP:

```text theme={null}
fhiron://errors
```

<Note>
  El catálogo completo se consulta desde el conector MCP con `fhiron_explain_code` o leyendo el recurso `fhiron://errors`. Ambos devuelven la versión vigente. Esta página puede atrasarse entre releases.
</Note>
