Skip to main content

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.

Escenario

Una clínica integra su sistema de admisión con un EHR externo y necesita enviar Patient con RUN como identificador nacional. El campo más sensible es el dígito verificador: el RUN 15420097-3 es válido, pero 15420097-2 no lo es. Bridge valida el DV localmente con la regla cl-run-03 y obliga al identifier.system canónico del Registro Civil más type.coding con CSTipoIdentificador code 01.

Payload válido

Patient con RUN válido
{
  "resourceType": "Patient",
  "identifier": [
    {
      "use": "official",
      "type": {
        "coding": [
          {
            "system": "https://hl7chile.cl/fhir/ig/clcore/CodeSystem/CSTipoIdentificador",
            "code": "01",
            "display": "RUN"
          }
        ]
      },
      "system": "http://www.registrocivil.cl/run",
      "value": "15420097-3"
    }
  ],
  "name": [
    {
      "use": "official",
      "family": "Rojas",
      "given": ["María", "Elena"]
    }
  ],
  "gender": "female",
  "birthDate": "1982-06-14"
}

Cómo validarlo

curl -X POST https://fhiron.cl/api/validate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $FHIRON_API_KEY" \
  -d @patient.json

OperationOutcome esperado

Si el DV está correcto, issue[] viene vacío y el HTTP status es 200. Si el DV no cuadra con el módulo 11 (por ejemplo 15420097-2), Bridge devuelve:
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "invalid",
      "details": {
        "text": "Dígito verificador inválido. El módulo 11 del Registro Civil exige DV 3 para el cuerpo 15420097."
      },
      "expression": ["Patient.identifier[0].value"],
      "diagnostics": "{\"code\":\"cl-run-03\",\"why\":\"El DV se calcula con módulo 11 sobre el cuerpo numérico. 11 → 0, 10 → K mayúscula.\"}"
    }
  ]
}
Errores típicos cuando el caso falla:
  • cl-run-03 — DV no cuadra con el módulo 11.
  • cl-run-04identifier.system distinto del canónico http://www.registrocivil.cl/run.
  • cl-patient-* — falta name, gender o birthDate exigidos por CorePacienteCl.

Tips

El cuerpo del RUN se escribe sin puntos de miles: 15420097-3, no 15.420.097-3. Bridge normaliza puntos pero identifier.value debe quedar canónico en lectura/escritura.
La K del DV va en mayúscula. 15420097-k se rechaza con cl-run-03.
type.coding.code siempre es "01" (el código de RUN en CSTipoIdentificador). "RUN" solo sirve como display. Para pasaporte usar "02", para DNI extranjero "03".
Pacientes extranjeros sin RUN: usar type.coding.code "02" (pasaporte) o "03" (DNI extranjero) con system distinto y omitir la validación módulo 11 — Bridge la salta si type.coding.code != "01".
Bridge valida este Patient contra el perfil CorePacienteCl de CL Core 1.9.4. Si identifier.system no es canónico o el DV no cuadra, devuelve cl-run-03 / cl-run-04 con quickFix aplicable desde el MCP.