InicioBlogPerfil PacienteCl: Cómo Modelar el RUN como Identificador FHIR en Chile
Guías técnicas9 min de lectura

Perfil PacienteCl: Cómo Modelar el RUN como Identificador FHIR en Chile

Guía técnica para implementar el identificador RUN/RUT en el perfil PacienteCl de CL Core v1.9.3. Algoritmo del dígito verificador, sistemas de identificación oficiales, ejemplo JSON completo y errores frecuentes.

Bernardo CajalesActualizado:

¿Qué es el perfil PacienteCl?

PacienteCl es el perfil CL Core v1.9.3 que adapta el recurso Patient de FHIR R4 al contexto chileno. Sus características principales: el RUN (Rol Único Nacional) como identificador primario, las comunas por decreto 817, la región de residencia, la nacionalidad, y el pueblo originario.

El identificador RUN en FHIR

En Chile, el identificador universal del paciente es el RUN (Rol Único Nacional), también llamado RUT cuando se refiere a personas jurídicas. CL Core define un sistema oficial de identificación para el RUN que deben usar todas las implementaciones FHIR.

Tipo de identificadorSistema FHIRCuándo usarlo
RUN (persona natural)https://rnpi.superdesalud.gob.cl/Pacientes chilenos con RUN vigente
Pasaportehttps://hl7chile.cl/fhir/ig/clcore/CodeSystem/CSIdentificadoresCódigo: PAS — pacientes extranjeros
DNI extranjerohttps://hl7chile.cl/fhir/ig/clcore/CodeSystem/CSIdentificadoresCódigo: DNI — residentes extranjeros
Recién nacido (sin RUN)https://hl7chile.cl/fhir/ig/clcore/CodeSystem/CSIdentificadoresCódigo: NNNxxx — antes de inscripción en RRC

Algoritmo del dígito verificador

El RUN chileno tiene el formato XXXXXXXX-Y donde X son los dígitos del RUN y Y es el dígito verificador (0-9 o K). El algoritmo módulo 11 calcula Y a partir de los dígitos del RUN.

typescript
function calcularDV(rut: number): string {
  let suma = 0;
  let multiplicador = 2;
  let rutTemp = rut;

  while (rutTemp > 0) {
    suma += (rutTemp % 10) * multiplicador;
    rutTemp = Math.floor(rutTemp / 10);
    multiplicador = multiplicador < 7 ? multiplicador + 1 : 2;
  }

  const resto = 11 - (suma % 11);
  if (resto === 11) return "0";
  if (resto === 10) return "K";
  return resto.toString();
}

// Uso
calcularDV(15654738); // → "7"  (RUN: 15.654.738-7)

Ejemplo completo PacienteCl

json
{
  "resourceType": "Patient",
  "meta": {
    "profile": [
      "https://hl7chile.cl/fhir/ig/clcore/StructureDefinition/CorePacienteCl"
    ]
  },
  "identifier": [
    {
      "use": "official",
      "system": "https://rnpi.superdesalud.gob.cl/",
      "value": "15.654.738-7"
    }
  ],
  "name": [
    {
      "use": "official",
      "family": "Soto Fuentes",
      "given": ["María", "Fernanda"]
    }
  ],
  "gender": "female",
  "birthDate": "1985-03-12",
  "address": [
    {
      "extension": [
        {
          "url": "https://hl7chile.cl/fhir/ig/clcore/StructureDefinition/ComunasCl",
          "valueCoding": {
            "system": "https://hl7chile.cl/fhir/ig/clcore/CodeSystem/CSCodComunasCL",
            "code": "13101",
            "display": "Santiago"
          }
        },
        {
          "url": "https://hl7chile.cl/fhir/ig/clcore/StructureDefinition/RegionesCl",
          "valueCoding": {
            "system": "https://hl7chile.cl/fhir/ig/clcore/CodeSystem/CSCodRegionCL",
            "code": "13",
            "display": "Región Metropolitana de Santiago"
          }
        }
      ],
      "country": "CL"
    }
  ],
  "communication": [
    {
      "language": {
        "coding": [
          {
            "system": "urn:ietf:bcp:47",
            "code": "es-CL",
            "display": "Español (Chile)"
          }
        ]
      },
      "preferred": true
    }
  ]
}

Errores frecuentes con el RUN

  • Usar puntos en el número sin guion: '15.654.738' en lugar de '15.654.738-7'.
  • Usar el sistema http://hl7.org/fhir/sid/cl-rut que ya no es el sistema oficial en CL Core v1.9.3.
  • Dígito verificador con K en minúscula: '15.654.738-k' en lugar de '15.654.738-K'.
  • Omitir el campo use: 'official' cuando el paciente tiene múltiples identificadores.
  • Usar el número de ficha local como valor en lugar del RUN del paciente.
¿Qué hago si el paciente no tiene RUN (recién nacido o extranjero)?
CL Core v1.9.3 define tipos de identificador alternativos. Para recién nacidos sin RUN, usa el código NNNxxx (NNN = RUN de la madre, xxx = número del parto). Para extranjeros, usa PAS (pasaporte) o DNI con el sistema CSIdentificadores de CL Core.
¿El RUT de persona jurídica es válido en PacienteCl?
PacienteCl está diseñado para personas naturales. El RUT de persona jurídica no aplica aquí. Para organizaciones usa el perfil OrganizacionCl.
¿Fhiron valida el dígito verificador del RUN?
Sí. Fhiron Bridge implementa el algoritmo módulo 11 del RUN chileno y rechaza con error cualquier identificador con dígito verificador incorrecto.

Valida tus recursos FHIR contra CL Core v1.9.3 ahora mismo

Plan Free incluye 100 validaciones/mes. Sin tarjeta de crédito.

Empezar gratis
B

Bernardo Cajales

Fundador y CEOFhiron

Ingeniero y fundador de Fhiron. Especialista en interoperabilidad FHIR para el estándar del sistema de salud, con foco en la Guía CL Core v1.9.3 del MINSAL y la Ley 21.668 de Historia Clínica Electrónica Única.