Skip to main content

Escenario

Un consultorio APS necesita reportar consultas ambulatorias hacia el bus MINSAL. El error más frecuente al migrar de un HIS legacy es usar status: "complete" (no es código FHIR®, lo emite el HIS) y class.system con un CodeSystem propio del proveedor. Inspect marca ambos con cl-enc-04 y cl-enc-05. Los dos son obstáculo seguro para FONASA y el bus MINSAL.

Payload válido

Encounter ambulatorio finalizado
{
  "resourceType": "Encounter",
  "status": "finished",
  "class": {
    "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
    "code": "AMB",
    "display": "ambulatory"
  },
  "type": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "11429006",
          "display": "Consulta"
        }
      ]
    }
  ],
  "subject": { "reference": "Patient/example" },
  "participant": [
    {
      "individual": { "reference": "Practitioner/example" }
    }
  ],
  "period": {
    "start": "2026-05-12T09:00:00-04:00",
    "end":   "2026-05-12T09:25:00-04:00"
  },
  "reasonCode": [
    {
      "coding": [
        {
          "system": "http://hl7.org/fhir/sid/icd-10",
          "code": "J00",
          "display": "Rinofaringitis aguda"
        }
      ]
    }
  ]
}

Cómo validarlo

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

OperationOutcome esperado

Cuando el status está dentro del ValueSet encounter-status y class.system es v3-ActCode, issue[] viene vacío. Errores típicos cuando algo falla:
  • cl-enc-04: status fuera del ValueSet encounter-status. Caso típico: "complete" que emite un HIS legacy. El valor correcto es "finished".
  • cl-enc-05: class.system no canónico. Caso típico: un CodeSystem propio del proveedor (https://miempresa.cl/encounter-types). El valor correcto es http://terminology.hl7.org/CodeSystem/v3-ActCode con código AMB · IMP · EMER · HH.

Tips

Códigos v3-ActCode más usados en Chile:
  • AMB: ambulatorio (consulta APS, especialidad ambulatoria).
  • IMP: internado (hospitalización).
  • EMER: urgencia (servicio de urgencia).
  • HH: domiciliario (atención en domicilio).
period.start y period.end en ISO-8601 con offset Chile (-04:00 horario estándar abril–septiembre, -03:00 horario de verano octubre–marzo). UTC también se acepta, pero la trazabilidad clínica suele leerse en hora local.
reasonCode con CIE-10 (http://hl7.org/fhir/sid/icd-10) es el sistema esperado por FONASA. SNOMED CT funciona en EHR modernos pero el bus MINSAL agrega CIE-10.
Para un Encounter que aún no terminó, usar status: "in-progress" y omitir period.end. Inspect no exige period.end mientras status sea "in-progress" o "arrived".
Inspect valida este Encounter contra el perfil R4 base más las reglas cl-enc-04 y cl-enc-05. Si class.system no es v3-ActCode, devuelve cl-enc-05 con quickFix (replacement: { system: ".../v3-ActCode", code: "AMB" }).