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

# Encuentro ambulatorio (v3-ActCode)

> Encounter con status=finished, class.system v3-ActCode code AMB y period cerrado.

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

```json Encounter ambulatorio finalizado theme={null}
{
  "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

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://fhiron.cl/api/validate \
    -H "Content-Type: application/json" \
    -H "X-API-Key: $FHIRON_API_KEY" \
    -d @encounter.json
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://fhiron.cl/api/validate", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-API-Key": process.env.FHIRON_API_KEY,
    },
    body: JSON.stringify(encounter),
  });
  const outcome = await response.json();
  ```

  ```python Python theme={null}
  import os, requests
  response = requests.post(
      "https://fhiron.cl/api/validate",
      headers={
          "Content-Type": "application/json",
          "X-API-Key": os.environ["FHIRON_API_KEY"],
      },
      json=encounter,
  )
  outcome = response.json()
  ```
</CodeGroup>

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

<Tip>
  **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).
</Tip>

<Tip>
  `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.
</Tip>

<Tip>
  `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.
</Tip>

<Tip>
  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"`.
</Tip>

<Note>
  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" }`).
</Note>
