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 receta de paracetamol 500 mg que sale de un sistema de atención primaria hacia una farmacia ambulatoria necesita dos códigos: TFC (Terminología Farmacéutica Chilena, ISP) para que la farmacia pueda dispensar, y ATC (Anatomical Therapeutic Chemical, WHO) para que el bus MINSAL pueda agregarla en estadísticas. Bridge valida que MedicationRequest lleve status, intent, subject y medication[x] — las cuatro reglas cl-medreq-*.

Payload válido

MedicationRequest con TFC + ATC
{
  "resourceType": "MedicationRequest",
  "status": "active",
  "intent": "order",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "https://terminologia.minsal.cl/CodeSystem/TFC",
        "code": "F0001520",
        "display": "Paracetamol 500 mg comprimido"
      },
      {
        "system": "http://www.whocc.no/atc",
        "code": "N02BE01",
        "display": "Paracetamol"
      }
    ],
    "text": "Paracetamol 500 mg comprimido"
  },
  "subject": { "reference": "Patient/example" },
  "authoredOn": "2026-05-12",
  "requester": { "reference": "Practitioner/example" },
  "dosageInstruction": [
    {
      "text": "1 comprimido cada 8 horas por 3 días",
      "timing": {
        "repeat": { "frequency": 3, "period": 1, "periodUnit": "d" }
      },
      "route": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "26643006",
            "display": "Vía oral"
          }
        ]
      }
    }
  ],
  "dispenseRequest": {
    "quantity": { "value": 9, "unit": "comprimido" },
    "numberOfRepeatsAllowed": 0
  }
}

Cómo validarlo

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

OperationOutcome esperado

Si la receta lleva los cuatro campos obligatorios y al menos un coding con system canónico, issue[] viene vacío. Errores típicos cuando falta algo:
  • cl-medreq-01 — falta status.
  • cl-medreq-02 — falta intent (la regla más frecuente al migrar desde HIS legacy que no distinguen order / plan / proposal).
  • cl-medreq-03 — falta subject.
  • cl-medreq-04 — falta medication[x] (ni medicationReference ni medicationCodeableConcept).

Tips

Doble coding TFC + ATC: la farmacia dispensa con TFC, el bus MINSAL agrega con ATC. Incluir ambos en medicationCodeableConcept.coding[] evita un round-trip de mapeo en el consumidor.
intent=order es para recetas firmadas. Para sugerencias generadas por un asistente clínico usar intent=proposal; para protocolos precargados, intent=plan. La regla cl-medreq-02 no es opinionada sobre cuál usar, solo exige que esté presente.
La cantidad dispensable (dispenseRequest.quantity.value) se calcula desde el tratamiento: 1 comp × 3 veces/día × 3 días = 9 comprimidos. La farmacia no debería tener que recalcular esto.
Vía de administración: SNOMED CT (26643006 = vía oral) es más portable que un código local. Para inyectables, 47625008 (vía intravenosa), 78421000 (vía intramuscular).
Bridge valida este MedicationRequest contra el perfil R4 base y las reglas locales cl-medreq-01..04. Si falta intent, devuelve cl-medreq-02 con quickFix (replacement: "order").